Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

Verdikt, který nikdy nedorazil, není verdikt

Verdikt, který nikdy nedorazil, není verdikt

majordomus://rule/project.never-reported-is-not-green@1aktivní procesintegraceevidence

Zdůvodnění

Po celou noc nesl trunk tohoto repozitáře tři vady lámající větve, zatímco každý povrch, na který se člověk dívá, nevykazoval nic špatného. Nedoběhl žádný validační běh: běhy stály ve frontě za vzácnými runnery a každý nový push zrušil ten předchozí. Nikoho neoklamala zelená fajfka, protože žádná nebyla — oklamalo je prázdné místo, kam patří verdikt, které vypadá úplně stejně.

Stejný vzorec se následující den objevil ještě dvakrát, v jiném hávu:

  • Publikace, která uspěla, hlásila cancelled, protože vlastní čekání jobu na content delivery network vypršelo dřív, než síť dohnala stav. Web o minutu později poskytoval nový commit. Worker, který by četl stav jobu, by znovu spustil nasazení, které už proběhlo; řešením bylo zeptat se, co web skutečně poskytuje.
  • Každý tehdy otevřený pull request ukazoval selhávající kontroly a každé z těch selhání bylo vlastní selhání trunku. Pracovník porovnávající proti nule by usoudil, že všechny jsou rozbité a žádný nemůže přistát, a den by skončil s nic nezmergovaným a trunkem stále červeným.

Tyto případy mají společné to, že levné čtení — barva, slovo stavu, počet selhání — není čtením, které rozhoduje. Drahé čtení je to, co běh skutečně řekl, a o kterém stromu.

Požadované chování

Kontrola, která nehlásila, je neznámá. Absence se zaznamenává a sleduje jako absence; nikdy se nezapíše, neřekne ani nemerguje, jako by prošla. Když běh nedoběhne, poctivým hlášením je, že změna je neověřená, a uvede, která kontrola chybí.

Změna se posuzuje proti vlastní množině selhání trunku. Před merge zjistěte, co trunk sám selhává — z doběhlého běhu, nebo spuštěním kontroly lokálně na trunku — a porovnejte. Totožná nebo menší množina je změna, která trunk nezhorší, a to je laťka; přísná nula laťkou není, dokud je trunk červený, protože by zmrazila každou opravu za každou jinou opravou. Selhání, které změna zavádí, je pojmenováno a má vlastníka dřív, než přistane.

Stav jobu není fakt, který měřil. Když job ohlásí selhání, jehož předmět je pozorovatelný — publikovaný web, běžící server, soubor na disku — zeptejte se předmětu, než jobu uvěříte. Omezené čekání, které vypršelo, je měření, které nedoběhlo, ne měření, které vyšlo negativně.

Verdikt je zařízen tak, aby dorazil. Kontrola, jejíž runner je tak vzácný, že její odpověď nikdy nepřijde, je dokumentace, ne vynucování; buď je naplánována tak, aby mohla dokončit, nebo je skutečnost, že nemůže, uvedena tam, kde ji čtenář potká.

Chování při selhání

Rozhoduje se recenzí a záznamem, ne kontrolou: žádná kontrola nepozná, že člověk věřil mlčení. Nejbližší mechanická podpora je, že plánovač odmítne model, jehož verdikt nelze dosáhnout, a že kontrola publikovaného webu se ptá webu, ne workflow.

Tvrzení ve zprávě, pull requestu nebo commit zprávě, že něco „prochází“, když žádný běh nedoběhl, je selhání, které toto pravidlo jmenuje, a je to selhání správnosti, ne věc tónu: vkládá do záznamu fakt, který nic neměřilo.

Ověření

Případ samotného plánovače tvrdí, že každá kontrola, kterou model deklaruje, je dosažitelná v nějakém plánu, takže kontrolu nelze deklarovat do jobu, který nikdy neběží. Všechno ostatní zde drží recenze.

Odkud to pochází

kanonický soubor
.ai/repo/rules/project/never-reported-is-not-green.v1.md
identity
project.never-reported-is-not-green@1
dostupné také jako
Zdroj MCP majordomus://rule/project.never-reported-is-not-green@1 · majordomus entity show rule/project-never-reported-is-not-green-1 · GET /api/v1/entity?uri=majordomus://rule/project.never-reported-is-not-green@1
v Cockpitu
/cockpit/objects/rule/project-never-reported-is-not-green-1

Tato stránka je generována z výše uvedeného souboru pomocí scripts/generate-site-data; úprava stránky nic nemění, úprava souboru změní všechna rozhraní. Výše uvedené vztahy jsou hrany docs/generated/graph.json, které spustitelný program zapisuje ze stejného indexu.

Prohledává názvy a popisy všech stránek, které tento web publikuje.