Non-frozen aube install fails reading a stale lockfile patch path that re-resolution never uses
#1019
SummaryWhen a committed pnpm 10.24.0 and 11.11.0 both re-resolve to the new version, apply the new How the state arisesThis is the normal "upgrade a patched dependency" flow with a stale lock, e.g.
We hit this on a real Expo monorepo where a rebase brought in an upgraded Steps to reproducegit clone https://github.com/mwolson/tmp-aube-issues
cd tmp-aube-issues/pnpm-patch-stale-lock-path
./repro.shThe script runs native pnpm first (expected to succeed, exit 2 if the Expected behaviorA non-frozen install re-resolves against the manifest and workspace Additional observations
|
Replies: 2 comments
|
Thanks for the detailed report and repro. Confirmed: after a non-frozen re-resolution, aube was restoring the prior lockfile patchedDependencies metadata, then eagerly reading both that stale entry and the current workspace declaration. The pnpm 11 scalar form was also being interpreted as a path on this stale-entry route. The fix is ready for review in #1022. Fresh pnpm re-resolutions now replace the overlaid patch map with the current package.json / pnpm-workspace.yaml declarations before materialization and lockfile writing. Frozen lockfile reuse remains unchanged. The PR includes end-to-end regression coverage for both the pnpm 10 object form and pnpm 11 hash-only form from the report. The focused tests and completed CI checks are passing. This comment was generated by Codex. |
|
Retested with aube
Fix shipped in aube 1.27.0 via #1022. Marking the maintainer reply as the answer. |
Thanks for the detailed report and repro. Confirmed: after a non-frozen re-resolution, aube was restoring the prior lockfile patchedDependencies metadata, then eagerly reading both that stale entry and the current workspace declaration. The pnpm 11 scalar form was also being interpreted as a path on this stale-entry route.
The fix is ready for review in #1022. Fresh pnpm re-resolutions now replace the overlaid patch map with the current package.json / pnpm-workspace.yaml declarations before materialization and lockfile writing. Frozen lockfile reuse remains unchanged.
The PR includes end-to-end regression coverage for both the pnpm 10 object form and pnpm 11 hash-only form from the report…