Per-branch lockfiles land in the Rust engine (
36e5ae6)
pnpm now supports gitBranchLockfile, mergeGitBranchLockfiles, and mergeGitBranchLockfilesBranchPattern, plus matching install flags. That lets branches keep separate lockfiles and merge them back cleanly, which is a major workflow feature for monorepos and long-lived branches.
Lockfile placement is now configurable (
150bb37)
The Rust CLI now honors lockfileDir across install-family commands, re-anchoring the lockfile, virtual store, and related state under a chosen directory. This matters for shared-lockfile setups and any workspace that wants the lockfile decoupled from the repo root.
Config and hooks got broader environment support (
11a60a4,
20483f8,
9d89dea)
ignore-pnpmfile and materialization settings like virtualStoreOnly / enableModulesDir can now be read from PNPM_CONFIG_* env and config sources, and globalPnpmfile is now supported as a user-level hook. Together these changes make pnpm’s Rust path line up much better with the existing config surface.
Installer correctness fixes for real-world edge cases (
4178c98,
a6d9ee7,
08c5d80,
dfa6a43,
97c571d,
45a7c42,
5df4a82,
bf46078,
a3bc1c1,
e277604)
The day also delivered a cluster of high-impact bug fixes: outdated/update now respect minimum release age, settings-only workspaces stay root-scoped, hoisted repeat installs and filtered no-op installs short-circuit correctly, pinned recursive updates stay on the right version line, and frozen installs no longer silently rewrite packageManagerDependencies. There are also important deploy and node_modules-state fixes, including avoiding purge-on-unreadable .modules.yaml and dropping excluded deps from shared-lockfile deploys.
Package integrity, trust, and fetch behavior are tightened (
6d64ef4,
9e17b1b,
cfb5b05,
288cfe6,
b1f6d37)
Custom fetchers can no longer swap out locked archive integrity, native custom-fetcher callbacks are supported, and pnpmfiles are loaded earlier in the Rust flow. Resolver trust checks now honor minimumReleaseAgeIgnoreMissingTime correctly, can read publish times from abbreviated metadata, and git-dependency build errors now point users at the right allowBuilds entry or missing pnpmfile path.
Other misc changes
- Global
--loglevelsupport restored. set-scriptno longer gets shadowed by a not-implemented stub.- Windows bin-shim cleanup and store-path normalization fixes.
sbomfiltering and--fail-if-no-matchsupport.pkgproperty paths now accept hyphens.- Empty
binstrings, stale PowerShell shims, and a few other edge cases fixed. - Minor chores/refactors and test-only updates across the repo.