Compare commits

...
3 Commits
Author SHA1 Message Date
jschoubben 91f82cd38e Design 47: a group's own merge in order asks nothing again (ADR 0395 §1, review)
mesh/merge-gate head 91f82cd38eff merged into trunk b9af4e373dc0 — pass: the change touches no module of the mesh's graph
mesh/repo-check head 91f82cd38eff merged into trunk b9af4e373dc0 — pass: its merge-check.sh passed
mesh/delivery ready: it delivers once merged
2026-10-16 13:32:39 +02:00
jschoubben a65e1076a2 Design 47: a pull request that no longer merges cleanly is told, not checked (ADR 0395 §2)
mesh/merge-gate head a65e1076a2e5 merged into trunk b9af4e373dc0 — pass: the change touches no module of the mesh's graph
mesh/repo-check head a65e1076a2e5 merged into trunk b9af4e373dc0 — pass: its merge-check.sh passed
mesh/delivery superseded: a newer head of the same pull request
2026-10-16 11:42:03 +02:00
jschoubben 09ec150bd6 Design 47: a move of the trunk asks every active check again, one at a time per pull request (ADR 0395, issue 888)
mesh/delivery superseded: a newer head of the same pull request
mesh/merge-gate error: the check could not run: killed by hand
mesh/repo-check error: the check could not run: killed by hand
2026-10-16 11:40:14 +02:00
@@ -4,6 +4,7 @@ status: in-progress
code: [mesh-controller, mesh-catalog modules/mesh-delivery]
updated: 2026-10-16
decisions:
- "ADR 0395"
- "ADR 0382"
- "ADR 0350"
- "ADR 0335"
@@ -389,6 +390,20 @@ only once it is built.
A group's state is derived from its members and its composed check, and is shown, never stored apart from
them.
## A move of the trunk asks every check again
*ADR 0395, changing ADR 0323 §4.* When the forge's holder hears a repository's trunk move, mesh-delivery asks the
check of every active open pull request into that trunk against its new head at once, so a verdict is current by
the time anyone looks. A pull request whose head no longer merges cleanly into the new head is not checked: the
forge says so without a builder, its statuses fail naming the conflict, and it is told once on the pull request;
its author's next push asks its check. A pull request has at most one check at a time: a check against an older trunk commit,
waiting or running, is dropped or ended when a newer one is asked for it, as a new head already ends its old head's
check (issue 726). The build queue keeps delivery builds first; then checks of pull requests marked ready, then the
rest, the most recently pushed first. A pull request with no push and no ready mark for 7 days is left out until a
push, a ready mark or a recheck wakes it. A recheck also takes a delivery that is still proposed (issue 888). A move made by a delivery group's own member merging in the group's order asks neither the
group's composed check nor its other members again (ADR 0323 §6).
## What every transition does
In this order, each by its owner: