From 53b0e8d318a38bbc5ae65434c522fb5cb80eaa29 Mon Sep 17 00:00:00 2001 From: jochen Date: Tue, 3 Nov 2026 16:17:27 +0100 Subject: [PATCH] Genesis installs no catalog module: the catalogue step and the take of mesh-catalog go (ADR 0604 section 7, issue 774) --- internal/bootstrap/adopted.go | 2 +- internal/bootstrap/bootstrap.go | 9 +-------- internal/bootstrap/genesis_toolchains_test.go | 14 ++++++++++++-- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/internal/bootstrap/adopted.go b/internal/bootstrap/adopted.go index fdb5583..514ddd5 100644 --- a/internal/bootstrap/adopted.go +++ b/internal/bootstrap/adopted.go @@ -185,7 +185,7 @@ func (r Rewritten) declares(id string) bool { // container runtime's configuration whole — and neither is anything the operator installs later. var genesisTakes = map[string]bool{ RegistryModule: true, ControlPlaneModule: true, BuilderModule: true, - "postgres": true, BusModule: true, "mesh-vault": true, "mesh-catalog": true, + "postgres": true, BusModule: true, "mesh-vault": true, } // takeIfAdopted takes one of genesis's own modules on an adopted node, once it is assigned and diff --git a/internal/bootstrap/bootstrap.go b/internal/bootstrap/bootstrap.go index dbb2e08..425c9a4 100644 --- a/internal/bootstrap/bootstrap.go +++ b/internal/bootstrap/bootstrap.go @@ -64,7 +64,6 @@ const ( StepStore Step = "store" StepBroker Step = "broker" StepVault Step = "vault" - StepCatalogue Step = "catalogue" StepNetwork Step = "network" StepFilter Step = "filter" StepExtras Step = "extras" @@ -89,7 +88,7 @@ var Steps = []Step{ // Phase two. The twelve above make a mesh that RUNS; these make one that WORKS — able to // build, to say what it holds, on its network, filtering. They used to be things somebody // typed afterwards, which is how they went missing without anything complaining. - StepBase, StepStore, StepBroker, StepVault, StepCatalogue, StepNetwork, StepFilter, StepExtras, StepExport, + StepBase, StepStore, StepBroker, StepVault, StepNetwork, StepFilter, StepExtras, StepExport, } // Error is a failure, named by the step it happened in. @@ -750,12 +749,6 @@ func Run(ctx context.Context, o Options, d Deps, say func(string)) (Result, erro return result, failed(StepVault, err) } - // ---- 15. catalogue -------------------------------------------------------------------- - say("catalogue — the module graph: what is held, what a change reaches, what to rebuild") - if err := InstallFromCatalogue(ctx, o, permanentControl, "mesh-catalog", say); err != nil { - return result, failed(StepCatalogue, err) - } - // ---- 16. network ---------------------------------------------------------------------- say("network — the private network, and this machine's name on it") if err := PlaceOnTheNetwork(ctx, o, permanentControl, rewritten.BrokerAddress, say); err != nil { diff --git a/internal/bootstrap/genesis_toolchains_test.go b/internal/bootstrap/genesis_toolchains_test.go index cfae225..f1a81e3 100644 --- a/internal/bootstrap/genesis_toolchains_test.go +++ b/internal/bootstrap/genesis_toolchains_test.go @@ -13,14 +13,24 @@ import ( // stopped genesis at step 17: "this mesh holds no copy of it. Build mesh-tools-go first". // genesisModules is every catalogue module genesis installs on its own, read from the steps that -// install them: the registry, the build agent, the store, the bus, the vault, the catalogue and the +// install them: the registry, the build agent, the store, the bus, the vault and the // filter (extras are the operator's choice and come after the base too, but are not genesis's own). -var genesisModules = []string{RegistryModule, BuilderModule, "postgres", BusModule, "mesh-vault", "mesh-catalog", "nftables"} +var genesisModules = []string{RegistryModule, BuilderModule, "postgres", BusModule, "mesh-vault", "nftables"} // Every genesis module's bundles are compiled in a toolchain the base step builds, read from the real // catalogue's manifests: a module that gains a language genesis does not build fails here, not at a // genesis. func TestTheBaseStepBuildsEveryToolchainAGenesisModuleIsCompiledIn(t *testing.T) { + // ADR 0604 section 7: the catalog is the indexer's seat now, so genesis has no catalogue step and installs or takes no + // mesh-catalog module. + for _, step := range Steps { + if step == "catalogue" { + t.Fatal("genesis still has a catalogue step") + } + } + if genesisTakes["mesh-catalog"] { + t.Fatal("an adopted genesis still takes mesh-catalog") + } built := map[string]bool{} for _, tc := range genesisToolchains { built[tc.Language] = true