- Retry renaming a temporary folder during plugin installation
[3008](https://github.com/pulumi/pulumi/pull/3008)
- Add support for additional Pulumi secrets providers using AWS KMS, Azure KeyVault, Google Cloud
KMS and HashiCorp Vault. These secrets providers can be configured at stack creation time using
`pulumi stack init b --secrets-provider="awskms://alias/LukeTesting?region=us-west-2"`, and ensure
that all encrypted data associated with the stack is encrypted using the target cloud platform
encryption keys. This augments the previous choice between using the app.pulumi.com-managed
secrets encryption or a fully-client-side local passphrase encryption.
[2994](https://github.com/pulumi/pulumi/pull/2994)
- Add `Output.concat` to Python SDK [3006](https://github.com/pulumi/pulumi/pull/3006)
- Add `requireOutput` to `StackReference` [3007](https://github.com/pulumi/pulumi/pull/3007)
- Arbitrary values can now be exported from a Python app. This includes dictionaries, lists, class
instances, and the like. Values are treated as "plain old python data" and generally kept as
simple values (like strings, numbers, etc.) or the simple collections supported by the Pulumi data model (specifically, dictionaries and lists).
- Fix `get_secret` in Python SDK always returning None.
- Make `pulumi.runtime.invoke` synchronous in the Python SDK [3019](https://github.com/pulumi/pulumi/pull/3019)
- Fix a bug in the Python SDK that caused input properties that are coroutines to be awaited twice.
[3024](https://github.com/pulumi/pulumi/pull/3024)
Compatibility
- Deprecated functions in `pulumi/pulumi` will now issue warnings if you call them. Please migrate
off of these functions as they will be removed in a future release. The deprecated functions are.
1. `function computeCodePaths(extraIncludePaths?: string[], ...)`. Use the `computeCodePaths`
overload that takes a `CodePathOptions` instead.
2. `function serializeFunctionAsync`. Please use `serializeFunction` instead.