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 lint and make security mount pyproject.toml as /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 build
  • make summary

Common issues

  • Fresh environments require an image build before lint/security/format commands.
  • Frontend tooling depends on the container-managed frontend_node_modules volume.