Many of our features come from contributions from external collaborators. Please help us improve Kapitan by extending it with your ideas, or help us squash bugs you discover.
It's simple, just send us a PR with your improvements!
We highly recommend that you create a dedicated Python environment for Kapitan. There are multiple solutions:
Once you've done it, please install all Kapitan's dependencies:
python3 -m venv env source env/bin/activate pip3 install black # required for `make test_formatting` pip3 install -r requirements.txt
Because we are using a pinned version of reclass which is added as a submodule into Kapitan's repository, you need to pull it separately by executing the command below:
git submodule update --init
Check if gcc is installed:
brew install gcc@5
make test to run all tests. If you modify anything in the
make sure you replicate the compiled result of that in
If you add new features, run
make test_coverage && make test_formatting to make sure the
test coverage remains at current or better levels and that code formatting is applied.
If you would like to evaluate your changes by running your version of Kapitan, you can do
that by running
bin/kapitan from this repository or even setting an alias to it.
python3 -m unittest tests/test_vault_transit.py
To make sure you adhere to the Style Guide for Python (PEP8)
Python Black is used to apply the formatting so make sure you have it installed with
pip3 install black.
Apply via Git hook
pip3 install pre-committo install precommit framework.
- In the Kapitan root directory, run
- Git add/commit any changed files you want.
make format_codestyle before submitting.
- Create a branch named
v0.*.*-rc.*if you want pre-release versions to be uploaded.
- Update CHANGELOG.md with the release changes.
- Once reviewed and merged, Github Actions will auto-release.
- The merge has to happen with a merge commit not with squash/rebase so that the commit message still mentions
Packaging extra resources in python package
To package any extra resources/files in the pip package, make sure you modify both