Remove the staticcheck GOTOOLCHAIN pin once a stable Go 1.27-capable release ships
- Dominant language
- Ruby
- Stars
- 30
- Forks
- 1
- Avg merge
- 13h 41m
- Merged PRs (30d)
- 18
Description
The `Go lint, coverage, generated tables` job pins `GOTOOLCHAIN: go1.26.6` for the staticcheck step alone. It is temporary debt from the go1.27.0 stable rollover on 2026-08-20.
**Why the pin exists.** staticcheck cannot decode export data from a toolchain released after it, so when `setup-go`'s `stable` moved to go1.27.0 the job began failing on every run in this repository with:
```
-: internal error in importing "internal/byteorder" (cannot decode "internal/byteorder",
export data version 4 is greater than maximum supported version 2); please report an issue (compile)
```
Verified locally against go1.27.0 at the time:
| staticcheck | go1.27.0 |
|---|---|
| 2025.1.1 (pinned) | fails |
| 2026.1 | fails |
| 2026.2rc1 | clean |
Only a release candidate worked, and a prerelease linter inside a required merge gate seemed worse than the pin.
**Scope of the pin.** It covers the staticcheck step only. The rest of that job, and the whole `go-test` matrix across ubuntu/macos/windows, stay on `stable`, so go1.27 is genuinely exercised — the module suite, `go vet`, and the generator all pass under it. What the pin costs is that staticcheck analyzes under go1.26.6 rather than the newest toolchain.
**What to do.** When 2026.2 ships as a final release (or any later stable release supporting the then-current Go), raise the analyzer version and drop the `GOTOOLCHAIN` env in the same commit — the workflow comment says they move together. Confirm with:
```sh
cd go && go run honnef.co/go/tools/cmd/staticcheck@ ./...
```
run under the toolchain `stable` currently resolves to, with no `GOTOOLCHAIN` set.
Same rollover also required raising govulncheck from v1.1.4 to v1.7.0 (v1.1.4 panicked with `unexpected expr: *ast.KeyValueExpr` on a go1.27 source tree). That one is a real fix, not debt — it scans with the real `stable` toolchain and needs no follow-up.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start in the workflow's “Go lint, coverage, generated tables” job and inspect the staticcheck step and its accompanying comment. After a stable staticcheck release supports the current Go toolchain, update the analyzer, remove its GOTOOLCHAIN setting, and run `cd go && go run honnef.co/go/tools/cmd/staticcheck@ ./...` under stable with no GOTOOLCHAIN set.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions, go
- Domain
- ci-cd, tooling
- Issue type
- Refactor
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 74/100