Say the unit level's gofmt and go vet time in the check's line, and pin the group's mesh-sdk head that carries it (issue 1887 D7-go, review round 2 item 5)

This commit is contained in:
2026-10-23 16:51:55 +02:00
parent d32ec6b7f8
commit d3561923aa
18 changed files with 70 additions and 26 deletions
+1 -1
View File
@@ -3,7 +3,7 @@ module mesh-delivery-assigner
go 1.26.0
require (
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023143646-fc4f57c4b3a3
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023145022-a9560890ee26
github.com/nats-io/nats-server/v2 v2.11.17
github.com/nats-io/nats.go v1.54.0
)
+2
View File
@@ -4,6 +4,8 @@ git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023143221-88fa74ce5e3c h1:+0PXXmcj
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023143221-88fa74ce5e3c/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023143646-fc4f57c4b3a3 h1:6X2ZM5dRQ3NnKKxT+6CCCBb636JOITLuRtTZ64rbvIQ=
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023143646-fc4f57c4b3a3/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023145022-a9560890ee26 h1:onj4dRQ/fZ+jA68ICqMgWOzTzbS4X1lj0If/GO0f1oc=
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023145022-a9560890ee26/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
github.com/antithesishq/antithesis-sdk-go v0.7.0-default-no-op h1:Z/MZK75wC/NSrkgqeNIa7jexam9uWzhLmFTSCPI/kn0=
github.com/antithesishq/antithesis-sdk-go v0.7.0-default-no-op/go.mod h1:FQyySiasQQM8735Ddel3MRojmy4dA1IqCeyJ5jmPMbI=
github.com/google/go-tpm v0.9.8 h1:slArAR9Ft+1ybZu0lBwpSmpwhRXaa85hWtMinMyRAWo=
+1 -1
View File
@@ -3,7 +3,7 @@ module mesh-delivery-builder
go 1.26.0
require (
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023143646-fc4f57c4b3a3
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023145022-a9560890ee26
github.com/nats-io/nats-server/v2 v2.11.17
github.com/nats-io/nats.go v1.54.0
)
+2
View File
@@ -4,6 +4,8 @@ git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023143221-88fa74ce5e3c h1:+0PXXmcj
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023143221-88fa74ce5e3c/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023143646-fc4f57c4b3a3 h1:6X2ZM5dRQ3NnKKxT+6CCCBb636JOITLuRtTZ64rbvIQ=
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023143646-fc4f57c4b3a3/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023145022-a9560890ee26 h1:onj4dRQ/fZ+jA68ICqMgWOzTzbS4X1lj0If/GO0f1oc=
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023145022-a9560890ee26/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
github.com/antithesishq/antithesis-sdk-go v0.7.0-default-no-op h1:Z/MZK75wC/NSrkgqeNIa7jexam9uWzhLmFTSCPI/kn0=
github.com/antithesishq/antithesis-sdk-go v0.7.0-default-no-op/go.mod h1:FQyySiasQQM8735Ddel3MRojmy4dA1IqCeyJ5jmPMbI=
github.com/google/go-tpm v0.9.8 h1:slArAR9Ft+1ybZu0lBwpSmpwhRXaa85hWtMinMyRAWo=
+1 -1
View File
@@ -3,7 +3,7 @@ module mesh-delivery-checker
go 1.26.0
require (
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023143646-fc4f57c4b3a3
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023145022-a9560890ee26
github.com/nats-io/nats-server/v2 v2.11.17
github.com/nats-io/nats.go v1.54.0
)
+2
View File
@@ -4,6 +4,8 @@ git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023143221-88fa74ce5e3c h1:+0PXXmcj
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023143221-88fa74ce5e3c/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023143646-fc4f57c4b3a3 h1:6X2ZM5dRQ3NnKKxT+6CCCBb636JOITLuRtTZ64rbvIQ=
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023143646-fc4f57c4b3a3/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023145022-a9560890ee26 h1:onj4dRQ/fZ+jA68ICqMgWOzTzbS4X1lj0If/GO0f1oc=
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023145022-a9560890ee26/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
github.com/antithesishq/antithesis-sdk-go v0.7.0-default-no-op h1:Z/MZK75wC/NSrkgqeNIa7jexam9uWzhLmFTSCPI/kn0=
github.com/antithesishq/antithesis-sdk-go v0.7.0-default-no-op/go.mod h1:FQyySiasQQM8735Ddel3MRojmy4dA1IqCeyJ5jmPMbI=
github.com/google/go-tpm v0.9.8 h1:slArAR9Ft+1ybZu0lBwpSmpwhRXaa85hWtMinMyRAWo=
@@ -189,6 +189,7 @@ func (t *target) stepArgs(args map[string]any) map[string]any {
type acc struct {
run, kept, skipped int
elapsed, setup float64
lint float64
over bool
slowest []TestTime
}
@@ -254,7 +255,7 @@ func (st *state) outcome(v delivery.Verdict) Outcome {
}
ms := func(s float64) int64 { return int64(s * 1000) }
u, i := st.levels[delivery.LevelUnit], st.levels[delivery.LevelIntegration]
v.Took = delivery.Took{Clone: st.clone.Milliseconds(), Unit: ms(u.elapsed), IntegrationSetup: ms(i.setup), IntegrationRun: ms(i.elapsed)}
v.Took = delivery.Took{Clone: st.clone.Milliseconds(), Unit: ms(u.elapsed), Lint: ms(u.lint), IntegrationSetup: ms(i.setup), IntegrationRun: ms(i.elapsed)}
for node := range st.nodes {
v.Machines = append(v.Machines, node)
}
@@ -470,7 +471,7 @@ func (st *state) level(ctx context.Context, t *target, la delivery.LevelAnswer)
if t.runner != "" {
t.judgedBy(res.JudgedBy)
}
elapsed += res.Elapsed + res.Setup
elapsed += res.Elapsed + res.Setup + res.Lint
if t.module == buildrun.NodeBuildModule {
if !res.NoTests {
a.run++ // a Node package is counted whole: its build module counts no tests (ADR 0484 clause 10)
@@ -482,6 +483,7 @@ func (st *state) level(ctx context.Context, t *target, la delivery.LevelAnswer)
}
a.elapsed += res.Elapsed
a.setup += res.Setup
a.lint += res.Lint
a.over = a.over || res.OverBound
if len(digests) > 0 {
if _, err := st.j.Kept.KeepPasses(ctx, t.pull.Repository, level, t.toolchain, res, digests, st.j.now()); err != nil {
@@ -179,7 +179,7 @@ func parts(v delivery.Verdict, cs *Case, p Pull, builds []BuildNote, slowest []s
for _, x := range []struct {
name string
ms int64
}{{"queue", t.Queue}, {"clone", t.Clone}, {"unit", t.Unit}, {"int setup", t.IntegrationSetup}, {"int run", t.IntegrationRun}} {
}{{"queue", t.Queue}, {"clone", t.Clone}, {"lint", t.Lint}, {"unit", t.Unit}, {"int setup", t.IntegrationSetup}, {"int run", t.IntegrationRun}} {
if x.ms > 0 {
times = append(times, x.name+" "+seconds(x.ms))
}
@@ -192,6 +192,9 @@ func parts(v delivery.Verdict, cs *Case, p Pull, builds []BuildNote, slowest []s
if t.Clone > 0 {
short = append(short, "clone "+seconds(t.Clone))
}
if t.Lint > 0 {
short = append(short, "lint "+seconds(t.Lint))
}
if t.Unit > 0 {
short = append(short, "unit "+seconds(t.Unit))
}
@@ -154,3 +154,26 @@ func TestTheCompositionsTimeAndMachinesAreSaidOnceTheAssignerReportsThem(t *test
t.Errorf("failed composition report = %q", r)
}
}
// 1887/D7-go, review round 2 item 5: the line says the unit level's gofmt and go vet time beside its tests'.
func TestTheLineSaysTheLintTime(t *testing.T) {
b := newBench(t)
test := b.test
b.test = func(c stepCall) (any, error) {
r, err := test(c)
if res, ok := r.(Tested); ok && res.Level == delivery.LevelUnit {
res.Lint = 1.5
return res, err
}
return r, err
}
out := b.judge(t, caseOf(t, pullOf(repoA, 7, head1)))
if out.Verdict.Took.Lint != 1500 {
t.Fatalf("took = %+v, want the lint's 1.5 s", out.Verdict.Took)
}
cs := caseOf(t, pullOf(repoA, 7, head1))
pc := parts(out.Verdict, cs, cs.Pulls[0], out.Builds, out.Slowest, out.Judged)
if !strings.Contains(pc.times, "lint 1.5s") || !strings.Contains(pc.shortTimes, "lint 1.5s") {
t.Errorf("times = %q, short %q, want the lint's time in both forms of the line", pc.times, pc.shortTimes)
}
}
@@ -71,22 +71,24 @@ type TestTime struct {
// Tested is the answer of a test step of either build module (the Go one names packages and counts tests; the Node one
// names the package directory as Module and counts none).
type Tested struct {
Level string `json:"level"`
Module string `json:"module,omitempty"`
Passed bool `json:"passed"`
Why string `json:"why,omitempty"`
NoTests bool `json:"no_tests,omitempty"`
Tests int `json:"tests"`
Skipped int `json:"skipped"`
Packages []GoPackage `json:"packages,omitempty"`
Elapsed float64 `json:"elapsed"`
Setup float64 `json:"setup,omitempty"`
Bound float64 `json:"bound"`
SetupBound float64 `json:"setup_bound,omitempty"`
Slowest []TestTime `json:"slowest,omitempty"`
Failed []Failure `json:"failed,omitempty"`
OverBound bool `json:"over_bound"`
OverWhich string `json:"over_which,omitempty"`
Level string `json:"level"`
Module string `json:"module,omitempty"`
Passed bool `json:"passed"`
Why string `json:"why,omitempty"`
NoTests bool `json:"no_tests,omitempty"`
Tests int `json:"tests"`
Skipped int `json:"skipped"`
Packages []GoPackage `json:"packages,omitempty"`
Elapsed float64 `json:"elapsed"`
Setup float64 `json:"setup,omitempty"`
// Lint is the unit level's gofmt and go vet time, before its tests (mesh-build-go, ADR 0529 §1).
Lint float64 `json:"lint,omitempty"`
Bound float64 `json:"bound"`
SetupBound float64 `json:"setup_bound,omitempty"`
Slowest []TestTime `json:"slowest,omitempty"`
Failed []Failure `json:"failed,omitempty"`
OverBound bool `json:"over_bound"`
OverWhich string `json:"over_which,omitempty"`
// JudgedBy is the program that ran the step (ADR 0535 §5): "installed", or "candidate <merge commit>" under runner
// workspace; absent from a build module that does not take the runner.
JudgedBy string `json:"judged_by,omitempty"`
+1 -1
View File
@@ -3,7 +3,7 @@ module mesh-delivery-indexer
go 1.26.0
require (
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023143646-fc4f57c4b3a3
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023145022-a9560890ee26
github.com/nats-io/nats-server/v2 v2.11.17
github.com/nats-io/nats.go v1.54.0
)
+2
View File
@@ -4,6 +4,8 @@ git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023143221-88fa74ce5e3c h1:+0PXXmcj
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023143221-88fa74ce5e3c/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023143646-fc4f57c4b3a3 h1:6X2ZM5dRQ3NnKKxT+6CCCBb636JOITLuRtTZ64rbvIQ=
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023143646-fc4f57c4b3a3/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023145022-a9560890ee26 h1:onj4dRQ/fZ+jA68ICqMgWOzTzbS4X1lj0If/GO0f1oc=
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023145022-a9560890ee26/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
github.com/antithesishq/antithesis-sdk-go v0.7.0-default-no-op h1:Z/MZK75wC/NSrkgqeNIa7jexam9uWzhLmFTSCPI/kn0=
github.com/antithesishq/antithesis-sdk-go v0.7.0-default-no-op/go.mod h1:FQyySiasQQM8735Ddel3MRojmy4dA1IqCeyJ5jmPMbI=
github.com/google/go-tpm v0.9.8 h1:slArAR9Ft+1ybZu0lBwpSmpwhRXaa85hWtMinMyRAWo=
+1 -1
View File
@@ -3,7 +3,7 @@ module mesh-delivery-teller
go 1.26.0
require (
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023143646-fc4f57c4b3a3
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023145022-a9560890ee26
github.com/nats-io/nats-server/v2 v2.11.17
github.com/nats-io/nats.go v1.54.0
)
+2
View File
@@ -4,6 +4,8 @@ git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023143221-88fa74ce5e3c h1:+0PXXmcj
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023143221-88fa74ce5e3c/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023143646-fc4f57c4b3a3 h1:6X2ZM5dRQ3NnKKxT+6CCCBb636JOITLuRtTZ64rbvIQ=
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023143646-fc4f57c4b3a3/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023145022-a9560890ee26 h1:onj4dRQ/fZ+jA68ICqMgWOzTzbS4X1lj0If/GO0f1oc=
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023145022-a9560890ee26/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
github.com/antithesishq/antithesis-sdk-go v0.7.0-default-no-op h1:Z/MZK75wC/NSrkgqeNIa7jexam9uWzhLmFTSCPI/kn0=
github.com/antithesishq/antithesis-sdk-go v0.7.0-default-no-op/go.mod h1:FQyySiasQQM8735Ddel3MRojmy4dA1IqCeyJ5jmPMbI=
github.com/google/go-tpm v0.9.8 h1:slArAR9Ft+1ybZu0lBwpSmpwhRXaa85hWtMinMyRAWo=
+1 -1
View File
@@ -3,7 +3,7 @@ module mesh-delivery-view
go 1.26.0
require (
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023143646-fc4f57c4b3a3
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023145022-a9560890ee26
github.com/nats-io/nats-server/v2 v2.11.17
github.com/nats-io/nats.go v1.54.0
)
+2
View File
@@ -4,6 +4,8 @@ git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023143221-88fa74ce5e3c h1:+0PXXmcj
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023143221-88fa74ce5e3c/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023143646-fc4f57c4b3a3 h1:6X2ZM5dRQ3NnKKxT+6CCCBb636JOITLuRtTZ64rbvIQ=
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023143646-fc4f57c4b3a3/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023145022-a9560890ee26 h1:onj4dRQ/fZ+jA68ICqMgWOzTzbS4X1lj0If/GO0f1oc=
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023145022-a9560890ee26/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
github.com/antithesishq/antithesis-sdk-go v0.7.0-default-no-op h1:Z/MZK75wC/NSrkgqeNIa7jexam9uWzhLmFTSCPI/kn0=
github.com/antithesishq/antithesis-sdk-go v0.7.0-default-no-op/go.mod h1:FQyySiasQQM8735Ddel3MRojmy4dA1IqCeyJ5jmPMbI=
github.com/google/go-tpm v0.9.8 h1:slArAR9Ft+1ybZu0lBwpSmpwhRXaa85hWtMinMyRAWo=
+1 -1
View File
@@ -3,7 +3,7 @@ module mesh-delivery-watchman
go 1.26.0
require (
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023143646-fc4f57c4b3a3
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023145022-a9560890ee26
github.com/nats-io/nats-server/v2 v2.11.17
github.com/nats-io/nats.go v1.54.0
)
+2
View File
@@ -4,6 +4,8 @@ git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023143221-88fa74ce5e3c h1:+0PXXmcj
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023143221-88fa74ce5e3c/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023143646-fc4f57c4b3a3 h1:6X2ZM5dRQ3NnKKxT+6CCCBb636JOITLuRtTZ64rbvIQ=
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023143646-fc4f57c4b3a3/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023145022-a9560890ee26 h1:onj4dRQ/fZ+jA68ICqMgWOzTzbS4X1lj0If/GO0f1oc=
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261023145022-a9560890ee26/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
github.com/antithesishq/antithesis-sdk-go v0.8.0-default-no-op h1:1BOWQJweNyvZMlpAHXGLiZQn9S+QXGcz3xh94lC0w6E=
github.com/antithesishq/antithesis-sdk-go v0.8.0-default-no-op/go.mod h1:FQyySiasQQM8735Ddel3MRojmy4dA1IqCeyJ5jmPMbI=
github.com/google/go-tpm v0.9.8 h1:slArAR9Ft+1ybZu0lBwpSmpwhRXaa85hWtMinMyRAWo=