Thank you for your interest in improving this project. This project is open-source under the MIT license and welcomes contributions in the form of bug reports, feature requests, and pull requests.
Here is a list of important resources for contributors:
Report bugs on the Issue Tracker.
When filing an issue, make sure to answer these questions:
- Which operating system and Python version are you using?
- Which version of this project are you using?
- What did you do?
- What did you expect to see?
- What did you see instead?
The best way to get your bug fixed is to provide a test case, and/or steps to reproduce the issue.
Request features on the Issue Tracker.
You need Python 3.11+ and the following tools:
Install the package with development requirements:
$ uv sync --extra=devThe repository includes an example project that demonstrates the package's functionality:
$ uv run python manage.py makemigrations
$ uv run python manage.py migrate
$ uv run python manage.py loaddata testdata
$ uv run python manage.py syncoptions
$ uv run python manage.py runserverLog in via the admin at http://127.0.0.1:8000/admin/ (username: admin, password: pass), then access the example project at http://127.0.0.1:8000/.
Run the full test suite:
$ uv run nox -s testsRun tests with specific Python and Django versions:
$ uv run nox -s tests -- python="3.12" django="5.1"Run a specific test file:
$ uv run nox -s tests -- example_project/test_models.pyRun tests directly with pytest and coverage:
$ uv run coverage run -m pytest -vv
$ uv run coverage reportList the available Nox sessions:
$ uv run nox --list-sessionsRun all pre-commit hooks:
$ uv run nox -s pre-commit -- run --all-filesThe project uses:
- ruff for formatting and linting (120 character line length)
- bandit for security checks
Install pre-commit hooks to run checks automatically on each commit:
$ uv run nox -s pre-commit -- installBuild docs once:
$ uv run nox -s docs-buildBuild and serve with live reload:
$ uv run nox -s docsOpen a pull request to submit changes to this project.
Your pull request needs to meet the following guidelines for acceptance:
- The Nox test suite must pass without errors and warnings.
- Include unit tests. This project maintains high code coverage.
- If your changes add functionality, update the documentation accordingly.
Feel free to submit early, though -- we can always iterate on this.
It is recommended to open an issue before starting work on anything. This will allow a chance to talk it over with the owners and validate your approach.
If you encounter trigger conflicts during development:
$ uv run python manage.py maketriggers --force
$ uv run python manage.py migrate$ uv run pre-commit run --all-files
$ uv run pre-commit autoupdate$ rm -rf docs/_build
$ uv run nox -s docs-build