HELICS v2.4.0 Release Notes

Release Date: 2020-02-04 // about 4 years ago
  • Important note for macOS 10.15 Catalina users : Apple made running unsigned apps more strict, downloading and running the helics binaries in the macOS package will get blocked. A workaround is to download the package using curl in Terminal instead. e.g. curl -LO https://github.com/GMLC-TDC/HELICS/releases/download/v2.4.0/Helics-2.4.0-macOS-x86_64.zip.

    🚀 A few bug fixes, code coverage on the shared library increased to 100%, library updates, Broker server enhancements including an http REST API, and a lot of work on the build systems to enable easier releases and packaging.

    🔄 Changed

    • ⚡️ filesystem include updated to 1.2.10
    • ⚡️ CLI11 updated to 1.9
    • ⚡️ fmt updated to 6.1.2
    • 🚀 variant header updated to latest release
    • ⚡️ Update the units library (v0.3.0)
    • The TOML interpreter used in HELICS was changed to toml11
    • 📦 Some unnecessary files were removed from the all source package
    • some internal CMake options and messages were not using new format for message
    • ⚡️ Major updates to the python modules build system including merging the python3 and python 2 builds into the same CMake generator
    • CMake cleanup and formatting
    • 🍎 A series of changes to the build for more widely supported installations on Linux and MacOS
    • The .clang-format file was modified slightly and the entire code base reformatted to the new specification
    • 📇 the metadata information for the benchmarks was updated
    • The FilterOperator class was altered to include a vector output for use with cloning
    • TCP and UDP core types are not by default backwards compatible with <2.4 brokers. The flag "--noack_connect" will need to be passed as part of the coreinitialization string to allow this to work if need be. ZMQ_SS cores are not considered interoperable with <2.4 brokers due to a number of bugs. In a few select cases it might still work.

    🛠 Fixed

    • 🍎 macOS rpath information on the built binaries
    • Some issues with swig include directories to allow it to work in other circumstances
    • 🏗 an issue with building the java interface in MSYS2
    • 👉 an issue with the HELICS_USE_NEW_PYTHON_FIND CMake option
    • Some thread sanitizer identified issues
    • A series of issues from static analyzers
    • 👻 an issue in the shared library create core that could emit an exception
    • A series of issues related to remote cloning filters not being inline
    • Several issues with the zmqss core type it is not backwards compatible with <2.4 brokers
    • 🛠 The code coverage on the C shared library was increased to 100% and a number of small bugs fixed as a result. The overall coverage increased to 71.5%

    ➕ Added

    • 🐧 Several installers for Linux and Mac and builds for pip install
    • 👍 Allow standalone builds for the python interface
    • ➕ Added a Ring Message benchmark, like the ring Benchmark except using messages as the token
    • ➕ Added a Multinode phold benchmark
    • ➕ Added a c shared library echo benchmark
    • git logic to check if the submodules are at the correct version
    • an option for a githook to check the formatting
    • ⚠ git warning if the submodule versions are not at the correct version
    • a timing benchmark similar to the echo benchmark
    • ✅ a number of tests for the C shared library including evil tests for testing bad input
    • 🏗 Hooks to test the coverage builds
    • a feature to mark a broker or federate as slow responding so it doesn't time out automatically
    • 🔧 EditorConfig and .gitattributes for cleaner diff and automatic editor configuration
    • 🛠 An incorrect call in the Matlab swig code was fixed
    • Automatic generation of pull requests for source code formatting
    • ➕ Add metadata information to the benchmarks for automatic processing
    • Broker server functionality for tcp core, zmqss core, and udp core
    • 🏗 An experimental web server that can be used with the broker server or the broker executables. (requires boost 1.70+ to build)
    • man pages for the helics applications

    🗄 Deprecated

    • 🚀 The ZMQ_SS core type is not generally compatible between 2.3 and 2.4 Minor releases due to bug fixes.