mirror of
https://github.com/yakhyo/uniface.git
synced 2026-05-16 05:27:53 +00:00
* fix: Fix installation conflict between onnxruntime and onnxruntime-gpu * fix: Fix CI, notebooks, type hints, and packaging issues found in audit * feat: Add new release config * ci: Automate release pipeline and document release process
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 → Run workflow with a PEP 440 version (e.g. 0.7.0, 0.7.0rc1). The workflow bumps pyproject.toml + uniface/__init__.py, tags the commit, and publishes to PyPI. Docs redeploy only for stable releases.
See CONTRIBUTING.md for the full process.
Questions?
Open an issue on GitHub.