- All changes must be covered with tests (ideally unit + integration)
- All commits must follow the conventional commit format
- All changes must pass the workflow tests
- If a bug is fixed, a test should be added to ensure regression doesn't appear
This project uses uv. To set up the project locally, use
uv pip install .To test, you also need development tools, add them to your local environment using this command:
uv pip install --group devThen you can use tox to run linting and unit tests.
For integration tests you also need podman or docker with
compose. Run:
podman compose up -d Wait a while and then run:
tox -e integrationDon't forget to clean up the test environment afterward. Use
podman compose downto do that (or switch podman with docker depending on your tool of choice).
After each contribution to the main branch, an automatic workflow runs to check if any changes with conventional commit messages were added. If yes, this workflow creates a pull request with proposed changelog.
To create a new tag, simply merge the automated pull request. This tag is automatically released to GitHub releases.
To release a new version to PyPI, go to Actions and select "release". Run this action on your newly created tag.
NOTE: Do not run PyPI releases on main branch. Always use Git tags!