Commit Graph

689 Commits

Author SHA1 Message Date
Julien P 8476c3f7f5
Pass ProgramInfo through to LanguageRuntime.About ()
# Description

To correctly determine which python executable we are using, we need the
ProgramInfo so we can determine which virtual environment is in use.

This PR updates the `About` rpc call to take `ProgramInfo` as argument.

Fixes https://github.com/pulumi/pulumi/issues/16299
Ref https://github.com/pulumi/pulumi/issues/15937

## Checklist

- [x] I have run `make tidy` to update any new dependencies
- [x] I have run `make lint` to verify my code passes the lint check
  - [x] I have formatted my code using `gofumpt`
2024-06-06 08:21:46 +00:00
Justin Van Patten d2435e2992
Freeze v3.119.0 ()
To be merged after https://github.com/pulumi/pulumi/pull/16322 and
https://github.com/pulumi/pulumi/pull/16323

Tentative changelog:

### Features

- [auto/{go,nodejs,python}] Add support for `--all` parameter of the
`stack ls` command to the Automation API
  [](https://github.com/pulumi/pulumi/pull/16266)


### Bug Fixes

- [cli/new] Populate pulumi:template tag also for interactively selected
templates
  [](https://github.com/pulumi/pulumi/pull/16308)

- [backend/service] Improve error reporting when policy pack download
fails
  [](https://github.com/pulumi/pulumi/pull/16306)


### Miscellaneous

- [sdk/python] Move dependency installation and python command
invocation to Toolchain interface
  [](https://github.com/pulumi/pulumi/pull/16243)
2024-06-05 12:59:52 +00:00
Justin Van Patten f598962268
Prepare for v3.119.0 release ()
Planning to include https://github.com/pulumi/pulumi/pull/16322.

Other than that, tentative changelog:

### Features

- [auto/{go,nodejs,python}] Add support for `--all` parameter of the
`stack ls` command to the Automation API
  [](https://github.com/pulumi/pulumi/pull/16266)


### Bug Fixes

- [cli/new] Populate pulumi:template tag also for interactively selected
templates
  [](https://github.com/pulumi/pulumi/pull/16308)

- [backend/service] Improve error reporting when policy pack download
fails
  [](https://github.com/pulumi/pulumi/pull/16306)


### Miscellaneous

- [sdk/python] Move dependency installation and python command
invocation to Toolchain interface
  [](https://github.com/pulumi/pulumi/pull/16243)
2024-06-05 11:54:52 +00:00
Zach Buchheit 0ebfde2629
Add support for `--all` parameter of the `stack ls` command to the Automation API ()
<!--- 
Thanks so much for your contribution! If this is your first time
contributing, please ensure that you have read the
[CONTRIBUTING](https://github.com/pulumi/pulumi/blob/master/CONTRIBUTING.md)
documentation.
-->

# Description

Adds Go/Nodejs/Python automation API support for pulumi stack ls --all.

Fixes: [](https://github.com/pulumi/pulumi/issues/14226)

## Checklist

- [x] I have run `make tidy` to update any new dependencies
- [x] I have run `make lint` to verify my code passes the lint check
  - [x] I have formatted my code using `gofumpt`

<!--- Please provide details if the checkbox below is to be left
unchecked. -->
- [ ] I have added tests that prove my fix is effective or that my
feature works
<!--- 
User-facing changes require a CHANGELOG entry.
-->
- [x] I have run `make changelog` and committed the
`changelog/pending/<file>` documenting my change
<!--
If the change(s) in this PR is a modification of an existing call to the
Pulumi Cloud,
then the service should honor older versions of the CLI where this
change would not exist.
You must then bump the API version in
/pkg/backend/httpstate/client/api.go, as well as add
it to the service.
-->
- [ ] Yes, there are changes in this PR that warrants bumping the Pulumi
Cloud API version
<!-- @Pulumi employees: If yes, you must submit corresponding changes in
the service repo. -->

---------

Co-authored-by: Thomas Gummerer <t.gummerer@gmail.com>
2024-06-03 15:53:43 +00:00
Justin Van Patten 1aee7c20af
Freeze v3.118.0 ()
Planning to include https://github.com/pulumi/pulumi/pull/16293

Otherwise, tentative changelog:

### Features

- [sdk] Improve plugin parameterize interface
  [](https://github.com/pulumi/pulumi/pull/16283)

- [sdk/{go,nodejs,python}] Make stack transforms a stable,
non-experimental feature
  [](https://github.com/pulumi/pulumi/pull/16282)

- [programgen/go] Implement importPathPattern in Go language options to
override emitted paths in generated Go programs
  [](https://github.com/pulumi/pulumi/pull/16267)

### Bug Fixes

- [engine] Fix panic with --continue-on-error on delete after failed
create
  [](https://github.com/pulumi/pulumi/pull/16261)
2024-05-31 16:47:45 +00:00
Justin Van Patten d919543096
Prepare for v3.118.0 release ()
Going ahead and getting this prepared.

At a minimum, want to include:
- https://github.com/pulumi/pulumi/pull/16261
- https://github.com/pulumi/pulumi/pull/16282
2024-05-30 19:28:53 +00:00
Justin Van Patten c2cb41f49b
Flip stack transforms to non-experimental ()
Registering stack transforms is now non-experimental. This change
updates the function signatures in the Go, Node.js, and Python SDKs
along with associated types and comments.

Follow-up to 
2024-05-30 18:01:33 +00:00
Justin Van Patten afbd3ea6e1
Freeze v3.117.0 ()
To be merged after:
- https://github.com/pulumi/pulumi/pull/16261
- https://github.com/pulumi/pulumi-docker-containers/pull/195

Tentative changelog...

### Features

- [engine] Guess ID references of dependant resources when generating
code for import operations
  [](https://github.com/pulumi/pulumi/pull/16208)


### Bug Fixes

- [engine] Check property dependencies and deleted-with relationships
for target dependents
  [](https://github.com/pulumi/pulumi/pull/16220)

- [engine] Propagate dependencies of untargeted resources correctly
during targeted updates
  [](https://github.com/pulumi/pulumi/pull/16247)

- [backend/diy] Rewrite DeletedWith references when renaming stacks
  [](https://github.com/pulumi/pulumi/pull/16216)

- [cli/state] Fix state renames involving DeletedWith

- [sdk/python] Use a separate type variable for static methods on Output
  [](https://github.com/pulumi/pulumi/pull/16172)

- [sdk/python] Relax Output.all types to better match the implementation
  [](https://github.com/pulumi/pulumi/pull/16172)

- [sdkgen/python] Generate __init__.py files for modules that only
contain enumerations
  [](https://github.com/pulumi/pulumi/pull/16229)
2024-05-24 21:16:00 +00:00
Justin Van Patten 7dd97b97a2
Prepare for v3.117.0 release ()
Tentative changelog:

### Features

- [engine] Guess ID references of dependant resources when generating
code for import operations
  [](https://github.com/pulumi/pulumi/pull/16208)


### Bug Fixes

- [engine] Check property dependencies and deleted-with relationships
for target dependents
  [](https://github.com/pulumi/pulumi/pull/16220)

- [engine] Propagate dependencies of untargeted resources correctly
during targeted updates
  [](https://github.com/pulumi/pulumi/pull/16247)

- [backend/diy] Rewrite DeletedWith references when renaming stacks
  [](https://github.com/pulumi/pulumi/pull/16216)

- [sdk/python] Use a separate type variable for static methods on Output
  [](https://github.com/pulumi/pulumi/pull/16172)

- [sdk/python] Relax Output.all types to better match the implementation
  [](https://github.com/pulumi/pulumi/pull/16172)

- [sdkgen/python] Generate __init__.py files for modules that only
contain enumerations
  [](https://github.com/pulumi/pulumi/pull/16229)
2024-05-24 15:29:40 +00:00
Julien P 9f6c5208a8
Use a separate type variable for static methods on Output ()
<!--- 
Thanks so much for your contribution! If this is your first time
contributing, please ensure that you have read the
[CONTRIBUTING](https://github.com/pulumi/pulumi/blob/master/CONTRIBUTING.md)
documentation.
-->

# Description

Pyright >= 1.1.354 assumes the typevar is Unknown if the generic class
that holds the staticmethods has no default type parameter, however in
our case the staticmethods have no link to the class's typevar.

Fixes https://github.com/pulumi/pulumi/issues/15914
Fixes https://github.com/pulumi/pulumi/issues/16194

## Checklist

- [ ] I have run `make tidy` to update any new dependencies
- [ ] I have run `make lint` to verify my code passes the lint check
  - [ ] I have formatted my code using `gofumpt`

<!--- Please provide details if the checkbox below is to be left
unchecked. -->
- [ ] I have added tests that prove my fix is effective or that my
feature works
<!--- 
User-facing changes require a CHANGELOG entry.
-->
- [ ] I have run `make changelog` and committed the
`changelog/pending/<file>` documenting my change
<!--
If the change(s) in this PR is a modification of an existing call to the
Pulumi Cloud,
then the service should honor older versions of the CLI where this
change would not exist.
You must then bump the API version in
/pkg/backend/httpstate/client/api.go, as well as add
it to the service.
-->
- [ ] Yes, there are changes in this PR that warrants bumping the Pulumi
Cloud API version
<!-- @Pulumi employees: If yes, you must submit corresponding changes in
the service repo. -->
2024-05-23 08:49:36 +00:00
Fraser Waters 9eb49a2818
RegisterProvider engine work ()
<!--- 
Thanks so much for your contribution! If this is your first time
contributing, please ensure that you have read the
[CONTRIBUTING](https://github.com/pulumi/pulumi/blob/master/CONTRIBUTING.md)
documentation.
-->

# Description

<!--- Please include a summary of the change and which issue is fixed.
Please also include relevant motivation and context. -->

This adds support for a `RegisterProvider` method to the engine. This
allows an SDK process to send the information for a package (name,
version, url, etc, and parameter in the future) and get back a UUID for
that run of the engine that can be used to re-lookup that information.

That allows the SDK to just send the `provider` field in
`RegisterResourceRequest` instead of filling in `version`,
`pluginDownloadURL` etc (and importantly not having to fill in
`parameter` for parameterised providers, which could be a large amount
of data).

This doesn't update any of the SDKs to yet use this method. We can do
that piecemeal, but it will require core sdk and codegen changes for
each language.

## Checklist

- [x] I have run `make tidy` to update any new dependencies
- [x] I have run `make lint` to verify my code passes the lint check
  - [x] I have formatted my code using `gofumpt`

<!--- Please provide details if the checkbox below is to be left
unchecked. -->
- [x] I have added tests that prove my fix is effective or that my
feature works
<!--- 
User-facing changes require a CHANGELOG entry.
-->
- [ ] I have run `make changelog` and committed the
`changelog/pending/<file>` documenting my change
<!--
If the change(s) in this PR is a modification of an existing call to the
Pulumi Cloud,
then the service should honor older versions of the CLI where this
change would not exist.
You must then bump the API version in
/pkg/backend/httpstate/client/api.go, as well as add
it to the service.
-->
- [ ] Yes, there are changes in this PR that warrants bumping the Pulumi
Cloud API version
<!-- @Pulumi employees: If yes, you must submit corresponding changes in
the service repo. -->
2024-05-23 06:16:59 +00:00
Fraser Waters ab7acdb602
Add Paramaterize to provider interface ()
<!--- 
Thanks so much for your contribution! If this is your first time
contributing, please ensure that you have read the
[CONTRIBUTING](https://github.com/pulumi/pulumi/blob/master/CONTRIBUTING.md)
documentation.
-->

# Description

<!--- Please include a summary of the change and which issue is fixed.
Please also include relevant motivation and context. -->

This is the bare bones changes required to update the provider interface
for parametrization. Nothing in the engine, sdks, cli, or codegen makes
use of these new methods yet.

But providers team can start building on top of this interface. Note
that this is subject to change, while this is _likely_ the right design
for parametrised providers there is a chance that we need to edit this
interface before GA release.

## Checklist

- [x] I have run `make tidy` to update any new dependencies
- [x] I have run `make lint` to verify my code passes the lint check
  - [ ] I have formatted my code using `gofumpt`

<!--- Please provide details if the checkbox below is to be left
unchecked. -->
- [ ] I have added tests that prove my fix is effective or that my
feature works
<!--- 
User-facing changes require a CHANGELOG entry.
-->
- [x] I have run `make changelog` and committed the
`changelog/pending/<file>` documenting my change
<!--
If the change(s) in this PR is a modification of an existing call to the
Pulumi Cloud,
then the service should honor older versions of the CLI where this
change would not exist.
You must then bump the API version in
/pkg/backend/httpstate/client/api.go, as well as add
it to the service.
-->
- [ ] Yes, there are changes in this PR that warrants bumping the Pulumi
Cloud API version
<!-- @Pulumi employees: If yes, you must submit corresponding changes in
the service repo. -->
2024-05-15 16:22:39 +00:00
Justin Van Patten 58a80095a7
Freeze v3.116.1 ()
### Features

- [docs] Resource docs: bump the number of displayed supporting types
from 200 to 1000 by default
  [](https://github.com/pulumi/pulumi/pull/16185)

- [sdk/go] Prefer pluginDownloadURLOverrides over PluginDownloadURL
specified in the package
  [](https://github.com/pulumi/pulumi/pull/16186)


### Bug Fixes

- [engine] Fix panic when using `pulumi up --refresh
--continue-on-error`
  [](https://github.com/pulumi/pulumi/pull/16184)
2024-05-15 07:20:27 +00:00
Justin Van Patten 48191af2b4
Freeze v3.116.0 ()
Tentative changelog:

### Bug Fixes

- [engine] Fix dataraces between snapshot and deployment systems.
  [](https://github.com/pulumi/pulumi/pull/16148)

- [cli/display] Fix mangled diffs of strings containing url-encoded
chars
  [](https://github.com/pulumi/pulumi/pull/16147)

- [sdk/nodejs] Don't load punycode module in function serialization code
  [](https://github.com/pulumi/pulumi/pull/16149)

- [sdk/nodejs] Return error in RPC response instead of exiting in the
language runtime
  [](https://github.com/pulumi/pulumi/pull/16162)

- [sdk/nodejs] Return the underlying error if we can't locate the pulumi
SDK
  [](https://github.com/pulumi/pulumi/pull/16160)

- [sdk/python] Provide more descriptive exception
  [](https://github.com/pulumi/pulumi/pull/16098)

- [sdk/python] Fix typings for `from_input` and `all` to not return
`Never` types.
  [](https://github.com/pulumi/pulumi/pull/16139)

- [sdk/python] Fix a race condition in output handling
  [](https://github.com/pulumi/pulumi/pull/16155)


### Miscellaneous

- [pkg] Upgrade pulumi-java to v0.11.0
2024-05-13 05:38:32 +00:00
Justin Van Patten 2d63e0aefd
Prepare for v3.116.0 release ()
Tentative changelog:

### Bug Fixes

- [engine] Fix dataraces between snapshot and deployment systems.
  [](https://github.com/pulumi/pulumi/pull/16148)

- [cli/display] Fix mangled diffs of strings containing url-encoded
chars
  [](https://github.com/pulumi/pulumi/pull/16147)

- [sdk/nodejs] Don't load punycode module in function serialization code
  [](https://github.com/pulumi/pulumi/pull/16149)

- [sdk/python] Fix typings for `from_input` and `all` to not return
`Never` types.
  [](https://github.com/pulumi/pulumi/pull/16139)

- [sdk/python] Fix a race condition in output handling
  [](https://github.com/pulumi/pulumi/pull/16155)
2024-05-10 20:33:01 +00:00
kvthr 086a75d18d
More descriptive exception in serialize_property ()
<!--- 
Thanks so much for your contribution! If this is your first time
contributing, please ensure that you have read the
[CONTRIBUTING](https://github.com/pulumi/pulumi/blob/master/CONTRIBUTING.md)
documentation.
-->

# Description

<!--- Please include a summary of the change and which issue is fixed.
Please also include relevant motivation and context. -->

Fixes  

## Checklist

- [x] I have run `make tidy` to update any new dependencies
- [x] I have run `make lint` to verify my code passes the lint check
  - [ ] I have formatted my code using `gofumpt`

<!--- Please provide details if the checkbox below is to be left
unchecked. -->
- [x] I have added tests that prove my fix is effective or that my
feature works
<!--- 
User-facing changes require a CHANGELOG entry.
-->
- [x] I have run `make changelog` and committed the
`changelog/pending/<file>` documenting my change
<!--
If the change(s) in this PR is a modification of an existing call to the
Pulumi Cloud,
then the service should honor older versions of the CLI where this
change would not exist.
You must then bump the API version in
/pkg/backend/httpstate/client/api.go, as well as add
it to the service.
-->
- [ ] Yes, there are changes in this PR that warrants bumping the Pulumi
Cloud API version
<!-- @Pulumi employees: If yes, you must submit corresponding changes in
the service repo. -->
2024-05-10 11:34:18 +00:00
Fraser Waters 0f191ee869
Fix a race condition in python output handling ()
<!--- 
Thanks so much for your contribution! If this is your first time
contributing, please ensure that you have read the
[CONTRIBUTING](https://github.com/pulumi/pulumi/blob/master/CONTRIBUTING.md)
documentation.
-->

# Description

<!--- Please include a summary of the change and which issue is fixed.
Please also include relevant motivation and context. -->

Fixes https://github.com/pulumi/pulumi/issues/16154.

## Checklist

- [x] I have run `make tidy` to update any new dependencies
- [x] I have run `make lint` to verify my code passes the lint check
  - [ ] I have formatted my code using `gofumpt`

<!--- Please provide details if the checkbox below is to be left
unchecked. -->
- [ ] I have added tests that prove my fix is effective or that my
feature works
<!--- 
User-facing changes require a CHANGELOG entry.
-->
- [x] I have run `make changelog` and committed the
`changelog/pending/<file>` documenting my change
<!--
If the change(s) in this PR is a modification of an existing call to the
Pulumi Cloud,
then the service should honor older versions of the CLI where this
change would not exist.
You must then bump the API version in
/pkg/backend/httpstate/client/api.go, as well as add
it to the service.
-->
- [ ] Yes, there are changes in this PR that warrants bumping the Pulumi
Cloud API version
<!-- @Pulumi employees: If yes, you must submit corresponding changes in
the service repo. -->

---------

Co-authored-by: Thomas Gummerer <t.gummerer@gmail.com>
2024-05-09 16:36:32 +00:00
Fraser Waters cffdfd1fa4
Fix overloads for all and from_input to not return `Never` types ()
<!--- 
Thanks so much for your contribution! If this is your first time
contributing, please ensure that you have read the
[CONTRIBUTING](https://github.com/pulumi/pulumi/blob/master/CONTRIBUTING.md)
documentation.
-->

# Description

<!--- Please include a summary of the change and which issue is fixed.
Please also include relevant motivation and context. -->

Fixes https://github.com/pulumi/pulumi/issues/16027.

Seems mypy was having issues with Outputs being passed into these
methods and tracking that they should have just been returning the same
Output in the result. Adding these extra overloads seems to have
appeased the type checker when using these methods.

## Checklist

- [x] I have run `make tidy` to update any new dependencies
- [x] I have run `make lint` to verify my code passes the lint check
  - [x] I have formatted my code using `gofumpt`

<!--- Please provide details if the checkbox below is to be left
unchecked. -->
- [ ] I have added tests that prove my fix is effective or that my
feature works
<!--- 
User-facing changes require a CHANGELOG entry.
-->
- [x] I have run `make changelog` and committed the
`changelog/pending/<file>` documenting my change
<!--
If the change(s) in this PR is a modification of an existing call to the
Pulumi Cloud,
then the service should honor older versions of the CLI where this
change would not exist.
You must then bump the API version in
/pkg/backend/httpstate/client/api.go, as well as add
it to the service.
-->
- [ ] Yes, there are changes in this PR that warrants bumping the Pulumi
Cloud API version
<!-- @Pulumi employees: If yes, you must submit corresponding changes in
the service repo. -->
2024-05-07 14:34:13 +00:00
Justin Van Patten b76cd1f69b
Freeze v3.115.2 ()
To be merged after https://github.com/pulumi/pulumi/pull/16129 and
https://github.com/pulumi/pulumi/pull/16131
2024-05-06 18:16:19 +00:00
Justin Van Patten 4dbdf54723
Freeze v3.115.1 ()
To be merged after https://github.com/pulumi/pulumi/pull/16119 merges.

Tentative changelog:

- [backend] Fix concurrent reads from and writes to display resource
timer maps
  [](https://github.com/pulumi/pulumi/pull/16101)

- [engine] Better handle property dependencies and deleted-with
relationships when pruning URNs, verifying snapshot integrity and
computing dependency graphs.
  [](https://github.com/pulumi/pulumi/pull/16088)

- [programgen/python] Sort generated requirements.txt files when
generating Python programs
  [](https://github.com/pulumi/pulumi/pull/16115)
2024-05-06 08:49:15 +00:00
Justin Van Patten 79666791d1
Freeze v3.115.0 ()
To be merged after https://github.com/pulumi/pulumi/pull/16106 lands
(I'll have to change the base).
2024-05-02 23:56:10 +00:00
Fraser Waters a80ef4fc16
ci: Bump version to 1.115 () 2024-05-02 20:47:56 +00:00
Richard Shade 03712a11ec
Updating python dynamic provider types for inputs to Dict[str, Any] ()
<!--- 
Thanks so much for your contribution! If this is your first time
contributing, please ensure that you have read the
[CONTRIBUTING](https://github.com/pulumi/pulumi/blob/master/CONTRIBUTING.md)
documentation.
-->

# Description

Updating python dynamic provider types for inputs to Dict[str, Any],
from Any. I also added a Union so it was backward compatible, and
doesn't immediately throw type errors for users.

## Checklist

- [ ] I have run `make tidy` to update any new dependencies
- [ ] I have run `make lint` to verify my code passes the lint check
- [ ] I have formatted my code using `gofumpt`

<!--- Please provide details if the checkbox below is to be left
unchecked. -->
- [ ] I have added tests that prove my fix is effective or that my
feature works
<!--- 
User-facing changes require a CHANGELOG entry.
-->
- [x] I have run `make changelog` and committed the
`changelog/pending/<file>` documenting my change
<!--
If the change(s) in this PR is a modification of an existing call to the
Pulumi Cloud,
then the service should honor older versions of the CLI where this
change would not exist.
You must then bump the API version in
/pkg/backend/httpstate/client/api.go, as well as add
it to the service.
-->
- [ ] Yes, there are changes in this PR that warrants bumping the Pulumi
Cloud API version
<!-- @Pulumi employees: If yes, you must submit corresponding changes in
the service repo. -->

---------

Co-authored-by: Thomas Gummerer <t.gummerer@gmail.com>
2024-05-02 17:56:48 +00:00
Fraser Waters f0085de0c7
Handful of mypy fixes in the python test code () 2024-05-02 17:46:52 +00:00
Fraser Waters 3d3729006c
Start mypy linting lib/test ()
This fixes up a load of '[un]expected return statement' errors in the
tests. Mostly property getters which I've filled in with `pulumi.get`
but some of the tests were explictly checking things worked when the
getter was an empty method body.
2024-04-30 12:54:13 +00:00
Charlie Haley b57c60f90f
add support for --import-file when using the Automation API ()
<!--- 
Thanks so much for your contribution! If this is your first time
contributing, please ensure that you have read the
[CONTRIBUTING](https://github.com/pulumi/pulumi/blob/master/CONTRIBUTING.md)
documentation.
-->

# Description

<!--- Please include a summary of the change and which issue is fixed.
Please also include relevant motivation and context. -->

Fixes # (issue)

## Checklist

- [x] I have run `make tidy` to update any new dependencies
- [x] I have run `make lint` to verify my code passes the lint check
  - [x] I have formatted my code using `gofumpt`

<!--- Please provide details if the checkbox below is to be left
unchecked. -->
- [ ] I have added tests that prove my fix is effective or that my
feature works
<!--- 
User-facing changes require a CHANGELOG entry.
-->
- [x] I have run `make changelog` and committed the
`changelog/pending/<file>` documenting my change
<!--
If the change(s) in this PR is a modification of an existing call to the
Pulumi Cloud,
then the service should honor older versions of the CLI where this
change would not exist.
You must then bump the API version in
/pkg/backend/httpstate/client/api.go, as well as add
it to the service.
-->
- [ ] Yes, there are changes in this PR that warrants bumping the Pulumi
Cloud API version
<!-- @Pulumi employees: If yes, you must submit corresponding changes in
the service repo. -->

---------

Co-authored-by: Thomas Gummerer <t.gummerer@gmail.com>
2024-04-30 11:31:43 +00:00
Fraser Waters a514601236
Flip transforms to non-experimental ()
Co-authored-by: Thomas Gummerer <t.gummerer@gmail.com>
2024-04-29 10:54:41 +00:00
Justin Van Patten 88e5625503
Freeze v3.114.0 ()
Will wait to merge this until after
https://github.com/pulumi/pulumi/pull/16057 merges

### Features

- [auto/{go,nodejs,python}] Add support for the continue-on-error
parameter of the up command to the Automation API
  [](https://github.com/pulumi/pulumi/pull/15953)

- [engine] Add a --continue-on-error flag to pulumi up
  [](https://github.com/pulumi/pulumi/pull/15740)


### Bug Fixes

- [sdk/nodejs] Fix a race condition that could cause the NodeJS runtime
to terminate before finishing all work
  [](https://github.com/pulumi/pulumi/pull/16005)

- [sdk/python] Fix an exception when setting providers resource option
with a dict
  [](https://github.com/pulumi/pulumi/pull/16022)

- [sdk/python] Fix event loop tracking in the python SDK when using
remote transforms
  [](https://github.com/pulumi/pulumi/pull/16039)

- [sdk/python] Workaround lazy module loading regression
  [](https://github.com/pulumi/pulumi/pull/16038)


### Miscellaneous

- [cli/plugin] Move PluginKind type definition into apitype and
re-export for backward compatibility
  [](https://github.com/pulumi/pulumi/pull/15946)
2024-04-26 21:14:13 +00:00
Fraser Waters 52b58aebbe
Cleanup output futures list as they complete ()
<!--- 
Thanks so much for your contribution! If this is your first time
contributing, please ensure that you have read the
[CONTRIBUTING](https://github.com/pulumi/pulumi/blob/master/CONTRIBUTING.md)
documentation.
-->

# Description

<!--- Please include a summary of the change and which issue is fixed.
Please also include relevant motivation and context. -->

Fixes https://github.com/pulumi/pulumi/issues/16055.

https://github.com/pulumi/pulumi/pull/15744 added precise output
tracking to the python runtime, so that we can error correctly on any
output that raises an exception, and don't wait for all async tasks that
are running which could be unrelated to the pulumi program.

Unfortunately that change had a memory leak where it tracked all outputs
for the entire run of the program. Not an issue for our small programs
in the tests but problematic when a program ends up making thousands of
resources with tens of thousands of output values.

This cleans the outputs up from the tracking list as they complete
successfully.

## Checklist

- [x] I have run `make tidy` to update any new dependencies
- [x] I have run `make lint` to verify my code passes the lint check
  - [ ] I have formatted my code using `gofumpt`

<!--- Please provide details if the checkbox below is to be left
unchecked. -->
- [x] I have added tests that prove my fix is effective or that my
feature works
<!--- 
User-facing changes require a CHANGELOG entry.
-->
- [x] I have run `make changelog` and committed the
`changelog/pending/<file>` documenting my change
<!--
If the change(s) in this PR is a modification of an existing call to the
Pulumi Cloud,
then the service should honor older versions of the CLI where this
change would not exist.
You must then bump the API version in
/pkg/backend/httpstate/client/api.go, as well as add
it to the service.
-->
- [ ] Yes, there are changes in this PR that warrants bumping the Pulumi
Cloud API version
<!-- @Pulumi employees: If yes, you must submit corresponding changes in
the service repo. -->
2024-04-26 16:35:28 +00:00
Fraser Waters 6bc7c4b157
Use a fresh context for automation api runs ()
<!--- 
Thanks so much for your contribution! If this is your first time
contributing, please ensure that you have read the
[CONTRIBUTING](https://github.com/pulumi/pulumi/blob/master/CONTRIBUTING.md)
documentation.
-->

# Description

<!--- Please include a summary of the change and which issue is fixed.
Please also include relevant motivation and context. -->

Looks like this should help with some async context tracking for python.
We make a fresh context for running the Automation API program and so
don't need to reset globals on exit.

We also fix `configure` to set the context variables rather than
overwriting the `SETTINGS` object itself which is just a plain global.

## Checklist

- [x] I have run `make tidy` to update any new dependencies
- [x] I have run `make lint` to verify my code passes the lint check
  - [ ] I have formatted my code using `gofumpt`

<!--- Please provide details if the checkbox below is to be left
unchecked. -->
- [ ] I have added tests that prove my fix is effective or that my
feature works
<!--- 
User-facing changes require a CHANGELOG entry.
-->
- [x] I have run `make changelog` and committed the
`changelog/pending/<file>` documenting my change
<!--
If the change(s) in this PR is a modification of an existing call to the
Pulumi Cloud,
then the service should honor older versions of the CLI where this
change would not exist.
You must then bump the API version in
/pkg/backend/httpstate/client/api.go, as well as add
it to the service.
-->
- [ ] Yes, there are changes in this PR that warrants bumping the Pulumi
Cloud API version
<!-- @Pulumi employees: If yes, you must submit corresponding changes in
the service repo. -->
2024-04-26 08:29:58 +00:00
Justin Van Patten 07b6e21807
Prepare for v3.114.0 release ()
Tentative changelog, but also planning to include
https://github.com/pulumi/pulumi/pull/16057

### Features

- [auto/{go,nodejs,python}] Add support for the continue-on-error
parameter of the up command to the Automation API
  [](https://github.com/pulumi/pulumi/pull/15953)

- [engine] Add a --continue-on-error flag to pulumi up
  [](https://github.com/pulumi/pulumi/pull/15740)


### Bug Fixes

- [sdk/nodejs] Fix a race condition that could cause the NodeJS runtime
to terminate before finishing all work
  [](https://github.com/pulumi/pulumi/pull/16005)

- [sdk/python] Fix an exception when setting providers resource option
with a dict
  [](https://github.com/pulumi/pulumi/pull/16022)

- [sdk/python] Fix event loop tracking in the python SDK when using
remote transforms
  [](https://github.com/pulumi/pulumi/pull/16039)

- [sdk/python] Workaround lazy module loading regression
  [](https://github.com/pulumi/pulumi/pull/16038)


### Miscellaneous

- [cli/plugin] Move PluginKind type definition into apitype and
re-export for backward compatibility
2024-04-25 21:09:28 +00:00
Justin Van Patten 3b9449325e
[sdk/python] Workaround lazy module regression ()
A regression was introduced in Python 3.11.9 and 3.12.3 that breaks lazy
loaded `config` modules in generated Pulumi provider Python SDKs. It's
unclear if this is going to be addressed in subsequent patch releases of
Python, so we workaround the problem by using a copy of the Python
stdlib's `_LazyModule` and `LazyLoader` classes that don't have the
regression, as suggested by the Python maintainers.

Fixes 
2024-04-24 06:53:59 +00:00
Fraser Waters b04280ccdd
Test setting and changing providers on component resources via transforms ()
<!--- 
Thanks so much for your contribution! If this is your first time
contributing, please ensure that you have read the
[CONTRIBUTING](https://github.com/pulumi/pulumi/blob/master/CONTRIBUTING.md)
documentation.
-->

# Description

<!--- Please include a summary of the change and which issue is fixed.
Please also include relevant motivation and context. -->

Fixes https://github.com/pulumi/pulumi/issues/15984.

The bug was actually caused by a longstanding mistake in
`_collapse_providers` that didn't iterate the providers correctly if it
was passed as a `dict`. But worth having this test in full to sanity
check the other languages as well.

## Checklist

- [x] I have run `make tidy` to update any new dependencies
- [x] I have run `make lint` to verify my code passes the lint check
  - [ ] I have formatted my code using `gofumpt`

<!--- Please provide details if the checkbox below is to be left
unchecked. -->
- [x] I have added tests that prove my fix is effective or that my
feature works
<!--- 
User-facing changes require a CHANGELOG entry.
-->
- [x] I have run `make changelog` and committed the
`changelog/pending/<file>` documenting my change
<!--
If the change(s) in this PR is a modification of an existing call to the
Pulumi Cloud,
then the service should honor older versions of the CLI where this
change would not exist.
You must then bump the API version in
/pkg/backend/httpstate/client/api.go, as well as add
it to the service.
-->
- [ ] Yes, there are changes in this PR that warrants bumping the Pulumi
Cloud API version
<!-- @Pulumi employees: If yes, you must submit corresponding changes in
the service repo. -->
2024-04-23 15:20:43 +00:00
Fraser Waters 776fc88f5e
Make the python callbacks server use asyncio ()
<!--- 
Thanks so much for your contribution! If this is your first time
contributing, please ensure that you have read the
[CONTRIBUTING](https://github.com/pulumi/pulumi/blob/master/CONTRIBUTING.md)
documentation.
-->

# Description

<!--- Please include a summary of the change and which issue is fixed.
Please also include relevant motivation and context. -->

Fixes https://github.com/pulumi/pulumi/issues/16025.

Moving the _sync_await trickery from the server to the register function
seems to be enough to not lose track of the event loop.


## Checklist

- [x] I have run `make tidy` to update any new dependencies
- [x] I have run `make lint` to verify my code passes the lint check
  - [ ] I have formatted my code using `gofumpt`

<!--- Please provide details if the checkbox below is to be left
unchecked. -->
- [ ] I have added tests that prove my fix is effective or that my
feature works
<!--- 
User-facing changes require a CHANGELOG entry.
-->
- [x] I have run `make changelog` and committed the
`changelog/pending/<file>` documenting my change
<!--
If the change(s) in this PR is a modification of an existing call to the
Pulumi Cloud,
then the service should honor older versions of the CLI where this
change would not exist.
You must then bump the API version in
/pkg/backend/httpstate/client/api.go, as well as add
it to the service.
-->
- [ ] Yes, there are changes in this PR that warrants bumping the Pulumi
Cloud API version
<!-- @Pulumi employees: If yes, you must submit corresponding changes in
the service repo. -->

---------

Co-authored-by: Thomas Gummerer <t.gummerer@gmail.com>
2024-04-23 10:28:39 +00:00
Thomas Gummerer a724adae04
Implement --continue-on-error for up in Automation API ()
Users are already able to use --continue-on-error for destroy in the
automation API. Implement the same for `up` as well.

This should only be merged after
https://github.com/pulumi/pulumi/pull/15740 is. (Note that this still
includes the commits from there, I will rebase once that PR is merged,
hence this is only a draft PR for now)
2024-04-23 09:16:14 +00:00
Fraser Waters 48dbd6c596
Use black to format lib/test ()
Test code should be formatted and linted the same as library code. This
is the first step of that, simply including ./lib/test to the folder
that the black formatter runs on.
2024-04-23 08:29:58 +00:00
Fraser Waters 978df08a34
Update mypy ()
Update mypy in the python sdk requirements, and fix up issues found by
update.
2024-04-22 19:53:19 +00:00
Fraser Waters 1fd38de306
Update pylint ()
Update pylint in the python sdk requirements, fix one new warning to use
"yield from".
2024-04-22 15:52:16 +00:00
Thomas Gummerer 4169755866
Implement up --continue-on-error ()
Similar to destroy --continue-on-error, this flag allows `pulumi up`
to continue if any errors are encountered.

Currently when we encounter an error while creating/updating a
resource, we cancel the context of the deployment executor, and thus
the deployment stops once the resources that are being processed in
parallel with the failed one finish being updated.

For --continue-on-error, we ignore these errors, and let the
deployment executor continue.  In order for the deployment executor to
exit eventually we also have to mark these steps as done, as the
deployment executor will otherwise just hang, and callers with open
channels waiting for it to finish/report back will hang indefinitely.

The errors in the step will still be reported back to the user by the
OnResourceStepPost callback.

Fixes https://github.com/pulumi/pulumi/issues/14515

---------

Co-authored-by: Fraser Waters <fraser@pulumi.com>
2024-04-22 11:12:45 +00:00
Justin Van Patten c09d92a21a
Freeze v3.113.3 ()
Will merge and release after https://github.com/pulumi/pulumi/pull/15998
is merged.
2024-04-19 17:38:57 +00:00
Justin Van Patten 4a88a7ce9f
Freeze v3.113.2 ()
To be merged after https://github.com/pulumi/pulumi/pull/15976.
2024-04-18 23:15:49 +00:00
Thomas Gummerer cfd3784782
Freeze 3.113.1 ()
This should be merged after https://github.com/pulumi/pulumi/pull/15974.
I'm not including the tentative changelog there as the most important
item on the list isn't merged yet (and go-change isn't cooperating with
me trying to get that included manually).
2024-04-18 09:25:49 +00:00
Komal 9a370c727a
Use new API for deployments ()
<!--- 
Thanks so much for your contribution! If this is your first time
contributing, please ensure that you have read the
[CONTRIBUTING](https://github.com/pulumi/pulumi/blob/master/CONTRIBUTING.md)
documentation.
-->

# Description

<!--- Please include a summary of the change and which issue is fixed.
Please also include relevant motivation and context. -->

Updates Remote Automation API to use the new stable URLs for the
Deployments API. Adds support for `inheritSettings` to allow inheriting
deployment settings pre-existing on the stack.

I've tested this manually by editing the automation-api-examples for
remote deployments, but not sure of a great way to add automated tests
since automation api doesn't yet have support for setting deployment
settings.

EDIT: I considered just setting up a static stack for this but abandoned
it because of concerns around parallel runs. We can add automated tests
for this once we support creating deployment settings with automation
api (coming soon).

Fixes  
Fixes 

## Checklist

- [x] I have run `make tidy` to update any new dependencies
- [x] I have run `make lint` to verify my code passes the lint check
  - [x] I have formatted my code using `gofumpt`

<!--- Please provide details if the checkbox below is to be left
unchecked. -->
- [ ] I have added tests that prove my fix is effective or that my
feature works
<!--- 
User-facing changes require a CHANGELOG entry.
-->
- [x] I have run `make changelog` and committed the
`changelog/pending/<file>` documenting my change
<!--
If the change(s) in this PR is a modification of an existing call to the
Pulumi Cloud,
then the service should honor older versions of the CLI where this
change would not exist.
You must then bump the API version in
/pkg/backend/httpstate/client/api.go, as well as add
it to the service.
-->
- [ ] Yes, there are changes in this PR that warrants bumping the Pulumi
Cloud API version
<!-- @Pulumi employees: If yes, you must submit corresponding changes in
the service repo. -->
2024-04-16 23:23:56 +00:00
Justin Van Patten 6210fe97f8
Freeze v3.113.0 ()
### Features

- [auto/{go,nodejs,python}] Add support for continue-on-error parameter
of the destroy command to the Automation API
  [](https://github.com/pulumi/pulumi/pull/15921)

- [cli] Support always fully qualifying stack names in CLI output
  [](https://github.com/pulumi/pulumi/pull/15857)

- [cli] Add --no-plugins and --no-dependencies to `pulumi install`
  [](https://github.com/pulumi/pulumi/pull/15910)

- [docs] Implement Java constructor syntax examples
  [](https://github.com/pulumi/pulumi/pull/15805)

- [sdk/nodejs] Make TypeScript and ts-node optional peer dependencies to
allow using user specified versions
  [](https://github.com/pulumi/pulumi/pull/15622)

- [sdk/{nodejs,python}] Allow apply to have unknown values during
updates
  [](https://github.com/pulumi/pulumi/pull/15898)

- [sdk/python] Add 'typeChecker' runtime option to the Python language
host
  [](https://github.com/pulumi/pulumi/pull/15922)
  [](https://github.com/pulumi/pulumi/pull/15725)


### Bug Fixes

- [auto] Tolerate missing stack and bookkeeping files in ProgramTest
  [](https://github.com/pulumi/pulumi/pull/15922)
  [](https://github.com/pulumi/pulumi/pull/15863)

- [cli] Fix a panic when user's home directory could not be looked up
  [](https://github.com/pulumi/pulumi/pull/15872)

- [cli] Fix some commands that didn't respect
`--disable-integrity-checking`
  [](https://github.com/pulumi/pulumi/pull/15911)

- [programgen/dotnet] Remove trailing whitespace from emitted DependsOn
resource option expressions
  [](https://github.com/pulumi/pulumi/pull/15922)
  [](https://github.com/pulumi/pulumi/pull/15892)

- [auto/go] Avoid flakyness when reading the event log from pulumi
commands
  [](https://github.com/pulumi/pulumi/pull/15856)

- [sdk/go] Fix Provider and Providers options in Go transform functions
  [](https://github.com/pulumi/pulumi/pull/15885)

- [sdk/nodejs] Handle serialization of aliases for well known native
functions
  [](https://github.com/pulumi/pulumi/pull/15873)

- [sdk/nodejs] Correctly serialise functions whose code would make use
of reserved identifiers
  [](https://github.com/pulumi/pulumi/pull/15879)

- [sdk/nodejs] Serialize function values obtained from Function.bind
  [](https://github.com/pulumi/pulumi/pull/15887)

- [sdk/python] Improve types of getters in Python SDK
  [](https://github.com/pulumi/pulumi/pull/15865)

- [sdkgen/{dotnet,go}] Fix SDK-generation when referencing shared types
in config variables
  [](https://github.com/pulumi/pulumi/pull/15772)
  [](https://github.com/pulumi/pulumi/pull/15922)


### Miscellaneous

- [sdk/nodejs] Update builtin module list for function serialization
  [](https://github.com/pulumi/pulumi/pull/15830)

- [sdk/nodejs] Set package.json engines to node >= 18
  [](https://github.com/pulumi/pulumi/pull/15845)
2024-04-15 16:41:08 +00:00
Justin Van Patten ea4fdcad58
Revert "Freeze v3.113.0 ()" ()
This reverts commit 8ff72bf9fa.

We want to get in https://github.com/pulumi/pulumi/pull/15923 before
publishing the release.
2024-04-12 18:37:22 +00:00
Justin Van Patten 8ff72bf9fa
Freeze v3.113.0 ()
### Features

- [cli] Support always fully qualifying stack names in CLI output
  [](https://github.com/pulumi/pulumi/pull/15857)

- [cli] Add --no-plugins and --no-dependencies to `pulumi install`
  [](https://github.com/pulumi/pulumi/pull/15910)

- [docs] Implement Java constructor syntax examples
  [](https://github.com/pulumi/pulumi/pull/15805)

- [sdk/nodejs] Make TypeScript and ts-node optional peer dependencies to
allow using user specified versions
  [](https://github.com/pulumi/pulumi/pull/15622)

- [sdk/{nodejs,python}] Allow apply to have unknown values during
updates
  [](https://github.com/pulumi/pulumi/pull/15898)

- [sdk/python] Adds 'typeChecker' runtime option to the Python language
host
  [](https://github.com/pulumi/pulumi/pull/15725)


### Bug Fixes

- [auto] Tolerate missing stack and bookkeeping files in ProgramTest.
  [](https://github.com/pulumi/pulumi/pull/15863)

- [cli] Fix a panic when user's home directory could not be looked up
  [](https://github.com/pulumi/pulumi/pull/15872)

- [cli] Fix some commands that didn't respect
`--disable-integrity-checking`
  [](https://github.com/pulumi/pulumi/pull/15911)

- [programgen/dotnet] Removes trailing whitespace from emitted DependsOn
resource option expressions
  [](https://github.com/pulumi/pulumi/pull/15892)

- [auto/go] Avoid flakyness when reading the event log from pulumi
commands
  [](https://github.com/pulumi/pulumi/pull/15856)

- [sdk/go] Fix Provider and Providers options in Go transform functions
  [](https://github.com/pulumi/pulumi/pull/15885)

- [sdk/nodejs] Handle serialization of aliases for well known native
functions
  [](https://github.com/pulumi/pulumi/pull/15873)

- [sdk/nodejs] Correctly serialise functions whose code would make use
of reserved identifiers
  [](https://github.com/pulumi/pulumi/pull/15879)

- [sdk/nodejs] Serialize function values obtained from Function.bind
  [](https://github.com/pulumi/pulumi/pull/15887)

- [sdk/python] Improve types of getters in Python SDK
  [](https://github.com/pulumi/pulumi/pull/15865)

- [sdkgen/{dotnet,go}] Fixes SDK-generation when referencing shared
types in config variables
  [](https://github.com/pulumi/pulumi/pull/15772)


### Miscellaneous

- [sdk/nodejs] Update builtin module list for function serialization
  [](https://github.com/pulumi/pulumi/pull/15830)

- [sdk/nodejs] Set package.json engines to node >= 18
  [](https://github.com/pulumi/pulumi/pull/15845)
2024-04-12 16:21:27 +00:00
Mikhail Shilkov 5603b275f0
Add support for continue-on-error parameter of the destroy command to the Automation API ()
<!--- 
Thanks so much for your contribution! If this is your first time
contributing, please ensure that you have read the
[CONTRIBUTING](https://github.com/pulumi/pulumi/blob/master/CONTRIBUTING.md)
documentation.
-->

# Description

<!--- Please include a summary of the change and which issue is fixed.
Please also include relevant motivation and context. -->
Automation API Destroy in Node/Python/Go now has `--continue-on-error`

Resolves  (pending .NET)

.NET is interesting because we probably want to add it to
`UpdateOptions` once `up` has it and not to `DestroyOptions` (that
inherit from `UpdateOptions`). I'll probably skip it for now.

## Checklist

- [ ] I have run `make tidy` to update any new dependencies
- [ ] I have run `make lint` to verify my code passes the lint check
  - [ ] I have formatted my code using `gofumpt`

<!--- Please provide details if the checkbox below is to be left
unchecked. -->
- [ ] I have added tests that prove my fix is effective or that my
feature works
<!--- 
User-facing changes require a CHANGELOG entry.
-->
- [x] I have run `make changelog` and committed the
`changelog/pending/<file>` documenting my change
<!--
If the change(s) in this PR is a modification of an existing call to the
Pulumi Cloud,
then the service should honor older versions of the CLI where this
change would not exist.
You must then bump the API version in
/pkg/backend/httpstate/client/api.go, as well as add
it to the service.
-->
- [ ] Yes, there are changes in this PR that warrants bumping the Pulumi
Cloud API version
<!-- @Pulumi employees: If yes, you must submit corresponding changes in
the service repo. -->
2024-04-12 07:58:38 +00:00
Justin Van Patten c70d4e4e95
Prepare for v3.113.0 release ()
Tentative changelog:


### Features

- [cli] Support always fully qualifying stack names in CLI output
  [](https://github.com/pulumi/pulumi/pull/15857)

- [cli] Add --no-plugins and --no-dependencies to `pulumi install`
  [](https://github.com/pulumi/pulumi/pull/15910)

- [docs] Implement Java constructor syntax examples
  [](https://github.com/pulumi/pulumi/pull/15805)

- [sdk/nodejs] Make TypeScript and ts-node optional peer dependencies to
allow using user specified versions
  [](https://github.com/pulumi/pulumi/pull/15622)

- [sdk/{nodejs,python}] Allow apply to have unknown values during
updates
  [](https://github.com/pulumi/pulumi/pull/15898)

- [sdk/python] Adds 'typeChecker' runtime option to the Python language
host
  [](https://github.com/pulumi/pulumi/pull/15725)


### Bug Fixes

- [auto] Tolerate missing stack and bookkeeping files in ProgramTest.
  [](https://github.com/pulumi/pulumi/pull/15863)

- [cli] Fix a panic when user's home directory could not be looked up
  [](https://github.com/pulumi/pulumi/pull/15872)

- [cli] Fix some commands that didn't respect
`--disable-integrity-checking`

- [programgen/dotnet] Removes trailing whitespace from emitted DependsOn
resource option expressions
  [](https://github.com/pulumi/pulumi/pull/15892)

- [auto/go] Avoid flakyness when reading the event log from pulumi
commands
  [](https://github.com/pulumi/pulumi/pull/15856)

- [sdk/go] Fix Provider and Providers options in Go transform functions
  [](https://github.com/pulumi/pulumi/pull/15885)

- [sdk/nodejs] Handle serialization of aliases for well known native
functions
  [](https://github.com/pulumi/pulumi/pull/15873)

- [sdk/nodejs] Correctly serialise functions whose code would make use
of reserved identifiers
  [](https://github.com/pulumi/pulumi/pull/15879)

- [sdk/nodejs] Serialize function values obtained from Function.bind
  [](https://github.com/pulumi/pulumi/pull/15887)

- [sdk/python] Improve types of getters in Python SDK
  [](https://github.com/pulumi/pulumi/pull/15865)

- [sdkgen/{dotnet,go}] Fixes SDK-generation when referencing shared
types in config variables
  [](https://github.com/pulumi/pulumi/pull/15772)


### Miscellaneous

- [sdk/nodejs] Update builtin module list for function serialization
  [](https://github.com/pulumi/pulumi/pull/15830)

- [sdk/nodejs] Set package.json engines to node >= 18
  [](https://github.com/pulumi/pulumi/pull/15845)
2024-04-11 20:52:58 +00:00
Thomas Gummerer c91d40ac5f
allow unknowns in apply during update ()
Currently during updates we try to make the values known during apply,
even if they are marked unknown. This results in knows that should
really still be unknown.

Note that this behaviour is currently encoded in tests, which also
needed to change.
2024-04-10 16:48:38 +00:00
Will Jones fbe675aeba
Type functions decorated by `@pulumi.getter` ()
This commit strengthens the type of the `@pulumi.getter` decorator so
that tools like Pyright infer the type of the decorated function
correctly. Prior to this, decorated properties could be inferred as
having the type `Any`. This is particularly troublesome when using
methods such as `apply`:

```python
x = random.RandomString("x", ...)

y = x.result.apply(lambda value: f"y-{value}")
```

Here, `x.result` having the type `Any` means that `value` will end up
being `Unknown`, providing no useful type information inside the lambda.
With this commit, `result` will correctly be inferred as having the type
`Output[str]`, and thus `value` will be typed as `str`. Fixes .
2024-04-05 15:14:40 +00:00