# Versioning and corrections Each volume has its own semantic version (`version` in `books/.mjs`), printed on the cover, in every page footer, and on the title page with the build commit. The series (omnibus) has its own version in `books/index.mjs`. | Change | Level | Example | |---|---|---| | A wrong number, typo, caption or label | **patch** 1.0.0 → 1.0.1 | "Fig 2.2: 329 scales, not 330" | | New or rewritten section, re-shot figures, site added a feature | **minor** 1.0.1 → 1.1.0 | "Added the Quadrant mode section" | | The site changed enough that the book was restructured | **major** 1.1.0 → 2.0.0 | "Studio moved from seven to eight checkpoints" | ## Making a correction 1. Fix the text in `books/.mjs` (or re-shoot: `node scripts/capture.mjs /`). 2. Record it: `node scripts/bump.mjs patch "What changed" --erratum "Ch 2, Fig 2.2"` — raises the version, dates it, adds the line to the book's own *Version history & errata* page and to `CHANGELOG.md`. 3. Rebuild: `node scripts/build.mjs && python scripts/qa.py dist/ && python scripts/omnibus.py` 4. Commit (sources and `dist/`), and attach the new PDFs to a GitHub release. If a correction touches several volumes, bump each one and raise the series version (`SERIES.version`) by the highest level used. Old PDFs are not edited. Every released version stays reproducible from its commit; superseded files in `dist/` are removed in the same commit that adds their replacement, and remain available from git history and earlier releases. ## Reporting an error Note the volume, version (footer) and page, what the book says and what the site shows. Where the site and the book differ, the site is right.