Local Development Dependencies¶
Tools required for local development in this monorepo.
Required Tools¶
| Tool | Version | Purpose | Install |
|---|---|---|---|
| Python | 3.12+ | Runtime | python.org or pyenv install 3.12 |
| uv | latest | Dependency management | docs.astral.sh/uv |
| Git | 2.x | Version control | git-scm.com |
Recommended Tools¶
| Tool | Purpose | Install |
|---|---|---|
| pyenv | Python version management | github.com/pyenv/pyenv |
| pre-commit | Git hook management | pip install pre-commit |
| Docker | Containerization | docker.com |
| markdownlint-cli2 | Markdown linting | npm install -g markdownlint-cli2 |
Quick Setup¶
# 1. Install Python 3.12+ (using pyenv)
pyenv install 3.12
pyenv local 3.12
# 2. Install uv
pip install uv
# 3. Install pre-commit hooks
pip install pre-commit
pre-commit install
# 4. Install all project dependencies
python scripts/setup-local-deps.py
# 5. Verify everything works
./scripts/local-ci-check.sh
Python Version¶
The minimum Python version for this project is 3.12, as specified in
.python-version and documented in
ADR-002.
Use pyenv to manage Python versions:
uv¶
uv manages dependencies, virtual environments, and package metadata for each application and library in the monorepo. See ADR-015.
# Install uv
pip install uv
# Install a project's dependencies
cd apps/example-app
uv sync
# Run a command in the project's virtual environment
uv run pytest
Ruff¶
Ruff handles both linting and formatting for Python code. See ADR-005.
# Check formatting
uv run ruff format --check .
# Auto-format
uv run ruff format .
# Lint
uv run ruff check .
# Lint with auto-fix
uv run ruff check --fix .
Pre-commit¶
Pre-commit runs quality checks automatically before each commit: