Contributing

Any form of contribution is appreciated. If you found a bug or have a feature request, please file an issue. If you want to help with the documentation or want to contribute code, please open a pull request.

Bemerkung

Please read this page carefully before contributing.

Organization and branches

The stable development happens on the main-branch for which only maintainers have write access. Any pull request should hence be targeted at main. Regularly, the production instances are updated to the latest main version, in particular these are considered to be stable.

If you have standard write access to the repository, feel free to create new branches. To make organization easier, please follow the branch naming convention: <username>/<feature>.

Workflow

  • request a gitea account from the project maintainers

  • decide on an issue to work on or create a new one

  • branch out to an own branch (naming convention: <username>/<feature>) from the main-branch

  • work on the issue and commit your changes

  • create a pull request from your branch to the main-branch

Documentation

If you want to contribute to the documentation, please follow the steps below.

Online (latest release version): https://chrisflav.github.io/kompass

To read the documentation build it locally and view it in your browser:

cd docs/
make html

# MacOS (with firefox)
open -a firefox $(pwd)/build/html/index.html
# Linux
firefox $(pwd)/build/html/index.html

Code

If you want to contribute code, please follow the inital setup steps in the Development Setup section. And dont forget to document your code properly and write tests.

Linting and formatting

We use pre-commit to automatically lint and format the (python) code. To locally run pre-commit, install:

pip install pre-commit

Then you can manually run the linters and formatters:

pre-commit

This runs the suite on all staged files. If you want to run it on all files, use

pre-commit run --all-files

Tests

Full test coverage is enforced by continuous integration, for more information see Testing.