From 975164205471538576230f3770d2f5a2f7b011d4 Mon Sep 17 00:00:00 2001 From: Jon Langevin Date: Fri, 23 Oct 2026 04:14:24 -0400 Subject: [PATCH 1/2] fix(deps): support Go 1.27 in benchmark startup dependencies --- README.md | 6 ++++++ go.mod | 4 ++-- go.sum | 8 ++++---- startup_output_test.go | 34 ++++++++++++++++++++++++++++++++++ 4 files changed, 46 insertions(+), 6 deletions(-) create mode 100644 startup_output_test.go diff --git a/README.md b/README.md index ecd2446c..5ac3f611 100644 --- a/README.md +++ b/README.md @@ -345,6 +345,12 @@ cd ui && npm run lint **Test coverage targets:** root package 80%+, module 80%+, dynamic 80%+, AI packages 85%+. +Benchmark discovery requires quiet package initialization. Keep Sonic and its +loader compatible with the Go version in `go.mod`; Sonic 1.15.4 and loader 0.5.2 +support Go 1.27. `TestPackageInitializationIsQuiet` catches startup diagnostics +on amd64 and arm64. The benchmark validator still rejects diagnostics and +requires a baseline with matching package, architecture, and CPU context. + ## Technology | Component | Technology | diff --git a/go.mod b/go.mod index dd56c1d7..07d0c647 100644 --- a/go.mod +++ b/go.mod @@ -101,8 +101,8 @@ require ( github.com/bits-and-blooms/bitset v1.24.5 // indirect github.com/bmatcuk/doublestar/v4 v4.10.0 // indirect github.com/bytedance/gopkg v0.1.4 // indirect - github.com/bytedance/sonic v1.15.2 // indirect - github.com/bytedance/sonic/loader v0.5.1 // indirect + github.com/bytedance/sonic v1.15.4 // indirect + github.com/bytedance/sonic/loader v0.5.2 // indirect github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cenkalti/backoff/v5 v5.0.3 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect diff --git a/go.sum b/go.sum index 0dbb21da..d6404ce8 100644 --- a/go.sum +++ b/go.sum @@ -107,10 +107,10 @@ github.com/bufbuild/protocompile v0.10.0 h1:+jW/wnLMLxaCEG8AX9lD0bQ5v9h1RUiMKOBO github.com/bufbuild/protocompile v0.10.0/go.mod h1:G9qQIQo0xZ6Uyj6CMNz0saGmx2so+KONo8/KrELABiY= github.com/bytedance/gopkg v0.1.4 h1:oZnQwnX82KAIWb7033bEwtxvTqXcYMxDBaQxo5JJHWM= github.com/bytedance/gopkg v0.1.4/go.mod h1:v1zWfPm21Fb+OsyXN2VAHdL6TBb2L88anLQgdyje6R4= -github.com/bytedance/sonic v1.15.2 h1:90H+rcF/FwLXwfB1cudOLq/je83n683Utf4Cbp0xHCo= -github.com/bytedance/sonic v1.15.2/go.mod h1:mT2NbXunuaEbnZ+mRIX/vYqKISmgEuHFDI4UzmKx2SA= -github.com/bytedance/sonic/loader v0.5.1 h1:Ygpfa9zwRCCKSlrp5bBP/b/Xzc3VxsAW+5NIYXrOOpI= -github.com/bytedance/sonic/loader v0.5.1/go.mod h1:AR4NYCk5DdzZizZ5djGqQ92eEhCCcdf5x77udYiSJRo= +github.com/bytedance/sonic v1.15.4 h1:FgtV/4aBHpla9AxuMpuuzVUpa/Cf3izufkxNmnEzdI8= +github.com/bytedance/sonic v1.15.4/go.mod h1:8e51yTPdY8M6t+vvGL1c2Y1xL9i+frEeIAQAEl75NUc= +github.com/bytedance/sonic/loader v0.5.2 h1:0QtP1gevc1OZ6/H8Lb9BRZiCXd1Ftjd3OKuj1T1lBIo= +github.com/bytedance/sonic/loader v0.5.2/go.mod h1:AR4NYCk5DdzZizZ5djGqQ92eEhCCcdf5x77udYiSJRo= github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/cenkalti/backoff/v5 v5.0.3 h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1xcsSM= diff --git a/startup_output_test.go b/startup_output_test.go new file mode 100644 index 00000000..a2594cd0 --- /dev/null +++ b/startup_output_test.go @@ -0,0 +1,34 @@ +package workflow + +import ( + "context" + "os" + "os/exec" + "runtime" + "testing" + "time" +) + +// Benchmark discovery runs package initialization before listing benchmark +// names. Diagnostics from an incompatible dependency must not contaminate that +// output on the architectures supported by the benchmark dependency stack. +func TestPackageInitializationIsQuiet(t *testing.T) { + if runtime.GOARCH != "amd64" && runtime.GOARCH != "arm64" { + t.Skip("benchmark dependencies use a fallback on this architecture") + } + executable, err := os.Executable() + if err != nil { + t.Fatal(err) + } + ctx, cancel := context.WithTimeout(t.Context(), 30*time.Second) + defer cancel() + // Re-execute the real test binary to include dependency init functions. + // An empty listing selects no tests or benchmarks and cannot recurse here. + output, err := exec.CommandContext(ctx, executable, "-test.list=^$").CombinedOutput() + if err != nil { + t.Fatalf("package initialization failed: %v\n%s", err, output) + } + if len(output) != 0 { + t.Fatalf("package initialization polluted benchmark discovery output:\n%s", output) + } +} From b4512e81f1b4e1d1c9fc5977353d769d0e56c74b Mon Sep 17 00:00:00 2001 From: Jon Langevin Date: Fri, 23 Oct 2026 04:17:51 -0400 Subject: [PATCH 2/2] fix(deps): align example module Sonic versions --- example/go.mod | 4 ++-- example/go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/example/go.mod b/example/go.mod index 9368ec39..98f799b6 100644 --- a/example/go.mod +++ b/example/go.mod @@ -45,8 +45,8 @@ require ( github.com/beorn7/perks v1.0.1 // indirect github.com/bits-and-blooms/bitset v1.24.5 // indirect github.com/bytedance/gopkg v0.1.4 // indirect - github.com/bytedance/sonic v1.15.2 // indirect - github.com/bytedance/sonic/loader v0.5.1 // indirect + github.com/bytedance/sonic v1.15.4 // indirect + github.com/bytedance/sonic/loader v0.5.2 // indirect github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cenkalti/backoff/v5 v5.0.3 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect diff --git a/example/go.sum b/example/go.sum index 67c367de..076ea889 100644 --- a/example/go.sum +++ b/example/go.sum @@ -91,10 +91,10 @@ github.com/bufbuild/protocompile v0.10.0 h1:+jW/wnLMLxaCEG8AX9lD0bQ5v9h1RUiMKOBO github.com/bufbuild/protocompile v0.10.0/go.mod h1:G9qQIQo0xZ6Uyj6CMNz0saGmx2so+KONo8/KrELABiY= github.com/bytedance/gopkg v0.1.4 h1:oZnQwnX82KAIWb7033bEwtxvTqXcYMxDBaQxo5JJHWM= github.com/bytedance/gopkg v0.1.4/go.mod h1:v1zWfPm21Fb+OsyXN2VAHdL6TBb2L88anLQgdyje6R4= -github.com/bytedance/sonic v1.15.2 h1:90H+rcF/FwLXwfB1cudOLq/je83n683Utf4Cbp0xHCo= -github.com/bytedance/sonic v1.15.2/go.mod h1:mT2NbXunuaEbnZ+mRIX/vYqKISmgEuHFDI4UzmKx2SA= -github.com/bytedance/sonic/loader v0.5.1 h1:Ygpfa9zwRCCKSlrp5bBP/b/Xzc3VxsAW+5NIYXrOOpI= -github.com/bytedance/sonic/loader v0.5.1/go.mod h1:AR4NYCk5DdzZizZ5djGqQ92eEhCCcdf5x77udYiSJRo= +github.com/bytedance/sonic v1.15.4 h1:FgtV/4aBHpla9AxuMpuuzVUpa/Cf3izufkxNmnEzdI8= +github.com/bytedance/sonic v1.15.4/go.mod h1:8e51yTPdY8M6t+vvGL1c2Y1xL9i+frEeIAQAEl75NUc= +github.com/bytedance/sonic/loader v0.5.2 h1:0QtP1gevc1OZ6/H8Lb9BRZiCXd1Ftjd3OKuj1T1lBIo= +github.com/bytedance/sonic/loader v0.5.2/go.mod h1:AR4NYCk5DdzZizZ5djGqQ92eEhCCcdf5x77udYiSJRo= github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/cenkalti/backoff/v5 v5.0.3 h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1xcsSM=