diff --git a/go/catalogue/own_manifest_test.go b/go/catalogue/own_manifest_test.go index b509c86..2096a9f 100644 --- a/go/catalogue/own_manifest_test.go +++ b/go/catalogue/own_manifest_test.go @@ -6,10 +6,9 @@ import ( "testing" ) -// mesh-sdk's own manifest is judged by the controller that runs when it is checked, and that controller reads it -// strictly: a manifest word ships one release ahead of its first user. R4e's group is judged by today's controller -// (novox/hq ADR 0503 §4), which does not know `paths` (ADR 0499), so mesh-sdk's lib names no paths until a release -// after R4e's delivery adds them back (ADR 0499 §6, issue 1758). +// mesh-sdk's own manifest declares its two packages (design 32, SDK-10): the TypeScript `lib` and the Go `go`, built +// from the directory go, each in series 0.1, so the Go build module publishes mesh-sdk's Go package through the Go seat +// (design 51). Its words are judged by the group's own indexer, delivered with them (ADR 0621 §4). func TestOwnManifestUsesNoWordTheRunningControllerRefuses(t *testing.T) { raw, err := os.ReadFile("../../module.json") if err != nil { @@ -22,11 +21,19 @@ func TestOwnManifestUsesNoWordTheRunningControllerRefuses(t *testing.T) { if m.Build == nil || len(m.Build.Artifacts) == 0 { t.Fatal("mesh-sdk's module.json declares no artifact") } + packages := map[string]Artifact{} for _, a := range m.Build.Artifacts { - if a.Paths != nil { - t.Errorf("artifact %q names paths %v: the running controller refuses the word until R4e is delivered", a.Name, a.Paths) + packages[a.Language] = a + if a.Kind != ArtifactPackage || a.Series != DefaultSeries { + t.Errorf("artifact %q is a %s in series %q, want a package in %s", a.Name, a.Kind, a.Series, DefaultSeries) } } + if g := packages["go"]; g.Name != "go" || !slices.Equal(g.Paths, []string{"go"}) { + t.Errorf("mesh-sdk's Go package is %+v, want go built from go", g) + } + if l := packages["typescript"]; l.Name != "lib" || l.Paths != nil { + t.Errorf("mesh-sdk's TypeScript package is %+v", l) + } // What a reader reads (novox/hq ADR 0614 §4): the baseline is the contract of mesh-sdk f02f142, which every running // node-engine was built with, and this contract reads all of it; the words added since are the only ones it lacks. diff --git a/module.json b/module.json index bf74eb7..6836a21 100644 --- a/module.json +++ b/module.json @@ -4,7 +4,8 @@ "slug": "sdk", "build": { "artifacts": [ - { "name": "lib", "kind": "package", "language": "typescript" } + { "name": "lib", "kind": "package", "language": "typescript", "series": "0.1" }, + { "name": "go", "kind": "package", "language": "go", "paths": ["go"], "series": "0.1" } ] }, "resources": []