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 4 days ago
05 Oct 2026
Ships fairly regularly
a new release about every 2 weeks
Most releases are documented
notes for 45 of the last 60 stable releases
4 versions withdrawn
withdrawn after publishing
127 years old
276 releases · first in 1900
[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
One column per quarter.
[sdk/python] Deprecate PULUMI_TEST_MODE #10400
[cli] Updated to the latest version of go-git. #10330
[sdk] Merge python error message and traceback into single error message. #10348
[sdk/python] Support optional default parameters in pulumi.Config #10344
[sdk/nodejs] Adds warning message when entrypoint resolution is ambiguous #3582
[automation] Add options for Automation API in each SDK to control logging and tracing, allowing
automation API to run with the equivalent of CLI arguments --logflow, --verbose,
--logtostderr, --tracing and --debug
#10338
[cli] pulumi about now queries language plugins for information, rather than having hardcoded language logic.
#10392
[sdk/python] Deprecate PULUMI_TEST_MODE #10400
[cli] Paginate template options #10130
[sdk/dotnet] Fix serialization of non-generic list types. #10277
[codegen/nodejs] Correctly reference external enums. #10286
[sdk/python] Support deeply nested protobuf objects. #10284
Revert Remove api/renewLease from startup crit path to fix #10293. #10294
[codegen/go] Remove superfluous double forward slash from doc.go #10317
[codegen/go] Add an external package cache option to GenerateProgramOptions.
#10340
[cli/plugins] Don't retry plugin downloads that failed due to local file errors. #10341
[dotnet] Set environment exit code during Deployment.RunAsync in case users don't bubble it the program entry point themselves
#10217
[cli/display] Fix a panic in the color logic. [#10354](https://github.com/pulumi/pulumi/pull/10354
[sdk/dotnet] Fix serialization of non-generic list types. #10277
[sdk/dotnet] Fix serialization of non-generic list types. #10277
[codegen/nodejs] Correctly reference external enums. #10286
[sdk/python] Support deeply nested protobuf objects. #10284
Revert Remove api/renewLease from startup crit path to fix #10293. #10294
[cli] Groups pulumi help commands by category #10170
[cli] Groups pulumi help commands by category
#10170
[sdk/nodejs] Removed stack trace output for Typescript compilation errors #10259
pulumi/*.exe instead
of pulumi/bin/*.exe.
#10264[sdk/go] config.Encrypter and config.Decrypter interfaces now require explicit Context. This is a minor breaking change to the SDK. The change fixes p…
Language SDKs<3.0.0
#10239[auto/go] Adds the ability to capture incremental stderr
via the new option ErrorProgressStreams.
#10179
[cli/plugins] Warn that using GITHUB_REPOSITORY_OWNER is deprecated. #10142
[dotnet/codegen] code generation for csharp Pulumi programs now targets .NET 6 #10143
[cli] Allow pulumi plugin install <type> <pkg> -f <path> to target a binary
file or a folder.
#10094
[cli/config] Allow pulumi config cp --path between objects.
#10147
[codegen/schema] Support stack reference as a resource #10174
[backends] When logging in to a file backend, validate that the bucket is accessible. #10012
[cli] Add flag to specify whether to install dependencies on pulumi convert.
#10198
[cli] Expose gen-completion command when running pulumi --help.
#10218
[sdk/go] Expose context.Context from pulumi.Context. #10190
[cli/plugins] Add local plugin linkage in Pulumi.yaml.
#10146
[engine] Remove sequence numbers from the engine and provider interfaces. #10203
[engine] The engine will retry plugin downloads that error. #10248
[cli] Only log github request headers at log level 11. #10140
[sdk/go] config.Encrypter and config.Decrypter interfaces now
require explicit Context. This is a minor breaking change to the
SDK. The change fixes parenting of opentracing spans that decorate
calls to the Pulumi Service crypter.
[codegen/go] Support program generation, pulumi convert for programs that create explicit
provider resources.
#10132
[sdk/go] Remove the AsName and AsQName asserting functions.
#10156
[python] PULUMI_PYTHON_CMD is checked for deciding what python binary to use in a virtual environment. #10155
[cli] Reduced the noisiness of pulumi new --help by replacing the list of available templates to just the number.
#10164
[cli] Revert "Add last status to pulumi stack ls output #10059"
#10221
[python] Fix overriding of PATH on Windows. #10236
[dotnet/codgen] Allow specified root namespace to be suffixed with "Pulumi" when generating packages #10245
[dotnet/sdk] Serialize immutable arrays initialized by default. #10247
[dotnet/codegen] Override static Empty property to return concrete argument types
#10250
[cli] Display outputs during the very first preview. #10031
[cli] Display outputs during the very first preview. #10031
[cli] Add Last Status to pulumi stack ls output.
#6148
[cli] Allow pulumi destroy -s <stack> if not in a Pulumi project dir
#9918
[protobuf] Pulumi protobuf messages are now namespaced under "pulumi". #10074
[cli] Truncate long stack outputs #9905
[sdk/go] Add As*Output methods to AnyOutput
#10085
[sdk/go] Accept a short branch name in GitRepo.Branch
#10118
[cli] pulumi convert help text is wrong
#9892
[go/codegen] fix error assignment when creating a new resource in generated go code #10049
[cli] pulumi convert generates incorrect input parameter names for C#
#10042
[engine] Un-parent child resource when a resource is deleted during a refresh. #10073
[cli] pulumi state change-secrets-provider now takes --stack into account
#10075
[nodejs/sdkgen] Default set pulumi.name in package.json to the pulumi package name.
#10088
[sdk/python] update protobuf library to v4 which speeds up pulumi CLI dramatically on M1 machines #10063
[engine] Fix data races discovered in CLI and Go SDK that could cause nondeterministic behavior or a panic. #10081, #10100
[go] Fix panic when returning pulumi.Bool, .String, .Int, and .Float64 in the argument to ApplyT and casting the result to the corresponding output, e.g.: BoolOutput. #10103
[plugins] Plugin download urls now support GitHub as a first class url schema. For example "github://api.github.com/pulumiverse". #9984
[sdk/go] Added PreviewDigest for third party tools to be able to ingest the preview json #9886
[sdk/go] Added PreviewDigest for third party tools to be able to ingest the preview json
#9886
[cli] Do not require the --yes option if the --skip-preview option is set.
#9972
[yaml] Updates Pulumi YAML to v0.5.2,
containing bug fixes and improvements primarily for pulumi convert from YAML.
#9993
[cli] The engine will now warn when a resource option is applied to a Component resource when that option will have no effect. This extends #9863 whic
[cli] The engine will now warn when a resource option is applied to a Component resource when that option will have no effect. This extends #9863 which only warns for the ignoreChanges resource options.
#9921
[auto/*] Add a option to control the --show-secrets flag in the automation API.
#9879
[auto/*] Add --policy-pack and --policy-pack-configs options to automation API. #9872
[auto/*] Add --policy-pack and --policy-pack-configs options to automation API.
#9872
[cli] The engine now produces a warning when the 'ignoreChanges' option is applied to a Component resource. #9863
[sdk/python] Changed Output[T].__str__() to return an informative message rather than "<pulumi.output.Output object at 0x012345ABCDEF>".
#9848
[cli] The engine will now default resource parent to the root stack if it exists. #9481
[engine] Reduce memory usage in convert and yaml programs by caching of package schemas. #9684
[sdk/go] Added NewUniqueName for providers to use for generating autonames.
#9852
[engine] The engine now understands alias objects which it can resolve to URNs, requiring less logic in SDKs. #9731
[sdk/dotnet] The dotnet SDK will now send alias objects rather than URNs to the engine. #9731
[cli] Add java to pulumi convert
#9917
[sdk/go] Handle nils in mapper encoding. #9810
[engine] Explicit providers use the same plugin as default providers unless otherwise requested. #9708
[sdk/go] Correctly parse nested git projects in GitLab. #9354
[sdk/go] Mark StackReference keys that don't exist as unknown. Error when converting unknown keys to strings. #9855
[sdk/go] Precisely mark values obtained via stack reference Get...Output(key) methods as secret or not.
#9842
[codegen/go] Import external Enum types as external. #9920
[codegen/go] Correctly generate nested Input and Ouput collection types.
#9887
[engine] Revert the additional secret outputs warning until the engine can understand optional outputs. #9922
[cli/python] Respond to SIGINT when installing plugins. #9793
[cli/python] Respond to SIGINT when installing plugins. #9793
[codegen/go] Always chose the correct version when respectSchemaVersion is set.
#9798
[sdk/python] Better explain the keyword arguments to create(etc)_stack. #9794
[cli] Revert changes causing a panic in pulumi destroy that tried to operate without config files.
#9821
[cli] Revert to statically linked binaries on Windows and Linux, fixing a regression introduced in 3.34.0 #9816
[codegen/python] ResourceOptions are no longer mutated by resources. #9802
[codegen/go] Handle long and complicated traversals in a nicer way. #9726
[codegen/go] Handle long and complicated traversals in a nicer way. #9726
[cli] Allow pulumi destroy -s <stack> if not in a Pulumi project dir
#9613
[cli] Plugins will now shut themselves down if they can't contact the engine that started them. #9735
[cli/engine] The engine will emit a warning of a key given in additional secret outputs doesn't match any of the property keys on the resources. #9750
[sdk/go] Add CompositeInvoke function, like Composite but for InvokeOption.
#9752
[cli] The gcpkms:// now supports the same credentials resolution mechanism as the state store, including the GOOGLE_CREDENTIALS.`
#6379
[yaml] Updates Pulumi YAML to v0.5.1,
containing bug fixes, new functions, diagnostics and validation. Fixes support for using providers
such as awsx.
#9797
[sdk/nodejs] Fix a crash due to dependency cycles from component resources. #9683
[cli/about] Make pulumi about aware of the YAML and Java runtimes.
#9745
[cli/engine] Fix a panic deserializing resource plans without goals. #9749
[cli/engine] Provide a sorting for plugins of equivalent version. #9761
[cli/backend] Fix degraded performance in filestate backend #9777 #9796
[engine] Engine correctly the number of bytes written to a TAR archive is what was expected. #9792
[cli] pulumi logout now prints a confirmation message that it logged out. #9641
[cli] pulumi logout now prints a confirmation message that it logged out.
#9641
[cli/backend] Add gzip compression to filestate backend. Compression can be enabled via PULUMI_SELF_MANAGED_STATE_GZIP=true. Special thanks to @awoimbee for the initial PR.
#9610
[sdk/nodejs] Lazy load inflight context to remove module import side-effect. #9375
[sdk/python] Fix spurious diffs causing an "update" on resources created by dynamic providers. #9656
[sdk/python] Do not depend on the children of remote component resources. #9665
[codegen/nodejs] Emit the "package.json".pulumi.server as "server" correctly. Previously, "pluginDownloadURL" was emitted but never read. #9662
[cli] Fix panic in pulumi console when no stack is selected.
#9594
[cli] Engine now correctly tracks that resource reads have unique URNs. #9516
[sdk/python] Fixed bug in automation API that invoked Pulumi with malformed arguments. #9607
[cli/backend] Fix a panic in the filestate backend when renaming history files. #9673
[sdk/python] Pin protobuf library to <4. #9696
[sdk/proto] Inline dockerfile used to generate protobuf code. #9700
[sdk/dotnet] Bumped several dependency versions to avoid pulling packages with known vulnerabilities. #9591
[cli] Add --stack to pulumi about.
#9518
[sdk/dotnet] Bumped several dependency versions to avoid pulling packages with known vulnerabilities. #9591
[cli] Updated gocloud.dev to 0.24.0, which adds support for using AWS SDK v2. It enables users to pass an AWS profile to the awskms secrets provider url (i.e. awskms://alias/pulumi?awssdk=v2®ion=eu-west-1&profile=aws-prod)
#9590
[sdk/nodejs] Lazy load V8 inspector session to remove module import side-effect #9375
[cli] The PULUMI_CONFIG_PASSPHRASE environment variables can be empty, this is treated different to being unset. #9568
[codegen/python] Fix importing of enum types from other packages. #9579
[cli] Fix panic in pulumi console when no stack is selected.
#9594
[auto/python] - Fix text color argument being ignored during stack operations. #9615
[cli/plugins] The engine will try to lookup the latest version of plugins if the program doesn't specify a version to use. #9537
### Improvements - Pulumi Java support - Pulumi YAML support
[dotnet] No longer roundtrips requests for the stack URN via the engine. #9515
[codegen/go] Enable obtaining resource outputs off a ResourceOutput. #9513
[codegen/go] Ensure that "plain" generates shallowly plain types. #9512
[codegen/nodejs] Fix enum naming when the enum name starts with _.
#9453
[cli] Empty passphrases environment variables are now treated as if the variable was not set. #9490
[sdk/go] Fix awaits for outputs containing resources. #9106
[cli] Decode YAML mappings with numeric keys during diff. #9502
[cli] Fix an issue with explicit and default organization names in pulumi new
#9514
[auto/*] Add --save-plan and --plan options to automation API. #9391
[auto/*] Add --save-plan and --plan options to automation API.
#9391
[cli] "down" is now treated as an alias of "destroy". #9458
[go] Add Composite resource option allowing several options to be encapsulated into a "single" option.
#9459
[codegen] Support all Asset and Archive types. #9463
[cli] Display JSON/YAML property values as objects for creates, sames, and deletes. #9484
[codegen/go] Ensure that plain properties are plain. #9430 #9488
[cli] Fixed some context leaks where shutdown code wasn't correctly called. #9438
[cli] Do not render array diffs for unchanged elements without recorded values. #9448
[auto/go] Fixed the exit code reported by runPulumiCommandSync to be zero if the command runs successfully. Previously it returned -2 which could lead to confusing messages if the exit code was used for other errors, such as in Stack.Preview.
#9443
[auto/go] Fixed a race condition that could cause Preview to fail with "failed to get preview summary".
#9467
[backend/filestate] Fix a bug creating stack.json.bak files.
#9476
[cli] Split invoke request protobufs, as monitors and providers take different arguments. #9323
[cli] Split invoke request protobufs, as monitors and providers take different arguments. #9323
[providers] - gRPC providers can now support an Attach method for debugging. The engine will attach to providers listed in the PULUMI_DEBUG_PROVIDERS environment variable. This should be of the form "providerName:port,otherProvider:port". #8979
[codegen/node] - Fix an issue with escaping deprecation messages. #9371
[cli] - Installing of language specific project dependencies is now managed by the language plugins, not the pulumi cli. #9294
[cli] Warn users when there are pending operations but proceed with deployment #9293
[cli] Display more useful diffs for secrets that are not primitive values #9351
[cli] - Warn when additionalSecretOutputs is used to mark the id property as secret.
#9360
[cli] Display richer diffs for texutal property values. #9376
[cli] Display richer diffs for JSON/YAML property values. #9380
Nothing published for this version
When a resource is aliased to an existing resource with a different URN, only store the alias of the existing resource in the statefile rather than st
When a resource is aliased to an existing resource with a different URN, only store the alias of the existing resource in the statefile rather than storing all possible aliases. #9288
Clear pending operations during pulumi refresh or pulumi up -r.
#8435
[cli] - pulumi whoami --verbose and pulumi about include a list of the current users organizations.
#9211
[codegen/go] - Fix Go SDK function output to check for errors pulumi-aws#1872
[cli/engine] - Fix a panic due to Check returning nil while using update plans.
#9304
[cli] - Implement pulumi stack unselect. #9179
[cli] - Implement pulumi stack unselect.
#9179
[language/dotnet] - Updated Pulumi dotnet packages to use grpc-dotnet instead of grpc. #9149
[cli/config] - Rename the config property in Pulumi.yaml to stackConfigDir. The config key will continue to be supported.
#9145
[cli/plugins] Add support for downloading plugin from private Pulumi GitHub releases. This also drops the use of the GITHUB_ACTOR and GITHUB_PERSONAL_ACCESS_TOKEN environment variables for authenticating to github. Only GITHUB_TOKEN is now used, but this can be set to a personal access token.
#9185
[cli] - Speed up pulumi stack --show-name by skipping unneeded snapshot loading.
#9199
[cli/plugins] - Improved error message for missing plugins. #5208
[sdk/nodejs] - Take engines property into account when engine-strict appear in npmrc file #9249
[sdk/nodejs] - Fix uncaught error "ENOENT: no such file or directory" when an error occurs during the stack up. #9065
[sdk/nodejs] - Fix uncaught error "ENOENT: no such file or directory" when an error occurs during the stack preview. #9272
[sdk/go] - Fix a panic in pulumi.All when using pointer inputs.
#9197
[cli/engine] - Fix a panic due to passing "" as the ID for a resource read.
#9243
[cli/engine] - Fix a panic due to Check failing while using update plans.
#9254
[cli] - Stack names correctly take org set-default into account when printing.
#9240
[cli/new] Fix an error message when the project name picked by default was already used. #9156
[area/cli] - Implemented state rename command. #9098
[area/cli] - Implemented state rename command.
#9098
[cli/plugins] pulumi plugin install can now look up the latest version of plugins on GitHub releases.
#9012
[cli/backend] - pulumi cancel is now supported for the file state backend.
#9100
[cli/import] - The import command no longer errors if resource properties do not validate. Instead the engine warns about property issues returned by the provider but then continues with the import and codegen as best it can. This should result in more resources being imported to the pulumi state and being able to generate some code, at the cost that the generated code may not work as is in an update. Users will have to edit the code to successfully run. #8922
[cli/import] - Code generation in pulumi import can now be disabled with the --generate-code=false flag.
#9141
[sdk/nodejs] - Fix Node fs.rmdir DeprecationWarning for Node JS 15.X+ #9044
[sdk/nodejs] - Fix Node fs.rmdir DeprecationWarning for Node JS 15.X+
#9044
[engine] - Fix deny default provider handling for Invokes and Reads. #9067
[codegen/go] - Fix secret codegen for input properties #9052
[sdk/nodejs] - PULUMI_NODEJS_TSCONFIG_PATH is now explicitly passed to tsnode for the tsconfig file.
#9062
[codegen/go] - Add GenerateProgramWithOpts function to enable configurable codegen options. #8997
[codegen/go] - Add GenerateProgramWithOpts function to enable configurable codegen options. #8997
[cli] - Enabled dot spinner for non-interactive mode #8996
[sdk] - Add RetainOnDelete as a resource option.
#8746
[cli] - Adding completion as an alias to gen-completion
#9006
[cli/plugins] Add support for downloading plugin from private GitHub releases. #8944
[sdk/go] - Normalize merge behavior for ResourceOptions, inline
with other SDKs. See https://github.com/pulumi/pulumi/issues/8796 for more
details.
#8882
[sdk/go] - Correctly parse GoLang version. #8920
[sdk/go] - Fix git initialization in git_test.go #8924
[cli/go] - Fix git initialization in util_test.go #8924
[sdk/nodejs] - Fix nodejs function serialization module path to comply with package.json exports if exports is specified. #8893
[cli/python] - Parse a larger subset of PEP440 when guessing Pulumi package versions. #8958
[sdk/nodejs] - Allow disabling TypeScript typechecking #8981
[cli/backend] - Revert a change to file state locking that was causing stacks to stay locked. #8995
[cli] - Fix passphrase secrets provider prompting. #8986
[cli] - Fix an assert when replacing protected resources. #9004
[release] - Update .gitignore to allow for a clean git repository for release. #8932
Nothing published for this version
This changes the general behavior of merging for .provider and .providers, as described in #8796. Note that this is a breaking change in two ways:
[codegen/dotnet] - Add C# extension rootNamespace, allowing the user to
replace Pulumi as the default C# global namespace in generated programs.
The Company and Author fields of the .csproj file are now driven by
schema.publisher.
#8735
[cli] Download provider plugins from GitHub Releases #8785
[cli] Using a decryptAll functionality when deserializing a deployment. This will allow decryption of secrets stored in the Pulumi Service backend to happen in bulk for performance increase #8676
[sdk/dotnet] - Changed Output<T>.ToString() to return an informative message rather than just "Output`1[X]"
#8767
[cli] Add the concept of sequence numbers to the engine and resource provider interface. #8631
[common] Allow names with hyphens.
[cli] - Add support for overriding plugin download URLs. #8798
[automation] - Add color option to stack up, preview, refresh, and destroy commands.
#8811
[sdk/nodejs] - Support top-level default exports in ESM. #8766
[cli] - Allow disabling default providers via the Pulumi config. #8829
[cli] Add better error message for pulumi service rate limit responses #7963
[sdk/{python,nodejs}] - Prevent ResourceOptions.merge from promoting between the
.provider and .providers fields. This changes the general behavior of merging
for .provider and .providers, as described in #8796.
Note that this is a breaking change in two ways:
ValueError. In the past it would send to the provider, and
generally crash the provider.ResourceOptions with provider set no longer hoists to providers.
One provider will now take priority over the other. The new behavior reflects the
common case for ResourceOptions.merge. To restore the old behavior, replace
ResourceOptions(provider=FooProvider).merge(ResourceOptions(provider=BarProvider))
with ResourceOptions(providers=[FooProvider]).merge(ResourceOptions(providers=[BarProvider])).
#8770[codegen/nodejs] - Generate an install script that runs pulumi plugin install with
the --server flag when necessary.
#8730
[cli] The engine will no longer try to replace resources that are protected as that entails a delete. #8810
[codegen/pcl] - Fix handling of function invokes without args #8805
[sdk/dotnet] - Add PluginDownloadURL as a resource option. When provided by the schema, PluginDownloadURL will be baked into new Resource and Invoke r
[sdk/dotnet] - Add PluginDownloadURL as a resource option. When provided by
the schema, PluginDownloadURL will be baked into new Resource and Invoke
requests in generated SDKs.
#8739
[sdk] - Allow property paths to accept [*] as sugar for ["*"].
#8743
[sdk/dotnet] Add Union.Bimap function for converting both sides of a union at once.
#8733
[sdk/{nodejs,go,python}] - Add PluginDownloadURL as a resource option. When provided by the schema, PluginDownloadURL will be baked into new Resource
PluginDownloadURL as a resource option. When provided by
the schema, PluginDownloadURL will be baked into new Resource and Invoke
requests in generated SDKs.
#8698
#8690
#8692[sdk/go] - Add PluginDownloadURL as a resource option. #8555
[sdk/go] - Add PluginDownloadURL as a resource option.
#8555
[sdk/go] - Allow users to override enviromental variables for GetCommandResults.
#8610
[sdk/nodejs] Support using native ES modules as Pulumi scripts #7764
[sdk/nodejs] Support a nodeargs option for passing node arguments to the Node language host
#8655
[engine] - Interpret pluginDownloadURL as the provider host url when downloading plugins. #8544
[engine] - Interpret pluginDownloadURL as the provider host url when
downloading plugins.
#8544
[sdk/dotnet] - InputMap and InputList can now be initialized
with any value that implicitly converts to the collection type.
These values are then automatically appended, for example:
var list = new InputList<string>
{
"V1",
Output.Create("V2"),
new[] { "V3", "V4" },
new List<string> { "V5", "V6" },
Output.Create(ImmutableArray.Create("V7", "V8"))
};
This feature simplifies the syntax for constructing resources and
specifying resource options such as the DependsOn option.
[sdk/python] - Fixes an issue with stack outputs persisting after they are removed from the Pulumi program #8583
[auto/*] - Fixes stack.setConfig() breaking when trying to set
values that look like flags (such as -value)
#8518
[sdk/dotnet] - Don't throw converting value types that don't match schema #8628
[sdk/{go,nodejs,dotnet,python}] - Compute full set of aliases when both parent and child are aliased. #8627
[cli/import] - Fix import of resource with non-identifier map keys #8645
[backend/filestate] - Allow preview on locked stack #8642
[codegen/go] - Do not generate unreferenced input types by default. #7943
[codegen/go] - Do not generate unreferenced input types by default. #7943
[codegen/go] - Simplify the application of object defaults in generated SDKs. #8539
[codegen/{python,dotnet}] - Emit pulumi-plugin.json unconditionally.
#8527
#8532
[sdk/python] - Lookup Pulumi packages by searching for pulumi-plugin.json.
Pulumi packages need not be prefixed by pulumi- anymore.
#8515
[sdk/go] - Lookup packages by searching for pulumi-plugin.json.
Pulumi packages need not be prefixed by github.com/pulumi/pulumi- anymore.
#8516
[sdk/dotnet] - Lookup packages by searching for pulumi-plugin.json.
Pulumi packages need not be prefixed by Pulumi. anymore.
#8517
[sdk/go] - Emit pulumi-plugin.json
#8530
[cli] - Always use locking in filestate backends. This feature was
previously disabled by default and activated by setting the
PULUMI_SELF_MANAGED_STATE_LOCKING=1 environment variable.
#8565
[{cli,auto}] - Exclude language plugins from PULUMI_IGNORE_AMBIENT_PLUGINS.
#8576
[sdk/dotnet] - Fixes a rare race condition that sporadically caused NullReferenceException to be raised when constructing resources #8495
[cli] Log secret decryption events when a project uses the Pulumi Service and a 3rd party secrets provider #8563
[schema] Do not validate against the metaschema in ImportSpec. Clients that need to validate input schemas should use the BindSpec API instead. #8543
[codegen/schema] - Error on type token names that are not allowed (schema.Name or specified in allowedPackageNames). #8538 #8558
[codegen/go] - Fix ElementType for nested collection input and output types.
#8535
[{codegen,sdk}/{python,dotnet,go}] - Use pulumi-plugin.json rather than pulumiplugin.json.
#8593
[codegen/go] - Remove ResourcePtr types from generated SDKs. Besides being unnecessary--Resource types already accommodate nil to indicate the lack of
[codegen/go] - Remove ResourcePtr types from generated SDKs. Besides being
unnecessary--Resource types already accommodate nil to indicate the lack of
a value--the implementation of Ptr types for resources was incorrect, making
these types virtually unusable in practice.
#8449
[cli] - Allow interpolating plugin custom server URLs. #8507
[cli] - When running pulumi new https://github.com/name/repo, check for branch main if branch master doesn't exist. #8463
[cli] - When running pulumi new https://github.com/name/repo, check
for branch main if branch master doesn't exist.
#8463
[codegen/python] - Program generator now uses fn_output forms where
appropriate, simplifying auto-generated examples.
#8433
[codegen/go] - Program generator now uses fnOutput forms where appropriate, simplifying auto-generated examples. #8431
[codegen/dotnet] - Program generator now uses Invoke forms where
appropriate, simplifying auto-generated examples.
#8432
[cli/nodejs] - Allow specifying the tsconfig file used in Pulumi.yaml. #8452
[codegen/nodejs] - Respect default values in Pulumi object types. #8400
[sdk/python] - Correctly handle version checking python virtual environments. #8465
[cli] - Catch expected errors in stacks with filestate backends. #8455
[sdk/dotnet] - Do not attempt to serialize unknown values. #8475
[ci] - Adds CI detector for Buildkite #7933
[ci] - Adds CI detector for Buildkite #7933
[cli] - Add --exclude-protected flag to pulumi destroy.
#8359
[cli] Add the ability to use pulumi org set [name] to set a default org
to use when creating a stacks in the Pulumi Service backend or self-hosted Service.
#8352
[schema] Add IsOverlay option to disable codegen for particular types. #8338 #8425
[sdk/dotnet] - Marshal output values. #8316
[sdk/python] - Unmarshal output values in component provider. #8212
[sdk/nodejs] - Unmarshal output values in component provider. #8205
[sdk/nodejs] - Allow returning failures from Call in the provider without setting result outputs. #8424
[sdk/go] - Allow specifying Call failures from the provider. #8424
[codegen/nodejs] - Program generator now uses fnOutput forms where
appropriate, simplifying auto-generated examples.
#8434
[codegen/docs] Edit docs codegen to document $fnOutput function invoke forms in API documentation. #8287
$fnOutput function
invoke forms in API documentation.
#8287[cli] - Reformat error message string in sdk/go/common/diag/errors.go. #8284
[cli] - Reformat error message string in sdk/go/common/diag/errors.go.
#8284
[cli] - Add --json flag to up, destroy and refresh.
Passing the --json flag to up, destroy and refresh will stream JSON events from the engine to stdout.
For preview, the existing functionality of outputting a JSON object at the end of preview is maintained.
However, the streaming output can be extended to preview by using the PULUMI_ENABLE_STREAMING_JSON_PREVIEW environment variable.
[sdk/go] - Respect implicit parents in alias resolution. #8288
[sdk/python] - Expand dependencies when marshaling output values. #8301
[codegen/go] - Interaction between the plain and default tags of a type.
#8254
[sdk/dotnet] - Fix a race condition when detecting exceptions in stack creation. #8294
[sdk/go] - Fix regression marshaling assets/archives. #8290
[sdk/dotnet] - Don't panic on schema mismatches. #8286
[codegen/python] - Fixes issue with $fn_output functions failing in
preview when called with unknown arguments.
#8320
[codegen/dotnet] - Add helper function forms $fn.Invoke that accept Inputs, return an Output, and wrap the underlying $fn.InvokeAsync call. This chang
[codegen/dotnet] - Add helper function forms $fn.Invoke that
accept Inputs, return an Output, and wrap the underlying
$fn.InvokeAsync call. This change addreses
#5758 for .NET, making
it easier to compose functions/datasources with Pulumi resources.
NOTE for resource providers: the generated code requires Pulumi .NET
SDK 3.15 or higher.
[auto/dotnet] - Add pulumi state delete and pulumi state unprotect functionality
#8202
[automation/python] - Use rstrip rather than strip for the sake of indentation #8160
[automation/python] - Use rstrip rather than strip for the sake of indentation
#8160
[codegen/nodejs] - Add helper function forms $fnOutput that accept
Inputs, return an Output, and wrap the underlying $fn call.
This change addreses
#5758 for NodeJS,
making it easier to compose functions/datasources with Pulumi
resources.
#8047
[sdk/dotnet] - Update SDK to support the upcoming codegen feature that
will enable functions to accept Outputs
(5758). Specifically
add Pulumi.DeploymentInstance.Invoke and remove the now redundant
Pulumi.Utilities.CodegenUtilities.
#8142
[cli] - Upgrade CLI to go1.17 #8171
[codegen/go] Register input types for schema object types. #7959
[codegen/go] Register input types for schema resource and enum types. #8204
[codegen/go] Add schema flag to disable registering input types. #8198
[sdk/python] - Fix deprecation warning when using python 3.10 #8129
[cli] - Differentiate in-progress actions by bolding output. #7918
[CLI] Adding the ability to set refresh: always in an options object at a Pulumi.yaml level
to allow a user to be able to always refresh their derivative stacks by default
#8071
[codegen/go] - Fix generation of cyclic struct types. #8049
[codegen/nodejs] - Fix type literal generation by adding disambiguating parens; previously nested types such as arrays of unions and optionals generated type literals that were incorrectly parsed by TypeScript precedence rules.
NOTE for providers: using updated codegen may result in API changes that break existing working programs built against the older (incorrect) API declarations.
[auto/go] - Fix --target / --replace args #8109
[sdk/python] - Fix deprecation warning when using python 3.10 #8129
Please Note: The v3.13.1 release failed in our build pipeline and was re-released as v3.13.2.
Please Note: The v3.13.1 release failed in our build pipeline and was re-released as v3.13.2.
[automation/python] - Fix a bug in printing Stack if no program is provided.
#8032
[codegen/schema] - Revert #7938. #8035
[codegen/nodejs] - Correctly determine imports for functions. #8038
[codegen/go] - Fix resolution of enum naming collisions. #7985
[sdk/{nodejs,python}] - Fix errors when testing remote components with mocks. #8053
[codegen/nodejs] - Fix generation of provider enum with environment variables. #8051
[sdk/go] - Improve error messages for (un)marshalling properties. #7936
[sdk/go] - Improve error messages for (un)marshalling properties. #7936
[sdk/go] - Initial support for (un)marshalling output values. #7861
[sdk/go] - Add RegisterInputType and register built-in types.
#7928
[codegen] - Packages include Package.Version when provided.
#7938
[auto/*] - Fix escaped HTML characters from color directives in event stream.
E.g. "<{%reset%}>debug: <{%reset%}>" -> "<{%reset%}>debug: <{%reset%}>"
#7998
[auto/*] - Allow eliding color directives from event logs by passing NO_COLOR env var.
E.g. "<{%reset%}>debug: <{%reset%}>" -> "debug: "
#7998
[schema] The syntactical well-formedness of a package schema is now described and checked by a JSON schema metaschema. #7952
[build] - make lint returns an accurate status code #7844
[build] - make lint returns an accurate status code #7844
[codegen/python] - Add helper function forms $fn_output that
accept Inputs, return an Output, and wrap the underlying $fn
call. This change addresses
#5758 for Python,
making it easier to compose functions/datasources with Pulumi
resources. #7784
[codegen] - Add replaceOnChange to schema.
#7874
[cli/about] - Add command for debug information #7817
[codegen/schema] Add a pulumi schema check command to validate package schemas.
#7865
[sdk/python] - Fix Pulumi programs hanging when dependency graph
forms a cycle, as when eks.NodeGroup declaring eks.Cluster as a
parent while also depending on it indirectly via properties
#7887
[sdk/python] Fix a regression in Python dynamic providers introduced in #7755.
[automation/go] Fix loading of stack settings/configs from yaml files. #pulumi-kubernetes-operator/183
[codegen/python] - Fix invalid Python docstring generation for enums that contain doc comments with double quotes #7914
[auto/dotnet] - Add support for --exact and --server with pulumi plugin install via Automation API. BREAKING NOTE: If you are subclassing Workspace yo
[auto/dotnet] - Add support for --exact and --server with pulumi plugin install via Automation API. BREAKING NOTE: If you are subclassing Workspace your InstallPluginAsync implementation will need to be updated to reflect the new PluginInstallOptions parameter.
#7762
[codegen/go] - Add helper function forms $fnOutput that accept
Inputs, return an Output, and wrap the underlying $fn call.
This change addreses
#5758 for Go, making it
easier to compose functions/datasources with Pulumi resources.
#7784
[sdk/python] - Speed up pulumi up on Python projects by optimizing
pip invocations
#7819
[sdk/dotnet] - Support for calling methods. #7582
[sdk/python] - Add support for custom naming of dynamic provider resource. #7633
[cli] Stop printing secret value on pulumi config set if it looks like a secret. #7327
[sdk/go] - Depending on a component now depends on the transitive closure of its child resources. #7732
[cli] - Fix the preview experience for unconfigured providers. Rather than returning the inputs of a resource managed by an unconfigured provider as i
[cli] - Fix the preview experience for unconfigured providers. Rather than returning the inputs of a resource managed by an unconfigured provider as its outputs, the engine will treat all outputs as unknown. Most programs will not be affected by these changes: in general, the only programs that will see differences are programs that:
1. pass unknown values to provider instances
2. use these provider instances to manage resources
3. pass values from these resources to resources that are managed by other providers
These kinds of programs are most common in scenarios that deploy managed Kubernetes clusters and Kubernetes apps within the same program, then flow values from those apps into other resources.
The legacy behavior can be re-enabled by setting the PULUMI_LEGACY_PROVIDER_PREVIEW to
a truthy value (e.g. 1, true, etc.).
[automation] - Add force flag for RemoveStack in workspace #7523
[cli] - Properly parse Git remotes with periods or hyphens. #7386
[codegen/python] - Recover good IDE completion experience over module imports that was compromised when introducing the lazy import optimization. #7487
[sdk/python] - Use Sequence[T] instead of List[T] for several Resource
parameters.
#7698
[auto/nodejs] - Fix a case where inline programs could exit with outstanding async work. #7704
[sdk/nodejs] - Use ESlint instead of TSlint #7719
[sdk/python] - Fix pulumi.property's default value handling. #7736
[cli] - Respect provider aliases #7166
[cli] - Respect provider aliases #7166
[cli] - pulumi stack ls now returns all accessible stacks (removing
earlier cap imposed by the httpstate backend).
#3620
[sdk/go] - Fix panics caused by logging from ApplyT, affecting
pulumi-docker and potentially other providers
#7661
[sdk/python] - Handle unknown results from methods. #7677
[sdk/go] - Add stack output helpers for numeric types. #7410
[sdk/go] - Add stack output helpers for numeric types. #7410
[sdk/python] - Permit Input[Resource] values in depends_on.
#7559
[backend/filestate] - Allow pulumi stack ls to see all stacks regardless of passphrase. #7660
[sdk/{go,python,nodejs}] - Rehydrate provider resources in Construct.
#7624
[engine] - Include children when targeting components. #7605
[cli] - Restore passing log options to providers when --logflow is specified
https://github.com/pulumi/pulumi/pull/7640
[sdk/nodejs] - Fix pulumi up --logflow causing Node multi-lang components to hang
#7644
[sdk/{dotnet,python,nodejs}] - Set the package on DependencyProviderResource. #7630
[sdk/dotnet] - Fix async await warnings. #7537
[sdk/dotnet] - Fix async await warnings. #7537
[codegen/dotnet] - Emit dynamic config-getters. #7549
[sdk/python] - Support for authoring resource methods in Python. #7555
[sdk/{go,dotnet}] - Admit non-asset/archive values when unmarshalling into assets and archives. #7579
[sdk/dotnet] - Fix for race conditions in .NET SDK that used to
manifest as a KeyNotFoundException from WhileRunningAsync.
#7529
[sdk/go] - Fix target and replace options for the Automation API. #7426
[cli] - Don't escape special characters when printing JSON. #7593
[sdk/go] - Fix panic when marshaling self in a method.
#7604
[codegen/python,nodejs] Emit dynamic config-getters. #7447, #7530
[sdk/nodejs] Support for calling resource methods. #7377
[sdk] Add replaceOnChanges resource option. #7226
[cli] Added support for passing custom paths that need to be watched by the pulumi watch command. #7115
[cli] Added support for passing custom paths that need
to be watched by the pulumi watch command.
#7115
[auto/nodejs] Fail early when multiple versions of @pulumi/pulumi are detected in nodejs inline programs.
#7349
[sdk/go] Add preliminary support for unmarshaling plain arrays and maps of output values. #7369
Initial support for resource methods (Node.js authoring, Python calling). #7363
[sdk/dotnet] Fix swallowed nested exceptions with inline program, so they correctly bubble to the consumer. #7323
[sdk/go] Specify known when creating outputs for construct.
#7343
[cli] Fix passphrase rotation. #7347
[multilang/python] Fix nested module generation. #7353
[multilang/nodejs] Fix a hang when an error is thrown within an apply in a remote component. #7365
[codegen/python] Include enum docstrings for python. #7374
Please Note: The v3.5.0 release did not complete and was re-released at the same commit as v3.5.1.
Please Note: The v3.5.0 release did not complete and was re-released at the same commit as v3.5.1.
[dotnet/sdk] Support microsoft logging extensions with inline programs. #7117
[dotnet/sdk] Add create unknown to output utilities. #7173
[dotnet] Fix Resharper code issues. #7178
[codegen] Include properties with an underlying type of string on Go provider instances. #7230
[cli] Provide a more helpful error instead of panicking when codegen fails during import. #7265
[codegen/python] Cache package version for improved performance. #7293
[sdk/python] Reduce log.debug calls for improved performance.
#7295
[dotnet/sdk] Add get value async to output utilities. #7170
[CLI] Fix broken venv for Python projects started from templates. #6624
[cli] Send plugin install output to stderr, so that it doesn't clutter up --json, automation API scenarios, and so on. #7115
[cli] Protect against panics when using the wrong resource type with pulumi import.
#7202
[auto/nodejs] Emit warning instead of breaking on parsing JSON events for automation API. #7162
[sdk/python] Improve performance of Output.from_input and Output.all on nested objects.
#7175
0.23.0.
#7204Your coding agent can read these notes before it upgrades. Set up the MCP server →