v10.31.0
📦 pnpmView on GitHub →
✨ 3 features🐛 11 fixes🔧 6 symbols
Summary
This patch release improves configuration preservation in pnpm-workspace.yaml, fixes several critical bugs related to linking, race conditions during store imports, and patch operations, and adds a short alias for the --filter option.
Migration Steps
- If you were relying on specific behavior regarding tarball URLs in lockfiles when lockfile-include-tarball-url was false, review your lockfiles as they will now consistently exclude these URLs.
✨ New Features
- When pnpm updates the pnpm-workspace.yaml, comments, string formatting, and whitespace will be preserved.
- Added -F as a short alias for the --filter option in the help output.
- The parameter set by the --allow-build flag is written to allowBuilds.
🐛 Bug Fixes
- Handled undefined pkgSnapshot in pnpm why -r.
- Fixed headless install not being used when a project has an injected self-referencing file: dependency that resolves to link: in the lockfile.
- Fixed a race condition when multiple worker threads import the same package to the global virtual store concurrently by making the rename operation tolerate ENOTEMPTY/EEXIST errors.
- When lockfile-include-tarball-url is set to false, tarball URLs are now always excluded from the lockfile, fixing inconsistency when packages are hosted under non-standard URLs.
- Fixed optimisticRepeatInstall skipping install when overrides, packageExtensions, ignoredOptionalDependencies, patchedDependencies, or peersSuffixMaxLength changed.
- Fixed pnpm patch-commit failing with permission denied errors in environments where HOME is unset or non-standard by using GIT_CONFIG_GLOBAL: os.devNull instead of manipulating HOME.
- Fix pnpm why -r --parseable missing dependents when multiple workspace packages share the same dependency.
- Fixed link-workspace-packages=true incorrectly linking workspace packages when the requested version doesn't match the workspace package's version.
- Fixed pnpm update --interactive table breaking with long version strings by dynamically calculating column widths.
- Fixed a bug in which specifying filter on pnpm-workspace.yaml would cause pnpm to not detect any projects.
- Print help message on running pnpm dlx without arguments and exit.