Skip to content

Commit 5bd7602

Browse files
committed
Bump version to 3.5.2 and add ChangeLog entry
Updated in all four locations so the build artefacts agree: pyproject.toml (PyPI metadata) CMakeLists.txt (KALIGN_LIBRARY_VERSION_PATCH) build.zig (zig cross-compile package version) ChangeLog (release notes summary) Release theme: this is the first version that ships the four-mode preset system as the stable public interface (fast / default / recall / accurate), with the Chase-Lev threadpool replacing OpenMP as the default parallelism backend and macOS wheels no longer linking libomp.dylib — closing the conda-forge / numpy OpenMP runtime conflict reported on the issue tracker. Verified: kalign --version reports 3.5.2; kalign.__version__ reports 3.5.2; pre-push checklist (tests/check-local.sh --quick) green prior to this commit.
1 parent fe02b24 commit 5bd7602

5 files changed

Lines changed: 58 additions & 5 deletions

File tree

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ include(GenerateExportHeader)
1313

1414
set(KALIGN_LIBRARY_VERSION_MAJOR 3)
1515
set(KALIGN_LIBRARY_VERSION_MINOR 5)
16-
set(KALIGN_LIBRARY_VERSION_PATCH 1)
16+
set(KALIGN_LIBRARY_VERSION_PATCH 2)
1717
set(KALIGN_LIBRARY_VERSION_STRING ${KALIGN_LIBRARY_VERSION_MAJOR}.${KALIGN_LIBRARY_VERSION_MINOR}.${KALIGN_LIBRARY_VERSION_PATCH})
1818

1919

ChangeLog

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,57 @@
1-
2026-02-27 Timo Lassmann <timolassmann@icloud.com>
1+
2026-05-16 Timo Lassmann <timolassmann@icloud.com>
2+
3+
* version 3.5.2 - Four-mode preset system, threadpool, hardening
4+
Algorithm and presets
5+
- Four mode presets stable for protein and nucleotide:
6+
fast, default, recall, accurate. Per-mode configurations
7+
derived by NSGA-III multi-objective optimisation on
8+
BAliBASE v4 (protein) and BRAliBASE (RNA).
9+
- Unified nucleotide preset (DNA and RNA share one path).
10+
- Ensemble alignment with POAR consensus and per-column /
11+
per-residue confidence scores.
12+
- New --add mode: append sequences to an existing alignment.
13+
- Sparse consistency-bonus matrix for large MSAs (avoids
14+
quadratic memory in column count).
15+
- Removed deprecated 'precise' mode alias (Python only;
16+
never shipped as a wheel).
17+
18+
Parallelism
19+
- Chase-Lev work-stealing thread pool is now the default
20+
parallelism backend; OpenMP is optional (USE_OPENMP=ON).
21+
- macOS wheels no longer link libomp.dylib, resolving the
22+
conda-forge / numpy OpenMP runtime conflict.
23+
24+
Security / robustness
25+
- POAR file parsing now rejects malformed inputs that would
26+
cause integer overflow in pair-count or per-pair entry
27+
count (lib/src/poar.c). Limited threat model (requires
28+
explicit --load-poar) but tightened anyway.
29+
- finalise_alignment is now atomic w.r.t. msa->sequences:
30+
validates all per-sequence linear lengths before swapping
31+
any pointer, so a failure leaves the MSA unchanged.
32+
- kalign_msa_compare wraps finalise_alignment in RUN(); a
33+
failure surfaces cleanly instead of producing a half-
34+
finalised MSA.
35+
- DSSIM stress test now uses KALIGN_MATRIX_AUTO so it
36+
exercises both protein and DNA biotypes correctly.
37+
- Bumped locked dependencies (cryptography, flask, werkzeug,
38+
pillow, pygments, pytest, urllib3, requests, mako, black)
39+
past their CVE fix versions.
40+
41+
Build / tooling
42+
- build.zig updated for zig 0.16 (four cross-compile targets).
43+
- tests/check-local.sh: one-command pre-push gate that runs
44+
zig build + native ctest + Linux ASAN container + pytest.
45+
- Containerfile.memcheck (Ubuntu + ASAN + Valgrind) for local
46+
Linux memory-bug reproduction.
47+
- Removed paper-side benchmark machinery, optimizer scripts,
48+
and design-rationale PRDs from the public tree (preserved
49+
in the manuscript repository for reproducibility).
50+
- Cleaned up ~550 lines of dead code (coretralign,
51+
bitShiftRight256ymm, unused split() in bisectingKmeans).
52+
- Build is now warning-free on clang and GCC.
53+
- Dropped the broken benchmark CI workflow (BAliBASE download
54+
endpoint has been gone for months).
255

356
* version 3.5.1 - Bugfix release
457
- Fix memory leak in build_tree_from_pairwise (realign/ensemble)

build.zig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
const std = @import("std");
22

3-
const kalignPackageVersion = "3.5.1";
3+
const kalignPackageVersion = "3.5.2";
44

55
const targets: []const std.Target.Query = &.{
66
.{ .cpu_arch = .aarch64, .os_tag = .macos },

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ build-backend = "scikit_build_core.build"
88

99
[project]
1010
name = "kalign-python"
11-
version = "3.5.1"
11+
version = "3.5.2"
1212
description = "Python wrapper for the Kalign multiple sequence alignment engine"
1313
readme = "README-python.md"
1414
license = "Apache-2.0"

uv.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)