Skip to content

Contributing

Pull requests are welcome. Please keep changes focused and match the existing style in the files you touch.

Quick start for contributors

  1. 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).

  1. Read the architecture overview: Architecture explains the benchmark loop, key modules, and how to add generators, contaminations, and estimators.

  2. Follow the estimator guide if needed: Adding estimators shows the shortest path for enrolling a new estimator.

  3. Run validation before submitting:

python -m ruff check .
python -m pytest
python -m mkdocs build --strict
python -m build
  1. 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

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.