Changelog

pnpm/pnpm · · 22 commits

Pacquet lands runtimes, GVS, and install parity

A dense day of pacquet feature work: runtime installs, global virtual store parity, repeat-install reconciliation, and several correctness fixes.

Runtime installation parity lands for Node, Deno, and Bun (zkochan9843b4f)

Pacquet now threads runtime failure policy and runtime-derived Node versions through config and install paths, and selects the right archive variant from supportedArchitectures. It also resolves engines.runtime on dependency manifests without cloning full manifests in the resolver hot path, while preserving explicit runtime deps when engine entries don’t match.

Global virtual store behavior gets much closer to pnpm (zkochanf8e0f3c)

This ports the full global-virtual-store suite and adds a new virtualStoreOnly mode that populates the virtual store without linking, hoisting, or lifecycle scripts. It also tightens cleanup and slot-state handling so failed builds are discarded correctly, side-effects cache hits don’t reuse stale slot state, and .modules.yaml records the build-approval set used during install.

Repeat installs now reconcile existing node_modules (zkochan62ab9cb)

Pacquet now prunes stale direct-dep links, bin shims, and hoisted aliases before linking on repeat installs, so deleted or hand-removed packages are re-evaluated instead of being silently left behind. This also wires the install pipeline to distinguish “install-only” flows more consistently across commands, reducing drift in add/remove/rebuild behavior.

Pending builds are tracked and rebuildable (zkochan6f83d81)

pnpm install --ignore-scripts now records skipped builds in .modules.yaml, and pnpm rebuild --pending drains that queue instead of doing nothing. The change covers both dependency build scripts and workspace project scripts, so deferred work survives install/rebuild boundaries the way users expect.

Proxy, auth, and registry URL handling are fixed (zkochan5e0788a)

Global and CLI proxy settings now flow through config and request setup with pnpm-compatible precedence, including bootstrap and optimistic install requests. The day also fixes auth command URL normalization for subpath registries so tokens and endpoints aren’t written against truncated paths.

Large-install memory retention is reduced (zkochan00855bb)

Resolver metadata is now condensed before it stays cached, which prevents full packuments from lingering in memory across multiple resolution paths. That matters for large workspaces: the change targets the multi-GB heap growth that could OOM plain installs.

Other misc changes

  • Pacquet test-porting continued aggressively across git-hosted installs, progress reporting, optional dependencies, patchedDependencies, current lockfile, catalog, multi-importer, and lockfile-verification suites.
  • New coverage and fixes for team, deprecation events, patch verification, setup/self-update shim cleanup, and various repeat-install / hoist / architecture edge cases.
  • Release/version churn and lockfile updates (2 commits).