1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2024-12-27 01:33:39 +02:00
goreleaser/CONTRIBUTING.md

90 lines
1.9 KiB
Markdown
Raw Normal View History

2017-01-02 19:08:49 +02:00
# Contributing
By participating in this project, you agree to abide our
[code of conduct](https://github.com/goreleaser/.github/blob/main/CODE_OF_CONDUCT.md).
2017-01-02 19:08:49 +02:00
## Set up your machine
2017-01-02 19:08:49 +02:00
`goreleaser` is written in [Go](https://go.dev/).
2017-01-02 19:08:49 +02:00
Prerequisites:
- [Task](https://taskfile.dev/installation)
- [Go 1.23+](https://go.dev/doc/install)
Other things you might need to run the tests:
- [cosign](https://github.com/sigstore/cosign)
- [Docker](https://www.docker.com/)
- [GPG](https://gnupg.org)
- [Podman](https://podman.io/)
- [Snapcraft](https://snapcraft.io/)
2022-11-08 05:06:24 +02:00
- [Syft](https://github.com/anchore/syft)
- [upx](https://upx.github.io/)
2017-01-02 19:08:49 +02:00
2018-10-31 04:23:47 +02:00
Clone `goreleaser` anywhere:
2017-01-02 19:08:49 +02:00
```sh
git clone git@github.com:goreleaser/goreleaser.git
2017-01-02 19:08:49 +02:00
```
`cd` into the directory and install the dependencies:
2017-01-02 19:08:49 +02:00
2024-07-10 06:27:11 +02:00
```bash
go mod tidy
2017-01-02 19:08:49 +02:00
```
2024-07-10 06:27:11 +02:00
You should then be able to build the binary:
2017-01-02 19:08:49 +02:00
2024-07-10 06:27:11 +02:00
```bash
go build -o goreleaser .
./goreleaser --version
2017-01-02 19:08:49 +02:00
```
2024-04-01 19:07:38 +02:00
### 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:
```sh
task docker:setup
```
2017-01-02 19:08:49 +02:00
## Test your change
You can create a branch for your changes and try to build from the source as you go:
2019-03-25 01:10:30 +02:00
```sh
task build
2017-01-02 19:08:49 +02:00
```
When you are satisfied with the changes, we suggest you run:
2019-03-25 01:10:30 +02:00
```sh
task ci
2017-01-02 19:08:49 +02:00
```
Before you commit the changes, we also suggest you run:
```sh
task fmt
```
## Create 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](https://www.conventionalcommits.org).
2017-01-02 19:08:49 +02:00
## Submit a pull request
2021-11-12 22:23:32 +02:00
Push your branch to your `goreleaser` fork and open a pull request against the main branch.
2018-01-24 00:59:29 +02:00
## Financial contributions
2022-09-04 04:27:04 +02:00
You can contribute in our OpenCollective or to any of the contributors directly.
See [this page](https://goreleaser.com/sponsors) for more details.