Files
pnpm/pnpm
Zoltan Kochan 83157bb047 perf(install): check convergence overrides concurrently (#15181)
After a full resolution, every convergence override is checked for
staleness by resolving each of its collected declared ranges through the
registry. The overrides were checked one after another: each override's
ranges resolved concurrently, but the next override did not start until
the previous one finished. With many overrides and a slow registry the
override count landed on the critical path, so `pnpm dedupe` was much
slower than on pnpm 11, whose check runs the overrides in parallel.

All overrides' range lookups are now in flight at once, matching the
TypeScript implementation. The result order is unchanged, so warnings
still print in override order.

The new test parks every range resolution on a barrier sized to the
total range count, so it hangs and times out if the overrides are ever
serialized again.

Closes pnpm/pnpm#15175
2026-09-20 22:47:24 +02:00
..

pnpm v12 (pacquet)

The pnpm v12 CLI is implemented in Rust. pacquet is its in-repository package name; the published CLI and executable are named pnpm.

pnpm v12 is the target for new feature development. The TypeScript pnpm v11 CLI under ../pnpm11/ is maintained for bug fixes. Bugs present in both versions are fixed in both implementations. Bugs present in only one version are fixed in that version. New features are not backported to v11.

See CONTRIBUTING.md for development setup, debugging, testing, and benchmarking.

Benchmark