Design 47: no status is required on any repository, so hq's Python checks go after the delivery (ADR 0534), and ADR 0529 is named
This commit is contained in:
@@ -5,6 +5,8 @@ code: [mesh-controller, mesh-catalog modules/mesh-delivery, mesh-delivery, mesh-
|
||||
updated: 2026-10-23
|
||||
decisions:
|
||||
- "ADR 0536"
|
||||
- "ADR 0534"
|
||||
- "ADR 0529"
|
||||
- "ADR 0530"
|
||||
- "ADR 0528"
|
||||
- "ADR 0527"
|
||||
@@ -386,10 +388,10 @@ From its delivery, a check is this:
|
||||
- **hq is checked like any repository, by Go tests.** hq's four checks (records, the reading order's index, the development cycle and
|
||||
the words) are Go tests in one package at hq's root module, which holds no other Go code; the checker runs them through the Go build
|
||||
module at the unit level and within its bound (ADR 0527 §1, §4). The checker's exception for hq goes: an hq pull request gets a verdict
|
||||
and `mesh/check` like any other, the forge requires `mesh/check` on hq's trunk in place of `mesh/repo-check`, and, with build-agent
|
||||
removed, no part writes `mesh/repo-check` for any repository (ADR 0527 §2). hq's own pull request in R4g's group is judged by the script
|
||||
on hq's main, run as today, so it adds the Go tests beside the Python checks; once the delivery is done and hq's trunk requires `mesh/check`,
|
||||
a small fix deletes the Python checks and `merge-check.sh` (ADR 0527 §3, issue 1296).
|
||||
and `mesh/check` like any other, and, with build-agent removed, no part writes `mesh/repo-check` for any repository (ADR 0527 §2 as ADR 0534 §1
|
||||
changes it: the forge requires no status on any repository, and the checks gate the Approve and the merge tool instead). hq's own pull
|
||||
request in R4g's group is judged by the script on hq's main, run as today, so it adds the Go tests beside the Python checks; once the
|
||||
delivery is done, a small fix deletes the Python checks and `merge-check.sh` (ADR 0527 §3 as ADR 0534 §7 changes it, issue 1296).
|
||||
- **What the status says.** Its line says the verdict, the tests run and kept at each level, the machines
|
||||
composed, and how long each part took: waiting in the queue, cloning, the unit level, the integration level's
|
||||
setup and its running, and the composition. A failure names the test or the machine first. The line links to
|
||||
@@ -827,7 +829,7 @@ release reports the controller's code lines against research 063's baseline (acc
|
||||
| R4d | Four modules stop being built from a Dockerfile: route-proxy, nats, n8n and mail's autoconfiguration module (automx, replaced by a Go program), each rework its own release step, nats in a delivery of its own; free between R4a and R4e and never in the same delivery as another release (ADR 0452, ADR 0453 clauses 13, 14, 16) | — | mesh-catalog, mesh-controller (route-proxy), the node-engine (`mesh-host`: n8n's supplementary group) | the four image reworks, opened when it is prepared |
|
||||
| R4e | The controller asks no build: a build is keyed by its fingerprint, the new form becomes the only one as one group, and a merge builds nothing its check built; builders fetch over SSH, so an SDK change ships with its users; the vendored copies leave mesh-controller and mesh-sdk; delivered only once the builder's artifact digests equal build-agent's (ADR 0453 clauses 2, 4, 5, 6) | 16, 2, 4 in part | mesh-controller (builds are no longer asked), mesh-delivery (builder), mesh-sdk | 979 (the installed toolchains; closed with the toolchain images in R4g), 1304, the controller asking no build (opened when it is prepared) |
|
||||
| R4f | A pull request carries one required status that says what it proved and how long each part took; the controller's composing check and its replays are deleted with the two old statuses; the controller's deletions R3e makes possible go; each level's times are measured, and a bound fails a repository from the first check that meets it (ADR 0447, ADR 0450 §8, ADR 0453 clauses 4, 9, 10) | 21, 22, 23, 24 (the status; the scripts' absence is proved in R4g) | mesh-delivery (checker, assigner), mesh-controller (composing check, replays, `delivery-plan`, `forget-checks`, the asker `mesh-delivery` deleted), mesh-catalog (gitea) | 1299 (the composing check deleted; closes issue 709, the replays' socket), 1300, 1301, 1302 (one status), 1305 (ADR 0482 §8), 1318 |
|
||||
| R4g | The last milestone of release 4 and release 5 as one, with one switch-over and no rehearsal (ADR 0524 §1): builds and checks are asks on streams that each build node pulls when it has a free slot, deliveries first, with nothing holding checks and no controller queue (ADR 0525); the assigner is made with its composition check, writes each node's wants compared with what the controller sends and every difference, and the view answers the asks that need no proof of who answered (ADR 0528, ADR 0437 §10); no module's fingerprint takes the builder (ADR 0530); the scripts of the repositories a module is built from, build-agent with its socket and Dockerfile code, the toolchain images and the controller's build code go, and the builder delivers its own module, the build modules and the controller from its keys (ADR 0453 clauses 5, 8, 10; ADR 0524 §5, §7); the ways to deliver without the builder are recorded (ADR 0526); hq's four checks are Go tests (ADR 0527); the word for the composition check's predecessor is struck. Its pull requests are opened only after five readings, the revert path read, not shown on a test merge (ADR 0524 §3) | 4 (from R4g mesh-build-image, rootless, is the only part that builds an image: ADR 0487 §7), 17, 24 (no `merge-check.sh` in a repository a module is built from) | mesh-sdk, mesh-controller (build-agent removed), mesh-delivery, mesh-catalog, mesh-tools, mesh-tools-go, the node-engine (`mesh-host`), mesh-media-catalog, okioki, hq | 1887 (the flow), 1297 (the assigner), 1295 (`merge-check.sh` goes), 979 (closed with the toolchain images), 1296 and 1303 (hq's check, the old word struck), 1299, 1305, 1294, 1318 (the controller's deletions) |
|
||||
| R4g | The last milestone of release 4 and release 5 as one, with one switch-over and no rehearsal (ADR 0524 §1): builds and checks are asks on streams that each build node pulls when it has a free slot, deliveries first, with nothing holding checks and no controller queue (ADR 0525); the assigner is made with its composition check, writes each node's wants compared with what the controller sends and every difference, and the view answers the asks that need no proof of who answered (ADR 0528, ADR 0437 §10); no module's fingerprint takes the builder (ADR 0530); the scripts of the repositories a module is built from, build-agent with its socket and Dockerfile code, the toolchain images and the controller's build code go, and the builder delivers its own module, the build modules and the controller from its keys (ADR 0453 clauses 5, 8, 10; ADR 0524 §5, §7); the ways to deliver without the builder are recorded (ADR 0526); hq's four checks are Go tests (ADR 0527); each repository's script goes (ADR 0529); the word for the composition check's predecessor is struck. Its pull requests are opened only after five readings, the revert path read, not shown on a test merge (ADR 0524 §3) | 4 (from R4g mesh-build-image, rootless, is the only part that builds an image: ADR 0487 §7), 17, 24 (no `merge-check.sh` in a repository a module is built from) | mesh-sdk, mesh-controller (build-agent removed), mesh-delivery, mesh-catalog, mesh-tools, mesh-tools-go, the node-engine (`mesh-host`), mesh-media-catalog, okioki, hq | 1887 (the flow), 1297 (the assigner), 1295 (`merge-check.sh` goes), 979 (closed with the toolchain images), 1296 and 1303 (hq's check, the old word struck), 1299, 1305, 1294, 1318 (the controller's deletions) |
|
||||
| R6 | Each node applies from its wants, a new version reaches the module's canary first and the rest once it is healthy there, and the plans are deleted from the code | 18, 19 | the node-engine (`mesh-host`: the node agent), mesh-controller (plans deleted), mesh-delivery (the gate's delivery states go) | opened when it is prepared |
|
||||
|
||||
Release 5 (the assigner's wants, compared only) is not a milestone of its own: ADR 0524 §1 folds it into R4g, whose row above holds
|
||||
|
||||
Reference in New Issue
Block a user