Release notes#
[v2.10.2] - 2026-02-22#
Fixed#
Eigen row-major storage for atom data mapping#
Eigen::Map calls that wrap raw double* atom data now specify
Eigen::RowMajor explicitly, ensuring consistent [x0, y0, z0, x1, ...]
layout regardless of compile-time defaults. This completes the storage-order
cleanup started in v2.10.1.
Windows MSVC compatibility (conda-forge upstream absorption)#
Several fixes originally carried as conda-forge recipe patches have been absorbed into the source tree:
XTBPot VLA removal: replaced the C99 variable-length array in
XTBPot.cppwithstd::vector, since MSVC does not support VLAs.INIFile empty-string guard: added a bounds check before indexing the last character of a string, preventing undefined behavior on empty lines under MSVC.
POSIX header guards: wrapped
<unistd.h>and<sys/wait.h>includes in#ifdefguards and replacedsystem()shell calls in IMD withstd::filesystemequivalents.Meson build-system fixes: decoupled xtb from the Fortran requirement, added Windows library search paths for libtorch, metatensor, and vesin.
Changed#
Version handling harmonization#
All version consumers (C++ client, Python package, Sphinx docs) now derive
from pyproject.toml as the single source of truth.
Developer#
Benchmark CI improvements#
The benchmark comparison step was moved into the commenter workflow and now
uses uvx --quiet for cleaner PR comment output.