fix: survive the re-warm on every manager, and drop Yarn PnP - #65
Conversation
…oot marker The weekly run's second failure, this time on Yarn: Berry walks up from wherever it runs, finds the fixture project above `.rewarm`, and refuses to install in a directory that project doesn't declare. The throwaway copy now lives as a sibling of the project, where nothing sits above it, and gets the same empty-lockfile project-root marker every scenario already relies on (`cleanLockfile`'s nodetouch trick) — a no-op for the managers that don't need it. Validated by running the real scenario chain end to end for the managers the previous smoke tests missed: yarn 1958ms, yarn_pnp 2262ms, pnpm11 1954ms, bun 677ms on the update row — every one through the re-warm, none through a wall. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 2 included reviews per hour; 0 remain after this review. 📜 Recent review details🔇 Additional comments (2)
📝 WalkthroughWalkthroughThe rewarm flow now creates its temporary project beside the fixture. It also cleans the lockfile before installation, including for package managers that treat the operation as a no-op. ChangesRewarm flow
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to The PR makes a localized fixture-path and project-root marker change, with the affected manager scenarios completing successfully; no actionable merge-blocking risk remains beyond normal checks and review. Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
PR Summary by QodoKeep cache re-warm project outside Yarn fixture
AI Description
Diagram
High-Level Assessment
Files changed (1)
|
The page compares installation into `node_modules`; PnP is a different product with a different on-disk contract, most of the table's rows never applied to it (`n/a` across every `node_modules` column), and the intro already points at Yarn's own benchmarks for the modes this page doesn't carry. The column, its command, its linker case, and its recorded results go together. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
95518a7 to
8c95aab
Compare
Two things, per review direction, in one PR.
1. The re-warm fix (second weekly-run failure, on Yarn)
Berry walks up from wherever it runs and refuses to install in a directory nested under a project that doesn't declare it. Two changes, both reusing patterns the repo already has:
<fixture>.rewarm), where nothing sits above it for Berry's walk to find.cleanLockfile'snodetouchtrick — a no-op for managers that don't need it.Validation, done properly this time
Both weekly failures were managers the earlier smoke tests didn't cover (pnpm 11 → dangling symlink; Yarn → project-root walk), so this round ran the real scenario chain end to end for exactly those, with Yarn 6.0.0-rc.19 — the benchmark's own version — provisioned the way the benchmark provisions it:
Every manager completes. (pnpm 12 and npm were validated in earlier rounds and don't touch the changed paths: pnpm 12 reaches the cache through absolute env paths, npm accepts any directory as a root.)
2. Yarn PnP removed from the benchmark
The page compares installation into
node_modules; PnP is a different product with a different on-disk contract, most rows never applied to it (n/aacross everynode_modulescolumn), and the intro already points at Yarn's own benchmarks for the modes this page doesn't carry. The column, its command, its linker case, and its recorded results go together; the intro now names PnP explicitly among the modes covered there instead.Also adds
.claudeto.gitignore.🤖 Generated with Claude Code