Skip to main content

RFC โ€” Bump Go 1.25 โ†’ 1.26 (approaching EOL)

Bucket item: A1 ยท Class: ๐ŸŸก Standard ยท Jira Story: TF-3501 ยท Epic: TF-3500

Context / Problemโ€‹

Go supports only the two newest majors. Go 1.25 loses support when Go 1.27 ships (~2026-08). Bump to Go 1.26 (released Feb 2026, actively supported) now, while it is a minor, low-risk step.

Current state (evidence):

LocusCurrent
go.mod:3go 1.25
Dockerfile:5golang:1.25-alpine (builder)
bitbucket-pipelines.yml:1pipeline image on Go 1.25

Proposed changeโ€‹

Move the toolchain directive and all build/CI images to Go 1.26. Toolchain-only โ€” no source behaviour change intended.

Execution plan (call to action)โ€‹

  1. go.mod โ†’ go 1.26; run go build ./... + full test suite locally on 1.26.
  2. Dockerfile:5 โ†’ golang:1.26-alpine (coordinate with A2 if the base image changes too).
  3. bitbucket-pipelines.yml โ†’ Go 1.26 pipeline image; confirm CI green.
  4. go vet ./... + govulncheck for any 1.26 stdlib deprecations surfaced.

Risks & rollbackโ€‹

  • Risk: low (minor bump). A dependency may pin a higher go directive or hit a changed stdlib behaviour โ€” caught by the test suite in step 1.
  • Rollback: revert the three one-line image/directive changes; no data or API impact.

Open questionsโ€‹

  1. Any dependency requiring a go directive above 1.26, or relying on removed stdlib behaviour?
  2. Land the builder + runtime image bumps together with A2 (Alpine), or separately?