Skip to content

Contributing

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

Set up your machine

goreleaser is written in Go.

Prerequisites:

Other things you might need to run some of the tests (they should get automatically skipped if a needed tool isn't present):

Building

Clone goreleaser anywhere:

git clone [email protected]:goreleaser/goreleaser.git

cd into the directory and install the dependencies:

go mod tidy

You should then be able to build the binary:

go build -o goreleaser .
./goreleaser --version

Testing your changes

You can create a branch for your changes and try to build from the source as you go:

task build

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

task ci

Before you commit the changes, we also suggest you run:

task fmt

A note about Docker multi-arch builds

If you want to properly run the Docker tests, or run goreleaser release --snapshot locally, you might need to setup Docker for it. You can do so by running:

task docker:setup

A note about Windows

Make sure to enable "Developer Mode" in Settings.

Creating a commit

Commit messages should be well formatted, and to make that "standardized", we are using Conventional Commits.

You can follow the documentation on their website.

Submitting a pull request

Push your branch to your goreleaser fork and open a pull request against the main branch.

Financial contributions

You can contribute in our OpenCollective or to any of the contributors directly. See this page for more details.