If golangci-lint is useful for you, please consider supporting us! You are the only one who can make a difference!

Workflow

By participating in this project, you agree to abide by our code of conduct.

Set up your machine

Golangci-lint is written in Go.

Prerequisites:

Fork and clone golangci-lint repository.

A good way of making sure everything is all right is running the following:

make build
./golangci-lint run -v

Test your change

When you are satisfied with the changes, we suggest you run:

make test

Which runs all the linters and tests.

Create or update parameters for docs

Add your new or updated parameters to .golangci.next.reference.yml so they will be shown in the docs

Create a discussion

You must create a discussion before opening a pull request.

There is a dedicated category for new linters: New Linter Proposals.

Submit a pull request

Once the maintainers have approved your linter proposal in the discussion.

Push your branch to your golangci-lint fork and open a pull request against the main branch.

Pull request checks

First, please, accept CLA - CLA assistant will make a comment on the pull request about it.

Also, we run a few checks in CI by using GitHub Actions, you can see them here.

New releases

First, see our versioning policy.

To make a new release create a tag vX.Y.Z.
Don’t forget to add zero patch version for a new minor release, e.g. v1.99.0.

A GitHub Action workflow will start building and publishing release after that.

After making a release, you need to update GitHub Action config by running:

make assets/github-action-config.json
Last updated on