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.

I3937 — A gate whose cases the planned suite runs is not planned beside it

Declare in the CI model that release-record-cases and plan-record-cases are subsumed by shell-suite, and make scripts/ci-plan leave a gate out of every plan that also plans the gate which subsumes it, saying why, so the full plan stops running the same cases on the rust job's third lane that the suite runs on its shards.

PŘIPRAVENO vlna 0 · p1 · profil implementation · bezpečné paralelně

Součást ci-critical-path — Kritická cesta od změny k jejímu verdiktu a od mergi k ověřenému nasazení běží za tepla pod minutu.

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

Cíl

Declare in the CI model that release-record-cases and plan-record-cases are subsumed by shell-suite, and make scripts/ci-plan leave a gate out of every plan that also plans the gate which subsumes it, saying why, so the full plan stops running the same cases on the rust job's third lane that the suite runs on its shards.

Proč

Both gates exist for the record shapes, which do not run the suite; their own comments say the suite runs the same cases. A plan that selects the suite (the full plan of a master push, the schedule, ci:full) still planned them, so in run 39762797718 rust lane 3 ran plan-record-cases for 1602 s and release-record-cases for 425 s, about 34 minutes of a lane of 60-84 minutes, and that lane became the critical path once the suite shards were balanced. Skipping them in the workflow instead would read as a missing receipt or a silent pass; the milestone requires that every gate a change skips names the impact rule that skipped it.

Aktuální stav

scripts/ci-plan plans release-record-cases and plan-record-cases in every full plan next to shell-suite, which runs the same ~80 cases; nothing in the model relates the gates.

Cílový stav

A gate may declare `subsumed-by: <gate>` in .ai/repo/ci/gates.yaml; the planner drops it, after implies and requires, when that gate is in the plan, and the plan JSON, text and github outputs show it as not selected with the reason; the record shapes, which do not plan the suite, plan both gates exactly as before; a subsumed-by that names no gate, the gate itself or a gate that is itself subsumed is refused by --check.

Rozsah

  • .ai/repo/ci/gates.yaml
  • scripts/ci-plan
  • test/cases/94_ci_plan.sh
  • .ai/repo/project/issues/I3937.yaml

Mimo rozsah

  • apps/majordomus-cli/src/gates/model.rs: the executable's reader ignores the field and plans the wider set, as it already plans no shape
  • Skipping a step in .github/workflows/validate.yml: the plan decides, the workflow only reads its outputs
  • Removing, skipping or making advisory any case: the suite runs every case the dropped gates named

Závislosti

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

Co na tom čeká

Kritéria přijetí

  • The full plan selects shell-suite and neither release-record-cases nor plan-record-cases, and each says it was subsumed by shell-suite in the JSON, text and github outputs
  • A change of the release-record or plan-record shape still plans its case gate and not the suite
  • Without the declaration the full plan plans both gates (the case is not vacuous), and a subsumed-by naming a missing gate, itself or a subsumed gate is refused by scripts/ci-plan --check
  • No gate other than the on-demand ones and the two subsumed ones leaves the full plan

Validace

  • env -u MAJORDOMUS_SHARE bash test/run.sh 94_ci_plan 26_ci_wiring 721_the_suite_shards_are_the_whole_suite
  • scripts/ci-plan --check
  • scripts/ci-plan --full --format text | grep record-cases

Požadované důkazy

  • a_gate_the_suite_runs_is_not_planned_twice_test

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á.

Č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.

Canonical record: .ai/repo/project/issues/I3937.yaml. Read it back with majordomus plan show I3937.

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