Skip to content

build: bump golangci-lint to v2.13.2, add make clean - #103

Merged
willkg merged 2 commits into
mainfrom
fix-golangci-lint-go127
Aug 28, 2026
Merged

build: bump golangci-lint to v2.13.2, add make clean#103
willkg merged 2 commits into
mainfrom
fix-golangci-lint-go127

Conversation

@willkg

@willkg willkg commented Aug 28, 2026

Copy link
Copy Markdown
Member

Summary

  • make lint panics locally under Go 1.27 (the only toolchain Homebrew has now): golangci-lint v2.6.0's bundled analysis deps can't read the export data format the 1.27 compiler emits (export data version 4 is greater than maximum supported version 2).
  • Pins v2.12.2 — the newest release still requiring only go 1.25.0 (its own go.mod: "the minimum Go version must always be latest-1"; v2.13.0 bumped the floor to go >= 1.26.0, which broke CI's go-version-file: go.mod install on the first push here, since CI reads this repo's go 1.25 directive and gets 1.25.14). v2.12.2 runs clean (0 issues) built with local Go 1.27.0.
  • Adds a make clean rule to remove generated build artifacts (bin/, dist/, completions/, stray ./markfluence) — everything .gitignore already treats as generated but nothing previously removed in one step.

Found while starting on _plans/025/026's implementation on a separate branch; unrelated to that work, so splitting it out here.

Test plan

  • make check passes clean end to end locally (vet, fmt-check, test, build, lint)
  • CI passes on this branch
  • make clean removes bin/, dist/, completions/, ./markfluence and nothing else

willkg added 2 commits August 28, 2026 13:20
v2.6.0's bundled type-checker can't read the export data Go 1.27 emits
("export data version 4 is greater than maximum supported version 2"),
which panics make lint outright now that Go 1.27 is the only toolchain
Homebrew has installed. v2.13.2 runs clean against the current codebase
with 0 new findings.

make clean removes bin/, dist/, completions/, and the stray ./markfluence
binary -- everything /.gitignore already treats as generated.
CI failed: v2.13.2's own go.mod requires go >= 1.26.0, but CI installs
Go via go-version-file: go.mod, which reads this repo's "go 1.25" and
gets 1.25.14 -- below that floor, so `go install` refused to build it at
all (GOTOOLCHAIN=local, no auto-upgrade). That's a different failure
than the one this branch set out to fix: locally, v2.6.0 couldn't *read*
export data from a newer compiler; on CI, go1.25.14 compiles everything
uniformly, so that mismatch never existed there in the first place --
only the go.mod floor did.

v2.13.0 is the release where golangci-lint's minimum bumped from 1.25.0
to 1.26.0 (its own go.mod: "the minimum Go version must always be
latest-1"). v2.12.2 is the newest release still on the 1.25.0 floor, and
runs clean (0 issues) against this repo built with local Go 1.27.0 --
confirmed directly rather than assumed.
@willkg
willkg merged commit 6b01e02 into main Aug 28, 2026
1 check passed
@willkg
willkg deleted the fix-golangci-lint-go127 branch August 28, 2026 17:27
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