Skip to content

fix: respect conflicting lockfiles when auto-pinning - #910

Closed
Aschenbath wants to merge 1 commit into
nodejs:mainfrom
Aschenbath:feat/auto-pin-lockfiles-695
Closed

Aschenbath wants to merge 1 commit into
nodejs:mainfrom
Aschenbath:feat/auto-pin-lockfiles-695

Conversation

@Aschenbath

Copy link
Copy Markdown

When COREPACK_ENABLE_AUTO_PIN=1, running another package manager in a project identified by a lockfile could silently pin that other manager in package.json.

Skip automatic pinning when package-lock.json, npm-shrinkwrap.json, pnpm-lock.yaml, or yarn.lock next to the selected manifest belongs to a different manager. The requested command still runs, and corepack use remains available for an explicit selection. Document the behavior and add 13 CLI regressions for all three managers, matching/conflicting lockfiles, multiple lockfiles, nested directories, and explicit selection.

Validation on Node.js 24.20.0:

  • Build: passed.
  • Full Vitest suite with NOCK_ENV=replay: 9 files passed; 184 tests passed and 1 existing expected failure.
  • tsc --noEmit: passed.
  • ESLint with --max-warnings=0: passed.

Local test setup isolates inherited proxy settings from CLI fixtures while retaining access for the live npm-key check. Compilation caches were disabled to accommodate the small temporary filesystem. No tests were skipped or modified for these environment adjustments.

Closes #695

@aduh95

aduh95 commented Oct 20, 2026

Copy link
Copy Markdown
Contributor

This account has opened more than 10 PRs in the last 24 hours. This looks like bot activity, and will result in a ban if the behavior continues.

@aduh95 aduh95 closed this Oct 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

AUTO_PIN should not change to different package manager

2 participants