Description
EDIT: since v1.60.0 golangci-lint supports go1.23 🎉
golangci-lint
is a free and open-source project built by volunteers.
If you value it, consider supporting us, we appreciate it! ❤️
support-golangci-lint-HD.mp4
Video created by a human (ldez) with Inkscape, Synfig, Kdenlive.
Is golangci-lint support go1.23?
No, and yes.
Basically, golangci-lint supports Go versions lower or equal to the Go version used to build it.
Go version (build) | Supported Go versions (code) | Not supported Go versions (code) |
---|---|---|
go1.21 | <= go1.21 (go1.21, go1.20, etc.) | > go1.21 (go1.22, go1.23, etc.) |
go1.20 | <= go1.20 (go1.20, go1.19, etc.) | > go1.20 (go1.21, go1.22, etc.) |
The current binaries from the releases page and the Docker images have been built with go1.22 and will be built with go1.22 as long as go1.23 is not GA.
So those binaries/images don't support go1.23 (new elements and internal Go changes).
https://golangci-lint.run/welcome/faq/#which-go-versions-are-supported
In addition, of the Go version used to build it, some linters could need to be updated to support newer versions of Go, and internal pieces of golangci-lint could also need to be updated.
You can follow the PR #4836 to see the progress on this topic.
Additional Notes
Some package systems (like homebrew, nix, etc.) are "slow" in propagating the new Go version.
After a new release of Go and golangci-lint, those systems can use an old Go version to compile golangci-lint resulting in a non-working binary (high memory usage, missing symbol, etc.).
In this situation, you can either use the official binaries, or compile it manually with the right Go version, or help those package systems to support this new Go version.
We are not responsible for package systems that don't use official binaries.
To see the Go version used to compile: golangci-lint version
$ golangci-lint version
golangci-lint has version 1.60.1 built with go1.23.0 from 3298c104 on 2024-08-14T01:15:05Z
- staticcheck, gosimple, stylecheck: waiting for a release. details