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
Nothing published for this version
Nothing published for this version
[sdk/{nodejs,python}] - Remove sequence numbers from the dynamic provider interfaces. #8849
One column per quarter.
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
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
[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
#8692Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
[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
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
[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
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
[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
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →