Skip to content

v2.4.1

Compare
Choose a tag to compare
@phlptp phlptp released this 07 Mar 13:57
e80b64f

Increased code coverage and additional bug fixes. The error propagation in HELICS was improved such that local errors can be escalated to global errors, and a federate can define errors coming from the federate that are handled appropriately and can halt a co-simulation.

Note for macOS users there is a bug that will be fixed in the next release that prevents building the Python interface with SWIG -- this mostly impacts the small number of users on Python 2.7.

Changed

  • The helics webserver will build by default if the conditions are met
  • Update filesystem library to v1.3.0
  • The behavior of the Federate*Complete operations is slightly modified to be uniform and consistent, no API changes
  • Configuration of flags and targets for interfaces in JSON and TOML files can be done in multiple sections
  • The benchmark federates have been changed to use a common base benchmark federate class for more consistent behavior
  • Switched to including netif as a git submodule
  • the error Function in the C++ API is now the same as localError previously it was primary useful for logging and didn't do much, and will be deprecated in the next minor release.
  • Updated the GitHub actions (clang-format, swig interface updates, and release builds) to use actions/checkout@v2
  • Cleaned up the Windows installer (better component names/descriptions and groups, link to Gitter, and require installing Headers to install SWIG)
  • Updated the HELICS apps manpages with new options

Fixed

  • Issue with iterative requests that were not being honored if the federate was acting in isolation
  • A few pathways which would allow segmentation faults if a federate was disconnected and particular functions were called
  • ValueFederate addIndexedTargets, the function template would not work as was written and was unusable, it is now tested and operational.

Added

  • HELICS_DISABLE_WEBSERVER option to turn off building of the webserver. It will build by default if Boost is enabled and is version 1.70 or higher; otherwise it is disabled.
  • A series of tests for Federate.cpp to increase coverage on that file to 100%
  • A series of tests for ValueFederate.*pp to increase coverage on that file to 100%
  • Docker image for a helics builder which includes build tools and the helics installation
  • helics can be installed on MSYS2 using pacman.
  • Standalone benchmark federates for use in multinode benchmark runs
  • A FreeBSD 12.1 CI build using Cirrus CI
  • Sending an event from GitHub Actions release builds to trigger updating additional HELICS packages when a new release is made
  • localError, and GlobalError function calls the Federate API and in the C++ and sharedLibrary.
  • helics_terminate_on_error flag to escalate what would be a local error into a global one that will halt the co-simulation. This flag can be specified through the flag to federates or to brokers and cores through a command line option --terminate_on_error
  • addDependency function was added to the C++ Federate API and shared library API, it can add a direct dependency between federates manually.
  • A 32-bit Windows zip install archive for releases
  • "global_time", "current_time", and "state" queries for brokers and cores, and "current_time" query for federates.
  • Support for a 'helics-release-build' event trigger to the release build GitHub Actions workflow

Deprecated

Removed

  • HELICS_ENABLE_WEBSERVER option to enable the webserver. This option was added as experimental in 2.4.0
  • VS2015 Windows Server 2012 CI build is removed. Azure Pipelines is removing the image because it is outdated and sees little use. VS2015 is still tested through Appveyor for the time being.