Contributing

Contributing to the code base

Requirements

Developing requires:

  • the uv package manager;

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

Setting up a development environment

Clone the repository:

git clone git@github.com:rayference/dessinemoi.git

Enter the created repository and set up the development environment:

cd dessinemoi
uv sync

Finally, activate the pre-commit hooks:

pre-commit install

Running tests

The testing process of Dessine-moi uses pytest. A uv task is defined to help you run the tests:

uv run task 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 Rye task:

uv run task docs

Incremental autobuild is also supported:

uv run task 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:

    uv version <MAJOR.MINOR.PATCH>
    
  4. Create and push a commit with the following message: dessinemoi 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 (CHANGELOG.md) with the title Dessine-moi <MAJOR.MINOR.PATCH> (upcoming release).

  2. Bump the version to the next development one:

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