Recognise a trunk build by repository identity and an empty ref in the indexer and the view (issue 1281) #6

Merged
mesh-tools merged 1 commits from fix/1281-trunk-builds-by-repository into main 2026-10-19 20:58:08 +00:00
Member

Issue 1281: the indexer wrote no module fingerprint at a trunk merge, because a build record names its repository by clone URL and a build a delivery plan asked after a merge carries no ref. The indexer (Builds.Modules, Builds.Module) and the view (fingerprintRows) now use mesh-sdk's SameRepository and BuildRecord.IsTrunkBuild.

Needs mesh-sdk pull request 40 first (same branch name, one delivery group); both go.mod pins are set to its head 680a78bae270 and go.sum is tidy. No vendor directory.

Acceptance criteria and tests:

  • 1281/AC3: TestMergeWritesEveryModuleTheLiveRecordsNameInTheRepository (indexer, live-captured records: no ref, clone URL; a module of mesh-media-catalog is not written)
  • 1281/AC4: TestChangedDirectoryMapsToTheModuleItsLiveRecordNamesByPath (indexer, Builds.Module by path)
  • 1281/AC5: TestAPlanAskedBuildWithNoRefIsATrunkBuild (view, live-captured record with no ref: same)
  • 1281/AC6 is the live check after delivery.

Fixtures: copied from mesh-controller.command builds on 2026-10-19 about 21:20 local; each test file says which fields came from the listing and which (path, source-inputs) from elsewhere. The view's older test helper trunkBuild now writes source-inputs with the fingerprint, as the controller does.

Reviewed-by: review-1281@shanks at 4b8e71370c

Issue 1281: the indexer wrote no module fingerprint at a trunk merge, because a build record names its repository by clone URL and a build a delivery plan asked after a merge carries no ref. The indexer (Builds.Modules, Builds.Module) and the view (fingerprintRows) now use mesh-sdk's `SameRepository` and `BuildRecord.IsTrunkBuild`. Needs mesh-sdk pull request 40 first (same branch name, one delivery group); both go.mod pins are set to its head 680a78bae270 and go.sum is tidy. No vendor directory. Acceptance criteria and tests: - 1281/AC3: `TestMergeWritesEveryModuleTheLiveRecordsNameInTheRepository` (indexer, live-captured records: no ref, clone URL; a module of mesh-media-catalog is not written) - 1281/AC4: `TestChangedDirectoryMapsToTheModuleItsLiveRecordNamesByPath` (indexer, Builds.Module by path) - 1281/AC5: `TestAPlanAskedBuildWithNoRefIsATrunkBuild` (view, live-captured record with no ref: same) - 1281/AC6 is the live check after delivery. Fixtures: copied from `mesh-controller.command builds` on 2026-10-19 about 21:20 local; each test file says which fields came from the listing and which (path, source-inputs) from elsewhere. The view's older test helper `trunkBuild` now writes source-inputs with the fingerprint, as the controller does. Reviewed-by: review-1281@shanks at 4b8e71370cc2fb4fb795511ba8dcce9b50b538df
Author
Member

Delivery novox/mesh-delivery@4b8e71370cc2 — delivered since 2026-10-19T21:23:49Z

Delivery plan — builds mesh-delivery-indexer, mesh-delivery-view → novox, shanks; no bus step

  • tier 0: mesh-delivery-indexer, mesh-delivery-view
  • novox: receives mesh-delivery-indexer
  • shanks: receives mesh-delivery-view
  • 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-delivery-view is judged on its first machine

Group fix/1281-trunk-builds-by-repository: novox/mesh-delivery@4b8e71370c, novox/mesh-sdk@84a7643723

  • composed together: pass — every machine composes with the change as it did without (4 of 4 compose)

Machines

  • mesh-delivery-indexer on every machine running it: sent
  • mesh-delivery-view 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-19 20:40 (new) → proposed (announced): novox/mesh-delivery#6's head announced
  • 2026-10-19 20:45 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
  • 2026-10-19 20:45 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
  • 2026-10-19 20:59 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
  • 2026-10-19 20:59 published → delivering (go): its walk started: let go by this owner in its group's order, by a person, or on the controller's own path — not a failed walk that carried a later commit for it, after which it waits for a walk of its own commit
  • 2026-10-19 21:23 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-delivery@4b8e71370cc2` — **delivered** since 2026-10-19T21:23:49Z **Delivery plan** — builds mesh-delivery-indexer, mesh-delivery-view → novox, shanks; no bus step - tier 0: mesh-delivery-indexer, mesh-delivery-view - novox: receives mesh-delivery-indexer - shanks: receives mesh-delivery-view - 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-delivery-view is judged on its first machine **Group** `fix/1281-trunk-builds-by-repository`: novox/mesh-delivery@4b8e71370cc2, novox/mesh-sdk@84a764372337 - composed together: pass — every machine composes with the change as it did without (4 of 4 compose) **Machines** - mesh-delivery-indexer on every machine running it: sent - mesh-delivery-view 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-19 20:40 (new) → proposed (announced): novox/mesh-delivery#6's head announced - 2026-10-19 20:45 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit - 2026-10-19 20:45 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail - 2026-10-19 20:59 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move - 2026-10-19 20:59 published → delivering (go): its walk started: let go by this owner in its group's order, by a person, or on the controller's own path — not a failed walk that carried a later commit for it, after which it waits for a walk of its own commit - 2026-10-19 21:23 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`.
Author
Member

Merge check at f0fa629f
Judged: head f0fa629fa496 merged into trunk fa4be27c1e40

  • mesh/merge-gate: FAIL — head f0fa629fa4 does not merge cleanly into trunk fa4be27c1e: in conflict modules/mesh-delivery-indexer/go.mod, modules/mesh-delivery-indexer/go.sum
  • mesh/repo-check: FAIL — head f0fa629fa4 does not merge cleanly into trunk fa4be27c1e: in conflict modules/mesh-delivery-indexer/go.mod, modules/mesh-delivery-indexer/go.sum

Delivery plan — builds mesh-delivery-indexer, mesh-delivery-view → novox, shanks; no bus step

  • tier 0: mesh-delivery-indexer, mesh-delivery-view
  • novox: receives mesh-delivery-indexer
  • shanks: receives mesh-delivery-view
  • 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-delivery-view is judged on its first machine
  • read by no module's build: modules/mesh-delivery-indexer/internal/index/live_builds_test.go, modules/mesh-delivery-view/internal/view/fingerprints_test.go

Run by the build seat on shanks as build-1792441376405411706 (builds --log build-1792441376405411706).

head f0fa629fa496 does not merge cleanly into trunk fa4be27c1e40: in conflict modules/mesh-delivery-indexer/go.mod, modules/mesh-delivery-indexer/go.sum
**Merge check** at `f0fa629f` Judged: head `f0fa629fa496` merged into trunk `fa4be27c1e40` - `mesh/merge-gate`: **FAIL** — head f0fa629fa496 does not merge cleanly into trunk fa4be27c1e40: in conflict modules/mesh-delivery-indexer/go.mod, modules/mesh-delivery-indexer/go.sum - `mesh/repo-check`: **FAIL** — head f0fa629fa496 does not merge cleanly into trunk fa4be27c1e40: in conflict modules/mesh-delivery-indexer/go.mod, modules/mesh-delivery-indexer/go.sum **Delivery plan** — builds mesh-delivery-indexer, mesh-delivery-view → novox, shanks; no bus step - tier 0: mesh-delivery-indexer, mesh-delivery-view - novox: receives mesh-delivery-indexer - shanks: receives mesh-delivery-view - 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-delivery-view is judged on its first machine - read by no module's build: modules/mesh-delivery-indexer/internal/index/live_builds_test.go, modules/mesh-delivery-view/internal/view/fingerprints_test.go Run by the build seat on shanks as `build-1792441376405411706` (`builds --log build-1792441376405411706`). ``` head f0fa629fa496 does not merge cleanly into trunk fa4be27c1e40: in conflict modules/mesh-delivery-indexer/go.mod, modules/mesh-delivery-indexer/go.sum ```
Author
Member

mesh-delivery: not merged. This pull request's checks passed at f0fa629fa4, and now its check failed: head f0fa629fa4 does not merge cleanly into trunk fa4be27c1e: in conflict modules/mesh-delivery-indexer/go.mod, modules/mesh-delivery-indexer/go.sum (head f0fa629fa4 merged into trunk fa4be27c1e). A new head, or a recheck that passes, asks the operator again.

mesh-delivery: **not merged.** This pull request's checks passed at f0fa629fa4966655cbb9d691976ed5d87763d178, and now its check failed: head f0fa629fa496 does not merge cleanly into trunk fa4be27c1e40: in conflict modules/mesh-delivery-indexer/go.mod, modules/mesh-delivery-indexer/go.sum (head f0fa629fa496 merged into trunk fa4be27c1e40). A new head, or a recheck that passes, asks the operator again.
jschoubben added 1 commit 2026-10-19 20:39:57 +00:00
Recognise a trunk build by repository identity and an empty ref in the indexer and the view (issue 1281)
mesh/repo-check head 4b8e71370cc2 merged into trunk fa4be27c1e40 — pass: its merge-check.sh passed
mesh/merge-gate head 4b8e71370cc2 merged into trunk fa4be27c1e40 — pass: group fix/1281-trunk-builds-by-repository composed: every machine composes with th…
mesh/delivery delivered
mesh/delivery-group group fix/1281-trunk-builds-by-repository delivered: every member is delivered
4b8e71370c
Build records name their repository by clone URL and a plan-asked build has no ref, so no module fingerprint was ever written or compared; both now use the SDK's tests.
jschoubben force-pushed fix/1281-trunk-builds-by-repository from f0fa629fa4 to 4b8e71370c 2026-10-19 20:39:57 +00:00 Compare
mesh-tools merged commit 6a23627426 into main 2026-10-19 20:58:08 +00:00
mesh-tools deleted branch fix/1281-trunk-builds-by-repository 2026-10-19 20:58:08 +00:00
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-delivery#6