fix(pnpm): retry lockfile gen when maturity blocks base-lockfile pins#44260
fix(pnpm): retry lockfile gen when maturity blocks base-lockfile pins#44260gperepechko-dev wants to merge 4 commits into
Conversation
When pnpm minimumReleaseAge rejects a package@version already in the pre-update lockfile (or a vulnerability remediation target), retry with CLI minimumReleaseAgeExclude. Preserves maturity for new selections. Relates to renovatebot#39999.
|
|
|
Hi there, |
|
First draft (mostly by agent), will align with template and test thoroughly on my end. upd: ok, fixed some issues 👍 |
Changes
When pnpm
minimumReleaseAgerejects apackage@versionthat is already present in the pre-update lockfile, Renovate's coldpnpm install --lockfile-onlyfails withERR_PNPM_NO_MATURE_MATCHING_VERSION. That can leave manifest-only PRs and red frozen CI, even though a warm local incremental install may succeed.This PR mirrors npm's retry-without-
--beforefallback for already-locked young packages:minimumReleaseAgeExcludeentries only when the blocked version is already in the pre-update lockfile, or when it is the target of a vulnerability remediation.pnpm-workspace.yamlminimumReleaseAgeExcludeentries while adding temporary retry excludes.minimumReleaseAge.maturityFallbackartifact notice when the fallback was used.Related discussion: #39999
Related issues: #40475, #42145, #39168
Context
Please select one of the following:
AI assistance disclosure
Did you use AI tools to create any part of this pull request?
Please select one option and, if yes, briefly describe how AI was used (e.g., code, tests, docs) and which tool(s) you used.
Documentation (please check one with an [x])
How I've tested my work (please select one)
I have verified these changes via:
The public repository:
Additional verification:
pnpm exec vitest run lib/modules/manager/npm/post-update/pnpm-maturity.spec.ts lib/modules/manager/npm/post-update/pnpm.spec.ts— 68 passedpnpm exec tsc --noEmit --pretty false --incremental falsepnpm exec oxlint lib/modules/manager/npm/post-update/pnpm-maturity.ts lib/modules/manager/npm/post-update/pnpm.ts lib/modules/manager/npm/post-update/pnpm-maturity.spec.ts lib/modules/manager/npm/post-update/pnpm.spec.ts