Skip to content

Contributing

Thanks for your interest in MarkoWizard.

Setup

The project uses uv.

git clone https://github.com/OutliersAnalytics/MarkoWizard
cd MarkoWizard
uv sync

uv sync installs the library plus the dev dependency group (pytest, ruff).

Checks

uv run pytest          # tests
uv run ruff check      # lint
uv run ruff format     # format

Please make sure both pass before opening a pull request.

Scope

markowizard/ is the installable library — keep it dependency-light and free of web/UI concerns. The web application under backend/ and frontend/ is not part of the published package; run it with:

uv run --with-requirements backend/requirements.txt uvicorn backend.main:app --port 8000

Building the docs

This site is built with MkDocs Material and mkdocstrings (API pages are generated from the library's docstrings). To preview locally:

uv run --group docs mkdocs serve

It publishes automatically to GitHub Pages on every push to main that touches docs/, mkdocs.yml, or markowizard/ (see .github/workflows/docs.yml).

Pull requests

  • Branch off main, keep changes focused.
  • Add or update tests for behaviour changes.
  • Describe what changed and why.