Repository navigation
Documentation that matches the repository
Documentation that matches the repository, and two tools that check it.
v0.12.0 was tagged but never published. This is that release plus a documentation audit, cut as a separate version because the README is also the PyPI description and PyPI freezes it at upload. Publishing a page carrying links that already resolve to nothing is what cost this project v0.8.1.
The audit
- An error message told users to read
docs/languages.txt, which has never existed here. It now namestango languages, which does. Same class as the v0.7.0 flag removals: an instruction that cannot be followed, with nothing failing when it stopped working. - The structure tree in ARCHITECTURE predated the reorganisation it described. It listed
SESSION.md,TASKS.mdandARCHITECTURE.mdat the repository root five months after they moved intodocs/, and omittedCHANGELOG.md,images.py,scripts/and four test files. - Four ADR citations pointed at
docs/rather thandocs/adr/, and one readCLAUDE.md/ARCHITECTURE.mdas though it were a path. - The README listed ten of the fifteen pipeline modules.
- The README promised the
translation-serverextra "arrives in v0.12.0", which would have been frozen onto the page announcing that very release.
The guard
A test now fails when any document or user-facing message names a file that is not there. It caught a mistake in the corrected structure tree within a minute of being written. CHANGELOG.md is exempt by principle: a changelog records what changed, so it names removed files on purpose.
Also in this release, from v0.12.0
Everything in the v0.12.0 notes: the memory targets measured rather than asserted, docs/COMPATIBILITY.md and its enforcing test, the coverage sweep run for the first time since v0.7.0, and the three defects that made a run lie to its user.
Since then, make benchmark and make mutation were added. Deferring spaCy and genanki out of module scope took tango --version from 45.94s to 3.98s. Four rounds of mutation testing took cards.py to 536 killed of 729 and language.py to 212 of 281.
Full detail in CHANGELOG.md.