CONTRIBUTING.md 1.44 KB
Newer Older
Sandro Eiler's avatar
Sandro Eiler committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
Languages
---------

As programming language, *python3* is used.
For the generated code representing a role model and its evaluation mechanisms, *Jinja2* is used as templating language. For configuration files, the *YAML* standard is chosen.

Coding conventions
------------------

Coding conventions are adapted to *flake8* and *black*.
flake8 is a linting tool performing static analysis of source code which verifies pep8. pep8 [16] is a style guide with many conventions.
black is an opinionated tool that helps formatting code.

Development environment
-----------------------
The operating system used for implementing and testing, was Ubuntu 19.10. For package management, pip and the open source system Conda is used. As version control system, GIT was selected.

Contribution workflow
----------------------

The following steps are recommended for contributing to the project and represent the development workflow:

1. Getting to know coding conventions, license and the documentation.
2. Work on changes in assigned branch.
3. Test the results.
4. Commit changes. Black and flake8 possibly interfere and changes have to be applied before commitment is possible.
5. Merge to the master branch.
6. Update documentation.

Documentation
--------------
The documentation is written with the markup language Markdown and deployed with the tool and platform readthedocs.

Licensing
---------

All contributions are licensed under GNU General Public License (GPLv3).