Files
k7/CONTRIBUTING.md
T
2025-10-23 22:12:02 +03:00

1.5 KiB

Contributing to K7

Thanks for your interest in contributing!

We chose a lean and minimal approach to make development on this project as simple as possible:

  • Infra is handled by a single Ansible playbook
  • The CLI and API are implemented respectively with Typer and FastAPI in Python, for simplicity. They both wrap over the same core module.

Project Direction

Check out the ROADMAP.md to see planned features, current priorities, and long-term goals. It's a great starting point if you're looking for areas to contribute!

Repo Layout

  • src/k7/ CLI, core logic, API server
  • src/katakate/ Python SDK (published to PyPI as katakate)
  • src/k7/deploy/ Ansible playbook to install node
  • utils/ helper scripts

Packaging

  • The root Python packaging (setup.py and MANIFEST.in) builds the katakate SDK for PyPI only.
  • Assets under src/k7/ (including src/k7/deploy/*) are not included in the PyPI package; they are used by the Debian/CLI packaging flow.

Code Style

  • Python: PEP8, explicit types for public APIs, early returns, no inline comments
  • Lint/format with Ruff:
    • Install: pip install ruff
    • Check: ruff check src
    • Format: ruff format src

Building

  • CLI deb helpers live in src/k7/cli/ scripts
  • Make targets may be available: make to list

Releases

  • Bump versions in src/k7/__init__.py and src/katakate/__init__.py
  • Tag vX.Y.Z to build artifacts (CI may publish .deb and wheels)

Reporting Issues

  • Include steps, expected vs actual, logs, and environment (arch/OS/hardware)