What pulumi/pulumi shipped
Written by FoxPlug from the repository's own releases; not affiliated with Pulumi. Paste your own repository in the box below and FoxPlug writes the same weekly update for your product. This page is an automatic summary of the releases, pull requests and commits in github.com/pulumi/pulumi; Pulumi did not write it and does not use or endorse FoxPlug. Every line links to the change it describes.
Get a weekly update like this for your product, free
Week of November 2, 2026
What shipped
- The stack rm and destroy --remove commands now name the managed ESC environment that Pulumi Cloud deletes with the stack. Pull request #25566
- The CLI now shows the managed environment diff as an engine event when a stack-managed environment has local changes. Pull request #25533
- Fixed a panic when PULUMI_OPTION environment variables are set for int32, int64, duration, or delimiter flags. Pull request #25596
- Fixed the first stateful pulumi do command failing outside a project when stack config is stored locally. Pull request #25595
- Pulumi api now exits with code 3 instead of 255 when the access token is rejected. Pull request #25593
- Resource transforms now receive secret inputs as Output envelopes so SDK callbacks retain secrecy metadata. Pull request #25569
- Resource transforms no longer wrap input objects in an Output when nested values already carry declared dependencies. Pull request #25568
- Added experimental pulumi policy exception commands to create, list, get, and remove policy exceptions in Pulumi Cloud. Pull request #25417
- Pulumi policy group get now shows rule-matched members alongside explicitly added ones, with source and tags, and packs configuration. Pull request #25369
- Fixed screen flickering during updates when there are many unchanged resources by accounting for the sames count in display height. Pull request #25581
Why it matters
This week brings fixes that remove friction from common CLI workflows, such as environment variable crashes, stack removal messages, and global stack setup. It also improves policy management with new exception commands and richer group listings, and stabilizes resource transforms for secrets and dependencies.
Changelog entry
- Name the managed ESC environment in stack rm and destroy --remove. Pull request #25566
- Show the managed environment diff as an engine event. Pull request #25533
- Fix panic from PULUMI_OPTION environment variables on typed flags. Pull request #25596
- Fix first stateful pulumi do command outside a project. Pull request #25595
- Fix pulumi whoami help text for team tokens. Pull request #25594
- Exit 3 from pulumi api when the access token is rejected. Pull request #25593
- Avoid screen flickering when there are sames. Pull request #25581
- Preserve secret Output values in resource transforms. Pull request #25569
- Fix nested dependency handling in resource transforms. Pull request #25568
- Add pulumi policy exception commands (experimental). Pull request #25417
- Show rule-matched members and pack configuration in pulumi policy group get. Pull request #25369
- Allow prebuilt Go programs to run without the Go toolchain installed. Pull request #25585
This week: stack rm and destroy --remove now name the managed ESC environment; managed env diffs appear as engine events; fixed a PULUMI_OPTION panic; pulumi do works outside a project; pulumi api exits 3 on rejected tokens; resource transforms preserve secret Outputs and nested
This week we shipped several fixes and improvements for Pulumi users. The stack rm and destroy --remove commands now clearly name the managed ESC environment being deleted. Managed environment differences are shown as engine events. A panic when PULUMI_OPTION environment variables are set on typed flags is fixed. The first stateful pulumi do command works outside a project. pulumi api exits with code 3 when the access token is rejected. Resource transforms now preserve secret Output values and handle nested dependencies correctly. New experimental policy exception commands let you manage exceptions from the CLI. Policy group get now shows rule-matched members and pack configuration. Screen flickering during updates with many unchanged resources is fixed.
Week of October 26, 2026
What shipped
- Version 3.273.0 was released, adding generated automation API commands and a resourceExists builtin for PCL. Release
- Pulumi policy get now shows a published policy pack's policies from the CLI. Pull request #25297
- Policy pack publish, enable, disable, rm and validate-config accept --output json, and enable and disable print the updated policy group. Pull request #25347
- Pulumi import --preview-only now returns the engine's in-memory snapshot so generated resource code is no longer dropped. Pull request #25448
- The schema binder now rejects property names that collide after reduction to SDK identifiers. Pull request #25292
- PCL hideDiffs now accepts names of resource inputs as well as outputs, with output type taking precedence when a name is both. Pull request #25450
- PCL invokes now honor parent and pluginDownloadUrl, using the parent's provider instead of defaulting to the stack. Pull request #25403
- PCL blocks with no labels now report a diagnostic instead of panicking with an index out of range error. Pull request #25445
- A CLI edit that adds the first entry to an empty flow mapping now switches it to block style. Pull request #25415
- Backtick-quoted commands are now highlighted in CLI error messages. Pull request #25432
Why it matters
This week brings a new release alongside CLI additions for inspecting and scripting policy packs, and a fix so preview-only imports keep their generated code. It also tightens schema validation and PCL behavior so configuration and policy authors get clear errors instead of panics, dropped properties or broken SDKs.
Changelog entry
- Release v3.273.0. Release
- Add pulumi policy get to show a published policy pack's policies. Pull request #25297
- Add --output json to policy publish, enable, disable, rm and validate-config, and print the updated policy group on enable and disable. Pull request #25347
- Return the engine's in-memory snapshot from Backend.Import so pulumi import --preview-only keeps generated resource code. Pull request #25448
- Validate schema property names after reduction and report collisions as schema errors. Pull request #25292
- Bind PCL hideDiffs against both resource inputs and outputs. Pull request #25450
- Use a custom parent's provider for PCL invokes and honor parent and pluginDownloadUrl. Pull request #25403
- Report a diagnostic instead of panicking for PCL blocks with no labels. Pull request #25445
- Switch an empty flow mapping to block style when it gains its first entry. Pull request #25415
- Highlight backtick-quoted commands in CLI error messages. Pull request #25432
- Encrypt config secrets through a managed ESC environment's encrypt-secrets route. Pull request #25460
- Handshake once with conformance providers loaded from a path. Pull request #25475
Pulumi 3.273.0 is out. This week: pulumi policy get, JSON output for policy pack commands, preview-only imports that keep generated code, schema name-collision checks and PCL fixes for hideDiffs, invokes and label errors.
Pulumi 3.273.0 is out. This week the CLI gained pulumi policy get for inspecting a published policy pack, plus --output json for publish, enable, disable, rm and validate-config, with enable and disable now printing the updated group. Preview-only imports now return the engine's in-memory snapshot so generated resource code is kept. The schema binder rejects property names that collide after reduction to SDK identifiers, and PCL fixes cover hideDiffs on inputs as well as outputs, parent and pluginDownloadUrl on invokes, and a clean diagnostic for blocks without labels.
Week of October 19, 2026
What shipped
- Released 3.272.0, which collapses policy violations exempted by an exception into one line per policy and adds a flag to list them with their exceptions. Release
- Kept the unknown outputs of remote components so apply callbacks and dependent resources wait for outputs that depend on a child resource that is awaiting, failed or skipped. Pull request #25291
- Added an AwaitError to the provider protocol so a provider can report that a Create or Update could not be awaited to completion instead of holding the deployment. Pull request #25278
- Added pulumi env change-request commands to work with approvals from the CLI. Pull request #25122
- Made skipped resource operations return dry-run outputs with unknown set under continue-on-error instead of failing. Pull request #25227
- Removed the experimental pulumi logs command; logs remains as the parent of the decrypt, list, remove and share subcommands. Pull request #25322
- Removed the experimental pulumi watch command along with the operations package and backend watch support. Pull request #25323
- Added a resourceExists builtin to PCL, and the engine now passes properties to Read as inputs only rather than as state. Pull request #25321
- Applied policy exceptions sent by Pulumi Cloud for required policy packs, not just exceptions from local config files. Pull request #25284
- Changed Go program generation to type applies over optional objects as pointers, so comparisons to null compile. Pull request #25337
Why it matters
This week brought a new release, 3.272.0, along with two experimental commands removed and fixes for remote component outputs and skipped resources. It also extended the provider protocol with an AwaitError and added env change-request commands for working with approvals.
Changelog entry
- Release 3.272.0 with exempted policy violations collapsed into one line per policy and a --show-policy-exceptions flag on up and preview Release
- Keep remote component outputs unknown when they depend on a child resource that is awaiting, failed or skipped Pull request #25291
- Add AwaitError to the provider protocol for Create and Update operations that cannot be awaited to completion Pull request #25278
- Add pulumi env change-request commands for working with approvals Pull request #25122
- Return dry-run outputs with unknown set from skipped resource operations under continue-on-error Pull request #25227
- Remove the experimental pulumi logs command Pull request #25322
- Remove the experimental pulumi watch command and the operations package Pull request #25323
- Add a resourceExists builtin to PCL; ExistsResource passes properties to Read as inputs only Pull request #25321
- Apply policy exceptions sent by Pulumi Cloud for required policy packs Pull request #25284
- Type Go applies over optional objects as pointers Pull request #25337
- Allow length of a conditional that gives null or a list Pull request #25327
- Show the searched directory in the missing Pulumi.yaml error Pull request #25187
Pulumi 3.272.0 is out: exempted policy violations are collapsed with a flag to show them, and remote component outputs stay unknown when their children are awaiting, failed or skipped. Plus an AwaitError in the provider protocol, env change-request commands, and the experimental
Pulumi 3.272.0 shipped this week. Policy violations that an exception exempts now collapse into one line per policy, with --show-policy-exceptions on up and preview to list them with their exceptions. Remote component outputs that depend on a child resource which is awaiting, failed or skipped now stay unknown, so apply callbacks and dependent resources no longer run early with the wrong value. The provider protocol gains an AwaitError for operations that cannot be awaited to completion, and skipped resources under continue-on-error return dry-run outputs with unknown set. The CLI adds pulumi env change-request for working with approvals, and the experimental pulumi logs and pulumi watch commands are removed.
Week of October 12, 2026
What shipped
- The Java language runtime is no longer bundled with the CLI and is downloaded on demand the first time a runtime: java stack runs. Pull request #25205
- Pulumi logs now returns an error by default as the second step of its removal schedule, with an environment variable to keep running it until removal. Pull request #25201
- Pulumi watch now returns an error by default as the second step of its removal schedule, with an environment variable to keep running it until removal. Pull request #25202
- ESC environment updates now send If-Match so env edit, env set, env rm and env provider no longer overwrite changes made after they read the environment. Pull request #24983
- Pulumi stack drift status now reports an unknown drift status when drift detection has never run instead of printing no drift detected. Pull request #25172
- The PostgreSQL state backend now only creates its table and index when they do not already exist, so roles with only SELECT no longer need CREATE privileges. Pull request #25217
- Go program generation for split and other scalar array and map conversions now compiles by using the pulumi.ToStringArray and pulumi.To helpers. Pull request #25214
- OutputValues are now negotiated on the Call RPC path so SDKs can receive per-value dependencies in Call return values. Pull request #25017
- Pulumi env commands that support --draft now also accept a --reason flag. Pull request #24936
- Config and about commands are now included in the generated NodeJS, Python and Go automation APIs, with structured JSON output. Pull request #25072
Why it matters
This week's releases continue the property.Value migration in plugins and add OutputValues negotiation on Call so SDKs can get per-value dependencies. Users get clearer drift reporting, safer ESC environment updates, and a leaner CLI that downloads the Java runtime on demand, while pulumi logs and pulumi watch move further along their removal schedules.
Changelog entry
- The Java language runtime is no longer bundled with the CLI and is downloaded on demand at v1.37.4 the first time a runtime: java stack runs. Pull request #25205
- Pulumi logs now returns an error by default; set PULUMI_DISABLE_EXPERIMENTAL_LOGS_REMOVAL_ERROR=1 to run it until removal. Pull request #25201
- Pulumi watch now returns an error by default; set PULUMI_DISABLE_EXPERIMENTAL_WATCH_REMOVAL_ERROR=1 to run it until removal. Pull request #25202
- Pulumi env edit, env set, env rm and env provider now send If-Match so they no longer overwrite changes made after they read the environment. Pull request #24983
- Pulumi stack drift status now reports an unknown drift status when drift detection has never run. Pull request #25172
- The PostgreSQL state backend only creates its state table and index when they do not already exist. Pull request #25217
- Go program generation uses pulumi.ToStringArray and matching To helpers for split and other scalar array and map conversions. Pull request #25214
- OutputValues are negotiated on Call so SDKs receive per-value return dependencies and opted-in providers can use OutputValues in Call arguments and responses. Pull request #25017
- Pulumi env commands that support --draft now accept --reason. Pull request #24936
- Config, config get, config set-all, config env ls, config refresh and about commands are included in the generated NodeJS, Python and Go automation APIs. Pull request #25072
- Assignability checks for recursive schema types no longer overflow the stack. Pull request #25176
- Object type equality for recursive types is now keyed by the pair of objects being compared. Pull request #25177
This week: Java runtime downloads on demand, pulumi logs and watch now error by default with opt-out variables, ESC env updates use If-Match, drift status reports unknown when it never ran, and output values negotiate on Call.
This week in Pulumi: the Java language runtime is no longer bundled with the CLI and is downloaded on demand the first time a runtime: java stack runs. pulumi logs and pulumi watch now return an error by default as the next step in their removal schedules, each with an environment variable to keep them running until removal. ESC environment updates now send If-Match so env edit, env set, env rm and env provider no longer overwrite changes made after they read the environment. pulumi stack drift status reports an unknown status when drift detection has never run. The PostgreSQL state backend only creates its table and index when missing, and output values are now negotiated on Call.
Week of October 5, 2026
What shipped
- Version 3.268.0 shipped with OutputValues negotiated on Invoke so SDKs can pass dependency-carrying values in args and receive them in responses. Release
- An ExistsResource RPC was added to the resource monitor, reporting whether a resource with a given ID exists without registering it in state. Pull request #24807
- Pulumi policy group edit now sends stack, Policy Pack and Insights account changes through the batch endpoint so edits take effect. Pull request #24996
- OPA policy packs now run through the pulumi-language-opa language plugin, fixing pulumi policy new and pulumi install for them. Pull request #24784
- Secret output values are now redacted in log output and in logs share, including secrets that carry dependencies. Pull request #25092
- InputType now recurses into tuples, so tuple literals holding outputs convert to the input form of the resolved tuple type. Pull request #24782
- IDInput is now a StringInput and redundant ID conversions were dropped in Go codegen. Pull request #25101
- Go object literals of outputs are now typed as the SDK's named maps, mirroring typed lists and removing generator hacks. Pull request #25108
- Pulumi new no longer prompts for a Python toolchain when neither Poetry nor uv is installed and uses pip. Pull request #25158
- Pulumi new for Node.js projects skips the package manager prompt when exactly one of npm, pnpm, yarn or bun is installed. Pull request #25151
Why it matters
This week brings the 3.268.0 release plus a set of fixes that change what users see day to day. Policy group edits that previously reported success without applying now go through the batch endpoint, OPA policy packs install and create again, and secrets that carry dependencies are redacted in logs. New projects get smoother setup with fewer toolchain prompts, and generated Go and PCL behavior is more consistent around outputs, IDs and tuples.
Changelog entry
- 3.268.0 released, including OutputValues negotiated on Invoke for dependency-carrying args and responses. Release
- Add ExistsResource RPC to the resource monitor, reporting whether a resource exists without registering it in state. Pull request #24807
- Send pulumi policy group edit changes through the batch endpoint so stack, Policy Pack and Insights account edits apply. Pull request #24996
- Run OPA policy packs through the pulumi-language-opa language plugin, fixing pulumi policy new and pulumi install. Pull request #24784
- Redact secret output values in log output and logs share, including secrets that carry dependencies. Pull request #25092
- Recurse into tuples when computing the input form of a type. Pull request #24782
- Make IDInput a StringInput and drop redundant ID conversions in Go codegen. Pull request #25101
- Type Go object literals of outputs as the SDK's named maps. Pull request #25108
- Pulumi new uses pip without prompting when no other Python toolchain is found. Pull request #25158
- Skip the Node.js package manager prompt when only one package manager is installed. Pull request #25151
- Fix branch switching in gitCloneAndPull so git-based project references check out the requested branch. Pull request #25088
- Fix workspace settings path when a project directory is reached through a symlink. Pull request #25046
Pulumi 3.268.0 is out. This week: policy group edit changes now apply, OPA policy packs run via the pulumi-language-opa plugin, secrets with dependencies are redacted in logs, ExistsResource RPC added, and pulumi new prompts less for Python and Node.js.
Pulumi 3.268.0 shipped this week. Alongside the release, several fixes land for people using the CLI and SDKs every day. pulumi policy group edit now sends changes through the batch endpoint, so stack, Policy Pack and Insights account edits are applied rather than silently dropped. OPA policy packs run through the pulumi-language-opa language plugin, which fixes pulumi policy new and pulumi install for them. Secret output values, including secrets carrying dependencies, are redacted in log output and logs share. A new ExistsResource RPC reports whether a resource exists without registering it in state. Generated Go and PCL code is more consistent around outputs, IDs and tuples, and pulumi new asks fewer questions when only one Python or Node.js toolchain is available.
Week of September 28, 2026
What shipped
- Providers can now negotiate OutputValues in invoke requests and responses, allowing SDKs to pass dependencies through invoke calls when both sides opt in. Pull request #24953
- Asset contents are now restored from prior state during Read and Update operations, fixing cases where elided assets were not being recovered. Pull request #24570
- Trace context is now propagated on backend API calls when using --otel-traces, allowing complete trace chains through HTTP requests to the server. Pull request #25009
- Plugins can now be downloaded from Git repositories that use version tags without the v prefix, such as plain 1.0.0 format. Pull request #24986
- Resource transforms declared on ancestor components are now correctly applied when the resource parent chain passes through a read-style resource. Pull request #24689
- Hooks have been migrated to use property.Map as part of the ongoing property migration. Pull request #24968
- The Read operation has been migrated to property.Map with pointer support for nil-ness semantics. Pull request #24963
- The version command has been added to generated automation APIs for NodeJS, Python, and Go. Pull request #24990
- Version 3.267.0 released with bug fixes for concurrent pulumi new runs and Python plugin installations using the uv toolchain. Release
Why it matters
This week focused on improving invoke capabilities through OutputValue negotiation, fixing state handling for assets, and enhancing observability with trace propagation. The release of v3.267.0 addresses critical issues with template cloning and Python toolchain compatibility. Numerous test parallelization improvements and code cleanup changes reduce resource leaks and port exhaustion during testing.
Changelog entry
- Negotiate OutputValues on Invoke - SDKs and providers can now pass and receive OutputValues with dependencies in invoke requests/responses Pull request #24953
- Restore elided asset contents from prior state on Read and Update operations Pull request #24570
- Propagate trace context on backend API calls when using --otel-traces Pull request #25009
- Download plugins from Git repositories with version tags lacking v prefix Pull request #24986
- Apply ancestor transforms through read-resource parents Pull request #24689
- Migrate hooks to property.Map Pull request #24968
- Migrate Read operation to property.Map Pull request #24963
- Add version command to generated automation APIs Pull request #24990
Pulumi v3.267.0 is out. OutputValues now supported in invokes, asset state restoration fixed, trace context propagates through backend calls, and Git tags without v prefix now work.
Pulumi v3.267.0 released with key improvements: OutputValues can now be negotiated in invoke requests for better dependency handling, asset contents are properly restored from state during Read/Update operations, OpenTelemetry trace context propagates through backend API calls for complete observability, and plugins can be downloaded from Git repositories using version tags without the v prefix. Also includes fixes for concurrent template operations and Python toolchain compatibility.
Week of September 21, 2026
What shipped
- V3.265.0 released with pulumi logout --all --delete-credentials-key to remove encryption keys from the OS credential store and fixes for Python output-dependent resource ranges. Release
- Windows binaries are now Authenticode-signed in release builds to prevent false malware detection by Defender. Release
- Added model.Compare for structural ordering of model types by kind, name, value, and element types. Pull request #24804
- Added rapidmodel package to generate PCL model types for property-based testing with opaque types, constants, enums, and nested collections. Pull request #24803
- Fixed Python code generation for output-dependent resource ranges to avoid syntax errors in loop variables. Pull request #24474
- Fixed closure serialization of import-star cached modules in TypeScript to properly serialize CommonJS dependencies. Pull request #24797
- Implemented pluginstorage package with atomicinstall to consolidate plugin installation logic and fix Ctrl-C cancellation of file-based locks. Pull request #24711
- Policy packs now install using the same robust plugin installation strategy via atomicinstall. Pull request #24705
- Fixed pulumi logout and login to preserve shared credentials encryption key across PULUMI_HOME and credential file instances. Pull request #24764
- Fixed self-referencing resource imports in Node.js SDKs to prevent circular import issues. Pull request #24752
Why it matters
V3.265.0 brings security improvements for Windows binaries, fixes for Python code generation in complex scenarios, and better credential handling across multiple authentication contexts. The PCL interpreter and type system also received multiple correctness fixes for edge cases in tuple indexing, constant handling, and closure serialization.
Changelog entry
- Add pulumi logout --all --delete-credentials-key to delete credentials encryption key from OS credential store Release
- Generate valid Python for output-dependent resource ranges Pull request #24474
- Authenticode-sign Windows binaries in release builds Release
- Keep shared credentials key on logout and login Pull request #24764
- Add model.Compare for structural ordering of model types Pull request #24804
- Add rapidmodel package to generate PCL model types for property-based tests Pull request #24803
- Implement pluginstorage package with atomicinstall for unified plugin installation Pull request #24711
- Install policy packs using plugin installation strategy Pull request #24705
- Fix closure serialization of import-star cached modules in TypeScript Pull request #24797
- Fix self-referencing resource imports in Node.js SDKs Pull request #24752
V3.265.0 is out. Windows binaries now Authenticode-signed, Python output-dependent ranges fixed, and credentials key stays shared across logout/login cycles.
V3.265.0 released with Authenticode-signed Windows binaries to address Defender false positives, fixes for Python code generation with output-dependent resource ranges, improved credential handling across login/logout operations, and plugin/policy installation using unified atomicinstall logic.
Week of September 14, 2026
What shipped
- V3.263.0 released with fixes for deployment settings, state migrations, and dependency upgrades. Release
- Pulumi logs command now prints a deprecation warning when run, with an environment variable to disable the warning. Pull request #24722
- Pulumi watch command deprecated. Pull request #24720
- Pulumi neo's
pulumi_uptool no longer runs an implicit preview before updates since the user has already approved a preview. Pull request #24719 - State migrations now reported through user-facing diagnostics during deployments. Pull request #24713
- Resources in PendingReplacement state are no longer retried for deletion, avoiding failures mid-operation. Pull request #24588
- Stacks configured with a repository URL can now migrate to a VCS integration from the CLI. Pull request #24529
- Pulumi deployment settings edit now accepts git authentication flags for private repositories on non-GitHub providers. Pull request #24528
- Pulumi deployment settings edit no longer overwrites a non-GitHub stack's source when run with GitHub flags. Pull request #24526
- Resources retained by pulumi state promote are now protected from accidental deletion. Pull request #24640
Why it matters
V3.263.0 improves deployment settings management by adding authentication options for private repositories and preventing unintended overwrites when migrating between VCS providers. The release also fixes state handling during partial creates and protects promoted resources, while deprecating legacy commands like pulumi logs and pulumi watch.
Changelog entry
- Deprecate pulumi logs command with removal warning Pull request #24722
- Deprecate pulumi watch command Pull request #24720
- Skip implicit preview in pulumi neo's
pulumi_uptool Pull request #24719 - Report state migrations through user-facing diagnostics Pull request #24713
- Avoid retrying deletion of resources in PendingReplacement state Pull request #24588
- Allow stacks with repository URL to migrate to VCS integration Pull request #24529
- Add git authentication and cache flags to pulumi deployment settings edit Pull request #24528
- Add VCS trigger flags and integration ID support to pulumi deployment settings edit Pull request #24527
- Update resources instead of recreating on OnError retries after partial create Pull request #24684
- Stop pulumi deployment settings edit from overwriting non-GitHub stack source Pull request #24526
- Protect resources retained by pulumi state promote Pull request #24640
V3.263.0 is out. Deployment settings now support git auth for private repos, state migrations are reported, and promoted resources are protected. pulumi logs and pulumi watch are deprecated.
V3.263.0 released: deployment settings add git authentication flags for private repositories on any provider, state migrations are now visible in diagnostics, resources in PendingReplacement state skip deletion retries, and stacks can migrate from repo URLs to VCS integrations. We're also deprecating pulumi logs and pulumi watch commands.