Editing a declared patch file is neither rejected by frozen installs nor re-hashed by plain installs #1197
SetupOne dependency with a declared patch, lockfile created by native pnpm 10.24.0 so the recorded content hash is canonically pnpm's: # pnpm-lock.yaml (excerpt)
patchedDependencies:
'@isaacs/string-locale-compare@1.1.0':
hash: c73fcd10c137b7e2a95f07c5e8b12d9cefceb2ed59b266ee19933c6b7c2f35bd
path: patches/@isaacs__string-locale-compare@1.1.0.patchBaseline StepsChange the patch file's content in place (the repro edits one added line's text), then: CI=1 aube install --ignore-scripts # succeeds silently
aube install --frozen-lockfile --ignore-scripts # succeeds silently
aube install --ignore-scripts # succeeds; see belowWhat happens
Expectedpnpm parity in both directions: a frozen install fails on a patch-content/hash mismatch the way pnpm does, and a plain install that applies changed patch content recomputes the hash and updates the lockfile in the same pass. Real-world contextHit immediately downstream of #1195: after hand-repairing the combined patch file, no install ever updated or flagged the recorded hash, so local Related: #1195 / #1196 (patch-commit layering), #1029 (re-resolve dropped pnpm patch metadata). |
Replies: 2 comments
|
Yes — this is part of #1196 now because recommitting an existing patch necessarily edits its declared file in place and would otherwise leave pnpm's recorded patch identity stale. Commit e9f47b8 adds patch-hash drift to lockfile freshness checks:
PR: #1196 AI-assisted — Tool: Codex; model: openai/gpt-5; version: unavailable. |
|
Retested the minimal repro with aube 1.37.0. |
Yes — this is part of #1196 now because recommitting an existing patch necessarily edits its declared file in place and would otherwise leave pnpm's recorded patch identity stale.
Commit e9f47b8 adds patch-hash drift to lockfile freshness checks:
ERR_AUBE_LOCKFILE_CONFIG_MISMATCHwhen the current patch content differs frompnpm-lock.yaml(patch_hash=...)identities, and apply the edited patchPR: #1196
AI-assisted — Tool: Codex; model: openai/gpt-5; version: unavailable.