From 0a11e1289a64be4e5d71ecbd46f6aa2578960e9c Mon Sep 17 00:00:00 2001 From: Stefan Haller Date: Sat, 17 Oct 2026 12:14:56 +0200 Subject: [PATCH 1/2] Discard the error of Pipeline.Wait explicitly in a test TestClosingAPipelinesOutputBringsItDown receives the error of Pipeline.Wait from a channel and ignores it. errcheck v1.30.0 reports such a receive as an unchecked error. golangci-lint 2.15.0 comes with this errcheck version, and the next commit bumps to it. The test ignores the error on purpose. It only checks that Wait returns, and the error depends on the platform. Make that explicit by discarding the error in the goroutine, and use the channel only to signal that Wait has returned. Co-Authored-By: Claude Opus 5.5 (1M context) --- pkg/commands/oscommands/pipeline_test.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/pkg/commands/oscommands/pipeline_test.go b/pkg/commands/oscommands/pipeline_test.go index a14902cf4..fdf8b9475 100644 --- a/pkg/commands/oscommands/pipeline_test.go +++ b/pkg/commands/oscommands/pipeline_test.go @@ -112,8 +112,14 @@ func TestClosingAPipelinesOutputBringsItDown(t *testing.T) { assert.NoError(t, reader.Close()) - done := make(chan error, 1) - go func() { done <- pipeline.Wait() }() + // Only whether Wait returns matters here, not its error. If a write into a + // closed pipe raises a signal, the last command dies of it and Wait reports + // that; otherwise the command exits normally. + done := make(chan struct{}) + go func() { + _ = pipeline.Wait() + close(done) + }() select { case <-done: From 9b52fad152efca8a489821d2506e95cc020fee9d Mon Sep 17 00:00:00 2001 From: Stefan Haller Date: Sat, 17 Oct 2026 11:59:32 +0200 Subject: [PATCH 2/2] Bump golangci-lint to 2.15.0 With Go 1.27 installed, `just lint` fails with typecheck errors like "export data version 5 is greater than maximum supported version 4". The shim builds golangci-lint with the local Go, but v2.12.2 can't read the export data of Go 1.27's standard library. Support for Go 1.27 came in v2.13.0. v2.15.0 still builds with Go 1.26, so linting keeps working there too. Co-Authored-By: Claude Opus 5.5 (1M context) --- .github/workflows/ci.yml | 2 +- scripts/golangci-lint-shim.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index df8ac7d84..666ca7b78 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -195,7 +195,7 @@ jobs: uses: golangci/golangci-lint-action@ba0d7d2ec06a0ea1cb5fa41b2e4a3ab91d21278a # v9 with: # If you change this, make sure to also update scripts/golangci-lint-shim.sh - version: v2.12.2 + version: v2.15.0 upload-coverage: # List all jobs that produce coverage files needs: [unit-tests, integration-tests] diff --git a/scripts/golangci-lint-shim.sh b/scripts/golangci-lint-shim.sh index 6cb3e007c..cd5841747 100755 --- a/scripts/golangci-lint-shim.sh +++ b/scripts/golangci-lint-shim.sh @@ -3,6 +3,6 @@ set -e # Must be kept in sync with the version in .github/workflows/ci.yml -version="v2.12.2" +version="v2.15.0" go run "github.com/golangci/golangci-lint/v2/cmd/golangci-lint@$version" "$@"