From f519c0ef7f8d576d28609c7e7d6525ce8d2c49fe Mon Sep 17 00:00:00 2001 From: Eric Coissac Date: Sat, 14 Mar 2026 11:43:42 +0100 Subject: [PATCH] 4.4.27: Static Linux builds, memory-aware batching, and build toolchain upgrades This release includes significant improvements to resource management, build reliability, and portability. ### Memory-Aware Batching (Backward Compatible) - Added configurable batch size and memory limits to prevent excessive memory usage during large dataset processing. - Introduced a new `--batch-mem` command-line option (e.g., `128K`, `64M`, `1G`) to enable adaptive batching based on estimated sequence memory footprint. - Internal batching logic now flushes batches when either size or memory thresholds are exceeded, ensuring predictable behavior. - Conservative memory estimation and explicit garbage collection after large batch discards improve resource efficiency. ### Linux Build Enhancements - Enabled static linking for Linux binaries using musl, producing self-contained executables with no external runtime dependencies. - Refined cross-compilation toolchain to use architecture-specific CGO header paths, improving reliability across target architectures. - Switched Linux builds to use Docker-based static compilation for consistency and reproducibility. ### Build System & Toolchain Improvements - Upgraded Go toolchain to 1.26, with updated dependencies including golang.org/x/net v0.38.0. - Fixed Makefile quoting for LDFLAGS to handle paths containing spaces. - Enhanced build error handling to display logs before cleanup on failure. - Improved install script with correct environment variable setup (GOROOT, GOPATH, GOTOOLCHAIN) and added progress indicators for downloads. Note: All batching behavior remains non-breaking, with default constraints ensuring safe processing of large datasets. --- 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 88d8fe8..e4ef0cd 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.26" +var _Version = "Release 4.4.27" // Version returns the version of the obitools package. // diff --git a/version.txt b/version.txt index c92e911..2e97d0a 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -4.4.26 +4.4.27