Prepare for v3.31.0 release
CHANGELOG
=========
+## 3.31.0 (2022-04-29)
+
+### Improvements
+
+- [auto/*] Add `--save-plan` and `--plan` options to automation API.
+ [#9391](https://github.com/pulumi/pulumi/pull/9391)
+
+- [cli] "down" is now treated as an alias of "destroy".
+ [#9458](https://github.com/pulumi/pulumi/pull/9458)
+
+- [go] Add `Composite` resource option allowing several options to be encapsulated into a "single" option.
+ [#9459](https://github.com/pulumi/pulumi/pull/9459)
+
+- [codegen] Support all [Asset and Archive](https://www.pulumi.com/docs/intro/concepts/assets-archives/) types.
+ [#9463](https://github.com/pulumi/pulumi/pull/9463)
+
+- [cli] Display JSON/YAML property values as objects for creates, sames, and deletes.
+ [#9484](https://github.com/pulumi/pulumi/pull/9484)
+
+### Bug Fixes
+
+- [codegen/go] Ensure that plain properties are plain.
+ [#9430](https://github.com/pulumi/pulumi/pull/9430)
+ [#9488](https://github.com/pulumi/pulumi/pull/9488)
+
+- [cli] Fixed some context leaks where shutdown code wasn't correctly called.
+ [#9438](https://github.com/pulumi/pulumi/pull/9438)
+
+- [cli] Do not render array diffs for unchanged elements without recorded values.
+ [#9448](https://github.com/pulumi/pulumi/pull/9448)
+
+- [auto/go] Fixed the exit code reported by `runPulumiCommandSync` to be zero if the command runs successfully. Previously it returned -2 which could lead to confusing messages if the exit code was used for other errors, such as in `Stack.Preview`.
+ [#9443](https://github.com/pulumi/pulumi/pull/9443)
+
+- [auto/go] Fixed a race condition that could cause `Preview` to fail with "failed to get preview summary".
+ [#9467](https://github.com/pulumi/pulumi/pull/9467)
+
+- [backend/filestate] Fix a bug creating `stack.json.bak` files.
+ [#9476](https://github.com/pulumi/pulumi/pull/9476)
+
## 3.30.0 (2022-04-20)
### Improvements
