1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2025-01-26 04:22:05 +02:00
goreleaser/CONTRIBUTING.md
Gabriel Cipriano 11e5682165
docs: update CONTRIBUTING.md add upx as optional prerequesite (#4427)
A test failed as I didn't had upx installed:

```
--- FAIL: TestRun (0.58s)
    upx_test.go:119: 
                Error Trace:    /home/cipri/git/goreleaser/internal/pipe/upx/upx_test.go:119
                Error:          Received unexpected error:
                                upx not found in PATH
                Test:           TestRun
FAIL
```


<!-- If applied, this commit will... -->

...

<!-- Why is this change being made? -->

...

<!-- # Provide links to any relevant tickets, URLs or other resources
-->

...
2023-11-18 09:49:45 -03:00

79 lines
1.7 KiB
Markdown

# 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).
## Set up your machine
`goreleaser` is written in [Go](https://golang.org/).
Prerequisites:
- [Task](https://taskfile.dev/installation)
- [Go 1.21+](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/)
- [Syft](https://github.com/anchore/syft)
- [upx](https://upx.github.io/)
Clone `goreleaser` anywhere:
```sh
git clone git@github.com:goreleaser/goreleaser.git
```
`cd` into the directory and install the dependencies:
```sh
task setup
```
A good way of making sure everything is all right is running the test suite:
```sh
task test
```
## Test your change
You can create a branch for your changes and try to build from the source as you go:
```sh
task build
```
When you are satisfied with the changes, we suggest you run:
```sh
task ci
```
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).
## Submit 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](https://goreleaser.com/sponsors) for more details.