HELICS v2.5.1 Release Notes

Release Date: 2020-06-05 // almost 4 years ago
  • ๐Ÿ”„ Changed

    • All ZeroMQ related files are now located in the network library and under a single namespace
    • ๐Ÿš€ Use Python 3.8 instead of 3.6 for any release build installers that include a copy of the Python interface (pip or anaconda are the recommended ways to install the Python interface)
    • โšก๏ธ Update units library to include some typical natural gas units and conversions
    • ๐Ÿ‘‰ Use a separate action for automated pr generation
    • โšก๏ธ Update the CLI11 library
    • The setOption/getOption functions now take an int32_t as a value instead of a boolean. This does not change the API since in the C library the helics_bool was already an int.
    • In the case of multiple sources, getInjectionType, and getInjectionUnits now will return a json string vector.
    • ๐Ÿ— The CMake build generation now uses a central location for all build artifacts instead of individual directories.
    • โšก๏ธ Updated the ASIO library to 1-16
    • โšก๏ธ Minor updates to the clang-format to allow better alignment and comment reflow
    • ๐Ÿ”จ Numerous code refactorings to simplify and clean up code
    • ๐Ÿšš Move all ZMQ related items to the network library
    • โšก๏ธ Updated Python packages DLL load failed error to suggest installing the latest Visual C++ Runtime

    ๐Ÿ›  Fixed

    • โœ… Sporadic failures in the Webserver and websocket tests
    • ๐ŸŒ A bug in the translation of vectors to complex vectors
    • A bug in the copying of vectors into the C shared library
    • Numerous clang-tidy identified issues mostly for code readability
    • Some issues with the exists query not working in certain circumstances and for cores and brokers
    • โœ… The nonlings test would fail if the branch name had error in it. A check was put into eliminate this false negative test failure.
    • โœ… A few sporadic failure cases in the http and websocket tests
    • ๐Ÿ— A build generation issue with disabling the ZMQ core
    • ๐Ÿ”ง An error from the config interpreter where some flags were not getting correctly propagated to the Federate configuration.

    โž• Added

    • A helics::zmq target was added for linking with zeromq if using HELICS as a subproject
    • A HELICS_BENCHMARK_SHIFT_FACTOR CMake option was added to allow the benchmarks to scale depending on computational resources
    • "version" and "version_all" queries to get the local version string and the version strings of all the cores/brokers in the federation
    • โœ… A few missing operations to the C++98 interface for Message objects, add helicsMessageClone and helicsEndpointCreateMessage functions in the C interface. Add a test case for some of the C++98 message operations.
    • helicsQuerySetTarget and helicsQuerySetQueryString operations to modify an existing query in the C interface
    • A set of reduction operations for multi-input handling on inputs, options for setting input source priority and the number of expected connections
    • A Watts-Strogatz like benchmark
    • ๐Ÿ‘ A few more parameters that can be handled in the Webserver and support for use of uuid instead of name
    • A few missing message operators to the C++98 API, such as data, append, setFlag, checkFlag, sendMessageZeroCopy
    • Made the Message class return a self Reference for the setters
    • ๐Ÿ‘ท A test to run the helics-broker executable as part of the CI tests
    • 0๏ธโƒฃ A bug in the helics_broker that no longer ran correct defaults
    • A "version_all" query, to retrieve the version of HELICS in use for all cores/brokers, and a "version" query to retrieve the version of a specific target.
    • โšก๏ธ A series of checks for markdown, spelling, shellcheck, python formatting, cpplint, end-of-line and automated generation of PR scripts for the formatting updates.
    • Some level of automated scaling for benchmarks for small systems
    • ๐Ÿ— API functions for retrieving the build flags used to generate the library
    • Some additional message interpreters to aid in debugging
    • โœ… A test using the standalone helics_broker to run an example