How to contribute
Bug reports
When reporting a bug please include:
- Operating system name and version. 
- Any details about your local setup that might be helpful in troubleshooting. 
- Detailed steps to reproduce the bug. 
Feature requests and feedback
The best way to send feedback is to file an issue on Github. If you are proposing a feature:
- Explain in detail how it would work. 
- Keep the scope as narrow as possible, to make it easier to implement. 
Code contributions
We accept code contributions through pull requests. In short, this is how that works.
- Fork the repository and clone the fork. 
- Create a virtual environment using your tool of choice (e.g. - virtualenv,- conda, etc).
- Install development dependencies: 
$ pip install -r requirements-dev.txt
- Make sure all tests pass: 
$ invoke test
- Start making your changes to the master branch (or branch off of it). 
- Make sure all tests still pass: 
$ invoke test
- Add yourself to - AUTHORS.md.
- Commit your changes and push your branch to GitHub. 
- Create a pull request through the GitHub website. 
During development, use pyinvoke tasks on the command line to ease recurring operations:
- invoke clean: Clean all generated artifacts.
- invoke check: Run various code and documentation style checks.
- invoke docs: Generate documentation.
- invoke test: Run all tests and checks in one swift command.
- invoke: Show available tasks.