Developer Tooling
Purpose
Document the standard build, test, lint, formatting, and security commands used by developers and CI.
Command reference
| Command | What it does |
|---|---|
make build |
Builds local containers. |
make test |
Runs backend unit/integration tests. |
make smoke |
Runs smoke subset (--tag smoke). |
make test-full |
Runs test then smoke. |
make lint |
Runs Ruff lint summary via tools/lint.py. |
make security |
Runs Bandit summary via tools/security.py. |
make format |
Runs Ruff formatter for backend code. |
make summary |
Runs build + format + test + smoke + security in one flow. |
Behavior details
- Tooling commands run inside Docker for environment consistency.
make lintandmake securitymountpyproject.tomlas/config/pyproject.toml.- Test output uses a progress-aware runner (
backend/backend/testing/runner.py).
Tunable environment variables
TEST_PROGRESS_EVERY: progress output cadence.LINT_MAX_RULES,LINT_MAX_ISSUES: lint summary truncation.SECURITY_MAX_TESTS,SECURITY_MAX_ISSUES: security summary truncation.
Code locations
- Make targets:
Makefile - Compose services:
compose.yaml - Lint summary:
backend/tools/lint.py - Security summary:
backend/tools/security.py - Test runner:
backend/backend/testing/runner.py
How to verify
make buildmake summary
Common issues
- Fresh environments require an image build before lint/security/format commands.
- Frontend tooling depends on the container-managed
frontend_node_modulesvolume.