Co to znamená
Graf závislostí se validuje, nevěří se mu. Každý poškozený tvar vytvoří vlastní nález s úkolem, který jej způsobil: cycle, self_dependency, unknown_dependency, duplicate_dependency, unknown_milestone, premature_execution. Selhávající nález způsobí nenulový návratový kód majordomus plan validate a majordomus doctor; majordomus watch hlásí totéž porušení jako drift.
Princip
lib/project.awk odstraňuje úkoly, jejichž závislosti byly všechny odstraněny, vrstvu po vrstvě. Úkoly, které nikdy neodejdou, jsou v cyklu nebo za ním a jsou to úkoly, které nález jmenuje. Chyby hran se zjišťují při sestavování seznamu hran, takže neznámá závislost se hlásí jako neznámá závislost, ne jako neviditelný cyklus.
Jak to vidět
majordomus plan validate
# FAIL cycle graph — a dependency cycle prevents these issues from ever becoming ready: I0006 I0007Co nepokrývá
Graf se ověřuje na tvar, ne na úsudek. Hrana, kterou nikdo nepotřeboval, je platná hrana; nástroj ochotně serializuje práci, která mohla běžet paralelně.
Proč existuje
Seznam závislostí bez validace je návrh. Cyklus, který nikdo nezjistí, je množina úkolů, které se nikdy nemohou stát připravenými, bez zprávy, která by vysvětlila proč.