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.

Cyklus, závislost sama na sebe a závislost na neexistujícím úkolu jsou každé odmítnuty jmenovitě

Graf závislostí se validuje, nevěří se mu. Každý chybný tvar vyrobí vlastní nález s úkolem, který ho způsobil: cycle, self_dependency, unknown_dependency, duplicate_dependency, unknown_milestone, premature_execution. Selhávající nález způsobí nenulový exit majordomus plan validate a majordomus doctor; majordomus watch hlásí totéž porušení jako drift.

deklarovaný stavdeklarovaný stav: zaručeno Deklarováno jako deterministické a blokující, implementováno a s uvedeným behaviorálním testem, který to má dokázat. Zda to zaznamenaný běh podporuje, říká verdikt důkazů zobrazený vedle.

zaznamenané důkazyzaznamenané důkazy: nespuštěno Deklarováno jako zaručené, ale nepodložené zaznamenaným během: test je pojmenován, ale žádný úspěšný běh nad současnými vstupy zaznamenán není. jak se zaznamenávají důkazy

Kahnovo vrstvení; hlášené jsou úkoly, které z grafu nikdy nevystoupí. Poškozený graf způsobí selhání doctor a watch ho ohlásí jako drift.

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 I0007

Co 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č.

Detail vykreslený z docs/claims/dag-validation.md.

Od tvrzení k důkazu

  1. 1 · veřejné tvrzení

    Cyklus, závislost sama na sebe a závislost na neexistujícím úkolu jsou každé odmítnuty jmenovitě

    Učiněno na Planning, Plan.

  2. 2 · kanonické tvrzení

    dag-validationdeklarovaný stav: zaručeno v docs/CLAIMS.yaml

    Definováno v přečtěte si to na tomto webu · docs/PLANNING.md

  3. 3 · implementace

    lib/project.awk

  4. 4 · test a scénáře

    Test: test/cases/42_dag_waves.sh

    Provedeno v Dodávejte úkoly ve vlnách, které graf spočítá, a vezměte další, Veďte plán jako milníky a úkoly, které nástroj umí validovat.

  5. 5 · zaznamenané běhy

    zaznamenané důkazy: nespuštěno jak se zaznamenávají důkazy

Ověřte si to sami

Test běží v jednorázovém dočasném repozitáři a ověřuje chování, ne řetězec ve zdrojovém kódu.

z klonu repozitáře
bash test/run.sh 42_dag_waves

Kde se toto tvrzení používá

Související tvrzení stejná implementace

Okamžiky, na které to odpovídá

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