Repository navigation
Replace pnpmfile hook with resolvePeersFromWorkspaceRoot - #3
Merged
Merged
Conversation
Renovate runs pnpm with --ignore-pnpmfile, so its lockfile updates drop pnpmfileChecksum and the PR workflow's frozen install fails with ERR_PNPM_LOCKFILE_CONFIG_MISMATCH. Getting openapi-typescript its own TypeScript 5 peer through a pnpm-workspace.yaml setting instead keeps the lockfile identical whether or not the pnpmfile is honored. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Hhhq1WNbN23hNCjJVjqUfD
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Renovate PRs fail the frozen install with
ERR_PNPM_LOCKFILE_CONFIG_MISMATCH(pnpmfileChecksummismatch). Renovate runspnpm install --lockfile-onlywith--ignore-scripts --ignore-pnpmfile, so the.pnpmfile.mjshook is skipped and pnpm dropspnpmfileChecksumfrom the lockfile. CI then runs with the pnpmfile present and rejects the lockfile. Regenerating the lockfile locally can't fix this, because Renovate strips the checksum again on every update.What
.pnpmfile.mjs.resolvePeersFromWorkspaceRoot: falsetopnpm-workspace.yaml. openapi-typescript'stypescriptpeer no longer resolves to the root's TypeScript 7, soautoInstallPeersgives it TypeScript 5.9.3 (the same result the hook produced).pnpmfileChecksumis gone and openapi-typescript is now7.13.0(typescript@5.9.3). No other peer resolutions changed in a from-scratch resolve.Verification
pnpm install --frozen-lockfilepasses. openapi-typescript sees TypeScript 5.9.3, and the webhookstscstill comes from the root's TypeScript 7.@types/node24.13.5 → 24.13.6,pnpm install --recursive --lockfile-only --ignore-scripts --ignore-pnpmfile) followed by a frozen install passes.types,checkandbuildfor all packages, plusformat:checkandlint:ci, pass.After this merges, rebase #2 and it should go green.
🤖 Generated with Claude Code
https://claude.ai/code/session_01Hhhq1WNbN23hNCjJVjqUfD
Generated by Claude Code