NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
NuGet · #1519 most downloaded on NuGet
The Pulumi .NET SDK lets you write cloud programs in C#, F#, and VB.NET.
Last release 7 days ago
28 Sep 2026
Ships fairly regularly
a new release about every 2 weeks
Most releases are documented
notes for 46 of the last 60 stable releases
4 versions withdrawn
withdrawn after publishing
127 years old
275 releases · first in 1900
[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
One column per quarter.
[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
Nothing published for this version
[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
[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
Nothing published for this version
Nothing published for this version
[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
[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
Nothing published for this version
[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
[backend/filestate] Add support for project-scoped stacks. Newly initialized backends will automatically use this mode. Set PULUMI_SELF_MANAGED_STATE_
[backend/filestate] Add support for project-scoped stacks. Newly initialized backends will automatically use this mode. Set PULUMI_SELF_MANAGED_STATE_LEGACY_LAYOUT=1 to opt-out of this. This mode needs write access to the root of the .pulumi directory; if you're using a cloud storage, be sure to update your ACLs.
[cli/state] Add 'upgrade' subcommand to upgrade a Pulumi self-managed state to use project layout. #12438
[cli/display] Fix a bug in the interactive update tree display where small terminals would cause the Pulumi CLI to panic. #12571
[sdkgen/dotnet] Fix a whitespace error in generated .csproj files. #12577
[backend/filestate] Print a warning if a project-scoped backend has non-project stacks in it. Disable this warning by setting PULUMI_SELF_MANAGED_STATE_NO_LEGACY_WARNING=1.
[engine] Enhances the state schema to track fields Created, Modified per each resource. The timestamp is captured in RFC3339. It pertains to timestamp
[engine] Enhances the state schema to track fields Created, Modified per each resource. The timestamp is captured in RFC3339. It pertains to timestamps of state modification done by the engine.
#12082
[engine] DeletedWith ResourceOption is now inherited from its parent across SDKs. #12446
[programgen/{dotnet,nodejs}] Object-typed config variables for components #12488
[programgen] PCL program.WriteSource(afero.Fs) writes the full directory tree of PCL source files. #12428
[programgen] PCL program.WriteSource(afero.Fs) writes the full directory tree of PCL source files. #12428
[programgen/{dotnet,go,nodejs,python}] Implement description as comments or docstring for config variables in program-gen #12464
[programgen/{dotnet,nodejs}] Component resources implementation including nested components #12398
[backend/service] Add "--teams" flag to assign team name to stack during init #11974
[auto/go] Fix memory leak in stack.Up() in Automation API. #12475
[auto/{go,nodejs,python}] Fix calling WhoAmI against pre 3.58 CLIs. #12466
[engine] Fixed automatic plugin downloads for third-party plugins. #12441
[programgen/python] Fix handling of reserved words in imports. #12447
[auto/go] Add WhoAmIDetails which includes user, url and organizations to Go Automation API #12374
[auto/go] Add WhoAmIDetails which includes user, url and organizations to Go Automation API #12374
[auto/nodejs] Add url and organizations to WhoAmIResult for NodeJS Automation API #12374
[auto/python] Add url and organizations to WhoAmIResult for Python Automation API #12374
[cli] Add --json flag to pulumi whoami to emit output as JSON
#12374
[cli/display] Add a view in browser shortcut to the interactive display. #12412 #12380
[programgen/dotnet] PCL components and dotnet program-gen implementation #12361
[programgen/{dotnet,go,nodejs,python}] Add "NotImplemented" PCL function intrinsic #12409
[sdk/go] Adds NewInvokeOptions to preview the effect of a list of InvokeOption values.
#12128
[sdk/go] common/util/contract: Deprecate functions that don't accept printf-style arguments. #12350
[cli/display] Autoscroll the interactive display and support pgup/pgdown #12363
[programgen] Support options.retainOnDelete on resources in PCL.
#12305
[sdkgen/dotnet] Update sdkgen to target dotnet 6. #12333
[programgen/{dotnet,go,nodejs,python}] Adds support for generating RetainOnDelete options. #12306
[auto/go] Enable programmatic tagging of stacks (Go only) #12329
[auto/python] Enable programmatic tagging of stacks (Python only) #12275
[sdk/go] Adds NewResourceOptions to preview the effect of a list of ResourceOption values.
#12124
[sdk/python] Added support for shimless Python plugins. #12362
[cli/display] Reorder options to handle pending creates. Users can now hold enter to select the clear option which should be more ergonomic. #12375
[auto/{dotnet,go,nodejs,python}] Fix support for specifying a git commit for remote workspaces #11716
[auto/go] Fetch commits before checkout #12331
[auto/go] The various workspace load routines (e.g. LoadProject) are no longer singularly cached. #12370
[sdk/go] Fixes overwrite of the Provider option by the Providers option due to ordering. #12296
[auto/nodejs] Fixes issue with specifying a git username for remote workspaces #12269
[sdk/python] Fixes Component Resources not correctly propagating the provider option to its children. #12292
Nothing published for this version
Nothing published for this version
[cli/display] Display now shows default colorized stacktraces in NodeJS. #10410
[cli/display] Display now shows default colorized stacktraces in NodeJS. #10410
[cli/plugin] Plugin download urls now support GitLab as a first class url schema. For example "gitlab://gitlab.com/43429536". #12145
[backend/service] Reduce retrieval-validation latency for update tokens #12323
[sdk/go] Fix panic from attempting to create a resource with an uninitialized parent resource. #12303
[cli/import] Fixes panic on incomplete resources in JSON file. #12182
[sdk/nodejs] Cleanup temporary pulumi-node-pipes folders after running. #12294
[sdk/nodejs] Fix stack outputs picking up co-located JSON files. #12302
[cli/plugin] Remove temporary files from plugin downloads. #12146
Nothing published for this version
Nothing published for this version
[cli] Remove the [experimental] yes, using Update Plans prompt. #12135
[cli] Remove the [experimental] yes, using Update Plans prompt.
#12135
[backend/filestate] pulumi login gs:// to support google oauth access tokens via environment variable for Google Cloud Storage backends #12102
[sdk/go] Adds StackReference.GetOutputDetails to retrieve outputs from StackReferences as plain objects. #12034
[sdk/nodejs] Adds StackReference.getOutputDetails to retrieve outputs from StackReferences as plain objects. #12072
[sdk/python] Adds StackReference.get_output_details to retrieve outputs from StackReferences as plain objects. #12071
[cli] Fix verbose logging to filter secrets. #12079
[engine] This fixes an issue where 'pulumi state delete ' would prompt the user to disambiguate between multiple resources in state with the same URN and proceed to delete all of them. With this change, dependency checks are performed only if the deletion will lead to no resources possessing the URN. The targetDependents flag will only target dependents if the deleted resource will orphan the dependents. #12111
[engine] Fixed issue where pulumi displays multiline secrets when the newlines(' ') are escaped. #12140
[sdkgen/go] Prevent defaults from overriding set values. #12099
Nothing published for this version
[cli] Add --shell flag to pulumi stack output to print outputs as a shell script. #11956
[cli] Add --shell flag to pulumi stack output to print outputs as a shell script.
#11956
[cli] Add --insecure flag to pulumi login which disables https certificate checks
#9159
[programgen] Add a new unsecret intrinsic function to PCL.
#12026
[sdkgen/go] Go SDKs now use errors.New instead of github.com/pkg/errors.New.
#12046
[auto] Add support for cloning from Azure DevOps #12001
[sdkgen] Correctly error on resource using the reserved name "provider". #11996
[sdk/python] Fix handling of Output keys in dicts passed to Output.from_input. #11968
[auto/nodejs] Enable programmatic tagging of stacks (Nodejs only) #11659
[auto/nodejs] Enable programmatic tagging of stacks (Nodejs only) #11659
[sdk/go] Coerces output values in ApplyT calls if the types are equivalent. #11903
[sdk/nodejs] Add optional / backwards compatible generic types to pulumi.dynamic.ResourceProvider. #11881
[auto/nodejs] Fix NodeJS automation api always setting the PULUMI_CONFIG environment variable. #11943
[cli/display] Display text-based diff if yaml/json diff is semantically equal #11803
[sdk/go] Fixes data race in provider plugin resulting in weakly typed secrets. #11975
[sdk/nodejs] Fix handling of recursive symlinks in node_modules. #11950
[engine] Fix launching non-Go plugins on Windows. #11915
[sdk/go] Allows users to discover if their program is being run with a mock monitor #11788
Nothing published for this version
[sdk/go] Add JSONUnmarshal to go sdk. #11745
Happy New Years from the Pulumi team! This is our first release of 2023, and we're very excited for all the things to come this year.
Happy New Years from the Pulumi team! This is our first release of 2023, and we're very excited for all the things to come this year.
We're approaching the end of 2022, and this is the final minor release scheduled for the year! 🎸 Thank you very much to our wonderful community for yo
We're approaching the end of 2022, and this is the final minor release scheduled for the year! 🎸 Thank you very much to our wonderful community for your many contributions! ❤️
[auto/{go,nodejs,python}] Adds SkipInstallDependencies option for Remote Workspaces #11674
[ci] GitHub release artifacts are now signed using cosign and signatures are uploaded to the Rekor transparency log. #11310
[cli] Adds a flag that allows user to set the node label as the resource name instead of full URN in the stack graph #11383
[cli] pulumi destroy --remove will now delete the stack config file #11394
[cli] Allow rotating the encrpytion key for cloud secrets. #11554
[cli/{config,new,package}] Preserve comments on editing of project and config files. #11456
[sdk/dotnet] Add Output.JsonSerialize using System.Text.Json. #11556
[sdk/go] Add JSONMarshal to go sdk. #11609
[sdkgen/{dotnet,nodejs}] Initial implementation of simplified invokes for dotnet and nodejs. #11418
[sdk/nodejs] Delegates alias computation to engine for Node SDK #11206
[sdk/nodejs] Emit closure requires in global scope for improved cold start on Lambda #11481
[sdk/nodejs] Add output jsonStringify using JSON.stringify. #11605
[sdk/python] Add json_dumps to python sdk. #11607
[backend/service] Fixes out-of-memory issues when using PULUMI_OPTIMIZED_CHECKPOINT_PATCH protocol #11666
[cli] Improve performance of convert to not try and load so many provider plugins. #11639
[programgen] Don't panic on some empty objects #11660
[cli/display] Fixes negative durations on update display. #11631
[programgen/go] Check for optional/ Ptr types within Union types. This fixes a bug in Go programgen where optional outputs are not returned as pointers. #11635
[sdkgen/{dotnet,go,nodejs,python}] Do not generate Result types for functions with empty outputs #11596
[sdk/python] Fix a deadlock on provider-side error with automation api #11595
[sdkgen/{dotnet,nodejs}] Fix imports when a component is using another component from the same schema as a property #11606 #11467
[sdkgen/go] Illegal cast in resource constructors when secret-wrapping input arguments. #11673
Previously this required setting the PULUMI_OPTIMIZED_CHECKPOINT_PATCH env variable on the client. This env variable is now deprecated. #11421
[sdk] Add methods to cast pointer types to corresponding Pulumi Ptr types #11539
[yaml] Updates Pulumi YAML to v1.0.4 unblocking Docker Image resource support in a future Docker provider release. #11583
[backend/service] Allows the service to opt into a bandwidth-optimized DIFF protocol for storing checkpoints. Previously this required setting the PULUMI_OPTIMIZED_CHECKPOINT_PATCH env variable on the client. This env variable is now deprecated. #11421
[cli/about] Add fully qualified stack name to current stack. #11387
[sdk/{dotnet,nodejs}] Add InvokeSingle variants to dotnet and nodejs SDKs #11564
[docs] Exclude id output property for component resources #11469
[engine] Fix an assert for resources being replaced but also pending deletion. #11475
[pkg] Fixes codegen/python generation of non-string secrets in provider properties #11494
[pkg/testing] Optionally caches python venvs for testing #11532
[programgen] Improve error message for invalid enum values on pulumi convert.
#11019
[programgen] Interpret schema.Asset as pcl.AssetOrArchive. #11593
[programgen/go] Convert the result of immediate invokes to ouputs when necessary. #11480
[programgen/nodejs] Add . between ? and [.
#11477
[programgen/nodejs] Fix capitalization when generating fs.readdirSync.
#11478
[sdk/nodejs] Fix regression when passing a provider to a MLC #11509
[sdk/python] Allows for duplicate output values in python #11559
[sdkgen/go] Fixes superfluous newline being added between documentation comment and package statement in doc.go #11492
[sdkgen/nodejs] Generate JS doc comments for output-versioned invokes and use explicit any type. #11511
[cli] Don't print update plan message with --json. #11454
[cli] Add prompt to up to use experimental update plans. #11353
[sdk/{dotnet,go,nodejs}] Attempt to select stack then create as fallback on 'createOrSelect' #11402
[cli] Added "--from=tf" to pulumi convert. #11341
[cli] Added "--from=tf" to pulumi convert. #11341
[engine] Engine and Golang support for language plugins starting providers directly. #10916
[sdk/dotnet] Add DictionaryInvokeArgs for dynamically constructing invoke input bag of properties. #11335
[sdk/go] Allow sane conversions for As*Map* and As*Array* conversions.
#11351
[sdkgen/{dotnet,nodejs}] Add default dependencies for generated SDKs. #11315
[sdkgen/nodejs] Splits input and output definitions into multiple files. #10831
[cli] Fix stack selection prompt. #11354
[engine] Always keep resources when pulumi:pulumi:getResource is invoked #11382
[pkg] Fix a panic in codegen for an edge case involving object expressions without corresponding function arguments. #11311
[programgen] Enable type checking for resource attributes #11371
[cli/display] Fix text cutting off prior to the edge of the terminal #11202
[programgen/{dotnet,go,nodejs,python}] Don't generate traverse errors when typechecking a dynamic type #11359
[sdk/{go,nodejs,python}] Set acceptResources when invoking pulumi:pulumi:getResource #11382
[sdk/python] Copy ResourceOptions correctly during a merge. #11327
[cli] Enables debug tracing of Pulumi gRPC internals: PULUMI_DEBUG_GRPC=$PWD/grpc.json pulumi up #11085
[cli] Enables debug tracing of Pulumi gRPC internals: PULUMI_DEBUG_GRPC=$PWD/grpc.json pulumi up
#11085
[cli/display] Improve the usability of the interactive dipslay by making the treetable scrollable #11200
[pkg] Add DeletedWith as a resource option.
#11095
[programgen] More programs can be converted to Pulumi when using pulumi convert, provider bridging, and conversion tools by allowing property accesses and field names to fall back to a case insensitive lookup.
#11266
[engine] Disable auto parenting to see if that fixes #10950. #11272
[yaml] Updates Pulumi YAML to v1.0.2 which fixes a bug encountered using templates with project level config. #11296
[sdkgen/go] Allow resource names that conflict with additional types. #11244
[sdkgen/go] Guard against conflicting field names. #11262
[sdk/python] Handle None being passed to register_resource_outputs. #11226
[auto/dotnet] Support for remote operations #11194
[auto/dotnet] Support for remote operations #11194
[cli/config] Typing made optional, extended short-hand values to arrays and correctly pass stack name to config validator #11192
[auto/go] Support for remote operations #11168
[auto/nodejs] Support for remote operations #11170
[auto/python] Support for remote operations #11174
[cli/state] Add the --target-dependents flag to pulumi state delete #11164
[cli] Allow globbing for resources that do not yet exist #11150
[engine] Fix an invalid cast in analyzer plugins. #11141
[sdk/go] Update notes, update the deprecated functions, make some lint. #11002
[auto/go] Add InstallPluginFromServer method #10955
[auto/nodejs] Add InstallPluginFromServer #10955
[auto/python] Add install_plugin_from_server #10955
[cli] Implement initial MVP for hierarchical and structured project configuration. #10832
[cli] Allow rotating the passphrase non-interactively #11094
[programgen] Add error reporting infrastructure #11032
[ci] Fix pull request URLs in Pulumi changelogs #11060
[engine] Fix type validation of stack config with secure values. #11084
[cli/engine] Component Resources inherit thier parents providers map #10933
[cli/import] Only trigger an import when necessary during refresh. #11100
[sdk/go] Allow decoding *asset and *archive values #11053
[sdkgen/{go,python}] Handle hypheneated names in go and python #11049
[sdk/nodejs] Fixes loss of undefined type case in all()
#11048
[sdk/python] pulumi.automation.create_or_select_stack() attempts to select the stack before attempting to create #11115
[sdk/python] Python runtime now respects the --parallel flag. #11122
[sdkgen/{go,python}] Revert 10738, fixing python class generation #11033
[auto/nodejs] Adds support for parallel programs in NodeJS Automation API #10568
[auto/nodejs] Adds support for parallel programs in NodeJS Automation API #10568
[backend/service] Implements diff-based snapshot saving protocol that reduces bandwidth on large stacks. To opt into this feature, set the environment variable and value PULUMI_OPTIMIZED_CHECKPOINT_PATCH=true.
#10788
[engine] Adds structured alias support to the engine #10819
[cli/display] Displays time elapsed when modifying a resource. #10953
[sdk/go] Modifies built-in As-ArrayOutput methods to attempt to convert []interface{} to []T. #10991
[sdkgen/go] Add modulePath to go, allowing accurate go.mod files for prerelease packages
#10944
[cli/new] Add --remove flag topulumi destroy
#10943
[cli] Project path is included in error messages when a project can't be loaded. #10973
[cli/display] Fix gocloud unconditonally writing to stderr. #11007
[cli/{display,engine}] Use of unsupported ResourceOptions on components will no longer raise resource warnings, instead they are just logged to the diagnostic error stream. #11010
[cli/import] Handle importing resource properties that are typed as a union #10995
[cli/package] Require a path separator for path based binaries. This allows us to distinguish between ./myProvider (execute the binary at path) and myProvider (execute the installed plugin). #11015
[programgen/dotnet] Annotate deeply nested objects with their schema types and apply property name overrides #10976
[programgen/go] Fixes int constant range expressions for go #10979
[programgen/go] Missing default case handling when generating local variables #10978
[sdk/go] Avoid backfilling property deps for Go #11021
[sdkgen] Re-enables caching the schemas of versioned provider plugins. #10971
[programgen/python] Recursively annotate expressions under invoke calls with their associated schema types #10958
pulumi convert from YAML."
#11018[cli/new] Fix cloning templates from Azure DevOps repos. #10954
[backend] Allows CLI auth for Azure blob storage #10900
[backend] Allows CLI auth for Azure blob storage #10900
[cli/{about,plugin}] Remove experimental feature for plugins from private github releases. This is now supported by github: plugin urls, see https://www.pulumi.com/docs/guides/pulumi-packages/how-to-author/#support-for-github-releases.
#10896
[sdk/go] Adds an UnsafeAwaitOutput function to the Go SDK. This permits a workaround for component providers and other advanced scenarios where resources created are conditional on an output.
#10877
[sdk/python] Add invoke to Provider interface. #10906
[sdk/python] Add Output.format to the python SDK. #10919
[cli] Prevent sending on a closed channel panics during 'pulumi convert' #10893
[programgen/go] Fix codegen for __apply functions
#10775
[sdk/go] Go programs run with Go 1.17 or below failed due to go mod tidy being run with -compat=1.18. The change is reverted. #10865
[sdk/go] Fixed bug in (ours, theirs) to (theirs, theirs) #10881
[sdk/python] Fix KeyError in UpdateSummary. #10907
[sdkgen/nodejs] Fixes a bug with lazy-loaded modules that caused mixins to observe unexpected null values. #10871
Nothing published for this version
[cli] Allow per-execution override of the cloud secrets provider url via the PULUMI_CLOUD_SECRET_OVERRIDE environment variable. This allows a temporar
[cli] Allow per-execution override of the cloud secrets provider url via the PULUMI_CLOUD_SECRET_OVERRIDE environment variable. This allows a temporary replacement without updating the stack config, such a during CI. This does not effect stacks using service secrets or passphrases.
#10749
#10749
#10749
[cli/new] Enables pulumi new to use templates from Azure DevOps(currently limited to master/main branches and does not support providing subdirectories).
#10789
[engine] 'pulumi policy new' now uses the same system as 'pulumi new' to install dependencies. #10797
[programgen] Support resource option "version" in pulumi convert to select specific provider SDK versions.
#10194
[cli/plugin] Don't retry plugin downloads in 403 and 404 responses #10803
[sdk/dotnet] Added Deployment.OrganizationName to return the current organization if available.
#10564
[sdk/go] Pulumi Go Programs now support a Pulumi.yaml option buildTarget: path/to/binary to compile/recompile a Go binary to that location.
#10731
[sdk/go] Added Context.Organization to return the current organization if available.
#10811
[ci] Re-enable Homebrew Tap publishing. #10796
[cli] Fixes --tracing to account for response parsing in HTTP api/* spans. #10828
[cli] Fixes Pulumi.yaml validation error when the refresh: always option is specified
#10833
[engine] Mark pulumi-analyzer-policy and pulumi-analyzer-policy-python as bundled plugins. #10817
[engine] Fix node and python MLCs on Windows. #10827
[sdkgen/dotnet] Fixes a .NET SDK codegen bug when emitting functions with secret parameters. #10840
[sdkgen/dotnet] Fix the type emitted for ImmutableArray.Create and ImmutableDictionary.Create for secret properties.
#10850
[sdk/nodejs] The @pulumi/pulumi package is now interoperable with ESModules.
#10622
[sdk/{nodejs,python}] getOrganization now returns "organization" by default.
#10820
[programgen/yaml] Fix incorrect import for non-pulumi owned package on convert #10727
[backend] Adds a flag PULUMI_SKIP_CHECKPOINTS=true that makes Pulumi skip saving state checkpoints as it modifies resources and only save the final st
[backend] Adds a flag PULUMI_SKIP_CHECKPOINTS=true that makes Pulumi skip saving state checkpoints as it modifies resources and only save the final state of a deployment.
#10750
This is an experimental feature that also requires PULUMI_EXPERIMENTAL=true to be set.
Using the feature introduces risk that in the case of network disconnect or crash state edits will be lost and may require manual recovery. When this risk is acceptable, using the feature can speed up Pulumi deployments.
See also:
[ci] Improves first-time contributor developer experience and reduces test execution time by defaulting integration.ProgramTest to a filestate backend. Tests that require running against a service should set RequireService to true.
#10720
[cli] Add a package author focused subcommand: pulumi package with subcommands pulumi package gen-sdk and pulumi package get-schema.
#10711
[cli] Use "https://github.com/pulumi/pulumi/blob/master/sdk/go/common/workspace/project.json" to validate loaded project files. #10596
[engine] Plugin resolution now automatically installs any missing plugins as they are encountered. #10691
[provider/go]: Added support for token authentication in the go providers which use git. #10628
[provider/go]: Added support for token authentication in the go providers which use git. #10628
[codegen/go] Chunk the pulumiTypes.go file to reduce max file size.
#10666
Fix invalid resource type on pulumi convert to Go
#10670
[auto/nodejs] onOutput is now called incrementally as the
underyling Pulumi process produces data, instead of being called
once at the end of the process execution. This restores behavior
that regressed since 3.39.0.
#10678
[sdk/python] Improve error message when pulumi-python cannot find a main program. #10617
[sdk/python] Improve error message when pulumi-python cannot find a main program. #10617
[cli] provide info message to user if a pulumi program contains no resources #10461
up, preview, ...)
when used with the nodejs runtime. Reverts #10530.
#10650[sdk/go] Pulumi Go programs, on failure, now log a single error message. #10347
[cli] Display outputs last in diff view. #10535
[cli] Display outputs last in diff view. #10535
[sdk/python] Dropped support for Python 3.6. #10529
[codegen/nodejs] Support lazy-loading Node modules. #10538
[cli/backend] Gzip compress HTTPS payloads for pulumi import and secret decryption against
the Pulumi Service backend.
#10558
[yaml] Updates Pulumi YAML to v0.5.5
[cli] Allow pulumi refresh to interactively resolve pending creates.
#10394
[cli] Clarify highlighting of confirmation text in confirmPrompt.
#10413
[provider/python]: Improved exception display. The traceback is now shorter and it always starts with user code. #10336
[sdk/python] Update PyYAML to 6.0
[cli/watch] pulumi watch now uses relies on a program built on watchexec
to implement recursive file watching, improving performance and cross-platform compatibility.
This pulumi-watch program is now included in releases.
#10213
[codegen] Reduce time to execute pulumi convert and some YAML programs, depending on providers used, by up to 3 seconds.
#10444
[dotnet/sdk] Implement Deployment.TestAsync overloads which accept functions that create resources without requiring a stack definition.
#10458
[sdk/nodejs] Added stack truncation to SyntaxError in nodejs.
#10465
[sdk/python] Makes global SETTINGS values context-aware to not leak state between Pulumi programs running in parallel #10402
[sdk/python] Makes global ROOT, CONFIG, _SECRET_KEYS ContextVars to not leak state between parallel inline Pulumi programs #10472
[sdk/go] Improve error messages for StackReferences
#10477
[sdk/dotnet] Added Output.CreateSecret<T>(Output<T> value) to set the secret bit on an output value.
#10467
[policy] pulumi policy publish now takes into account .gitignore files higher in the file tree.
#10493
[sdk/go] enable direct compilation via go build(set PULUMI_GO_USE_RUN=true to opt out)
#10375
[cli/backend] Updates no longer immediately renew the token but wait until the token is halfway through its expiration period. Currently it is assumed tokens expire in 5 minutes, so with this change the first lease renewal now happens approximately 2.5 minutes after the start of the update. The change optimizes startup latency for Pulumi CLI. #10462
[cli/plugin] plugin install now supports a --checksum option.
#10528
[sdk/{nodejs/python}] Added getOrganization() to return the current organization if available.
#10504
[codegen/go] Fix StackReference codegen. [#10260](https://github.com/pulumi/pulumi/pull/10260
[engine/backends]: Fix bug where File state backend failed to apply validation to stack names, resulting in a panic. #10417
[cli] Fix VCS detection for domains other than .com and .org. #10415
[codegen/go] Fix incorrect method call for reading floating point values from configuration. #10445
[engine]: HTML characters are no longer escaped in JSON output. #10440
[codegen/go] Ensure consistency between go docs information and package name #10452
[auto/go] Clone non-default branches (and tags). #10285
[cli] Fixes survey.v1 panics in Terminal UI introduced in
#10130 in v3.38.0.
#10475
[codegen/ts] Fix non-pulumi owned provider import alias. #10447
[codegen/go] Fix import path for non-pulumi owner providers #10485
[cli] Fixes panics on repeat Ctrl+C invocation during long-running updates #10489
[cli] Improve Windows reliability with dependency update to ssh-agent #10486
[sdk/{dotnet,nodejs,python}] Dynamic providers and automation API will not trigger a firewall permission prompt, will only accept network requests via loopback address. #10498 #10502 #10503
[cli] Fix pulumi console command to follow documented behavior in help message/docs.
#10509
[sdk/nodejs] Fixes an issue which would occur when multiple processes were spawned and some would receive no stdout/stderr 10522
[engine] Plugin resolution now automatically installs any missing plugins as they are encountered. #10530
[python] put python version check after installing dependencies to resolve fork/exec warning
#10524
[go/codegen] Fix generating invalid Go code when derivatives of input types collide with existing resource types #10551
Your coding agent can read these notes before it upgrades. Set up the MCP server →