Contributing

Setup

git clone https://github.com/ewels/FastQC-Rust.git
cd FastQC-Rust
cargo build --release
cargo test

Equivalence tests

Compares Rust output against stored Java FastQC reference data. Requires uv.

cargo build --release
uv run tests/equivalence/compare.py --binary ./target/release/fastqc

Writes an HTML report to tests/equivalence/reports/equivalence_report.html.

Code quality

cargo clippy --all-targets -- -D warnings  # Lint
cargo fmt --check                          # Format check
cargo test                                 # Unit + integration tests

Updating reference data

When the tracked upstream version changes:

  1. Update version in UPSTREAM.toml, Cargo.toml, src/lib.rs
  2. Run Java FastQC via Docker to generate new reference output
  3. Regenerate SVG patch files
  4. Run equivalence tests to verify

Issues

Bugs and feature requests: GitHub Issues.