Skip to content

ci: define the Go toolchain once, and put it back on 1.22 - #467

Merged
Fury03 merged 1 commit into
mainfrom
fix/ci-go-version-consistency
Sep 1, 2026
Merged

ci: define the Go toolchain once, and put it back on 1.22#467
Fury03 merged 1 commit into
mainfrom
fix/ci-go-version-consistency

Conversation

@Fury03

@Fury03 Fury03 commented Sep 1, 2026

Copy link
Copy Markdown
Collaborator

Makes main internally consistent about which Go toolchain CI uses, and stops it drifting again.

The bug

4a49804 is titled "ci: use Go 1.26 for lint job so golangci-lint v2 builds" — but the line it changed belongs to build and test, not lint:

ci.yml:22  go-version: "1.26"   # build and test   <- what the commit actually changed
ci.yml:53  go-version: "1.22"   # golangci-lint    <- what it meant to change
ci.yml:80  go-version: "1.22"   # offline tests

Lint has been passing on 1.22 throughout, so the bump achieved nothing and left one of three jobs compiling and running the test suite on a different toolchain from its neighbours.

That matters because it is silent: a construct accepted by 1.26 and rejected by 1.22 shows up as one job disagreeing with the others for reasons unrelated to the change under test — and the disagreeing job is the one running the tests.

The fix

One env: GO_VERSION at workflow level, referenced by all three setup-go steps. The next edit cannot move one job without the others.

Why 1.22 and not 1.26 — every other declaration in the repository already says 1.22:

Where Version
go.mod go 1.22.2
Dockerfile FROM golang:1.22-alpine
README.md "Go 1.22+"
CONTRIBUTING.md "Go 1.22 or later"

Raising the supported version is a real decision, but it touches go.mod, the Dockerfile and both documents together. It should be taken deliberately, not inherited from a misapplied lint fix.

Side effect worth knowing

#436 and #437 both carry this same one-line change. Once this lands, their ci.yml hunk becomes a no-op — which removes the fork-PR-touches-workflow escalation on both, so they can be judged on their actual contents instead.

4a49804 set Go 1.26 "for lint job so golangci-lint v2 builds" and changed the
wrong job: the version it edited belongs to "build and test", while lint kept
1.22 and has been passing on it ever since. So the bump fixed nothing and left
one of three jobs compiling and testing on a different toolchain from its
neighbours.

That is the failure mode worth removing. A construct accepted by 1.26 and
rejected by 1.22 would surface as one job disagreeing with the others for
reasons unrelated to the change under test — and the job that disagreed would
be the one running the tests.

Every other declaration in the repository says 1.22: go.mod is go 1.22.2, the
Dockerfile builds FROM golang:1.22-alpine, and README.md and CONTRIBUTING.md
both promise "Go 1.22+". CI now says the same thing, in one place, so the next
edit cannot move one job without the others.

Raising the supported version is a separate decision. It would touch go.mod,
the Dockerfile and both documents together, and it should be taken on its own
rather than arriving as a side effect of a lint fix.
@Fury03
Fury03 merged commit 94bd4db into main Sep 1, 2026
5 checks passed
Israel-light added a commit to Israel-light/wayfare that referenced this pull request Sep 2, 2026
…lized Go version

The branch's ci.yml was missing the merge_group trigger and centralized
GO_VERSION env variable that upstream added in Wayfare-labs#467 and Wayfare-labs#468. Syncing
to match upstream while keeping all branch-specific code changes.

🤖 Generated with Codebuff
Co-Authored-By: Codebuff <noreply@codebuff.com>
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