From 18a5b2ac1a48c324c5dce67dd0483213bac89d1a Mon Sep 17 00:00:00 2001 From: jochen Date: Tue, 13 Oct 2026 08:18:25 +0200 Subject: [PATCH] To-be 47: a merge whose walk said its modules unchanged is delivered (issue 611) Names the walk record's delivery.unchanged, decided under the operator's standing rule on small design limits, and how mesh-delivery reads it. --- .../01-to-be/47-delivery-from-commit-to-delivered.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/03-DESIGN/01-to-be/47-delivery-from-commit-to-delivered.md b/03-DESIGN/01-to-be/47-delivery-from-commit-to-delivered.md index 8e7be134..31a60823 100644 --- a/03-DESIGN/01-to-be/47-delivery-from-commit-to-delivered.md +++ b/03-DESIGN/01-to-be/47-delivery-from-commit-to-delivered.md @@ -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);