diff --git a/CHANGELOG.md b/CHANGELOG.md index 456256c66..fc2b96aec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,79 @@ All notable changes to this project will be documented in this file. ## [Unreleased] +## [0.7.0] - 2026-08-24 + +### Bug Fixes + +- Emit the five codec stats rows fgbio reports ([#754](https://github.com/fulcrumgenomics/fgumi/pull/754)) +- Qualify the content-mode diff count when pairing stopped early ([#750](https://github.com/fulcrumgenomics/fgumi/pull/750)) +- Reconcile single-strand rejections with --stats and --rejects ([#758](https://github.com/fulcrumgenomics/fgumi/pull/758)) +- Route per-read rejections to the --rejects output ([#756](https://github.com/fulcrumgenomics/fgumi/pull/756)) +- Clip overlapping reads by query distance, not reference distance ([#759](https://github.com/fulcrumgenomics/fgumi/pull/759)) +- Treat spec-equivalent @HD SO/GO spellings as compatible ([#784](https://github.com/fulcrumgenomics/fgumi/pull/784)) +- [**breaking**] Reject FASTQ inputs with different record counts ([#776](https://github.com/fulcrumgenomics/fgumi/pull/776)) +- [**breaking**] Fail on data left unflushed at end of stream ([#783](https://github.com/fulcrumgenomics/fgumi/pull/783)) +- Enforce the queue memory budget at the Read step ([#764](https://github.com/fulcrumgenomics/fgumi/pull/764)) +- Admit the gap-filler serial to Decode under memory-high ([#746](https://github.com/fulcrumgenomics/fgumi/pull/746)) ([#787](https://github.com/fulcrumgenomics/fgumi/pull/787)) +- Enforce the queue memory budget at the FASTQ Read step ([#772](https://github.com/fulcrumgenomics/fgumi/pull/772)) +- Separate the per-stage high-water mark from --max-memory ([#775](https://github.com/fulcrumgenomics/fgumi/pull/775)) +- [**breaking**] Count and route reads that trim to zero length ([#793](https://github.com/fulcrumgenomics/fgumi/pull/793)) +- Saturate queue-byte debits so queue_bytes_in_flight cannot overflow ([#811](https://github.com/fulcrumgenomics/fgumi/pull/811)) +- [**breaking**] Cap simplex --max-reads per end, not per group ([#723](https://github.com/fulcrumgenomics/fgumi/pull/723)) ([#812](https://github.com/fulcrumgenomics/fgumi/pull/812)) +- Renumber grouped-reads MI ids into monotonic file order ([#844](https://github.com/fulcrumgenomics/fgumi/pull/844)) +- Clip past-mate reads by query distance, not reference distance ([#760](https://github.com/fulcrumgenomics/fgumi/pull/760)) ([#840](https://github.com/fulcrumgenomics/fgumi/pull/840)) +- Reject colliding output paths across every command output ([#845](https://github.com/fulcrumgenomics/fgumi/pull/845)) +- Charge queue bytes before publishing on the processed queue ([#850](https://github.com/fulcrumgenomics/fgumi/pull/850)) +- Clip dovetail FR overlaps and make the TLEN FR check crate-internal ([#857](https://github.com/fulcrumgenomics/fgumi/pull/857)) +- Bound Q3 decode admission by serial skew, not bytes ([#860](https://github.com/fulcrumgenomics/fgumi/pull/860)) + +### Documentation + +- Correct the TieRuleArg default and pin it with a test ([#753](https://github.com/fulcrumgenomics/fgumi/pull/753)) +- Use shortcut intra-doc links for backpressure constants ([#822](https://github.com/fulcrumgenomics/fgumi/pull/822)) + +### Features + +- Per-library complexity metrics and duplication saturation ladder ([#786](https://github.com/fulcrumgenomics/fgumi/pull/786)) ([#799](https://github.com/fulcrumgenomics/fgumi/pull/799)) +- Decode the single-threaded raw-BAM reader via fgumi-bgzf, honoring verify_crc ([#800](https://github.com/fulcrumgenomics/fgumi/pull/800)) ([#842](https://github.com/fulcrumgenomics/fgumi/pull/842)) +- Add sample column and marginal duplication-ladder columns ([#802](https://github.com/fulcrumgenomics/fgumi/pull/802)) ([#841](https://github.com/fulcrumgenomics/fgumi/pull/841)) +- Add Picard pair/orphan duplicate breakdown to --metrics ([#804](https://github.com/fulcrumgenomics/fgumi/pull/804)) ([#815](https://github.com/fulcrumgenomics/fgumi/pull/815)) +- Honor --check-crc on correct/group single-threaded paths ([#800](https://github.com/fulcrumgenomics/fgumi/pull/800)) ([#805](https://github.com/fulcrumgenomics/fgumi/pull/805)) +- [**breaking**] Put the performance diagnostics behind --sort-stats ([#826](https://github.com/fulcrumgenomics/fgumi/pull/826)) +- Add retag command to rewrite SAM tags (copy/move/delete) ([#824](https://github.com/fulcrumgenomics/fgumi/pull/824)) +- Add --legacy-overlap-window for fgbio-parity output ([#861](https://github.com/fulcrumgenomics/fgumi/pull/861)) + +### Miscellaneous Tasks + +- Run checks in the merge queue and cap job runtimes ([#848](https://github.com/fulcrumgenomics/fgumi/pull/848)) +- Harden samtools install against apt mirror stalls ([#825](https://github.com/fulcrumgenomics/fgumi/pull/825)) + +### Performance + +- Skip the record-read zero-fill via a spare-capacity read ([#786](https://github.com/fulcrumgenomics/fgumi/pull/786)) ([#797](https://github.com/fulcrumgenomics/fgumi/pull/797)) +- Skip BGZF CRC verification on trusted stdin input by default ([#786](https://github.com/fulcrumgenomics/fgumi/pull/786)) ([#798](https://github.com/fulcrumgenomics/fgumi/pull/798)) +- Probe tag membership with a 256x256 bitset ([#830](https://github.com/fulcrumgenomics/fgumi/pull/830)) +- Batch the interim progress counter out of the per-record path ([#831](https://github.com/fulcrumgenomics/fgumi/pull/831)) +- Avoid three per-record heap allocations (group / downsample / overlapping consensus) ([#832](https://github.com/fulcrumgenomics/fgumi/pull/832)) +- Make the single-thread path lightweight and CPU-efficient ([#762](https://github.com/fulcrumgenomics/fgumi/pull/762)) ([#836](https://github.com/fulcrumgenomics/fgumi/pull/836)) +- Honor --check-crc for BGZF-compressed FASTQ input ([#819](https://github.com/fulcrumgenomics/fgumi/pull/819)) ([#820](https://github.com/fulcrumgenomics/fgumi/pull/820)) +- [**breaking**] Cut the Phase 1 ingest thread's per-record cost ([#829](https://github.com/fulcrumgenomics/fgumi/pull/829)) +- Overlap key extraction, reuse arena pages, and read with real queue depth ([#846](https://github.com/fulcrumgenomics/fgumi/pull/846)) +- Make parallel paired assigner dash-aware for asymmetric halves ([#852](https://github.com/fulcrumgenomics/fgumi/pull/852)) + +### Refactor + +- Resolve clippy::pedantic cast-precision lints in base.rs ([#790](https://github.com/fulcrumgenomics/fgumi/pull/790)) +- Make --sort-stats run-scoped instead of a process-global static ([#855](https://github.com/fulcrumgenomics/fgumi/pull/855)) + +### Testing + +- Assert the bases the CODEC consensus tests are named for ([#770](https://github.com/fulcrumgenomics/fgumi/pull/770)) +- Stabilize read-ahead backpressure assertion ([#809](https://github.com/fulcrumgenomics/fgumi/pull/809)) ([#827](https://github.com/fulcrumgenomics/fgumi/pull/827)) +- Enforce backpressure fixture headroom centrally ([#789](https://github.com/fulcrumgenomics/fgumi/pull/789)) ([#828](https://github.com/fulcrumgenomics/fgumi/pull/828)) + + + ### Breaking Changes - **fgumi simplex:** `--max-reads` now caps each end (Fragment, R1, R2) independently rather diff --git a/Cargo.lock b/Cargo.lock index b1c5b91f9..6a4027d9a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -292,7 +292,7 @@ checksum = "fc0e56a716f1e132ff6bf4bdac1c944a3fcdc1cae65f70a4a2a1ac3b401d2d1f" dependencies = [ "proc-macro2", "quote", - "syn 3.0.3", + "syn 3.0.4", ] [[package]] @@ -321,9 +321,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.4.2" +version = "1.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d262e149917187838d5b42777c8253bcb64500067342904e7d429499a6f277e" +checksum = "0ad534f4357a5264cce5019c989cf66a4f0dc4e0d1b1d15f8aacec0ff7360273" dependencies = [ "find-msvc-tools", "jobserver", @@ -423,7 +423,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 3.0.3", + "syn 3.0.4", ] [[package]] @@ -455,9 +455,9 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +checksum = "8498c871161e1742aaa9d52551b2d6ebdd4c3d45a3be423e3728f33b955be550" dependencies = [ "cfg-if", ] @@ -623,9 +623,9 @@ dependencies = [ [[package]] name = "either" -version = "1.17.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5e8f6c15a24b9a3ee5efec809ccd006d3b30e8b3bb63c39af737c7f87daa1d" +checksum = "252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34" [[package]] name = "enum_dispatch" @@ -699,7 +699,7 @@ dependencies = [ [[package]] name = "fgumi" -version = "0.6.0" +version = "0.7.0" dependencies = [ "ahash", "anyhow", @@ -762,7 +762,7 @@ dependencies = [ [[package]] name = "fgumi-bam-io" -version = "0.6.0" +version = "0.7.0" dependencies = [ "anyhow", "bgzf", @@ -785,7 +785,7 @@ dependencies = [ [[package]] name = "fgumi-bgzf" -version = "0.6.0" +version = "0.7.0" dependencies = [ "bgzf", "crc32fast", @@ -796,7 +796,7 @@ dependencies = [ [[package]] name = "fgumi-consensus" -version = "0.6.0" +version = "0.7.0" dependencies = [ "ahash", "anyhow", @@ -818,14 +818,14 @@ dependencies = [ [[package]] name = "fgumi-dna" -version = "0.6.0" +version = "0.7.0" dependencies = [ "rstest", ] [[package]] name = "fgumi-metrics" -version = "0.6.0" +version = "0.7.0" dependencies = [ "anyhow", "fgoxide", @@ -841,7 +841,7 @@ dependencies = [ [[package]] name = "fgumi-raw-bam" -version = "0.6.0" +version = "0.7.0" dependencies = [ "anyhow", "bstr 1.13.1", @@ -859,7 +859,7 @@ dependencies = [ [[package]] name = "fgumi-sam" -version = "0.6.0" +version = "0.7.0" dependencies = [ "anyhow", "bstr 1.13.1", @@ -876,7 +876,7 @@ dependencies = [ [[package]] name = "fgumi-simd-fastq" -version = "0.6.0" +version = "0.7.0" dependencies = [ "criterion", "memchr", @@ -887,7 +887,7 @@ dependencies = [ [[package]] name = "fgumi-sort" -version = "0.6.0" +version = "0.7.0" dependencies = [ "ahash", "anyhow", @@ -923,7 +923,7 @@ dependencies = [ [[package]] name = "fgumi-tag" -version = "0.6.0" +version = "0.7.0" dependencies = [ "anyhow", "noodles", @@ -931,7 +931,7 @@ dependencies = [ [[package]] name = "fgumi-umi" -version = "0.6.0" +version = "0.7.0" dependencies = [ "ahash", "anyhow", @@ -944,9 +944,9 @@ dependencies = [ [[package]] name = "find-msvc-tools" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b73573e6edcd2af0cdf47bd6cb58f0b3839491263c314eaad1ccf24430e1de" +checksum = "d45db016d36b838f563236e9193d0ee6ce38f3f68b6c94e914b4929c96bbb890" [[package]] name = "flate2" @@ -995,7 +995,7 @@ checksum = "9fb9654ba8355388abeb8dcb4fc62f511300867002afc858860463bdd9fe0c44" dependencies = [ "proc-macro2", "quote", - "syn 3.0.3", + "syn 3.0.4", ] [[package]] @@ -1320,27 +1320,27 @@ checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" [[package]] name = "libdeflate-sys" -version = "1.25.2" +version = "1.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72753e0008ea87963d2f0770042d0df7abe51fafbb8dcaf618ac440f2f1fec0a" +checksum = "6949d73714ba8c32d2757405b89c94e427f64f078a4041debe07e1b8e9e850e9" dependencies = [ "cc", ] [[package]] name = "libdeflater" -version = "1.25.2" +version = "1.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1ee41cf6fb1bb6030dfb59ffb7bc01ab26aade44142084c87f0fc7a1658fe71" +checksum = "0b72b274104f747cb65358c918e38c6cd4a69937937a36c8ad3cfd516c9c471e" dependencies = [ "libdeflate-sys", ] [[package]] name = "libgit2-sys" -version = "0.18.7+1.9.6" +version = "0.18.8+1.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23c7391e4b9f4ffab1a624223cc1d7385ff9a678f490768add717de7ea2f4d89" +checksum = "7f7c568b25d7489bc3fb2988ed69ab111d2944d2f5fec3d5c987fe545ea97b50" dependencies = [ "cc", "libc", @@ -1393,9 +1393,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.33" +version = "0.4.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad" +checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6" [[package]] name = "lru" @@ -1779,9 +1779,9 @@ checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" [[package]] name = "pkg-config" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" +checksum = "f6b464fbc74e149a392436b17d523f769e057cb6877f6a5c4618bc6f11800548" [[package]] name = "plotters" @@ -2190,9 +2190,9 @@ dependencies = [ [[package]] name = "safe_arch" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a52ec151f024d703f9fd65abb7cbe81e7cdb39f18917a3a37e3014470dc7c59" +checksum = "42c6efa15875e6ecb39ca61fb0b0c1a40b84fac5a5ffe71eef7d1000c8eb3f5f" dependencies = [ "bytemuck", ] @@ -2287,7 +2287,7 @@ checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" dependencies = [ "proc-macro2", "quote", - "syn 3.0.3", + "syn 3.0.4", ] [[package]] @@ -2422,9 +2422,9 @@ dependencies = [ [[package]] name = "syn" -version = "3.0.3" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53e9bae58849f64dfa4f5d5ae372c8341f7305f82a3868709269343628b659a3" +checksum = "e6275cddf4610d1775e6d1fe9469b2e77d0f39fd98fb7450901b821e0c53649f" dependencies = [ "proc-macro2", "quote", @@ -2452,7 +2452,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" dependencies = [ "fastrand", - "getrandom 0.3.4", + "getrandom 0.4.3", "once_cell", "rustix", "windows-sys", @@ -2495,7 +2495,7 @@ checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af" dependencies = [ "proc-macro2", "quote", - "syn 3.0.3", + "syn 3.0.4", ] [[package]] @@ -2686,7 +2686,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de2aaf408e58689c2096682331b1f42bb2d9f2ed6b11560407d023cd0a6c634e" dependencies = [ "bytemuck", - "safe_arch 1.1.0", + "safe_arch 1.2.0", ] [[package]] @@ -2856,13 +2856,13 @@ checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" [[package]] name = "xtask" -version = "0.6.0" +version = "0.7.0" dependencies = [ "anyhow", "clap", "fgumi", "quote", - "syn 3.0.3", + "syn 3.0.4", "tempfile", ] diff --git a/Cargo.toml b/Cargo.toml index 4e28665ed..ee2d8d986 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ members = [".", "crates/fgumi-raw-bam", "crates/fgumi-dna", "crates/fgumi-bgzf", resolver = "2" [workspace.package] -version = "0.6.0" +version = "0.7.0" edition = "2024" rust-version = "1.93.0" repository = "https://github.com/fulcrumgenomics/fgumi" @@ -20,17 +20,17 @@ license = "MIT" flate2 = { version = "1.1", features = ["zlib-rs"] } # Internal crates. Versions are bumped in lockstep by release-plz. -fgumi-bam-io = { version = "0.6.0", path = "crates/fgumi-bam-io" } -fgumi-bgzf = { version = "0.6.0", path = "crates/fgumi-bgzf" } -fgumi-consensus = { version = "0.6.0", path = "crates/fgumi-consensus", default-features = false } -fgumi-dna = { version = "0.6.0", path = "crates/fgumi-dna" } -fgumi-metrics = { version = "0.6.0", path = "crates/fgumi-metrics" } -fgumi-raw-bam = { version = "0.6.0", path = "crates/fgumi-raw-bam" } -fgumi-sam = { version = "0.6.0", path = "crates/fgumi-sam" } -fgumi-simd-fastq = { version = "0.6.0", path = "crates/fgumi-simd-fastq" } -fgumi-sort = { version = "0.6.0", path = "crates/fgumi-sort" } -fgumi-tag = { version = "0.6.0", path = "crates/fgumi-tag" } -fgumi-umi = { version = "0.6.0", path = "crates/fgumi-umi" } +fgumi-bam-io = { version = "0.7.0", path = "crates/fgumi-bam-io" } +fgumi-bgzf = { version = "0.7.0", path = "crates/fgumi-bgzf" } +fgumi-consensus = { version = "0.7.0", path = "crates/fgumi-consensus", default-features = false } +fgumi-dna = { version = "0.7.0", path = "crates/fgumi-dna" } +fgumi-metrics = { version = "0.7.0", path = "crates/fgumi-metrics" } +fgumi-raw-bam = { version = "0.7.0", path = "crates/fgumi-raw-bam" } +fgumi-sam = { version = "0.7.0", path = "crates/fgumi-sam" } +fgumi-simd-fastq = { version = "0.7.0", path = "crates/fgumi-simd-fastq" } +fgumi-sort = { version = "0.7.0", path = "crates/fgumi-sort" } +fgumi-tag = { version = "0.7.0", path = "crates/fgumi-tag" } +fgumi-umi = { version = "0.7.0", path = "crates/fgumi-umi" } # Third-party crates shared by two or more members. Declared once here so a member can # never drift onto a different version: two versions of a crate whose types cross crate diff --git a/crates/fgumi-bam-io/CHANGELOG.md b/crates/fgumi-bam-io/CHANGELOG.md index 2b2a84c59..48fea715d 100644 --- a/crates/fgumi-bam-io/CHANGELOG.md +++ b/crates/fgumi-bam-io/CHANGELOG.md @@ -4,6 +4,24 @@ All notable changes to this project will be documented in this file. ## [Unreleased] +## [0.7.0] - 2026-08-24 + +### Bug Fixes + +- [**breaking**] Fail on data left unflushed at end of stream ([#783](https://github.com/fulcrumgenomics/fgumi/pull/783)) + +### Features + +- Decode the single-threaded raw-BAM reader via fgumi-bgzf, honoring verify_crc ([#800](https://github.com/fulcrumgenomics/fgumi/pull/800)) ([#842](https://github.com/fulcrumgenomics/fgumi/pull/842)) +- Honor --check-crc on correct/group single-threaded paths ([#800](https://github.com/fulcrumgenomics/fgumi/pull/800)) ([#805](https://github.com/fulcrumgenomics/fgumi/pull/805)) + +### Performance + +- Skip BGZF CRC verification on trusted stdin input by default ([#786](https://github.com/fulcrumgenomics/fgumi/pull/786)) ([#798](https://github.com/fulcrumgenomics/fgumi/pull/798)) +- Honor --check-crc for BGZF-compressed FASTQ input ([#819](https://github.com/fulcrumgenomics/fgumi/pull/819)) ([#820](https://github.com/fulcrumgenomics/fgumi/pull/820)) + + + ## [0.6.0] - 2026-08-14 ### Bug Fixes diff --git a/crates/fgumi-bgzf/CHANGELOG.md b/crates/fgumi-bgzf/CHANGELOG.md index cce65cb2d..1dcc84f01 100644 --- a/crates/fgumi-bgzf/CHANGELOG.md +++ b/crates/fgumi-bgzf/CHANGELOG.md @@ -2,6 +2,22 @@ All notable changes to this project will be documented in this file. +## [0.7.0] - 2026-08-24 + +### Features + +- Decode the single-threaded raw-BAM reader via fgumi-bgzf, honoring verify_crc ([#800](https://github.com/fulcrumgenomics/fgumi/pull/800)) ([#842](https://github.com/fulcrumgenomics/fgumi/pull/842)) + +### Performance + +- Skip BGZF CRC verification on trusted stdin input by default ([#786](https://github.com/fulcrumgenomics/fgumi/pull/786)) ([#798](https://github.com/fulcrumgenomics/fgumi/pull/798)) + +### Testing + +- Bound the Phase 1 input path's cost with two harnesses ([#837](https://github.com/fulcrumgenomics/fgumi/pull/837)) + + + ## [0.6.0] - 2026-08-14 diff --git a/crates/fgumi-consensus/CHANGELOG.md b/crates/fgumi-consensus/CHANGELOG.md index b303b26ab..a16dc5cca 100644 --- a/crates/fgumi-consensus/CHANGELOG.md +++ b/crates/fgumi-consensus/CHANGELOG.md @@ -2,6 +2,40 @@ All notable changes to this project will be documented in this file. +## [0.7.0] - 2026-08-24 + +### Bug Fixes + +- Emit the five codec stats rows fgbio reports ([#754](https://github.com/fulcrumgenomics/fgumi/pull/754)) +- Read out-of-range overlap boundaries the way fgbio does ([#755](https://github.com/fulcrumgenomics/fgumi/pull/755)) +- Reconcile single-strand rejections with --stats and --rejects ([#758](https://github.com/fulcrumgenomics/fgumi/pull/758)) +- Route per-read rejections to the --rejects output ([#756](https://github.com/fulcrumgenomics/fgumi/pull/756)) +- Clip overlapping reads by query distance, not reference distance ([#759](https://github.com/fulcrumgenomics/fgumi/pull/759)) +- Clamp the duplex window to the region both strands align ([#767](https://github.com/fulcrumgenomics/fgumi/pull/767)) +- Store the CODEC fixture's reverse read in reference orientation ([#768](https://github.com/fulcrumgenomics/fgumi/pull/768)) +- Count and route reads dropped by downsampling ([#724](https://github.com/fulcrumgenomics/fgumi/pull/724)) ([#785](https://github.com/fulcrumgenomics/fgumi/pull/785)) +- [**breaking**] Count and route reads that trim to zero length ([#793](https://github.com/fulcrumgenomics/fgumi/pull/793)) +- [**breaking**] Cap simplex --max-reads per end, not per group ([#723](https://github.com/fulcrumgenomics/fgumi/pull/723)) ([#812](https://github.com/fulcrumgenomics/fgumi/pull/812)) +- Clip past-mate reads by query distance, not reference distance ([#760](https://github.com/fulcrumgenomics/fgumi/pull/760)) ([#840](https://github.com/fulcrumgenomics/fgumi/pull/840)) +- Clip dovetail FR overlaps and make the TLEN FR check crate-internal ([#857](https://github.com/fulcrumgenomics/fgumi/pull/857)) + +### Features + +- Add --legacy-overlap-window for fgbio-parity output ([#861](https://github.com/fulcrumgenomics/fgumi/pull/861)) + +### Performance + +- Avoid three per-record heap allocations (group / downsample / overlapping consensus) ([#832](https://github.com/fulcrumgenomics/fgumi/pull/832)) +- Iterate raw CIGAR ops without a per-record Vec at four hot sites ([#834](https://github.com/fulcrumgenomics/fgumi/pull/834)) + +### Testing + +- Assert the bases the CODEC consensus tests are named for ([#770](https://github.com/fulcrumgenomics/fgumi/pull/770)) +- Make the CODEC tests that cannot fail fail ([#774](https://github.com/fulcrumgenomics/fgumi/pull/774)) +- Assert the bases the codec_template consensus tests are named for ([#808](https://github.com/fulcrumgenomics/fgumi/pull/808)) + + + ## [0.6.0] - 2026-08-14 ### Bug Fixes diff --git a/crates/fgumi-dna/CHANGELOG.md b/crates/fgumi-dna/CHANGELOG.md index 7984ff6a2..c6e809783 100644 --- a/crates/fgumi-dna/CHANGELOG.md +++ b/crates/fgumi-dna/CHANGELOG.md @@ -2,6 +2,10 @@ All notable changes to this project will be documented in this file. +## [0.7.0] - 2026-08-24 + + + ## [0.6.0] - 2026-08-14 diff --git a/crates/fgumi-metrics/CHANGELOG.md b/crates/fgumi-metrics/CHANGELOG.md index 1390eb74f..4a8acc02f 100644 --- a/crates/fgumi-metrics/CHANGELOG.md +++ b/crates/fgumi-metrics/CHANGELOG.md @@ -2,6 +2,26 @@ All notable changes to this project will be documented in this file. +## [0.7.0] - 2026-08-24 + +### Bug Fixes + +- Emit the five codec stats rows fgbio reports ([#754](https://github.com/fulcrumgenomics/fgumi/pull/754)) +- Count and route reads dropped by downsampling ([#724](https://github.com/fulcrumgenomics/fgumi/pull/724)) ([#785](https://github.com/fulcrumgenomics/fgumi/pull/785)) + +### Features + +- Per-library complexity metrics and duplication saturation ladder ([#786](https://github.com/fulcrumgenomics/fgumi/pull/786)) ([#799](https://github.com/fulcrumgenomics/fgumi/pull/799)) +- Add sample column and marginal duplication-ladder columns ([#802](https://github.com/fulcrumgenomics/fgumi/pull/802)) ([#841](https://github.com/fulcrumgenomics/fgumi/pull/841)) +- Add Picard pair/orphan duplicate breakdown to --metrics ([#804](https://github.com/fulcrumgenomics/fgumi/pull/804)) ([#815](https://github.com/fulcrumgenomics/fgumi/pull/815)) +- Add --legacy-overlap-window for fgbio-parity output ([#861](https://github.com/fulcrumgenomics/fgumi/pull/861)) + +### Performance + +- Iterate raw CIGAR ops without a per-record Vec at four hot sites ([#834](https://github.com/fulcrumgenomics/fgumi/pull/834)) + + + ## [0.6.0] - 2026-08-14 ### Bug Fixes diff --git a/crates/fgumi-raw-bam/CHANGELOG.md b/crates/fgumi-raw-bam/CHANGELOG.md index d17321586..91293615c 100644 --- a/crates/fgumi-raw-bam/CHANGELOG.md +++ b/crates/fgumi-raw-bam/CHANGELOG.md @@ -2,6 +2,31 @@ All notable changes to this project will be documented in this file. +## [0.7.0] - 2026-08-24 + +### Bug Fixes + +- Clip overlapping reads by query distance, not reference distance ([#759](https://github.com/fulcrumgenomics/fgumi/pull/759)) +- Clip past-mate reads by query distance, not reference distance ([#760](https://github.com/fulcrumgenomics/fgumi/pull/760)) ([#840](https://github.com/fulcrumgenomics/fgumi/pull/840)) +- Capture overlapping selected aux tags independently ([#851](https://github.com/fulcrumgenomics/fgumi/pull/851)) +- Trim read-through on dovetail FR pairs in the MC-tag path ([#853](https://github.com/fulcrumgenomics/fgumi/pull/853)) +- Clip dovetail FR overlaps and make the TLEN FR check crate-internal ([#857](https://github.com/fulcrumgenomics/fgumi/pull/857)) + +### Features + +- Add retag command to rewrite SAM tags (copy/move/delete) ([#824](https://github.com/fulcrumgenomics/fgumi/pull/824)) + +### Performance + +- Skip the record-read zero-fill via a spare-capacity read ([#786](https://github.com/fulcrumgenomics/fgumi/pull/786)) ([#797](https://github.com/fulcrumgenomics/fgumi/pull/797)) +- [**breaking**] Cut the Phase 1 ingest thread's per-record cost ([#829](https://github.com/fulcrumgenomics/fgumi/pull/829)) + +### Refactor + +- Remove dead SamRecordClipper, port its tests to RawRecordClipper ([#854](https://github.com/fulcrumgenomics/fgumi/pull/854)) + + + ## [0.6.0] - 2026-08-14 ### Bug Fixes diff --git a/crates/fgumi-sam/CHANGELOG.md b/crates/fgumi-sam/CHANGELOG.md index c8d96f7b1..4b649d56d 100644 --- a/crates/fgumi-sam/CHANGELOG.md +++ b/crates/fgumi-sam/CHANGELOG.md @@ -2,6 +2,25 @@ All notable changes to this project will be documented in this file. +## [0.7.0] - 2026-08-24 + +### Bug Fixes + +- Preserve non-UTF-8 string tag bytes when clipping ([#833](https://github.com/fulcrumgenomics/fgumi/pull/833)) +- Clip past-mate reads by query distance, not reference distance ([#760](https://github.com/fulcrumgenomics/fgumi/pull/760)) ([#840](https://github.com/fulcrumgenomics/fgumi/pull/840)) +- Clip dovetail FR overlaps and make the TLEN FR check crate-internal ([#857](https://github.com/fulcrumgenomics/fgumi/pull/857)) + +### Performance + +- Iterate raw CIGAR ops without a per-record Vec at four hot sites ([#834](https://github.com/fulcrumgenomics/fgumi/pull/834)) +- [**breaking**] Cut the Phase 1 ingest thread's per-record cost ([#829](https://github.com/fulcrumgenomics/fgumi/pull/829)) + +### Refactor + +- Remove dead SamRecordClipper, port its tests to RawRecordClipper ([#854](https://github.com/fulcrumgenomics/fgumi/pull/854)) + + + ## [0.6.0] - 2026-08-14 diff --git a/crates/fgumi-simd-fastq/CHANGELOG.md b/crates/fgumi-simd-fastq/CHANGELOG.md index 6580637e7..f106c2d89 100644 --- a/crates/fgumi-simd-fastq/CHANGELOG.md +++ b/crates/fgumi-simd-fastq/CHANGELOG.md @@ -2,6 +2,10 @@ All notable changes to this project will be documented in this file. +## [0.7.0] - 2026-08-24 + + + ## [0.6.0] - 2026-08-14 ### Bug Fixes diff --git a/crates/fgumi-sort/CHANGELOG.md b/crates/fgumi-sort/CHANGELOG.md index 225fd2e1e..e94d2c532 100644 --- a/crates/fgumi-sort/CHANGELOG.md +++ b/crates/fgumi-sort/CHANGELOG.md @@ -4,6 +4,32 @@ All notable changes to this project will be documented in this file. ## [Unreleased] +## [0.7.0] - 2026-08-24 + +### Features + +- [**breaking**] Put the performance diagnostics behind --sort-stats ([#826](https://github.com/fulcrumgenomics/fgumi/pull/826)) +- Split the input reader's time between the disk and framing ([#838](https://github.com/fulcrumgenomics/fgumi/pull/838)) + +### Performance + +- Read ahead deeply on the file the merge is blocked on ([#806](https://github.com/fulcrumgenomics/fgumi/pull/806)) +- Measure where the merge consumer's park time actually goes ([#813](https://github.com/fulcrumgenomics/fgumi/pull/813)) +- Give read-ahead depth to the file the merge is actually on ([#814](https://github.com/fulcrumgenomics/fgumi/pull/814)) +- Name which floor the merge is on, and stop shouting the detail ([#823](https://github.com/fulcrumgenomics/fgumi/pull/823)) +- [**breaking**] Cut the Phase 1 ingest thread's per-record cost ([#829](https://github.com/fulcrumgenomics/fgumi/pull/829)) +- Overlap key extraction, reuse arena pages, and read with real queue depth ([#846](https://github.com/fulcrumgenomics/fgumi/pull/846)) + +### Refactor + +- Make --sort-stats run-scoped instead of a process-global static ([#855](https://github.com/fulcrumgenomics/fgumi/pull/855)) + +### Testing + +- Bound the Phase 1 input path's cost with two harnesses ([#837](https://github.com/fulcrumgenomics/fgumi/pull/837)) + + + ## [0.6.0] - 2026-08-14 ### Bug Fixes diff --git a/crates/fgumi-tag/CHANGELOG.md b/crates/fgumi-tag/CHANGELOG.md index 4ac1fc0cd..29bb15e09 100644 --- a/crates/fgumi-tag/CHANGELOG.md +++ b/crates/fgumi-tag/CHANGELOG.md @@ -2,6 +2,14 @@ All notable changes to this project will be documented in this file. +## [0.7.0] - 2026-08-24 + +### Miscellaneous Tasks + +- Update Cargo.toml dependencies + + + ## [0.6.0] - 2026-08-14 diff --git a/crates/fgumi-umi/CHANGELOG.md b/crates/fgumi-umi/CHANGELOG.md index d00310173..dfee5642b 100644 --- a/crates/fgumi-umi/CHANGELOG.md +++ b/crates/fgumi-umi/CHANGELOG.md @@ -2,6 +2,14 @@ All notable changes to this project will be documented in this file. +## [0.7.0] - 2026-08-24 + +### Documentation + +- Clarify the paired strategy never actually uses the index ([#856](https://github.com/fulcrumgenomics/fgumi/pull/856)) + + + ## [0.6.0] - 2026-08-14