Tooling & DX for FastAPI DDD Projects (uv / ruff / mypy / CI)
This skill is about developer experience and quality automation for a DDD FastAPI project, following the conventions in dddpy.
Goals
- •One-command local setup (
make install) - •Fast feedback loop (
make test,make format,make dev) - •Reproducible CI (GitHub Actions + Python matrix)
Recommended stack (dddpy-style)
- •Python
>=3.13 - •
uvfor venv + dependency install + running tools - •
rufffor formatting/linting - •
mypyfor type checking - •
pytestfor tests
Makefile workflow (core targets)
Keep a small Makefile that shells out to tools inside .venv/:
- •
venv: create.venv - •
install: install editable package + dev deps - •
test: run mypy + pytest - •
format: run ruff formatter - •
dev: runfastapi devvia uv
CI workflow
Run make install + make test on push/PR with a Python version matrix (e.g., 3.13, 3.14) and install uv in CI.
App bootstrap patterns
- •Use FastAPI
lifespanto create tables on startup and dispose the engine on shutdown. - •Keep SQLAlchemy engine/session setup in
infrastructure/sqlite/database.py(or equivalent). - •Configure logging once at startup (
logging.config.fileConfig(...)).
For concrete file templates (Makefile, workflow YAML, bootstrap snippets), read references/TOOLING.md.