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.

I1949 — Důkazy z CI se zaznamenávají čisté a jejich zpráva je verdiktem sledovaného ledgeru

Opravit PR #577 na jeho vlastní větvi tak, aby job CI evidence odvozoval svůj report ze sledovaného ledgeru dříve, než zaznamená provádění běhu, každý job spouštějící testy měřil svůj strom tam, kde běžel, a web publikoval current jen podle prozatímního pravidla ADR 0087 (rozhodnutí 1).

HOTOVO vlna 0 · p1 · profil implementation · bezpečné souběžně

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.

Cíl

Opravit PR #577 na jeho vlastní větvi tak, aby job CI evidence odvozoval svůj report ze sledovaného ledgeru dříve, než zaznamená provádění běhu, každý job spouštějící testy měřil svůj strom tam, kde běžel, a web publikoval current jen podle prozatímního pravidla ADR 0087 (rozhodnutí 1).

Proč

Jak je PR #577 napsán, sběrač nejdřív zaznamená a zprávu odvodí potom, takže přepis, který web publikuje jako aktuální, je verdikt nad řádky vlastního běhu z checkoutu, který nikdo neměřil. ADR 0087 mění ADR 0068 právě na těchto větách.

Aktuální stav

Změřeno 2026-10-08 na master 4090b2b8ae. PR 577 a tento slice (PR 645) jsou na master: úloha evidence odvozuje svou zprávu před záznamem a každá produkující úloha měří svůj strom (případ 357 prochází). Stále otevřeno: každá dráha rust měří svůj strom jako špinavý, protože nesledovaný timings.tsv v kořeni repozitáře není mezi vyloučenými cestami (.github/workflows/validate.yml vylučuje jen apps/majordomus-cli/timings.tsv a apps/majordomus-cli/dist), takže manifest evidence běhu 37744906831 nese working_tree dirty pro producenta crate a web z něj nemůže publikovat current.

Cílový stav

Job důkazů odvozuje svou zprávu nad sledovanou knihou tak, jak je commitnuta v commitu běhu, než zaznamená; joby sady a rustu měří své stromy, vyjma jen jejich pojmenovaných výstupů, a nahrávají měření; scripts/pages evidence publikuje current, jen když je běh publikovaného commitu, každý job, který spouštěl testy, měřil čistý strom, zpráva byla odvozena na čistém checkoutu a nic nechybělo, nebylo odmítnuto ani selhalo, a jinak stale nebo unknown s uvedením každého důvodu.

Rozsah

  • .github/workflows/validate.yml
  • scripts/ci/evidence-collect
  • scripts/pages
  • site/templates/evidence.html
  • docs/EVIDENCE.md
  • docs/CLAIMS.yaml
  • docs/claims/evidence-recorded-in-ci.md
  • test/cases/357_ci_records_evidence.sh

Mimo rozsah

  • Prostředí behaviorálních testů, krok souhrnu a nahrání ci-metrics-suite jobu suite
  • Přesun suite.tsv z workspace, kde ho čte rozpočet sady z PR #627
  • Jakýkoli řádek docs/CLAIMS.yaml kromě tvrzení a poznámky evidence-recorded-in-ci
  • docs/EVIDENCE.md mimo sekci Recorded in CI
  • Úvodní komentář a řádek článku v site/templates/evidence.html

Závislosti

Žádné. Tento úkol je kořenem grafu.

Co na tom čeká

Kritéria přijetí

  • Úloha důkazů odvodí svůj report dřív, než zaznamenává, nad sledovaným ledgerem tak, jak je zapsán na commitu běhu
  • Každá úloha, která spouštěla testy, změří svůj strom s vyloučením pouze svých pojmenovaných výstupů a manifest nese každé měření
  • scripts/pages evidence publikuje aktuální jen podle prozatímního pravidla ADR 0087 a jinak zastaralé nebo neznámé s uvedením každého důvodu
  • Případ 357 ověřuje obě poloviny a běh pull requestu této části ukazuje provedení cratů a čisté měřené stromy

Validace

  • bash test/run.sh 357_ci_records_evidence

Požadované důkazy

  • report_derived_before_recording
  • producer_trees_measured

Důkazy

pokrývátypcommandvýsledeku commitu
report_derived_before_recordingtestMJ_TEST_JOBS=2 bash test/run.sh 357_ci_records_evidencetesty: 1 prošel, 0 selhalo, 0 přeskočeno (běh 2026-10-14 mezi 07:40Z a 07:58Z na masteru ce5959db59)ce5959d
producer_trees_measuredtestMJ_TEST_JOBS=2 bash test/run.sh 357_ci_records_evidencetesty: 1 prošel, 0 selhalo, 0 přeskočeno (běh 2026-10-14 mezi 07:40Z a 07:58Z na masteru ce5959db59)ce5959d

Riziko

Naskládáno na PR #577, který koliduje s master, a proto nemá vlastní běh pull requestu: přijetí tohoto kusu je jeho vlastní běh pull requestu. Běh #577 po jeho mergi masteru je kontrola přistání #577, ne tohoto kusu.

Časová osa

zahájeno
2026-10-14T07:59:48Z
ověřeno
—
dokončeno
2026-10-14T07:59:56Z

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/I1949.yaml. Přečtěte ho zpět pomocí majordomus plan show I1949.

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