From 92c38981ea36c0485b1bcb0dfb78906268ceb62c Mon Sep 17 00:00:00 2001 From: jochen Date: Thu, 5 Nov 2026 18:30:35 +0100 Subject: [PATCH] mesh-sdk's tests read mesh-contracts and mesh-delivery beside it (issue 1921) mesh-sdk compares its bootstrapped seat definitions with their contracts files, read beside it; the checker places both, at the group's head for a member, else at the trunk, for a check and for a group try alike. Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i --- modules/mesh-delivery-checker/internal/check/beside.go | 9 +++++++-- .../mesh-delivery-checker/internal/check/pins_test.go | 8 +++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/modules/mesh-delivery-checker/internal/check/beside.go b/modules/mesh-delivery-checker/internal/check/beside.go index d64b4c37..d0fa103c 100644 --- a/modules/mesh-delivery-checker/internal/check/beside.go +++ b/modules/mesh-delivery-checker/internal/check/beside.go @@ -29,18 +29,23 @@ const ( nodeEngineModule = "mesh-host" // networkingRepository holds route-proxy, whose manifest the node-engine's proofs of a composition read. networkingRepository = "novox/mesh-networking" + // contractsRepository and deliveryRepository hold the seat definitions mesh-sdk's bootstrapped seats are compared with: its + // tests read both beside it (beside.Dir "mesh-contracts" and "mesh-delivery"), at the group's head for a member, else at the + // trunk (a group try lays them out the same way: besideFor serves the check and the try). + contractsRepository = "novox/mesh-contracts" + deliveryRepository = DeliveryRepository ) // besideRules are the repositories each core repository's tests read, as the tests state it (mesh-sdk go/internal/beside // beside.go): the catalogue, the node-engine, the SDK, and the delivery's pinned forge dependencies (mesh-catalog // checks/deps). Which commit of each is besideCommit's rule. No repository's tests read the controller, which ended by its // unassignment (novox/hq ADR 0590, issue 1126), and its repository is emptied and archived (ADR 0593 §11), so it has no -// siblings placed either. The catalogue's tests read the node-engine since its composer command moved there (ADR 0593 +// siblings placed either. mesh-sdk reads mesh-contracts and mesh-delivery (its bootstrapped seats against their contracts files). The catalogue's tests read the node-engine since its composer command moved there (ADR 0593 // §7): mesh-build-go builds it for a compose ask. The node-engine's read mesh-networking since route-proxy's proofs of a // composition moved into them (ADR 0593). var besideRules = map[string][]string{ nodeEngineRepo: {catalogueRepository, SDKRepository, networkingRepository}, - SDKRepository: {catalogueRepository, nodeEngineRepo}, + SDKRepository: {catalogueRepository, nodeEngineRepo, contractsRepository, deliveryRepository}, catalogueRepository: {SDKRepository, nodeEngineRepo}, "novox/mesh-delivery": {SDKRepository, catalogueRepository}, } diff --git a/modules/mesh-delivery-checker/internal/check/pins_test.go b/modules/mesh-delivery-checker/internal/check/pins_test.go index 81a7616f..5c61971e 100644 --- a/modules/mesh-delivery-checker/internal/check/pins_test.go +++ b/modules/mesh-delivery-checker/internal/check/pins_test.go @@ -111,10 +111,16 @@ func TestTheSiblingsAreWhereTheTestsStateThem(t *testing.T) { // review D2, ADR } // Alone, mesh-sdk's tests read the catalogue's trunk, and the verdict names it. b = newBench(t) - b.ex.Trunks = trunksOf(t, map[string]string{SDKRepository: trunkS, catalogue: trunkA, host: trunkA2}) + const contracts = "novox/mesh-contracts" + b.ex.Trunks = trunksOf(t, map[string]string{SDKRepository: trunkS, catalogue: trunkA, host: trunkA2, contracts: trunkA, DeliveryRepository: trunkA2}) if out := b.judge(t, caseOf(t, pullOf(SDKRepository, 7, head1))); out.Beside[catalogue] != trunkA { t.Errorf("the siblings named for the verdict alone = %v, want the catalogue at its trunk %s", out.Beside, trunkA) } + // mesh-sdk's tests compare its bootstrapped seats with their contracts files, read beside it: mesh-contracts and + // mesh-delivery, at their trunks alone (a group try is placed by the same besideFor, so it lays them out the same way). + if got := besideOf(t, b, SDKRepository); got[contracts].Commit != trunkA || got[DeliveryRepository].Commit != trunkA2 { + t.Errorf("beside mesh-sdk alone = %+v, want mesh-contracts at %s and mesh-delivery at %s", got, trunkA, trunkA2) + } if c := besideOf(t, b, SDKRepository)[catalogue]; c.Commit != trunkA || c.Ref != "" { t.Errorf("the catalogue beside mesh-sdk alone = %+v, want its trunk %s", c, trunkA) }