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.

I2787 — Build nikdy nedovolí, aby artefakty crate ve sdíleném build adresáři zaplnily disk

Omezit debug/deps sdíleného build adresáře stejně, jako I2713 omezuje debug/incremental: před spuštěním omezeného buildu odstranit vlastní testovací binárky a knihovny crate (majordomus_cli-*, libmajordomus_cli-* a každou binárku tests/*.rs) těch generací, které žádný živý strom nebuilduje a které jsou starší než deklarované stáří; nikdy soubor, který drží otevřený běžící proces, nikdy cizí závislostní artefakty jiného crate, a na stderr uvést, co bylo uvolněno.

HOTOVO vlna 1 · p0 · profil implementation · běží samostatně

Součást development-runtime — The runtime has a development surface.

Cíl

Omezit debug/deps sdíleného build adresáře stejně, jako I2713 omezuje debug/incremental: před spuštěním omezeného buildu odstranit vlastní testovací binárky a knihovny crate (majordomus_cli-*, libmajordomus_cli-* a každou binárku tests/*.rs) těch generací, které žádný živý strom nebuilduje a které jsou starší než deklarované stáří; nikdy soubor, který drží otevřený běžící proces, nikdy cizí závislostní artefakty jiného crate, a na stderr uvést, co bylo uvolněno.

Proč

2026-10-16 ~22:50Z dosáhl sdílený Mac 238 MiB volného místa a build každé relace selhal s ENOSPC. Nečinné inkrementální relace (48 GiB, předmět I2713) byly odstraněny ručně; přistávací role poté smazala 43 GiB testovacích artefaktů majordomus_cli-* starších než 3 h z build-shared/majordomus/debug/deps, kde zůstalo 41 GiB a 11026 souborů majordomus_cli-*: každá generace worktree zanechá jeden testovací binár crate a knihovnu a nic je neodstraní kromě cargo clean, které by smazalo build každého živého stromu.

Aktuální stav

lib/rust_bin.sh odmítne build pod prahem volného místa; I2713 (#1279) maže nečinné inkrementální relace; nic nemaže debug/deps.

Cílový stav

mj_cargo_bounded maže zastaralé artefakty crate v debug/deps vedle inkrementálního úklidu, se stejnými predikáty stáří a živosti položenými znovu u každé cesty před odstraněním, a případ ověřuje, že živý nebo nedávný artefakt přežije a zastaralý ne.

Rozsah

  • lib/rust_bin.sh
  • test/cases
  • docs/WORKTREES.md

Závislosti

Kritéria přijetí

  • Zastaralý artefakt crate v debug/deps starší než deklarované stáří, který nedrží otevřený žádný proces, se před omezeným buildem odstraní a uvede na stderr
  • Artefakt, který drží otevřený běžící proces, nedávný artefakt i artefakt crate závislosti všechny přežijí
  • Volné místo zůstává nad deklarovanou spodní mezí po celý den souběžných relací na sdíleném stroji

Validace

  • majordomus plan validate

Požadované důkazy

  • case_deps_pruned

Důkazy

pokrývátypcommandvýsledeku commitu
case_deps_prunedtestbash test/run.sh 3196_stale_crate_artifacts_are_pruned_under_cargos_lock3 passed, 0 failed, 0 skipped on master dd4c0a87cba (with 1060 and 2988); delivered by PR #1349 (36de9d12699, f6d28ada933), not by the plan commit cc536298674dd4c0a8

Časová osa

zahájeno
2026-10-19T15:30:54Z
ověřeno
—
dokončeno
2026-10-19T15:31:11Z

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

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