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 |
| Poetry | 2.x | Dependency management | install.python-poetry.org |
| 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 Poetry
curl -sSL https://install.python-poetry.org | python3 -
# 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:
Poetry¶
Poetry manages dependencies, virtual environments, and package metadata for each application and library in the monorepo. See ADR-003.
# Install Poetry
curl -sSL https://install.python-poetry.org | python3 -
# Install a project's dependencies
cd apps/example-app
poetry install
# Run a command in the project's virtual environment
poetry run pytest
Ruff¶
Ruff handles both linting and formatting for Python code. See ADR-005.
# Check formatting
poetry run ruff format --check .
# Auto-format
poetry run ruff format .
# Lint
poetry run ruff check .
# Lint with auto-fix
poetry run ruff check --fix .
Pre-commit¶
Pre-commit runs quality checks automatically before each commit: