Skip to content

Pin golangci-lint to 2.8.0 exactly#1

Open
mtlynch wants to merge 2 commits into
mainfrom
lint-2.8.0
Open

Pin golangci-lint to 2.8.0 exactly#1
mtlynch wants to merge 2 commits into
mainfrom
lint-2.8.0

Conversation

@mtlynch
Copy link
Copy Markdown
Owner

@mtlynch mtlynch commented Apr 29, 2026

This change pins golangci-lint to 2.8.0 so that changes outside this repo can't suddenly cause CI to break out from under us.

In 01063cf, CI passed, and then in 0169e2b, CI began to fail though not due to anything in the commit itself. Every commit since then has failed CI, which drastically devalues CI through alarm fatigue (https://en.wikipedia.org/wiki/Alarm_fatigue).

The last passing commit's CI ran with golangci-lint 2.8.0 (https://github.com/timelinize/timelinize/actions/runs/21487184099/job/61899566316). The first failing commit ran with golangci-lint 2.11.4 (https://github.com/timelinize/timelinize/actions/runs/23951998278/job/69861473343). 2.11.4 added checks that caused existing issues in the codebase to break CI.

CI should not break out from under us when there have been no changes. We should regularly update to the latest and greatest static analysis tools and linters, but that should happen in a commit where we explicitly choose to upgrade, not automatically during other changes.

This change pins CI to use go 1.25.0 and golangci-lint to 2.8.0 so that changes outside this repo don't cause CI to break out from under us.

In 01063cf, CI passed, and then in 0169e2b, CI began to fail though not due to anything in the commit itself. Every commit since then has failed CI, which drastically devalues CI through alarm fatigue (https://en.wikipedia.org/wiki/Alarm_fatigue).

The last passing commit's CI ran with golangci-lint 2.8.0 (https://github.com/timelinize/timelinize/actions/runs/21487184099/job/61899566316). The first failing commit ran with golangci-lint 2.11.4 (https://github.com/timelinize/timelinize/actions/runs/23951998278/job/69861473343). 2.11.4 added checks that caused existing issues in the codebase to break CI.

CI should not break out from under us when there have been no changes. We should regularly update to the latest and greatest static analysis tools and linters, but that should happen in a commit where we explicitly choose to upgrade, not automatically during other changes.

I also pinned  to  instead of  because using go 1.26.0 breaks pinned tooling that expects go 1.25.0.
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