From 0a6172640cfbb8b6e204281cfaa1d9ff3408b103 Mon Sep 17 00:00:00 2001 From: jochen Date: Sat, 10 Oct 2026 19:57:07 +0200 Subject: [PATCH] Accept ADR 0282: the operator decided the delivery budgets on 2026-10-10 To-be 47 lists the record among its decisions, ADR 0236 and ADR 0276 say where their mechanism moves, and the glossary drops 'proposed'. --- 00-META/glossary.md | 4 ++-- ...ng-other-than-itself-and-so-it-rolls-out-unattended.md | 7 +++++++ ...elivered-by-one-walk-with-one-commit-per-repository.md | 7 +++++++ ...e-minutes-of-its-merge-and-a-core-module-within-ten.md | 2 +- .../01-to-be/47-delivery-from-commit-to-delivered.md | 8 ++++---- 5 files changed, 21 insertions(+), 7 deletions(-) diff --git a/00-META/glossary.md b/00-META/glossary.md index a6abceca..789f750c 100644 --- a/00-META/glossary.md +++ b/00-META/glossary.md @@ -368,13 +368,13 @@ planner, the walk). **Downstream of** Module, Core, Health and repair and Data. back, no condition raised since the send (ADR 0236 §2). Not *the gate* bare (see [Homonyms](#homonyms)). - **core module** and **leaf module** — a core module is one on the controller's own path (the controller, the node-engine, the tool runner, the bus, mesh-delivery) or the mesh's resolver, whose judgement protects - the mesh's ability to reach a node at all; a leaf module is every other module. Proposed by + the mesh's ability to reach a node at all; a leaf module is every other module. Decided by [ADR 0282](../02-DECISIONS/0282-a-fix-to-a-leaf-module-runs-healthy-on-every-node-within-five-minutes-of-its-merge-and-a-core-module-within-ten.md). Not a *core component* (ADR 0236's controller, node-engine, tool runner and bus, each with a health probe): the core modules add mesh-delivery and the resolver. - **delivery time** — from a delivery's merge to every node of its deploy plan that is heard from running its modules' builds and reporting them healthy. Its **delivery budget** is what it is held to: five minutes for - a leaf module, ten for a core module (proposed by ADR 0282). Not the walk's time, which ends at the send. + a leaf module, ten for a core module (ADR 0282). Not the walk's time, which ends at the send. - **release** — a person's word that a held delivery goes on; the verb `mesh-delivery.release`. Used in this sense only. - **rollback** — putting a node back on the build it ran before, by something other than the build being diff --git a/02-DECISIONS/0236-a-build-is-judged-on-its-first-machine-and-put-back-by-something-other-than-itself-and-so-it-rolls-out-unattended.md b/02-DECISIONS/0236-a-build-is-judged-on-its-first-machine-and-put-back-by-something-other-than-itself-and-so-it-rolls-out-unattended.md index a9ba8e54..0ec5692f 100644 --- a/02-DECISIONS/0236-a-build-is-judged-on-its-first-machine-and-put-back-by-something-other-than-itself-and-so-it-rolls-out-unattended.md +++ b/02-DECISIONS/0236-a-build-is-judged-on-its-first-machine-and-put-back-by-something-other-than-itself-and-so-it-rolls-out-unattended.md @@ -111,6 +111,13 @@ gated: it is the module saying it must change everywhere at once. > passes, so that when the send fails, a module healthy on its own for the passes asked keeps a pass and is > not put back (issue 318). +> **The mechanism changed — 2026-10-10, by [ADR 0282](0282-a-fix-to-a-leaf-module-runs-healthy-on-every-node-within-five-minutes-of-its-merge-and-a-core-module-within-ten.md).** +> What stands: a core module's three judgings, their spacing and bound, and every other point above. What +> moved: a leaf module (every module off the controller's own path and the mesh's resolver) is judged on two +> readings when it has a long-running resource and on one when its every resource is a tools bundle, and one +> tier's first machines are judged at once. Until ADR 0282's third slice is built, three judgings hold for every +> module. + **3. A build that fails its gate is put back there, once, and never sent again on its own.** The plan stops; the build is marked failed at its gate; the module's registered build goes back to the build the first machine ran before — the newest successful build of that commit still kept ([ADR 0189](0189-the-store-keeps-what-the-records-name.md) diff --git a/02-DECISIONS/0276-merges-are-assembled-in-a-rolling-window-and-each-batch-is-delivered-by-one-walk-with-one-commit-per-repository.md b/02-DECISIONS/0276-merges-are-assembled-in-a-rolling-window-and-each-batch-is-delivered-by-one-walk-with-one-commit-per-repository.md index c513a75e..24053636 100644 --- a/02-DECISIONS/0276-merges-are-assembled-in-a-rolling-window-and-each-batch-is-delivered-by-one-walk-with-one-commit-per-repository.md +++ b/02-DECISIONS/0276-merges-are-assembled-in-a-rolling-window-and-each-batch-is-delivered-by-one-walk-with-one-commit-per-repository.md @@ -135,6 +135,13 @@ either, because **delivery group** already names deliveries that share a head br are replaced by it. A merge heard after a later merge of its repository and branch was put in a walk is answered by that walk: by the batch still assembling, by the open walk, or, when that walk was delivered, it ends `covered` at once. + + > **The mechanism changed — 2026-10-10, by [ADR 0282](0282-a-fix-to-a-leaf-module-runs-healthy-on-every-node-within-five-minutes-of-its-merge-and-a-core-module-within-ten.md).** + > What stands: the window for a merge whose delivery group has a member not yet merged or that arrives while a + > batch assembles (decision 1), two walks of one repository never at once, and no walk superseded once it + > started. What moved: a lone merge is cut at once without the window, and walks that share no repository, + > module or module-graph edge run at once, one first-node judgement per machine at a time. Until ADR 0282's + > second and fourth slices are built, the window for every merge and one walk at a time hold. 5. **The order of a delivery group holds inside a walk** (ADR 0249 unchanged). The pairs its order rules give (declared, built by, version skew, engine before controller, each with the rule that won) become edges of the walk's tiers beside the module graph: the modules of a member ordered after another are in diff --git a/02-DECISIONS/0282-a-fix-to-a-leaf-module-runs-healthy-on-every-node-within-five-minutes-of-its-merge-and-a-core-module-within-ten.md b/02-DECISIONS/0282-a-fix-to-a-leaf-module-runs-healthy-on-every-node-within-five-minutes-of-its-merge-and-a-core-module-within-ten.md index f0093172..74a8fe31 100644 --- a/02-DECISIONS/0282-a-fix-to-a-leaf-module-runs-healthy-on-every-node-within-five-minutes-of-its-merge-and-a-core-module-within-ten.md +++ b/02-DECISIONS/0282-a-fix-to-a-leaf-module-runs-healthy-on-every-node-within-five-minutes-of-its-merge-and-a-core-module-within-ten.md @@ -1,6 +1,6 @@ --- topic: the mesh -status: proposed +status: accepted date: 2026-10-10 deciders: jochen reconstructed: false 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 77b347f1..e18d384f 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 @@ -4,6 +4,7 @@ status: designed code: [] updated: 2026-10-10 decisions: + - 02-DECISIONS/0282-a-fix-to-a-leaf-module-runs-healthy-on-every-node-within-five-minutes-of-its-merge-and-a-core-module-within-ten.md - 02-DECISIONS/0276-merges-are-assembled-in-a-rolling-window-and-each-batch-is-delivered-by-one-walk-with-one-commit-per-repository.md - 02-DECISIONS/0270-a-held-delivery-that-moves-nothing-or-that-a-later-delivered-merge-contains-ends-by-itself-and-a-hold-whose-reason-is-gone-lifts.md - 02-DECISIONS/0250-a-merge-heard-only-from-the-buss-history-is-retired-and-owed-work-the-forge-cannot-do-ends.md @@ -160,10 +161,9 @@ controller's `plan-moved` event, never inferred from time. ## The delivery budget -*Proposed 2026-10-10 by [ADR 0282](../../02-DECISIONS/0282-a-fix-to-a-leaf-module-runs-healthy-on-every-node-within-five-minutes-of-its-merge-and-a-core-module-within-ten.md), -which awaits the operator's decision. Nothing in this section is in force until that record is accepted; then it -joins this document's decisions and replaces, where they differ, the window for every merge and the one walk at a -time above.* +*Decided 2026-10-10 by [ADR 0282](../../02-DECISIONS/0282-a-fix-to-a-leaf-module-runs-healthy-on-every-node-within-five-minutes-of-its-merge-and-a-core-module-within-ten.md). +Where it differs, this section replaces the window for every merge and the one walk at a time above, slice by +slice as each slice below is built; until a slice is built, the text above is what runs.* **The target.** A delivery's **delivery time** runs from its merge to every node of its deploy plan that is heard from running its modules' builds and reporting them healthy. A **leaf module's** delivery budget is five minutes;