Skip to content

Commit 00c47c7

Browse files
authored
Merge pull request #2632 from GMLC-TDC/develop
Develop
2 parents a818def + f75d624 commit 00c47c7

File tree

123 files changed

+5987
-2085
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

123 files changed

+5987
-2085
lines changed

.circleci/config.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ jobs:
103103
docker:
104104
- image: helics/buildenv:sanitizers-14
105105
environment:
106-
CMAKE_FLAGS: '-DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_FLAGS="-fsanitize=undefined,address -lc++ -lc++abi -fsanitize-address-use-after-scope -fsanitize-ignorelist=/root/project/.circleci/asan_suppression.txt -Wno-unused-command-line-argument -fno-omit-frame-pointer -g -O1 -fsanitize-blacklist=/root/project/.circleci/asan_blacklist.txt" -DHELICS_BUILD_TESTS=ON -DHELICS_ZMQ_SUBPROJECT=ON -DHELICS_ZMQ_FORCE_SUBPROJECT=ON'
106+
CMAKE_FLAGS: '-DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_FLAGS="-fsanitize=undefined,address -lc++ -lc++abi -fsanitize-address-use-after-scope -fsanitize-ignorelist=/root/project/.circleci/asan_suppression.txt -Wno-reserved-macro-identifier -Wno-unused-command-line-argument -fno-omit-frame-pointer -g -O1 -fsanitize-blacklist=/root/project/.circleci/asan_blacklist.txt" -DHELICS_BUILD_TESTS=ON -DHELICS_ZMQ_SUBPROJECT=ON -DHELICS_ZMQ_FORCE_SUBPROJECT=ON'
107107
LSAN_OPTIONS: "suppressions=/root/project/.circleci/leak_suppression.txt"
108108
UBSAN_OPTIONS: "print_stacktrace=1 suppressions=/root/project/.circleci/ubsan_suppression.txt"
109109
ASAN_OPTIONS: "alloc_dealloc_mismatch=0"
@@ -116,7 +116,7 @@ jobs:
116116
docker:
117117
- image: helics/buildenv:sanitizers-14
118118
environment:
119-
CMAKE_FLAGS: '-DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_FLAGS="-fsanitize=memory -nostdinc++ -nostdlib++ -L/root/develop/libcxx_msan/lib -lc++ -lc++abi -I/root/develop/libcxx_msan/include -I/root/develop/libcxx_msan/include/c++/v1 -Wno-unused-command-line-argument -fno-omit-frame-pointer -g -O1 -Wl,-rpath,/root/develop/libcxx_msan/lib" -DHELICS_BUILD_TESTS=ON -DHELICS_ZMQ_SUBPROJECT=ON -DHELICS_ZMQ_FORCE_SUBPROJECT=ON'
119+
CMAKE_FLAGS: '-DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_FLAGS="-fsanitize=memory -nostdinc++ -nostdlib++ -Wno-reserved-macro-identifier -L/root/develop/libcxx_msan/lib -lc++ -lc++abi -I/root/develop/libcxx_msan/include -I/root/develop/libcxx_msan/include/c++/v1 -Wno-unused-command-line-argument -fno-omit-frame-pointer -g -O1 -Wl,-rpath,/root/develop/libcxx_msan/lib" -DHELICS_BUILD_TESTS=ON -DHELICS_ZMQ_SUBPROJECT=ON -DHELICS_ZMQ_FORCE_SUBPROJECT=ON'
120120

121121
steps:
122122
- checkout

.github/workflows/swig-interface-gen.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636

3737
# Run clang-format on helics.h and helics_api.h
3838
- name: clang-format
39-
uses: pre-commit/[email protected].0
39+
uses: pre-commit/[email protected].1
4040
# Failure is expected, since we know it will be fixing up the generated helics header files
4141
continue-on-error: true
4242
with:

.pre-commit-config.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ repos:
88
- id: dockerfile_lint
99
args: [--rulefile, ./config/Docker/docker_rules.yml, --dockerfile]
1010
- repo: https://github.com/psf/black
11-
rev: 24.1.1
11+
rev: 24.3.0
1212
hooks:
1313
- id: black
1414
args: ["--line-length=100"]
@@ -18,7 +18,7 @@ repos:
1818
- id: blacken-docs
1919
additional_dependencies: [black==22.12]
2020
- repo: https://github.com/Lucas-C/pre-commit-hooks
21-
rev: v1.5.4
21+
rev: v1.5.5
2222
hooks:
2323
- id: remove-tabs
2424
- repo: https://github.com/pre-commit/pre-commit-hooks
@@ -52,7 +52,7 @@ repos:
5252
exclude: "mac.md"
5353
- id: script-must-have-extension
5454
- repo: https://github.com/shellcheck-py/shellcheck-py
55-
rev: v0.9.0.6
55+
rev: v0.10.0.1
5656
hooks:
5757
- id: shellcheck
5858
args: [-x]
@@ -74,7 +74,7 @@ repos:
7474
"--exclude-file=./config/spelling_ignorelines.txt",
7575
]
7676
- repo: https://github.com/pre-commit/mirrors-clang-format
77-
rev: v17.0.6
77+
rev: v18.1.1
7878
hooks:
7979
- id: clang-format
8080
types:

CHANGELOG.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,26 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
99
A note on future revisions.
1010
Everything within a major version number should be code compatible (with the exception of experimental interfaces). The most notable example of an experimental interface is the support for multiple source inputs. The APIs to deal with this will change in future minor releases. Everything within a single minor release should be network compatible with other federates on the same minor release number. Compatibility across minor release numbers may be possible in some situations but we are not going to guarantee this as those components are subject to performance improvements and may need to be modified at some point. Patch releases will be limited to bug fixes and other improvements not impacting the public API or network compatibility. Check the [Public API](./docs/Public_API.md) for details on what is included and excluded from the public API and version stability.
1111

12+
## [3.5.1][] - 2024-03-19
13+
14+
Patch release including beta version of reentrant federates and support for "potential_interfaces" section in config files and automatic handling of potential interface generation in the federate class for operation with the connector app.
15+
16+
### Fixed
17+
18+
- Fixed an issue related to disconnection of federates with endpoints while still executing, that could potentially have resulted in an infinite loop
19+
- Fixed an issue with aliases potentially causing a seg fault or memory condition, now aliases have reciprocity so order in the given alias call doesn't matter
20+
21+
### Changed
22+
23+
- Updated 3rd party libraries including cli11, fmt, spdlog, and asio
24+
25+
### Added
26+
27+
- Automatic handling of potential interface sequence from Federate class
28+
- Support for potential_interface templates
29+
- Support for reentrant federates: federates with the same name that can come and go, and support for reconnecting interfaces to the reentrant federate
30+
- Support for a "helics" section in the configuration json files
31+
1232
## [3.5.0][] - 2024-02-05
1333

1434
Major release including connector app capability, a refresh of the of the dataBuffer interface, and other bug fixes
@@ -414,3 +434,5 @@ HELICS 3.0 is a major update to HELICS. The major features that have been added
414434
[3.3.1]: https://github.com/GMLC-TDC/HELICS/releases/tag/v3.3.1
415435
[3.3.2]: https://github.com/GMLC-TDC/HELICS/releases/tag/v3.3.2
416436
[3.4.0]: https://github.com/GMLC-TDC/HELICS/releases/tag/v3.4.0
437+
[3.5.0]: https://github.com/GMLC-TDC/HELICS/releases/tag/v3.5.0
438+
[3.5.1]: https://github.com/GMLC-TDC/HELICS/releases/tag/v3.5.1

CMakeLists.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@ if(DEFINED ENV{VCPKG_ROOT} AND NOT DEFINED CMAKE_TOOLCHAIN_FILE AND NOT HELICS_D
1717
set(CMAKE_TOOLCHAIN_FILE "$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" CACHE STRING "")
1818
endif()
1919

20-
project(HELICS VERSION 3.5.0)
20+
project(HELICS VERSION 3.5.1)
2121

2222
# -----------------------------------------------------------------------------
2323
# HELICS Version number
2424
# -----------------------------------------------------------------------------
2525
set(HELICS_VERSION_BUILD)
2626
# use ISO date YYYY-MM-DD
27-
set(HELICS_DATE "2024-02-06")
27+
set(HELICS_DATE "2024-03-19")
2828

2929
set(HELICS_VERSION_UNDERSCORE
3030
"${HELICS_VERSION_MAJOR}_${HELICS_VERSION_MINOR}_${HELICS_VERSION_PATCH}"
@@ -687,7 +687,7 @@ set(LICENSE_LIST
687687
"cppzmq"
688688
"${PROJECT_SOURCE_DIR}/ThirdParty/cppzmq/LICENSE"
689689
"fmt"
690-
"${PROJECT_SOURCE_DIR}/ThirdParty/fmtlib/LICENSE.rst"
690+
"${PROJECT_SOURCE_DIR}/ThirdParty/fmtlib/LICENSE"
691691
"units"
692692
"${PROJECT_SOURCE_DIR}/ThirdParty/units/LICENSE"
693693
"JsonCpp"

CONTRIBUTORS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ If you would like to contribute to the HELICS project see [CONTRIBUTING](CONTRIB
1111
- [Andy Fisher](https://github.com/afisher1)
1212
- [Jason Fuller](https://github.com/jcfuller1)
1313
- [Shwetha Niddodi](https://github.com/shwethanidd)
14-
- [Trevor Hardy](https://energyenvironment.pnnl.gov/staff/staff_info.asp?staff_num=2704)
14+
- [Trevor Hardy](https://www.pnnl.gov/people/trevor-hardy)
1515
- [Monish Mukherjee](https://github.com/MuMonish)
1616
- [Jacob Hansen](https://github.com/Jacobhansens)
1717
- [Marc Eberlein](https://github.com/eberleim)

README.md

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,26 @@ A multi-language, cross-platform library that enables different simulators to ea
1616

1717
## Table of contents
1818

19+
- [Table of contents](#table-of-contents)
1920
- [Introduction](#introduction)
20-
- [Philosophy](#philosophy-of-helics)
21+
- [Philosophy of HELICS](#philosophy-of-helics)
2122
- [Getting Started](#getting-started)
2223
- [Language Bindings](#language-bindings)
2324
- [Documentation](#documentation)
24-
- [Changelog](#changelog)
25-
- [RoadMap](#roadmap)
25+
- [Documentation downloads](#documentation-downloads)
26+
- [CHANGELOG](#changelog)
27+
- [ROADMAP](#roadmap)
2628
- [Installation](#installation)
2729
- [Quick links](#quick-links)
30+
- [Docker](#docker)
2831
- [Tools with HELICS support](#tools-with-helics-support)
32+
- [HELICS helper Apps](#helics-helper-apps)
2933
- [Contributing](#contributing)
3034
- [Build Status](#build-status)
3135
- [Publications](#publications)
3236
- [In the News](#in-the-news)
3337
- [History and Motivation](#history-and-motivation)
38+
- [Source Repo](#source-repo)
3439
- [Release](#release)
3540

3641
## Introduction
@@ -172,6 +177,10 @@ Contributors are welcome, see the [Contributing](CONTRIBUTING.md) guidelines for
172177

173178
If you use HELICS in your research, please cite:
174179

180+
T. Hardy, B. Palmintier, P. Top, D. Krishnamurthy and J. Fuller, "HELICS: A Co-Simulation Framework for Scalable Multi-Domain Modeling and Analysis," in IEEE Access, doi: 10.1109/ACCESS.2024.3363615, available at [https://ieeexplore.ieee.org/document/10424422](https://ieeexplore.ieee.org/document/10424422)
181+
182+
Older citation
183+
175184
\[1\] B. Palmintier, D. Krishnamurthy, P. Top, S. Smith, J. Daily, and J. Fuller, “Design of the HELICS High-Performance Transmission-Distribution-Communication-Market Co-Simulation Framework,” in _Proc. of the 2017 Workshop on Modeling and Simulation of Cyber-Physical Energy Systems_, Pittsburgh, PA, 2017. [pre-print](https://www.nrel.gov/docs/fy17osti/67928.pdf) | [published](https://ieeexplore.ieee.org/document/8064542/)
176185

177186
## In the News

ThirdParty/asio

Submodule asio updated 532 files

0 commit comments

Comments
 (0)