Refer to pre-commit for installation instructions.
TL;DR:
pip install pipx --user # Install pipx
pipx install pre-commit # Install pre-commit
pre-commit install # Install pre-commit hooks
Installing pre-commit will ensure you adhere to the project code quality standards.
black, isort, ruff and doc8 will be automatically triggered by pre-commit. Still, if you want to run checks manually:
make black
make doc8
make isort
make ruff
Requirements are installed as follows.
make install
You are advised to work in virtual environment.
TL;DR:
python -m venv env
pip install -e .
pip install -r examples/requirements/django_3_2_and_flask.txt
Check documentation.
Check testing.
If you introduce changes or fixes, make sure to test them locally using all supported environments. For that use tox.
make test
In any case, GitHub Actions will catch potential errors, but using tox speeds things up.
You can contribute to the project by making a pull request.
For example:
- To fix documentation typos.
- To improve documentation (for instance, to add new recipe or fix an existing recipe that doesn't seem to work).
- To introduce a new feature (for instance, add support for a non-supported file type).
Good to know:
- Test suite makes extensive use of parametrization. Make sure you have added your changes in the right place.
General list to go through:
- Does your change require documentation update?
- Does your change require update to tests?
- Did you test both Latin and Unicode characters?
- Does your change rely on third-party cloud based service? If so, please
make sure it's added to tests that should be retried a couple of times.
Example:
@pytest.mark.flaky(reruns=5)
.
When fixing bugs (in addition to the general list):
- Make sure to add regression tests.
When adding a new feature (in addition to the general list):
- Check the licenses of added dependencies carefully and make sure to list them in prerequisites.
- Make sure to update the documentation.
Questions can be asked on GitHub discussions.
For reporting a bug or filing a feature request use GitHub issues.
Do not report security issues on GitHub. Check the support section.