Development¶
Setup¶
uv venv --python 3.12 .venv && source .venv/bin/activate
uv pip install -e ".[dev]" -e bonito-store -e bonito-api -e bonito-mcp
Tests + lint¶
The collector is read-only and never builds SQL from client input. Keep it
that way: fixed queries over system views, values only via %s params.
Branching & releases¶
- Work on a
feat/bon-0XX-*branch; open a PR tomain. - Each package has its own version (
bonito-collector,bonito-store,bonito-api,bonito-mcp-server) — seepackage-env-standardsfor the PyPI publish flow (token in macOS Keychainpypi-token). - Git tags follow
bonito-<package>-v<semver>(e.g.bonito-collector-v0.2.0).
Docs¶
Docs live in docs/ (mkdocs-material). Build locally:
Docs live at bonito.sofe.dev/docs (mkdocs-material served inside the
bonito-landing Astro site). Build + publish:
mkdocs build # → site/
cp -R site/ ~/dev/breakingthecloud/bonito-landing/public/docs/
# then build + deploy bonito-landing (CF Pages → bonito.sofe.dev)
site_url is https://bonito.sofe.dev/docs/ and overrides/main.html
injects <base href="/docs/"> so root-relative assets resolve under the
subpath.