yay/CONTRIBUTING.md

2.1 KiB

Contributing to yay

Translation

Transifex

Quality Assurance

pacman -S --needed git base-devel
git clone https://aur.archlinux.org/yay-git.git
cd yay-git
makepkg -si

Installing yay-git and using issues to help determine what's broken is already a very big help.

Development

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.

Vision

Yay is based on the design of yaourt, apacman and pacaur. It is developed with these objectives in mind:

  • Provide an interface for pacman
  • Yaourt-style interactive search/install
  • Minimal dependencies
  • Minimize user input

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 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.