v3.260.0
KittenML/KittenTTSv3.260.0Aug 28, 2026by github-actions[bot]
Upgrading?
AI Summary
Adds support for Go 1.27, introduces a CLI state promotion tool, and fixes resource replacement and serialization issues across multiple SDKs.
Key Highlights
- Support for Go 1.27
- New `pulumi state promote` command
- Improved error messages for GitHub operations
- Resource replacement fixes for deletedWith targets
Breaking Changes
- `pulumi deployment settings get` changes `environmentVariables` shape from list of names to objects
New Features
- State promotion tool to turn stateful snippets into code
- Improved JSON output structure for environment variables
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,133
A collective list of free APIs
NousResearch/hermes-agent★ 255,924
The agent that grows with you
yt-dlp/yt-dlp★ 200,015
A feature-rich command-line audio/video downloader
microsoft/markitdown★ 191,487
Python tool for converting files and office documents to Markdown.
Significant-Gravitas/AutoGPT★ 187,701
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.