From 66cf82e7b6768e4acd0089b01d20089a47fc82ff Mon Sep 17 00:00:00 2001 From: jochen Date: Fri, 6 Nov 2026 10:00:04 +0100 Subject: [PATCH] A catalogue change has every repository the node-engine's composer requires beside it (issue 1921, issue 1966) mesh-build-go's composer test builds the node-engine's composer from what lies beside, with nothing fetched; with mesh-sdk and the node-engine alone, its zero-version requirements on mesh-contracts (and mesh-delivery, mesh-networking) were looked up on the network and the group's fourth try failed. The quick fix, chosen: the catalogue's beside rule names them. The thorough fix, left: besideFor derives a built sibling's siblings from its go.mod's zero-version requirements. Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i --- .../mesh-delivery-checker/internal/check/beside.go | 6 ++++-- .../mesh-delivery-checker/internal/check/pins_test.go | 11 ++++++++--- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/modules/mesh-delivery-checker/internal/check/beside.go b/modules/mesh-delivery-checker/internal/check/beside.go index 0b8a584d..dd4359d1 100644 --- a/modules/mesh-delivery-checker/internal/check/beside.go +++ b/modules/mesh-delivery-checker/internal/check/beside.go @@ -41,12 +41,14 @@ const ( // 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. 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 +// §7): mesh-build-go builds it for a compose ask, and with it every repository its composer requires at the zero version +// (mesh-contracts, mesh-delivery, mesh-networking; issue 1921: with mesh-sdk alone beside, that build looked them up on the +// network and failed). 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, contractsRepository, deliveryRepository}, - catalogueRepository: {SDKRepository, nodeEngineRepo}, + catalogueRepository: {SDKRepository, nodeEngineRepo, contractsRepository, deliveryRepository, networkingRepository}, "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 a61b018f..cfef6a4b 100644 --- a/modules/mesh-delivery-checker/internal/check/pins_test.go +++ b/modules/mesh-delivery-checker/internal/check/pins_test.go @@ -199,7 +199,8 @@ func TestTheChangesOwnRepositoryIsBesideItAtItsTrunk(t *testing.T) { func TestACatalogueChangeHasTheCatalogueBesideItAtItsTrunk(t *testing.T) { hostRuns := strings.Repeat("7", 40) b := newBench(t) - b.ex.Trunks = trunksOf(t, map[string]string{catalogueRepository: trunkA, SDKRepository: trunkS, "novox/mesh-controller": trunkA2, nodeEngineRepo: trunkA2}) + b.ex.Trunks = trunksOf(t, map[string]string{catalogueRepository: trunkA, SDKRepository: trunkS, "novox/mesh-controller": trunkA2, nodeEngineRepo: trunkA2, + contractsRepository: trunkA2, deliveryRepository: trunkA2, networkingRepository: trunkA2}) b.ex.Runs = runsAt{nodeEngineModule: hostRuns} out := b.judge(t, caseOf(t, pullOf(catalogueRepository, 12, head1))) // ADR 0548 §6: the outcome names the siblings read at their trunk's head or the commit the mesh runs, never the @@ -211,8 +212,12 @@ func TestACatalogueChangeHasTheCatalogueBesideItAtItsTrunk(t *testing.T) { if c := got[catalogueRepository]; c.Commit != trunkA || c.Ref != "" { t.Fatalf("the catalogue beside its own change = %+v, want its trunk %s", c, trunkA) } - if _, ok := got[SDKRepository]; !ok { - t.Errorf("mesh-sdk is no longer beside a catalogue change: %v", got) + // Issue 1921: and every repository the node-engine's composer requires at the zero version, which mesh-build-go's + // composer test builds from what lies beside, with nothing fetched. + for _, repo := range []string{SDKRepository, contractsRepository, deliveryRepository, networkingRepository} { + if _, ok := got[repo]; !ok { + t.Errorf("%s is not beside a catalogue change: %v", repo, got) + } } if h := got[nodeEngineRepo]; h.Commit != hostRuns { t.Errorf("the node-engine beside a catalogue change = %+v, want the commit the mesh runs %s", h, hostRuns)