HELICS v3.0.0 Release Notes

Release Date: 2021-07-15 // almost 3 years ago
  • ๐Ÿš€ HELICS 3.0 is a major update to HELICS. The major features that have been added are the command interface and targeted Endpoints. Internally major changes include updating the minimum compiler to C++17, and updates to internal libraries. The binary serialization protocol was shifted from Cereal to a custom format that embeds the data type so is more suitable to HELICS data types. The initial release is an alpha release for some initial testing.

    ๐Ÿ”„ Changed

    • ๐Ÿšš Data serialization moved to a custom protocol specific to HELICS.
    • ๐Ÿ— Minimum build requirements to C++17.
    • Minimum boost library for use is 1.67.
    • Many of the API functions now use string_view instead of const std::string &
    • The C shared library now comes with only a single header helics.h this should be included for all uses of the C shared library
    • The name of the C based shared library changed to libhelics.dll/so
    • The name of the C++ shared library changed to libhelicscpp.dll/so
    • The name of the apps library changed to libhelicscpp-apps.dll/so
    • ๐Ÿ’… The style of enumerations and structures was changed to match an updated [style guide](./docs/developer-guide/style.md)
    • All HELICS specific CMake variables start with HELICS_
    • ๐ŸŒฒ The format for log messages now includes a simulation time stamp [t=xxxx]
    • ๐ŸŒฒ Log level numerical values have been expanded (multiplied by 3) to allow more gradations in log levels than was previously allowed
    • ๐Ÿšš The allowed set of string names has been reduced to avoid confusion and remove duplicate entries
    • All queries (except global_value) return a valid json string. Errors from queries return a structure with an HTTP error code and message

    ๐Ÿ›  Fixed

    • ๐Ÿ›  All bug fixes included in HELICS 2.X are included in HELICS 3

    โž• Added

    • Command interface
    • Targeted Endpoints
    • Interface Tags
    • Federate and Core Tags

    โœ‚ Removed

    • Message structure from C API
    • ๐Ÿ—„ Deprecated functions from HELICS 2
    • The separate headers for the C shared library are no longer installed. Instead only a single header (helics.h) is needed and includes all functions and operations.
    • The cereal library is no longer installed or used with HELICS
    • ๐Ÿ‘ The C++ API no longer has generic type support through Cereal.

    ๐Ÿš€ [3.0.0]: https://github.com/GMLC-TDC/HELICS/releases/tag/v3.0.0 ๐Ÿš€ [3.0.1]: https://github.com/GMLC-TDC/HELICS/releases/tag/v3.0.1 ๐Ÿš€ [3.1.0]: https://github.com/GMLC-TDC/HELICS/releases/tag/v3.1.0 ๐Ÿš€ [3.1.1]: https://github.com/GMLC-TDC/HELICS/releases/tag/v3.1.1 ๐Ÿš€ [3.1.2]: https://github.com/GMLC-TDC/HELICS/releases/tag/v3.1.2 ๐Ÿš€ [3.2.0]: https://github.com/GMLC-TDC/HELICS/releases/tag/v3.2.0 ๐Ÿš€ [3.2.1]: https://github.com/GMLC-TDC/HELICS/releases/tag/v3.2.0

    ๐Ÿ“„ The changelog for HELICS 1.X and 2.X can be found [here](./docs/HELICS2_CHANGELOG.md)