From cdc72c5346e2ffd830400105ac0d57d15dcfc6dc Mon Sep 17 00:00:00 2001 From: Eric Coissac Date: Fri, 13 Mar 2026 11:59:32 +0100 Subject: [PATCH] 4.4.21: Parallel builds, robust installation, and rope-based parsing enhancements MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This release introduces significant improvements to build reliability and performance, alongside key parsing enhancements for sequence data. ### Build & Installation Improvements - Added support for parallel compilation via `-j/--jobs` option in both the Makefile and install script, enabling faster builds on multi-core systems. The default remains single-threaded for safety. - Enhanced Makefile with `.DEFAULT_GOAL := all` for consistent behavior and a documented `help` target. - Replaced fragile file operations with robust error handling, clear diagnostics, and automatic preservation of the build directory on copy failures to aid recovery. ### Rope-Based Parsing Enhancements (from 4.4.20) - Introduced direct rope-based parsers for FASTA, EMBL, and FASTQ formats, improving memory efficiency for large files. - Added U→T conversion support during sequence extraction and more reliable line ending detection. - Unified rope scanning logic under a new `ropeScanner` for better maintainability. - Added `TakeQualities()` method to BioSequence for more efficient handling of quality data. ### Bug Fixes (from 4.4.20) - Fixed `CompressStream` to correctly respect the `compressed` variable. - Replaced ambiguous string splitting utilities with precise left/right split variants (`LeftSplitInTwo`, `RightSplitInTwo`). ### Release Tooling (from 4.4.20) - Streamlined release process with modular targets (`jjpush-notes`, `jjpush-push`, `jjpush-tag`) and AI-assisted note generation via `aichat`. - Improved versioning support via the `VERSION` environment variable in `bump-version`. - Switched PR submission from raw `jj git push` to `stakk` for consistency and reliability. Note: This release incorporates key enhancements from 4.4.20 that impact end users, while focusing on build robustness and performance gains. --- pkg/obioptions/version.go | 2 +- version.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/obioptions/version.go b/pkg/obioptions/version.go index 0de542a..7f851b0 100644 --- a/pkg/obioptions/version.go +++ b/pkg/obioptions/version.go @@ -3,7 +3,7 @@ package obioptions // Version is automatically updated by the Makefile from version.txt // The patch number (third digit) is incremented on each push to the repository -var _Version = "Release 4.4.20" +var _Version = "Release 4.4.21" // Version returns the version of the obitools package. // diff --git a/version.txt b/version.txt index d83088a..711adc7 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -4.4.20 +4.4.21