Skip to content

Contributing

Prerequisites

Install mise — it will manage Go and uv automatically:

curl https://mise.run | sh
mise install

Tasks

All common tasks are defined in mise.toml and run via mise run <task>:

Task Description
mise run build Build the binary
mise run test Run all tests (with race detector)
mise run lint Run golangci-lint
mise run fmt Format Go code (gofumpt)
mise run fix Run go fix
mise run vet Run go vet
mise run check Run all checks (fmt → fix → vet → lint → test)
mise run docs Build docs site
mise run docs-serve Serve docs locally with live reload
mise run docs-deploy Deploy docs to GitHub Pages
mise run clean Remove bin/ and site/

Development Workflow

Make a change, then run all checks:

mise run check

Or run individual steps:

mise run fmt
mise run test
mise run lint

Documentation

Documentation lives in docs/ and is built with MkDocs Material.

To preview changes locally:

mise run docs-serve

This starts a live-reloading server at http://127.0.0.1:8000.

Python dependencies are declared in pyproject.toml and managed by uv — no manual pip installs needed.