• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

clintval / unmux / 29472065806
97%

Build:
DEFAULT BRANCH: main
Ran 16 Jul 2026 05:21AM UTC
Jobs 1
Files 14
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

16 Jul 2026 04:43AM UTC coverage: 96.885% (+0.03%) from 96.857%
29472065806

push

github

web-flow
feat: split a multi-read-group BAM/SAM/CRAM by its @RG header (#2)

* feat(grammar): add @RG group source and ReadGroupKey

* style(grammar): rustfmt + lock lowercase @rg-as-file behavior

* feat(input): expose input @RG read groups and @SQ presence

* feat(readgroup): resolve @RG groups into tag sets, samples, and an RG-id map

* fix(readgroup): make two-tier routing token structurally unique

The `.`-joined label(tier1, tier2) token could collide for distinct
(SM, LB) pairs (e.g. ("sA", "l1.2") and ("sA.l1", "2") both format to
"sA.l1.2"), causing TagSet::resolve to silently misroute records
between two real samples. Fold the entry index into the token so it
is structurally unique; Sample.sample/sub_sample still carry the real
SM/LB.

* refactor(demux): open reader before compilation and resolve @RG groups

* feat(matcher): carry RG-id map on compiled @RG groups

* feat(demux): route records by RG:Z for @RG groups

* feat(demux): fan out @RG groups via resolved samples

* feat(output): emit constituent original @RG lines and preserve RG:Z

Claude-Session: https://claude.ai/code/session_016BCzogPq387cHgUdJXVqhT

* fix(output): emit constituent @RG lines in deterministic id order

build_constituent_rgs buckets read groups by iterating a HashMap, so when
multiple RGs merge into one target the emitted @RG line order varied
run-to-run. Sort the deduped constituent entries by id at emission time in
read_group_header so the output is deterministic regardless of upstream
HashMap iteration order.

* feat(demux): warn on aligned @RG input and tier-dropping merges

* feat(demux): clear error when @RG has no read groups (incl. FASTX)

* docs(cli): document the @RG group source in --help

* test: cucumber scenarios for @RG-header splitting

* fix(demux): only read the input @RG header when an @RG group is present

Reading the input @RG header on every run made a non-@RG invocation over two or more aligned inputs that share a read-group id with conflicting SM/LB ... (continued)

172 of 177 new or added lines in 6 files covered. (97.18%)

3421 of 3531 relevant lines covered (96.88%)

73.24 hits per line

Uncovered Changes

Lines Coverage ∆ File
4
96.52
-0.08% src/lib/demux.rs
1
97.67
src/lib/readgroup.rs
Jobs
ID Job ID Ran Files Coverage
1 29472065806.1 16 Jul 2026 05:21AM UTC 14
96.88
GitHub Action Run
Source Files on build 29472065806
  • Tree
  • List 14
  • Changed 8
  • Source Changed 8
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #29472065806
  • eb17cf39 on github
  • Prev Build on main (#29288333196)
  • Next Build on main (#29472188709)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc