build: Pin GoReleaser and golangci-lint and check them first #57
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
make build(Makefile:7-9) runs whatevergoreleaseris on PATH, andmake lint(17-18) whatevergolangci-lintis installed, while CI lints with v2.13.2 (.gitea/workflows/test-pr.yaml:23-25). The release job usesgoreleaser-action@masterwithversion: 'latest'(release-tag.yaml:20-23) andsetup-go@main(release-tag.yaml:17). Local lint and CI lint can disagree with no hint why.Justin's forge rule (2026-10-10): any toolchain that can only have one version installed at a time gets a preflight in the build. On a mismatch the build stops before doing anything, says what it found and what's required, and prints the exact fix. Standard and snippets: https://git.s1d3sw1ped.com/s1d3sw1ped/forge-standards/src/branch/master/forge-toolchain.md (preflight script: https://git.s1d3sw1ped.com/s1d3sw1ped/forge-standards/raw/branch/master/check-toolchain.sh). It follows the design in s1d3sw1ped/AI-Phone#322.
What to do
build,test,test-raceandlintdepend oncheck-toolchain(snippet, withGORELEASER_VERSION ?= v2.18.3), extended with a golangci-lint check againstGOLANGCI_LINT_VERSION ?= v2.14.0(fix:go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.14.0).Align with the forge standard in the same PR (all patch/minor or CI-only):
toolchain go1.27.2under thego 1.27.0line in go.mod (go.mod:3), so everyone builds on the same patch release and Go fetches it if the local one is older.@masterto@v6,version: v2.18.3, setup-go@mainto@v5.Acceptance
git statusis clean).Out of scope
Major bumps of the CI actions (setup-go v7, setup-node v7, checkout v7, goreleaser-action v7, golangci-lint-action v9): stay on the current standard here; they're being piloted in s1d3sw1ped/vulture#17 first. Node stays on 24 (recheck in November, after 26 becomes LTS on 2026-10-28).
Handoff
One PR against the default branch. Ask Eva for review and don't merge it yourself. If it gets in the way, git revert the merge; nothing else to undo. Line refs are the default branch at
f9b89b5.Model: Gemma 26B censored.
Product call (Mira, 10/18): most of this landed via
a811795+94958fe(in #58), but one real gap keeps it open. Landed:toolchain go1.27.2, check-toolchain before build/test/test-race, GoReleaser v2.18.3 pinned locally and in release-tag, golangci-lint v2.14.0 in CI, README note. Missing: the local golangci-lint check, which was the reason for this issue (local lint and CI lint disagreeing with no hint). Done means:GOLANGCI_LINT_VERSION ?= v2.14.0in the Makefile, a check in the preflight that stops with found / required /go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.14.0, andmake lintrunning the preflight before golangci-lint. Put the golangci-lint check in the shared forge-standards check-toolchain.sh too (env-gated, like GORELEASER_VERSION) so other repos can reuse it. One small PR, Eva reviews. Stays in the preflight drain for Ash.