v3.6.0 Release Checklist
-
[x] Check that all expected release assets were compiled for all platforms, the
*-source.tar.gzfile, and the*-SHA-256.txtfile; if any are missing seeSteps to manually add a missing asset to a releasebelow -
[x] Make sure https://github.com/GMLC-TDC/helics-packaging/blob/main/HELICS_VERSION has been updated with the new version number; if it hasn't, manually update it (and double check that all release assets were successfully compiled)
-
[x] Update the helics-apps PyPI package by creating a new release with the new version tag, title, and description similar to past releases.
- [x] Verify that the Build Python Packages workflow for the release (not tag) runs to completion
- [x] Verify the files uploaded to PyPI at https://pypi.org/project/helics-apps/#files include wheel files for win32, win_amd64, macosx, and manylinux
-
[x] Run the Update HELICS Packages workflow
- [x] Verify that a PR was opened at https://github.com/spack/spack/pulls that looks okay and leave a review approving it. If the workflow failed or the package PR has CI errors, debug and fix
- [x] Verify that a PR was opened at https://github.com/msys2/MINGW-packages/pulls that looks okay and leave a review approving it. If the workflow failed or the package PR has CI build errors, debug and fix
- [x] Verify that a PR was opened at https://github.com/JuliaPackaging/Yggdrasil/pulls that looks okay and leave a review approving it. If the workflow failed or the package PR has CI build errors, debug and fix
- [x] Verify pyhelics has been updated to include new/removed features, then create a new release with a matching version tag, and link to a changelog showing the difference between the two versions
- [ ] Regenerate the matHELICS bindings using the C header file from HELICS, then create a new release with a version tag and link to the HELICS release notes.
-
[ ] Run helics-ns3 CI tests and fix any issues
-
[x] Run Test HELICS Install Action with both binary and source options selected; fix any issues
If part of the Update HELICS Packages workflow fails, the failing part can be re-run on its own:
- Spack Package Update workflow
- MINGW Package Update workflow
- Julia/Yggdrasil Package Update workflow
- pyhelics Update HELICS Version workflow
- matHELICS Update HELICS Version workflow
Steps to manually add a missing asset to a release:
- If it was a temporary issue such as a resource being unavailable, manually trigger the release build workflow using the workflow from
Tag: v3.6.0. - If it was a more major issue, create a branch based on the tagged release and modify the workflow and scripts in the .github subfolder as needed to make it build. Manually trigger the release build workflow using the workflow from the branch with these fixes and for the commit-ish field enter the release tag v3.6.0.
- Download the artifact from the workflow re-run that was missing and upload it to the release.
- Download the SHA-256.txt file for the release and add an entry for the new asset (run the
sha256sumcommand on Linux to get the line to add). Replace the old SHA-256.txt file for the release with the updated version.
@GMLC-TDC/helics-releases check release tasks related to interfaces/repositories you work on.
ns-3 with waf is now broken in Python 3.13+ due to the removal of pipes. This probably is the thing that will force us to completely drop support for old versions of ns-3 waf and require using the newer CMake versions.
@josephmckinsey @afisher1
HELICS v3.6.0 API changes to make in language bindings:
New function: helicsAppEnabled ()
New function: helicsCreateApp (Char_S* appName, Char_S* appType, Char_S* configFile, HelicsFederateInfo fedInfo, HelicsError* err)
New function: helicsAppGetFederate (HelicsApp app, HelicsError* err)
New function: helicsAppLoadFile (HelicsApp app, Char_S* configFile, HelicsError* err)
New function: helicsAppInitialize (HelicsApp app, HelicsError* err)
New function: helicsAppRun (HelicsApp app, HelicsError* err)
New function: helicsAppRunTo (HelicsApp app, HelicsTime stopTime, HelicsError* err)
New function: helicsAppFinalize (HelicsApp app, HelicsError* err)
New function: helicsAppFree (HelicsApp app)
New function: helicsAppDestroy (HelicsApp app)
New function: helicsAppIsActive (HelicsApp app)
New function: helicsEndpointSendString (HelicsEndpoint endpoint, Char_S* message, HelicsError* err)
New function: helicsEndpointSendStringTo (HelicsEndpoint endpoint, Char_S* message, Char_S* dst, HelicsError* err)
New function: helicsEndpointSendStringToAt (HelicsEndpoint endpoint, Char_S* message, Char_S* dst, HelicsTime time, HelicsError* err)
New function: helicsEndpointSendStringAt (HelicsEndpoint endpoint, Char_S* message, HelicsTime time, HelicsError* err)
New function: helicsFilterGetPropertyDouble (HelicsFilter filt, Char_S* prop)
New function: helicsFilterGetPropertyString (HelicsFilter filt, Char_S* prop)
New typedef: HelicsApp
New constant HELICS_CORE_TYPE_EXTRACT=101 in enum HelicsCoreTypes