Strategy

Keeping pace with upstream

Goal

Produce byte-identical fastqc_data.txt and summary.txt for the same inputs as Java FastQC, so the two can be used interchangeably.

Equivalence testing

UPSTREAM.toml pins the tracked Java FastQC version. A nightly CI job checks for new releases and opens a GitHub issue when one appears. Every commit is tested against stored Java reference output across 18 test cases, covering text files (byte-identical), HTML structure, SVG charts (normalised), and pixel-level PNG comparison. See the equivalence report for details.

The only known differences are in chart rendering: Rust bundles Liberation Sans instead of system Arial, and uses resvg + tiny-skia instead of Java2D for PNG output, so antialiasing and text positions differ slightly.

Upstream contributions

Pull requests submitted to s-andrews/FastQC to port improvements upstream:

Features ported from upstream PRs (not yet merged):

Coming soon (code awaiting clean-up and PR creation):