How to contribute
Contributions to either the code, localization, or the documentation are very welcome!
Development task runner
We use just
to execute common tasks. It is available for any platform. Once installed, you can see a list of available commands by running just
.
Available recipes:
help # Lists all available commands.
[lifecycle]
bootstrap # Setup the project and update dependencies.
build *ARGS # Build Python package
clean # Removes pycache directories and files, and generated builds.
docs *ARGS # Access mkdocs commands
fresh # Destroy and recreate the virtual environments from scratch
upgrade # Update project dependencies
[qa]
check-types # Check types
fmt # Run just formatter and ruff formatter.
lint # Run ruff linting
safety # Runs bandit safety checks.
test *ARGS # Run the test suite
tox *ARGS # Run tox for code style, type checking, and multi-python tests. Uses run-parallel.
[run]
browser # Open a web browser to the development server.
manage *ARGS # Access Django management commands.
req path="app/groups/" *ARGS # Send a request to the development server to print to stdout. Uses curl if present, else httpie.
serve *ARGS # Run the development server
[uv]
uv-install # Downloads and installs uv on your system.
uv-uninstall # Uninstall uv
uv-update # Update uv
Dependencies
We use uv
to manage the Python dependencies.
If you don't have uv
, you should install with just uv-install
.
To install dependencies and prepare pre-commit
hooks you would need to run the bootstrap
command:
Running updates
After pulling new updates from the repository you can quickly install updated dependencies and run database migrations by running just bootstrap
.
Codestyle
After installation you may execute code formatting.
Checks
Many checks are configured for this project.
To run your test suite:
To use pyright for type checking run:
To run linting:
The just safety
command will look at the security of your code.
Before submitting
Before submitting your code please do the following steps:
- Add any changes you want
- Add tests for the new changes
- Edit documentation if you have changed something significant
- Run
just fmt
to format your changes. - Run
just check
to ensure that types, security and docstrings are okay. - Add your name to the
CONTRIBUTERS.txt
file.
Other help
You can contribute by spreading a word about this library. It would also be a huge contribution to write a short article on how you are using this project. You can also share your best practices with us.