pip install -e ".[dev]"pytest # one Python/Django combo (whatever you installed)
tox # full matrix + lint + type + build
tox -e py312-dj52 # one matrix cell
tox -e lint # ruff check + format
tox -e type # mypy strictruff formatformats code; CI requiresruff format --checkto pass.ruff checklints; configuration is inpyproject.toml.- All new public code requires type hints.
mypy --strictruns in CI.
Place new code in the appropriate subsystem under admin_extended/. Subsystem
boundaries are enforced by admin_extended/tests/test_imports.py. If your
change requires a new dependency direction, update the FORBIDDEN map there
with a comment explaining why.