Developer Manual
This manual describes, how you can support the development, change code and make it convenient to merge your desired changes.
Architecture
Before starting development, it is strongly recommended to check out the architecture of the software in the Architecture Manual beforehand.
Requirements
It is not strictly required, but a good idea to have the following tools at hand for validation and testing.
- Bash
- ShellCheck for linting
- Yamllint for linting
- Bats for testing
- MkDocs
- some kind of spell checker
You should test all changes in the script files and Yaml files before adding content.
Tests
The shell scripts in the repository are tested with bats-core. You can find all defined tests in the tests/ folder. After each change, you should check if you can add tests and if all tests pass successfully. This can be done like so:
$ bats tests/test_peep.bats
test_peep.bats
✓ run entire script
✓ print_with_icon with icon
....
✓ print_os_version with SHOW_OS_VERSION=true
✓ print_os_version with SHOW_OS_VERSION=false
30 tests, 0 failures
You can also consult the included gitlab-ci.yml file for more tests that might be useful for your workflow.
Documentation
For documentation, we rely on Markdown and MkDocs. You can run the generated documentation locally with:
mkdocs serve --strict --livereload