NCrystal release 3.7.0
The main feature of this release is that NCrystal now can be optionally built and installed using standard Python-centric toolchains!
Work on this feature was spearheaded by @MilanKlausz, and is associated with newly added setup.py
and pyproject.toml
files, using scikit-build and CMake behind the scenes. Additionally, Python modules and script were moved out of the ncrystal_python/
sub-directory and into directories named NCrystal/
and scripts/
, respectively (cf. #127), and existing Python modules and the ncrystal-config script were modified to support such builds and installation.
As a result, it is now possible to do pip install <path-to-ncrystal-src>
, and get a fully-fledged NCrystal release. The only difference with respect to e.g. a conda installation of NCrystal, is that downstream CMake-based projecs won't detect the installation, unless the directory reported by ncrystal-config --show cmakedir
is manually added to the CMAKE_PREFIX_PATH.
Work is ongoing by Milan Klausz to setup workflows at GitHUB to automatically build binary wheels for PyPI, similar to how binary packages are now built automatically at conda-forge. Once this is completed, it will be possible to install prebuilt NCrystal packages via "pip install ncrystal" (cf. #93).
The release also brings a few other minor features and bug fixes (such as a rewrite of our aligned allocator which was needed to support GCC 12, cf. #125 ). As usual, refer to the CHANGELOG for all the details.