refactor!: publish numbers, not a page - #67
Conversation
|
Warning Review limit reachedNext included review available in 37 minutes. View limit detailsLimit details: You’ve used all 2 included reviews currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (4)
📒 Files selected for processing (12)
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 QodoPublish benchmark measurements as JSON instead of rendered pages
AI Description
Diagram
High-Level Assessment
Files changed (11)
|
94f31dc to
6b04305
Compare
This repository measured the benchmarks and also decided how they were presented: it wrote `benchmarks.md` and the charts it referred to, and pnpm.io copied both across. That put every wording change — a column renamed, a paragraph rewritten, a manager dropped from the comparison — behind a benchmark run in a repository whose job is measurement. It now writes one file, `benchmarks.json`: the numbers, the version of every tool they were measured with, and the conditions they were measured under (the pnpr version, the emulated round trip and bandwidth, the Node.js versions the version-manager section pins). Everything a reader is shown is decided in pnpm/pnpm.io, which renders the page from that file. The `min()` over samples stays here. The statistic belongs with the measurement: only the code that took the samples knows what they are samples of. Every manager listed in `commandsMap.js` is still measured and reported, Yarn and Bun included. Whether any of them reaches a reader is now a separate question, answered downstream — the site draws npm and the pnpm columns, and the rest are measured for comparisons of our own. The committed `benchmarks.json` is built from the results already recorded here, so the site has something to render before the next run. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SKeHCgKWBLVERXWMdVHQFJ
6b04305 to
d168edb
Compare
This repository measured the benchmarks and also decided how they were presented — it wrote
benchmarks.mdand the charts it referred to, and pnpm.io copied both across. That put every wording change (a column renamed, a paragraph rewritten, a manager dropped from the comparison) behind a benchmark run in a repository whose job is measurement.It now publishes one file,
benchmarks.json: the numbers, the version of every tool they were measured with, and the conditions they were measured under — the pnpr version, the emulated round trip and bandwidth, the Node.js versions the version-manager section pins. Everything a reader is shown is decided in pnpm/pnpm.io, which renders the page and its charts from that file.The
min()over samples stays here. The statistic belongs with the measurement: only the code that took the samples knows what they are samples of.What is measured doesn't change
Every manager in
commandsMap.jsis still measured and still reported, Yarn and Bun included. Whether any of them reaches a reader is now a separate question, answered downstream: the site draws npm and the pnpm columns, and the rest are measured for comparisons of our own.That is the point of the split, and pnpm/pnpm.io#904 demonstrates it — the page renders byte-identically whether or not the manifest carries Yarn and Bun.
Gone
benchmarks.md,img/benchmarks/,generateSvg.js,generateStackedSvg.js,nodeVersionsSection.js,regenerate-svgs.mjs, and five dependencies only the rendering used.commandsMap.jsandnodeManagersMap.jslost theirlegend/mdLegend/color/mascotfields — presentation, not measurement.Before merging
benchmarks.jsonis built from the results already recorded here, so the site has something to render before the next run. Itspnprandnodevalues were read off the last published chart, sinceversions.jsonisn't committed; the nextpnpm run reportrewrites the file from the run's own manifest.pnpm-lock.yamlstill carries the five removed dependencies — needs apnpm install.benchmarks.jsonfrommain.🤖 Generated with Claude Code
https://claude.ai/code/session_01SKeHCgKWBLVERXWMdVHQFJ