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
- Becoming a maintainer
We use GitHub to host code, to track issues and feature requests, as well as accept pull requests.
We use a two-branch strategy for development:
develop
- This is our main development branch where all feature branches are merged for nightly builds and testingmain
- This is our stable production branch that contains reviewed and tested code
- Create a new feature branch from
develop
- Make your changes and commit them
- Submit a pull request to merge into
develop
- After review and testing in
develop
, changes will be merged intomain
for production releases
- Fork the repo and create your feature branch from
develop
- 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
- Submit a pull request to merge into
develop
We use GitHub issues to track public bugs. Report a bug by opening a new issue; it's that easy!
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)
- Create a new branch from
develop
for your work - Make your changes
- Write or update tests as needed
- Update documentation as needed
- Submit a pull request to
develop
- Address any review feedback
- Use the present tense ("Add feature" not "Added feature")
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
- Limit the first line to 72 characters or less
- Reference issues and pull requests liberally after the first line
This document was adapted from the open-source contribution guidelines for Facebook's Draft.