github.com/goreleaser/goreleaser@v1.25.1/CONTRIBUTING.md (about) 1 # Contributing 2 3 By participating in this project, you agree to abide our 4 [code of conduct](https://github.com/goreleaser/.github/blob/main/CODE_OF_CONDUCT.md). 5 6 ## Set up your machine 7 8 `goreleaser` is written in [Go](https://golang.org/). 9 10 Prerequisites: 11 12 - [Task](https://taskfile.dev/installation) 13 - [Go 1.22+](https://go.dev/doc/install) 14 15 Other things you might need to run the tests: 16 17 - [cosign](https://github.com/sigstore/cosign) 18 - [Docker](https://www.docker.com/) 19 - [GPG](https://gnupg.org) 20 - [Podman](https://podman.io/) 21 - [Snapcraft](https://snapcraft.io/) 22 - [Syft](https://github.com/anchore/syft) 23 - [upx](https://upx.github.io/) 24 25 Clone `goreleaser` anywhere: 26 27 ```sh 28 git clone git@github.com:goreleaser/goreleaser.git 29 ``` 30 31 `cd` into the directory and install the dependencies: 32 33 ```sh 34 task setup 35 ``` 36 37 A good way of making sure everything is all right is running the test suite: 38 39 ```sh 40 task test 41 ``` 42 43 ### A note about Docker multi-arch builds 44 45 If you want to properly run the Docker tests, or run `goreleaser release 46 --snapshot` locally, you might need to setup Docker for it. 47 You can do so by running: 48 49 ```sh 50 task docker:setup 51 ``` 52 53 ## Test your change 54 55 You can create a branch for your changes and try to build from the source as you go: 56 57 ```sh 58 task build 59 ``` 60 61 When you are satisfied with the changes, we suggest you run: 62 63 ```sh 64 task ci 65 ``` 66 67 Before you commit the changes, we also suggest you run: 68 69 ```sh 70 task fmt 71 ``` 72 73 ## Create a commit 74 75 Commit messages should be well formatted, and to make that "standardized", we 76 are using Conventional Commits. 77 78 You can follow the documentation on 79 [their website](https://www.conventionalcommits.org). 80 81 ## Submit a pull request 82 83 Push your branch to your `goreleaser` fork and open a pull request against the main branch. 84 85 ## Financial contributions 86 87 You can contribute in our OpenCollective or to any of the contributors directly. 88 See [this page](https://goreleaser.com/sponsors) for more details.