Contributing
Contributions are welcome — bug reports, feature requests, docs, tests, and parser plugins. The full guide is CONTRIBUTING.md.
Development environment
pip install -e ".[dev]"
pytest tests/ -q
Run the full suite before opening a PR. The project enforces a zero-noise contract: legal configuration changes must not introduce new drift/constraint/alert output — regressions here are caught by golden tests.
What to know
- Dual backend: parsers run in C and pure Python; changes must keep both backends
semantically equivalent (
tests/test_dual_mode.py). - Zero-noise: any new conditional output must be off by default and byte-identical to the previous release when disabled.
- Plugin parsers: new formats register via the
cfgdrift.parsersentry point or theregister_plugindecorator. - Style: keep the codebase's existing structure; add focused tests alongside any behavior change.
Issues & PRs
Use the provided GitHub issue/PR templates. First-issue and PR-response targets: ≤ 48h for questions, ≤ 24h after v0.13.0 launch. Code of Conduct follows the Contributor Covenant.