diff --git a/CHANGELOG.md b/CHANGELOG.md index 4aae51a5e..7dd493f2f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,62 @@ All notable changes to this project will be documented in this file. ## [Unreleased] +## [0.3.0] - 2026-06-10 + +### Bug Fixes + +- Make root crate build cleanly with `--no-default-features` ([#314](https://github.com/fulcrumgenomics/fgumi/pull/314)) +- Deterministic MoleculeId numbering via opt-in MI Assign stage ([#319](https://github.com/fulcrumgenomics/fgumi/pull/319)) +- Address remaining review feedback from PR #323 ([#325](https://github.com/fulcrumgenomics/fgumi/pull/325)) +- [**breaking**] Require SS:template-coordinate ([#337](https://github.com/fulcrumgenomics/fgumi/pull/337)) +- Drop dense (max_ab × max_ba) grid that OOMs on cfDNA hot spots ([#359](https://github.com/fulcrumgenomics/fgumi/pull/359)) +- Accept --compression-level 0 for uncompressed BAM ([#360](https://github.com/fulcrumgenomics/fgumi/pull/360)) ([#361](https://github.com/fulcrumgenomics/fgumi/pull/361)) +- Use 128-bit composite hash for read-name keys ([#369](https://github.com/fulcrumgenomics/fgumi/pull/369)) + +### Documentation + +- Use absolute URLs for logo images ([#324](https://github.com/fulcrumgenomics/fgumi/pull/324)) +- Recommend uncompressed BAM input for streaming pipelines ([#362](https://github.com/fulcrumgenomics/fgumi/pull/362)) + +### Features + +- Zstd as the default temp-spill codec ([#341](https://github.com/fulcrumgenomics/fgumi/pull/341)) +- --parallel-group-min-templates with per-strategy auto thresholds ([#371](https://github.com/fulcrumgenomics/fgumi/pull/371)) +- Variable-width template-coordinate sort key, zero-copy merge, and slimmer arena ([#375](https://github.com/fulcrumgenomics/fgumi/pull/375)) +- Add host-aware --max-memory to pipeline commands ([#381](https://github.com/fulcrumgenomics/fgumi/pull/381)) + +### Miscellaneous Tasks + +- Add publish dry-run to catch release-blocking bugs pre-merge ([#312](https://github.com/fulcrumgenomics/fgumi/pull/312)) +- Add codecov.yml with project coverage threshold ([#374](https://github.com/fulcrumgenomics/fgumi/pull/374)) +- Bump codecov-action to v6.0.2 to fix upload GPG verification ([#383](https://github.com/fulcrumgenomics/fgumi/pull/383)) + +### Performance + +- Cache UMI tag position in DecodedRecord to avoid duplicate aux scan ([#343](https://github.com/fulcrumgenomics/fgumi/pull/343)) +- Single-pass aux scan captures UMI position ([#334](https://github.com/fulcrumgenomics/fgumi/pull/334)) ([#351](https://github.com/fulcrumgenomics/fgumi/pull/351)) +- Bypass libdeflater for deflate stored blocks ([#366](https://github.com/fulcrumgenomics/fgumi/pull/366)) +- Pin flate2 zlib-rs backend to restore fast FASTQ decompression ([#387](https://github.com/fulcrumgenomics/fgumi/pull/387)) + +### Refactor + +- Validate and consolidate SAM tag identifiers via SamTag ([#316](https://github.com/fulcrumgenomics/fgumi/pull/316)) +- Extract fgumi-bam-io and fgumi-sort workspace crates ([#323](https://github.com/fulcrumgenomics/fgumi/pull/323)) +- Migrate hand-rolled rejects writers to first-class secondary_output ([#332](https://github.com/fulcrumgenomics/fgumi/pull/332)) +- Typed CodecConsensusError replaces substring matching ([#342](https://github.com/fulcrumgenomics/fgumi/pull/342)) +- Replace dead Binomial::new Err arm with expect ([#363](https://github.com/fulcrumgenomics/fgumi/pull/363)) +- Delegate ConsensusOutput heap-size estimate to owning type ([#368](https://github.com/fulcrumgenomics/fgumi/pull/368)) +- Demote algorithm-internal info! logs to debug ([#367](https://github.com/fulcrumgenomics/fgumi/pull/367)) + +### Testing + +- In-process Command::execute for Phase 1 commands ([#352](https://github.com/fulcrumgenomics/fgumi/pull/352)) ([#353](https://github.com/fulcrumgenomics/fgumi/pull/353)) +- In-process Command::execute for Phase 2 commands ([#352](https://github.com/fulcrumgenomics/fgumi/pull/352)) ([#354](https://github.com/fulcrumgenomics/fgumi/pull/354)) +- In-process Command::execute for Phase 4 commands ([#352](https://github.com/fulcrumgenomics/fgumi/pull/352)) ([#356](https://github.com/fulcrumgenomics/fgumi/pull/356)) +- In-process follow-ups from Opus/Sonnet review of #352 ([#357](https://github.com/fulcrumgenomics/fgumi/pull/357)) + + + ### Documentation - Recommend uncompressed BAM (`bwa-mem3 mem --bam=0`) as the preferred `fgumi zipper` input format for streaming pipelines, with SAM kept as a fallback for aligners that can't emit BAM. Replaced the misleading "BAM input is discouraged" `warn!` on the stdin-BAM path with a neutral `info!`, and dropped the equivalent warning on the file-BAM path. Updated `zipper` CLI help/long_about and the getting-started, best-practices, performance-tuning, and migration-from-fgbio guides accordingly. diff --git a/Cargo.lock b/Cargo.lock index de0690007..5ccba6b8d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -136,9 +136,9 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" [[package]] name = "backtrace" @@ -193,9 +193,9 @@ dependencies = [ [[package]] name = "bitflags" -version = "2.11.1" +version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3" +checksum = "b4388bee8683e3d04af747c73422af53102d2bd24d9eadb6cbc100baef4b43f8" [[package]] name = "bstr" @@ -240,9 +240,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.20.2" +version = "3.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" [[package]] name = "bytemuck" @@ -290,9 +290,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.2.60" +version = "1.2.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43c5703da9466b66a946814e1adf53ea2c90f10063b86290cc9eb67ce3478a20" +checksum = "556e016178bb5662a08681bbe0f00f8e17631781a4dfc8c45e466e4b185ec27f" dependencies = [ "find-msvc-tools", "jobserver", @@ -325,9 +325,9 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.44" +version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" +checksum = "1aa79e62e7697b8e29b513a68abacf485adcd1fe8284a4316c5ae868e6633327" dependencies = [ "iana-time-zone", "num-traits", @@ -561,9 +561,9 @@ dependencies = [ [[package]] name = "either" -version = "1.15.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" +checksum = "91622ff5e7162018101f2fea40d6ebf4a78bbe5a49736a2020649edf9693679e" [[package]] name = "enum_dispatch" @@ -637,7 +637,7 @@ dependencies = [ [[package]] name = "fgumi" -version = "0.2.0" +version = "0.3.0" dependencies = [ "ahash", "anyhow", @@ -699,7 +699,7 @@ dependencies = [ [[package]] name = "fgumi-bam-io" -version = "0.2.0" +version = "0.3.0" dependencies = [ "anyhow", "bgzf", @@ -720,7 +720,7 @@ dependencies = [ [[package]] name = "fgumi-bgzf" -version = "0.2.0" +version = "0.3.0" dependencies = [ "bgzf", "crc32fast", @@ -730,7 +730,7 @@ dependencies = [ [[package]] name = "fgumi-consensus" -version = "0.2.0" +version = "0.3.0" dependencies = [ "ahash", "anyhow", @@ -749,14 +749,14 @@ dependencies = [ [[package]] name = "fgumi-dna" -version = "0.2.0" +version = "0.3.0" dependencies = [ "rstest", ] [[package]] name = "fgumi-metrics" -version = "0.2.0" +version = "0.3.0" dependencies = [ "anyhow", "fgoxide", @@ -769,7 +769,7 @@ dependencies = [ [[package]] name = "fgumi-raw-bam" -version = "0.2.0" +version = "0.3.0" dependencies = [ "anyhow", "bstr 1.12.1", @@ -784,7 +784,7 @@ dependencies = [ [[package]] name = "fgumi-sam" -version = "0.2.0" +version = "0.3.0" dependencies = [ "anyhow", "bstr 1.12.1", @@ -799,7 +799,7 @@ dependencies = [ [[package]] name = "fgumi-simd-fastq" -version = "0.2.0" +version = "0.3.0" dependencies = [ "criterion", "memchr", @@ -810,7 +810,7 @@ dependencies = [ [[package]] name = "fgumi-sort" -version = "0.2.0" +version = "0.3.0" dependencies = [ "ahash", "anyhow", @@ -844,7 +844,7 @@ dependencies = [ [[package]] name = "fgumi-tag" -version = "0.2.0" +version = "0.3.0" dependencies = [ "anyhow", "noodles", @@ -852,7 +852,7 @@ dependencies = [ [[package]] name = "fgumi-umi" -version = "0.2.0" +version = "0.3.0" dependencies = [ "ahash", "anyhow", @@ -933,9 +933,9 @@ checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" [[package]] name = "futures-timer" -version = "3.0.3" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" +checksum = "af43fadb8a98512d547e37b4e92e0ced13e205c061b87b4623eff01d918d6968" [[package]] name = "futures-util" @@ -1033,9 +1033,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.17.0" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f467dd6dccf739c208452f8014c75c18bb8301b050ad1cfb27153803edb0f51" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" dependencies = [ "allocator-api2", "equivalent", @@ -1097,7 +1097,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" dependencies = [ "equivalent", - "hashbrown 0.17.0", + "hashbrown 0.17.1", "serde", "serde_core", ] @@ -1140,9 +1140,9 @@ checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "jiff" -version = "0.2.23" +version = "0.2.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a3546dc96b6d42c5f24902af9e2538e82e39ad350b0c766eb3fbf2d8f3d8359" +checksum = "4603d3033e49e2b0e31229fcab20a5d40089c607d975cd9c80551dc69eed9102" dependencies = [ "jiff-static", "log", @@ -1153,9 +1153,9 @@ dependencies = [ [[package]] name = "jiff-static" -version = "0.2.23" +version = "0.2.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a8c8b344124222efd714b73bb41f8b5120b27a7cc1c75593a6ff768d9d05aa4" +checksum = "782d32378dddf207193ac91cefb848ad41abb58195c95168e1291227a0832b47" dependencies = [ "proc-macro2", "quote", @@ -1174,11 +1174,12 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.95" +version = "0.3.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2964e92d1d9dc3364cae4d718d93f227e3abb088e747d92e0395bfdedf1c12ca" +checksum = "f2025f20d7a4fa7785846e7b63d10a76d3f1cee98ee5cb79ea59703f95e42162" dependencies = [ - "once_cell", + "cfg-if", + "futures-util", "wasm-bindgen", ] @@ -1305,9 +1306,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.28" +version = "1.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc3a226e576f50782b3305c5ccf458698f92798987f551c6a02efe8276721e22" +checksum = "85bc9657773828b90eeb625adff10eeac83cc21bbfd8e23a03eaa8a33c9e28d9" dependencies = [ "cc", "libc", @@ -1342,7 +1343,7 @@ version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a860605968fce16869fd239cf4237a82f3ac470723415db603b0e8b6c8d4fb9" dependencies = [ - "hashbrown 0.17.0", + "hashbrown 0.17.1", ] [[package]] @@ -2001,9 +2002,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.12.3" +version = "1.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" +checksum = "f1292b7759ae1cb9ec195452d1390a074f0cd8541ab7a5a8c31cd6db45d4a6ba" dependencies = [ "aho-corasick", "memchr", @@ -2030,9 +2031,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.10" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" [[package]] name = "relative-path" @@ -2240,9 +2241,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.149" +version = "1.0.150" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" +checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9" dependencies = [ "itoa 1.0.18", "memchr", @@ -2253,9 +2254,9 @@ dependencies = [ [[package]] name = "shlex" -version = "1.3.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" [[package]] name = "simba" @@ -2441,9 +2442,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.25.11+spec-1.1.0" +version = "0.25.12+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b59c4d22ed448339746c59b905d24568fcbb3ab65a500494f7b8c3e97739f2b" +checksum = "d2153edc6955a6c354fad8f5efd38b6a8769bdccf9fe50f8e1329f81b0baa5d7" dependencies = [ "indexmap", "toml_datetime", @@ -2462,9 +2463,9 @@ dependencies = [ [[package]] name = "typenum" -version = "1.20.0" +version = "1.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" [[package]] name = "unarray" @@ -2547,9 +2548,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.118" +version = "0.2.123" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf938a0bacb0469e83c1e148908bd7d5a6010354cf4fb73279b7447422e3a89" +checksum = "a254a4b10c19a76f09a27640e7ffbf9bc30bf67e16a3bf28aaefa4920fe81563" dependencies = [ "cfg-if", "once_cell", @@ -2560,9 +2561,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.118" +version = "0.2.123" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eeff24f84126c0ec2db7a449f0c2ec963c6a49efe0698c4242929da037ca28ed" +checksum = "24a40fc75b0ec6f3746ceb10d36f53a93dcd68a93b11b6445983945d79eba0dc" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2570,9 +2571,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.118" +version = "0.2.123" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d08065faf983b2b80a79fd87d8254c409281cf7de75fc4b773019824196c904" +checksum = "908f34bd9b9ce3d4caf07b72dfab63d61504d156856c6bd3cd87fa350cf3985b" dependencies = [ "bumpalo", "proc-macro2", @@ -2583,9 +2584,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.118" +version = "0.2.123" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fd04d9e306f1907bd13c6361b5c6bfc7b3b3c095ed3f8a9246390f8dbdee129" +checksum = "7acbf7616c27b194bbb550bf77ed0c2c3e5b7fd1260a93082b95fb7f47959b92" dependencies = [ "unicode-ident", ] @@ -2626,9 +2627,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.95" +version = "0.3.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f2dfbb17949fa2088e5d39408c48368947b86f7834484e87b73de55bc14d97d" +checksum = "6e0871acf327f283dc6da28a1696cdc64fb355ba9f935d052021fa77f35cce69" dependencies = [ "js-sys", "wasm-bindgen", @@ -2806,9 +2807,9 @@ dependencies = [ [[package]] name = "winnow" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ee1708bef14716a11bae175f579062d4554d95be2c6829f518df847b7b3fdd0" +checksum = "0592e1c9d151f854e6fd382574c3a0855250e1d9b2f99d9281c6e6391af352f1" dependencies = [ "memchr", ] @@ -2909,7 +2910,7 @@ dependencies = [ [[package]] name = "xtask" -version = "0.2.0" +version = "0.3.0" dependencies = [ "anyhow", "clap", @@ -2920,18 +2921,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.48" +version = "0.8.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9" +checksum = "ce1022995ff5ff5d841ad7d994facc23098cd40152f2c1d11cd607c6f530653f" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.48" +version = "0.8.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4" +checksum = "1ae7f38b72ec2a254e2b87ef277cf2cd4fb97cbebf944faa6f33354da0867930" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index f15a5754c..0936971cc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,24 +3,24 @@ members = [".", "crates/fgumi-raw-bam", "crates/fgumi-dna", "crates/fgumi-bgzf", resolver = "2" [workspace.package] -version = "0.2.0" +version = "0.3.0" edition = "2024" rust-version = "1.87.0" repository = "https://github.com/fulcrumgenomics/fgumi" license = "MIT" [workspace.dependencies] -fgumi-bam-io = { version = "0.2.0", path = "crates/fgumi-bam-io" } -fgumi-bgzf = { version = "0.2.0", path = "crates/fgumi-bgzf" } -fgumi-consensus = { version = "0.2.0", path = "crates/fgumi-consensus", default-features = false } -fgumi-dna = { version = "0.2.0", path = "crates/fgumi-dna" } -fgumi-metrics = { version = "0.2.0", path = "crates/fgumi-metrics" } -fgumi-raw-bam = { version = "0.2.0", path = "crates/fgumi-raw-bam" } -fgumi-sam = { version = "0.2.0", path = "crates/fgumi-sam" } -fgumi-simd-fastq = { version = "0.2.0", path = "crates/fgumi-simd-fastq" } -fgumi-sort = { version = "0.2.0", path = "crates/fgumi-sort" } -fgumi-tag = { version = "0.2.0", path = "crates/fgumi-tag" } -fgumi-umi = { version = "0.2.0", path = "crates/fgumi-umi" } +fgumi-bam-io = { version = "0.3.0", path = "crates/fgumi-bam-io" } +fgumi-bgzf = { version = "0.3.0", path = "crates/fgumi-bgzf" } +fgumi-consensus = { version = "0.3.0", path = "crates/fgumi-consensus", default-features = false } +fgumi-dna = { version = "0.3.0", path = "crates/fgumi-dna" } +fgumi-metrics = { version = "0.3.0", path = "crates/fgumi-metrics" } +fgumi-raw-bam = { version = "0.3.0", path = "crates/fgumi-raw-bam" } +fgumi-sam = { version = "0.3.0", path = "crates/fgumi-sam" } +fgumi-simd-fastq = { version = "0.3.0", path = "crates/fgumi-simd-fastq" } +fgumi-sort = { version = "0.3.0", path = "crates/fgumi-sort" } +fgumi-tag = { version = "0.3.0", path = "crates/fgumi-tag" } +fgumi-umi = { version = "0.3.0", path = "crates/fgumi-umi" } bytemuck = { version = "1.14", features = ["derive"] } wide = "1.5" diff --git a/crates/fgumi-bam-io/CHANGELOG.md b/crates/fgumi-bam-io/CHANGELOG.md index af578c835..f4b395ed2 100644 --- a/crates/fgumi-bam-io/CHANGELOG.md +++ b/crates/fgumi-bam-io/CHANGELOG.md @@ -4,6 +4,27 @@ All notable changes to this project will be documented in this file. ## [Unreleased] +## [0.3.0] - 2026-06-10 + +### Bug Fixes + +- Address remaining review feedback from PR #323 ([#325](https://github.com/fulcrumgenomics/fgumi/pull/325)) +- Accept --compression-level 0 for uncompressed BAM ([#360](https://github.com/fulcrumgenomics/fgumi/pull/360)) ([#361](https://github.com/fulcrumgenomics/fgumi/pull/361)) + +### Miscellaneous Tasks + +- Remove orphaned public-api.txt snapshots ([#376](https://github.com/fulcrumgenomics/fgumi/pull/376)) + +### Performance + +- Cache next milestone threshold for log_if_needed fast path ([#345](https://github.com/fulcrumgenomics/fgumi/pull/345)) + +### Refactor + +- Extract fgumi-bam-io and fgumi-sort workspace crates ([#323](https://github.com/fulcrumgenomics/fgumi/pull/323)) + + + ### Refactor - Extracted the BAM-pipeline I/O layer into the new `fgumi-bam-io` crate. The main `fgumi` binary now consumes it as a workspace dependency; behavior is unchanged. diff --git a/crates/fgumi-bgzf/CHANGELOG.md b/crates/fgumi-bgzf/CHANGELOG.md index a8bae4bdc..cd7fb4c3b 100644 --- a/crates/fgumi-bgzf/CHANGELOG.md +++ b/crates/fgumi-bgzf/CHANGELOG.md @@ -2,6 +2,20 @@ All notable changes to this project will be documented in this file. +## [0.3.0] - 2026-06-10 + +### Bug Fixes + +- Honor compression level 0 in InlineBgzfCompressor ([#340](https://github.com/fulcrumgenomics/fgumi/pull/340)) +- Accept --compression-level 0 for uncompressed BAM ([#360](https://github.com/fulcrumgenomics/fgumi/pull/360)) ([#361](https://github.com/fulcrumgenomics/fgumi/pull/361)) + +### Performance + +- Follow-ups from the agilent sort profile ([#344](https://github.com/fulcrumgenomics/fgumi/pull/344)) +- Bypass libdeflater for deflate stored blocks ([#366](https://github.com/fulcrumgenomics/fgumi/pull/366)) + + + ## [0.2.0] - 2026-04-22 diff --git a/crates/fgumi-consensus/CHANGELOG.md b/crates/fgumi-consensus/CHANGELOG.md index bd4edfb96..41ddddecd 100644 --- a/crates/fgumi-consensus/CHANGELOG.md +++ b/crates/fgumi-consensus/CHANGELOG.md @@ -2,6 +2,20 @@ All notable changes to this project will be documented in this file. +## [0.3.0] - 2026-06-10 + +### Bug Fixes + +- Gate methylation-dependent filter fns behind simplex ([#313](https://github.com/fulcrumgenomics/fgumi/pull/313)) + +### Refactor + +- Validate and consolidate SAM tag identifiers via SamTag ([#316](https://github.com/fulcrumgenomics/fgumi/pull/316)) +- Typed CodecConsensusError replaces substring matching ([#342](https://github.com/fulcrumgenomics/fgumi/pull/342)) +- Delegate ConsensusOutput heap-size estimate to owning type ([#368](https://github.com/fulcrumgenomics/fgumi/pull/368)) + + + ## [0.2.0] - 2026-04-22 ### Bug Fixes diff --git a/crates/fgumi-dna/CHANGELOG.md b/crates/fgumi-dna/CHANGELOG.md index ce306765e..963d64141 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.3.0] - 2026-06-10 + + + ## [0.2.0] - 2026-04-22 diff --git a/crates/fgumi-metrics/CHANGELOG.md b/crates/fgumi-metrics/CHANGELOG.md index e4d11dba0..ce706dc07 100644 --- a/crates/fgumi-metrics/CHANGELOG.md +++ b/crates/fgumi-metrics/CHANGELOG.md @@ -2,6 +2,14 @@ All notable changes to this project will be documented in this file. +## [0.3.0] - 2026-06-10 + +### Bug Fixes + +- Drop dense (max_ab × max_ba) grid that OOMs on cfDNA hot spots ([#359](https://github.com/fulcrumgenomics/fgumi/pull/359)) + + + ## [0.2.0] - 2026-04-22 ### Refactor diff --git a/crates/fgumi-raw-bam/CHANGELOG.md b/crates/fgumi-raw-bam/CHANGELOG.md index 1374841a6..4511a7ca9 100644 --- a/crates/fgumi-raw-bam/CHANGELOG.md +++ b/crates/fgumi-raw-bam/CHANGELOG.md @@ -2,6 +2,19 @@ All notable changes to this project will be documented in this file. +## [0.3.0] - 2026-06-10 + +### Performance + +- Cache UMI tag position in DecodedRecord to avoid duplicate aux scan ([#343](https://github.com/fulcrumgenomics/fgumi/pull/343)) +- Single-pass aux scan captures UMI position ([#334](https://github.com/fulcrumgenomics/fgumi/pull/334)) ([#351](https://github.com/fulcrumgenomics/fgumi/pull/351)) + +### Refactor + +- Validate and consolidate SAM tag identifiers via SamTag ([#316](https://github.com/fulcrumgenomics/fgumi/pull/316)) + + + ## [0.2.0] - 2026-04-22 ### Bug Fixes diff --git a/crates/fgumi-sam/CHANGELOG.md b/crates/fgumi-sam/CHANGELOG.md index 7aafb7247..555b5241c 100644 --- a/crates/fgumi-sam/CHANGELOG.md +++ b/crates/fgumi-sam/CHANGELOG.md @@ -2,6 +2,18 @@ All notable changes to this project will be documented in this file. +## [0.3.0] - 2026-06-10 + +### Bug Fixes + +- [**breaking**] Require SS:template-coordinate ([#337](https://github.com/fulcrumgenomics/fgumi/pull/337)) + +### Refactor + +- Validate and consolidate SAM tag identifiers via SamTag ([#316](https://github.com/fulcrumgenomics/fgumi/pull/316)) + + + ## [0.2.0] - 2026-04-22 ### Bug Fixes diff --git a/crates/fgumi-simd-fastq/CHANGELOG.md b/crates/fgumi-simd-fastq/CHANGELOG.md index 244a15f66..c7c937dd7 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.3.0] - 2026-06-10 + + + ## [0.2.0] - 2026-04-22 diff --git a/crates/fgumi-sort/CHANGELOG.md b/crates/fgumi-sort/CHANGELOG.md index ebfabf7c7..40a8ed9b8 100644 --- a/crates/fgumi-sort/CHANGELOG.md +++ b/crates/fgumi-sort/CHANGELOG.md @@ -4,6 +4,34 @@ All notable changes to this project will be documented in this file. ## [Unreleased] +## [0.3.0] - 2026-06-10 + +### Bug Fixes + +- Address remaining review feedback from PR #323 ([#325](https://github.com/fulcrumgenomics/fgumi/pull/325)) +- Carry library & MI in the completely-unmapped template key ([#386](https://github.com/fulcrumgenomics/fgumi/pull/386)) + +### Features + +- Zstd as the default temp-spill codec ([#341](https://github.com/fulcrumgenomics/fgumi/pull/341)) +- Variable-width template-coordinate sort key, zero-copy merge, and slimmer arena ([#375](https://github.com/fulcrumgenomics/fgumi/pull/375)) + +### Miscellaneous Tasks + +- Remove orphaned public-api.txt snapshots ([#376](https://github.com/fulcrumgenomics/fgumi/pull/376)) + +### Performance + +- Follow-ups from the agilent sort profile ([#344](https://github.com/fulcrumgenomics/fgumi/pull/344)) +- Share SegmentedBuf across in-memory sort chunks via Arc ([#350](https://github.com/fulcrumgenomics/fgumi/pull/350)) + +### Refactor + +- Extract fgumi-bam-io and fgumi-sort workspace crates ([#323](https://github.com/fulcrumgenomics/fgumi/pull/323)) +- Demote algorithm-internal info! logs to debug ([#367](https://github.com/fulcrumgenomics/fgumi/pull/367)) + + + ### Refactor - Extracted the sort engine into the new `fgumi-sort` crate. The main `fgumi` binary now consumes it as a workspace dependency; behavior is unchanged. diff --git a/crates/fgumi-tag/CHANGELOG.md b/crates/fgumi-tag/CHANGELOG.md new file mode 100644 index 000000000..0a472137b --- /dev/null +++ b/crates/fgumi-tag/CHANGELOG.md @@ -0,0 +1,11 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +## [0.3.0] - 2026-06-10 + +### Refactor + +- Validate and consolidate SAM tag identifiers via SamTag ([#316](https://github.com/fulcrumgenomics/fgumi/pull/316)) + + diff --git a/crates/fgumi-umi/CHANGELOG.md b/crates/fgumi-umi/CHANGELOG.md index fe5bc87d8..b67f2a550 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.3.0] - 2026-06-10 + +### Bug Fixes + +- Deterministic MoleculeId numbering via opt-in MI Assign stage ([#319](https://github.com/fulcrumgenomics/fgumi/pull/319)) + + + ## [0.2.0] - 2026-04-22