Reprodukovatelnost je poslední lekce Akademie schválně: je to podmínka, na které stojí všechno předchozí.
Co sestavení nesmí potřebovat
- externí platformu nebo službu,
- databázi,
- přihlašovací údaje nebo klíče,
- síť,
- nezdokumentovaný krok, který zná jen autor.
Kdo si repozitář naklonuje a spustí npm run build, musí dostat týž web.
Proč je to podmínka, ne vlastnost navíc
Projekt slibuje, že mu nemusíte věřit — že si můžete zkontrolovat data, zdroje a historii. Ten slib platí jen tehdy, když si výsledek dokážete postavit sami.
Kdyby sestavení potřebovalo něco, co má jen autor, byla by kontrola podmíněná jeho ochotou. To není kontrolovatelnost, jen její vzhled.
Odtud plyne i to, proč se výstup výzkumných nástrojů nikdy nepublikuje jako doklad: nástroj v repozitáři není a čtenář jeho výsledek nezreprodukuje. Publikuje se ta veřejná evidence, na kterou nástroj ukázal — tu si otevře kdokoli.
Jak to ověřit
Naklonovat do prázdného adresáře, nainstalovat závislosti, spustit bránu. Bez přenášení odvozených souborů z existující kopie a bez proměnných prostředí.
Když to projde, je repozitář soběstačný. Když ne, právě jste našli skrytou závislost. Ověř si, že to sedí Chcete přidat krok, který při sestavení stáhne aktuální data z veřejného registru. Co je na tom špatně? Sestavení by přestalo být deterministické a začalo záviset na síti. Tři konkrétní důsledky: Správné řešení je oddělit sběr od sestavení: data se stahují samostatným příkazem, výsledek se s datem pořízení uloží do repozitáře, a build už jen čte, co v něm je. Přesně tak je udělaná archivace úředních podkladů: síťové obnovení je ruční krok, deterministický build na síť nesahá.Zobrazit odpověď Skrýt odpověď