Contributing to the code base#


Developing requires:

  • the Rye package manager;

  • the pre-commit git hook manager, typically installed with pipx.

Setting up a development environment#

Clone the repository:

git clone

Enter the created repository and set up the development environment:

cd pinttrs
rye sync

Finally, activate the pre-commit hooks:

pre-commit install

Running tests#

The testing process of Pinttrs uses pytest. A Make target is defined to help you run the tests:

make test

This will run pytest for all relevant files (unit tests and doctests included in the documentation).

Building the documentation#

To build the documentation, use the dedicated Make target:

make docs

Incremental autobuild is also supported:

make docs-serve

Maintainers: release process#

Pre-release steps

  1. Make sure that all tests pass.

  2. Make sure the change log is up-to-date. Add the release date to the relevant section header.

  3. Set the package version number to the target value:

    rye version <MAJOR.MINOR.PATCH>
  4. Create and push a commit with the following message: pinttrs version <MAJOR.MINOR.PATCH>.

Release steps

  1. Create a new release on GitHub.

  2. When asked for a tag, create a new one (v<MAJOR.MINOR.PATCH>).

  3. The automated workflow will build the package and upload it to PyPI.

Post-release steps

  1. Create a new section in the change log ( with the title Pinttrs <MAJOR.MINOR.PATCH> (upcoming release).

  2. Bump the version to the next development one:

    rye version <MAJOR.MINOR.PATCH>.dev
  3. Create and push a commit with the following message: Version <MAJOR.MINOR.PATCH> ready for development.


Not planned yet

  • Allow automatic string interpretation using the built-in registry (this feature should have a switch based on a user setting).