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.

I4229 — The image's build stage carries every file the crate embeds

Fail validate, not the image build, when the executable embeds a file the image's compiling stages do not copy: a unit test of the Dockerfile renderer walks the package's non-test sources, resolves every include_str! and include_bytes! against the file that names it, and requires each to fall under a path the deps or build stage copies.

PŘIPRAVENO vlna 0 · p2 · implementační profil · bezpečné paralelně

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

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

Cíl

Fail validate, not the image build, when the executable embeds a file the image's compiling stages do not copy: a unit test of the Dockerfile renderer walks the package's non-test sources, resolves every include_str! and include_bytes! against the file that names it, and requires each to fall under a path the deps or build stage copies.

Proč

Train 6 (I2674) embedded share/mesh-cache-provider/* in mesh/cache_provision.rs while the image's build stage copied apps/majordomus-cli alone, and master's docker-image job failed (run 40189935629 on 71857dbb609: couldn't read share/mesh-cache-provider/policy.json). A pull request builds the image only when the image's own definition changes, so the defect reached master unseen. Train 7 moved the payload under apps/majordomus-cli/assets/, which the build stage copies; #2523 wrote this guard alongside a COPY share fix that the move made unnecessary.

Aktuální stav

On 2efeacea031 nothing short of building the image checks that an embedded file reaches the build context.

Cílový stav

deploy::render::tests::the_build_stage_carries_every_file_the_package_embeds passes on master's layout and fails, naming the file and the path, when a source embeds a file outside what the deps and build stages copy.

Rozsah

  • .ai/repo/project/issues/I4229.yaml
  • apps/majordomus-cli/src/deploy/render.rs

Mimo rozsah

  • Changing what the image copies: master's layout already carries every embedded file
  • Embeds written through concat! or env!, which name no literal path

Závislosti

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

Kritéria přijetí

  • The test passes on master's sources
  • A source that embeds ../../../share/advisors.yaml fails the test, naming that source and that path

Validace

  • cargo test --manifest-path apps/majordomus-cli/Cargo.toml --lib deploy::render::tests::the_build_stage_carries_every_file_the_package_embeds

Požadované důkazy

  • embedded_files_reach_the_build_stage

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/I4229.yaml. Read it back with majordomus plan show I4229.

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