Skip to content

NCrystal release 3.7.0

Compare
Choose a tag to compare
@tkittel tkittel released this 14 Jul 17:26
· 42 commits to master since this release

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.