Contributing¶
Thanks for considering a contribution! Please help maintain a high signal-to-noise ratio.
Workflow¶
- Fork & create a feature branch
pip install -e .[dev,docs]- Add / adjust tests (keep coverage high)
- Format & lint:
black . && isort . - Run tests:
pytest -q - (Optional) Build docs locally:
mkdocs serve - Submit PR with concise description & motivation
Commit Messages¶
Use clear, conventional style prefixes when possible (feat:, fix:, docs:, refactor:). Keep the first line ≤ 72 chars.
Code Style¶
- Python ≥ 3.10 (structural typing, dataclasses, pattern matching OK)
- Prefer explicit over implicit; keep internal helpers underscored
- Document tricky algorithms with short rationale comments
Testing¶
Target meaningful edge cases: empty conflicts, unusual delete/add combinations, large blame tables, insertion-heavy diffs.
Documentation¶
Public APIs should have docstrings. If you add a module, add it to mkdocs.yml nav or an existing section.
Release Process¶
Maintainers will bump version in pyproject.toml, tag, and publish to PyPI. Changelog entries should accompany user-visible changes.
Code of Conduct¶
Be respectful and assume positive intent.