Change8

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

  1. 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.

Affected Symbols