|
| 1 | +--- |
| 2 | +date: 2026-05-19 |
| 3 | +repo: pnpm/pnpm |
| 4 | +size: L |
| 5 | +title: "Login scope support and install engine progress" |
| 6 | +excerpt: "pnpm adds scoped login mapping, runtime-aware outdated checks, pacquet install delegation, and several important config/fix regressions." |
| 7 | +commits: 16 |
| 8 | +authors: [zkochan, KSXGitHub, shiminshen, timhaines, shbernal, Eyalm321, minijus, beaussan] |
| 9 | +commit_authors: {"1627943": zkochan, "ced20cb": zkochan, "3687b0e": shiminshen, "a620557": shbernal, "9cb48bb": Eyalm321, "d1b340f": minijus, "56f3851": shiminshen, "64afc92": beaussan, "b206a15": zkochan} |
| 10 | +--- |
| 11 | + |
| 12 | +### **Scoped `pnpm login` now writes registry mapping** (56f3851) |
| 13 | +`pnpm login --scope <scope>` is now supported and persists an `@scope:registry=` entry alongside the auth token. That closes a long-standing gap where the documented flag existed only in help text, so scoped packages can be routed to a chosen registry without manual `.npmrc` edits. |
| 14 | + |
| 15 | +### **`pnpm outdated` now includes Node, Deno, and Bun runtimes** (1627943) |
| 16 | +Runtime dependencies installed via the `runtime:` protocol now show up in `pnpm outdated` and `pnpm update --interactive` instead of being silently skipped. This is a meaningful UX fix for projects that manage toolchain runtimes through pnpm, since updates are now visible and actionable. |
| 17 | + |
| 18 | +### **Install can delegate fetch/import/link work to pacquet** (b206a15) |
| 19 | +When `pacquet` is listed in `configDependencies`, pnpm now hands off the materialization phase of installs to the Rust binary while still keeping resolution in JS. This is an opt-in preview of the Rust install engine and lays the groundwork for faster or alternate install paths without changing behavior for users who don't enable it. |
| 20 | + |
| 21 | +### **`pnpm login`/logout registry sync is now workspace-aware** (d1b340f, ced20cb) |
| 22 | +pnpm now synchronizes the default registry from `pnpm-workspace.yaml` only when the workspace actually contributes it, avoiding accidental overwrites of `.npmrc` values like unnormalized registry URLs. This fixes registry handling for auth-related commands while preserving user-authored config. |
| 23 | + |
| 24 | +### **`pnpm publish` now honors `publishConfig.access`** (64afc92) |
| 25 | +Publish option resolution now respects package-level `publishConfig.access`, fixing cases where the intended access level was ignored. The change also replaces Verdaccio-dependent access coverage with direct unit tests, which makes the behavior more reliable to validate. |
| 26 | + |
| 27 | +### **Global add/update now handles minimum release-age policy violations** (a620557) |
| 28 | +Global install flows no longer trip an internal guardrail when a minimum-release-age policy is violated. Instead, they surface policy violations through the same handling path used elsewhere, so global add/update behaves consistently with regular installs. |
| 29 | + |
| 30 | +### **Workspace injection crash fixes** (9cb48bb) |
| 31 | +Two frozen-lockfile crashes were fixed for `injectWorkspacePackages` / injected deps, including a pruned-lockfile peer-variant resolution bug and a lifecycle re-import ENOENT issue. These are targeted but important stability fixes for workspace-heavy pipelines such as `turbo prune --docker`. |
| 32 | + |
| 33 | +### **`cafile` paths now resolve relative to the `.npmrc` file** (3687b0e) |
| 34 | +A relative `cafile=` entry in `.npmrc` is now resolved from the directory that contains that `.npmrc`, not from the current process working directory. That prevents silent CA loading failures in CI wrappers and `--dir` workflows that previously fell back to insecure/default TLS behavior. |
| 35 | + |
| 36 | +### Other misc changes |
| 37 | +- Regression test for `minimumReleaseAge` in outdated. |
| 38 | +- Pacquet config defaults aligned with pnpm v11 (`publicHoistPattern`, global config loading, refactors). |
| 39 | +- Config-reader registry sync and cafile tests. |
| 40 | +- Pacquet CI/workflow, clippy, and lockfile churn. |
| 41 | +- Misc pacquet refactors and internal test updates. |
0 commit comments