From e9f24426df1ef44193ed772d780843d904e6460f Mon Sep 17 00:00:00 2001 From: Eric Coissac Date: Fri, 13 Mar 2026 19:03:50 +0100 Subject: [PATCH] 4.4.23: Memory-aware batching, static Linux builds, and build improvements ### Memory-Aware Batching - Introduced configurable min/max batch size bounds and memory limits for precise resource control. - Added `--batch-mem` CLI option to enable adaptive batching based on estimated sequence memory footprint (e.g., 128K, 64M, 1G). - Implemented `RebatchBySize()` to handle both byte and count limits, flushing when either threshold is exceeded. - Added conservative memory estimation via `BioSequence.MemorySize()` and enhanced garbage collection for explicit cleanup after large batch discards. - Updated internal batching logic across core modules to consistently apply default memory (128 MB) and size (min: 1, max: 2000) bounds. ### Linux Build Enhancements - Enabled static linking for Linux binaries using musl, producing portable, self-contained executables without external dependencies. ### Build System & Toolchain Improvements - Updated Go toolchain to 1.26.1 with corresponding dependency bumps (e.g., go-getoptions, gval, regexp2, go-json, progressbar, logrus, testify). - Fixed Makefile to safely quote LDFLAGS for paths with spaces. - Improved build error handling: on failure, logs are displayed before cleanup and exit. - Updated install script to correctly set GOROOT, GOPATH, and GOTOOLCHAIN, ensuring GOPATH directory creation. - Added progress bar to curl downloads in the install script for visual feedback during Go and OBITools4 downloads. All batching behavior remains non-breaking, with consistent constraints improving predictability during large dataset processing. --- 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 89279ab..9bbd7ca 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.22" +var _Version = "Release 4.4.23" // Version returns the version of the obitools package. // diff --git a/version.txt b/version.txt index 9ed60f8..36a9353 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -4.4.22 +4.4.23