Get the code
git clone https://github.com/t00m/KB4IT
cd KB4IT
You need Python 3.11 or newer and uv.
Run your working copy
Install it as your kb4it command:
uv tool install . --force
kb4it --version # KB4IT 0.8.0 (v0.7.10-12-gd925c10)
Run the same command again after each change. scripts/install/local/install_kb4it_from_source.sh does the same and falls back to pipx when uv is missing.
Run the tests
./scripts/devel/test.sh # everything
./scripts/devel/test.sh -q tests/core/test_cli.py
The script runs pytest under Python 3.11 with the exact dependencies, through uv, so nothing is installed in your system. Any pytest option works after it.
The tests run KB4IT on throwaway knowledge bases with their own home folder, so they never touch your ~/.kb4it.
| Folder | Covers |
|---|---|
tests/core/ |
The command line, settings, documents, builds, helpers, versions |
tests/themes/ |
techdoc, blog and bookshelf |
tests/apphelp/ |
The apphelp theme in detail |
tests/tui/ |
Every screen of the terminal interface |
Check the themes
./scripts/devel/check_themes.sh
It builds every sample app of every theme tracked in git and fails on any error or warning. CI runs it on every push, and a release cannot be made without it.
Build this help
kb4it build help/config/repo.json
xdg-open help/target/index.html
See Write these pages.
Send a change
- Open an issue first for anything large, so the approach can be agreed.
- Keep each commit to one change, with a Conventional Commits message such as
fix: keep whole sentences in drafted release notes. - Add a line to the
[Unreleased]section ofCHANGELOG.md. - Make sure the tests and the theme check pass, then open a pull request against
master.