Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Part IX: Contributing

The workspace is a practical reference implementation rather than a one-off experiment. Contributions are welcome in three forms.

Bug reports and feature requests. Issues with reproduction steps and sample data are the most useful. Small synthetic fixtures that expose a failure mode are especially helpful because they can be added directly to the test suite.

Tests, benchmarks, and datasets. The Python helpers under tools/ and the images in testdata/ are designed for rerunning accuracy and performance experiments after code changes. Extending them, or contributing new datasets, is a good way to validate improvements. The benchmark fixture in Part VIII §7.1 and the ML refiner pipeline in tools/ml_refiner/ have their own knobs and regression gates.

Algorithms. ChESS and the Duda-Frese Radon detector are two points in the design space. New detectors, refiners, or descriptor variants can be added behind the same trait surfaces (CornerRefiner, DetectorConfig presets, DenseDetector implementations) and benchmarked against the shipped pipelines using crates/chess-corners/examples/bench_sweep.rs. Proposals go in docs/, following the existing proposal-*.md templates.

Pre-PR quality gates (also enforced in CI):

python3 tools/check_doc_versions.py
cargo fmt --all --check
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test --workspace --all-features
cargo doc --workspace --no-deps --all-features
mdbook build book

See CLAUDE.md for the full set of workspace conventions, including the layering rules between the core, facade, and pyramid crates.