The end-to-end design held 'the run rebuilds what it tests' for binaries and images and not for manifests. The beds' inline copies fell into three kinds; only the first is a stale copy. The other two are named: a mesh test wearing a catalogue module's name (074) and a stocked runtime image the run never rebuilds (075).
37 lines
1.7 KiB
Markdown
37 lines
1.7 KiB
Markdown
---
|
|
status: open
|
|
opened: 2026-09-21
|
|
located-in: []
|
|
fixed-by:
|
|
amended-design:
|
|
---
|
|
|
|
# A stocked runtime image is never rebuilt by the run
|
|
|
|
## Symptom, as observed
|
|
|
|
A per-module bed stocks the module's runtime image — the tool runtime carrying that module's
|
|
code — from the workstation's image store, by tag. The image is built by hand, by a script in the
|
|
lab repository that the suite never calls. On the day issue 073 was worked, the images for six
|
|
modules whose beds were about to run dated from two weeks before the manifests they were to be
|
|
installed with; the catalogue's code for those modules had changed since, and every bed would have
|
|
passed against the old image. The suite's own rule — *the run rebuilds what it tests* — is held
|
|
for the host binary and the controller image and not for these.
|
|
|
|
## Why it matters beyond this instance
|
|
|
|
- **Silence and success look alike again.** A bed that passes against a stale runtime reports
|
|
the module proven; nothing says the image predates the code.
|
|
- **It is the same fault [issue 005](../005-pipeline-test-harness-unbuildable/00-report.md)
|
|
named**, one layer down: a stale artifact reporting success against code that moved.
|
|
- The receipt now names the catalogue's commit ([ADR 0089](../../02-DECISIONS/0089-a-bed-reads-the-catalogue-it-proves.md)),
|
|
which makes this sharper, not better: the receipt claims a commit whose runtime code was never
|
|
built into what ran.
|
|
|
|
## What would close it
|
|
|
|
The suite builds, or refuses to stock, a module runtime whose image is older than the module's
|
|
source in the catalogue the run is pointed at — the same treatment the host binary and the
|
|
controller image get. Or the scenario says which images it stocks stale, and the receipt says
|
|
so too.
|