NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1488 most downloaded on PyPI
Pulumi's Python SDK
Last release today
06 Oct 2026
Ships on a steady schedule
a new release about every 8 days
Nearly every release is documented
notes for 59 of the last 60 stable releases
7 versions withdrawn
withdrawn after publishing
8 years old
4965 releases · first in 2018
[sdk/nodejs] Include @types/semver as a dependency #15251
[engine] Allow import plugins to define components and logical names. #15199
[engine] Allow import plugins to define components and logical names. #15199
[cli/display] Incremental improvement on the output when installing plugins #15201
[sdk] Bake the release version into the SDK #15185
[sdk/go] Parse config paths strictly #15173
[cli/new] Adds pulumi:template tag to pulumi new created projects
#15056
[auto/nodejs] Add new API to install the Pulumi CLI from the Automation API #14991
[sdk/python] Add support for Python 3.12 #15190
[engine] Fix a bug where mapping lookup could sometimes lead to an infinite loop. #15200
[engine] Remove an incorrect assert that resources must have inputs. #15197
[cli/display] Improve output when installing policy packs #15186
[sdk/go] Removes omitempty from StepEventMetadata.DetailedDiff
#15213
[sdk/go] Replace a deleted type used by Pulumi Cloud code. #15216
One column per quarter.
[sdk/go] Add WithValue to pulumi.Context #15149
[cli] Fix a panic when user's home directory could not be looked up. #15160
[cli/display] Fix JSON/YAML value diff displays. #15171
[sdk/go] Update github.com/cloudflare/circl to v1.3.7. #15151
[cli/import] --import-file now omits empty resource lists. #15132
[sdk/python] Allow remote components to use output property called id #15115
[backend/filestate] Revert gocloud.dev upgrade to fix regressions introduced by the upgrade. #15128
[cli] Adds a flag that allows inserting a fragment into the dot file when generating a graph. This can be used for styling the graph elements, setting
[engine] Fix an uncommon datarace with replace steps. #15112
[sdkgen/go] Revert using plain object type when the plainness is shallow and we should use inputty-types instead #15059
[cli/state] Fix a panic in pulumi state when no snapshots are available #15045
[sdkgen/python] Fixes resource imports when importing across different modules #14832
[auto/{go,nodejs,python}] Adds ListEnvironments support to Go, Nodejs and Python Automation API. #14995
[auto/{go,nodejs,python}] Adds ListEnvironments support to Go, Nodejs and Python Automation API. #14995
[cli/display] Warn correctly about new versions being availablen when using the CLI dev channel #14954
[cli/new] Fixes duplicate printing of the AI prompt & answer on Windows. #15010
[engine] Fix bug where unimported resources (of different types) with the same name would cause --import-file to panic.
#15008
[engine] Default parallel operations to a reasonable limit. #15016
[programgen] Fixes type-annotating nested resource properties when these have quoted keys #15001
[sdkgen] Temporarily revert validation of urn and id resource output properties
#15025
[programgen/{dotnet,python}] Allow object keys to be template expressions such as static quoted strings #15000
[backend/service] Exclude internal events from those sent to Pulumi Cloud. #14972
[sdk/go] fixes fulfillValue error when joining a nil output state #14949
[cli/config] Adds pulumi config env ls command to list the environment imports declared in a stack configuration. #14855
[cli/config] Adds pulumi config env ls command to list the environment imports declared in a stack configuration.
#14855
[cli/new] Adds pulumi new --ai functionality. #14685
[sdk/nodejs] Add an environment variable (PULUMI_ERROR_OUTPUT_STRING) to throw when an output tries to convert to a string.
#14811
[auto/nodejs] Always run cleanup for refresh and destroy commands #14948
[auto/nodejs] Don't mutate original stack settings when saving #14952
[programgen] Avoid pretty printing large object graphs when a resource property doesn't type-check when binding PCL programs #14864
[cli/config] Fixes config copy command to also copy environments from the source stack #14847
[cli/config] Fix a bug in pulumi config env ls --json where the json flag was not being correctly passed through.
#14961
[programgen/go] Fix required config variables of type bool and number #14958
[cli/import] Import can now distinguish between logical names and source names. #14745
[programgen/{dotnet,go,nodejs,python}] Fix generated utility functions for filebase64, filebase64sha256, sha1 and mimeType #14857
[programgen/{nodejs,python}] Fix duplicated import statements when instantiating a component multiple times #14829
[auto/go] Add ChangeSecretsProvider to workspace and stack APIs. #14039
[auto/go] Add ChangeSecretsProvider to workspace and stack APIs.
#14039
[auto/go] Adds AddEnvironments and RemoveEnvironment functions to Stack and LocalWorkspace types for Go Automation API. #14785
[auto/nodejs] Adds addEnvironments and removeEnvironment functions to Stack and LocalWorkspace classes for Nodejs Automation API. #14788
[auto/python] Adds add_environments and remove_environment functions to Stack and LocalWorkspace classes for python Automation API. #14776
[cli] The CLI now uses the yaml converter plugin rather than yaml convert logic linked in. #14437
[sdkgen/nodejs] Include @types/google-protobuf as a dependency #14783
[cli] Add --import-file to pulumi preview to generate a placeholder import file for every resource that needs to Create. #14548
[cli] Add --import-file to pulumi preview to generate a placeholder import file for every resource that needs to Create.
#14548
[sdk/nodejs] Add TypeScript definitions for the grpc and protobuf generated code. #14415
[auto] Don't swallow error if EditDir is not found in ProgramTest. #14695
[cli/display] Fix a panic in diff display when parsing YAML strings #14710
[auto/python] Ensures that the project_settings has a main directory for inline programs in python #14709
[engine] Error if a resource's parent is a skipped create. #14672
[engine] Warn if SDKs are trying to use old RegisterResource style StackReferences. #14678
[engine] Send resource inputs as inputs and state for Reads. #14683
[engine] Engine now prefers stable plugin versions to pre-releases when no explict version is given. #14700
[engine] Fix handling of delete failures for targeted destroys #14735
[sdkgen] Return all bind diagnostics in sdk-gen rather than just the first. #14661
[sdkgen/go] Fix compiling plain element type with plain maps #14704
[sdkgen/go] Fix generating input collection types for enums when used from an array of map of enums #14744
[backend/service] Service backend now validates snapshots are valid on load, same as the self managed backend. This can be disabled with --disable-integrity-checking. #14046
[cli/config] Include config values from ESC in pulumi config #14560
[cli/config] Include config values from ESC in pulumi config
#14560
[cli/config] Add commands for managing stack environments #14628
[cli/config] Add a command to create an ESC environment from stack config #14634
[sdk/go] add optional display name and tag fields to project templates #14587
[sdk/nodejs] Enable resource imports for nodejs providers #14668
[cli/plugin] Load policy packs in parallel on startup to reduce startup time #14495
[sdkgen/dotnet] Added support for language specific settings for resources and support for overriding resource name in dotnet codegen #14308
[sdkgen/{go,nodejs,python}] Resource methods with plain: true outputs can now return plain values without an Output wrapper. In particular, this feature enables resource methods to serve as explicit provider factories by returning preconfigured explicit providers. #13592
[auto/go] Fix a datarace in cloning git repos. #14643
[auto/go] Fixes event stream lag on windows runtime #14659
[engine] Engine now correctly handles any resource name. #14107
[engine] Fix a panic in cancellation. #14612
[engine] Fix root directory passed to langauge plugins when starting pulumi in a subfolder. #14684
[sdkgen] Schemas now validate that 'urn' and 'id' are not used as resource output properties. #14637
[sdkgen] Fixes marshalling the "plain" flag from object or resource properties #14648
[yaml] Upgrade yaml to 1.4.3 #14693
[programgen/nodejs] Fix generated readFile function so that it includes the encoding and returns a string #14633
[sdkgen/{dotnet,go,nodejs,python}] No longer writing out name and project from alias definitions into SDKs, only type #14625
[sdk/go] Fix optional handling on nested props #14629
[sdk/nodejs] Use local storage to track per stack error log count #14702
[sdkgen/go] Fixes plain and optional properties for generated types for Go SDKs using generics #14616
[sdkgen/go] Generate non-plain type variants for types used as inputs inside unions #14679
[sdk/python] Introduces RuntimeError when we detect a cycle upon adding dependencies to the graph. Additionally adds "PULUMI_ERROR_ON_DEPENDENCY_CYCLES" as a new environment variable to control this behavior. Set to False to return to the previous behavior, which could potentially re-introduce infinite hangs for some programs.
#14597
[cli/import] Generated import files from converter plugins omit empty optional fields. #14574
[cli/display] Adds display when policy packs are being loaded #14493
[engine] import can now create empty component resource to use as the parent of other imported resources. #14467
[engine] import can now create empty component resource to use as the parent of other imported resources.
#14467
[engine] import can now import a parent resource in the same deployment as a child resource.
#14461
[engine] Import files no longer need parent URNs in the name table for resource being imported in the same file. #14524
[cli/config] config refresh will now restore secret provider config from the last deployment.
#13900
[cli/new] Simplifies URL parsing for pulumi new zip #14546
[sdk/python] Add provider side caching for dynamic provider deserialization. #14491
[auto] Allow shallow repository clones in NewLocalWorkspace #14312
[auto] Allow shallow repository clones in NewLocalWorkspace #14312
[cli] Add support for ESC file projection #14447
[cli/new] Adds support for remote zip archive templates to pulumi new #14443
[engine] Support {NAME} in http plugin download URLs. #14435
[yaml] Update pulumi-yaml to 1.4.0 #14425
[auto/nodejs] Add refresh option for up
#14306
[cli/new] Adds nested directory support to pulumi new .zip #14473
[auto/nodejs] Pin @grpc/grpc-js to v1.9.6 to resolve automation-api hang in NodeJS. #14445
[engine] Correctly propogate provider errors from DiffConfig. #14436
[engine] Fix parsing of property paths such as "root.[1]" being returned from providers. #14451
[programgen/go] Fix using inline invoke expressions inside resources, objects and arrays #14484
[sdk/python] Fix error on empty invoke returns #14470
[sdk/python] Fix traceback diagnostic from being printed when using Python dynamic providers #14474
[cli/display] Fix misleading output in stack ls --json #14309
[cli] Adds a new pulumi install command which will install packages and plugins for a project. #13081
[cli/config] Don't crash on empty config values #14328
[auto/nodejs] Add support for the path option for config operations #14305
[auto/nodejs] Add support for the path option for config operations #14305
[engine] Converters can return diagnostics from ConvertState.
#14135
[cli] Tightened the parser for property paths to be less prone to typos #14257
[engine] Fix handling of explicit providers and --target-dependents. #14238
[engine] Fix automatic diffs comparing against output instead of input properties. #14256
[sdkgen/dotnet] Fix codegen with nested modules. #14297
[programgen/go] Fix codegen to correctly output pulumi.Array instead of pulumi.AnyArray #14299
[cli/new] pulumi new now allows users to bypass existing project name checks.
#14081
[sdk/nodejs] Nodejs now supports unknown resource IDs. #14137
[sdkgen/python] Fix _configure failing due to required args mismatch.
#14281
[engine] Old inputs are sent to provider Delete functions, as well as the old outputs. #14051
[engine] Fix a panic in the engine when same steps failed due to provider errors. #14076
[engine] Engine is now more efficent about starting up provider processes, generally saving at least one process startup per deployment. #14127
[programgen] Fixes panic when binding the signature of output-versioned invokes without input arguments #14234
[sdkgen/python] Python SDK generation _configure now correctly handles original property names for resource arguments (i.e. user provides propName instead of prop_name).
#14235
[cli] allow unmarshalling nil as a config value. #14149
[engine] Add the new policy remediations feature. #14080
[engine] Add the new policy remediations feature. #14080
[auto] Added a tracing span for plugin launch #14100
[cli/package] Fix a panic in get-mapping when not passing a provider name. #14124
[engine] Engine will now error earlier if a deployment needs a bundled plugin that is missing. #14103
[sdk/{go,nodejs,python}] Fix MockMonitor reporting DeletedWith wasn't supported #14118
[programgen/python] Fix panic in python program-gen when rewriting index expressions #14099
[cli] Users can now set PULUMI_DISABLE_AUTOMATIC_PLUGIN_ACQUISITION to disable the engine trying to auto install missing plugins. #14083
[cli] Users can now set PULUMI_DISABLE_AUTOMATIC_PLUGIN_ACQUISITION to disable the engine trying to auto install missing plugins.
#14083
[pkg] Upgrade pulumi-java to v0.9.8
[cli/import] Import converters will write out their intermediate import file for manual fixups if needed. #14067
[sdkgen/go] Generate output-versioned invokes for functions without inputs #13694
[sdk/python] Add default arg to Config.get_secret
#12279
[cli] policy publish: default to default-org if possible #14090
[cli] Fix a panic in whoami with tokens missing expected information.
[engine] Calling RegisterResourceOutputs twice no longer panics and returns an error instead. #14062
[engine] ComponentResources now emit resourceOutputEvent on Deletion. This fixes the time elapsed timer not ending when the resource is deleted. #14061
[engine] Lifecycle tests shouldn't reuse a closed plugin host. #14063
[engine] ctrl-c should cause Pulumi to send cancellation signal to providers #14057
[engine] Fix a race condition in the engine access step event data. #14049
[engine] Restore elided asset contents into returned inputs and state from Read operations
[engine] DISABLE_AUTOMATIC_PLUGIN_ACQUISITION is respected for deployment operations now.
#14104
[programgen] pulumi import supports resources with duplicate names, it will fail if referenced as a provider/parent due to the ambiguity.
#13989
[programgen/dotnet] Fixes compiling an empty list of expressions from object properties #14027
[cli/about] pulumi about and pulumi whoami will now return information about the access token used to login to the service. #13206
pulumi about and pulumi whoami will now return information about the access token used to login to the service.
#13206[cli] Add filestate variables to pulumi env.
#14015
[cli] Include a newline in pulumi whoami's output
#14025
[cli/import] import --from=plugin will now try to auto-install the plugin if missing.
#14048
[engine] Fix creation and modification timestamps sometimes not setting. #14038
[engine] Fixes the engine using aliases from old deployments when writing out statefiles.
[sdk/python] Resource property parameters are now runtime type checked to ensure they are a Mapping object.
#14030
[engine] Provider mapping information lookups are now more efficient. Providers can also support multiple mappings. #13975
[engine] Provider mapping information lookups are now more efficient. Providers can also support multiple mappings. #13975
[sdkgen/python] Generate output-versioned invokes for functions without inputs #13685
[sdkgen/dotnet] Fixes potential conflicts when generating resources called System #14011
[cli/engine] Errors writing out snapshots now print error messages to be seen by users. #14016
[sdk/go] Ensure Assets of AssetArchive are non-nil when creating and deserializing #14007
[cli/new] Fix selector wrapping on narrow terminals. #13979
[sdkgen/python] Fix error calling _configure when the value is None #14014
[engine] Program conversion plugins can now be passed extra arguments from convert. #13973
[engine] Program conversion plugins can now be passed extra arguments from convert.
#13973
[sdkgen/go] Support generating Go SDKs that use generic input and output types #13828
pulumi new no longer defaults to a project name of "pulum" if ran in a folder called "pulumi".
#13953[engine] pulumi-test-language can now be used to test language runtimes against a standard suite of tests. #13705
[programgen/python] Fix deprecation warning triggering on ResourceArgs with default values. #13890
[cli/config] Allows org search for individual accounts #13930
[sdkgen/{go,nodejs,python}] Fix a bug in marshalling enums across gRPC
[cli/state] pulumi state edit now handles multi-part EDITOR env vars (i.e. emacs -nw).
#13922
[programgen/python] Fix deprecation warning triggering on ResourceArgs with default values. #13890
[cli] Adds pulumi org search and pulumi org search ai for Pulumi Insights in the CLI. These commands render a table containing all resources in a give
[cli] Adds pulumi org search and pulumi org search ai for Pulumi Insights in the CLI. These commands render a table containing all resources in a given organization matching the query provided.
-q <query> will search for resources in the organization using a query provided in Pulumi Query Syntax.
-o <json|csv|yaml> flag customizes the output.
The ai command uses AI Assist to translate a natural language query into Pulumi Query Syntax.
Default table output will show a count of displayed resources out of the total. Additional output includes the query run, a URL to view and explore search results in the Pulumi Console and the query, and the query run.
Additional output is suppressed for non-table output formats such that they can be easily piped into other tools.
The --web flag will open the search results in a default browser.
#13611
#13879
#13888
#13846
[cli] Adds pulumi ai command - currently the only functionality in this group is pulumi ai web, which will open the Pulumi AI application in a default browser. An optional --prompt/-p flag can be provided with a query to pre-populate the search bar in the Pulumi AI application. By default, that prompt will be submitted automatically, but passing --no-auto-submit will prevent that.
#13808
#13846
[engine] Support SDKs sending plugin checksums as part of resource requests. #13789
pulumi policy new <template-name> to not require --yes when run non-interactively.
#13902[cli] Pass args from import to state converters. #13862
[cli] Pass args from import to state converters. #13862
[cli/config] Removes PULUMI_DEV flag for org search #13888
[sdkgen/python] Opting into pyproject.toml SDK generation no longer generates setup.py, but instead generates a standalone pyproject.toml that can be built with python -m build .
#13812
[engine] Check for old resources first by URN and then aliases #13883
[sdk/nodejs] Fix a possible panic in running NodeJS programs. #13689
[sdk/go] Add sdk/go/pulumix package with type-safe generics-based APIs to interact with Pulumi's core functionality. #13509
[sdk/go] Add sdk/go/pulumix package with type-safe generics-based APIs to interact with Pulumi's core functionality. #13509
[sdk/go] Built-in Pulumi types all satisfy pulumix.Input[T] for their underlying types.
#13509
[sdkgen/go] Generate types that are compatible with sdk/go/pulumix's type-safe APIs. #13510
[sdkgen/{nodejs,python}] NodeJS and Python packages no longer running plugin install scripts on package install. #13800
[cli/new] Fix regression where pulumi new -s org/project/stack would fail if the project already exists.
#13786
[sdk/nodejs] Fix provider used for resource methods #13796
[engine] Support runtime plugins returning plugin checksums from GetRequiredPlugins. #13776
[engine] Support runtime plugins returning plugin checksums from GetRequiredPlugins. #13776
[sdkgen/go] Implement option to override the name of the generated internal/utilities module #13749
[engine] Fix panic when analyzer plugin is not found on PATH. #13767
[programgen/go] Fixes go.mod version requirement #13729
[sdk/nodejs] When using closure serialization, lookup package.json up from current working directory up to parent directories recursively #13770
[yaml] Update pulumi-yaml to 1.2.1. #13712
[engine] Fixes some synchronization in plugin shutdown to prevent panics on Ctrl-C. #13682
[sdkgen/python] Fixes rendering v1.2.3-alpha.8 style of versions to valid PyPI versions when respectSchemaVersions option is set in sdkgen. #13707
[yaml] Update pulumi-yaml to 1.2.0. #13674
[yaml] Update pulumi-yaml to 1.2.0. #13674
[sdkgen/dotnet] Generate output-versioned invokes for functions without inputs. #13669
[sdkgen/nodejs] Generate output-versioned invokes for functions without inputs. #13678
[cli/package] New experimental "pack-sdk" command to pack an SDK into an artifact. #13675
[cli/plugin] CLI will now warn when loading ambient plugins from $PATH. #13670
[programgen/dotnet] Fixes code generation of ForExpressions, both when creating a list or a dictionary. #13620
[programgen/dotnet] Fixes list initializer for plain lists in resource properties. #13630
[programgen/{go,nodejs}] Fix a bug in marshalling type refs across gRPC. #13676
[programgen/nodejs] Fixes parseProxyApply to handle nested outputs within index expressions. #13629
[sdk/nodejs] Fix finding the pulumi package when the runtime wasn't started in the project directory. #13639
[cli/plugin] Improve error message during pulumi plugin install if the plugin is bundled with Pulumi.
#12575
[cli] Revert warning about ambient plugins loaded from $PATH #13607. #13657
[programgen/dotnet] Fix typing for optional and complex config variables in main program #13590
[programgen/dotnet] Fix typing for optional and complex config variables in main program #13590
[cli/new] Support SSH-style Git URLs, including private template repositories for pulumi new
#13515
[sdk/nodejs] NodeJS programs will now warn that undefined values will not show as stack outputs. #13608
[cli/plugin] CLI will now warn when loading ambient plugins from $PATH. #13607
[cli] Several fixes for pulumi logs including support for first-class providers, support for ambient credentials and improved error reporting.
#13588
[cli/state] Fix panic in pulumi state edit when no stack is selected.
#13638
[engine] Language plugins now defer schema loading to the engine via a gRPC interface. #13605
[programgen/{dotnet,go,nodejs,python}] Normalize the declaration name of generated resource components #13606
[sdk/python] Output.from_input now recurses into tuples.
#13603
[sdkgen] Fix bug binding provider schema where type default int values could not take integers. #13599
[sdkgen/python] Fixes python external enum types missing the import reference to the external package. #13584
[engine] Fix --target-dependents from targeting all resources with default providers. #13560
[engine] Fix --target-dependents from targeting all resources with default providers. #13560
[engine] Fix a panic when trying to construct a remote component with an explicit provider configured with unknown values during preview. #13579
[programgen/go] Fix conflicting imports generated when two imported packages have the same name. #13289
[programgen/nodejs] Fixes issue with javascript program generation where enums would incorrectly reference the package rather than the import alias. #13546
[cli/state] Adds pulumi state edit an experimental developer utility for manually editing state files. #13462
[cli/state] Adds pulumi state edit an experimental developer utility for manually editing state files.
#13462
[programgen] Allow binding unsupported range and collection types in non-strict mode for pulumi convert #13459
[programgen/nodejs] Improve static typing of config variables in main program #13496
[sdk/{go,nodejs,python}] Add support for reporting resource source positions #13449
[sdk/{nodejs,python}] Support explicit providers for packaged components #13282
[cli/config] Pulumi no longer falls back on old config when config resolution fails (except for pulumi destroy --stack <stack-name> where the config may be unavailable).
#13511
[cli/new] Fix the use of uninitalized backend when running new with --generate-only. When --generate-only is set new will skip all checks that require the backend.
#13530
[engine] Fix alias resoloution when parent alieses where also aliased. #13480
[engine] Validate URNs passed via ResourceOptions are valid. #13531
[engine] Add a missing lock that could cause a concurrent map read/write panic. #13532
[programgen/go] Fix panic in GenerateProject when version is not set in schema #13488
[sdkgen/{go,nodejs}] Fix ReplaceOnChanges being dropped in Go and NodeJS codegen. #13519
[programgen/nodejs] Fix interpolated strings used as keys of maps #13514
[cli/plugin] Automatically install pulumiverse provider plugins during convert. #13486
[cli/plugin] Fix lookup of side-by-side binaries when PULUMI_IGNORE_AMBIENT_PLUGINS is set. #13521
[sdk/python] Move some global state to context state for parallel updates. #13458
[programgen/{dotnet,go,nodejs,python}] Allow generating code for unknown invokes (tf data sources) in non-strict mode #13448
[programgen/{dotnet,go,nodejs,python}] Allow generating code for unknown invokes (tf data sources) in non-strict mode #13448
[programgen/go] Adds explicit package versioning to Golang codegen #13136
[sdk/go] Fix downloading of unimported external plugins. #13455
[cli/new] pulumi new -s 'org/project/stack' checks the specified organization for project existence rather than the currentUser.
#13234
[cli/new] When providing a --stack and --name to pulumi new, the project names must match before creating Pulumi.yaml.
#13250
[cli/plugin] Fix interpolation of vesion into http plugin source URLs. #13447
[sdk/nodejs] Add dependency on @opentelemetry/instrumentation #13278
[sdk/nodejs] Node.js dynamic providers mark serialized functions as secret if they capture any secrets #13329
[sdk/python] Python dynamic provider serialized code is now saved to state as secret. #13315
[cli] Improve the CLI stack validation error message #13285
[cli] Improve the CLI stack validation error message #13285
[engine] Old inputs are sent to provider Diff and Update functions, as well as the old outputs. #13139
[sdk/nodejs] Support loading package.json from parent directory. If package.json is not found in the Pulumi main directory, Pulumi recursively searches up the directory tree until it is found. If package.json provides a main field, per the NPM spec, that field is relative to the directory containing package.json.
#13273
[programgen/{nodejs,python}] Prefer output-versioned invokes in generated programs for nodejs and python #13251
[cli/state] The upgrade command now prompts the user to supply project names for stacks for which the project name could not be automatically guessed. #13078
[cli/state] Add interactive URN selection to pulumi state {rename,unprotect,delete}.
#13302
[auto/nodejs] Adds a better error message for invalid NodeJS AutoAPI workDir. #13275
[cli] Stack output on the console no longer escapes HTML characters inside JSON strings. This matches the behavior of the --json flag.
#13257
[engine] Engine marks outputs secret if an output of the same name is marked secret. #13260
[sdkgen] Fix loading schemas from providers on PATH. #13305
[cli/display] Print the summary event for previews that contain non-error level diagnostic messages. #13264
[cli/display] Fix diffs sometimes not showing even in details view. #13311
[cli/package] Fixes resolving plugins when they are not yet installed in plugin cache #13283
[cli/state] Disallow renaming resources to invalid names that will corrupt the state. #13254
[programgen/go] Fix aliasing package names using dashes when schema doesn't include go package info override #13212
[programgen/go] Use raw string literals for long, multi-line strings. #13249
[sdk/{go,nodejs,python}] Missing config error text includes "--secret" if requireSecret was used. #13241
[sdkgen/nodejs] Fix isInstance methods for generated provider types. #13265
[sdkgen/python] Python SDK only prints a Function Invoke result's deprecation messages when using getters rather than on instantiation. #13213
[backend/filestate] Fix auto-opt-in to project mode. #13243
[cli] pulumi convert will now cleanup temporary pulumi-convert directories when the command is finished.
#13185
[cli] Fix Markdown formatting issues in command usage. #13225
[cli] Fix stack rm removing config files for the wrong project.
#13227
[cli/config] No longer error on directory read permissions when searching for project files. #13211
[cli/display] Fix diff display partially parsing JSON/YAML from strings.
[cli/display] Fix large integers displaying in scientific notation. #13209
[cli/display] Update summary is now correctly shown when advisory and disabled policy events are encountered.
#13218
[cli/display] Fix formatting bugs in display causing text like (MISSING) showing in output. #13228
[cli/display] On Windows, make pulumi state unprotect command suggestion use double-quotes instead of single-quotes.
#13236
[cli/new] pulumi new now correctly supports numeric stack names.
#13220
[cli/new] Fix empty config values being added to the config file as part of new.
#13233
[cli/plugin] Fixes the output of plugin rm --yes command to explicitly say that plugins were removed #13216
[engine] Fix wildcards in IgnoreChanges. #13005
[engine] Fix ignoreChanges setting ignore array indexes to zero. #13005
[sdk/nodejs] Write port to stdout as a string so Node doesn't colorize the output #13204
[sdk/python] Allow tuples as Sequence input values to resources. #13210
[sdkgen/python] Python SDK only prints a Function Invoke result's deprecation messages when using getters rather than on instantiation. #13213
[cli/state] Fix panic caused by an invalid stack when a parent resource is renamed in the state. Now, parent references are also updated when the reso
[cli] Revert go.cloud update to fixes issues with using azure object store and secrets. #13184
[cli] Don't warn about the CLI version being out of date on every run. The CLI will now only warn once a day, when it queries for the latest version.
[cli] Don't warn about the CLI version being out of date on every run. The CLI will now only warn once a day, when it queries for the latest version. #12660
[programgen/{dotnet,go,nodejs,python}] Extend SkipResourceTypechecking to allow generating unknown resources #13172
[cli/package] Add a "get-mapping" command to query providers for their mapping information. #13155
[cli/config] pulumi destroy now sets the encryptedkey every run like the rest of the CLI commands.
#13168
[engine] Fix aliasing children #12848
[sdk/nodejs] Fix Parent/NoParent aliases #12848
[sdk/nodejs] Fixes uncaught rejections on the resource monitor terminating causing Automation API programs to exit prematurely. #13070
[sdkgen/python] Fixes python always printing input deprecation messages. #13141
[cli] Support for pulumi convert --from terraform
[cli] Make convert errors more clear to users #13126
[programgen/{dotnet,go}] Add support for the singleOrNone intrinsic #13149
[engine] Fix plugin installation when looking up new schemas. #13140
[programgen] Fixes range scoping for PCL components #13131
[programgen] Fixes panic when trying to convert a null literal to a string value #13138
[sdkgen/dotnet] sdkgen no longer sets the UseSharedCompilation project setting. #13146
[programgen/python] Fixes python panic when emiting code for index expressions that aren't typechecked #13137
[sdkgen/python] Fixes python always printing input deprecation messages. #13141
[cli] 'convert' now defaults to be more leniant about program correctness, old behaviour can be toggled back on with --strict. #13120
[cli] 'convert' now defaults to be more leniant about program correctness, old behaviour can be toggled back on with --strict. #13120
[engine] DeletedWith ResourceOption is now inherited from its parent across SDKs. #12572
[engine] Add 'pulumi:tags' config option to set stack tags. #12856
[pkg] Upgrade pulumi-java to v0.9.4. #13121
[programgen/nodejs] Allow output variables to have the same identifier as other program nodes #13115
[sdk/nodejs] Add support for asynchronous mock implementations
[cli/new] Escape special characters in project description #13122
[engine] Fixes a bug where targeted previews would error on deletes of targeted resources. #13010
[programgen/dotnet] Only await task-returning invokes in dotnet program-gen #13092
[programgen/{dotnet,go}] Do not error out when generaing not yet implemented ForExpressions #13083
[cli/plugin] Language plugins respect PULUMI_IGNORE_AMBIENT_PLUGINS. #13086
[programgen/go] Fix conversion of programs with components for Go. #13037
[programgen/go] Fix panic in go program-gen when encountering splat expressions #13116
[programgen/{go,nodejs}] Fix a panic in diagnostics from go/nodejs project generation. #13084
[programgen/nodejs] Only await promise-returning invokes in typescript program-gen #13085
[auto/python] Add support for the path option for config operations #13052
[auto/python] Add support for the path option for config operations #13052
[cli] Replace heap profiles with allocation profiles and add a flag, --memprofilerate, to control the sampling rate. --memprofilerate behaves like the -memprofilerate flag to go test; set it to "1" to profile every allocation site.
#13026
[cli] The convert and import commands will try to install plugins needed for correct conversions. #13046
[cli/plugin] Plugin install auto-fills the download URL for some known third-party plugins. #13020
[engine] Provider plugins are now loaded as needed, not at startup based on old state information. #12657
[programgen] Include the component source directory in diagnostics when reporting PCL errors #13017
[programgen/{nodejs,python}] Implement singleOrNone intrinsic #13032
[sdkgen/python] Generate a pyproject.toml file. This enables Python providers to build Wheels per PEP 621 #12805
[backend] Fixes a bug where Resource instances as stack exports got printed as if it had diff in the end steps #12261
[engine] Fix --replace behavior to be not considered a targeted update (where only --replace resources would be targeted). #13011
[backend/filestate] Fix the project filter when listing stacks from new stores that support per-project stack references. #12994
[backend/filestate] Fix stack rename renaming projects for the self-managed backend. #13047
[programgen/go] Do not error when generated Go code cannot be formatted #13053
[cli/plugin] Fixes PULUMI_DEBUG_GRPC to surface provider errors #12984
[sdkgen/go] For properties with environment variable defaults, differentiate between unset environment variables and empty. #12976
[sdkgen/go] When a property has an environment variable default, and the environment variable is not set, sdkgen would incorrectly set it to the zero value of that property. Fixes by only setting the property if the environment variable is set. #12976
[sdkgen/go] Fix versioned typerefs being marshalled across code generator RPCs. #13006
[backend/service] Improve memory consumption and decrease CPU time required when using snapshot patching #12962
[engine] Step generation now uses old inputs for untargeted resources and does not send current inputs to Check() on providers.
#12973
[sdk/go] Fix regression disallowing placing a Pulumi program in a subdirectory of a Go module. #12967
[programgen/nodejs] Allow iterating dynamic entries in TypeScript #12961
[programgen/go] Module support as component resources #12840
[engine] Non-targeted resources are now added to internal update plans fixing a bug where the step_executor would error due to missing resources in the plan. #12939
[programgen] Fix stack overflow panic when pretty printing recursive types #12866
[sdk/nodejs] Revert recursive package.json lookup. #12944
[sdk/go] testing.Environment now tolerates errors in deleting the test environment. #12927
[sdk/nodejs] Replaces empty interfaces with type aliases. Empty interfaces are equivalent to their supertype; this change expresses these type definitions using type aliases instead of interface extention to provide better clarity. This change will not affect type-checking. #12865
[sdk/nodejs] Support loading package.json from parent directory. If package.json is not found in the Pulumi main directory, Pulumi recursively searche
package.json is not found in the Pulumi main directory, Pulumi recursively searches up the directory tree until it is found. If package.json provides a main field, per the NPM spec, that field is relative to the directory containing package.json.
#12759[build] Fixes race condition in building Go sdk. #12821
[cli] Convert to PCL will recover from panics in program binding. #12827
[engine] Fix bug with targeting and plans where root stack resource and target-replaces were not being marked targeted. #12834
[engine] Fix the engine trying to install the pulumi-resource-pulumi plugin which is builtin. #12858
[programgen] Allow null literal as a default value for config variables #12817
[programgen] Fix panic on component type traversal #12828
[sdk/python] Fix hang due to component children cycles #12855
[cli] convert now prints all diagnostics from program conversion #12808
[cli] convert now prints all diagnostics from program conversion
#12808
[programgen/nodejs] Support range expressions that are of type output #12749
[programgen/python] Support range expressions that are of type output #12804
[cli] Fix destroy without project file. #12766
[engine] Fix bug where non-default providers are created even when not specified as a target. #12628
[backend/filestate] Revert change causing provided project name "" doesn't match Pulumi.yaml error #12761
provided project name "" doesn't match Pulumi.yaml error
#12761[auto/nodejs] Add excludeProtected option for destroy #12734
[auto/nodejs] Add excludeProtected option for destroy
#12734
[auto/nodejs] Add refresh option for preview
#12743
[cli] Speed up conversion mapping lookups for the common case of Pulumi names matching external ecosystem names. #12711
[engine] Support propagating more resource options to packaged components. #12682
[cli/display] Pulumi CLI can now display messages provided by the service. #12671
[sdk/go] Support new options on packaged components (MLCs), including: AdditionalSecretOutputs, Timeouts, DeletedWith, DeleteBeforeReplace, IgnoreChanges, ReplaceOnChanges, and RetainOnDelete. #12701
[sdk/go] Support vendored dependencies for Pulumi programs. #12727
[cli] Fix destroy without project file. #12728
[programgen] Allow using option(T) in range expressions #12717
[sdk/go] Ensure that dependency searches happen in the Pulumi program directory. #12732
[pkg/testing] Fix failure in writing a package.json for test overrides. #12700
[cli/display] Adds an indicator for resources that are being deleted/replaced with retainOnDelete set as well as an itemized warning. #12157
[cli/display] Adds an indicator for resources that are being deleted/replaced with retainOnDelete set as well as an itemized warning.
#12157
[backend/{filestate,service}] Add more information to pulumi stack history (Update CLI Args, Environment Variables, Pulumi Version, OS, Architecture).
#12574
[pkg/testing] deploytest: Fix nil custom timeouts and timeouts smaller than a minute being ignored. #12681
[programgen] Do not panic when PCL attribute type or PCL resource variable type isn't fully bound #12661
[sdk/go] Fixed NewResourceOptions dropping MLC dependencies from the options preview. #12683
[programgen/nodejs] Linearize component resource nodes #12676
[sdk/python] Fix component resources not correctly propagating the provider option to their children.
This is a re-application of #12292, which was previously reverted in #12522.
[sdk/python] Fix multi-language components dropping the provider option intended for their descendants.
#12639
[sdkgen/python] Fix referencing local types with a different package name #12669
[cli/config] Fix config set-all not saving secret provider configuration. #12643
[cli/config] Fix config set-all not saving secret provider configuration. #12643
[cli/display] Fix a panic when diffing empty archives. #12656
[programgen] Suppport the any type in config and outputs.
#12619
[sdk/go] Fix hang due to component children cycles #12516
[sdk/nodejs] Fix hang due to component children cycles #12515
[sdk/python] Fix hang due to component children cycles #12462
[yaml] Updates Pulumi YAML to v1.1.0. #12612
[programgen/python] Implemented python program-gen for PCL components #12555
[programgen/{nodejs,python}] Fixes the type signature of PCL function "entries" to return list of key-value pair objects #12607
[cli/package] Fix bug in package get-schema subcommand caused it to bail on certain providers.
#12459
[cli/state] Fixes panic when renaming providers in pulumi state rename.
#12599
Your coding agent can read these notes before it upgrades. Set up the MCP server →