Development#

Contributing#

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

Prerequisites:

  • make

  • python

  • conda

Set up the development environment:

  • clone the repository

  • run make environment

  • now activate the conda environment conda activate quant-met-dev

You can manually run tests using for example tox -e py312 (for running against python 3.12). 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.

To fix the reuse copyright:

reuse annotate --license=MIT --copyright="Tjark Sievers" --skip-unrecognised -r .

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 via:

tox

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 poetry 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.