Repository navigation
v0.1.0: Packaging & Core Architecture Modernisation
RFL v0.1.0 Release Notes
Warning
Initial Package Release (Beta Phase)
RFL version 0.1.0 is the initial packaged release (v0.y.z). It establishes the canonical CMake target names and modernised library layout:
- Directory & Target Restructuring: The modern C++ library is located in
core/. Target references userfl_core(or the namespaced aliasesRFL::core/RFL::rfl). - Legacy Target Archival: Historical simulation code is archived under
legacy/(targetrfl_legacy, aliasRFL::legacy). - CMake Integration: Projects consuming RFL via CMake should link
RFL::coreusingtarget_link_libraries(<target> PRIVATE RFL::core).
RFL version 0.1.0 introduces automated multi-platform Python wheel packaging, zero-copy NumPy matrix interoperability, CMake FetchContent target exports, and a restructured source layout.
1. Highlights
- PyPI Binary Wheels: Precompiled wheels for Linux (
manylinux_2_28_x86_64) and macOS (x86_64,arm64) across Python 3.8 to 3.13 (pip install pyrfl). - Zero-Copy NumPy Interoperability: Native bidirectional memory mapping between Armadillo complex matrices (
arma::cx_mat) and NumPy arrays (numpy.ndarray) via Carma. - CMake In-Tree Targets: Exported namespaced alias
RFL::core(andRFL::rfl) forFetchContentand modular builds. - Source Layout Standardisation: Promoted modern C++ library to
src/RFL/core(rfl_core) and archived historical code tosrc/RFL/legacy(rfl_legacy).
2. Packaging & Distribution
- Implemented
cibuildwheelbuild configuration insrc/RFL/pyproject.toml. - Automated dynamic library vendoring (
openblas,gsl,armadillo) inside wheels usingauditwheel(Linux) anddelocate(macOS). - Configured automated PyPI publishing on release publication via OpenID Connect (OIDC) Trusted Publishing.
- Added source distribution (
sdist) generation and automated release asset bundling.
3. Python Bindings & Performance
- Integrated
carmaheader library intopybind11extension module. - Enabled direct extraction of Dirac operator eigenvalue spectra without intermediate array duplication.
- Preserved hermetic build support with Please (
pleasew) and standard CMake.
4. Documentation & Governance
- Published EP-1: Research-Driven Architecture Modernisation.
- Published EP-2: Multi-Platform Package and Binary Distribution.
- Created canonical ep-template.md and release-note-template.md.
- Standardised technical documentation, docstrings, and comments using ASD-STE100 and British English.
5. Compatibility & Requirements
Precompiled Python Wheels
- Linux (
x86_64):manylinux_2_28(glibc ≥ 2.28, Python 3.8–3.13). - macOS Apple Silicon (
arm64): macOS ≥ 14.0 Sonoma (Python 3.8–3.13). - macOS Intel (
x86_64): macOS ≥ 15.0 Sequoia (Python 3.8–3.13).
C++ Core & CMake Integration
- C++ Standard: C++17 conforming compiler (GCC ≥ 10, Clang ≥ 11, Apple Clang ≥ 13, MSVC ≥ 2019).
- Linear Algebra: Armadillo ≥ 11.4.0, OpenBLAS / LAPACK.
- Stochastic Engine: GNU Scientific Library (GSL) ≥ 2.6.
- Build System: CMake ≥ 3.20.