diff --git a/modules/mesh-delivery-forge-bridge/forgemsg/forge.go b/modules/mesh-delivery-forge-bridge/forgemsg/forge.go index bf640bd0..21e83f3f 100644 --- a/modules/mesh-delivery-forge-bridge/forgemsg/forge.go +++ b/modules/mesh-delivery-forge-bridge/forgemsg/forge.go @@ -11,11 +11,13 @@ import ( "regexp" "strings" - "git.novox.be/novox/mesh-sdk/go/delivery" + "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" + "git.novox.be/novox/mesh-delivery/sdk/trunk" + "git.novox.be/novox/mesh-sdk/go/keys" ) // Version is the version of every value this package writes and the only one it reads: mesh-sdk's delivery values'. -const Version = delivery.Version +const Version = keys.Version // ForgeStream is the forge bridge's stream as its manifest declares it; the broker derives the real names. const ForgeStream = "forge" @@ -156,8 +158,8 @@ type Forge struct { // that group with its approved head, this one included (novox/hq ADR 0633 §4): the forge bridge sets both from the // gate's merges state, and the indexer gathers the group's merges until the group's end (ForgeGroupEnd). A merge // with no group carries neither, and an older bridge sends neither; an older reader ignores both. - Group string `json:"group,omitempty"` - Members []delivery.Head `json:"members,omitempty"` + Group string `json:"group,omitempty"` + Members []meshdeliveryclient.Head `json:"members,omitempty"` } // checkGroup refuses a group on anything but a merged message, a group without its members or members without a @@ -187,7 +189,7 @@ func (f Forge) checkGroup() error { return fmt.Errorf("delivery: the group %q names its member %s twice", f.Group, k) } seen[k] = true - self = self || (delivery.SameRepository(m.Repository, f.Repository) && m.Number == f.Number) + self = self || (trunk.SameRepository(m.Repository, f.Repository) && m.Number == f.Number) } if !self { return fmt.Errorf("delivery: the members of the group %q leave out the merged pull request %s#%d", f.Group, f.Repository, f.Number) @@ -395,7 +397,7 @@ func checkName(kind, name string) error { return nil } -// decode reads a value of Version, refusing another or none with delivery.ErrUnknownVersion, as mesh-sdk delivery's +// decode reads a value of Version, refusing another or none with keys.ErrUnknownVersion, as mesh-sdk delivery's // values are read. func decode(data []byte, into any) error { var probe struct { @@ -405,10 +407,10 @@ func decode(data []byte, into any) error { return fmt.Errorf("delivery: value is not JSON: %w", err) } if probe.V == nil { - return fmt.Errorf("%w: no version in the value, this reader reads %d", delivery.ErrUnknownVersion, Version) + return fmt.Errorf("%w: no version in the value, this reader reads %d", keys.ErrUnknownVersion, Version) } if *probe.V != Version { - return fmt.Errorf("%w: the value is version %d, this reader reads %d", delivery.ErrUnknownVersion, *probe.V, Version) + return fmt.Errorf("%w: the value is version %d, this reader reads %d", keys.ErrUnknownVersion, *probe.V, Version) } if err := json.Unmarshal(data, into); err != nil { return fmt.Errorf("delivery: value does not fit its shape: %w", err) diff --git a/modules/mesh-delivery-forge-bridge/forgemsg/forge_test.go b/modules/mesh-delivery-forge-bridge/forgemsg/forge_test.go index 1ee2382a..9f2262cd 100644 --- a/modules/mesh-delivery-forge-bridge/forgemsg/forge_test.go +++ b/modules/mesh-delivery-forge-bridge/forgemsg/forge_test.go @@ -6,7 +6,8 @@ import ( "strings" "testing" - "git.novox.be/novox/mesh-sdk/go/delivery" + "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" + "git.novox.be/novox/mesh-sdk/go/keys" ) const oddManifest = "{\n\t\"module\": \"a\",\n \"z\": 1, \"a\": [ \"x\",\"y\" ],\n \"why\": \"é — & \\n\"\n}\n\n" @@ -20,7 +21,7 @@ func sampleForges() []Forge { {Kind: ForgeOpen, Open: []OpenPull{{Repository: "novox/mesh-sdk", Number: 36}, {Repository: "novox/mesh-control", Number: 7}}}, // 1585/T1: a group member's merged message names its group and every approved member (ADR 0633 §4). {Kind: ForgeMerged, Repository: "novox/mesh-sdk", Number: 37, Head: "dddd", Merge: "eeee", Root: "t0", - Group: "feat/take-in", Members: []delivery.Head{{Repository: "novox/mesh-sdk", Number: 37, Head: "dddd"}, {Repository: "novox/mesh-delivery", Number: 9, Head: "ffff"}}}, + Group: "feat/take-in", Members: []meshdeliveryclient.Head{{Repository: "novox/mesh-sdk", Number: 37, Head: "dddd"}, {Repository: "novox/mesh-delivery", Number: 9, Head: "ffff"}}}, } } @@ -107,8 +108,8 @@ func TestForge(t *testing.T) { "group end": func(b []byte) error { _, err := DecodeForgeGroupEnd(b); return err }, } { for _, in := range []string{`{"group":"g"}`, `{"v":2,"group":"g"}`} { - if err := dec([]byte(in)); !errors.Is(err, delivery.ErrUnknownVersion) { - t.Errorf("%s decode of %s = %v, want delivery.ErrUnknownVersion", name, in, err) + if err := dec([]byte(in)); !errors.Is(err, keys.ErrUnknownVersion) { + t.Errorf("%s decode of %s = %v, want keys.ErrUnknownVersion", name, in, err) } } } @@ -158,7 +159,7 @@ func TestForge(t *testing.T) { {"open with locks", "only the open", Forge{Kind: ForgeOpen, Locks: map[string]map[string]string{"a": {"go.sum": "h"}}}}, // 1585/T1: a group only on a merged message, with its members, the message's own pull request among them. {"pull with a group", "only a merged message names its delivery group", at(0, func(f *Forge) { - f.Group, f.Members = "g", []delivery.Head{{Repository: "novox/mesh-sdk", Number: 36, Head: "aaaa"}} + f.Group, f.Members = "g", []meshdeliveryclient.Head{{Repository: "novox/mesh-sdk", Number: 36, Head: "aaaa"}} })}, {"merged with a group and no members", "together", at(4, func(f *Forge) { f.Members = nil })}, {"merged with members and no group", "together", at(4, func(f *Forge) { f.Group = "" })}, diff --git a/modules/mesh-delivery-forge-bridge/forgemsg/go.mod b/modules/mesh-delivery-forge-bridge/forgemsg/go.mod index f54fcd87..05e4246f 100644 --- a/modules/mesh-delivery-forge-bridge/forgemsg/go.mod +++ b/modules/mesh-delivery-forge-bridge/forgemsg/go.mod @@ -3,3 +3,8 @@ module git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forge go 1.26.0 require git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261104002338-5a38a1221659 + +require ( + git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/sdk v0.0.0-00010101000000-000000000000 +)