From 4169faf3f090571b4efe79a21f71d800f85fc0bc Mon Sep 17 00:00:00 2001 From: jochen Date: Sun, 25 Oct 2026 01:31:53 +0200 Subject: [PATCH] =?UTF-8?q?mesh-delivery-checker:=20report=20a=20lint=20fi?= =?UTF-8?q?nding=20as=20the=20lint=20step's=20failure=20(ADR=200542=20?= =?UTF-8?q?=C2=A72);=20pin=20mesh-sdk's=20try=20speed-up=20head=20with=20m?= =?UTF-8?q?ain=20in=20it=20in=20the=20checker=20and=20the=20indexer=20(iss?= =?UTF-8?q?ue=201921)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/mesh-delivery-checker/go.mod | 2 +- modules/mesh-delivery-checker/go.sum | 2 ++ .../internal/check/ask_all_test.go | 19 +++++++++++++++++++ .../internal/check/judge.go | 6 +++++- .../internal/check/results.go | 3 +++ modules/mesh-delivery-indexer/go.mod | 2 +- modules/mesh-delivery-indexer/go.sum | 2 ++ 7 files changed, 33 insertions(+), 3 deletions(-) diff --git a/modules/mesh-delivery-checker/go.mod b/modules/mesh-delivery-checker/go.mod index 144298d..1492439 100644 --- a/modules/mesh-delivery-checker/go.mod +++ b/modules/mesh-delivery-checker/go.mod @@ -3,7 +3,7 @@ module mesh-delivery-checker go 1.26.0 require ( - git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261024232250-9b408db24a58 + git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261024232922-99407c37df95 github.com/nats-io/nats-server/v2 v2.11.17 github.com/nats-io/nats.go v1.54.0 ) diff --git a/modules/mesh-delivery-checker/go.sum b/modules/mesh-delivery-checker/go.sum index 6880727..b14ed2f 100644 --- a/modules/mesh-delivery-checker/go.sum +++ b/modules/mesh-delivery-checker/go.sum @@ -4,6 +4,8 @@ git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261024231716-571ac521f053 h1:8Kbp3aJG git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261024231716-571ac521f053/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY= git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261024232250-9b408db24a58 h1:4Damtdqlf6u6nJhvMA99peDy1jmjixtcwFXJ4bWEkLk= git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261024232250-9b408db24a58/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY= +git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261024232922-99407c37df95 h1:I8zbgGzRjmgYydPTWo8hmaZW/P/g+qGDUfu3E32/pkU= +git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261024232922-99407c37df95/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= diff --git a/modules/mesh-delivery-checker/internal/check/ask_all_test.go b/modules/mesh-delivery-checker/internal/check/ask_all_test.go index 93de817..7364104 100644 --- a/modules/mesh-delivery-checker/internal/check/ask_all_test.go +++ b/modules/mesh-delivery-checker/internal/check/ask_all_test.go @@ -75,3 +75,22 @@ func TestTheCloneTimeTakesTheLongestLevelOffNotTheSum(t *testing.T) { t.Errorf("clone = %d ms, want 500 (2 s less the longest level's 1.5 s): %+v", v.Took.Clone, v) } } + +// ADR 0542 §2: a lint finding, which the Go build module marks as the lint step's, is reported as the lint step's failure, +// not as the unit level's. +func TestALintFindingIsTheLintStepsFailure(t *testing.T) { + b := newBench(t) + b.test = func(c stepCall) (any, error) { + r := captured[Tested](t, "go-test-slow") + r.Level, _ = c.args["level"].(string) + if r.Level == delivery.LevelUnit { + r.Passed = false + r.Failed = []Failure{{Package: ".", Test: "gofmt", Step: "lint", Output: "not as gofmt writes them (run gofmt -w): a.go"}} + } + return r, nil + } + v := b.judge(t, caseOf(t, pullOf(repoA, 7, head1))).Verdict + if v.State != delivery.VerdictFail || v.Failed.Test != "lint: ..gofmt" { + t.Errorf("failed = %+v, want the lint step's failure", v.Failed) + } +} diff --git a/modules/mesh-delivery-checker/internal/check/judge.go b/modules/mesh-delivery-checker/internal/check/judge.go index 9faeb4d..adc5d2b 100644 --- a/modules/mesh-delivery-checker/internal/check/judge.go +++ b/modules/mesh-delivery-checker/internal/check/judge.go @@ -633,7 +633,11 @@ func levelFailure(t *target, level string, results ...Tested) *delivery.Verdict if t.module == buildrun.NodeBuildModule && f.Package == "" { name = res.Module } - all = append(all, delivery.FailedFirst{Test: level + ": " + name, Words: failureWords(f)}) + step := level + if f.Step != "" { + step = f.Step // the lint step's finding, not the level's (ADR 0542 §2) + } + all = append(all, delivery.FailedFirst{Test: step + ": " + name, Words: failureWords(f)}) } } if len(all) == 0 { // no result: a level said failed with nothing to name diff --git a/modules/mesh-delivery-checker/internal/check/results.go b/modules/mesh-delivery-checker/internal/check/results.go index 275e821..01370fe 100644 --- a/modules/mesh-delivery-checker/internal/check/results.go +++ b/modules/mesh-delivery-checker/internal/check/results.go @@ -61,6 +61,9 @@ type Failure struct { Output string `json:"output,omitempty"` // Cause is the first line of what the test reported as its error, when the build module told it apart (issue 1901). Cause string `json:"cause,omitempty"` + // Step is "lint" for a finding of the lint step (gofmt, go vet), which runs beside the unit level and is reported as + // its own failure, not the level's (ADR 0542 §2). + Step string `json:"step,omitempty"` } // TestTime is one test and the seconds it took. diff --git a/modules/mesh-delivery-indexer/go.mod b/modules/mesh-delivery-indexer/go.mod index f1d39a3..8b6fdb4 100644 --- a/modules/mesh-delivery-indexer/go.mod +++ b/modules/mesh-delivery-indexer/go.mod @@ -3,7 +3,7 @@ module mesh-delivery-indexer go 1.26.0 require ( - git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261024232250-9b408db24a58 + git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261024232922-99407c37df95 github.com/nats-io/nats-server/v2 v2.11.17 github.com/nats-io/nats.go v1.54.0 ) diff --git a/modules/mesh-delivery-indexer/go.sum b/modules/mesh-delivery-indexer/go.sum index d665c2c..da5e69b 100644 --- a/modules/mesh-delivery-indexer/go.sum +++ b/modules/mesh-delivery-indexer/go.sum @@ -4,6 +4,8 @@ git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261024231716-571ac521f053 h1:8Kbp3aJG git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261024231716-571ac521f053/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY= git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261024232250-9b408db24a58 h1:4Damtdqlf6u6nJhvMA99peDy1jmjixtcwFXJ4bWEkLk= git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261024232250-9b408db24a58/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY= +git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261024232922-99407c37df95 h1:I8zbgGzRjmgYydPTWo8hmaZW/P/g+qGDUfu3E32/pkU= +git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261024232922-99407c37df95/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=