Checks under 5 minutes (mesh-build-go): siblings only in the digests that read them, selected dirs in a pool, a mirror and verify once, and a change judged by its own build module (issues 1896, 890, 1898; ADR 0535, 0536) #460

Merged
jschoubben merged 10 commits from feat/fastcheck into main 2026-10-23 13:49:17 +00:00
Member

Design 47 milestone "checks under 5 minutes", one delivery group with mesh-sdk and mesh-delivery (branch feat/fastcheck). All in modules/mesh-build-go, but for two test-only fixes the group's own checks met.

  • 1896 (ADR 0536 §1): DigestVersion 4: a package's digest folds the siblings' commits in only when a reached in-tree file names MESH_CHECK_BESIDE, so a sibling's trunk move no longer invalidates every kept verdict.
  • 890 B (§3): integration setup compiles only the selected go.mod directories; levels run directories in a bounded pool (NumCPU/2), results merged in directory order.
  • 890 C (§2): a bare mirror per repository (mesh-sdk 2248b985's buildstep), dissociated after the fetch so the workspace stands alone; downloads in the pool; go mod verify once per go.mod+go.sum digest, only with the run steps shut off.
  • 1898 K1/K2 (ADR 0535): digest and test take runner: workspace: the installed module compiles the candidate's own mesh-build-go (GOPROXY=off) inside the isolation and runs the step with it; every answer carries judged_by.
  • Pins mesh-sdk/go 2248b985 (this group's mesh-sdk head).
  • Test guard (cf071270; the group's first check a5ea6d8de38e failed on it): the bus's docker tests in modules/nats/cmd/mesh-nats-snapshot asked only whether a docker program exists; the checker's shut-off integration level binds /usr but not /run, so the program was found and docker run failed. needDocker now also asks the daemon, skips loudly where none answers and fails where MESH_REQUIRE_DOCKER=1 (merge-check.sh's docker step). Related to the bus-container tests in merge checks (the tracker's 1823).
  • issue 1404 (ee176b76, e9ce56e8; met a second time in the group's check 35629fe35dc8): the gate's real-bus tests in modules/mesh-delivery-gate wait 20 s instead of 5 s for an event, for a loaded build node; a failed first ask returns only after the gate's 30 s askAgainAfter, which the bound deliberately does not cover.

Under ADR 0535 §2 this group's own check is judged by the installed (old) build module, once.

Reviewed-by: review-fastcheck-r2@shanks at e9ce56e838 (cf071270..e9ce56e8; the rest reviewed by review-fastcheck@shanks at 29f4a366c2)
Pushed-by: lead-47@shanks

Design 47 milestone "checks under 5 minutes", one delivery group with mesh-sdk and mesh-delivery (branch feat/fastcheck). All in modules/mesh-build-go, but for two test-only fixes the group's own checks met. - 1896 (ADR 0536 §1): DigestVersion 4: a package's digest folds the siblings' commits in only when a reached in-tree file names MESH_CHECK_BESIDE, so a sibling's trunk move no longer invalidates every kept verdict. - 890 B (§3): integration setup compiles only the selected go.mod directories; levels run directories in a bounded pool (NumCPU/2), results merged in directory order. - 890 C (§2): a bare mirror per repository (mesh-sdk 2248b985's buildstep), dissociated after the fetch so the workspace stands alone; downloads in the pool; go mod verify once per go.mod+go.sum digest, only with the run steps shut off. - 1898 K1/K2 (ADR 0535): digest and test take `runner: workspace`: the installed module compiles the candidate's own mesh-build-go (GOPROXY=off) inside the isolation and runs the step with it; every answer carries judged_by. - Pins mesh-sdk/go 2248b985 (this group's mesh-sdk head). - Test guard (cf071270; the group's first check a5ea6d8de38e failed on it): the bus's docker tests in modules/nats/cmd/mesh-nats-snapshot asked only whether a docker program exists; the checker's shut-off integration level binds /usr but not /run, so the program was found and `docker run` failed. needDocker now also asks the daemon, skips loudly where none answers and fails where MESH_REQUIRE_DOCKER=1 (merge-check.sh's docker step). Related to the bus-container tests in merge checks (the tracker's 1823). - issue 1404 (ee176b76, e9ce56e8; met a second time in the group's check 35629fe35dc8): the gate's real-bus tests in modules/mesh-delivery-gate wait 20 s instead of 5 s for an event, for a loaded build node; a failed first ask returns only after the gate's 30 s askAgainAfter, which the bound deliberately does not cover. Under ADR 0535 §2 this group's own check is judged by the installed (old) build module, once. Reviewed-by: review-fastcheck-r2@shanks at e9ce56e8386100a93e4fc5178f5e3ba13462cb04 (cf071270..e9ce56e8; the rest reviewed by review-fastcheck@shanks at 29f4a366c25e87ca8505570aedb486ce6bc8983d) Pushed-by: lead-47@shanks
mesh-tools added 7 commits 2026-10-23 12:22:29 +00:00
The checker asks runner workspace when a merge changes modules/mesh-build-go; the step's
shut-off process now takes a step spec (digest, unit, integration) and every answer says
judged_by. ADR 0535 §1, §3, §5.
Pin mesh-build-go to mesh-sdk 2248b985, the group's final SDK head with the 0.1.16 version (issues 890, 1899)
mesh/delivery superseded: a newer head of the same pull request
mesh/delivery-group group feat/fastcheck rejected: composed together: the checker's verdict at the members' heads (a5ea6d8de38e): integration: nats-tools/cmd/m…
mesh/check failed: integration: nats-tools/cmd/mesh-nats-snapshot.TestTheDeclaredDumpRunsInTheBussImage: image_test.go:141: docker run -d --rm --name …
29f4a366c2
Author
Member

Delivery novox/mesh-catalog@e9ce56e83861 — delivered since 2026-10-23T14:14:41Z

Delivery plan — builds mesh-build-go → g14, novox, shanks; no bus step

  • tier 0: mesh-build-go
  • g14: receives mesh-build-go
  • novox: receives mesh-build-go
  • shanks: receives mesh-build-go
  • grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before mesh-build-go is judged on its first machine

Group feat/fastcheck: novox/mesh-catalog@e9ce56e838, novox/mesh-delivery@4ffe5f4d52, novox/mesh-sdk@2248b985bf

  • composed together: pass — the checker's verdict at the members' heads (1fe60855ad13)

Machines

  • mesh-build-go on every machine running it: sent
  • mesh-delivery-checker on every machine running it: sent
  • mesh-sdk on every machine running it: sent
  • mesh-tools on every machine running it: sent
  • audit-logger on every machine running it: sent
  • baserow on every machine running it: sent
  • bazarr on every machine running it: sent
  • bookshelf on every machine running it: sent
  • confluence on every machine running it: sent
  • gitea on every machine running it: sent
  • gitlab on every machine running it: sent
  • grafana on every machine running it: sent
  • home-assistant on every machine running it: sent
  • icecast on every machine running it: sent
  • influxdb on every machine running it: sent
  • jackett on every machine running it: sent
  • jira on every machine running it: sent
  • kometa on every machine running it: sent
  • lab on every machine running it: sent
  • letta on every machine running it: sent
  • lidarr on every machine running it: sent
  • mesh-catalog on every machine running it: sent
  • model-usage on every machine running it: sent
  • mosquitto on every machine running it: sent
  • netcheck on every machine running it: sent
  • nextcloud on every machine running it: sent
  • nodered on every machine running it: sent
  • ombi on every machine running it: sent
  • openai-consumer on every machine running it: sent
  • radarr on every machine running it: sent
  • redis on every machine running it: sent
  • route-adapter on every machine running it: sent
  • searxng on every machine running it: sent
  • showcase on every machine running it: sent
  • sonarr on every machine running it: sent
  • tautulli on every machine running it: sent
  • umami on every machine running it: sent
  • unifi on every machine running it: sent
  • zsh on every machine running it: sent

Transitions

  • 2026-10-23 12:58 (new) → proposed (announced): novox/mesh-catalog#460's head announced
  • 2026-10-23 13:25 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
  • 2026-10-23 13:25 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
  • 2026-10-23 13:49 ready → proposed (trunk moved): out of date: judged against trunk 89e15c7bcd, the trunk is now 08442b95cbeb; judged again on a recheck or when it is merged
  • 2026-10-23 13:49 proposed → held (merged-unchecked): merged without a passing check — a verdict known with it is taken first: only a person decides that it goes on
  • 2026-10-23 13:52 held → delivering (release): the operator merged #460 by hand at the forge (15:49) after its group check passed at 15:25 and the operator's Approve at 15:29 was refused only for the gate's stale trunk (issue 888); the re-check after mesh-sdk #72's merge was still pending
  • 2026-10-23 14:14 delivering → delivered (done): its walk is done, carrying its own commit: every machine of its deploy plan passed, or was left as its policy says

The commit's note under refs/notes/mesh-plan keeps every transition: git log --notes=mesh-plan.

<!-- mesh-delivery:view --> **Delivery** `novox/mesh-catalog@e9ce56e83861` — **delivered** since 2026-10-23T14:14:41Z **Delivery plan** — builds mesh-build-go → g14, novox, shanks; no bus step - tier 0: mesh-build-go - g14: receives mesh-build-go - novox: receives mesh-build-go - shanks: receives mesh-build-go - grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before mesh-build-go is judged on its first machine **Group** `feat/fastcheck`: novox/mesh-catalog@e9ce56e83861, novox/mesh-delivery@4ffe5f4d5243, novox/mesh-sdk@2248b985bfac - composed together: pass — the checker's verdict at the members' heads (1fe60855ad13) **Machines** - mesh-build-go on every machine running it: sent - mesh-delivery-checker on every machine running it: sent - mesh-sdk on every machine running it: sent - mesh-tools on every machine running it: sent - audit-logger on every machine running it: sent - baserow on every machine running it: sent - bazarr on every machine running it: sent - bookshelf on every machine running it: sent - confluence on every machine running it: sent - gitea on every machine running it: sent - gitlab on every machine running it: sent - grafana on every machine running it: sent - home-assistant on every machine running it: sent - icecast on every machine running it: sent - influxdb on every machine running it: sent - jackett on every machine running it: sent - jira on every machine running it: sent - kometa on every machine running it: sent - lab on every machine running it: sent - letta on every machine running it: sent - lidarr on every machine running it: sent - mesh-catalog on every machine running it: sent - model-usage on every machine running it: sent - mosquitto on every machine running it: sent - netcheck on every machine running it: sent - nextcloud on every machine running it: sent - nodered on every machine running it: sent - ombi on every machine running it: sent - openai-consumer on every machine running it: sent - radarr on every machine running it: sent - redis on every machine running it: sent - route-adapter on every machine running it: sent - searxng on every machine running it: sent - showcase on every machine running it: sent - sonarr on every machine running it: sent - tautulli on every machine running it: sent - umami on every machine running it: sent - unifi on every machine running it: sent - zsh on every machine running it: sent **Transitions** - 2026-10-23 12:58 (new) → proposed (announced): novox/mesh-catalog#460's head announced - 2026-10-23 13:25 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit - 2026-10-23 13:25 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail - 2026-10-23 13:49 ready → proposed (trunk moved): out of date: judged against trunk 89e15c7bcda6, the trunk is now 08442b95cbeb; judged again on a recheck or when it is merged - 2026-10-23 13:49 proposed → held (merged-unchecked): merged without a passing check — a verdict known with it is taken first: only a person decides that it goes on - 2026-10-23 13:52 held → delivering (release): the operator merged #460 by hand at the forge (15:49) after its group check passed at 15:25 and the operator's Approve at 15:29 was refused only for the gate's stale trunk (issue 888); the re-check after mesh-sdk #72's merge was still pending - 2026-10-23 14:14 delivering → delivered (done): its walk is done, carrying its own commit: every machine of its deploy plan passed, or was left as its policy says The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
jschoubben added 1 commit 2026-10-23 12:41:03 +00:00
Skip the docker tests where the daemon is unreachable, not only where the binary is missing
mesh/delivery superseded: a newer head of the same pull request
mesh/check failed: integration: mesh-delivery-gate/cmd/mesh-delivery-gate.TestAPassingVerdictAsksTheApproveAndItsApproveMergesWithinSecondsOverARealBu…
cf071270a0
The checker's integration level runs shut off, so docker is found but its daemon
is not, and TestTheDeclaredDumpRunsInTheBussImage failed the group check on g14
(issue 1823). MESH_REQUIRE_DOCKER=1 still fails.
jschoubben added 1 commit 2026-10-23 12:56:07 +00:00
Wait 20 s, not 5 s, for each step of the gate's path over the bus: a loaded build node failed the ask wait twice (issue 1404)
mesh/delivery superseded: a newer head of the same pull request
mesh/check checking ee176b76ea3c on 89e15c7bcda6 | novox/mesh-catalog#460 in group feat/fastcheck
ee176b76ea
jschoubben added 1 commit 2026-10-23 12:58:17 +00:00
Say in the test why the waits are 20 s: load, not a retry (issue 1404)
mesh/delivery delivered
mesh/delivery-group group feat/fastcheck delivered: every member is delivered
mesh/check checking e9ce56e83861 on e21ccf113842 | novox/mesh-catalog#460 in group feat/fastcheck
e9ce56e838
jschoubben scheduled this pull request to auto merge when all checks succeed 2026-10-23 13:44:47 +00:00
jschoubben merged commit e21ccf1138 into main 2026-10-23 13:49:17 +00:00
jschoubben deleted branch feat/fastcheck 2026-10-23 13:49:18 +00:00
Sign in to join this conversation.
No Reviewers
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-catalog#460