Run tests, linting, and type checks¶
SimDB’s CI runs four checks on every push and pull request, against Python 3.11, 3.12, and 3.13. Run them locally before opening a pull request.
Tests¶
From the project root:
pytest
Tests run with coverage (configured in pyproject.toml).
Formatting and linting (Ruff)¶
SimDB uses Ruff for both formatting and linting.
The configuration is in pyproject.toml.
python -m ruff format --check # check formatting
python -m ruff format # auto-format
python -m ruff check # lint
python -m ruff check --fix # auto-fix lint issues
Type checking (Ty)¶
SimDB uses Ty for static type checking:
python -m ty check src
CI order¶
The pipeline (.github/workflows/build_and_test.yml) runs, in order:
Formatting (
ruff format --check)Linting (
ruff check)Type checking (
ty check src)Tests (
pytestwith coverage)
Make sure all four pass locally first.