-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Comparing changes
Open a pull request
base repository: pnpm/pnpm
base: v10.30.1
head repository: pnpm/pnpm
compare: v10.30.2
- 8 commits
- 139 files changed
- 1 contributor
Commits on Feb 20, 2026
-
Configuration menu - View commit details
-
Copy full SHA for ade2615 - Browse repository at this point
Copy the full SHA ade2615View commit details
Commits on Feb 22, 2026
-
fix: respect peer dep range in hoistPeers when preferred versions exi…
…st (#10655) * fix: respect peer dep range in hoistPeers when preferred versions exist Previously, hoistPeers used semver.maxSatisfying(versions, '*') which picked the highest preferred version from the lockfile regardless of the peer dep range. This caused overrides that narrow a peer dep range to be ignored when a stale version existed in the lockfile. Now hoistPeers first tries semver.maxSatisfying(versions, range) to find a preferred version that satisfies the actual peer dep range. If none satisfies it and autoInstallPeers is enabled, it falls back to the range itself so pnpm resolves a matching version from the registry. * fix: only fall back to exact-version range for overrides, handle workspace: protocol - When no preferred version satisfies the peer dep range, only use the range directly if it is an exact version (e.g. "4.3.0" from an override). For semver ranges (e.g. "1", "^2.0.0"), fall back to the old behavior of picking the highest preferred version for deduplication. - Guard against workspace: protocol ranges that would cause semver.maxSatisfying to throw. - Add unit tests for hoisting deduplication and workspace: ranges. * fix: only apply range-constrained peer selection for exact versions The previous approach used semver.maxSatisfying(versions, range) for all peer dep ranges, which broke aliased-dependency deduplication — e.g. when three aliases of @pnpm.e2e/peer-c existed at 1.0.0, 1.0.1, and 2.0.0, range ^1.0.0 would pick 1.0.1 instead of 2.0.0. Now the range-aware logic only activates when the range is an exact version (semver.valid), which is the override case (e.g. "4.3.0"). Regular semver ranges fall back to picking the highest preferred version.
Configuration menu - View commit details
-
Copy full SHA for 2624472 - Browse repository at this point
Copy the full SHA 2624472View commit details -
fix: self-update should install @pnpm/exe when running as executable
Revert the workaround that forced `pnpm self-update` to always install the `pnpm` package for v11+. Since `@pnpm/exe` works again from v11.0.0-alpha.7, `getCurrentPackageName()` now simply returns `@pnpm/exe` when running as an executable, without platform-specific package names.
Configuration menu - View commit details
-
Copy full SHA for 4d23d7d - Browse repository at this point
Copy the full SHA 4d23d7dView commit details
Commits on Feb 23, 2026
-
Configuration menu - View commit details
-
Copy full SHA for 942a73a - Browse repository at this point
Copy the full SHA 942a73aView commit details -
fix(link-bins): stop prepending redundant paths to NODE_PATH in comma…
…nd shims (#10673) Fixed "input line too long" error on Windows when running lifecycle scripts with the global virtual store enabled. The `NODE_PATH` in command shims no longer includes all paths from `Module._nodeModulePaths()`. Instead, it includes only the package's bundled dependencies directory (e.g., `.pnpm/pkg@version/node_modules/pkg/node_modules`), the package's sibling dependencies directory (e.g., `.pnpm/pkg@version/node_modules`), and the hoisted `node_modules` directory. These paths are needed so that tools like `import-local` (used by jest, eslint, etc.) which resolve from CWD can find the correct dependency versions.
Configuration menu - View commit details
-
Copy full SHA for dac1177 - Browse repository at this point
Copy the full SHA dac1177View commit details -
fix(link-bins): normalize temp paths in getBinNodePaths tests for Win…
…dows On Windows, temporaryDirectory() may return 8.3 short paths (e.g., RUNNER~1) but getBinNodePaths resolves via fs.realpath, returning long paths (e.g., runneradmin). Use realpathSync to normalize expected paths.
Configuration menu - View commit details
-
Copy full SHA for e0f7ede - Browse repository at this point
Copy the full SHA e0f7edeView commit details -
fix(link-bins): use fs.promises.realpath in getBinNodePaths tests for…
… Windows 8.3 paths fs.realpathSync uses a JS-only implementation that only resolves symlinks, not Windows 8.3 short names (e.g., RUNNER~1). Switch to fs.promises.realpath which uses the native uv_fs_realpath (GetFinalPathNameByHandleW on Windows) to properly resolve 8.3 short paths to their long form.
Configuration menu - View commit details
-
Copy full SHA for f1ab4b9 - Browse repository at this point
Copy the full SHA f1ab4b9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2a56acc - Browse repository at this point
Copy the full SHA 2a56accView commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff v10.30.1...v10.30.2