👋 Welcome to desktop! Thank you for showing interest in contributing to desktop, we would love to have your contribution. Below are some details on how to contribute to desktop. Please read carefully!
- Click on the "Issues" tab in the repo.
- Make sure that the issue doesn't exist already by searching for it.
- Pick the issue template.
- Fill in the issue template.
This project uses golangci-lint for code linting, please install it and format your code with make lint-golangci
.
- Make an issue (see above) and check to make sure what you are trying to add/change doesn't already exist.
- Create a branch with the name being the issue number. If you don't have contributor access just fork the repo.
- Make and commit the changes.
- Validate code
- Make the pull request!
- Now someone on the team will review your PR. Congrats!
- Warning once your PR gets merged the branch for it will automatically get deleted (only for contributors with contributor access).
If both the options stated below don't work for you can just make the changes if the CI jobs fail.
You can check all the code inside of a docker container with all the dependencies installed by running make docker-lint
and make test-in-docker
. Both of these commands will build the image for you and run it. No need to install anything! Check the output to make sure you don't have any issues to resolve.
Program | Description |
---|---|
golangci-lint | Linter for all golang files |
goreleaser | Release automation for the program |
hadolint | Linter for all Dockerfiles |
Once you have the programs above installed please run make local-test
and make local-lint
. If you don't get any errors your code checks out!
- When you take on an issue please set yourself as the assignee or leave a comment. This will let the maintainers and other contributors that know that you are going to work on it.
- This project syncs files from other repos. To check where certain files come from check the
fsync.yml
file (sometimes located in/github/fsync.yml
). This means if you wanna change that file you need to change the file from the source repo.