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:
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.
Nua uses Abilian DevTools to manage its QA process.