chore(deps): update pnpm to v11.3.0 #326

Open
renovate-bot wants to merge 1 commit from renovate/pnpm-11.x into main
Collaborator

This PR contains the following updates:

Package Change Age Confidence
pnpm (source) 11.2.111.3.0 age confidence

Release Notes

pnpm/pnpm (pnpm)

v11.3.0

Compare Source

Minor Changes
  • Added pnpm stage with publish, list, view, approve, reject, and download subcommands for npm staged publishing.

  • Added a new setting trustLockfile. When true, pnpm install skips the supply-chain verification pass that re-applies minimumReleaseAge / trustPolicy='no-downgrade' to every entry in the loaded lockfile. The install treats the lockfile as already-trusted — useful for closed-source projects where every commit comes from a trusted author. Defaults to false; verification stays on by default. Set in pnpm-workspace.yaml.

    Also cut the memory footprint of the verification pass itself: the per-(registry, name) trust-meta cache previously retained the full packument — dependency graphs, scripts, README, and per-version manifests — for the entire install. On large workspaces (~4k lockfile entries with minimumReleaseAge + trustPolicy: no-downgrade enabled) this could OOM CI runners with a 2GB heap cap. The cache now stores only the fields the trust check actually reads (time, per-version _npmUser.trustedPublisher, dist.attestations.provenance). The abbreviated-metadata cache is similarly projected to just the package-level modified field and the set of currently-listed version names. Fixes #​11860.

  • Implemented pnpm pkg command natively, following npm pkg standards.

  • Implemented pnpm repo command natively, following npm repo standards.

  • Implemented pnpm set-script (alias ss) natively. Adds or updates an entry in the scripts field of the project manifest, supporting package.json, package.json5, and package.yaml formats.

  • Add a skip-manifest-obfuscation option for pnpm pack and pnpm publish. When enabled, the original packageManager field and publish lifecycle scripts are kept in the packed/published manifest instead of being stripped. The pnpm-specific pnpm field continues to be omitted.

Patch Changes
  • Fixed pnpm dlx failing with ERR_PNPM_NO_IMPORTER_MANIFEST_FOUND when the installed package's CAS slot is missing its package.json. Observed in the wild for pnpm dlx node@runtime:<version> when the GVS slot was populated without the synthesized manifest runtime archives need (they don't ship a package.json of their own, so the synthesized one is the only way it gets there; an existing slot from an earlier code path that skipped the synthesis stays incomplete). The bin link itself is wired up from the resolution and remains valid, so dlx now falls back to the scopeless package name when the slot's manifest is unreadable — for single-bin packages (the dlx common case, including every runtime: spec) this matches what manifest.bin would have named. Multi-bin packages already require --package=<spec> <bin> to disambiguate and don't enter this code path.
  • Fixed non-determinism in pnpm dedupe and pnpm install when a dependency graph contains packages with transitive peer dependencies on each other (e.g. @aws-sdk/client-sts and @aws-sdk/client-sso-oidc) and auto-install-peers is enabled. The lockfile no longer flips between two equally-valid forms across consecutive runs. The root cause was that resolveDependencies pushed onto its pkgAddresses / postponedResolutionsQueue arrays from inside Promise.all-spawned callbacks, so completion-order timing leaked into the array order and downstream cyclic-peer suffix assignment. Fixes #​8155.
  • Fixed a regression introduced by #​11711 where pnpm add <github-shorthand> (and any other wanted-dependency whose alias can't be parsed from the user-supplied spec, e.g. tarball URLs or pnpm/test-git-fetch#sha) was silently dropped from the manifest update and from pendingBuilds. The alias-keyed lookup added in that PR couldn't find a wantedDependency whose alias was undefined at parse time but resolved to a package name only after fetching, so the entry never made it into specsToUpsert. Restored the original index-based pairing between directDependencies and wantedDependencies; the catalog-protocol preservation that PR was originally fixing is unaffected because it's driven by rdd.catalogLookup.userSpecifiedBareSpecifier, not by the lookup. Fixes the three rebuilds dependencies / rebuilds specific dependencies / rebuild with pending option failures in building/commands/test/build/index.ts.
  • Fixed pnpm add --config leaving orphan entries in pnpm-lock.env.yaml (the optional subdependencies of the previously resolved version of the updated config dependency).

v11.2.2

Compare Source

Patch Changes
  • When the install engine is delegated to pacquet via configDependencies, the user's CLI flags passed to pnpm install (e.g. --no-runtime, --prod, --dev, --no-optional, --node-linker, --cpu/--os/--libc, --offline, --prefer-offline) are now forwarded to pacquet's install subcommand verbatim. Previously pacquet was invoked with a fixed argument list, so flags like --no-runtime were silently dropped. Flag forwarding is gated on the command being install/i; add, update, and dedupe still don't forward (their flag surface doesn't line up with pacquet's install).
  • Fixed pnpm up (and pnpm add / pnpm remove) failing with pacquet_package_manager::outdated_lockfile when pacquet is declared in configDependencies. pnpm now passes --ignore-manifest-check to pacquet so its --frozen-lockfile check doesn't fire against the (pre-mutation) package.json pnpm hasn't written yet #​11797. Requires a pacquet release that supports the flag — bump PACQUET_VERSION in the e2e tests once it ships.

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate.

This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [pnpm](https://pnpm.io) ([source](https://github.com/pnpm/pnpm/tree/HEAD/pnpm)) | [`11.2.1` → `11.3.0`](https://renovatebot.com/diffs/npm/pnpm/11.2.1/11.3.0) | ![age](https://developer.mend.io/api/mc/badges/age/npm/pnpm/11.3.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pnpm/11.2.1/11.3.0?slim=true) | --- ### Release Notes <details> <summary>pnpm/pnpm (pnpm)</summary> ### [`v11.3.0`](https://github.com/pnpm/pnpm/blob/HEAD/pnpm/CHANGELOG.md#1130) [Compare Source](https://github.com/pnpm/pnpm/compare/v11.2.2...v11.3.0) ##### Minor Changes - Added `pnpm stage` with `publish`, `list`, `view`, `approve`, `reject`, and `download` subcommands for npm staged publishing. - Added a new setting `trustLockfile`. When `true`, `pnpm install` skips the supply-chain verification pass that re-applies `minimumReleaseAge` / `trustPolicy='no-downgrade'` to every entry in the loaded lockfile. The install treats the lockfile as already-trusted — useful for closed-source projects where every commit comes from a trusted author. Defaults to `false`; verification stays on by default. Set in `pnpm-workspace.yaml`. Also cut the memory footprint of the verification pass itself: the per-(registry, name) trust-meta cache previously retained the full packument — dependency graphs, scripts, README, and per-version manifests — for the entire install. On large workspaces (`~4k` lockfile entries with `minimumReleaseAge` + `trustPolicy: no-downgrade` enabled) this could OOM CI runners with a 2GB heap cap. The cache now stores only the fields the trust check actually reads (`time`, per-version `_npmUser.trustedPublisher`, `dist.attestations.provenance`). The abbreviated-metadata cache is similarly projected to just the package-level `modified` field and the set of currently-listed version names. Fixes [#&#8203;11860](https://github.com/pnpm/pnpm/issues/11860). - Implemented `pnpm pkg` command natively, following `npm pkg` standards. - Implemented `pnpm repo` command natively, following `npm repo` standards. - Implemented `pnpm set-script` (alias `ss`) natively. Adds or updates an entry in the `scripts` field of the project manifest, supporting `package.json`, `package.json5`, and `package.yaml` formats. - Add a `skip-manifest-obfuscation` option for `pnpm pack` and `pnpm publish`. When enabled, the original `packageManager` field and publish lifecycle scripts are kept in the packed/published manifest instead of being stripped. The pnpm-specific `pnpm` field continues to be omitted. ##### Patch Changes - Fixed `pnpm dlx` failing with `ERR_PNPM_NO_IMPORTER_MANIFEST_FOUND` when the installed package's CAS slot is missing its `package.json`. Observed in the wild for `pnpm dlx node@runtime:<version>` when the GVS slot was populated without the synthesized manifest runtime archives need (they don't ship a `package.json` of their own, so the synthesized one is the only way it gets there; an existing slot from an earlier code path that skipped the synthesis stays incomplete). The bin link itself is wired up from the resolution and remains valid, so `dlx` now falls back to the scopeless package name when the slot's manifest is unreadable — for single-bin packages (the dlx common case, including every `runtime:` spec) this matches what `manifest.bin` would have named. Multi-bin packages already require `--package=<spec> <bin>` to disambiguate and don't enter this code path. - Fixed non-determinism in `pnpm dedupe` and `pnpm install` when a dependency graph contains packages with transitive peer dependencies on each other (e.g. `@aws-sdk/client-sts` and `@aws-sdk/client-sso-oidc`) and `auto-install-peers` is enabled. The lockfile no longer flips between two equally-valid forms across consecutive runs. The root cause was that `resolveDependencies` pushed onto its `pkgAddresses` / `postponedResolutionsQueue` arrays from inside `Promise.all`-spawned callbacks, so completion-order timing leaked into the array order and downstream cyclic-peer suffix assignment. Fixes [#&#8203;8155](https://github.com/pnpm/pnpm/issues/8155). - Fixed a regression introduced by [#&#8203;11711](https://github.com/pnpm/pnpm/pull/11711) where `pnpm add <github-shorthand>` (and any other wanted-dependency whose alias can't be parsed from the user-supplied spec, e.g. tarball URLs or `pnpm/test-git-fetch#sha`) was silently dropped from the manifest update and from `pendingBuilds`. The alias-keyed lookup added in that PR couldn't find a `wantedDependency` whose `alias` was `undefined` at parse time but resolved to a package name only after fetching, so the entry never made it into `specsToUpsert`. Restored the original index-based pairing between `directDependencies` and `wantedDependencies`; the catalog-protocol preservation that PR was originally fixing is unaffected because it's driven by `rdd.catalogLookup.userSpecifiedBareSpecifier`, not by the lookup. Fixes the three `rebuilds dependencies` / `rebuilds specific dependencies` / `rebuild with pending option` failures in `building/commands/test/build/index.ts`. - Fixed `pnpm add --config` leaving orphan entries in `pnpm-lock.env.yaml` (the optional subdependencies of the previously resolved version of the updated config dependency). ### [`v11.2.2`](https://github.com/pnpm/pnpm/blob/HEAD/pnpm/CHANGELOG.md#1122) [Compare Source](https://github.com/pnpm/pnpm/compare/v11.2.1...v11.2.2) ##### Patch Changes - When the install engine is delegated to pacquet via `configDependencies`, the user's CLI flags passed to `pnpm install` (e.g. `--no-runtime`, `--prod`, `--dev`, `--no-optional`, `--node-linker`, `--cpu`/`--os`/`--libc`, `--offline`, `--prefer-offline`) are now forwarded to pacquet's `install` subcommand verbatim. Previously pacquet was invoked with a fixed argument list, so flags like `--no-runtime` were silently dropped. Flag forwarding is gated on the command being `install`/`i`; `add`, `update`, and `dedupe` still don't forward (their flag surface doesn't line up with pacquet's `install`). - Fixed `pnpm up` (and `pnpm add` / `pnpm remove`) failing with `pacquet_package_manager::outdated_lockfile` when pacquet is declared in `configDependencies`. pnpm now passes `--ignore-manifest-check` to pacquet so its `--frozen-lockfile` check doesn't fire against the (pre-mutation) `package.json` pnpm hasn't written yet [#&#8203;11797](https://github.com/pnpm/pnpm/issues/11797). Requires a pacquet release that supports the flag — bump `PACQUET_VERSION` in the e2e tests once it ships. </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yMDIuMCIsInVwZGF0ZWRJblZlciI6IjQzLjIwMi4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->
chore(deps): update pnpm to v11.3.0
Some checks failed
renovate/stability-days Updates have met minimum release age requirement
Code Scanning / Gitleaks secret scan (pull_request) Successful in 7s
Code Scanning / Semgrep OSS source scan (pull_request) Successful in 56s
E2E Tests / e2e (pull_request) Failing after 5m41s
OpenAPI / OpenAPI spec lint (pull_request) Successful in 9m32s
Security, Type Check & Runtime / Dependency Audit (pull_request) Successful in 9m38s
Release Artifacts / Validate release candidate (pull_request) Successful in 10m50s
Release Artifacts / Build and push Docker release images (pull_request) Has been skipped
Release Artifacts / Deploy to staging (pull_request) Has been skipped
Security, Type Check & Runtime / Type Check (pull_request) Successful in 10m12s
Security, Type Check & Runtime / Migration Guardrails (pull_request) Successful in 9m36s
Security, Type Check & Runtime / Backend Runtime Smoke (pull_request) Successful in 10m16s
7a1cfad913
renovate-bot force-pushed renovate/pnpm-11.x from 7a1cfad913
Some checks failed
renovate/stability-days Updates have met minimum release age requirement
Code Scanning / Gitleaks secret scan (pull_request) Successful in 7s
Code Scanning / Semgrep OSS source scan (pull_request) Successful in 56s
E2E Tests / e2e (pull_request) Failing after 5m41s
OpenAPI / OpenAPI spec lint (pull_request) Successful in 9m32s
Security, Type Check & Runtime / Dependency Audit (pull_request) Successful in 9m38s
Release Artifacts / Validate release candidate (pull_request) Successful in 10m50s
Release Artifacts / Build and push Docker release images (pull_request) Has been skipped
Release Artifacts / Deploy to staging (pull_request) Has been skipped
Security, Type Check & Runtime / Type Check (pull_request) Successful in 10m12s
Security, Type Check & Runtime / Migration Guardrails (pull_request) Successful in 9m36s
Security, Type Check & Runtime / Backend Runtime Smoke (pull_request) Successful in 10m16s
to ba88db0430
Some checks failed
renovate/stability-days Updates have met minimum release age requirement
Code Scanning / Gitleaks secret scan (pull_request) Successful in 9s
Code Scanning / Semgrep OSS source scan (pull_request) Successful in 1m12s
E2E Tests / e2e (pull_request) Failing after 5m55s
OpenAPI / OpenAPI spec lint (pull_request) Successful in 9m44s
Security, Type Check & Runtime / Dependency Audit (pull_request) Successful in 9m44s
Security, Type Check & Runtime / Type Check (pull_request) Successful in 10m19s
Release Artifacts / Validate release candidate (pull_request) Successful in 11m1s
Release Artifacts / Build and push Docker release images (pull_request) Has been skipped
Release Artifacts / Deploy to staging (pull_request) Has been skipped
Security, Type Check & Runtime / Backend Runtime Smoke (pull_request) Successful in 10m15s
Security, Type Check & Runtime / Migration Guardrails (pull_request) Successful in 9m40s
2026-06-08 01:01:37 -04:00
Compare
renovate-bot force-pushed renovate/pnpm-11.x from ba88db0430
Some checks failed
renovate/stability-days Updates have met minimum release age requirement
Code Scanning / Gitleaks secret scan (pull_request) Successful in 9s
Code Scanning / Semgrep OSS source scan (pull_request) Successful in 1m12s
E2E Tests / e2e (pull_request) Failing after 5m55s
OpenAPI / OpenAPI spec lint (pull_request) Successful in 9m44s
Security, Type Check & Runtime / Dependency Audit (pull_request) Successful in 9m44s
Security, Type Check & Runtime / Type Check (pull_request) Successful in 10m19s
Release Artifacts / Validate release candidate (pull_request) Successful in 11m1s
Release Artifacts / Build and push Docker release images (pull_request) Has been skipped
Release Artifacts / Deploy to staging (pull_request) Has been skipped
Security, Type Check & Runtime / Backend Runtime Smoke (pull_request) Successful in 10m15s
Security, Type Check & Runtime / Migration Guardrails (pull_request) Successful in 9m40s
to 281d3962dd
Some checks failed
renovate/stability-days Updates have met minimum release age requirement
Code Scanning / Gitleaks secret scan (pull_request) Successful in 12s
Code Scanning / Semgrep OSS source scan (pull_request) Successful in 47s
E2E Tests / e2e (pull_request) Failing after 5m46s
OpenAPI / OpenAPI spec lint (pull_request) Successful in 9m38s
Security, Type Check & Runtime / Dependency Audit (pull_request) Successful in 9m44s
Security, Type Check & Runtime / Type Check (pull_request) Successful in 10m17s
Release Artifacts / Validate release candidate (pull_request) Successful in 10m56s
Release Artifacts / Build and push Docker release images (pull_request) Has been skipped
Release Artifacts / Deploy to staging (pull_request) Has been skipped
Security, Type Check & Runtime / Backend Runtime Smoke (pull_request) Successful in 10m22s
Security, Type Check & Runtime / Migration Guardrails (pull_request) Successful in 9m40s
2026-06-08 10:01:17 -04:00
Compare
Some checks failed
renovate/stability-days Updates have met minimum release age requirement
Code Scanning / Gitleaks secret scan (pull_request) Successful in 12s
Code Scanning / Semgrep OSS source scan (pull_request) Successful in 47s
E2E Tests / e2e (pull_request) Failing after 5m46s
OpenAPI / OpenAPI spec lint (pull_request) Successful in 9m38s
Security, Type Check & Runtime / Dependency Audit (pull_request) Successful in 9m44s
Security, Type Check & Runtime / Type Check (pull_request) Successful in 10m17s
Release Artifacts / Validate release candidate (pull_request) Successful in 10m56s
Release Artifacts / Build and push Docker release images (pull_request) Has been skipped
Release Artifacts / Deploy to staging (pull_request) Has been skipped
Security, Type Check & Runtime / Backend Runtime Smoke (pull_request) Successful in 10m22s
Security, Type Check & Runtime / Migration Guardrails (pull_request) Successful in 9m40s
This pull request can be merged automatically.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/pnpm-11.x:renovate/pnpm-11.x
git switch renovate/pnpm-11.x

Merge

Merge the changes and update on Forgejo.
git switch main
git merge --no-ff renovate/pnpm-11.x
git switch renovate/pnpm-11.x
git rebase main
git switch main
git merge --ff-only renovate/pnpm-11.x
git switch renovate/pnpm-11.x
git rebase main
git switch main
git merge --no-ff renovate/pnpm-11.x
git switch main
git merge --squash renovate/pnpm-11.x
git switch main
git merge --ff-only renovate/pnpm-11.x
git switch main
git merge renovate/pnpm-11.x
git push origin main
Sign in to join this conversation.
No description provided.