Releases: mctools/mcpl
MCPL release 2.2.6
In addition to various minor maintenance updates, this release brings a small fix from @g5t to the implementation of the mcpl_merge_outfiles_mpi function, which lowers the peak disk usage at the end of an MPI job (cf. #119 and #120).
This function is currently known to be used in McStas and McXtrace, so users of those applications will immediately benefit from this improvement.
Full Changelog: v2.2.4...v2.2.6
MCPL release 2.2.4
Truly tiny maintenance release to rerender various deployments.
Full Changelog: v2.2.2...v2.2.4
MCPL release 2.2.2
Maintenance release which fixes compilation with gcc 14, and adds another check in mcpl_merge_outfiles_mpi when nproc=1.
Full Changelog: v2.2.0...v2.2.2
MCPL release 2.2.0
This minor release adds a few new functions to the C API with utilities meant to make life easier when implementing MCPL bindings in downstream applications (#91).
- Two new functions
mcpl_create_outfile_mpiandmcpl_merge_outfiles_mpican be used to handle some of the tedium and book-keeping needed for applications creating multiple MCPL files from a number of MPI processes before finally merging to a single file. - The
mcpl_name_helperfunction helps with parsing user inputMCPL filenameparameter strings into absolute or relative path names, with or without a.mcplor.mcpl.gzsuffix.
Like all other functions in the MCPL C API, these new functions work on both POSIX and Windows systems and can handle unicode characters in file-system paths. Refer to comments in mcpl.h for more information (here).
Full Changelog: v2.1.0...v2.2.0
MCPL release 2.1.0
This release brings an often-requested feature to MCPL: Statistics in the file header which are automatically combined when files are merged!
The support does not require an update of the on-disk MCPL format, but is handled as a convention for encoding the parameters as key-value pairs in comment fields in the MCPL headers, using a syntax like "stat:sum:<key>:<value>".
The various APIs (C/Python/cmdline) have been updated to provide interfaces for interacting with these data items, and all supported operations (merge/repair/extract/...) have been updated to handle such entries appropriately. For a more complete introduction of the new feature, please refer to the documentation at the https://mctools.github.io/mcpl/format_statsum/ page.
Full Changelog: v2.0.0...v2.1.0
MCPL release 2.0.0
- This milestone release brings new supported user platforms, new packaging and deployment, and a huge restructuring of the environment in which MCPL is developed and tested.
- One highly visible feature is that MCPL wheels on PyPI now provide fully-fledged installations with all features previously only available via Conda or custom builds. Thus,
pip install mcplis now an alternative toconda install -c conda-forge mcplfor getting all the features. - Another, and perhaps the biggest, user-visible feature is that MCPL now also supports usage on Windows! This support is NOT considered experimental, and Windows users can now install the
mcplpackage via tools likepipandcondaand expect the same features on both the command-line and in the Python and C APIs as Unix users have had in the past. Of course, there might be bugs or issues to iron out, so please help us test out the new release on Windows and file issues at https://github.com/mctools/mcpl/issues as appropriate! - Another, less exciting but still note-worthy, change is that MCPL code is now released under the highly permissible and OSI approved Apache 2.0 license. This change in licensing was decided since the previous license (CC0) seems to have fallen out of favour in the general open source community.
- Keeping in line with general trends at github, the default branch of the mcpl repository is named main rather than master, from this point on.
- The website at https://mctools.github.io/mcpl/ has been fully updated for the new release.
- The MCPL-Geant4 hooks are moved out of the mcpl repository and into https://github.com/mctools/mcpl-geant4.
- In order to keep the
mcplpackage more lean, tools likessw2mcpl,mcpl2ssw,phits2mcpl, andmcpl2phitshave been moved to a separate package namedmcpl-extra, which users need to install withpiporcondaif they still need access to them. - The development of MCPL 2.0.0 involved over 200 commits affecting almost 300 files, and these obviously cover many other changes big and small. Refer to the CHANGELOG for more details.
Full code differences: v1.6.2...v2.0.0
MCPL release 1.6.2
A very small release which makes the Python API work with latest Numpy again (fixing #72).
MCPL release 1.6.1
Minor updates for the MCPL_ENABLE_ZLIB=FETCH option for CMake, ensuring correct application of C defines as provided by the upstream zlib CMake code.
MCPL release 1.6.0
Another release with multiple CMake-configuration improvements. Most visibly, most high-level CMake options were renamed so their names are now prefixed with MCPL_ and use a more consistent naming scheme (#67). For example BUILD_EXAMPLES is now instead MCPL_ENABLE_EXAMPLES, find more variables by looking here. For now, it has been attempted to remain backwards compatible and support the old variables as well, but it is highly recommended to migrate to the new variables as soon as possible.
The dependency on ZLIB has been made more flexible. The new option MCPL_ENABLE_ZLIB is more flexible and supports one of several values: IFAVAILABLE, FETCH, USEPREINSTALLED, ALWAYS, OFF, or NEVER. The default value of IFAVAILABLE will try to locate ZLIB, but will simply disable ZLIB support if unsuccesful. The identical options OFF and NEVER are obviously simply disabling ZLIB support irrespective of presence on the system. The option ALWAYS will attempt to find ZLIB on the system, and if it fails it will instead fetch the zlib sources from the official zlib location at github, and build the appropriate capabilities right into the MCPL binaries. The option, USEPREINSTALLED is actually like the old default behaviour: look for ZLIB on the system and fail if it it is not available. Finally, the option FETCH will always fetch sources online, ignoring any ZLIB already present on the system.
A few other hidden expert-only options (MCPL_ENABLE_CPACK, MCPL_DISABLE_CXX) were added as well, supporting various integration and packaging efforts.
MCPL release 1.5.1
This is a very small release, which simply contains a few minor modifications to the main CMakeLists.txt file (for instance to fix #65).