Change8

v10.12.1

Breaking Changes
📦 pnpmView on GitHub →
1 breaking6 features🐛 2 fixes🔧 7 symbols

Summary

This release introduces experimental global virtual stores, catalog enhancements, new CLI options, and a new CI flag, while changing side‑effects cache keys (requiring cache cleanup) and fixing several regressions.

⚠️ Breaking Changes

  • Side-effects cache keys have changed; caches generated by previous pnpm versions will be ignored and a new cache will be created. Clear or rebuild the side-effects cache to avoid cache misses.

Migration Steps

  1. If you have an existing side-effects cache, delete or rebuild it because the cache keys have changed.
  2. Enable the global virtual store by setting `enableGlobalVirtualStore: true` in `pnpm-workspace.yaml` or via `pnpm config -g set enable-global-virtual-store true`.
  3. If you rely on automatic CI detection, consider setting the new `ci` flag explicitly for CI environments.
  4. Update any scripts that parse side-effects cache paths, as the location may differ.

✨ New Features

  • Experimental support for global virtual stores, storing packages in a central store and symlinking from `node_modules`.
  • `pnpm update` now supports updating `catalog:` protocol dependencies and writes new specifiers to `pnpm-workspace.yaml`.
  • New `catalogMode` setting to control how dependencies are added to the default catalog (`strict`, `prefer`, `manual`).
  • Added CLI options `--save-catalog` and `--save-catalog-name=<name>` to `pnpm add` for saving dependencies as catalog entries.
  • New `ci` setting to explicitly indicate whether the current environment is a CI.
  • `pnpm patch` now sorts printed versions using semantic versioning rules.

🐛 Bug Fixes

  • Improved error messages for mismatched specifiers by showing differences instead of whole objects.
  • Reverted a previous change (#9574) to fix a regression.

🔧 Affected Symbols

pnpm updatepnpm addpnpm patchside-effects cache keyscatalogMode settingci settingglobal virtual store