v3.4.0
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 forInput
to reduce confusion of use of subscription objects (which are just Input objects); these are all 1:1 mappingsgetSubscription(string target)
->getInputByTarget(string target)
getSubscription(int index)
->getInput(int index)
helicsSubscriptionGetTarget(inp)
->helicsInputGetTarget(inp)
helicsFederateGetSubscription(fed, string target)
->helicsFederateGetInputByTarget(fed,string target)