Skip to content

chore(deps): bump fgumi to 0.5.0 - #20

Merged
nh13 merged 1 commit into
mainfrom
nh/bump-fgumi-0.5.0
Jul 28, 2026
Merged

nh13 merged 1 commit into
mainfrom
nh/bump-fgumi-0.5.0

Conversation

@nh13

@nh13 nh13 commented Jul 28, 2026 •

Copy link
Copy Markdown
Contributor

Bumps the sort engine from fgumi 0.3.1 to 0.5.0, released today. One-line dependency bump plus one test update for an upstream behavior change; no original sort code added here.

What mako picks up

Sort-relevant highlights from the 0.4.0 + 0.5.0 changelogs:

  • Single-pass --verify (#568, #594) — verify now streams its input once (header parsed through a tee, consumed bytes replayed) instead of re-opening the path, and bounds run comparison to O(order divergence).
  • Performance — records stream into the sort instead of via an intermediate BAM (#593), narrower radix passes with the bound derived inside the first counting pass (#606, #622), and a pool-integrated coordinate --write-index merge (#647).
  • New flags, which surface automatically through the flattened Sort — --sort-threads / --merge-threads for per-phase thread control (#608), --max-temp-files to tune spill-file consolidation (#643), --index-threshold always|never (#632).
  • Input handling — uncompressed SAM and stdin accepted anywhere BAM is (#644).
  • Correctness fixes — BAI sidecar written to the samtools path rather than an extension-replaced one (#607), BAM bin field recomputed after raw POS/CIGAR mutation (#591), placed-but-unmapped reads position-binned in the BAI (#651), @HD SS written as <sort-order>:<sub-sort> with the spec spelling lexicographical (#514, #567), and secondary/supplementary reads placed at the exact template coordinate via tc (#529).

0.5.0 carries several [breaking] entries, but all of them are in commands mako does not expose (group, dedup, consensus, codec, compare). MSRV is unchanged at 1.93.0, matching rust-toolchain.toml, so no toolchain bump.

Test change

Test 10 asserted the old behavior: that --verify rejected a non-seekable stdin stream up front with a message mentioning stdin, because verify needed to re-read its input. Single-pass verify removes that limitation, so the assertion is now testing behavior that no longer exists — it failed with BAM file is NOT correctly sorted by Coordinate: 1 violations found, i.e. verify had happily consumed the pipe and done its job.

verify_rejects_stdin_input is replaced with verify_accepts_stdin_input, which locks in the new behavior: verify from a piped stdin exits 0 on a sorted stream and non-zero on an unsorted one. Both directions are asserted deliberately — together they prove the stream was actually consumed and its order evaluated, rather than verify short-circuiting on an empty read (a one-sided pass-only assertion would be satisfied by a verify that read nothing). Both - and /dev/stdin are still exercised, since the latter is a real existing path.

Verification

cargo ci-fmt   # clean
cargo ci-lint  # clean (clippy --all-targets -D warnings)
cargo ci-test  # 11 passed; 0 failed

Version banner confirms the resolved dependency:

$ mako --version
mako 0.1.3 (rev fa11a2d)
powered by fgumi 0.5.0

Follow-up (not fixed here)

fgumi's --sort-threads help text contains a bwa mem -t 32 ... | fgumi sort -@ 8 --sort-threads 4 example, so mako --help now shows one fgumi sort invocation. Cosmetic, and it belongs upstream in fgumi's arg doc comment rather than in this repo.

Summary by CodeRabbit

  • New Features
    • mako --verify now supports validating BAM data streamed through standard input.
    • Sorted piped input is accepted, while unsorted input still reports a verification failure.

Picks up the 0.5.0 sort engine, including single-pass `--verify`
(streams the input instead of re-opening it), streamed sort ingest,
narrower radix passes, a pool-integrated `--write-index` merge, and the
new `--sort-threads` / `--merge-threads` / `--max-temp-files` flags,
which surface automatically through the flattened `Sort`.

Test 10 asserted the old behavior — that `--verify` rejected a
non-seekable stdin stream up front, because verify needed to re-read its
input. Single-pass verify removed that limitation, so the test now locks
in the new behavior instead: verify from a piped stdin exits 0 on a
sorted stream and non-zero on an unsorted one. Asserting both directions
keeps the pass non-vacuous — together they prove the stream was actually
consumed and its order evaluated, rather than verify short-circuiting on
an empty read.
@coderabbitai

coderabbitai Bot commented Jul 28, 2026 •

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 907298af-6d6a-4c4a-b788-87038d1e416e

📥 Commits

Reviewing files that changed from the base of the PR and between fa11a2d and 6ab85aa.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (2)
  • Cargo.toml
  • tests/cli.rs

📝 Walkthrough

Walkthrough

The fgumi dependency is upgraded from 0.3.1 to 0.5.0. CLI tests now verify sorted piped stdin succeeds and unsorted piped stdin fails for both - and /dev/stdin.

Changes

Stdin verification

Layer / File(s) Summary
Verify piped stdin behavior
Cargo.toml, tests/cli.rs
The fgumi dependency is upgraded, and piped stdin verification tests now cover sorted and unsorted BAM streams through both stdin forms.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

  • fg-labs/mako#10: Also updates the fgumi dependency version in Cargo.toml.

Poem

A rabbit pipes BAM through the burrow so bright,
Sorted streams pass verification right.
Unsorted ones hop to a non-zero fate,
With - and /dev/stdin both at the gate.
Thump, thump—dependencies update!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly matches the main change: bumping fgumi from 0.3.1 to 0.5.0.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@nh13
nh13 merged commit b1cc2e0 into main Jul 28, 2026
8 checks passed
@nh13
nh13 deleted the nh/bump-fgumi-0.5.0 branch July 28, 2026 23:17
@fg-labs-bot fg-labs-bot Bot mentioned this pull request Jul 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant