Skip to content

Commit

Permalink
V3 3 1 release update (#2453)
Browse files Browse the repository at this point in the history
* Update documents and version numbers for a 3.3.1 release.

* update roadmap

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* add additional warning on in source builds

* ignore backup files

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update CHANGELOG.md

* Apply suggestions from code review

Co-authored-by: Ryan Mast <[email protected]>

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Ryan Mast <[email protected]>
  • Loading branch information
3 people authored Oct 21, 2022
1 parent 7a300fb commit 4468ac0
Show file tree
Hide file tree
Showing 7 changed files with 55 additions and 13 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -257,3 +257,6 @@ tags
*.mex*
.DS_Store
HELICS_xcode

### Backup files
*.bak
36 changes: 32 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,35 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
A note on future revisions.
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.

## [3.3.0][] ~ 2022-08-07
## [3.3.1][] ~ 2022-10-21

Patch release to fix some issues with using HELICS as a subproject, and fix a few bugs related to time barriers, and a few other timing issues.

### Fixed

- Fixed an issue where broker based time barriers were not propagating to new federates.
- Fix the code coverage build system.
- Fixed a potential race condition with callback federates if the callback operations are modified during cosimulation.
- Fixed timing synchronization issue with global time coordinator.

### Changed

- Cleaned up usage of HELICS in external subprojects and adding some cleanup features, also cleanup the CMake usage to divide some operations into included files to simplify the main CMakeLists.txt
- Changed the default behavior for profiler output files to create a new file instead of appending. Use `--profiler_append=<file>` to maintain the old behavior.

### Added

- Added single thread federate support which includes a federate optimized for use in a single thread.(Corresponding single thread core will come in next release).
- Added support for initialization iteration to allow federates to specify ready and then return to the created mode to do additional initialization potentially with information from other federates.
- Added flag to disable remote termination commands.
- Added C API function calls for alias operations.
- Added read only property HELICS_PROPERTY_INT_ITERATION_COUNT to get the current iteration count for a federate.

### Removed

- Removed an unused and unexposed method in the Core API to retrieve the current iteration count, use HELICS_PROPERTY_INT_ITERATION_COUNT with getProperty to retrieve the same data.

## [3.3.0][] - 2022-09-15

Minimum build requirements updated to CMake 3.11, Visual Studio 2019, XCode 11.0, GCC 8.1, Clang 7.0.
The major new features include a callback federate, and aliases to allow interfaces to have multiple string names.
Expand Down Expand Up @@ -55,13 +83,11 @@ The release also includes several bug fixes related to timing and iteration.
- Added a [callback Federate](https://docs.helics.org/en/latest/user-guide/advanced_topics/CallbackFederate.html) capability which allows a large number of callback based federates to execute on a single core without direct user calls
- Added some additional [callbacks](https://docs.helics.org/en/latest/user-guide/advanced_topics/callbacks.html) for federates
- Added flags on the webserver to allow much easier configuration to external network interfaces
- Added read only property HELICS_PROPERTY_INT_ITERATION_COUNT to get the current iteration count for a federate

### Removed

- ghc::filesystem, since all minimum compilers have support for std::filesystem available.
- Removed Travis CI related configuration and documentation
- Removed an unused and unexposed method in the Core API to retrieve the current iteration count, use HELICS_PROPERTY_INT_ITERATION_COUNT with getProperty to retrieve the same data.

## [3.2.1][] - 2022-06-17

Expand Down Expand Up @@ -292,6 +318,8 @@ HELICS 3.0 is a major update to HELICS. The major features that have been added
[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
[3.2.1]: https://github.com/GMLC-TDC/HELICS/releases/tag/v3.2.1
[3.3.0]: https://github.com/GMLC-TDC/HELICS/releases/tag/v3.3.0
[3.3.1]: https://github.com/GMLC-TDC/HELICS/releases/tag/v3.3.1

The changelog for HELICS 1.X and 2.X can be found [here](./docs/HELICS2_CHANGELOG.md)
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,14 @@ if(DEFINED ENV{VCPKG_ROOT} AND NOT DEFINED CMAKE_TOOLCHAIN_FILE AND NOT HELICS_D
set(CMAKE_TOOLCHAIN_FILE "$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" CACHE STRING "")
endif()

project(HELICS VERSION 3.3.0)
project(HELICS VERSION 3.3.1)

# -----------------------------------------------------------------------------
# HELICS Version number
# -----------------------------------------------------------------------------
set(HELICS_VERSION_BUILD)
# use ISO date YYYY-MM-DD
set(HELICS_DATE "2022-10-09")
set(HELICS_DATE "2022-10-21")

set(HELICS_VERSION_UNDERSCORE
"${HELICS_VERSION_MAJOR}_${HELICS_VERSION_MINOR}_${HELICS_VERSION_PATCH}"
Expand Down
2 changes: 1 addition & 1 deletion appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ branches:
- main
- develop

version: 3.3.0.{build}
version: 3.3.1.{build}

image: Visual Studio 2019

Expand Down
6 changes: 6 additions & 0 deletions config/cmake/commonBuildPaths.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,12 @@ endif()

# Prohibit in-source build
if(PROJECT_SOURCE_DIR STREQUAL PROJECT_BINARY_DIR)
if(EXISTS "${PROJECT_SOURCE_DIR}/CMakeCache.txt")
message(
WARNING
"The source directory ${PROJECT_SOURCE_DIR} contains CMakeCache.txt and possibly other cmake folders like CMakeFiles that might interfere with the current build"
)
endif()
message(
FATAL_ERROR
"In-source build is not supported. Please, use an empty directory for building the project."
Expand Down
15 changes: 10 additions & 5 deletions docs/ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,11 @@

This document contains tentative plans for changes and improvements of note in upcoming versions of the HELICS library. All dates are approximate and subject to change, but this is a snapshot of the current planning thoughts. See the [projects](https://github.com/GMLC-TDC/HELICS/projects) for additional details

## \[3.4\] ~ Late October 2022
## \[3.4\] ~ November 2022

- Full xSDK compatibility
- Full Dynamic Federation support
- Single thread cores
- Iteration for entering initializing mode
- Enable data aggregation
- Wildcard support for subscribing
- Catchall interface of some type
- Separate Java Interface
- Observer App

Expand All @@ -20,3 +16,12 @@ This document contains tentative plans for changes and improvements of note in u
- Enable mesh networking in HELICS
- Separate octave interface
- Tag based subscriptions
- Enable data aggregation
- Wildcard support for subscriptions
- Catchall interface of some type

## Further in the future

- Updated MPI core
- Some sort of rollback operations
- Remote procedure call type of federate
2 changes: 1 addition & 1 deletion vcpkg.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "helics",
"version-string": "3.3.0",
"version-string": "3.3.1",
"description": "Hierarchical Engine for Large-scale Infrastructure Co-Simulation (HELICS)",
"homepage": "https://helics.org/",
"default-features": ["zeromq", "ipc", "webserver", "encryption"],
Expand Down

0 comments on commit 4468ac0

Please sign in to comment.