To-be 47: a merge whose walk said its modules unchanged is delivered (issue 611)
mesh/merge-gate head 18a5b2ac1a48 merged into trunk 8e6ca012c556 — pass: the change touches no module of the mesh's graph
mesh/repo-check head 18a5b2ac1a48 merged into trunk 8e6ca012c556 — pass: its merge-check.sh passed
mesh/delivery delivered
mesh/delivery-group group fix/611-an-unchanged-build-is-delivered delivered: every member is delivered

Names the walk record's delivery.unchanged, decided under the operator's standing rule on small design limits,
and how mesh-delivery reads it.
This commit is contained in:
jochen
2026-10-13 08:18:25 +02:00
parent 0e6bc1bc80
commit 18a5b2ac1a
@@ -2,7 +2,7 @@
layer: to-be
status: in-progress
code: [mesh-controller, mesh-catalog modules/mesh-delivery]
updated: 2026-10-12
updated: 2026-10-13
decisions:
- "ADR 0323"
- "ADR 0313"
@@ -132,6 +132,15 @@ delivery merged with no walk answering it within ten minutes is held too, with t
says `covered: a later merge that contains it was delivered` as a success. A module that runs on one
machine only is covered too: its walk records the empty rest as sent once its first machine passes
(ADR 0270, as corrected 2026-10-12);
- *a merge whose walk said its modules unchanged* moves nothing too, and is `delivered` when that walk ends,
whichever commit the walk carried (issue 611). A delivery plan made while another walk built a module reads
that module whole and names it; the walk, cut later, reads the build source that build recorded (ADR 0267) and
may find none of the changed files in it. The walk's record then says so in `delivery.unchanged`: each such
module with why, "its build source holds none of the changed files", and not in its modules, which keep
meaning what the walk builds. A delivery whose every module the walk built or said unchanged is delivered,
saying which matched what runs. One with a module the walk neither built nor said unchanged is read as below.
Checked by the controller's `TestAWalkThatMovedNothingSaysWhichModulesMatchedWhatRuns` and mesh-delivery's
`TestAMergeWhoseModulesMatchWhatRunsIsDelivered`;
- *a stop whose walk ended without building its modules* (issue 474) stays `stopped`, a final state, and
is read as covered once a later merge covers it by the same test: `mesh/delivery` then says `covered after
its stop` with the covering merge, once, as a success. No state or transition is added (issue 480);