Contributing¶
Thanks for considering a contribution! This project is small and pragmatic — PRs welcome on any of the items listed in the roadmap, or any bug fix or improvement.
Development setup¶
Requirements: Python 3.12+ and Docker (for image-related changes).
git clone https://github.com/raedkit/ovh-voip-spam-filter.git
cd ovh-voip-spam-filter
python3 -m venv .venv
.venv/bin/pip install -e ".[dev]"
Before opening a PR¶
Run the full quality suite locally:
If you touched the Dockerfile, verify the image still builds:
If you touched the docs, preview them locally:
Branch model¶
mainis the stable branch — anything merged here passes CI and is potentially shippable.- Feature branches:
feat/<short-description> - Bug fixes:
fix/<short-description> - Chores / tooling:
chore/<short-description> - Docs only:
docs/<short-description>
Commit messages¶
Conventional Commits are suggested but not required:
feat: add EXTRA_CALL_NUMBERS overlay support
fix: handle 429 without Retry-After header
docs: clarify reconciliation semantics in FR README
chore(deps): bump ruff to 0.12
A clear imperative-mood summary line is what matters.
Pull request checklist¶
- Tests cover the change (or explain in the PR description why no test)
-
ruff check,ruff format --check,mypy,pytestall pass locally -
CHANGELOG.mdupdated under the[Unreleased]section - If a public-facing change, the README/docs reflect it
Reporting bugs and feature requests¶
Use the issue templates on GitHub. Security-sensitive issues should go through the security policy instead.
Code of conduct¶
By participating, you agree to the Contributor Covenant Code of Conduct.
License¶
By contributing, you agree that your contributions will be licensed under GPL-3.0-or-later.