Skip to content

chore: Build on the Go 1.27 toolchain - #323

Merged
ecv merged 1 commit into
mainfrom
chore/go-1.27-toolchain
Nov 2, 2026
Merged

ecv merged 1 commit into
mainfrom
chore/go-1.27-toolchain

Conversation

@ecv

@ecv ecv commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

Summary

Go 1.26 stops getting security fixes in February 2027. This builds and tests on Go 1.27 with runtime behaviour unchanged: the go.mod go line stays at 1.26.0, so the binaries keep their current GODEBUG defaults.

  • Dockerfile and devcontainer image move to golang:1.27
  • go.mod gains toolchain go1.27.3, which actions/setup-go (go-version-file: go.mod) uses over the go line
  • golangci-lint moves from v2.12.2 (CI) and v2.1.6 (Makefile) to v2.15.0; the older releases cannot run on, or type-check, the 1.27 toolchain
  • controller-tools is already v0.17.2, so it stays

This is step 1 of https://github.com/datum-cloud/infra/issues/8340 per https://github.com/datum-cloud/infra/blob/main/docs/upgrades/go.md. Raising the go line is step 2 and ships separately.

golangci-lint run ./... (v2.15.0) reports 0 issues, so no lint exclusions were needed.

Test plan

  • Every job's Setup Go step installs 1.27.3
  • Unit, e2e and lint pass on 1.27
  • The service rolls in staging and stays healthy

Related to #322

Go 1.26 stops getting security fixes when Go 1.28 ships in February 2027.
Building on 1.27 now keeps the binaries patched and the fleet on one Go line.

Key features/changes:
- Move the build images to golang:1.27
- Add a go.mod toolchain line, which actions/setup-go uses over the go line,
  so CI also builds and tests on 1.27
- Move golangci-lint to v2.15.0, which can type-check the Go 1.27 standard
  library
- Leave the go line unchanged, so the binaries keep their current GODEBUG
  runtime defaults; raising it is a separate change
@ecv
ecv marked this pull request as ready for review November 2, 2026 19:34
@ecv
ecv requested a review from a team as a code owner November 2, 2026 19:34
@ecv
ecv requested a review from kevwilliams November 2, 2026 19:34
@ecv
ecv enabled auto-merge November 2, 2026 19:34

@kevwilliams kevwilliams left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verified all four CI runs set up Go 1.27.3 from the toolchain line and no Go 1.26 pin remains in any image or workflow.

@ecv
ecv merged commit acbe268 into main Nov 2, 2026
9 checks passed
@ecv
ecv deleted the chore/go-1.27-toolchain branch November 2, 2026 19:57
@ecv ecv mentioned this pull request Nov 3, 2026
2 tasks
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.

2 participants