fix: align benchmarks with rebuilt :dev (noodles) RustQC image#30
Open
ewels wants to merge 1 commit into
Open
Conversation
The ghcr.io/seqeralabs/rustqc:dev image was rebuilt from main HEAD right after the noodles migration merged (closes seqeralabs/RustQC#113). The newer build (rustqc 0.2.1) changed two CLI surfaces that broke every RUSTQC_RNA run repo-wide (this is the current CI failure): - `--stranded` now takes string values (unstranded/forward/reverse) instead of numeric 0/1/2 -> "invalid value '0' for '--stranded'". - `rustqc --version` now prints a second line ("Binary: <arch> ...") so the old `sed 's/rustqc //'` produced invalid YAML in versions.yml -> "mapping values are not allowed here", failing every test that parses versions (pipeline + nf-core software-versions subworkflow). Changes: - rustqc_rna.nf / rustqc_rna_profile.nf: pass string strandedness and extract only the semver for versions.yml. - Regenerate 4 stale regression snapshots against the current build: dupradar (trailing-whitespace only; values identical), featurecounts (biotype counts now MATCH upstream: protein_coding 39736->42331), tin + junction_saturation (deterministic value drift since the March v0.1.x snapshot build; re-run confirmed reproducible). All 16 crosscheck-vs-upstream tests pass unchanged. - README: add samtools + tin to the comparison table, note :dev tracks main incl. noodles, and that RustQC no longer needs htslib/cmake to build (g++ + libfontconfig1-dev only, MSRV 1.89); add samtools to the layout + snapshot-update docs. Verified locally (Docker, small dataset): all upstream (16), crosscheck (16), regression (15) and pipeline smoke (4) nf-tests pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Warning
This PR was generated by an automated agent (Claude Code) and has not been reviewed by a human yet. Please review carefully before merging.
Why
Issue seqeralabs/RustQC#113 (switch rust-htslib → noodles) merged on 2026-06-16, and
ghcr.io/seqeralabs/rustqc:devwas rebuilt frommainHEAD minutes later (nowrustqc 0.2.1, commit2556c9d, no libhts linkage — confirmed pure-Rust I/O).That newer build changed two CLI surfaces, which broke every
RUSTQC_RNArun repo-wide — this is the current red CI (ERROR ~ mapping values are not allowed hereacross all conda/docker/singularity shards):--strandednow takes string values (unstranded/forward/reverse) instead of numeric0/1/2→invalid value '0' for '--stranded'.rustqc --versionnow prints a second line (Binary: <arch> | CPU: ...), so the oldsed 's/rustqc //'wrote multi-line, colon-containing text intoversions.yml→ invalid YAML → every versions-parsing test fails.What changed
modules/local/rustqc_rna.nf+rustqc_rna_profile.nf: pass string strandedness; extract only the semver forversions.yml(… | head -n1 | cut -d' ' -f2).v0.1.xbuild):dupradarfeaturecountsprotein_coding39736→42331); old baseline disagreed with upstreamtinjunction_saturationmax(3,3,0)→max(2,3,0); deterministic on re-runsamtools+tinto the comparison table; documented that:devtracksmainincl. noodles; noted RustQC no longer needshtslib/cmaketo build (onlyg+++libfontconfig1-dev, MSRV 1.89); added samtools to the layout + snapshot-update docs.Validation (local, Docker, small dataset)
All 16 crosscheck-vs-upstream tests pass without snapshot changes (the task's required outcome — RustQC still matches every upstream tool). Full local results:
Out of scope / pre-existing (NOT introduced here)
.github/CONTRIBUTING.md,email_template.html,LICENSE/workflow mismatches, JSON syntax inadaptivecard.json/slackreport.json) — pre-existing template drift, unrelated to noodles.tests/default.nf.testhas no committed snapshot onmainand CI runs--ci(fails on missing snapshot). Its baseline is environment-sensitive (Linux-generated, PDF plots excluded) and is being addressed on the bigwig branch (add/rustqc-bigwig-nf-test); generating it on macOS/ARM here would itself break CI, so it is intentionally left out. Theversions.ymlfix here does clear themapping valueserror for it.--rustqc_imagestays at:dev(documented).