How to contribute?
We welcome bug reports, feature requests, and pull requests. This project uses uv for Python version, dependency, and project management.
General tips
- Prefer contributing via forks, especially for external contributors
- Give only appropriate names to commits / issues / pull-requests
Release process
Despite the fact that the framework is very small, we want to maintain its consistency. The release procedure looks like this:
- pull-request is approved by maintainers and merged with squashing commits
- a new tag is being released to the github repository and pypi with GitHub Actions
Development
We try to maintain good practices of readable open source code. Therefore, if you want to participate in the development and open your pool request, pay attention to the following points:
-
To install the project with all development dependencies, run:
You can also useuv sync --locked --all-extras --dev --group=scriptspipin your own Python environment, but usinguvis the preferred way cause of possible dependency resolve problems.
# dev version pip install -e ".[dev]" # scripts version for running examples pip install -e ".[scripts]" -
Before committing or pushing changes run the formatters from the repository root:
uvx isort src tests && uvx black src tests -
To run tests locally with coverage enabled:
uv run pytest --cov=. --cov-branch tests -
To add new dependencies, run:
# prod version uv add <new-package> # dev version uv add --dev <new-package> # scripts version uv add --group=scripts <new-package> -
To buid and run docs locally, run:
uv run --dev mkdocs serve -
To run any debug scripts with the project env, run:
uv run <script.py> --group=scripts -
To run Jupyter notebooks with the project env, run:
uv run --group=scripts --with jupyter jupyter lab