We love your input! We want to make contributing to this project as easy and transparent as possible, whether it's:
- Reporting a bug
- Discussing the current state of the code
- Submitting a fix
- Proposing new features
We use GitHub to host code, to track issues and feature requests, as well as accept pull requests.
We Use Github Flow
Pull requests are the best way to propose changes to the codebase. We actively welcome your pull requests.
- Fork the repo and create your branch from
main
. - If you've added code that should be tested, add tests.
- If you've changed APIs, update the documentation.
- Ensure the test suite passes.
- Make sure your code lints.
- Issue that pull request!
We follow a specific commit message format. This leads to more readable messages that are easy to follow when looking through the project history.
Each commit message consists of a header, and a body and/or a footer.
Example: [Tag]: Short description (fixes #1234)
The Tag
is one of the following:
- Feat - for new features
- Fix - for bug fixes
- Refactor - for code that does not add a feature or fix a bug
- Perf - for code that improves performance
- Style - for code that does not alter how the code runs, just improves formatting and similar.
- Docs - for changes to documentation only
- Test - for adding missing tests or correcting existing tests
- CI - for changes to CI configuration files and scripts
- Chore - for repetitive tasks such as updating dependencies and so on.
Let's ensure our codebase is consistent and clean.
Report bugs using Github's issues
We use GitHub issues to track public bugs. Report a bug by opening a new issue.
Great Bug Reports tend to have:
- A quick summary and/or background
- Steps to reproduce
- Be specific!
- Give sample code if you can.
- What you expected would happen
- What actually happens
- Notes (possibly including why you think this might be happening, or stuff you tried that didn't work)