Skip to content

build(backend): bump Go to 1.27.2 - #9217

Open
DoDiODev wants to merge 1 commit into
apache:mainfrom
DoDiODev:pr/wave18-go127
Open

DoDiODev wants to merge 1 commit into
apache:mainfrom
DoDiODev:pr/wave18-go127

Conversation

@DoDiODev

Copy link
Copy Markdown
Contributor

Summary

Moves the backend from Go 1.26 to Go 1.27 (1.27.2) at every place that pins the Go version. Go 1.28 is expected around February 2027, after which 1.26 no longer receives security fixes.

This builds on #9210 (golangci-lint v2.14.0): the released golangci-lint v2.12.2 binary is built with Go 1.26 and refuses to run on a module that targets Go 1.27.

Changes

Where Change
backend/go.mod go 1.26.0 → go 1.27.0, plus the go mod tidy reordering described below
backend/scripts/install-go.sh 1.26.9 → 1.27.2, new SHA256 for linux-amd64 / linux-arm64 (from go.dev)
devops/docker/lake-builder/Dockerfile GO_VERSION / GO_SHA256 → 1.27.2
backend/Dockerfile, backend/Dockerfile.local golang:1.26-bookworm → golang:1.27-bookworm
.devcontainer/Dockerfile devcontainers/go:1-1.26-bookworm → devcontainers/go:2-1.27-bookworm
workflow step names in test.yml, test-e2e.yml (2×), golangci-lint.yml, migration-script-lint.yml label only

go.mod reordering: with the go 1.27.0 directive, go mod tidy merges the second block of direct requirements into the first and moves three // indirect entries into the indirect block. No module version changes and go.sum is untouched. Without it, the go mod tidy check in CI would fail. With the old go 1.26.0 directive, Go 1.27.2 leaves go.mod as it is, so the reordering comes from the directive alone.

Dev container: the 1-* tag line of mcr.microsoft.com/devcontainers/go is no longer published, so the current 1-1.26-bookworm reference no longer resolves. This PR switches to the maintained 2-* line.

Verification

Check Result
SHA256 of the Go 1.27.2 archives, downloaded and compared with the values in the files ✅
go mod tidy leaves go.mod / go.sum unchanged ✅
make mock, make build (including swag), make unit-test with Go 1.27.2 ✅
golangci-lint v2.14.0 (with #9210 applied) ✅ 0 issues
go vet ./... no new findings compared with Go 1.26
Full CI mirror on my fork, including a build of the lake-builder image from this Dockerfile (Go 1.27.2), unit tests, lint (golangci-lint v2.14.0) and e2e on MySQL and PostgreSQL (run) ✅

CI installs Go through install-go.sh and therefore tests 1.27.2 directly. The lake-builder change takes effect once a new builder image is published (#9209).

Move the Go runtime from 1.26 to 1.27 at every coupled location:

- go directive 1.26.0 -> 1.27.0; go mod tidy under the 1.27 directive
  merges the second direct require block into the first and moves
  three // indirect entries into the indirect block (no version change,
  go.sum unchanged)
- install-go.sh and the lake-builder image: Go 1.26.9 -> 1.27.2 with
  new SHA256 checksums for linux/amd64 and linux/arm64
- golang:1.26-bookworm -> golang:1.27-bookworm in both backend
  Dockerfiles
- devcontainer base image 1-1.26-bookworm -> 2-1.27-bookworm; the
  1-* tag line is no longer published, so the old reference no longer
  resolves
- workflow step labels follow the new version

Signed-off-by: DoDiODev <DoDiDev@proton.me>
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