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.