Thanks for contributing!
Take a look at the readme for information on getting the project running locally. Read the developer docs for some tips on testing the api.
Don't be afraid to ask for help with anything on this project. DMs are open!
- First check if the issue already exists
- Use appropriate tags to designate as a feature request, bugfix, feature addition, etc.
- Note if the change is for the cli or the api.
- Open discussions are encouraged - have an idea but not sure if it's worth implementing or how to do it? Open an issue!
- Ensure ALL CI checks pass. If one or more doesn't, fix the issue and
git pushto update the pr. - Avoid merge commits when possible. Use
git rebase origin/mainto make sure your changes are on top of the most recent commit from main. If you already have an upstream branch, you will need to usegit push --force-with-leaseinstead of a regular push after doing this.- Occasionally rebasing will create merge conflicts out of thin air - in these cases it's fine to just merge.
- Don't forget to link PR to issue if you are solving one.
- Keep PRs small and focused. If possible keep PRs under 300-400 lines of
changes. If you have a big change, maybe try breaking it into multiple smaller
PRs.
- Not a strict requirement, but it's well known that big PRs are harder to review effectively and accurately.
- Please request a review from a current project maintainer or ping us on
discord when your pr is ready to merge.
- We may respond to your review with some suggestions and/or changes that should be made. Once you resolve these, update the pr and request another review.
- The Copilot PR review is a useful feature - it often catches easy to miss copy-paste errors, spelling/grammar mistakes, and other things. Be cautious though - it can make mistakes, and always validate the issues it finds.
- squash merging into main is preferred. Don't worry about this too much, but
if you don't know which to choose:
- Choose a squash merge if the individual commits in the PR don't matter very much and/or the change is relatively atomic.
- Choose a rebase merge/normal merge if the individual commits in the PR do matter.