Description
# Pulumi Python SDK The Pulumi Python SDK (pulumi) is the core package used when writing Pulumi programs in Python. It contains everything that you’ll need in order to interact with Pulumi resource providers and express infrastructure using Python code. Pulumi resource providers all depend on this library and express their resources in terms of the types defined in this module. The Pulumi Python SDK requires a [supported version](https://devguide.python.org/versions/#versions) of Python. note: pip is required to install dependencies. If you installed Python from source, with an installer from [python.org](https://python.org/), or via [Homebrew](https://brew.sh/) you should already have pip. If Python is installed using your OS package manager, you may have to install pip separately, see [Installing pip/setuptools/wheel with Linux Package Managers](https://packaging.python.org/guides/installing-using-linux-tools/). For example, on Debian/Ubuntu you must run sudo apt install python3-venv python3-pip. ## Getting Started The fastest way to get up and running is to choose from one of the following Getting Started guides: -[aws](https://www.pulumi.com/docs/get-started/aws/?language=python) -[microsoft azure](https://www.pulumi.com/docs/get-started/azure/?language=python) -[google cloud](https://www.pulumi.com/docs/get-started/gcp/?language=python) -[kubernetes](https://www.pulumi.com/docs/get-started/kubernetes/?language=python) ## Pulumi Programming Model The Pulumi programming model defines the core concepts you will use when creating infrastructure as code programs using Pulumi. Architecture & Concepts describes these concepts with examples available in Python. These concepts are made available to you in the Pulumi SDK. The Pulumi SDK is available to Python developers as a Pip package distributed on [PyPI](https://www.pulumi.com/docs/intro/languages/python/#pypi-packages) . To learn more, [refer to the Pulumi SDK Reference Guide](https://www.pulumi.com/docs/reference/pkg/python/pulumi/). The Pulumi programming model includes a core concept of Input and Output values, which are used to track how outputs of one resource flow in as inputs to another resource. This concept is important to understand when getting started with Python and Pulumi, and the [Inputs and Outputs] (https://www.pulumi.com/docs/intro/concepts/inputs-outputs/)documentation is recommended to get a feel for how to work with this core part of Pulumi in common cases. ## [The Pulumi Python Resource Model](https://www.pulumi.com/docs/reference/pkg/python/pulumi/#the-pulumi-python-resource-model-1) Like most languages usable with Pulumi, Pulumi represents cloud resources as classes and Python programs can instantiate those classes. All classes that can be instantiated to produce actual resources derive from the pulumi.Resource class.
Release History
| Version | Changes | Urgency | Date |
|---|---|---|---|
| 3.231.0 | Imported from PyPI (3.231.0) | Low | 4/21/2026 |
| v3.231.0 | ## 3.231.0 (2026-04-16) ### Features - [cli] Auto-detect Mercurial repository metadata for `pulumi up` / `pulumi preview` updates, mirroring existing Git support [#22618](https://github.com/pulumi/pulumi/pull/22618) - [engine] Send Cancel RPC to plugins on host close for graceful shutdown [#22569](https://github.com/pulumi/pulumi/pull/22569) - [engine] Pass resource options to hooks through the engine [#22582](https://github.com/pulumi/pulumi/pull/22582) - [engine] Add | High | 4/16/2026 |
| v3.230.0 | ## 3.230.0 (2026-04-08) ### Features - [cli] Detect AI agents and send in update metadata [#22497](https://github.com/pulumi/pulumi/pull/22497) - [auto/nodejs] Add "org" commands (get-default, set-default, search, search ai) to the auto-generated interface [#22395](https://github.com/pulumi/pulumi/pull/22395) - [auto/nodejs] Add "new" command to the auto-generated interface [#22421](https://github.com/pulumi/pulumi/pull/22421) - [sdk/{nodejs,python}] Add Cancel handler | Medium | 4/8/2026 |
| v3.229.0 | ## 3.229.0 (2026-04-02) ### Features - [auto/python] Add org get-default and set-default commands to Automation API - [backend/diy] Avoid unnecessary S3 bucket HEAD calls to improve performance [#22373](https://github.com/pulumi/pulumi/pull/22373) - [cli] Allow TRACEPARENT to be set for CLI invocations, parenting the pulumi spans under an existing parent span [#22369](https://github.com/pulumi/pulumi/pull/22369) - [cli/display] Add `--urns` flag to display full resource UR | Medium | 4/2/2026 |
| v3.228.0 | ## 3.228.0 (2026-03-25) ### Features - [cli] Don't apply the secrets filter to `true` and `false` (case-insensitive) [#22269](https://github.com/pulumi/pulumi/pull/22269) - [cli] Add grpcs:// support and header authentication to OTLP exporter [#22320](https://github.com/pulumi/pulumi/pull/22320) - [cli] Read OTEL_RESOURCE_ATTRIBUTES [#22329](https://github.com/pulumi/pulumi/pull/22329) - [auto/nodejs] Add low-level "cancel" command to the auto-generated interface [#2 | Medium | 3/25/2026 |
| v3.227.0 | ## 3.227.0 (2026-03-19) ### Features - [engine] The engine will fill in Name and Type for ResourceReference values on the wire protocol [#22208](https://github.com/pulumi/pulumi/pull/22208) - [sdk/bun] Add support for running policy packs with bun [#22206](https://github.com/pulumi/pulumi/pull/22206) - [cli/policy] Auto-install missing policy analyzer plugins [#22196](https://github.com/pulumi/pulumi/pull/22196) - [sdk/python] Add lock file detection for picking the Pyt | Low | 3/19/2026 |
| v3.226.0 | ## 3.226.0 (2026-03-11) ### Features - [backend/service] Automatically repair snapshot integrity issues, while sending an error event to the backend for further diagnosis [#22179](https://github.com/pulumi/pulumi/pull/22179) - [cli] Add a --otel-traces flag, that allows writing otel traces to a file, or directly to a grpc interface [#22129](https://github.com/pulumi/pulumi/pull/22129) - [engine] Engine will use provider references from `__self__` arguments to calls [#22114 | Low | 3/12/2026 |
| v3.225.1 | ## 3.225.1 (2026-03-05) ### Bug Fixes - [engine] Fix inheritence of default providers across resources of different packages [#22101](https://github.com/pulumi/pulumi/pull/22101) - [programgen/go] Fix panic on digit-prefixed schema properties in Go code generation [#21917](https://github.com/pulumi/pulumi/pull/21917) - [programgen/go] Fix plain values not always being lifted to input/output values when needed [#22084](https://github.com/pulumi/pulumi/pull/22084) - [prog | Low | 3/5/2026 |
| v3.225.0 | ## 3.225.0 (2026-03-04) ### Features - [engine] Automatically make invoke outputs secret when there is a secret input, and the invoke provider does not support secrets [#21959](https://github.com/pulumi/pulumi/pull/21959) - [engine] The engine now handles the inheritance of the `provider` option in resource registrations [#21999](https://github.com/pulumi/pulumi/pull/21999) - [engine] Enable journaling by default. It can still be turned off using the PULUMI_DISABLE_JOURNALING | Low | 3/4/2026 |
| v3.224.0 | ## 3.224.0 (2026-02-26) ### Features - [backend/diy] Add zstd compression option for DIY backend state files [#21877](https://github.com/pulumi/pulumi/pull/21877) - [engine] Automatically make invoke outputs secret when there is a secret input, and the invoke provider does not support secrets - [cli/package] Support source-based packages in `pulumi schema check`, not just schema files [#21897](https://github.com/pulumi/pulumi/pull/21897) ### Bug Fixes - [pkg] Correct the | Low | 2/26/2026 |
| v3.223.0 | ## 3.223.0 (2026-02-19) ### Bug Fixes - [engine] Report policy pack installation errors [#21882](https://github.com/pulumi/pulumi/pull/21882) | Low | 2/20/2026 |
| v3.222.0 | ## 3.222.0 (2026-02-18) ### Features - [programgen/go] Generate Call requests [#21836](https://github.com/pulumi/pulumi/pull/21836) ### Bug Fixes - [sdk/{nodejs,python}] Fix hang when loading policy packs that use v1.18.1 or older of the policy SDK [#21866](https://github.com/pulumi/pulumi/pull/21866) | Low | 2/19/2026 |
| v3.221.0 | ## 3.221.0 (2026-02-17) ### Features - [auto] Support Go 1.26 [#21835](https://github.com/pulumi/pulumi/pull/21835) - [engine] BREAKING: Rename `pulumiVersionRange` to `requiredPulumiVersion` in `PulumiPlugin.yaml` [#21807](https://github.com/pulumi/pulumi/pull/21807) - [cli/plugin] Reduce GitHub API usage when downloading plugins [#21774](https://github.com/pulumi/pulumi/pull/21774) - [protobuf] Add loader_target to RunPluginRequest [#21763](https://github.com/pulum | Low | 2/17/2026 |
| v3.220.0 | ## 3.220.0 (2026-02-10) ### Features - [cli] Show environment variables that were set if a snapshot integrity error happens [#21709](https://github.com/pulumi/pulumi/pull/21709) - [cli/{install,package}] Use the Pulumi Cloud Registry by default to resolve package names - [engine] Pass replacement trigger through to Construct [#21408](https://github.com/pulumi/pulumi/pull/21408) - [engine] Add EnvVarMappings resource option for provider resources, allowing environment varia | Low | 2/10/2026 |
| v3.219.0 | ## 3.219.0 (2026-02-05) ### Features - [cli] Allow setting `requiredPulumiVersion` in Pulumi.yaml [#21627](https://github.com/pulumi/pulumi/pull/21627) - [cli/{install,package}] Allow using private packages as local dependencies in components [#21664](https://github.com/pulumi/pulumi/pull/21664) - [cli/policy] Add `pulumi policy install` command [#21652](https://github.com/pulumi/pulumi/pull/21652) - [engine] Run analyzer calls in parallel [#21631](https://github.com | Low | 2/5/2026 |
| v3.218.0 | ## 3.218.0 (2026-01-29) ### Features - [sdk/nodejs] Add support for the `OnError` resource hook ### Bug Fixes - [cli] Allow positional arguments to be passed to `convert` again - [cli/install] Correctly include git forge organizations as schema namespaces when generating SDKs [#21579](https://github.com/pulumi/pulumi/pull/21579) - [cli/{install,package}] Correctly grab package names for Python & NodeJS [#21577](https://github.com/pulumi/pulumi/pull/21577) | Low | 1/29/2026 |
| v3.217.1 | ## 3.217.1 (2026-01-27) ### Features - [sdk/go] Add support for the `OnError` resource hook [#21515](https://github.com/pulumi/pulumi/pull/21515) ### Bug Fixes - [cli/install] Copy files when linking to be robust to copying across file partitions [#21549](https://github.com/pulumi/pulumi/pull/21549) - [cli/install] Do not double install plugins with explicit parameterizations [#21548](https://github.com/pulumi/pulumi/pull/21548) **Full Changelog**: https://github | Low | 1/27/2026 |
| v3.217.0 | ## 3.217.0 (2026-01-23) ### Features - [cli] Extract organization, team, and user from OIDC JWT claims during login [#21462](https://github.com/pulumi/pulumi/pull/21462) - [engine] Add the `OnError` resource hook to allow for custom retry policies [#21291](https://github.com/pulumi/pulumi/pull/21291) - [cli/engine] Add --plan up flag [#21368](https://github.com/pulumi/pulumi/pull/21368) - [sdk/nodejs] Add requirePulumiVersion to the Node.js SDK [#21528](https://githu | Low | 1/23/2026 |
| v3.216.0 | ## 3.216.0 (2026-01-16) ### Features - [build] Don't set PULUMI_ROOT with mise [#21457](https://github.com/pulumi/pulumi/pull/21457) - [cli] Default to Pulumi Cloud when using an OIDC token for login [#21322](https://github.com/pulumi/pulumi/pull/21322) - [engine] Add CheckPulumiVersion RPC to the engine [#21429](https://github.com/pulumi/pulumi/pull/21429) - [protobuf] Remove ProviderHandshakeResponse.pulumi_version_range [#21438](https://github.com/pulumi/pulumi/pu | Low | 1/16/2026 |
| v3.215.0 | ## 3.215.0 (2026-01-07) ### Features - [cli/plugin] Allow plugins to specify a supported version range for the CLI [#21335](https://github.com/pulumi/pulumi/pull/21335) ### Bug Fixes - [cli] Filter internal properties like __defaults from diff display [#21359](https://github.com/pulumi/pulumi/pull/21359) - [cli/config] Make `config set --type bool` accept different spellings of boolean values instead of only lowercase "true" [#21314](https://github.com/pulumi/pulumi/p | Low | 1/7/2026 |
| v3.214.1 | ## 3.214.1 (2026-01-03) ### Bug Fixes - [cli/package] Preserve existing behavior when `pulumi package add` is used with a local provider [#21350](https://github.com/pulumi/pulumi/pull/21350) - [pkg] Create namespace aliases to avoid Pulumi namespace collisions during codegen [#21325](https://github.com/pulumi/pulumi/pull/21325) | Low | 1/3/2026 |
| v3.214.0 | ## 3.214.0 (2025-12-30) ### Features - [cli] Add --config and --config-path options to destroy and refresh [#21299](https://github.com/pulumi/pulumi/pull/21299) - [sdkgen] Add `OutputStyleOnly` flag to functions to not emit their plain variants [#21198](https://github.com/pulumi/pulumi/pull/21198) - [sdk/python] Add support for `replacement_trigger` in the Python SDK [#20940](https://github.com/pulumi/pulumi/pull/20940) ### Bug Fixes - [engine] Pass ignoreChanges w | Low | 12/30/2025 |
| v3.213.0 | ## 3.213.0 (2025-12-17) ### Bug Fixes - [sdkgen/go] Generate three-level nested builtin output types for Go SDK [#21248](https://github.com/pulumi/pulumi/pull/21248) ### Miscellaneous - [pkg] Move plugin downloading from pkg into sdk [#21220](https://github.com/pulumi/pulumi/pull/21220) | Low | 12/17/2025 |
| v3.212.0 | ## 3.212.0 (2025-12-12) ### Bug Fixes - [yaml] Update pulumi-yaml to v1.26.1 | Low | 12/12/2025 |
| v3.211.0 | ## 3.211.0 (2025-12-11) ### Features - [cli/about] Print Node.js package manager information in `pulumi about` [#21163](https://github.com/pulumi/pulumi/pull/21163) - [backend/diy] Add stack tags support for DIY backends (S3, Postgres, file-based, etc.). DIY backends now support stack tags functionality, bringing feature parity with cloud backends. This includes: - Full CRUD operations for stack tags (create, read, update, delete) - Automatic system tag injection (e.g., `pu | Low | 12/12/2025 |
| v3.210.0 | ## 3.210.0 (2025-12-03) ### Features - [cli/about] Print python toolchain information in `pulumi about` - [sdk/java] Update java to v1.18 - [components/nodejs] Local components will use the version from package.json rather than 0.0.0 [#21100](https://github.com/pulumi/pulumi/pull/21100) - [cli/package] Add `pulumi package delete` command to delete package versions from the Pulumi Registry [#21069](https://github.com/pulumi/pulumi/pull/21069) - [cli/package] Always print | Low | 12/3/2025 |
| v3.209.0 | ## 3.209.0 (2025-11-26) ### Features - [cli] Add native support for OIDC token exchange when logging into Pulumi Cloud. Run `pulumi login --help` for more information. [#20974](https://github.com/pulumi/pulumi/pull/20974) - [sdk/python] Allow older grpcio and protobuf dependencies [#21007](https://github.com/pulumi/pulumi/pull/21007) - [sdkgen/{dotnet,go,nodejs,python}] Generate .gitignore and .gitattributes files for generated SDKs [#21034](https://github.com/pulumi/pulum | Low | 11/26/2025 |
| v3.208.0 | ## 3.208.0 (2025-11-20) ### Features - [cli] Expose all command flags as env vars (e.g. --refresh can now be set with PULUMI_OPTION_REFRESH) [#20868](https://github.com/pulumi/pulumi/pull/20868) - [cli/install] Make `pulumi install` recurse into local packages [#20945](https://github.com/pulumi/pulumi/pull/20945) - [engine] Add a `replacement_trigger` resource option. Any change to this value between program runs will trigger a replace of the resource [#20936](https://gith | Low | 11/20/2025 |
| v3.207.0 | ## 3.207.0 (2025-11-12) ### Features - [cli] Log gRPC requests before invoking them in gRPC debug interceptor [#20817](https://github.com/pulumi/pulumi/pull/20817) - [engine] Add `ReplaceWith` resource option to allow one resource's replace operations to trigger another's [#20693](https://github.com/pulumi/pulumi/pull/20693) - [sdkgen/python] Allow all PEP440 version specifiers to be used ### Bug Fixes - [cli/import] Return errors when an import fails [#20904](http | Low | 11/12/2025 |
| v3.206.0 | ## 3.206.0 (2025-11-05) ### Features - [protobuf] Pass a `preview` flag to invokes so they can tell if they're being called during a preview [#20827](https://github.com/pulumi/pulumi/pull/20827) - [cli/about] Include PULUMI_* environment variables in the `pulumi about` output [#20855](https://github.com/pulumi/pulumi/pull/20855) - [auto/go] Get event log over gRPC instead of trying to read it from a text file [#20822](https://github.com/pulumi/pulumi/pull/20822) - [auto | Low | 11/5/2025 |
| v3.205.0 | ## 3.205.0 (2025-10-28) ### Bug Fixes - [cli/display] Improve how the severity is displayed for policy violations [#20805](https://github.com/pulumi/pulumi/pull/20805) - [engine] Fix an issue where `refresh --run-program` could potentially run forever [#20781](https://github.com/pulumi/pulumi/pull/20781) | Low | 10/29/2025 |
| v3.204.0 | ## 3.204.0 (2025-10-23) ### Features - [cli] Print replace diffs when a resource tries to replace but is blocked by still having an import id set [#20762](https://github.com/pulumi/pulumi/pull/20762) - [engine] Support overriding policy severity on violations [#20767](https://github.com/pulumi/pulumi/pull/20767) - [backend/service] Send journal entries to the backend if it's supported [#20343](https://github.com/pulumi/pulumi/pull/20343) ### Bug Fixes - [engine] Fi | Low | 10/23/2025 |
| v3.203.0 | ## 3.203.0 (2025-10-15) ### Features - [cli/display] Display policy severity for violations [#20746](https://github.com/pulumi/pulumi/pull/20746) - [cli/package] Show functions in `package info` [#20733](https://github.com/pulumi/pulumi/pull/20733) ### Bug Fixes - [engine] Make sure errors from the journaler are not shown to the user [#20740](https://github.com/pulumi/pulumi/pull/20740) - [backend/diy] Fix casing of stack/latest when importing stacks [#20727](ht | Low | 10/16/2025 |
| v3.202.0 | ## 3.202.0 (2025-10-10) ### Features - [auto] Add SetAllConfigJson method to automation APIs [#20709](https://github.com/pulumi/pulumi/pull/20709) - [cli/config] Add `--json` input support to `pulumi config set-all` [#19427](https://github.com/pulumi/pulumi/pull/19427) - [cli/display] Add error summary at the end of Resource changes [#20658](https://github.com/pulumi/pulumi/pull/20658) - [components/{go,nodejs}] Send component inputs to be saved in state. This brings No | Low | 10/10/2025 |
| v3.201.0 | ## 3.201.0 (2025-10-06) ### Features - [sdkgen/go] Support non-object return types in functions [#20646](https://github.com/pulumi/pulumi/pull/20646) ### Bug Fixes - [backend/service] Fix the --insecure flag in `pulumi login` | Low | 10/6/2025 |
| v3.200.0 | ## 3.200.0 (2025-10-03) ### Features - [cli] Look for .cmd and .ps1 extensions as well on Windows when looking for executables [#20637](https://github.com/pulumi/pulumi/pull/20637) - [sdk/go] Add a new resource option: `HideDiffs` [#20631](https://github.com/pulumi/pulumi/pull/20631) - [sdk/nodejs] Add a new resource option: `hideDiffs` [#20631](https://github.com/pulumi/pulumi/pull/20631) - [sdkgen/python] Support non-object return types in functions [#20624](https: | Low | 10/3/2025 |
| v3.199.0 | ## 3.199.0 (2025-10-01) ### Features - [cli/about] Add `pulumi about env` to help [#20633](https://github.com/pulumi/pulumi/pull/20633) - [cli/{about,new}] Add environment variables to override template repository settings. The new PULUMI_TEMPLATE_GIT_REPOSITORY, PULUMI_TEMPLATE_BRANCH, PULUMI_POLICY_TEMPLATE_GIT_REPOSITORY, and PULUMI_POLICY_TEMPLATE_BRANCH environment variables allow runtime customization of template sources [#20615](https://github.com/pulumi/pulumi/pull/20615 | Low | 10/2/2025 |
| v3.198.0 | ## 3.198.0 (2025-09-26) ### Features - [engine] Expand snapshot integrity check for resources [#20519](https://github.com/pulumi/pulumi/pull/20519) - [sdk/go] Refactor Go policy SDK to have access to a pulumi Context object [#20570](https://github.com/pulumi/pulumi/pull/20570) - [sdk/python] Allow registered resources to be retrieved from the mock monitor for test assertions [#20540](https://github.com/pulumi/pulumi/pull/20540) ### Bug Fixes - [engine] Fix snapshot | Low | 9/26/2025 |
| v3.197.0 | ## 3.197.0 (2025-09-17) ### Features - [cli] Send new policy fields when publishing a policy pack - [sdk/dotnet] Update dotnet to v3.88 [#20512](https://github.com/pulumi/pulumi/pull/20512) ### Bug Fixes - [engine] Fix a panic in preview, that could happen in some cases when default providers get updated [#20511](https://github.com/pulumi/pulumi/pull/20511) - [components/python] Fix parenting of python components [#20508](https://github.com/pulumi/pulumi/pull/20508 | Low | 9/17/2025 |
| v3.196.0 | ## 3.196.0 (2025-09-12) ### Miscellaneous - [sdk] Add policy summary events apitypes [#20443](https://github.com/pulumi/pulumi/pull/20443) - [sdk] Add new policy fields apitypes [#20491](https://github.com/pulumi/pulumi/pull/20491) - [protobuf] Add support for indicating "not applicable" policies [#20492](https://github.com/pulumi/pulumi/pull/20492) - [protobuf] Add new analyzer policy fields [#20494](https://github.com/pulumi/pulumi/pull/20494) | Low | 9/12/2025 |
| v3.195.0 | ## 3.195.0 (2025-09-10) ### Features - [engine] Add support for capturing program stack traces as part of resource registration [#20430](https://github.com/pulumi/pulumi/pull/20430) - [sdk/go] Registered resources can now be retrieved from the mock monitor for test assertions [#20472](https://github.com/pulumi/pulumi/pull/20472) - [sdk/go] The current exports map is now available for unit testing through `GetCurrentExportMap` [#20471](https://github.com/pulumi/pulumi/pull/ | Low | 9/11/2025 |
| v3.194.0 | ## 3.194.0 (2025-09-08) ### Features - [cli] Log diagnostics to stderr instead of stdout [#20461](https://github.com/pulumi/pulumi/pull/20461) - [cli/display] Change the default for --show-full-output from true to false [#20467](https://github.com/pulumi/pulumi/pull/20467) - [cli/display] Fix the --show-full-output the flag [#20464](https://github.com/pulumi/pulumi/pull/20464) - [sdk/go] Show a message that the Go program is being compiled [#20460](https://github.com | Low | 9/9/2025 |
| v3.193.0 | ## 3.193.0 (2025-09-04) ### Bug Fixes - [cli] Use "Private Registry", not cloud or Pulumi registry, in CLI output [#20436](https://github.com/pulumi/pulumi/pull/20436) - [cli/display] Avoid printing a double new line when showing secrets in the outputs [#20435](https://github.com/pulumi/pulumi/pull/20435) - [cli/display] Fix coloring of cobra error messages on windows - [cli/{install,package}] Fix local package resolution when PULUMI_EXPERIMENTAL=true by including local pa | Low | 9/4/2025 |
| v3.192.0 | ## 3.192.0 (2025-08-29) ### Features - [cli/state] Add pulumi state taint/untaint commands to force replacement of resources upon next update [#20380](https://github.com/pulumi/pulumi/pull/20380) - [sdk/nodejs] Add `previewDestroy` to allow dry-runs of `destroy` commands [#20371](https://github.com/pulumi/pulumi/pull/20371) ### Bug Fixes - [engine] Fix a bug causing hooks to never pass correctly to remote Go components [#20390](https://github.com/pulumi/pulumi/pull/20 | Low | 8/29/2025 |
| v3.191.0 | ## 3.191.0 (2025-08-21) ### Features - [cli] Document the `PULUMI_ENABLE_STREAMING_JSON_PREVIEW` envvar. [#20328](https://github.com/pulumi/pulumi/pull/20328) ### Bug Fixes - [engine] Check providers returning 'version' or '__internal' in their inputs [#20313](https://github.com/pulumi/pulumi/pull/20313) - [engine] Fix a panic with `refresh --run-program` [#20337](https://github.com/pulumi/pulumi/pull/20337) - [engine] Fix an infinite loop from passing unordered re | Low | 8/21/2025 |
| v3.190.0 | ## 3.190.0 (2025-08-15) ### Features - [engine] Don't error on `ignoreChanges` paths that are missing old data, there is nothing to ignore in those cases and we just use the new data [#20278](https://github.com/pulumi/pulumi/pull/20278) ### Bug Fixes - [cli] Fix `destroy --exclude-protected --remove` returning an error for empty stacks that could safely be removed [#20283](https://github.com/pulumi/pulumi/pull/20283) - [cli] Fix `pulumi template publish` failing with rel | Low | 8/15/2025 |
| v3.189.0 | ## 3.189.0 (2025-08-12) ### Features - [sdk] Remove CacheMS from CLIVersionResponse [#20264](https://github.com/pulumi/pulumi/pull/20264) - [sdk/go] Calculate PluginInfo.Size on demand [#20241](https://github.com/pulumi/pulumi/pull/20241) - [auto/python] Surface `json` option to `pulumi preview` calls in Python when using the `pulumi.automation` package. [#20233](https://github.com/pulumi/pulumi/pull/20233) ### Bug Fixes - [cli/package] Fix incorrect console URLs b | Low | 8/13/2025 |
| v3.188.0 | ## 3.188.0 (2025-08-07) ### Features - [cli] Add `--remove-backups` flag to `pulumi stack rm` for DIY backends [#20203](https://github.com/pulumi/pulumi/pull/20203) ### Bug Fixes - [cli] Fix cancellation when running via some CLI wrapper tools [#20195](https://github.com/pulumi/pulumi/pull/20195) - [cli] Fix concurrent read/write during plugin downloads [#20223](https://github.com/pulumi/pulumi/pull/20223) - [cli] Restore terminal mode on panic [#20224](https:// | Low | 8/7/2025 |
| v3.187.0 | ## 3.187.0 (2025-07-31) ### Features - [cli] Support for writing v4 checkpoints/deployments [#20159](https://github.com/pulumi/pulumi/pull/20159) - [cli] Add support for qualified registry template names in `pulumi new` [#20138](https://github.com/pulumi/pulumi/pull/20138) - [cli/import] Enable `pulumi import` to always `--generate-resources` when converting `--from` state files [#20178](https://github.com/pulumi/pulumi/pull/20178) - [yaml] Allow config values to be par | Low | 7/31/2025 |
| v3.186.0 | ## 3.186.0 (2025-07-25) ### Features - [engine] Send `Cancel` message to language runtime plugins on engine shutdown [#20007](https://github.com/pulumi/pulumi/pull/20007) - [engine] Pass stack tags to policy plugins on startup [#20084](https://github.com/pulumi/pulumi/pull/20084) - [yaml] Expose `object` as a possible config type in preparation for `pulumi-yaml` support [#20129](https://github.com/pulumi/pulumi/pull/20129) ### Bug Fixes - [cli/engine] --exclude and | Low | 7/25/2025 |
| v3.185.0 | ## 3.185.0 (2025-07-21) ### Features - [cli/{install,package}] Allow using `pulumi package add` with registry identifiers [#19928](https://github.com/pulumi/pulumi/pull/19928) ### Bug Fixes - [engine] Fix a snapshot integrity issue with `destroy --run-program` and resource reads [#20078](https://github.com/pulumi/pulumi/pull/20078) - [sdkgen/python] Remove unnecessary `import copy` [#20089](https://github.com/pulumi/pulumi/pull/20089) - [sdkgen/python] Support prop | Low | 7/21/2025 |
