Skip to content

v3.4.0

Compare
Choose a tag to compare
@phlptp phlptp released this 20 Jan 21:48
· 113 commits to main since this release
0e9632e

Major release including full dynamic federation capability and wildcard based matching for interface connections.

Fixed

  • Updated some out of date docker images to build automatically and fix some issues preventing the use of -flto option
  • Fixed a few more sporadically failing testing cases and a rare bug in the use of wait_for_current_time flag when entering executing mode

Changed

  • Test with Boost 1.81 and CMake 3.25
  • Update the units library
  • Update Spdlog library
  • Update to release 2.3 of CLI11
  • Split the application API tests in a set of 4 smaller tests to reduce test runtime and ease maintenance.
  • Update copyright to 2023

Added

  • Added the capability to link interfaces through a regex expression. "REGEX: <regex>" this format of string can be used in any place interface names can be used. This will not work on targets linked after initialization mode at present though this is expected to be relaxed in the future. Also if both sides are specified as strings at least one of them must be an actual name.
  • Added fully dynamic federation capability. Federates may be added dynamically if --dynamic flag is set on the root broker. Dynamic publications and endpoints are enabled by default but can be disabled.
  • Added automated workflow for generating release task checklist on version release
  • Added dependabot configuration for updating github-actions workflow dependencies
  • Added documentation on using encrypted communication in HELICS
  • Added support for using environment variables for enabling encryption instead of command line arguments for federates

Deprecated

  • Nearly all methods that use Subscription in the name have been deprecated in favor of an equivalent version for Input to reduce confusion of use of subscription objects (which are just Input objects); these are all 1:1 mappings
    • getSubscription(string target) -> getInputByTarget(string target)
    • getSubscription(int index) -> getInput(int index)
    • helicsSubscriptionGetTarget(inp) -> helicsInputGetTarget(inp)
    • helicsFederateGetSubscription(fed, string target)->helicsFederateGetInputByTarget(fed,string target)