mirror of
https://github.com/yakhyo/uniface.git
synced 2026-05-15 12:57:55 +00:00
2.6 KiB
2.6 KiB
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
- Fork the repository
- Create a feature branch
- Write tests for new features
- Ensure tests pass
- Submit PR with clear description
Adding New Models
- Create model class in appropriate submodule
- Add weight constants to
uniface/constants.py - Export in
__init__.pyfiles - Write tests in
tests/ - Add example in
tools/or notebooks
Releases
Releases are automated via GitHub Actions. Maintainers trigger Actions → Release Pipeline → Run workflow with a PEP 440 version (e.g. 0.7.0, 0.7.0rc1). The pipeline runs tests, bumps pyproject.toml + uniface/__init__.py, tags the commit, publishes to PyPI, and creates a GitHub Release. Docs redeploy only for stable releases.
See CONTRIBUTING.md for the full process.
Questions?
Open an issue on GitHub.