OpenAtlas is developed with some standards in mind.
Of course we do our best to avoid them in the first place but if bugs get apparent they always have the highest priority.
| 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 |
| Version | PyCharm | Configuration | ||
|---|---|---|---|---|
| PEP 8 | integrated | Style guide for Python code | ||
| pytest | 7.2.1 | integrated | tests/.pytest.ini, tests/.coveragerc | Tests Python code using assertions, Can be run manually with: pytest. Some parts (e.g. mail) are excluded from coverage via the # pragma: no cover comment. |
| 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
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.