Hi! First of all, thank you for contributing. ❤️
All of the usual sorts of contributions are welcome: bug reports, patches, and feedback. Feel free to browse existing issues or create a new one.
Participation in this project in any way requires complying with the Code of Conduct.
You're welcome to create an issue, but please search existing ones first to see if it's been discussed before.
Great! If you're intersted in tackling an existing issue, comment on one to make sure you're on the right track. If it's an idea you have or a problem not captured in an issue, create one and let's align.
Requirements:
- Python 3.6 or higher
- Poetry
Once you have those two, install project dependencies with:
poetry install
At this point you should be able to make changes to the codebase and run things.
Speaking of running things, there are a number of code quality checks that get run on every pull request. You are encouraged to run them locally as you work for a much faster feedback loop.
Command | What it does |
---|---|
make formatcheck | Run the black formatter with the --check flag to validate the source is formatted correctly. |
make lint | Run the flake8 linter to validate there are no linter errors in the source. |
make doccheck | Run the pydocstyle docstring format checker to validate the docstrings are complete and standardized. Currently disabled. |
make docs | Run the Sphinx documentation site builder to validate the docs build successfully. |
make typecheck | Run the mypy type checker to validate the type annotations are valid. Currently disabled. |
make test | Run tests to validate they all pass. |
make covcheck | Calculate test coverage to validate all code paths are executed at least once. |
The project uses the Google style of docstrings.