releases.shpreview
Pulumi/Pulumi

Pulumi

$npx @buildinternet/releases get pulumi
Mon
Wed
Fri
MayJunJulAugSepOctNovDecJanFebMarAprMay
Less
More
Releases21Avg6/moVersionsv3.220.0 to v3.239.0
Stack inspection commands added; batch encrypt/decrypt errors no longer dropped

3.239.0 (2026-05-14)

Features
  • [cli] Add --output json to pulumi import for a structured JSON summary of the operation result #22929

  • [cli] Add pulumi stack get to retrieve detailed information about a stack #23106

  • [cli] Add pulumi stack webhook get to inspect a single stack webhook #23088

  • [cli] Add pulumi stack webhook ping to send a test ping to a stack webhook

  • [cli/cloud] Add pulumi deployment list to list deployment executions for a stack #23114

  • [sdkgen] Validate that schema names can't conflict with module paths #22956

Bug Fixes
  • [engine] Fix batch encrypt/decrypt errors being silently dropped #23149

  • [cli/cloud] Fix pulumi api help examples that referenced non-existent operation IDs and response fields #23125

pulumi up gains --output json; pulumi cloud api renamed to pulumi api

3.238.0 (2026-05-13)

Features
  • [cli] Add a --language flag to pulumi package add to run outside a Pulumi project or plugin #22791

  • [cli] Add --output json to pulumi up for a structured JSON summary of the operation result #22870

  • [cli] Recommend pulumi cloud api describe in pulumi cloud api --help to verify operation parameters before calling #22881

  • [cli] Add pulumi stack webhook list to list all webhooks configured for a stack #23082

  • [cli/cloud] Rename pulumi cloud api to pulumi api #22970

  • [cli/cloud] Add pulumi insights resource get to look up a single resource discovered by Pulumi Insights #23077

  • [cli/cloud] Add pulumi template list to list registry-backed templates #23074

  • [cli/cloud] Rename the --format flag to --output on pulumi api and its subcommands #23072

  • [cli/cloud] Add pulumi insights resource search to search for resources discovered by Pulumi Insights #23087

  • [cli/engine] Add --skip-plugin-pre-install to skip up-front plugin installation

  • [engine] Fail the deployment when an after hook fails #22935

  • [cli/neo] Render the agent's TODO list in the pulumi neo TUI #22864

  • [cli/neo] Add --approval-mode and --permission-mode flags to pulumi neo, with Ctrl+A and Ctrl+R hotkeys to switch modes mid-session #22950

  • [cli/package] When invoked by an AI coding agent, print pulumi api pointers after pulumi package add and pulumi package gen-sdk #22904

  • [pkg/testing] Recognize the hcl and pcl runtimes in integration.ProgramTest #23018

  • [pkg/testing] Add l1-config-types-optional conformance test for PCL's optional type constructor #23108

Bug Fixes
  • [backend/diy] Minify JSON persisted by the DIY backend for checkpoints, history, and stack tags #22245

  • [cli/import] Ignore property values that do not conform to the schema in maps #23076

  • [cli/import] Stop dropping map values whose element type is a union of Input-wrapped types during HCL2 import

  • [cli/neo] Use the selected stack's organization when starting a pulumi neo task instead of the user's default organization #22951

  • [cli/neo] Include the failure reason in pulumi_preview and pulumi_up tool results when they fail, so the agent can react instead of seeing a blank error #22948

  • [cli/neo] Retry pulumi neo task creation without the attached stack when the backend rejects it with an "invalid entities" error #22945

  • [cli/neo] Surface the failure reason when a filesystem tool call fails, instead of returning an empty result to the agent #23019

  • [cli/package] Use --output=markdown (not the renamed-away --format=markdown) in the pulumi api pointers printed by pulumi package add and pulumi package gen-sdk #23098

  • [programgen/pcl] Stop reporting spurious circular references when an ignoreChanges, hideDiffs, replaceOnChanges, or additionalSecretOutputs entry shares a name with a top-level node #22931

  • [sdk/python] Speed up python program resolution by using a set instead of deque to track outputs #22946

Miscellaneous
  • [cli/neo] Tag Neo tasks created from the CLI with a cli source so the service can attribute their origin #23099

  • [sdk/nodejs] Add registerPackage helper to cache package references per deployment #23014

pulumi package new bootstraps packages; pulumi neo panic fixed

3.237.0 (2026-05-08)

Features
  • [cli] Include the running command name and detected AI agent (when present) in the User-Agent header on Pulumi Cloud API requests #22908

  • [engine] Include result on the summary engine event #22883

  • [sdkgen] Eagerly error on schemas with unconstructable types #22890

  • [cli/cloud] Auto-fill lang and os query parameters on pulumi cloud api GET/HEAD requests when the matched OpenAPI operation declares them and the caller hasn't supplied them #22726

  • [cli/package] Add pulumi package new to bootstrap a Pulumi package from a template #22837

Bug Fixes
  • [cli] Add blank-line gaps between pulumi neo TUI conversation blocks #22846

  • [cli/import] Preserve __-prefixed keys when generating PCL for imported resource state, so provider-defined payloads round-trip correctly #22856

  • [cli/neo] Render ux__ask_user clarifying questions as questions instead of approval prompts #22862

  • [cli/neo] Fix a panic when cancelling a pulumi neo session #22898

  • [cli/neo] Render every assistant message in the TUI scrollback so multi-turn commentary no longer disappears between tool calls

  • [cli/neo] Return the bare stack name and canonical project name from pulumi_preview and pulumi_up tool results instead of echoing the raw input #22891

  • [codegen/pcl] Stop reporting spurious circular references when an ignoreChanges, hideDiffs, replaceOnChanges, or additionalSecretOutputs entry shares a name with a top-level node #22916

  • [programgen/pcl] Fix PCL binder panic when a conditional mixes a Promise-typed branch with a try() branch #22907

  • [sdk/python] Support NotRequired, Required and total=False in TypedDicts for component resource arg types #22858

Miscellaneous
  • [cli/cloud] Auto-fit pulumi cloud api list table to terminal width and replace the tabular table renderer with go-pretty

    #22874

  • [sdk/nodejs] Test on Node.js 26 and drop 20 #22872

3.235.0 (2026-05-05)

Features
  • [cli] Add pulumi logs decrypt command for viewing logs #22523

  • [cli] Bundle the hcl language host (from pulumi-labs/pulumi-hcl) #22807

  • [cli] Automatically install the hcl converter from pulumi-labs/pulumi-hcl when running pulumi convert --from hcl #22816

  • [pcl] Add read blocks to PCL to read resources via ID and query instead of registering them #22641

  • [cli/cloud] Add pulumi cloud api <op-or-path> for calling any Pulumi Cloud API endpoint, with --field/--header/--input/--body flag handling, path template binding, content negotiation via --format, and --dry-run

    #22771

  • [cli/cloud] Add --paginate to pulumi cloud api: follow continuation cursors, accumulate items into a single JSON envelope, and surface progress events to stderr with --emit-events (page, complete, truncated, partial_failure, cancelled).

    #22772

Bug Fixes
  • [cli] Fix the pulumi neo shell tool to honor the agent-supplied timeout and to terminate the whole process tree (and unblock cmd.Wait) when the deadline fires, so commands like kubectl logs -f no longer hang Neo indefinitely. #22820

  • [cli] Surface the error and exit when pulumi neo fails to create the underlying task, instead of leaving the TUI stuck in Thinking… #22825

  • [codegen/go] Correctly generate []pulumi.Asset & []pulumi.Archive #22827

  • [cli/neo] Exit cleanly when the user presses Ctrl+C twice in pulumi neo instead of hanging until a third press #22821

  • [engine] The engine now caches schemas at PULUMI_HOME/schemas, and will cache for parameterised packages as well #22812

  • [sdk-python] Preserve __-prefixed keys (e.g. __type discriminators) across RPC deserialization, matching the behavior of the other language SDKs #22834

  • [programgen/{nodejs,python}] Fix programgen to emit the right length check for string length #22802

Miscellaneous
  • [cli] Replace the Pulumipus mascot in the pulumi neo welcome banner with new Neo-branded ASCII art. #22817

3.234.0 (2026-05-01)

Features
  • [cli/cloud] Add pulumi cloud api describe for inspecting the parameters, request body, and response schema of any Pulumi Cloud API operation, with text, markdown, and JSON output

    #22770

  • [cli/cloud] Add pulumi cloud api list for browsing every endpoint exposed by the Pulumi Cloud OpenAPI spec, with table and JSON output

    #22769

Bug Fixes
  • [engine] Revert changes to property path parsing that resulted in errors for currently valid paths

3.233.0 (2026-04-30)

Features
  • [auto/python] Expose the auto-generated Pulumi CLI interface as workspace.cli_api #22638

  • [cli] Add encrypted logging to ~/.pulumi/logs; use the PULUMI_ENABLE_AUTOMATIC_LOGGING feature flag to turn it on #22494

  • [cli] Implement the filesystem__grep and filesystem__content_replace local tools for pulumi neo. grep runs a regex search across files in the project root with an optional include glob filter and returns results in path:lineno: line form. content_replace performs a literal multi-file search-and-replace with a file_pattern glob and dry_run preview mode. Both tools skip binary files, hidden directories, and node_modules, and reject paths outside the project root. Their input schemas match the cloud-side tool definitions.

    #22655

  • [cli] Add pulumi_preview and pulumi_up as local tools for the experimental pulumi neo agent. The Neo TUI renders a persistent bordered block for each operation that streams changed resources and diagnostics as the engine runs and finalizes with a summary of the op counts. Hidden behind PULUMI_EXPERIMENTAL.

    #22697

  • [engine] Add List to the provider protocol and schema #22693

Bug Fixes
  • [engine] Return a clear error when two installed plugins claim the same default provider package name (for example, a native scaleway provider alongside a terraform-provider bridge parameterized as scaleway) instead of panicking with "Should not have seen an older plugin if sorting is correct!" #22679

  • [programgen] Do not wrap a call(...) on a method whose return type is marked plain in an Output. Previously PCL bound every method call's return type as Output<T>, which caused downstream program-gen to emit broken .apply(...)/.ApplyT(...) traversals against plain struct returns (e.g. methods with liftSingleValueMethodReturns=true or ReturnTypePlain=true).

    #22696

  • [backend/diy] When using a backend url containing creds (e.g. PostgreSQL conn string), mask user:pass as in lock-related error messages #22701

  • [codegen/go] Generate unqualified Provider references for the package's own provider resource. Previously the Go codegen always emitted <pkg>.Provider even when the reference appeared inside <pkg> itself, producing identifiers that would not compile. Affects generated code for method return types (and other schema positions) that reference pulumi:providers:<pkg>.

    #22696

  • [codegen/nodejs] Generate unqualified Provider references for the package's own provider resource when emitting TypeScript code inside that package. Previously the generator always qualified the name as <pkg>.Provider, which does not resolve when no <pkg> namespace import is in scope.

    #22696

  • [codegen/nodejs] Import the correct class name for a provider resource. Imports for pulumi:providers:<pkg> used the title-cased package name instead of Provider, producing a phantom identifier that clashed with the containing package's component/resource classes.

    #22696

  • [programgen/nodejs] Emit await for call(...) invocations of methods whose return type is marked plain, and force the generated program into an async export = async () => ... wrapper whenever such a call is present. The Node SDK returns Promise<T> for plain methods; previously program-gen used the result directly, which did not match its runtime type.

    #22696

  • [codegen/python] Avoid a self-import (import pulumi_<pkg> inside pulumi_<pkg>/<module>.py) when referencing the package's own provider resource. Python referenced the Provider as pulumi_<pkg>.Provider even inside that package, which caused a circular import at runtime.

    #22696

  • [sdk/python] Reduce internal Output[T] data to a single asyncio.Future #22661

  • [sdkgen/{nodejs,python}] Generate optional input types that accept undefined/None values #22552

Miscellaneous
  • [auto/go] Drop the "With" prefix from generated option helpers so they match the naming of the existing optXxx packages #22682

3.232.0 (2026-04-22)

Features
  • [cli] Add an experimental pulumi neo command that creates a Pulumi Neo agent task in CLI tool-execution mode and runs the local tool loop. Filesystem and shell tool calls issued by the agent run on the user's machine in their working directory; the interactive chat continues to happen in the Pulumi Console at the URL the command prints. Hidden behind PULUMI_EXPERIMENTAL.

    #22473

  • [cli] Add support for handling user approval requests in the pulumi neo terminal UI. When the agent requests confirmation for a sensitive action, the TUI prompts the user and forwards their response back to the Pulumi Console. Hidden behind PULUMI_EXPERIMENTAL.

    #22589

  • [cli] Add an interactive terminal UI for pulumi neo built with bubbletea, rendering agent messages, tool calls, and streaming output in the terminal alongside the Pulumi Console session. Hidden behind PULUMI_EXPERIMENTAL.

    #22570

  • [cli] Switch logging library from glog to slog.

BREAKING: any if logging.V(x) { need to be changed to if logging.V(x).Enabled()

#22548

  • [cli] Add a plan-mode toggle to the pulumi neo TUI, bound to Shift+Tab. When plan mode is on, Neo explores and asks questions without writing files, running pulumi up, or opening PRs, and surfaces an approved plan via a dedicated approval gate. The toggle must be set before the first message (plan mode is task-level on the wire); approving the proposed plan exits plan mode automatically.

    #22634

  • [cli] The pulumi neo TUI now drives its "thinking" spinner off a single declarative rule (the spinner stays on until a final event — final assistant message, approval request, cancellation, or error — lands), so the indicator no longer flickers off when the agent hands off tool calls to the CLI or when streaming text arrives between tools. Press Esc during a turn to ask the agent to cancel; the label switches to "Cancelling..." until the backend acknowledges.

    #22637

  • [cli] pulumi neo now executes the edit filesystem tool locally, matching the schema and response wording of the upstream mcp-claude-code tool so the agent sees identical output whether the call ran on Cloud or CLI. edit performs exact-string replacement with occurrence-count validation, and creates a new file when the target is missing and old_string is empty.

    #22654

Bug Fixes
  • [cli] Render user messages in the pulumi neo TUI as soon as they're submitted instead of waiting for the Pulumi Cloud event stream to echo them back. The initial prompt passed on the command line also appears in the transcript at startup. Self-echoes from the server are de-duplicated; user input that originated from another client (e.g. the web UI on the same task) still renders.

    #22629

  • [cli] Wrap warnings, errors, and user-message bubbles to the terminal width in the pulumi neo TUI. Previously these blocks rendered as single long lines that were clipped at the right edge of the viewport. On resize, all width-dependent transcript blocks (user messages, warnings, errors, assistant messages) now reflow to the new terminal width.

    #22635

  • [cli/policy] Fix policy ls to use the default org name, not username #22656

  • [engine] Fix provider registry race condition in parallel delete-before-replace #21487

  • [engine] Signal providers to cancel before closing them during replacement

  • [sdkgen] Error on 'id' in state inputs #22636

  • [programgen/python] Add necessary casts between types in generated programs #22567

  • [sdkgen/go] Fix caching of package references to be per-deployment not per-process #22170

Miscellaneous
  • [java] Upgrade java to v1.25.0 #22673

  • [auto/go] Generate command methods for the Go Automation API codegen #22612

  • [sdk] Clarify docs on the remote parameter of ComponentResource / Resource in the Node and Python SDKs #22603

  • [sdk/dotnet] Upgrade dotnet to v3.103.1 #22676

  • [yaml] Upgrade yaml to v1.32.0 #22674

3.231.0 (2026-04-16)

Features
  • [cli] Auto-detect Mercurial repository metadata for pulumi up / pulumi preview updates, mirroring existing Git support #22618

  • [engine] Send Cancel RPC to plugins on host close for graceful shutdown #22569

  • [engine] Pass resource options to hooks through the engine #22582

  • [engine] Add GetDeploymentInfo to the resource monitor service

  • [auto/go] Add New command to Automation API #22439

  • [auto/{go,nodejs,python}] Add --diff to automation api for destroy #22563

  • [auto/python] Add new command to Automation API #22439

  • [pcl] Support for resource hooks in PCL #22365

  • [sdk-nodejs] Warn when a non-ComponentResource class is passed in the explicit components list to componentProviderHost #22619

  • [sdk-python] Warn when a non-ComponentResource class is passed in the explicit components list to component_provider_host #22619

  • [cli/import] Add support for providers to be defined in the same import file as their users #21671

  • [cli/policy] ESC environment support for local policy packs #22495

  • [sdk/nodejs] Support package.yaml when using pnpm #22491

  • [sdk/python] Add function decorator variants for resource and error hooks #22519

Bug Fixes
  • [auto/{nodejs,python}] Support --run-program for inline programs with preview_refresh/destroy

  • [backend/diy] Remove state lock for destroy and import with preview only for diy backend #22561

  • [engine] Fix snapshot integrity error with component/provider resources in refresh --run-program #21817

  • [pcl] Type list and tuple indices as integers not numbers #22592

  • [pcl] Builtin functions element and range take int parameters not numbers #22597

  • [programgen/{go,nodejs,python}] Fix some cases of name conflicts in program gen not being handled correctly #22556

  • [programgen/nodejs] Add necessary casts between types in generated programs #22557

  • [programgen/{nodejs,python}] Fix imports of camelCase modules #22536

  • [sdk/python] Support Input[Optional[T]] in Python runtime type unwrapping #22553

  • [sdkgen] Warn about modules nested under the index module which are not supported #22531

Miscellaneous
  • [java] Upgrade java to v1.24.0 #22615

  • [yaml] Upgrade yaml to v1.31.1 #22610

  • [sdk/dotnet] Upgrade dotnet to v3.103.0 #22614

  • [sdk/nodejs] Replace got by fetch #22533

3.230.0 (2026-04-08)

Features
  • [cli] Detect AI agents and send in update metadata #22497

  • [auto/nodejs] Add "org" commands (get-default, set-default, search, search ai) to the auto-generated interface #22395

  • [auto/nodejs] Add "new" command to the auto-generated interface #22421

  • [sdk/{nodejs,python}] Add Cancel handler to Python & Node.js providers #22516

  • [cli/policy] Add ESC environment resolution for policy packs #22425

Bug Fixes
  • [auto/go] Insert --non-interactive flag before "--" positional separator to avoid misinterpretation as a positional argument #22462

  • [ci] Add code coverage collection for Node.js automation tools tests #22412

  • [pcl] Allow key indexing into a map of resources created by range #22498

  • [programgen/go] Fix an issue with formatted index modules not importing correctly

  • [cli/state] Check for Pulumi.yaml projects and backend option in state upgrade #22483

  • [sdk/go] Fix Go program generation for ternary expressions inside apply callbacks, add Go predeclared identifiers to reserved words, handle optional list types in union type codegen, and fix unmarshalOutput for known outputs with null elements. #22460

  • [sdk/nodejs] Fix inherited input properties missing from component schema when args interface extends another interface #22446

  • [sdk/python] Fix inherited input properties missing from component schema when args class inherits from a base class #22484

Miscellaneous
  • [java] Upgrade java to v1.23.0

  • [sdk/dotnet] Upgrade dotnet to v3.102.1

  • [yaml] Upgrade to v1.31.0 #22501

  • [programgen/{dotnet,go,java,nodejs,pcl,python,yaml}] Remove mimeType & readDir from PCL #22449

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

  • [cli] Allow TRACEPARENT to be set for CLI invocations, parenting the pulumi spans under an existing parent span #22369

  • [cli/display] Add --urns flag to display full resource URNs instead of short names in preview, up, destroy, refresh, import, and watch commands #22007

  • [pcl] Type integer literals as integers rather than numbers in PCL #22268

  • [pcl] Support parameterized providers in PCL #22251

  • [protobuf] Add RunPlugin2 bidirectional streaming RPC to LanguageRuntime proto #22389

  • [yaml] Update YAML runtime to 1.30.2 #22426

  • [sdk/go] Add org get-default and set-default commands to Automation API

  • [sdk/nodejs] Modernize generated tsconfig.json to align with TypeScript defaults #22370

  • [cli/policy] Add a new policy analyze command to run a policy pack against existing state #22250

Bug Fixes
  • [backend/diy] Remove state lock for refresh --preview-only for diy backend #22385

  • [cli] Fix OTEL flushing on provider shutdown #22358

  • [cli/display] Fix deadlock in message renderer when cancelling an operation #22433

  • [engine] Fix --include and --exclude not working for program-based refresh (RefreshV2) #22404

  • [engine] Parallelize plugin cancellation in SignalCancellation #22431

  • [pcl] Fix looking up variables in parent scopes #22379

  • [pcl] Apply default values from resource schemas #22393

  • [sdk/{bun,go,nodejs,python}] Wire Cancel RPC to language host Run #22397

  • [sdk/nodejs] Allow TypeScript 6 as a peer dependency #22340

  • [sdk/nodejs] Fix closure serialization for __importStar-wrapped modules #22388

  • [sdk/python] Cache type metadata and class references in Python SDK to reduce CPU overhead during serialization #22422

  • [sdk/python] Replace busy-wait polling in wait_for_rpcs with asyncio.wait #22411

Miscellaneous
  • [cli] Add update metadata to the otel root span #22357

  • [java] Update to v1.22.0 #22437

  • [sdk/nodejs] Use nodenext for moduleResolution and module #22363

3.228.0 (2026-03-25)

Features
  • [cli] Don't apply the secrets filter to true and false (case-insensitive) #22269

  • [cli] Add grpcs:// support and header authentication to OTLP exporter #22320

  • [cli] Read OTEL_RESOURCE_ATTRIBUTES #22329

  • [auto/nodejs] Add low-level "cancel" command to the auto-generated interface #22156

  • [cli/state] Allow pulumi state delete to accept multiple resource URNs and delete them in a dependency-safe order

Bug Fixes
  • [cli] Allow relative file paths for --otel-traces #22300

  • [cli] Bridge opentracing spans from providers into OTel #22313

  • [cli] Correctly end spans for GRPC streams #22304

  • [cli/about] Do not include the access token in plain text #22347

  • [display] Fix detailed diff indentation so changed resources are not visually nested under unrelated visible resources when unchanged parents are hidden. #22317

  • [cli/import] Fix import codegen when generating references to non-standard names #22319

  • [engine] Update golang version #22277

  • [pcl] Typecheck component inputs in PCL programs #22292

  • [programgen/{nodejs,python}] Fix literal conversion when calling into local components #22306

Miscellaneous
  • [cli] Add CLI metadata to the root span #22305

  • [cli] Add more OTel interceptors for GRPC clients #22309

  • [cli] Add spans for plugin installation and add more attributes for dependency installation #22303

  • [cli] Allow setting a GRPC endpoint for performance tests #22330

  • [backend/diy] Start deprecation of non-project mode for DIY backends #19625

3.227.0 (2026-03-19)

Features
  • [engine] The engine will fill in Name and Type for ResourceReference values on the wire protocol #22208

  • [sdk/bun] Add support for running policy packs with bun #22206

  • [cli/policy] Auto-install missing policy analyzer plugins #22196

  • [sdk/python] Add lock file detection for picking the Python toolchain #22234

Bug Fixes
  • [cli] Use distinct exit codes for different types of error #22205

  • [cli] Improve SAML SSO reauthorization error message

  • [engine] Fix snapshot integrity error in refresh v2 with changed parents #22190

  • [pcl] Continue running after errors when running with --continue-on-error #22171

  • [pcl] Deprecate labels on package blocks #22253

  • [programgen] Preserve traversal parts in rewriteRelativeTraversalExpression #22249

  • [sdk/bun] Check for an SDK version compatible with bun #22262

  • [programgen/nodejs] Correctly generate for expressions #22219

  • [sdk/go] Add support for Azure DevOps git URLs in pulumi package publish code paths #22217

  • [programgen/python] Correctly generate list & dictionary comprehension in Python code #22182

Miscellaneous
  • [backend] Move CloudConsoleURL from httpstate to httpstate/client #22258

  • [docs] Move remaining content from /developer-docs to /docs #22225

  • [sdk/bun] Add a test for the function serialization error message when using bun #22207

  • [sdk/bun] Run policy language tests for bun #22209

  • [sdk/bun] Mark pulumi-language-bun as a bundled plugin #22265

  • [sdk/{bun,nodejs}] Use defaultErrorMessage in run-plugin and run-policy-pack #22210

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

  • [cli] Add a --otel-traces flag, that allows writing otel traces to a file, or directly to a grpc interface #22129

  • [engine] Engine will use provider references from __self__ arguments to calls #22114

  • [sdk/bun] Support bun as a runtime #22177 #22049

  • [sdk/bun] Add debugger support for the bun runtime #22177

  • [sdk/bun] Add support for Bun as a plugin runtime #22189

Bug Fixes
  • [engine] Fix ReplacementTrigger firing due to dependency changes #22119

  • [engine] Correctly serialize output values to the snapshot rather than always recording them as computed even when known #22120

  • [pcl] Support resource ranges in PCL #22144

  • [cli/config] Include environments used when refreshing a stack's config #22103

  • [cli/display] Fix pulumi destroy not showing parent resource hierarchy #22148

  • [cli/package] Correctly parse package URLs with .git in them #22174

  • [cli/plugin] Fix package get-schema for binary providers at relative paths #22107

  • [sdk/python] Handle null detailedDiff in automation StepEventMetadata JSON parsing #22140

  • [cli/state] Fix state move integrity errors when copied providers depend on resources left in source stack #22141

Miscellaneous
  • [cli/about] Show bun information in pulumi about #22121

  • [programgen/go] Target go 1.25 for generated go.mod files (instead of go 1.23) #22070

  • [sdkgen/go] Target go 1.25 for generated go.mod files for SDKs (instead of go 1.20) #22131

  • [sdk/python] Read Poetry and uv lockfiles to determine program dependencies #22072

  • [sdk/python] Use importlib to find pulumi-plugin.json for installed packages #22127

3.225.1 (2026-03-05)

Bug Fixes
  • [engine] Fix inheritence of default providers across resources of different packages #22101

  • [programgen/go] Fix panic on digit-prefixed schema properties in Go code generation #21917

  • [programgen/go] Fix plain values not always being lifted to input/output values when needed #22084

  • [programgen/python] Fix generation of entries and lookup calls #22086

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

  • [engine] The engine now handles the inheritance of the provider option in resource registrations #21999

  • [engine] Enable journaling by default. It can still be turned off using the PULUMI_DISABLE_JOURNALING env variable #22041

  • [programgen] PCL can now express config values should be read as secrets #22066

  • [yaml] Update yaml to v1.30.0

  • [cli/engine] Add a flag for automatically opening a Neo task on preview/up failure #21960

  • [cli/package] Support source-based packages in pulumi schema check, not just schema files #21897

Bug Fixes
  • [cli] Fix stack import panicking when importing a service stack into a DIY backend #22076

  • [engine] Fix panic when a new component resource in the program is not targeted #21957

  • [sdk/nodejs] Implement GetProgramDependencies for bun and pnpm #22065

Miscellaneous
  • [cli] Build language plugins with the grpcnotrace tag to reduce the binary size #22012

3.224.0 (2026-02-26)

Features
  • [backend/diy] Add zstd compression option for DIY backend state files #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

Bug Fixes
  • [pkg] Correct the schema for "pulumi:pulumi:StackReference" #21895

  • [programgen/nodejs] Correct the semantics of singleOrNone in generated files #21947

  • [sdk/python] Fix StepEventMetadata.from_json reading detailed_diff (snake_case) instead of detailedDiff (camelCase), and PolicyEvent.from_json reading resource_urn instead of resourceUrn, causing both fields to always be None #21714

  • [sdk/python] Convert integer component inputs to int #21944

  • [sdk/python] Fix crash in forked processes using automation API #21937

  • [engine] Fix panic when a new component resource in the program is not targeted #21957

Miscellaneous
  • [sdk] Update java, dotnet & yaml #21961

  • [sdk/python] Improve the performance of contains_unknowns for large objects #21893

3.223.0 (2026-02-19)

Bug Fixes
  • [engine] Report policy pack installation errors #21882

3.222.0 (2026-02-18)

Features
  • [programgen/go] Generate Call requests #21836
Bug Fixes
  • [sdk/{nodejs,python}] Fix hang when loading policy packs that use v1.18.1 or older of the policy SDK #21866

3.221.0 (2026-02-17)

Features
  • [auto] Support Go 1.26 #21835

  • [engine] BREAKING: Rename pulumiVersionRange to requiredPulumiVersion in PulumiPlugin.yaml #21807

  • [cli/plugin] Reduce GitHub API usage when downloading plugins #21774

  • [protobuf] Add loader_target to RunPluginRequest #21763

  • [sdk/nodejs] Support enums when inferring schemas from components #21787

  • [sdk/nodejs] Support the Partial<T> utility type in component schema inference #21802

  • [sdk/nodejs] Support the Required<T> utility type in component schema inference #21803

Bug Fixes
  • [cli] Make stack graph output deterministic #21786

  • [engine] Fix snapshot integrity error in refresh --run-program with component resources #21806

  • [engine] Fix race in refresh --run-program #21815

  • [programgen/go] Correctly handle import paths for nested modules #21812

  • [sdkgen] Support type references to parameterized and third-party packages #21804

  • [sdkgen/go] Do not depend on pulumix against instructions for enums #21818

  • [cli/{install,package}] Don't panic when a non-absolute path is passed to pulumi package get-schema where the PulumiPlugin.yaml has a packages section #21794

  • [cli/{install,package}] Only link a Pulumi project once #21788

  • [cli/{install,package}] Run in the correct location when using uv to link python packages #21796

  • [cli/package] Allow underscores in the path of plugin URLs #21778

  • [sdk/{nodejs,python}] Use new policy plugin support to run policy packs #21684

  • [sdk/python] Surface errors from uv, poetry or pip during linking #21770

  • [sdk/python] Always surface errors from uv, poetry or pip during dependency installation #21814

  • [sdkgen/python] Add missing blank line before :param lists #21789

Last Checked
7h ago
Latest
v3.239.0
Tracking since Oct 1, 2024