Contributing¶
Setup¶
git clone https://github.com/FireDynamics/FlameTrack.git
cd FlameTrack
pip install -e ".[dev]"
pre-commit install
Running Tests¶
Unit tests (fast, no display needed):
pytest tests/unit/
Full test suite (requires Xvfb on Linux or macOS):
pytest tests/
On Linux CI, tests run under xvfb-run automatically. On macOS without a
display, PyQtGraph widget tests are skipped automatically.
Code Quality¶
Pre-commit runs automatically on every git commit:
ruff — linting and import sorting
ruff-format — formatting (replaces black)
mypy — type checking
trailing-whitespace, end-of-file-fixer
Run manually against all files:
pre-commit run --all-files --hook-stage manual
Branch & PR Workflow¶
Create a feature branch:
git checkout -b feature/my-featureMake changes, write tests
Commit — pre-commit hooks run automatically
Open a pull request against
main
Releases¶
Beta release (publishes to TestPyPI):
git tag v1.x.xb1
git push origin v1.x.xb1
Stable release (publishes to PyPI):
git tag v1.x.x
git push origin v1.x.x
The release workflow uses setuptools-scm to derive the version from the
git tag automatically — no manual version bump needed.