Every reader's conformance test suite skips silently when its local corpus directory is absent (the corpus lives out of tree / gitignored, by design - not checked into any repo). Confirmed currently skipping on a plain checkout across the whole vendor stack:
- OpenTFRaw:
crates/opentfraw/tests/conformance.rs - 'skipping: no Thermo fixture available'
- OpenTimsTDF:
crates/opentimstdf/tests/conformance.rs - 'skipping: no Bruker TDF cache present'
- OpenARaw:
crates/openaraw/tests/conformance.rs - 'skip: corpus not present'
- OpenSXRaw:
crates/opensxraw/tests/conformance.rs - 'skip: corpus not present'
- OpenWRaw:
crates/openwraw/tests/conformance.rs - 'skipping: no Waters bundle available'
- OpenMassSpec itself:
crates/openmassspec-io/tests/vendor2mzml.rs, crates/openmassspec-io-cli/tests/cli_centroid.rs - 'skipping: corpus not present'
None of these run for real in CI, so no decode path is exercised automatically anywhere in the suite - this is the biggest confidence gap across the readers (a regression in any decoder would only surface on someone's local machine with the corpus checked out).
The fix mechanism already exists: scripts/fetch_corpus.py in this repo is already 'a generalized port of OpenTFRaw's per-repo fetcher' - reads a vendor-agnostic sources.json, resolves PRIDE/FTP URLs, downloads into a local corpus dir, writes a manifest. It's just not wired into any CI workflow.
Proposed scope: check in a small curated fixture corpus (or a CI step that runs fetch_corpus.py against a minimal sources.json - one or two small files per vendor is enough to exercise the decode path) for each affected repo, and add the corpus-fetch step to each repo's ci.yml ahead of cargo test. Suite-wide effort - track per-repo follow-up issues from here once the approach is validated on one repo (OpenTFRaw is probably the best first target, since it already has a partial precedent via its 'validate-mzml' CI job that downloads a single file).
Every reader's conformance test suite skips silently when its local corpus directory is absent (the corpus lives out of tree / gitignored, by design - not checked into any repo). Confirmed currently skipping on a plain checkout across the whole vendor stack:
crates/opentfraw/tests/conformance.rs- 'skipping: no Thermo fixture available'crates/opentimstdf/tests/conformance.rs- 'skipping: no Bruker TDF cache present'crates/openaraw/tests/conformance.rs- 'skip: corpus not present'crates/opensxraw/tests/conformance.rs- 'skip: corpus not present'crates/openwraw/tests/conformance.rs- 'skipping: no Waters bundle available'crates/openmassspec-io/tests/vendor2mzml.rs,crates/openmassspec-io-cli/tests/cli_centroid.rs- 'skipping: corpus not present'None of these run for real in CI, so no decode path is exercised automatically anywhere in the suite - this is the biggest confidence gap across the readers (a regression in any decoder would only surface on someone's local machine with the corpus checked out).
The fix mechanism already exists:
scripts/fetch_corpus.pyin this repo is already 'a generalized port of OpenTFRaw's per-repo fetcher' - reads a vendor-agnosticsources.json, resolves PRIDE/FTP URLs, downloads into a local corpus dir, writes a manifest. It's just not wired into any CI workflow.Proposed scope: check in a small curated fixture corpus (or a CI step that runs
fetch_corpus.pyagainst a minimalsources.json- one or two small files per vendor is enough to exercise the decode path) for each affected repo, and add the corpus-fetch step to each repo'sci.ymlahead ofcargo test. Suite-wide effort - track per-repo follow-up issues from here once the approach is validated on one repo (OpenTFRaw is probably the best first target, since it already has a partial precedent via its 'validate-mzml' CI job that downloads a single file).