Files
pnpm/.github
Zoltan Kochan 890d7c777a test: expand equivalence, convergence, and v11/v12 differential harnesses (#17183)
Complete the test harness requirements of pnpm/tasks#141 (including the
deferred cross-version switch matrix from pnpm/tasks#144 and
injected-freshness convergence/differential checks from pnpm/tasks#148):

1. Equivalence and convergence harnesses:
   - Extract shared `TreeView`, `workspace_lockfiles`, and normalized
     `workspace_modules_manifests` helpers into
     `pnpm/crates/cli/tests/suite/_utils/mod.rs`.
   - Include `.modules.yaml` in `repeat_install_oracle` snapshots and
     assert convergence after every scenario (second install snapshot
     byte-identity, `--frozen-lockfile` acceptance, `dedupe --check`,
     and quiet repeat `exec` under `verifyDepsBeforeRun=install`).
   - Add `check_repeat` (second install byte-identity) and
     `check_run_gate` (`verify-deps-before-run=error` exec gate) to
     `peer_convergence::harness::check_row`.
   - Add repeat-install lockfile byte-identity,
     `verify-deps-before-run=error` run-gate checks, `dedupe --check`,
     and `PNPM_V11_BUNDLE` differential lockfile comparison to
     `injected_freshness_matrix::check`.

2. v11/v12 differential suite (`pnpm_compatibility.rs`):
   - Honor `PNPM_V11_BUNDLE` in `CommandTempCwd::init()` so integration
     tests no longer require a system-installed pnpm v11 on `PATH`.
   - Un-ignore `store_usable_by_pnpm_offline` and
     `same_global_virtual_store_layout_with_approved_postinstall`.
   - Compare wanted lockfiles, current lockfiles, `.modules.yaml`,
     `node_modules` resolution tree, cross-CLI frozen handoffs, and
     registry request logs across shared/dedicated workspace lockfiles,
     isolated/hoisted `nodeLinker`, `injectWorkspacePackages`,
     `autoInstallPeers`, `dedupePeerDependents`, and filtered installs.

3. Upward cross-version switch harness and nightly matrix:
   - Add `switches_up_to_a_newer_pnpm_across_setting_sources_and_unknown_options`
     and `v11_switches_up_to_head_binary_from_local_registry` in
     `version.rs` using a local `pnpr` registry populated with
     synthetic `@pnpm/exe` platform packages.
   - Add `.github/workflows/version-switch-matrix.yml` to run the
     outer-pnpm x pin x setting-source x platform matrix nightly and on
     `workflow_dispatch`.
   - Wire `pnpm_compatibility`, `injected_freshness_matrix`, and upward
     version-switch tests into the `convergence` job of
     `.github/workflows/pacquet-ci.yml`.

Closes pnpm/tasks#141
2026-10-21 07:17:04 +02:00
..