Contributing¶
Thanks for your interest in piighost. This page summarises the contribution workflow. For the authoritative version, see CONTRIBUTING.md at the repository root.
Prerequisites¶
- Python 3.10+
uvas package manager- A GitHub account
Getting started¶
- Fork the repository on GitHub.
-
Clone your fork locally:
-
Install dependencies:
Workflow¶
Create a branch¶
Always from master:
Follow the conventions¶
- Protocols at every pipeline stage keep components swappable.
- Frozen dataclasses for data models (
Entity,Detection,Span). ExactMatchDetectorin tests, never a real NER model in CI.- Conventional commits through Commitizen (
feat:,fix:,refactor:, etc.).
Local checks¶
Before opening a PR:
Open the pull request¶
- Clear title following the Commitizen format.
- Description that explains the why rather than the what.
- Link the related issue (
Fixes #42). - Screenshots or output samples when relevant.
Extension points¶
The most common places to contribute without touching the core:
- New detector: implement the
AnyDetectorprotocol. See Extending PIIGhost. - New regex pack: add a module under
piighost/detector/patterns/. - New validator: a
Callable[[str], bool]function inpiighost/validators.py. - New placeholder factory: implement
AnyPlaceholderFactory.