Skip to content

Development process and tools

The project is made of several packages, but live in a single repository (a “monorepo”).

To start hacking on the project, you need git and poetry.

You will need also an instance of Docker, either locally or remotely (in which case you should set the DOCKER_HOST environment variable accordingly).

Monorepo and virtual environments

The project is a monorepo, so you need to install all dependencies in a single virtual environment.

To start hacking on the project, you should mostly need to type:

poetry shell
poetry install

This single environment can be used to develop all packages (i.e. you don’t need to activate a specific environment for each package).

But since all subpackages have different sets of dependencies, you can use Nox to run lint and tests for each subpackage:

Additional tools

Makefile and Invoke

We provide a Makefile to ease some common tasks. Type make help to get a list of the most useful available targets.

For a few complex tasks, we also provide a tasks.py file, which can be used with Invoke. Type invoke --list (or inv -l) to get a list of the available tasks.

Abilian DevTools

Nua uses Abilian DevTools to manage its QA process.