Okamžik
Repozitář tvrdí, že pravidlo je vynucováno. Pravidlo je zapsáno, skript, který je kontroluje, existuje, dokonce je i test pro skript. Nic jej nevolá. Nikdy nic neodmítl a nikdo si nevšiml, protože existuje všechno, co by vynucování předvedlo, kromě samotného vynucování.
Proč k tomu dochází
Vynucování je řetězec — pravidlo, validátor, dispatch, návratový kód, test, CI — a může být přítomen každý článek kromě jednoho. Každý článek přidává jiná změna v jinou dobu a žádný jediný artefakt celý řetězec nepředstavuje, takže nelze nic zkontrolovat a chybějící článek najít. V materiálu, z něhož byl tento nástroj vydestilován, bylo nalezeno sedmnáct takových případů.
Proč to lepší model nevyřeší
V tomto selhání není žádný model vůbec. Je to strukturální mezera mezi věcmi, které lidé napsali, a je viditelná jen pro něco, co prochází řetězec z obou konců.
Co to stojí
Nezasloužená jistota, která je horší než vědět, že kontrolu nemáte: tým přestane porušení hlídat, protože je „řeší“ kontrola, a porušení se hromadí nepozorovaně, dokud něco nevynutí audit.
Co Majordomus dělá
Pravidlo, které nástroj vynucuje, deklaruje svůj validátor, příkazy, které ho rozesílají, návratový kód, který porušení vyvolá, tvrzení, za nimiž stojí, a testy, které ho dokazují. Nic nevybírá kontroly ručně: dispatcher čte deklarovaná pravidla, takže pravidlo tam přidané běží od té chvíle, a pravidlo, jehož validátor neexistuje, je hlášené selhání, nikoli tiché přeskočení. doctor prochází řetězec v obou směrech — selže i validátor, který nedeklaruje žádné pravidlo — a sesouhlasí seznam vynucování v politice s hooky, které ho jmenují, včetně toho, zda návratový kód přežije.
Před a po
before rule: "enforced by pre-commit" hook: absent result: green, always
after $ majordomus doctor
FAIL wiring doctor-on-commit — declared in policy, no pre-commit hook invokes it
[reproduce: majordomus doctrine status]Co nedělá
Srovnává, co tento repozitář deklaruje, s tím, co tento repozitář provozuje. Nemůže vědět, že pravidlo má existovat, a pravidlo, které poctivě říká, že ho nikdo nevynucuje, je stav úspěchu, ne selhání.