From b07e741c41c594a10fc2fd96b80844ba0d8e404c Mon Sep 17 00:00:00 2001 From: jochen Date: Thu, 22 Oct 2026 18:07:37 +0200 Subject: [PATCH] =?UTF-8?q?Say=20in=20the=20controller=20seat's=20verbs=20?= =?UTF-8?q?what=20R4e=20removes=20and=20what=20the=20checker=20now=20does?= =?UTF-8?q?=20(R4e,=20dev-r4e-controller's=20request=20via=20the=20lead;?= =?UTF-8?q?=20ADR=200501=20=C2=A75,=20ADR=200503=20=C2=A73,=20ADR=200429?= =?UTF-8?q?=20=C2=A718)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit build, rebuild, forget-checks and delivery-plan stay listed, refused by name; replay is a dry run only; delivery-check asks nothing; try is the checker's. --- go/catalogue/verbs.go | 78 ++++++++++++------------------------------- 1 file changed, 22 insertions(+), 56 deletions(-) diff --git a/go/catalogue/verbs.go b/go/catalogue/verbs.go index 17e417a..266bac6 100644 --- a/go/catalogue/verbs.go +++ b/go/catalogue/verbs.go @@ -147,24 +147,16 @@ var ControllerVerbs = []Verb{ }, nil, "data")}, // The verbs the delivery's owner asks with (novox/hq ADR 0239): the planner's answer, a group's order and // composed check, and the start and end of a walk. Callable by a person too; mesh-delivery is who needs them. - {Name: "delivery-plan", Description: "The delivery plan of a diffset, as the planner computes it and keeping " + - "nothing (novox/hq ADR 0239): what it moves and builds after them in tiers, what each machine receives and " + - "what waits there, the steps that are not an ordinary send, and whether the gate would run.", - Input: schema(map[string]string{"repository": "owner/repository", "head": "the commit at hand", - "base": "the branch it merges into (default main)", - "paths": "the files it changes, comma-separated, from the repository's root", - "module-dirs": "the directories holding a module.json at the head, comma-separated, as the forge says them", - "removed": "the files among paths it deletes, comma-separated"}, []string{"repository", "paths"})}, + {Name: "delivery-plan", Description: "Removed in R4e (ADR 0501 §5 / ADR 0503 §3): refused by name, naming its replacement", + Input: schema(nil, nil)}, {Name: "delivery-order", Description: "A delivery group's order (novox/hq ADR 0419): its members in the order " + "they are delivered, every pair and why — built by, verb before caller, version skew, engine before " + "controller — read from the module graph and the manifests' change alone; no `after:` line is read. The " + "cycle, with every module and edge of it, is the one refusal.", Input: schema(map[string]string{"members": "the members, as JSON: [{id, repository, base, head, number, paths, " + "module_dirs, module_dirs_said, removed}]"}, []string{"members"})}, - {Name: "delivery-check", Description: "Ask the build seat for a delivery group's composed check (novox/hq ADR " + - "0239): every member's head laid over the mesh in turn and judged as one future state. Answers the ask's id; " + - "the verdict is said as `checked` with the group's id. With one member and no group, that head is checked " + - "again as its pull request is.", + {Name: "delivery-check", Description: "Answers that the checker (mesh-delivery-checker) judges a group (novox/hq " + + "ADR 0503 §3); asks nothing. Its inputs stay, since hq's repository check still names it (ADR 0513 §4).", Input: schema(map[string]string{"group": "the group's id (none for one head checked again)", "members": "the members, as JSON, as delivery-order takes them", "ready": "\"true\" when the pull request is marked ready: its check is queued before every other check (novox/hq ADR 0406 §3)"}, @@ -378,45 +370,33 @@ var ControllerVerbs = []Verb{ {Name: "clear", Description: "Cancel every waiting ask in the build queue — and with dead, every dead one too — each " + "recorded failed, cancelled by hand. Never touches one in flight.", Input: schema(map[string]string{"dead": "\"true\" to cancel the dead asks as well"}, nil, "dead")}, - {Name: "rebuild", Description: "Ask a module's current source again under a new id — the branch it follows — or, given a " + - "build's id, that build's repository, path and ref. A module a plan holds unbuilt or failed joins that plan. Answers the new id.", - Input: schema(map[string]string{"what": "a module's name, or a build's id"}, []string{"what"})}, - {Name: "replay", Description: "Ask a recorded build's repository and path again at the commit it built, under a new id. " + - "A dry run unless register: nothing recorded or registered. Registering is refused when a newer build of the module " + - "is registered — it would roll the older commit out (novox/hq issue 207) — unless older says so.", - Input: schema(map[string]string{ - "id": "the build's id", - "register": "\"true\" to register what it builds", - "older": "\"true\", with register: even though a newer build of the module is registered", - }, []string{"id"}, "register", "older")}, + {Name: "rebuild", Description: "Removed in R4e (ADR 0501 §5 / ADR 0503 §3): refused by name, naming its replacement", + Input: schema(nil, nil)}, + {Name: "replay", Description: "Ask a recorded build's repository and path again at the commit it built, under a new id: " + + "a dry run only, nothing recorded or registered (novox/hq ADR 0429 §18: a fingerprint's key is built again by the " + + "builder, never registered by hand).", + Input: schema(map[string]string{"id": "the build's id"}, []string{"id"})}, // novox/hq issue 686: a builder ran a branch's store tests for the first time in its pull request's merge check. - {Name: "try", Description: "Try a pushed branch or commit before its pull request (novox/hq issue 686): the build " + - "seat merges it into the repository's trunk and runs the repository's own merge-check.sh on the merge, in the " + - "toolchain containers and against the throwaway store and bus a pull request's merge check gets. Answers at " + + {Name: "try", Description: "Try a pushed branch or commit before its pull request (novox/hq issue 686): the " + + "checker (mesh-delivery-checker) merges the head onto the repository's trunk and runs its levels on the merge, " + + "as it judges a pull request (ADR 0503 §3); no merge-check.sh is run and build-agent is not asked. Answers at " + "once with an id; asked again with that id it waits up to 20 s and answers pass, fail or error, how long it " + "took and the lines naming what failed — or that it is still waiting or running, to ask again. Sets no " + - "status on the forge, registers and builds nothing, runs no merge gate, counts as a check in the build queue " + - "(after deliveries and after every pull request's check, however long it waits) and is bounded as one. One " + - "try of a commit at a time — a second ask answers the first's id — and at most four waiting or running in " + - "all: a fifth is refused. Only for a repository of the mesh; the ref must be on the forge.", + "status on the forge, registers and builds nothing for delivery. One try of a commit at a time — a second " + + "ask answers the first's id. Only for a repository of the mesh; the ref must be on the forge.", Input: schema(map[string]string{ "repository": "the repository on the forge, owner/name; with ref", "ref": "the branch or commit to try, as pushed to the forge", - "base": "the branch it is merged into (the repository's default branch when none is named). The " + - "merge-check.sh that runs is that branch's, never the ref's own: the same trust as a pull request's base", + "base": "the branch it is merged into (the repository's default branch when none is named)", "tests": "only the tests this `go test -run` pattern names, where the repository's merge-check.sh reads " + "MESH_CHECK_TESTS; a script that does not runs whole", - "store-only": "\"true\": only the repository's store tests, where its merge-check.sh reads " + - "MESH_CHECK_STORE_ONLY", - "id": "instead of a repository: the id a try answered, to read what came of it", + "store-only": "\"true\": only the integration level", + "id": "instead of a repository: the id a try answered, to read what came of it", }, nil, "store-only"), Replaces: []string{"sh merge-check.sh", "docker run postgres"}}, // novox/hq ADR 0350 §5: asked by the delivery's owner when the forge says a pull request closed unmerged. - {Name: "forget-checks", Description: "Let go of every build a pull request's merge checks made for its merge in " + - "the artifact store's scratch namespace (novox/hq ADR 0350 §5): asked when it closed unmerged; a merged one's go " + - "when the walk answering its merge ends, and any check build goes after a week.", - Input: schema(map[string]string{"owner": "the repository's owner", "repo": "the repository", - "number": "the pull request's number"}, []string{"owner", "repo", "number"})}, + {Name: "forget-checks", Description: "Removed in R4e (ADR 0501 §5 / ADR 0503 §3): refused by name, naming its replacement", + Input: schema(nil, nil)}, {Name: "kill", Description: "End a build where it runs: the machine that took it stops its commands and containers and " + "announces it failed, killed by hand — settled, never handed to another machine.", Input: schema(map[string]string{"id": "the build's id"}, []string{"id"})}, @@ -595,22 +575,8 @@ var ControllerVerbs = []Verb{ "machine": "one machine (optional)", "retired": "\"true\": only what is retired", }, nil, "retired")}, - // Three shapes, as the command has them: one repository, every module standing on a base (on), or - // every module behind its source (behind). One per call; a second is refused as passed over. - {Name: "build", Description: "Have the build machine build a repository — or, instead, every module that " + - "stands on a base (on), or every module behind its source (behind). Answers at once with each build's id: " + - "`builds` with an id follows it line by line, and a module is registered when its outcome comes.", - Input: schema(map[string]string{ - "repository": "the repository's URL, or its path on the forge holding the git seat (owner/name); " + - "needed unless on or behind is given", - "path": "with repository: the module's directory inside it (optional)", - "ref": "with repository: the branch, tag or commit to build (optional)", - "on": "instead of a repository: a module's name. Every module the mesh holds that was built against " + - "its artifacts is built again from its own source, bases among them asked first — the rebuild a " + - "changed base needs, which behind does not see because their sources did not move", - "behind": "\"true\", instead of a repository: build every module the mesh holds whose source has moved " + - "past the commit it was built from, bases asked first", - }, nil, "behind")}, + {Name: "build", Description: "Removed in R4e (ADR 0501 §5 / ADR 0503 §3): refused by name, naming its replacement", + Input: schema(nil, nil)}, // What the records say the registries may keep, asked on demand (novox/hq ADR 0251, to-be 51). {Name: "artifacts", Description: "Every artifact the mesh recorded making that lives in its artifact store, " + "each with its repository, digest, kind (image or archive) and state: kept — and why: a definition names " +