Contributing#

Git branches policy#

What follows is a table of the git branches used in the repositories.

Pull requests must be opened on the dev branch.

Branch

Description

Update schedule

master

the main branch

every new release

dev

recent changes are merged here before a new release

at will

Development environment#

Basic#

  1. install

  2. clone the repository

  3. install the development environment

    make install-dev
    

PDF output for Sphinx documentation#

  1. If you are using Debian install these packages

    apt install texlive-latex-extra texlive-fonts-extra latexmk xindy
    

Multiple Python environments#

  1. install asdf and setup the shell environment

  2. install sqlite

    apt install libsqlite3-dev
    
  3. setup multiple Python environments by installing them, for example

    asdf install python 3.12.0 \
        && asdf install python 3.11.6
    

    Have a look at the [tox:tox] section in the /setup.cfg of the project.

    Add these Python versions to the ~/.tools-versions file.

Contribution steps#

  1. write or change code

  2. write unit tests if relevant parts of the code have been added or changed

  3. unit tests are run like this

    make test
    
  4. run this to install the Python program in your user directory

    make install
    

    Important

    add ~/.local/bin to the PATH enviroment variable to have a working executable

  5. if applicable update relevant documentation

  6. to rebuild the documentation, both HTML and PDF, run

    make doc
    
  7. create a new pull request

Note

Use .venv/bin/python3 -m ${module} to run the Python program in the development environment.