Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Contributing

Project management is handled by uv which will automatically install development dependencies alongside core dependencies, configure a virtual environment, and install nltools into that environment in editable mode.

Setup

After cloning, enable the shared git hooks:

uv run poe setup-hooks

This enforces conventional commits on all commit messages. The format is:

<type>[optional scope]: <description>

Allowed types: feat, fix, docs, style, refactor, perf, test, chore, ci, build, revert.

Common Commands

Run tests: uv run pytest

Run linting: uv run ruff check

Fix linting: uv run ruff check --fix

Build docs locally: uv run poe docs-build (or uv run poe docs-preview for a live server; both execute the tutorial notebooks, reusing MyST’s execute cache)

Edit a tutorial: uv run marimo edit docs/tutorials/<group>/<notebook>.py, then uv run poe docs-generate to re-render its .md

Generate changelog: uv run poe changelog

Add or remove dependencies: uv add/remove packagename

Add or remove development dependencies: uv add/remove --dev packagename

Build package locally: uv build