Skip to content

go1.24 support #5225

Closed
Closed
@ldez

Description

@ldez

EDIT: since v1.64 golangci-lint supports go1.24 if compiled with go1.24 🎉

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 should use the official binaries, or compile golangci-lint manually with the right Go version, or help these package systems to support this new Go version.

We are not responsible for package systems that don't use official binaries.

To validate the Go version used to compile: golangci-lint version

$ golangci-lint version
golangci-lint has version 1.64.2 built with go1.24.0 from 1dae906b on 2025-02-11T21:44:55Z

Is golangci-lint support go1.24?

No, and yes.

Basically, golangci-lint supports Go versions that are lower or equal to the Go version used to build it.

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.

The current binaries from the releases page and the Docker images have been built with go1.23 and will be built with go1.23 as long as go1.24 is not GA.
So those binaries/images don't support go1.24 (new elements and internal Go changes).

https://golangci-lint.run/welcome/faq/#which-go-versions-are-supported

---
title: Is golangci-lint support go1.24?
---
flowchart
    A([compiled with go1.24?]) -- yes --> B([needs update of the internals of golangci-lint?])
    A -- no --> C((NO))
    B -- yes --> D([uses right internal pieces?])
    B -- no --> E((YES))
    D -- yes --> G((YES))
    D -- no --> F((NO))
Loading

You can follow the PR #5224 to see the progress on this topic.

https://go.dev/wiki/Go-Release-Cycle

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 should use the official binaries, or compile golangci-lint manually with the right Go version, or help these package systems to support this new Go version.

We are not responsible for package systems that don't use official binaries.

To validate the Go version used to compile: golangci-lint version

$ golangci-lint version
golangci-lint has version 1.64.2 built with go1.24.0 from 1dae906b on 2025-02-11T21:44:55Z

golangci-lint is a free and open-source project built by volunteers.

If you value it, please consider donating or asking your company to do so, we appreciate it! ❤️

Open Collective backers and sponsors GitHub Sponsors


Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or improvement

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions