These guidelines describe, which technologies should be used. There are 2 different software stacks in general: the core stack is the actual source code and the extending stack integrates the source code with the environment. The core stack represents the minimal software required to run it. The extending stack extends the usefulness of the core stack.
By default, the core stack is more restricted as the extending one, because the second stack needs to be compatible with first one. Also, one wants the core stack to be compatible to as many extending stacks as possible, which makes the software more portable. This requirement does not exist the other way around by default.
Every software stack should be compatible to the software project file system standards by default.
The following software stacks are currently recommended:
- Ansible for remote computer configuration
- Shell Software
- Python 3 for complex software integration
- Maven 3 as the build system for the main programs
- Java 11 as the programming language for the main programs