Skip to content

Contributing

Thank you for contributing to UniFace!


Quick Start

# Clone
git clone https://github.com/yakhyo/uniface.git
cd uniface

# Install dev dependencies
pip install -e ".[dev]"

# Run tests
pytest

Code Style

We use Ruff for formatting:

ruff format .
ruff check . --fix

Guidelines:

  • Line length: 120
  • Python 3.10+ type hints
  • Google-style docstrings

Pre-commit Hooks

pip install pre-commit
pre-commit install
pre-commit run --all-files

Commit Messages

We follow Conventional Commits:

<type>: <short description>
Type When to use
feat New feature or capability
fix Bug fix
docs Documentation changes
style Formatting, whitespace (no logic change)
refactor Code restructuring without changing behavior
perf Performance improvement
test Adding or updating tests
build Build system or dependencies
ci CI/CD and pre-commit configuration
chore Routine maintenance and tooling

Examples:

feat: Add gaze estimation model
fix: Correct bounding box scaling for non-square images
ci: Add nbstripout pre-commit hook
docs: Update installation instructions

Pull Request Process

  1. Fork the repository
  2. Create a feature branch
  3. Write tests for new features
  4. Ensure tests pass
  5. Submit PR with clear description

Adding New Models

  1. Create model class in appropriate submodule
  2. Add weight constants to uniface/constants.py
  3. Export in __init__.py files
  4. Write tests in tests/
  5. Add example in tools/ or notebooks

Questions?

Open an issue on GitHub.