Skip to content

fix(ci): build on Go 1.26.6 - #49

Merged
pedromvgomes merged 1 commit into
mainfrom
fix/go-toolchain
Aug 16, 2026
Merged

fix(ci): build on Go 1.26.6#49
pedromvgomes merged 1 commit into
mainfrom
fix/go-toolchain

Conversation

@pedromvgomes

@pedromvgomes pedromvgomes commented Aug 16, 2026

Copy link
Copy Markdown
Owner

go.mod declared go 1.26.0 with no toolchain line, and both
workflows resolve their Go from go-version-file: go.mod. So every build
here has been running Go 1.26.0, with the entire 1.26 patch series of stdlib
fixes missing.

Straight from the last CI run on main:

Setup go version spec 1.26.0
Successfully set up Go version 1.26.0
go version go1.26.0 linux/amd64

Nothing reported it, because a stale toolchain is not a dependency:
Dependabot covers gomod and github-actions, and the Go release is
neither.

Found while fixing the same gap in gt (pedromvgomes/gt#31), where bulwark's
govulncheck stage surfaced 18 stdlib advisories traced to exactly this
cause — crypto/tls, crypto/x509, net/http, net/url, encoding/asn1,
archive/tar and os, with the last fixes landing in 1.26.6.

toolchain go1.26.6 is the newest 1.26 patch. The go directive stays at
1.26.0, since that is the minimum language version rather than the
toolchain to build with — the same split wardnet uses.

On verification

I can't reproduce the 1.26.0 build locally — my toolchain is already 1.26.6
and Go uses it whenever it satisfies the go directive. So the evidence
here is the CI log above plus setup-go's documented behaviour: with a
toolchain line it installs that version. The proof this actually worked
is this PR's own CI run
, which should now report 1.26.6.

Locally on 1.26.6, govulncheck ./... reports your code is affected by 0
vulnerabilities
and the full test suite passes. It does list 23
vulnerabilities in modules required but never imported or called — those are
third-party, unrelated to the toolchain, and unchanged by this PR.

Independent of the gt governance work (#48) and
can merge now.

go.mod declared `go 1.26.0` with no `toolchain` line, and both workflows
resolve their Go from `go-version-file: go.mod` — so every build here has
been running Go 1.26.0, with the whole 1.26 patch series of stdlib fixes
missing.

Nothing reported it, because a stale toolchain is not a dependency:
Dependabot covers gomod and github-actions, and the Go release is neither.
The same gap was found in gt (pedromvgomes/gt#31), where bulwark's
govulncheck stage surfaced 18 advisories against exactly this cause.

`toolchain go1.26.6` is the newest 1.26 patch. The `go` directive stays at
1.26.0, since that is the minimum language version rather than the toolchain
to build with — the same split wardnet uses.

Verified with govulncheck ./... on 1.26.6: no vulnerabilities found.

Claude-Session: https://claude.ai/code/session_01PvwKxJ5vnqa9h9XXyTEj43
@pedromvgomes
pedromvgomes merged commit d799db6 into main Aug 16, 2026
3 checks passed
@pedromvgomes
pedromvgomes deleted the fix/go-toolchain branch August 16, 2026 13:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant