jschoubben
b85d65b53f
Merge remote-tracking branch 'origin/main' into feat/r4g
mesh/delivery superseded: a newer head of the same pull request
mesh/check failed: unit: git.novox.be/novox/mesh-catalog/chec… | b85d65b53f9e on 3bec357968da | judged by the candidate's mesh-build-go at f4ff9305030a
2026-10-23 17:18:51 +02:00
jschoubben
3bec357968
Merge pull request 'The forge module changes no repository's branch protection unless keep-main-rules is true (issue 1903)' ( #463 ) from fix/gitea-keep-main-rules into main
...
Reviewed-on: #463
2026-10-23 15:14:21 +00:00
jschoubben
b60077850d
Pin mesh-sdk at feat/r4g's head a2c813a6, its test fixture fix, with go.sum tidied
mesh/delivery superseded: a newer head of the same pull request
mesh/check failed: unit: git.novox.be/novox/mesh-catalog/chec… | b60077850dfb on 3bec357968da | judged by the candidate's mesh-build-go at 47bcc1b5810e
2026-10-23 17:06:11 +02:00
jschoubben
f08abb90d4
Pin the build modules to the mesh-sdk head whose puller says a poisoned ask and bounds a step from its start (issues 1907, 1887 review round 2)
2026-10-23 16:52:19 +02:00
jschoubben
a493c90c0d
Require node-tools in the three build modules, so the delivery plan puts the tool runner they pull asks through before them on every node (issue 1911)
2026-10-23 16:50:03 +02:00
jschoubben
a1febd3ad8
Say in gitea's comments that no controller status is written since R4g, so the merge waits on mesh/check alone (issue 1887, review round 2 item 6)
2026-10-23 16:47:57 +02:00
jschoubben
14b7158fc0
Run gofmt and go vet before the Go unit level's tests and give their time in its result, so a lint failure ends the level at once and the check's line can say what it cost (issue 1887 D7-go, review round 2 item 5; ADR 0529 §1)
2026-10-23 16:44:22 +02:00
jschoubben
0066b702f4
Merge remote-tracking branch 'origin/main' into feat/r4g
2026-10-23 16:30:55 +02:00
jschoubben
281909e83d
Keep nats on main's mesh-sdk pin: only its test subjects change in R4g, so the bus does not move (R4g)
2026-10-23 16:27:06 +02:00
jschoubben
d0a3a8ebc6
Record the checksums of mesh-sdk feat/r4g 9205222a for the group's modules (R4g)
2026-10-23 16:26:11 +02:00
jschoubben
2246ccc492
Pin mesh-sdk at feat/r4g's head 9205222a, the merge of lanes A, B, S8 and F1, so every module r4g touches builds against one SDK
...
go.sum gains its lines from go mod tidy once mesh-sdk feat/r4g is pushed.
2026-10-23 16:22:02 +02:00
jschoubben
93f4f67a8f
Merge branch 'feat/r4g-asks' into feat/r4g
2026-10-23 16:20:28 +02:00
jschoubben
ecd60fe074
Run gofmt and go vet with every build tag in each directory the Go unit level runs, so what the repositories' scripts checked is every repository's check (issue 1887 D7-go, ADR 0529 §1)
2026-10-23 16:16:37 +02:00
jschoubben
dd74d4adee
Restore the doc wording of the repositories program after dropping E1a (review round 1)
2026-10-23 16:10:19 +02:00
jschoubben
fa39738981
Revert "Swap hq's repo-check-alone rule to mesh/check like every main: nothing writes repo-check once build-agent goes (issue 1296, E1a)"
...
This reverts commit e4ec060ac7 .
2026-10-23 16:10:09 +02:00
jschoubben
3c5ff051de
Pin mesh-sdk at feat/r4g's head c3915ffb, the merge of lane B's layouts, so every r4g module builds against one SDK
...
go.sum gains its lines from go mod tidy once mesh-sdk feat/r4g is pushed.
2026-10-23 16:01:15 +02:00
jschoubben
3111546ff1
Ask the Node build seat a check with its levels, as the SDK's check job now carries them (issue 1887 A3node)
2026-10-23 15:59:31 +02:00
jschoubben
68dfca1057
Gate the token mint's main-rule write by keep-main-rules too
...
mesh/check pass 68dfca105794 on 3bec357968da | unit 4443 run, 0 kept, 15 skipped | integration 4483 run, 0 kept, 23 skipped | over bound: unit, integr…
The operator, 2026-10-23: "disable the gitea branch protection reset thing". setUpToolsAccount (run at every token mint) called ensureMainMerges regardless; it now does so only when the setting is true.
2026-10-23 15:57:44 +02:00
jschoubben
77f33d317f
Keep main's rules only when the setting keep-main-rules is true (default false)
...
The operator, 2026-10-23: "disable the gitea branch protection reset thing". The 10-minute tick and the start-time
ensureMainMerges, and the repositories sync's changes to existing repositories' main rules, now run only when the new
setting is true; new repositories are still made. The sync says in its outcome that rules were left.
2026-10-23 15:53:30 +02:00
jschoubben
2175b26c56
Merge pull request 'Move the gate's source.main for a merge heard only from the forge, so the checker judges on the trunk that is (issue 888)' ( #461 ) from fix/888-forge-merge-moves-source into main
...
Reviewed-on: #461
2026-10-23 13:49:17 +00:00
jschoubben
e21ccf1138
Merge pull request '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 ) from feat/fastcheck into main
...
Reviewed-on: #460
2026-10-23 13:49:17 +00:00
jschoubben
c304d3fb97
Pull the image build seat's asks beside the tools, at most the node's capacity (issue 1887 A3image, ADR 0525 §2-§6)
2026-10-23 15:40:43 +02:00
jschoubben
8356d30e1b
Pull the Node build seat's asks beside the tools, delivery first and at most the node's capacity (issue 1887 A3node, ADR 0525 §2-§6)
2026-10-23 15:39:30 +02:00
jschoubben
6e823d1f9b
Serve the Go build seat's verbs from the SDK's one form (issue 1887 A3go)
2026-10-23 15:38:19 +02:00
jschoubben
d0ba022d20
Stop hearing the retired build seats' events in gitea and the catalogue module, so no manifest consumes a seat nothing claims once node-build-agent goes (issue 1887 E2 with A9)
2026-10-23 15:37:17 +02:00
jschoubben
6bfdbc5758
Take the build agent and the toolchain images out of the catalogue's prose, and refuse the word where it comes back outside the one module still naming it (issue 1295, E6)
2026-10-23 15:34:11 +02:00
jschoubben
db937546ae
Pull the Go build seat's asks beside the tools, delivery first and at most the node's capacity, so no part chooses a node for a Go build or check (issue 1887 A3go, ADR 0525 §2-§6)
2026-10-23 15:33:24 +02:00
jschoubben
643de08882
Make the delivery gate ask the controller nothing of checks: no Check or Queue on the port, no checked event, no lost-check sweep, only mesh/check and the checker's verdict (issue 1318, E4a and E4b)
2026-10-23 15:24:13 +02:00
jschoubben
a252aae862
Make the build modules and the delivery parts core issue owners and drop build-agent (issue 1041, E3)
2026-10-23 15:12:21 +02:00
jschoubben
2038943c3e
Write no merge-check.sh in a new repository's first commit and announce none: tests run by convention (issue 1296, E1b)
2026-10-23 15:11:37 +02:00
jschoubben
e4ec060ac7
Swap hq's repo-check-alone rule to mesh/check like every main: nothing writes repo-check once build-agent goes (issue 1296, E1a)
2026-10-23 15:06:29 +02:00
jschoubben
ae8ab366a8
Remove the betterbird module: the operator unassigned it from g14 and shanks (issue 806, ADR 0379)
mesh/delivery failed: its walk failed, carrying its own commit: a gate on a first machine (what it carried put back), a build, a machine
mesh/check failed: integration: nats-tools/cmd/mesh-nats-snapshot.TestTheDeclaredDumpRunsInTheBussImage: image_test.go:141: docker run -d --rm --name …
2026-10-23 15:00:36 +02:00
jschoubben
e9ce56e838
Say in the test why the waits are 20 s: load, not a retry (issue 1404)
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
2026-10-23 14:58:14 +02:00
jschoubben
ee176b76ea
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
2026-10-23 14:56:04 +02:00
jschoubben
cf071270a0
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…
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.
2026-10-23 14:41:00 +02:00
jschoubben
8bc54a3e27
Merge remote-tracking branch 'origin/main' into fix/888-forge-merge-moves-source
mesh/delivery covered after its failure: a later walk that contains it was delivered: plan-1792763407391518822 (novox/mesh-catalog at 2175b26c into main,…
mesh/check failed: integration: nats-tools/cmd/mesh-nats-snapshot.TestTheDeclaredDumpRunsInTheBussImage: image_test.go:141: docker run -d --rm --name …
2026-10-23 14:17:34 +02:00
jschoubben
29f4a366c2
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 …
2026-10-23 14:16:40 +02:00
jschoubben
7ec760bca2
Compile the workspace's own mesh-build-go and run digest and test as it under runner workspace, so a change to this module is judged by its candidate (issue 1898 K1, K2)
...
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.
2026-10-23 14:15:22 +02:00
jschoubben
22f7a78503
Dissociate a workspace from the mirror after the fetch, so a shut-off step finds every object in the tree (issue 890 C2 follow-up)
2026-10-23 14:09:34 +02:00
jschoubben
3ff6a8b502
Download the go.mod directories side by side and verify a go.mod and go.sum pair once, so a fetch spends no minutes in serial go mod steps (issue 890, ADR 0536 s2)
2026-10-23 14:08:20 +02:00
jschoubben
24cbc8961e
Fetch a repository and its siblings through a bare mirror in the cache, updated under a lock, so a check transfers only new objects (issue 890, ADR 0536 s2)
2026-10-23 14:06:42 +02:00
jschoubben
547f4ee27d
Compile and run only the go.mod directories a selection lies in, and run them side by side up to a bound (issue 890, ADR 0536 s3)
2026-10-23 14:04:43 +02:00
jschoubben
47dbf87e33
Fold the siblings into a package digest only when its tests reach MESH_CHECK_BESIDE, so a sibling move keeps unrelated verdicts (issue 1896)
2026-10-23 14:02:59 +02:00
jschoubben
539a31103b
mesh-build-image: let the module's own guard decide whether the real-buildah tests run, so a check sandbox where rootless buildah cannot unshare skips them loudly instead of failing every catalogue check (issue 1894)
mesh/delivery-group group fix/1839-build-floor delivered: every member is delivered
mesh/check failed: g14: the check ran past its bound of 30m0s, stuck at: test the integration level of novox/mesh-catalog#458 on g14 | 539a31103b53 on…
2026-10-23 12:38:09 +02:00
jschoubben
dfcdf234c5
Never move source.main back for a forge-heard merge, by dating the head it holds (issue 888, review round 1)
...
A merge the gate handed is known by the bridge's word before the forge's, and finish wrote it already; an older forge-only
merge heard in between overwrote it, since only the forge's word was dated and the write never compared with the head held.
A merge is now dated by either word, and the write leaves a head that is a later merge, or one the gate cannot date while
the merge is older than the records it keeps (a pruned newer merge).
2026-10-23 12:36:58 +02:00
jschoubben
5bc9578634
Move source.main for a merge heard only from the forge, so the checker judges on the trunk that is (issue 888)
...
The checker reads the trunk only from the gate's source.main, and the gate moved it only in finish, for a merge it handed to
the forge bridge on an Approve. A pull request merged at the forge directly moved every other delivery's trunk (trunkMoved)
and left source.main behind, so the checker kept judging candidates on the trunk before it (catalogue 89e15c7b after
6c0024e4 , 2026-10-23).
settleForgeMerges now writes such a merge into source.main by compare-and-set, never a merge replayed as history or older
than one of its repository already heard; an approved delivery merged at the forge before the gate handed it is moved by
finish with its group, once.
2026-10-23 12:23:40 +02:00
jschoubben
3ca48ff230
Refuse build steps under a free-space floor and release workspaces, so the build modules stop filling a build node's disk (issue 1839)
...
mesh/delivery-group group fix/1839-build-floor checking: 1 of 2 member(s) ready
mesh/delivery superseded: a newer head of the same pull request
mesh/check failed: novox: the check ran past its bound of 30m0s, stuck at: test the unit level of novox/mesh-catalog#458 on novox | 3ca48ff23005 on 89…
mesh-build-go, mesh-build-node and mesh-build-image refuse every fetch, test
and build, and say unhealthy, while their work or cache filesystem has less
than 20 GiB free (build-agent's floor), so the builder chooses another node
instead of filling this one. Each serves build_<x>_release, removing a
workspace once its caller's last step answered; a failed fetch removes its
own; a workspace never released goes two hours after its last use (ADR 0509)
in place of a day, never while a step holds it. Pins mesh-sdk's
fix/1839-build-floor (buildstep.Floor, buildstep.Workspaces).
2026-10-23 12:17:58 +02:00
jschoubben
a2e5a20f52
mesh-build-node: write the install's registry credential in the account's home, never beneath the opened cache, and refuse to open a toolchain holding one (issue 1891 review, ADR 0533 §2)
mesh/delivery failed: its walk failed, carrying its own commit: a gate on a first machine (what it carried put back), a build, a machine
mesh/check failed: integration: meshbuildnode/cmd/mesh-build-node.TestAFixtureBundleBuiltTwiceHasOneDigest: build_integration_test.go:71: no toolchain…
2026-10-23 11:45:20 +02:00
jschoubben
845479d7cd
mesh-build-node: prove the npm download cache beside the toolchains stays its owner's (ADR 0533 §2)
2026-10-23 11:30:26 +02:00
jschoubben
2ebcb18097
realMachine: a change carrying a lock no release has installed runs with the toolchain installed last, and says so, so a lock change is not refused by its own check (issue 1891, ADR 0533 §3)
2026-10-23 11:23:11 +02:00