Contributing¶
Pull requests are welcome. Please keep changes focused and match the existing style in the files you touch.
Quick start for contributors¶
- Install in editable mode with dev dependencies:
pip install -e ".[test,dev,docs,reports]"
Use pip install -e ".[all]" only when you also need the heavier data-driven dependencies
(scikit-learn and torch).
-
Read the architecture overview: Architecture explains the benchmark loop, key modules, and how to add generators, contaminations, and estimators.
-
Follow the estimator guide if needed: Adding estimators shows the shortest path for enrolling a new estimator.
-
Run validation before submitting:
python -m ruff check .
python -m pytest
python -m mkdocs build --strict
python -m build
- Verify smoke output for packaging or CLI changes:
lrdbench list-suites
lrdbench run smoke_ground_truth --dry-run
lrdbench run smoke_ground_truth
lrdbench validate-output reports/<run_id>
If you are working in a minimal environment without pytest-cov, use
python -m pytest -q -o addopts='' for a no-coverage smoke check. Full submissions should still
run the default python -m pytest after installing the test extra.
Checklists and policies¶
- Contributor checklist: pre-submission checklist for estimators, outputs, and validation.
- Estimator contract: formal contract every estimator must satisfy.
- Third-party estimator workflow: how to register estimators without modifying the core package.
- Leaderboard submission policy: rules for public leaderboard entries.
Getting help¶
If you are unsure whether a change fits the project scope, open a GitHub issue first. For common errors during development, see FAQ.