Skip to content

Latest commit

Β 

History

History
48 lines (34 loc) Β· 1.61 KB

File metadata and controls

48 lines (34 loc) Β· 1.61 KB

Contributing to DMAF

Thanks for your interest in contributing! 🦞

Before You Start

  • 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

Development Setup

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

Workflow

  1. Fork β†’ feature branch (git checkout -b feat/my-thing)
  2. Make changes
  3. pytest tests/ -v β€” all tests pass
  4. ruff check src/ tests/ + mypy src/dmaf β€” no new errors
  5. Open PR against main

Code Standards

  • Python 3.10+ type hints throughout (list[str] not List[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 --fix before pushing
  • No hardcoded project IDs, emails, or personal data anywhere

Adding a Face Recognition Backend

  1. Create src/dmaf/face_recognition/your_backend.py
  2. Implement load_known_faces(known_root, **params) and best_match(known_faces, img, **params)
  3. Register in src/dmaf/face_recognition/factory.py
  4. Add optional dep to pyproject.toml
  5. Add tests in tests/test_face_recognition/

See AGENTS.md for full architecture context.

Questions?

Open a GitHub Discussion or file an issue.