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.

I0911 — Změna zdroje nepřebuilduje svět a kontext zůstává malý

Přimět build kontejneru, aby znovu používal vrstvy závislostí a cache, takže změna jen ve zdrojích nepřestaví každou závislost, a držet build kontext u vstupů, které deklaruje objekt nasazení.

BLOKOVÁNO vlna 4 · p1 · profil implementation · bezpečné paralelně

Součást fly-deployment — Image kontejneru je projekcí modelu repozitáře a jeho smoke test je jeho důkazem.

Blokováno. Tento úkol nemůže začít, dokud není I0909 hotovo. Stav je z toho odvozen, ne deklarován.

Cíl

Přimět build kontejneru, aby znovu používal vrstvy závislostí a cache, takže změna jen ve zdrojích nepřestaví každou závislost, a držet build kontext u vstupů, které deklaruje objekt nasazení.

Proč

Vzdálený builder, který dostane celý worktree, nahraje historii, node modules a každý artefakt worktree a pak kvůli jednořádkové změně znovu sestaví každý crate. Obě ceny jsou odstranitelné a obě měřitelné.

Aktuální stav

Žádné sestavení kontejneru neexistuje, takže se nikdy neměřila ani velikost kontextu, ani doba sestavení.

Cílový stav

Doby čistého a teplého buildu a velikost kontextu se měří a omezují a pravidla ignorování se odvozují z deklarovaných vstupů buildu, ne z druhého ručně vedeného seznamu.

Rozsah

  • deploy/fly
  • apps/majordomus-cli/src/deploy/build.rs

Mimo rozsah

  • Build systém nahrazující Cargo
  • Jakékoli cachování, které mění, co vyrobená binárka obsahuje

Závislosti

Co na tom čeká

Kritéria přijetí

  • Změna jen ve zdrojích znovu použije vrstvy závislostí a změřené teplé sestavení je podstatně rychlejší než čisté
  • Změna pouze v dokumentaci nepřestavuje závislosti Rustu, pokud to pořadí vrstev dovoluje
  • Ignorovací pravidla se odvozují z deklarovaných vstupů sestavení objektu nasazení a vyloučení souboru, který potřebuje workspace nebo generátor webu, zachytí sestavení, ne produkce
  • Velikost build kontextu se měří a omezuje deklarovaným rozpočtem
  • Každý další build nástroj zavedený pro cachování je připnutý, jen pro builder, chybí v runtime image a je zdůvodněn změřeným zlepšením

Validace

  • majordomus deploy doctor
  • bash test/run.sh

Požadované důkazy

  • cache_layers
  • warm_build_measured
  • context_budget

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

Ignorovací soubor vyladěný na velikost může tiše vypustit člena workspace a vytvořit build, který selže jen na vzdáleném builderu, kde je zpětnovazební smyčka nejpomalejší.

Č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/I0911.yaml. Načtěte jej zpět pomocí majordomus plan show I0911.

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