Development#

Contributing#

You can help develop this software further. This should help you get set up to start this.

Prerequisites:

  • python

  • just

  • uv

Set up the development environment:

  • clone the repository

  • run just environment

You can manually run tests using for example just test. After pushing your branch, all tests will also be run via Github Actions.

Using pre-commit, automatic linting and formatting is done before every commit, which may cause the first commit to fail. A second try should then succeed.

After you are done working on an issue and all tests are running successful, you can add a new piece of changelog via scriv create and make a pull request.

Release Walkthrough#

1. Prepare release branch#

Make sure main branch is up to date. Check out a release branch:

git checkout -b release-x.x.x

Where x.x.x is the version number for the upcoming release.

2. Make sure all tests pass#

Run all tests, linting and typechecking via:

just

3. Collect changelog#

Via scriv:

scriv collect --version x.x.x

Sadly, this destroys the reuse information, so that needs to get fixed by putting it back to the top of the file in the changelog.

4. Add new version to docs version switcher#

This needs to be changed in docs/source/extra/versions.json.

5. Bump version#

In pyproject.toml, then lock the new version via uv lock.

6. Prepare Github release#

Merge the release branch and in Github, create a release together with the tag x.x.x. In the release notes, copy the changelog generated by scriv. This will then automatically release the new version of the package.