|
| 1 | +--- |
| 2 | +date: 2026-07-19 |
| 3 | +repo: pnpm/pnpm |
| 4 | +size: L |
| 5 | +title: "Pacquet lands runtimes, GVS, and install parity" |
| 6 | +excerpt: "A dense day of pacquet feature work: runtime installs, global virtual store parity, repeat-install reconciliation, and several correctness fixes." |
| 7 | +commits: 22 |
| 8 | +authors: [zkochan, kairosci, aqeelat] |
| 9 | +commit_authors: {"6f83d81": zkochan, "5e0788a": zkochan, "f8e0f3c": zkochan, "9843b4f": zkochan, "62ab9cb": zkochan, "00855bb": zkochan} |
| 10 | +--- |
| 11 | + |
| 12 | +### **Runtime installation parity lands for Node, Deno, and Bun** (9843b4f) |
| 13 | +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. |
| 14 | + |
| 15 | +### **Global virtual store behavior gets much closer to pnpm** (f8e0f3c) |
| 16 | +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. |
| 17 | + |
| 18 | +### **Repeat installs now reconcile existing `node_modules`** (62ab9cb) |
| 19 | +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. |
| 20 | + |
| 21 | +### **Pending builds are tracked and rebuildable** (6f83d81) |
| 22 | +`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. |
| 23 | + |
| 24 | +### **Proxy, auth, and registry URL handling are fixed** (5e0788a) |
| 25 | +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. |
| 26 | + |
| 27 | +### **Large-install memory retention is reduced** (00855bb) |
| 28 | +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. |
| 29 | + |
| 30 | +### Other misc changes |
| 31 | +- Pacquet test-porting continued aggressively across git-hosted installs, progress reporting, optional dependencies, patchedDependencies, current lockfile, catalog, multi-importer, and lockfile-verification suites. |
| 32 | +- New coverage and fixes for `team`, deprecation events, patch verification, setup/self-update shim cleanup, and various repeat-install / hoist / architecture edge cases. |
| 33 | +- Release/version churn and lockfile updates (2 commits). |
0 commit comments