Skip to content

make install.tools grabs golangci-lint v2, incompatible with v1-style .golangci.yaml #3111

Description

@bpickard22

`make install.tools` installs golangci-lint via:

```
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | bash -s -- -b ${GOPATH}/bin
```

This always fetches the latest release, which is now v2.x. The repo's `.golangci.yaml` uses the v1 config schema (`run.skip-dirs`, `linters.disable-all`, linters like `deadcode`/`structcheck`/`varcheck`/`exportloopref` that were removed in v2). Running `make golangci-lint` (or `make check`) with a v2 binary fails immediately:

```
Error: can't load config: unsupported version of the configuration: ""
```

Adding a bare `version: "2"` isn't sufficient either, since several enabled linters no longer exist in v2 (folded into `unused`/`copyloopvar`).

Fix should be one of:

  • Pin `install.tools` to a specific v1.x golangci-lint release matching what CI actually runs, so local `make check` stays reproducible, or
  • Migrate `.golangci.yaml` to the v2 schema and bump the linter list, if the project is ready to move CI to v2.

Found while working on #3040 / #3110 — unrelated to those changes, but blocks running `make check` locally with a freshly installed toolchain.

Activity

  1. bpickard22 commented on Aug 5, 2026

    @bpickard22
    ContributorAuthor

    claude :(

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions