Pulumi v3.260.0

v3.260.0
Added 3
  • 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
  • Support Go 1.27
  • Add `pulumi state promote` to turn stateful snippets into Pulumi program code
Fixed 17
  • Replace resources whose deletedWith target is being replaced, instead of leaving them orphaned in state
  • Serialize typed object stack outputs with their wire-format (camelCase) property names, matching other language SDKs
  • Cancelling a task now interrupts a running local tool call instead of waiting for it to finish
  • Access schema properties whose names contain hyphens as attributes under their Python names instead of subscripting
  • Generate valid struct field names for properties whose names contain hyphens
  • Quote property names that are not legal identifiers (e.g. kebab-case) in generated declarations and use bracket access for them

From Pulumi

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
  • [sdk/go] Support Go 1.27 #24401
  • [cli/state] Add pulumi state promote to turn stateful snippets into Pulumi program code #24453
Bug Fixes
  • [engine] Replace resources whose deletedWith target is being replaced, instead of leaving them orphaned in state #23818
  • [sdk/python] Serialize typed object stack outputs with their wire-format (camelCase) property names, matching other language SDKs #24246
  • [cli/neo] Cancelling a task now interrupts a running local tool call instead of waiting for it to finish #24268
  • [programgen/python] Access schema properties whose names contain hyphens as attributes under their Python names instead of subscripting #24300
  • [programgen/go] Generate valid struct field names for properties whose names contain hyphens #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
  • [cli/neo] Cancelling a local tool call no longer leaves the TUI stuck on "Thinking..." with input blocked #24318
  • [sdk/go] Use resolved environment names when evaluating ESC imports #24375
  • [codegen/pcl] Allow output-typed values for the id attribute of a read resource #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
  • [engine] Avoid replacing imported resources when an input changes from plain to a secret or output-wrapped value with the same inner value #24387
  • [backend/diy] Keep DIY backend stacks readable when checkpoint compression transitions fail #24383
  • [cli/stack] Give a clearer error message when selecting a stack by name outside a directory with a Pulumi.yaml project file #24394
  • [sdk/python] Propagate runtime context across thread boundaries #24403
  • [programgen/python] Name plain function input object types without the Args suffix, matching the name the generated SDK exports #24440
  • [cli/new] Reject zip template entries that resolve outside the extraction directory #24447
  • [cli/package] Keep a package's pluginDownloadURL in SDKs regenerated by pulumi install #24432
  • [sdk/python] Preserve all providers passed to remote components in Python programs #24443
  • [sdkgen] Apply schema defaults to generated Python and Node.js function inputs #24452
  • [programgen/python] Mark required component inputs as required in generated Python TypedDicts #24459
  • [programgen/python] Add type annotations for config variables default values coming from invokes #24464
  • [programgen/python] Generate valid Python when a component with inputs instantiates another component #24466
  • [cli/neo] Stop the running local tool immediately when a Neo task is cancelled and report it as cancelled #24470
  • [programgen/python] Support final argument expansion for min and max in Python programs #24471
Improvements
  • [cli] Treat adjacent character swaps as a single typo when suggesting commands #23899
  • [sdk/python] Correctly resolve discriminated unions by their tag #24352
  • [sdk/python] Allow transforms to be mocked #24406
  • [sdk/nodejs] Allow transforms to be mocked #24415
  • [sdk/go] Allow transforms to be mocked #24416
  • [sdkgen] Allow hyphens in the member segment of tokens, so resource, object type and function names can be kebab-case #24440
  • [cli] Print secret provider information with other stack information #24430
  • [auto/python] Allow refresh, preview_refresh, and preview_destroy to request rich diffs #24445
  • [engine] Cache provider mapping results on disk so repeated plans do not boot a provider to re-fetch an unchanged mapping #24462
  • [sdk/python] Improve stack traces for providers #24465
Miscellaneous
  • [sdk/dotnet] Upgrade dotnet to v3.113.0 #24441
  • [java] Upgrade java to v1.36.2 #24441
  • [yaml] Upgrade yaml to v1.38.4 #24441
View original

Upgraded? How did it go?

Discussion