Zdůvodnění
Příručka vysvětluje produkt slovy čtenáře a slova čtenáře zastarávají, aniž by o tom někdo rozhodl. Do 2026-10-12 se tato sestavovala na jednom stroji ze skriptu, který četl origin/master; měla kontrolu, která odmítla kapitolu, jejíž předmět z repozitáře zmizel, a nic tuto kontrolu nespouštělo, když se repozitář změnil. Fungující mechanismus bez spouštěče je zvenčí k nerozeznání od zapojeného (ADR 0149).
Náprava je ta, kterou tento repozitář používá na všechno, co publikuje: věc se staví ze stromu, build odmítne to, co už neplatí, a build běží při každé změně.
Požadované chování
handbook/build.pyčte pracovní strom, ve kterém je: soubory, které git sleduje,docs/generated/graph.json, registr, model CI a historii. Nic nestahuje a nejmenuje žádnou cestu mimo strom.- Edice je
handbook/<language>/sedition.toml, který deklaruje tento jazyk (project.english-onlyv3). - Každá kapitola edice je uvedena v
chapter_sources.pyedice s tím, o co se opírá, jakokind:labelodkazy do grafu. Kapitola, která je o samotné příručce, je jmenována v krátkém seznamu výjimek samotné edice v buildu. - Každé číslo, které popisek uvádí, je zástupný znak, který build plní z odvozených dat.
- Sestavená stránka skončí pod
target/handbook/a není sledována.
Chování při selhání
python3 handbook/build.py --check skončí kódem 10 a pojmenuje, co se rozpadlo: kapitolu a referenci, které graf už nenese, kapitolu, která nic necituje, zástupný symbol bez čísla, nebo datový soubor, jehož klíče se změnily. Kontrola handbook-check změnu shodí.
Ověření
test/cases/2984_a_handbook_edition_is_built_from_the_tree.sh sestaví edici z tohoto stromu a pak každé zamítnutí dokáže mutací v kopii: kotva, která neexistuje, kapitola s odstraněnými kotvami, neznámý zástupný symbol. Dokazuje také tři podmínky, které project.english-only v3 klade na deklaraci edice.