From ffc37fe059d311d6b2c9d79a7b2f309fc54ac006 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Fri, 28 Aug 2026 13:20:36 -0400 Subject: [PATCH 1/2] build: bump golangci-lint to v2.13.2, add make clean 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. --- Makefile | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 38275c2..1ebc89a 100644 --- a/Makefile +++ b/Makefile @@ -7,12 +7,12 @@ $(LOCALBIN): VERSION ?= dev LDFLAGS = -ldflags "-X github.com/mozilla/markfluence/internal/buildinfo.Version=$(VERSION)" -GOLANGCI_LINT_VERSION ?= v2.6.0 +GOLANGCI_LINT_VERSION ?= v2.13.2 GOLANGCI_LINT = $(LOCALBIN)/golangci-lint-$(GOLANGCI_LINT_VERSION) COMPLETIONS_DIR ?= completions -.PHONY: help all build build-linux install completions lint vet fmt fmt-check test check regen-regressions +.PHONY: help all build build-linux install completions lint vet fmt fmt-check test check regen-regressions clean help: ## Show this help @echo "Available rules:" @@ -69,6 +69,9 @@ check: ## Run every check CI runs, in CI's order -- the pre-flight before calli regen-regressions: ## Regenerate the converter regression goldens go test ./internal/convert -run TestRegression -update +clean: ## Remove build artifacts (bin/, dist/, completions/, ./markfluence) + rm -rf $(LOCALBIN) dist $(COMPLETIONS_DIR) markfluence + # golangci-lint (version/path defined near the top so `lint` can depend on it). # Order-only dependency on $(LOCALBIN) so adding files to bin/ (e.g. `make # build`) doesn't retrigger the install. Installs the versioned binary once. From ef156105e43a2361113aa1106017b94d1737def3 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Fri, 28 Aug 2026 13:24:41 -0400 Subject: [PATCH 2/2] fix: pin golangci-lint to v2.12.2, not v2.13.2 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. --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 1ebc89a..d97583d 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,7 @@ $(LOCALBIN): VERSION ?= dev LDFLAGS = -ldflags "-X github.com/mozilla/markfluence/internal/buildinfo.Version=$(VERSION)" -GOLANGCI_LINT_VERSION ?= v2.13.2 +GOLANGCI_LINT_VERSION ?= v2.12.2 GOLANGCI_LINT = $(LOCALBIN)/golangci-lint-$(GOLANGCI_LINT_VERSION) COMPLETIONS_DIR ?= completions