v3.260.0
morphik-org/morphik-corev3.260.0Aug 28, 2026by github-actions[bot]
Upgrading?
AI Summary
This release introduces a new `pulumi state promote` command to turn stateful snippets into program code and upgrades the Go SDK to support Go 1.27. It also includes numerous bug fixes regarding resource replacement, serialization, and tool cancellation.
Key Highlights
- New `pulumi state promote` command for turning snippets into code
- Support for Go 1.27 in the Go SDK
- Fixes resource orphaning when deletedWith targets are replaced
- Improves error messages for stack selection and tool cancellation
- Enhanced serialization for typed object stack outputs
Breaking Changes
- The `--output=json` shape of `environmentVariables` in `pulumi deployment settings get` changes from a list of names to a list of objects.
New Features
- `pulumi state promote` command
- Go 1.27 support
Full Release Notes
## 3.260.0 (2026-08-28) ### Features - [cli/deployment] Make `pulumi deployment settings get` render every source kind and show environment variable values, changing the `--output=json` shape of `environmentVariables` from a list of names to a list of objects [#24284](https://github.com/pulumi/pulumi/pull/24284) - [sdk/go] Support Go 1.27 [#24401](https://github.com/pulumi/pulumi/pull/24401) - [cli/state] Add `pulumi state promote` to turn stateful snippets into Pulumi program code [#24453](https://github.com/pulumi/pulumi/pull/24453) ### Bug Fixes - [engine] Replace resources whose deletedWith target is being replaced, instead of leaving them orphaned in state [#23818](https://github.com/pulumi/pulumi/pull/23818) - [sdk/python] Serialize typed object stack outputs with their wire-format (camelCase) property names, matching other language SDKs [#24246](https://github.com/pulumi/pulumi/pull/24246) - [cli/neo] Cancelling a task now interrupts a running local tool call instead of waiting for it to finish [#24268](https://github.com/pulumi/pulumi/pull/24268) - [programgen/python] Access schema properties whose names contain hyphens as attributes under their Python names instead of subscripting [#24300](https://github.com/pulumi/pulumi/pull/24300) - [programgen/go] Generate valid struct field names for properties whose names contain hyphens [#24300](https://github.com/pulumi/pulumi/pull/24300) - [sdkgen/nodejs] Quote property names that are not legal identifiers (e.g. kebab-case) in generated declarations and use bracket access for them [#24300](https://github.com/pulumi/pulumi/pull/24300) - [cli/neo] Cancelling a local tool call no longer leaves the TUI stuck on "Thinking..." with input blocked [#24318](https://github.com/pulumi/pulumi/pull/24318) - [sdk/go] Use resolved environment names when evaluating ESC imports [#24375](https://github.com/pulumi/pulumi/pull/24375) - [codegen/pcl] Allow output-typed values for the id attribute of a read resource [#24386](https://github.com/pulumi/pulumi/pull/24386) - [sdkgen/nodejs] Register resolvers for output-only properties in generated Resource.get so they resolve as unknown during preview when the id is unknown [#24386](https://github.com/pulumi/pulumi/pull/24386) - [engine] Avoid replacing imported resources when an input changes from plain to a secret or output-wrapped value with the same inner value [#24387](https://github.com/pulumi/pulumi/pull/24387) - [backend/diy] Keep DIY backend stacks readable when checkpoint compression transitions fail [#24383](https://github.com/pulumi/pulumi/pull/24383) - [cli/stack] Give a clearer error message when selecting a stack by name outside a directory with a Pulumi.yaml project file [#24394](https://github.com/pulumi/pulumi/pull/24394) - [sdk/python] Propagate runtime context across thread boundaries [#24403](https://github.com/pulumi/pulumi/pull/24403) - [programgen/python] Name plain function input object types without the Args suffix, matching the name the generated SDK exports [#24440](https://github.com/pulumi/pulumi/pull/24440) - [cli/new] Reject zip template entries that resolve outside the extraction directory [#24447](https://github.com/pulumi/pulumi/pull/24447) - [cli/package] Keep a package's pluginDownloadURL in SDKs regenerated by `pulumi install` [#24432](https://github.com/pulumi/pulumi/pull/24432) - [sdk/python] Preserve all providers passed to remote components in Python programs [#24443](https://github.com/pulumi/pulumi/pull/24443) - [sdkgen] Apply schema defaults to generated Python and Node.js function inputs [#24452](https://github.com/pulumi/pulumi/pull/24452) - [programgen/python] Mark required component inputs as required in generated Python TypedDicts [#24459](https://github.com/pulumi/pulumi/pull/24459) - [programgen/python] Add type annotations for config variables default values coming from invokes [#24464](https://github.com/pulumi/pulumi/pull/24464) - [programgen/python] Generate valid Python when a component with inputs instantiates another component [#24466](https://github.com/pulumi/pulumi/pull/24466) - [cli/neo] Stop the running local tool immediately when a Neo task is cancelled and report it as cancelled [#24470](https://github.com/pulumi/pulumi/pull/24470) - [programgen/python] Support final argument expansion for min and max in Python programs [#24471](https://github.com/pulumi/pulumi/pull/24471) ### Improvements - [cli] Treat adjacent character swaps as a single typo when suggesting commands [#23899](https://github.com/pulumi/pulumi/pull/23899) - [sdk/python] Correctly resolve discriminated unions by their tag [#24352](https://github.com/pulumi/pulumi/pull/24352) - [sdk/python] Allow transforms to be mocked [#24406](https://github.com/pulumi/pulumi/pull/24406) - [sdk/nodejs] Allow transforms to be mocked [#24415](https://github.com/pulumi/pulumi/pull/24415) - [sdk/go] Allow transforms to be mocked [#24416](https://github.com/pulumi/pulumi/pull/24416) - [sdkgen] Allow hyphens in the member segment of tokens, so resource, object type and function names can be kebab-case [#24440](https://github.com/pulumi/pulumi/pull/24440) - [cli] Print secret provider information with other stack information [#24430](https://github.com/pulumi/pulumi/pull/24430) - [auto/python] Allow `refresh`, `preview_refresh`, and `preview_destroy` to request rich diffs [#24445](https://github.com/pulumi/pulumi/pull/24445) - [engine] Cache provider mapping results on disk so repeated plans do not boot a provider to re-fetch an unchanged mapping [#24462](https://github.com/pulumi/pulumi/pull/24462) - [sdk/python] Improve stack traces for providers [#24465](https://github.com/pulumi/pulumi/pull/24465) ### Miscellaneous - [sdk/dotnet] Upgrade dotnet to v3.113.0 [#24441](https://github.com/pulumi/pulumi/pull/24441) - [java] Upgrade java to v1.36.2 [#24441](https://github.com/pulumi/pulumi/pull/24441) - [yaml] Upgrade yaml to v1.38.4 [#24441](https://github.com/pulumi/pulumi/pull/24441)
Related Repositories
public-apis/public-apis★ 491,140
A collective list of free APIs
NousResearch/hermes-agent★ 255,981
The agent that grows with you
yt-dlp/yt-dlp★ 200,080
A feature-rich command-line audio/video downloader
microsoft/markitdown★ 191,496
Python tool for converting files and office documents to Markdown.
Significant-Gravitas/AutoGPT★ 187,704
AutoGPT is the vision of accessible AI for everyone, to use and to build on. Our mission is to provide the tools, so that you can focus on what matters.