What changed between versions
The book republishes on every major step, which makes the differences between versions part of the record, not something to reconstruct from memory. Pick any two releases and read the delta the way a code review reads a diff: chapter by chapter, block by block, and word by word inside a changed block. This is the foundation of the review workflow: reviewer feedback becomes proposed changes, proposed changes become a delta, and this page is where a delta is read.
gen_changes.py: the pipeline's own history is the dataset, nothing is written twice. A version's snapshot is frozen the moment its tag exists. Blocks are plain text (a paragraph, a heading, a list item, a table row), so this view shows what changed in the text; layout and design changes do not appear here.Loading the version index…
For an agent
The machine-readable form is under /book/changes/data/: index.json lists every release, and <version>.json holds that release's book as plain-text blocks per unit (intro, ch01 … ch16). To answer "what changed between vA and vB", fetch the two files and diff the block lists; that is exactly what this page does. Snapshots are extracted deterministically from the repository's release tags and never change once tagged.