Description

The following table describes the development technical stack and explains briefly the choices that have been made.

Need Chosen techno Rational elements

language

python

the language commonly used by the final users

language version

python 3.11

python 3.12 is too recent to be chosen

dependency management

poetry

easy to use, good dependency management

code formatting

black

the current standard

unittests

pytest

standard

lint

pylint, flake8

standard

type check

mypy

commonly used by the team

quality check

sonarqube

commonly used by the team

commit check

pre-commit

commonly used by the team

security check

trivy

used in the previous phase

technical documentation

asciidoctor

good standard, simple syntax, good feedback from a team member