OpenAtlas is developed with some standards in mind.

Open source

To guaranty that the OpenAtlas application can be shared as open source (GPL 2) make sure that:

Bugs

Of course we do our best to avoid them in the first place but if bugs get apparent they always have the highest priority.

HTML

Type-/JavaScript

Version Setup Configuration
Eslint 8.35.0 Through npm in relevant projects .eslintrc Checks for errors, coding standards and code smells in js/ts code

CSS

Python

Version PyCharm Configuration
PEP 8 integrated Style guide for Python code
nose tests 1.3.7 integrated tests/.noserc
tests/.coveragerc
Cover Python code using assertions, some parts (e.g. mail) are excluded via # pragma: no cover.
Can be run manually with: nosetests3 -c tests/.noserc
Mypy 1.01 plugin Mypy mypy.ini Optional static type checker for Python
Pylint 2.16.2 plugin Pylint .pylintrc Checks for errors, coding standards and code smells
SonarQube 5 sonar-project.properties Cumbersome to install (so not mandatory for developers) but interesting code hints. PyCharm plugin exists but doesn't seem to work for Python

Radon can be used to compute various code metrics. Installation: apt install radon. To show e.g. metrics about cyclic complexity: radon cc openatlas

Software packages (Debian)

Although pip offers some advantages (e.g more current packages and usable for different installation environments) we prefer packages from the Debian repository for the OpenAtlas backend.
Main reasons concern security, reliability and stability.