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.