Skip to content

I3244 — The generated Dockerfile copies every path crate cargo metadata names, so a new workspace crate needs no edit of the image

Have render.rs read the local path dependencies of the package from `cargo metadata` and emit their manifests in the recipe and dependency stages and their sources in the build stage.

READY wave 0 · p1 · implementation profile · parallel safe

Part of fly-deployment — The container image is a projection of the repository model, and its smoke is its evidence.

Ready. Every dependency is done, so majordomus plan start I3244 will be accepted.

Objective

Have render.rs read the local path dependencies of the package from `cargo metadata` and emit their manifests in the recipe and dependency stages and their sources in the build stage.

Why

c286#20 (2026-10-17): PR #1309 added majordomus-core and docker-image failed on a missing /src/apps/majordomus-core/Cargo.toml. The convergence plan keeps compute experimental, so this is not an alpha blocker, but it breaks the image the moment the core lands. Sources: chatgpt-majordomus:c286#20.

Current state

render.rs recipe stage: `COPY {pkg}/Cargo.toml {pkg}/Cargo.lock /recipe/in/` for one package; apps/ on master holds only majordomus-cli.

Desired state

A fixture with a second path crate builds the image with no generator edit; generate --check stays green.

Scope

  • apps/majordomus-cli/src/deploy/render.rs
  • deploy/Dockerfile
  • .dockerignore

Out of scope

  • Hand edits of deploy/Dockerfile

Dependencies

None. This issue is a root of the graph.

Acceptance criteria

  • The rendered Dockerfile names every path crate of the package
  • A one-line source edit still leaves the dependency layers cached
  • generate --check passes after a crate is added

Validation

  • cargo test --manifest-path apps/majordomus-cli/Cargo.toml --lib deploy::
  • majordomus generate --check

Evidence required

  • path_crates_rendered_test

Evidence

None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.

Timeline

started
—
verified
—
completed
—

Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.

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

Searches the titles and descriptions of every page this site publishes.