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.

I1951 — Běhy důkazů jsou typované a záznam nese to, co jeho běh změřil

Přidat záznam běhu, naměřenou provenanci, záznam pokrytí a pravidlo počtu crates podle ADR 0087, rozhodnutí 2, 6 a 12, a předávat záznamy běhů jedinému monotónnímu pravidlu, aby záznam uváděl commit a strom, které jeho běh měřil, a jen to, co běželo.

PŘIPRAVENO vlna 1 · p1 · profil implementation · běží samostatně

Součást test-evidence — Každé ověřitelné tvrzení a widget se na každém povrchu převádí na testovací důkaz vázaný na revizi.

Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I1951 bude přijato.

Cíl

Přidat záznam běhu, naměřenou provenanci, záznam pokrytí a pravidlo počtu crates podle ADR 0087, rozhodnutí 2, 6 a 12, a předávat záznamy běhů jedinému monotónnímu pravidlu, aby záznam uváděl commit a strom, které jeho běh měřil, a jen to, co běželo.

Proč

Záznamník razítkuje commit a strom v době záznamu, ne to, co běh změřil, souhrn binárky crate, který říká ok, se čte jako úspěch, i když nic neběželo, a volání evidence record nezanechává vedle knihy žádný záznam o běhu.

Aktuální stav

record.rs razítkuje HEAD a vlastní strom zapisovače; parser cratu čte ok jako pass bez počítání a bez odstranění barevných kódů; neexistuje záznam běhu, záznam pokrytí, razítko důkazu ani --ledger local.

Cílový stav

evidence stamp měří commit a strom běhu; evidence record --provenance je označí, odmítne měřený commit, který není HEAD, a zaznamená T jako neznámé bez měření; každé volání zapíše EvidenceRunRecord; pokrytí je EvidenceCoverage, aktuální jen pro svůj commit s čistým stromem; binárka crate, která nespustila žádný test nebo jen filtrovanou podmnožinu, je vynechání; --ledger local zapíše poradní lokální knihu záznamů a výchozí stále zapisuje sledovanou.

Rozsah

  • apps/majordomus-cli/src/git/mod.rs
  • apps/majordomus-cli/src/evidence/provenance.rs
  • apps/majordomus-cli/src/evidence/run.rs
  • apps/majordomus-cli/src/evidence/coverage.rs
  • apps/majordomus-cli/src/evidence/record.rs
  • apps/majordomus-cli/src/evidence/ledger.rs
  • apps/majordomus-cli/src/evidence/mod.rs
  • apps/majordomus-cli/src/evidence/freshness.rs
  • apps/majordomus-cli/src/capability/builtin/evidence.rs
  • apps/majordomus-cli/src/cli.rs
  • apps/majordomus-cli/src/commands/evidence.rs
  • scripts/ci/evidence-collect
  • test/cases/505_a_recording_carries_what_its_run_measured.sh
  • test/cases/506_a_crate_binary_that_ran_nothing_is_not_a_pass.sh
  • docs/EVIDENCE.md
  • docs/CLAIMS.yaml
  • docs/claims
  • .ai/repo/features/evidence.md

Mimo rozsah

  • Druhá kopie monotónního pravidla: záznamy běhů krmí to, které píše I1948
  • Zapojení runnerů v CI, což je věc I1954
  • Zvýšení verze

Závislosti

Co na tom čeká

Kritéria přijetí

  • Report, jehož změřený commit není HEAD, se odmítne a report bez měření se zaznamená s T unknown
  • Binárka cratu, která nespustila žádný test nebo jen vyfiltrovanou podmnožinu, se zaznamená jako skip, a ta s neúspěšným testem jako selhání, ať nesou barevné kódy jejího výstupu cokoli
  • Každé volání evidence record zapíše záznam běhu nesoucí svůj commit, svůj strom, své součty, co chybělo a co bylo zahozeno
  • Čistý záznam neúspěšného běhu omezí prokázaný verdikt na zastaralý jedním monotónním pravidlem a jmenuje záznam
  • záznam důkazu bez příznaku ledgeru stále zapíše sledovaný ledger

Validace

  • bash test/run.sh 505_a_recording_carries_what_its_run_measured
  • bash test/run.sh 506_a_crate_binary_that_ran_nothing_is_not_a_pass
  • bash test/run.sh 124_evidence
  • cargo test --workspace --all-features

Požadované důkazy

  • provenance_measured_by_the_run
  • crate_count_rule
  • run_records_typed

Důkazy

Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.

Riziko

Potřebuje odkaz na běh z PR #577 (s I1949) a stav stromu z I1948 a je druhou změnou schopnosti v řetězci, takže začne až poté, co přistanou obě.

Časová osa

zahájeno
—
ověřeno
—
dokončeno
—

Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.

Kanonický záznam: .ai/repo/project/issues/I1951.yaml. Přečtěte ho zpět pomocí majordomus plan show I1951.

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