Thanks for your interest in contributing! π¦
- Check existing issues β your idea may already be tracked
- Open an issue first for significant changes β alignment before code saves everyone time
- Small fixes (typos, docs, test coverage) β PRs welcome directly
git clone https://github.com/yhyatt/DMAF.git && cd DMAF
python -m venv .venv && source .venv/bin/activate
pip install -e ".[all,dev]"
pre-commit install # ruff + mypy run before every commit- Fork β feature branch (
git checkout -b feat/my-thing) - Make changes
pytest tests/ -vβ all tests passruff check src/ tests/+mypy src/dmafβ no new errors- Open PR against
main
- Python 3.10+ type hints throughout (
list[str]notList[str]) - Pydantic for any new config fields (add to
src/dmaf/config.py) - Tests required for new functionality β see
tests/for mock patterns - Ruff enforced in CI β run
ruff check --fixbefore pushing - No hardcoded project IDs, emails, or personal data anywhere
- Create
src/dmaf/face_recognition/your_backend.py - Implement
load_known_faces(known_root, **params)andbest_match(known_faces, img, **params) - Register in
src/dmaf/face_recognition/factory.py - Add optional dep to
pyproject.toml - Add tests in
tests/test_face_recognition/
See AGENTS.md for full architecture context.
Open a GitHub Discussion or file an issue.