Commit a514a8c
authored
build(go): upgrade toolchain to Go 1.25.0 (#578)
## Summary
### Why?
The toolchain was pinned at Go 1.25.0's predecessor, 1.24.5. Nothing in
the tree required the bump — this is routine currency, done as its own
change so that a later functional PR is not the one that first exercises
a new compiler.
The pin is duplicated, and the copies are load-bearing in different
places. `go.mod` feeds `go_sdk.from_file`, which resolves the hermetic
SDK used for host builds and tests. `GO_VERSION` in `MODULE.bazel` is
separate and drives the extra linux/amd64 SDK that the `build-*-linux`
targets cross-compile the Docker images with. Bumping one and not the
other is silent: the host suite stays green while the containers ship a
binary built by a different compiler. They move together here.
### What?
Four pins, all mechanical:
- `go.mod` — the module's Go directive, and by extension the host SDK.
- `MODULE.bazel` — `GO_VERSION`, the linux/amd64 cross-compile SDK.
- `service/stovepipe/server/Dockerfile.debug` — the
`golang:1.24-bookworm` builder stage that supplies delve becomes
`golang:1.25-bookworm`, so the debug image's dlv is built by the same
major version as the binary it wraps.
- `doc/howto/DEVELOPMENT.md` — the stated prerequisite and the
troubleshooting note that tells you to match your local Go to `go.mod`.
Two things deliberately left alone. The `dlv@v1.24.2` on the line below
the Dockerfile bump is a delve release that happens to share the number
— unrelated to the Go version. And CI carries no Go pin of its own: the
workflows build through Bazel and pick the toolchain up from the two
pins above, so there is nothing to change under `.github/`.
No source changes. `make tidy`, `make gazelle`, and `make fmt` all
produce zero drift on top of these four edits — no `go.sum`, lockfile,
or `BUILD.bazel` churn.
## Test Plan
✅ `bazel run @rules_go//go -- version` — reports `go1.25.0
darwin/arm64`, confirming the hermetic SDK actually moved rather than
the pin merely being edited.
✅ `make build` — 309 targets.
✅ `make test` — 98/98 pass.
✅ `make tidy` / `make gazelle` / `make fmt` — clean, no generated-file
drift.
Not run locally: the Docker-based integration and e2e suites, which is
where the cross-compiled linux SDK and the rebuilt debug image are first
exercised end to end. Those run in CI — worth watching them here
specifically rather than treating this as a no-op diff.1 parent d9f97f6 commit a514a8c
4 files changed
Lines changed: 5 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
31 | | - | |
| 31 | + | |
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| |||
149 | 149 | | |
150 | 150 | | |
151 | 151 | | |
152 | | - | |
| 152 | + | |
153 | 153 | | |
154 | 154 | | |
155 | 155 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| |||
0 commit comments