yay/CONTRIBUTING.md

52 lines
1.4 KiB
Markdown

## Contributing to yay
Contributors are always welcome!
If you plan to make any large changes or changes that may not be 100% agreed
on, we suggest opening an issue detailing your ideas first.
Otherwise send us a pull request and we will be happy to review it.
### Dependencies
Yay depends on:
- go (make only)
- git
- base-devel
- pacman
Note: Yay also depends on a few other projects, these are pulled as go modules.
### Building
Run `make` to build Yay. This command will generate a binary called `yay` in
the same directory as the Makefile.
#### Docker Release
`make docker-release` will build the release packages for `aarch64` and for `x86_64`.
For `aarch64` to run on a `x86_64` platform `qemu-user-static(-bin)` must be
installed.
```
docker run --rm --privileged multiarch/qemu-user-static:register --reset
```
will register QEMU in the build agent. ARM builds tend to crash sometimes but
repeated runs tend to succeed.
### Code Style
All code should be formatted through `go fmt`. This tool will automatically
format code for you. We recommend, however, that you write code in the proper
style and use `go fmt` only to catch mistakes.
Use [pre-commit](https://pre-commit.com/) to validate your commits against the various
linters configured for this repository.
### Testing
Run `make test` to test Yay. This command will verify that the code is
formatted correctly, run the code through `go vet`, and run unit tests.