Contributing#

Contributing to the code base#

Requirements#

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 git@github.com:rayference/dessinemoi.git

Enter the created repository and set up the development environment:

cd dessinemoi
rye sync

Finally, activate the pre-commit hooks:

pre-commit install

Running tests#

The testing process of Dessine-moi 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: 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 (whats_new.md) with the title Dessine-moi <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.