From ccd3e87e50d5afad29e4f256825627f035769f60 Mon Sep 17 00:00:00 2001 From: Bartosz Burda Date: Mon, 1 Jun 2026 18:06:46 +0200 Subject: [PATCH 1/4] fix(release): point release.sh at core/version.hpp bump/verify referenced include/ros2_medkit_gateway/version.hpp, but the gateway version constant lives at include/ros2_medkit_gateway/core/version.hpp. As a result bump silently skipped the kGatewayVersion fallback and verify never validated it. Correct the path so the fallback constant is bumped and checked. --- scripts/release.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/release.sh b/scripts/release.sh index 6fc0d2c1e..f3f1b9809 100755 --- a/scripts/release.sh +++ b/scripts/release.sh @@ -30,7 +30,7 @@ set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" REPO_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)" SRC_DIR="${REPO_ROOT}/src" -VERSION_HPP="${SRC_DIR}/ros2_medkit_gateway/include/ros2_medkit_gateway/version.hpp" +VERSION_HPP="${SRC_DIR}/ros2_medkit_gateway/include/ros2_medkit_gateway/core/version.hpp" CONF_PY="${REPO_ROOT}/docs/conf.py" DOCS_PYPROJECT="${REPO_ROOT}/docs/pyproject.toml" From 6eff709b5a1a3e8ebe6cd29d2e5caeb23be0dc29 Mon Sep 17 00:00:00 2001 From: Bartosz Burda Date: Mon, 1 Jun 2026 18:07:51 +0200 Subject: [PATCH 2/4] chore(release): bump to 0.5.0 and finalize changelogs Bump all 15 packages, the version.hpp fallback, docs/conf.py and docs/pyproject.toml to 0.5.0, and update the version literals in the root and version-info API example responses. Promote the gateway Unreleased and opcua Forthcoming changelog sections to 0.5.0 (2026-06-01), add 0.5.0 entries to the remaining packages, and add an initial CHANGELOG for ros2_medkit_sovd_service_interface (wired into docs/changelog.rst). --- docs/api/rest.rst | 4 ++-- docs/changelog.rst | 2 ++ docs/conf.py | 4 ++-- docs/pyproject.toml | 2 +- src/ros2_medkit_cmake/CHANGELOG.rst | 8 ++++++++ src/ros2_medkit_cmake/package.xml | 2 +- src/ros2_medkit_diagnostic_bridge/CHANGELOG.rst | 6 ++++++ src/ros2_medkit_diagnostic_bridge/package.xml | 2 +- .../ros2_medkit_beacon_common/CHANGELOG.rst | 6 ++++++ .../ros2_medkit_beacon_common/package.xml | 2 +- .../ros2_medkit_linux_introspection/CHANGELOG.rst | 7 +++++++ .../ros2_medkit_linux_introspection/package.xml | 2 +- .../ros2_medkit_param_beacon/CHANGELOG.rst | 8 ++++++++ .../ros2_medkit_param_beacon/package.xml | 2 +- .../ros2_medkit_topic_beacon/CHANGELOG.rst | 8 ++++++++ .../ros2_medkit_topic_beacon/package.xml | 2 +- src/ros2_medkit_fault_manager/CHANGELOG.rst | 9 +++++++++ src/ros2_medkit_fault_manager/package.xml | 2 +- src/ros2_medkit_fault_reporter/CHANGELOG.rst | 6 ++++++ src/ros2_medkit_fault_reporter/package.xml | 2 +- src/ros2_medkit_gateway/CHANGELOG.rst | 5 +++-- .../include/ros2_medkit_gateway/core/version.hpp | 2 +- src/ros2_medkit_gateway/package.xml | 2 +- src/ros2_medkit_integration_tests/CHANGELOG.rst | 10 ++++++++++ src/ros2_medkit_integration_tests/package.xml | 2 +- src/ros2_medkit_msgs/CHANGELOG.rst | 6 ++++++ src/ros2_medkit_msgs/package.xml | 2 +- .../ros2_medkit_graph_provider/CHANGELOG.rst | 8 ++++++++ .../ros2_medkit_graph_provider/package.xml | 2 +- .../ros2_medkit_opcua/CHANGELOG.rst | 5 +++-- src/ros2_medkit_plugins/ros2_medkit_opcua/package.xml | 2 +- .../ros2_medkit_sovd_service_interface/CHANGELOG.rst | 11 +++++++++++ .../ros2_medkit_sovd_service_interface/package.xml | 2 +- src/ros2_medkit_serialization/CHANGELOG.rst | 6 ++++++ src/ros2_medkit_serialization/package.xml | 2 +- 35 files changed, 128 insertions(+), 25 deletions(-) create mode 100644 src/ros2_medkit_plugins/ros2_medkit_sovd_service_interface/CHANGELOG.rst diff --git a/docs/api/rest.rst b/docs/api/rest.rst index 993c55106..4bea83f53 100644 --- a/docs/api/rest.rst +++ b/docs/api/rest.rst @@ -25,7 +25,7 @@ Server Capabilities { "name": "ROS 2 Medkit Gateway", - "version": "0.4.0", + "version": "0.5.0", "api_base": "/api/v1", "endpoints": [ "GET /api/v1/health", @@ -78,7 +78,7 @@ Server Capabilities "version": "1.0.0", "base_uri": "/api/v1", "vendor_info": { - "version": "0.4.0", + "version": "0.5.0", "name": "ros2_medkit" } } diff --git a/docs/changelog.rst b/docs/changelog.rst index 7f8eda19d..e7ae44251 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -33,3 +33,5 @@ This page aggregates changelogs from all ros2_medkit packages. .. include:: ../src/ros2_medkit_plugins/ros2_medkit_graph_provider/CHANGELOG.rst .. include:: ../src/ros2_medkit_plugins/ros2_medkit_opcua/CHANGELOG.rst + +.. include:: ../src/ros2_medkit_plugins/ros2_medkit_sovd_service_interface/CHANGELOG.rst diff --git a/docs/conf.py b/docs/conf.py index 619dab6d9..fcd9355fc 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -42,8 +42,8 @@ project_copyright = f"{datetime.now().year}, selfpatch" author = "selfpatch Team" -version = "0.4.0" -release = "0.4.0" +version = "0.5.0" +release = "0.5.0" # -- General configuration --------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration diff --git a/docs/pyproject.toml b/docs/pyproject.toml index 4beddf3bb..9816eecc3 100644 --- a/docs/pyproject.toml +++ b/docs/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "ros2-medkit-docs" -version = "0.4.0" +version = "0.5.0" description = "Documentation for ROS 2 Medkit" authors = [{ name = "bburda", email = "bartoszburda93@gmail.com" }] requires-python = ">=3.12" diff --git a/src/ros2_medkit_cmake/CHANGELOG.rst b/src/ros2_medkit_cmake/CHANGELOG.rst index 546a01e40..28ab78321 100644 --- a/src/ros2_medkit_cmake/CHANGELOG.rst +++ b/src/ros2_medkit_cmake/CHANGELOG.rst @@ -2,6 +2,14 @@ Changelog for package ros2_medkit_cmake ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +0.5.0 (2026-06-01) +------------------ +* ``ROS2MedkitWarnings.cmake`` module centralizes compiler warning flags across all packages, with selective ``-Werror`` (namespaced ``MEDKIT_ENABLE_WERROR``, defaults OFF) applied only to flags safe against external headers +* ``ROS2MedkitSanitizers.cmake`` module adds ASan/UBSan and TSan support for sanitizer CI jobs +* ``ROS2MedkitTestDomain.cmake`` centralizes ``ROS_DOMAIN_ID`` allocation for per-test DDS isolation +* Vendored cpp-httplib 0.14.3 as a build-farm fallback (``VENDORED_DIR`` parameter), marked as a SYSTEM include to suppress third-party warnings +* Contributors: @bburda, @mfaferek93 + 0.4.0 (2026-03-20) ------------------ * Initial release - shared cmake modules extracted from gateway package (`#294 `_) diff --git a/src/ros2_medkit_cmake/package.xml b/src/ros2_medkit_cmake/package.xml index 0ced49e1c..83daf28a0 100644 --- a/src/ros2_medkit_cmake/package.xml +++ b/src/ros2_medkit_cmake/package.xml @@ -2,7 +2,7 @@ ros2_medkit_cmake - 0.4.0 + 0.5.0 Shared CMake modules for ros2_medkit packages (multi-distro compat, ccache, linting) bburda Apache-2.0 diff --git a/src/ros2_medkit_diagnostic_bridge/CHANGELOG.rst b/src/ros2_medkit_diagnostic_bridge/CHANGELOG.rst index 748a90969..d9a8cf327 100644 --- a/src/ros2_medkit_diagnostic_bridge/CHANGELOG.rst +++ b/src/ros2_medkit_diagnostic_bridge/CHANGELOG.rst @@ -2,6 +2,12 @@ Changelog for package ros2_medkit_diagnostic_bridge ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +0.5.0 (2026-06-01) +------------------ +* Build: adopt the centralized ``ROS2MedkitWarnings`` and ``ROS2MedkitSanitizers`` cmake modules +* Tests: use centralized ``ROS_DOMAIN_ID`` allocation for DDS isolation +* Contributors: @bburda + 0.4.0 (2026-03-20) ------------------ * Build: use shared cmake modules from ``ros2_medkit_cmake`` package diff --git a/src/ros2_medkit_diagnostic_bridge/package.xml b/src/ros2_medkit_diagnostic_bridge/package.xml index 91aa2d74b..39e38fe7d 100644 --- a/src/ros2_medkit_diagnostic_bridge/package.xml +++ b/src/ros2_medkit_diagnostic_bridge/package.xml @@ -2,7 +2,7 @@ ros2_medkit_diagnostic_bridge - 0.4.0 + 0.5.0 Bridge node converting ROS2 /diagnostics to FaultManager faults mfaferek93 diff --git a/src/ros2_medkit_discovery_plugins/ros2_medkit_beacon_common/CHANGELOG.rst b/src/ros2_medkit_discovery_plugins/ros2_medkit_beacon_common/CHANGELOG.rst index c3393f7a1..3d9103652 100644 --- a/src/ros2_medkit_discovery_plugins/ros2_medkit_beacon_common/CHANGELOG.rst +++ b/src/ros2_medkit_discovery_plugins/ros2_medkit_beacon_common/CHANGELOG.rst @@ -2,6 +2,12 @@ Changelog for package ros2_medkit_beacon_common ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +0.5.0 (2026-06-01) +------------------ +* Updated include paths for the gateway core / ROS 2 ``PluginContext`` layer split and removal of backwards-compat shim headers +* Build: adopt the centralized ``ROS2MedkitWarnings`` cmake module +* Contributors: @bburda + 0.4.0 (2026-03-20) ------------------ * Initial release - shared utilities for beacon discovery plugins diff --git a/src/ros2_medkit_discovery_plugins/ros2_medkit_beacon_common/package.xml b/src/ros2_medkit_discovery_plugins/ros2_medkit_beacon_common/package.xml index 0384cb6d1..61a954bf3 100644 --- a/src/ros2_medkit_discovery_plugins/ros2_medkit_beacon_common/package.xml +++ b/src/ros2_medkit_discovery_plugins/ros2_medkit_beacon_common/package.xml @@ -2,7 +2,7 @@ ros2_medkit_beacon_common - 0.4.0 + 0.5.0 Shared library for ros2_medkit beacon discovery plugins bburda diff --git a/src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/CHANGELOG.rst b/src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/CHANGELOG.rst index c6dd5b872..41679492b 100644 --- a/src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/CHANGELOG.rst +++ b/src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/CHANGELOG.rst @@ -2,6 +2,13 @@ Changelog for package ros2_medkit_linux_introspection ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +0.5.0 (2026-06-01) +------------------ +* Migrated the introspection plugins to the ``get_routes()`` plugin API +* Declared ``pkg-config`` as a ``buildtool_depend`` and fixed a route-separator bug +* Build: adopt the centralized ``ROS2MedkitWarnings`` and ``ROS2MedkitSanitizers`` cmake modules +* Contributors: @bburda + 0.4.0 (2026-03-20) ------------------ * Initial release - Linux process introspection plugins for ros2_medkit gateway diff --git a/src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/package.xml b/src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/package.xml index 215bf8bfb..b84c35f48 100644 --- a/src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/package.xml +++ b/src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/package.xml @@ -2,7 +2,7 @@ ros2_medkit_linux_introspection - 0.4.0 + 0.5.0 Linux introspection plugins for ros2_medkit gateway - procfs, systemd, and container bburda Apache-2.0 diff --git a/src/ros2_medkit_discovery_plugins/ros2_medkit_param_beacon/CHANGELOG.rst b/src/ros2_medkit_discovery_plugins/ros2_medkit_param_beacon/CHANGELOG.rst index c3a48d859..c76a6d3da 100644 --- a/src/ros2_medkit_discovery_plugins/ros2_medkit_param_beacon/CHANGELOG.rst +++ b/src/ros2_medkit_discovery_plugins/ros2_medkit_param_beacon/CHANGELOG.rst @@ -2,6 +2,14 @@ Changelog for package ros2_medkit_param_beacon ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +0.5.0 (2026-06-01) +------------------ +* Migrated ``ParameterBeaconPlugin`` to the ``get_routes()`` plugin API +* Added shutdown guards and ``noexcept`` destructors that reset rclcpp resources before member destruction, preventing teardown SIGSEGV; the graph poll now swallows ``rcl`` "context invalid" during shutdown +* Added post-shutdown guard unit tests +* Build: adopt the centralized ``ROS2MedkitWarnings`` cmake module +* Contributors: @bburda + 0.4.0 (2026-03-20) ------------------ * Initial release - parameter-based beacon discovery plugin diff --git a/src/ros2_medkit_discovery_plugins/ros2_medkit_param_beacon/package.xml b/src/ros2_medkit_discovery_plugins/ros2_medkit_param_beacon/package.xml index 9ca3cbb56..19d151cc9 100644 --- a/src/ros2_medkit_discovery_plugins/ros2_medkit_param_beacon/package.xml +++ b/src/ros2_medkit_discovery_plugins/ros2_medkit_param_beacon/package.xml @@ -2,7 +2,7 @@ ros2_medkit_param_beacon - 0.4.0 + 0.5.0 Parameter-based beacon discovery plugin for ros2_medkit gateway bburda diff --git a/src/ros2_medkit_discovery_plugins/ros2_medkit_topic_beacon/CHANGELOG.rst b/src/ros2_medkit_discovery_plugins/ros2_medkit_topic_beacon/CHANGELOG.rst index 778b16e8d..58048efa3 100644 --- a/src/ros2_medkit_discovery_plugins/ros2_medkit_topic_beacon/CHANGELOG.rst +++ b/src/ros2_medkit_discovery_plugins/ros2_medkit_topic_beacon/CHANGELOG.rst @@ -2,6 +2,14 @@ Changelog for package ros2_medkit_topic_beacon ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +0.5.0 (2026-06-01) +------------------ +* Migrated ``TopicBeaconPlugin`` to the ``get_routes()`` plugin API +* Added shutdown guards and ``noexcept`` destructors (with ``override``) that reset rclcpp resources before member destruction, preventing teardown SIGSEGV +* Added post-shutdown guard unit tests +* Build: adopt the centralized ``ROS2MedkitWarnings`` cmake module +* Contributors: @bburda + 0.4.0 (2026-03-20) ------------------ * Initial release - topic-based beacon discovery plugin diff --git a/src/ros2_medkit_discovery_plugins/ros2_medkit_topic_beacon/package.xml b/src/ros2_medkit_discovery_plugins/ros2_medkit_topic_beacon/package.xml index 33b9ff4ff..e61f06b19 100644 --- a/src/ros2_medkit_discovery_plugins/ros2_medkit_topic_beacon/package.xml +++ b/src/ros2_medkit_discovery_plugins/ros2_medkit_topic_beacon/package.xml @@ -2,7 +2,7 @@ ros2_medkit_topic_beacon - 0.4.0 + 0.5.0 Topic-based beacon discovery plugin for ros2_medkit gateway bburda diff --git a/src/ros2_medkit_fault_manager/CHANGELOG.rst b/src/ros2_medkit_fault_manager/CHANGELOG.rst index 34aba25c1..197e94d54 100644 --- a/src/ros2_medkit_fault_manager/CHANGELOG.rst +++ b/src/ros2_medkit_fault_manager/CHANGELOG.rst @@ -2,6 +2,15 @@ Changelog for package ros2_medkit_fault_manager ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +0.5.0 (2026-06-01) +------------------ +* ``ClearFault`` honors the new ``skip_correlation_auto_clear`` request flag so per-entity fault clears can opt out of cascade-clearing correlated symptom fault codes (`#395 `_) +* Three-layer protection against unbounded snapshot growth (bounded buffers plus pruning) +* Concurrency and lifetime hardening: serialize concurrent subscription creation in ``SnapshotCapture``, join capture threads in the ``FaultManagerNode`` destructor, and defense-in-depth shutdown guards to prevent teardown crashes across distros +* Aggregation security hardening and improved test coverage +* Build: adopt the centralized ``ROS2MedkitWarnings`` and ``ROS2MedkitSanitizers`` cmake modules and ``bugprone`` / ``special-member-functions`` clang-tidy checks +* Contributors: @bburda + 0.4.0 (2026-03-20) ------------------ * Per-entity confirmation and healing thresholds via manifest configuration (`#269 `_) diff --git a/src/ros2_medkit_fault_manager/package.xml b/src/ros2_medkit_fault_manager/package.xml index 5e7b2eb6e..0fbb058ee 100644 --- a/src/ros2_medkit_fault_manager/package.xml +++ b/src/ros2_medkit_fault_manager/package.xml @@ -2,7 +2,7 @@ ros2_medkit_fault_manager - 0.4.0 + 0.5.0 Central fault manager node for ros2_medkit fault management system bburda diff --git a/src/ros2_medkit_fault_reporter/CHANGELOG.rst b/src/ros2_medkit_fault_reporter/CHANGELOG.rst index d8dd7d732..0a180817b 100644 --- a/src/ros2_medkit_fault_reporter/CHANGELOG.rst +++ b/src/ros2_medkit_fault_reporter/CHANGELOG.rst @@ -2,6 +2,12 @@ Changelog for package ros2_medkit_fault_reporter ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +0.5.0 (2026-06-01) +------------------ +* ``LocalFilter`` now debounces ``PASSED`` events with the same threshold / window filtering as ``FAILED``, preventing rapid CONFIRMED/CLEARED status cycling from triggering unbounded snapshot recapture (`#308 `_) +* Build: adopt the centralized ``ROS2MedkitWarnings`` and ``ROS2MedkitSanitizers`` cmake modules +* Contributors: @bburda, @mfaferek93 + 0.4.0 (2026-03-20) ------------------ * Build: use shared cmake modules from ``ros2_medkit_cmake`` package diff --git a/src/ros2_medkit_fault_reporter/package.xml b/src/ros2_medkit_fault_reporter/package.xml index bd1111bcb..ab9d04056 100644 --- a/src/ros2_medkit_fault_reporter/package.xml +++ b/src/ros2_medkit_fault_reporter/package.xml @@ -2,7 +2,7 @@ ros2_medkit_fault_reporter - 0.4.0 + 0.5.0 Client library for easy fault reporting with local filtering mfaferek93 diff --git a/src/ros2_medkit_gateway/CHANGELOG.rst b/src/ros2_medkit_gateway/CHANGELOG.rst index 1567a8491..f41c87c9d 100644 --- a/src/ros2_medkit_gateway/CHANGELOG.rst +++ b/src/ros2_medkit_gateway/CHANGELOG.rst @@ -2,8 +2,8 @@ Changelog for package ros2_medkit_gateway ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Unreleased ----------- +0.5.0 (2026-06-01) +------------------ **Breaking Changes:** @@ -102,6 +102,7 @@ Unreleased * All-or-nothing fragment semantics: a single malformed or forbidden fragment fails the entire load / reload and keeps the previously-loaded manifest active (`#376 `_) * ``ManifestParser::parse_fragment_file`` convenience entrypoint that injects a synthetic ``manifest_version`` header when the fragment omits one * See ``design/plugin_entity_notifications.rst`` for the lifecycle, merge-rule, and plugin-side write-contract walkthrough +* Contributors: @bburda, @mfaferek93, @eclipse0922 0.4.0 (2026-03-20) ------------------ diff --git a/src/ros2_medkit_gateway/include/ros2_medkit_gateway/core/version.hpp b/src/ros2_medkit_gateway/include/ros2_medkit_gateway/core/version.hpp index 2136ad532..8daced93e 100644 --- a/src/ros2_medkit_gateway/include/ros2_medkit_gateway/core/version.hpp +++ b/src/ros2_medkit_gateway/include/ros2_medkit_gateway/core/version.hpp @@ -21,7 +21,7 @@ namespace ros2_medkit_gateway { #ifdef GATEWAY_VERSION_STRING constexpr const char * kGatewayVersion = GATEWAY_VERSION_STRING; #else -constexpr const char * kGatewayVersion = "0.4.0"; +constexpr const char * kGatewayVersion = "0.5.0"; #endif /// SOVD specification version diff --git a/src/ros2_medkit_gateway/package.xml b/src/ros2_medkit_gateway/package.xml index f21bcaecc..4e4ce0e0f 100644 --- a/src/ros2_medkit_gateway/package.xml +++ b/src/ros2_medkit_gateway/package.xml @@ -2,7 +2,7 @@ ros2_medkit_gateway - 0.4.0 + 0.5.0 HTTP gateway for ros2_medkit diagnostics system bburda diff --git a/src/ros2_medkit_integration_tests/CHANGELOG.rst b/src/ros2_medkit_integration_tests/CHANGELOG.rst index d175910e0..b63855863 100644 --- a/src/ros2_medkit_integration_tests/CHANGELOG.rst +++ b/src/ros2_medkit_integration_tests/CHANGELOG.rst @@ -2,6 +2,16 @@ Changelog for package ros2_medkit_integration_tests ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +0.5.0 (2026-06-01) +------------------ +* New peer-aggregation suites: peer aggregation, cross-ECU fan-out across all resource types, daisy-chain hierarchical aggregation, leaf-collision aggregation, and cross-ECU log aggregation +* New SOVD-aligned entity-model suites: runtime entity model, flat entity tree without areas, hybrid suppression, and per-entity fault scope isolation +* New OpenAPI conformance suites: ``test_openapi_callability`` and ``test_openapi_response_drift`` validate the published spec against live responses +* New graph-event discovery suite covering rclcpp graph-event driven discovery refresh +* Coverage for the ``GET /apps/{id}/belongs-to`` discovery endpoint, nested ``x-medkit`` vendor payloads (`#385 `_), version-info aggregation, and pending-after-register update status (`#378 `_) +* Tests: centralized ``ROS_DOMAIN_ID`` allocation and widened shutdown timeouts for sanitizer overhead +* Contributors: @bburda, @eclipse0922 + 0.4.0 (2026-03-20) ------------------ * Integration tests for SOVD resource locking (acquire, release, extend, fault clear with locks, expiration, parent propagation) diff --git a/src/ros2_medkit_integration_tests/package.xml b/src/ros2_medkit_integration_tests/package.xml index bbeecc8d5..5966a7bd1 100644 --- a/src/ros2_medkit_integration_tests/package.xml +++ b/src/ros2_medkit_integration_tests/package.xml @@ -2,7 +2,7 @@ ros2_medkit_integration_tests - 0.4.0 + 0.5.0 Integration tests and demo nodes for ros2_medkit bburda diff --git a/src/ros2_medkit_msgs/CHANGELOG.rst b/src/ros2_medkit_msgs/CHANGELOG.rst index 896f41781..fda586152 100644 --- a/src/ros2_medkit_msgs/CHANGELOG.rst +++ b/src/ros2_medkit_msgs/CHANGELOG.rst @@ -2,6 +2,12 @@ Changelog for package ros2_medkit_msgs ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +0.5.0 (2026-06-01) +------------------ +* New service definitions ``ListEntities.srv``, ``GetEntityData.srv``, ``GetCapabilities.srv`` and the ``EntityInfo.msg`` type for exposing the entity tree over ROS 2 services (`#330 `_) +* ``ClearFault.srv`` request gains a ``bool skip_correlation_auto_clear`` field so callers can opt out of cascade-clearing correlated symptom fault codes; out-of-tree callers must rebuild against the new message (`#395 `_) +* Contributors: @bburda, @mfaferek93 + 0.4.0 (2026-03-20) ------------------ * ``MedkitDiscoveryHint`` message type for beacon discovery publishers diff --git a/src/ros2_medkit_msgs/package.xml b/src/ros2_medkit_msgs/package.xml index c5aa43e99..20a623202 100644 --- a/src/ros2_medkit_msgs/package.xml +++ b/src/ros2_medkit_msgs/package.xml @@ -2,7 +2,7 @@ ros2_medkit_msgs - 0.4.0 + 0.5.0 ROS 2 message and service definitions for ros2_medkit fault management bburda diff --git a/src/ros2_medkit_plugins/ros2_medkit_graph_provider/CHANGELOG.rst b/src/ros2_medkit_plugins/ros2_medkit_graph_provider/CHANGELOG.rst index ab5a83ece..57e956a4c 100644 --- a/src/ros2_medkit_plugins/ros2_medkit_graph_provider/CHANGELOG.rst +++ b/src/ros2_medkit_plugins/ros2_medkit_graph_provider/CHANGELOG.rst @@ -2,6 +2,14 @@ Changelog for package ros2_medkit_graph_provider ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +0.5.0 (2026-06-01) +------------------ +* Migrated ``GraphProviderPlugin`` to the ``get_routes()`` plugin API and fixed a route-separator bug +* Added shutdown guards and ``noexcept`` destructors that reset rclcpp resources before member destruction, preventing teardown SIGSEGV +* Added post-shutdown guard unit tests; dropped the cpp-httplib source install from the Dockerfile (now vendored via ``ros2_medkit_cmake``) +* Build: adopt the centralized ``ROS2MedkitWarnings`` cmake module +* Contributors: @bburda + 0.4.0 (2026-03-20) ------------------ * Initial release - extracted from ``ros2_medkit_gateway`` package diff --git a/src/ros2_medkit_plugins/ros2_medkit_graph_provider/package.xml b/src/ros2_medkit_plugins/ros2_medkit_graph_provider/package.xml index b3467df8d..34c2de953 100644 --- a/src/ros2_medkit_plugins/ros2_medkit_graph_provider/package.xml +++ b/src/ros2_medkit_plugins/ros2_medkit_graph_provider/package.xml @@ -2,7 +2,7 @@ ros2_medkit_graph_provider - 0.4.0 + 0.5.0 Graph provider plugin for ros2_medkit gateway bburda Apache-2.0 diff --git a/src/ros2_medkit_plugins/ros2_medkit_opcua/CHANGELOG.rst b/src/ros2_medkit_plugins/ros2_medkit_opcua/CHANGELOG.rst index 9825068a0..2e60f8cf5 100644 --- a/src/ros2_medkit_plugins/ros2_medkit_opcua/CHANGELOG.rst +++ b/src/ros2_medkit_plugins/ros2_medkit_opcua/CHANGELOG.rst @@ -2,8 +2,8 @@ Changelog for package ros2_medkit_opcua ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Forthcoming ------------ +0.5.0 (2026-06-01) +------------------ * Native OPC-UA Part 9 ``AlarmConditionType`` event subscription. The plugin now subscribes to vendor-defined alarms (Siemens S7-1500 ``Program_Alarm`` / ProDiag, Beckhoff TF6100, CodeSys 3.5+, Rockwell via FactoryTalk Linx) and bridges each event into the SOVD fault lifecycle. Configured via a new top-level ``event_alarms:`` block in the node map YAML; mutually exclusive per entry with the existing threshold-based ``alarm`` form. (issue #386) * New SOVD operations on entities that host alarm sources: ``acknowledge_fault`` invokes the inherited ``Acknowledge`` method on the live ``ConditionId`` (i=9111, EventId tracked per Part 9 §5.7.3); ``confirm_fault`` invokes ``Confirm`` (i=9113). Both accept an optional ``comment`` rendered as ``LocalizedText`` on the server. * ``OpcuaClient`` gains ``add_event_monitored_item`` / ``remove_event_monitored_item`` / ``call_method`` and a generation counter that filters callbacks fired from defunct subscriptions after a reconnect. Heap-owned ``EventCallbackContext`` resolves the open62541pp / raw-C lifetime hazard. @@ -11,6 +11,7 @@ Forthcoming * ``ConditionRefresh`` (Server method i=3875) is invoked on subscribe and on every reconnect, with ``RefreshStartEvent`` / ``RefreshEndEvent`` bracketing tracked for diagnostics. * New ``test_alarm_server`` fixture (open62541-based, full namespace 0 + alarms enabled) emits AlarmConditionType events on stdin commands; integration test ``run_alarm_tests.sh`` runs in CI alongside the existing OpenPLC threshold suite. The fixture builds by default via the workspace ``colcon build`` (gated on ``MEDKIT_OPCUA_BUILD_ALARM_SERVER`` which defaults to ON; ``ExternalProject_Add`` rebuilds open62541 with ``UA_NAMESPACE_ZERO=FULL`` and alarms ON, with a serial sub-build to dodge the upstream ``-j`` race on ``namespace0_generated.c``). * New CTest wrapper ``test_alarm_server_smoke`` boots the fixture on an ephemeral port and runs the asyncua smoke test against it; skips with CTest exit 77 (treated as pass) when ``asyncua`` is not importable, so iterating on plugin code without the Python dependency does not fail the suite. +* Contributors: @mfaferek93, @bburda 0.4.0 (2026-04-11) ------------------ diff --git a/src/ros2_medkit_plugins/ros2_medkit_opcua/package.xml b/src/ros2_medkit_plugins/ros2_medkit_opcua/package.xml index 2010fde68..d57ee7f53 100644 --- a/src/ros2_medkit_plugins/ros2_medkit_opcua/package.xml +++ b/src/ros2_medkit_plugins/ros2_medkit_opcua/package.xml @@ -2,7 +2,7 @@ ros2_medkit_opcua - 0.4.0 + 0.5.0 OPC-UA gateway plugin for ros2_medkit - bridges PLC systems into the SOVD entity tree mfaferek93 Apache-2.0 diff --git a/src/ros2_medkit_plugins/ros2_medkit_sovd_service_interface/CHANGELOG.rst b/src/ros2_medkit_plugins/ros2_medkit_sovd_service_interface/CHANGELOG.rst new file mode 100644 index 000000000..4fa00d852 --- /dev/null +++ b/src/ros2_medkit_plugins/ros2_medkit_sovd_service_interface/CHANGELOG.rst @@ -0,0 +1,11 @@ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Changelog for package ros2_medkit_sovd_service_interface +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +0.5.0 (2026-06-01) +------------------ +* Initial release - gateway plugin that exposes the medkit entity tree and fault data over standard ROS 2 services, so other ROS 2 nodes can query entities and faults without going through the HTTP API (`#330 `_) +* Creates ROS 2 services under a configurable prefix (default ``/medkit``): ``list_entities``, ``list_entity_faults``, and ``get_capabilities``; a ``get_entity_data`` service is also registered but currently returns "not implemented" (use the HTTP REST API for topic data) pending (`#351 `_) +* Runs as a gateway MODULE plugin with read-only ``PluginContext`` access to the entity cache and fault manager; implements no provider interfaces +* Shutdown guards and ``noexcept`` destructors reset ROS resources before member destruction to prevent teardown crashes +* Contributors: @bburda, @mfaferek93 diff --git a/src/ros2_medkit_plugins/ros2_medkit_sovd_service_interface/package.xml b/src/ros2_medkit_plugins/ros2_medkit_sovd_service_interface/package.xml index 2a47e046b..0cf338a91 100644 --- a/src/ros2_medkit_plugins/ros2_medkit_sovd_service_interface/package.xml +++ b/src/ros2_medkit_plugins/ros2_medkit_sovd_service_interface/package.xml @@ -2,7 +2,7 @@ ros2_medkit_sovd_service_interface - 0.4.0 + 0.5.0 SOVD Service Interface plugin - exposes medkit entity tree and fault data via ROS 2 services bburda mfaferek93 diff --git a/src/ros2_medkit_serialization/CHANGELOG.rst b/src/ros2_medkit_serialization/CHANGELOG.rst index bf5472e24..7db753e9b 100644 --- a/src/ros2_medkit_serialization/CHANGELOG.rst +++ b/src/ros2_medkit_serialization/CHANGELOG.rst @@ -2,6 +2,12 @@ Changelog for package ros2_medkit_serialization ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +0.5.0 (2026-06-01) +------------------ +* ``TypeIntrospection`` relocated into this package as part of the gateway core / ROS 2 layer split +* Build: adopt the centralized ``ROS2MedkitWarnings`` and ``ROS2MedkitSanitizers`` cmake modules +* Contributors: @bburda + 0.4.0 (2026-03-20) ------------------ * Enable ``POSITION_INDEPENDENT_CODE`` for MODULE target compatibility diff --git a/src/ros2_medkit_serialization/package.xml b/src/ros2_medkit_serialization/package.xml index 69251bcbf..16676361e 100644 --- a/src/ros2_medkit_serialization/package.xml +++ b/src/ros2_medkit_serialization/package.xml @@ -2,7 +2,7 @@ ros2_medkit_serialization - 0.4.0 + 0.5.0 Runtime JSON to ROS 2 message serialization library bburda Apache-2.0 From 82a847ac9d5f074b149d2a3538d005f05ec39cce Mon Sep 17 00:00:00 2001 From: Bartosz Burda Date: Tue, 2 Jun 2026 10:16:20 +0200 Subject: [PATCH 3/4] chore(release): extend version coverage and complete gateway changelog release.sh now also bumps and verifies docs/Doxyfile PROJECT_NUMBER and the QUALITY_DECLARATION.md current-version references, which previous releases missed (Doxyfile was 0.1.0, the quality declaration 0.3.0); both are now 0.5.0 and validated by verify. Gateway 0.5.0 changelog: add the GET /apps/{id}/belongs-to endpoint, the pool-backed TopicDataProvider plus /health subscription-executor stats, and the updates x-medkit.phase field; trim a stray out-of-scope sentence from the SchemaWriter note. --- QUALITY_DECLARATION.md | 6 ++-- docs/Doxyfile | 2 +- scripts/release.sh | 45 +++++++++++++++++++++++++++ src/ros2_medkit_gateway/CHANGELOG.rst | 7 +++-- 4 files changed, 53 insertions(+), 7 deletions(-) diff --git a/QUALITY_DECLARATION.md b/QUALITY_DECLARATION.md index 984074fb9..09fd7c862 100644 --- a/QUALITY_DECLARATION.md +++ b/QUALITY_DECLARATION.md @@ -33,7 +33,7 @@ All packages in the repository share the same version number. ### Version Stability [1.ii] -The current version is **0.3.0**. +The current version is **0.5.0**. The package follows semver; the pre-1.0 version reflects that the public API may still evolve based on early adopter feedback, not a lack of quality infrastructure. The 1.0.0 release is planned after the API has been validated through pilot deployments. @@ -225,7 +225,7 @@ Security issues can be reported via GitHub Security Advisories on the | Requirement | Status | Notes | |---|---|---| -| Version policy | Met | Semver, all packages at 0.3.0 | +| Version policy | Met | Semver, all packages at 0.5.0 | | Stable version (>=1.0.0) | Caveat | Pre-1.0; API versioned, 1.0.0 planned post-pilot | | Change requests | Met | All changes via PR | | CI | Met | Build + test + coverage on every PR | @@ -237,6 +237,6 @@ Security issues can be reported via GitHub Security Advisories on the | Platform support | Met | Ubuntu Noble / ROS 2 Jazzy + Ubuntu Jammy / ROS 2 Humble + Ubuntu Resolute / ROS 2 Lyrical | | Security policy | Met | REP-2006 compliant | -**Caveat:** Version is 0.3.0 (pre-1.0.0, requirement 1.ii). The REST API is versioned (`/api/v1/`) +**Caveat:** Version is 0.5.0 (pre-1.0.0, requirement 1.ii). The REST API is versioned (`/api/v1/`) and the package meets all other Level 3 requirements. The 1.0.0 release is planned after API validation through pilot deployments. diff --git a/docs/Doxyfile b/docs/Doxyfile index 5576925c4..61eaab450 100644 --- a/docs/Doxyfile +++ b/docs/Doxyfile @@ -2,7 +2,7 @@ # Used by Breathe extension to integrate with Sphinx PROJECT_NAME = "ros2_medkit" -PROJECT_NUMBER = "0.1.0" +PROJECT_NUMBER = "0.5.0" PROJECT_BRIEF = "SOVD Gateway for ROS 2" # Input settings diff --git a/scripts/release.sh b/scripts/release.sh index f3f1b9809..7db2b2fb5 100755 --- a/scripts/release.sh +++ b/scripts/release.sh @@ -33,6 +33,8 @@ SRC_DIR="${REPO_ROOT}/src" VERSION_HPP="${SRC_DIR}/ros2_medkit_gateway/include/ros2_medkit_gateway/core/version.hpp" CONF_PY="${REPO_ROOT}/docs/conf.py" DOCS_PYPROJECT="${REPO_ROOT}/docs/pyproject.toml" +DOXYFILE="${REPO_ROOT}/docs/Doxyfile" +QUALITY_DECL="${REPO_ROOT}/QUALITY_DECLARATION.md" usage() { echo "Usage: $0 {bump |verify []}" @@ -107,6 +109,23 @@ cmd_bump() { echo " docs/pyproject.toml: -> ${target_version}" fi + # Update docs/Doxyfile PROJECT_NUMBER + if [ -f "$DOXYFILE" ]; then + sed -i "s|\(PROJECT_NUMBER[[:space:]]*=[[:space:]]*\)\"[0-9]\+\.[0-9]\+\.[0-9]\+\"|\1\"${target_version}\"|" "$DOXYFILE" + echo " docs/Doxyfile PROJECT_NUMBER: -> ${target_version}" + fi + + # Update QUALITY_DECLARATION.md current-version references (leave the + # ">=1.0.0" stability-policy mentions untouched via anchored patterns) + if [ -f "$QUALITY_DECL" ]; then + sed -i \ + -e "s|current version is \*\*[0-9]\+\.[0-9]\+\.[0-9]\+\*\*|current version is **${target_version}**|" \ + -e "s|all packages at [0-9]\+\.[0-9]\+\.[0-9]\+|all packages at ${target_version}|" \ + -e "s|Version is [0-9]\+\.[0-9]\+\.[0-9]\+|Version is ${target_version}|" \ + "$QUALITY_DECL" + echo " QUALITY_DECLARATION.md: -> ${target_version}" + fi + echo "" echo "Bumped ${count} packages + version.hpp + docs to ${target_version}." echo "" @@ -177,6 +196,32 @@ cmd_verify() { versions_seen+=("$pyproject_version") fi + # Check docs/Doxyfile PROJECT_NUMBER + if [ -f "$DOXYFILE" ]; then + local doxy_version + doxy_version=$(grep -oP 'PROJECT_NUMBER\s*=\s*"\K[0-9]+\.[0-9]+\.[0-9]+' "$DOXYFILE" || echo "unknown") + if [ -n "$expected_version" ] && [ "$doxy_version" != "$expected_version" ]; then + echo " MISMATCH: docs/Doxyfile PROJECT_NUMBER is ${doxy_version}, expected ${expected_version}" + all_ok=false + else + echo " OK: docs/Doxyfile PROJECT_NUMBER = ${doxy_version}" + fi + versions_seen+=("$doxy_version") + fi + + # Check QUALITY_DECLARATION.md current version + if [ -f "$QUALITY_DECL" ]; then + local qd_version + qd_version=$(grep -oP 'current version is \*\*\K[0-9]+\.[0-9]+\.[0-9]+' "$QUALITY_DECL" || echo "unknown") + if [ -n "$expected_version" ] && [ "$qd_version" != "$expected_version" ]; then + echo " MISMATCH: QUALITY_DECLARATION.md current version is ${qd_version}, expected ${expected_version}" + all_ok=false + else + echo " OK: QUALITY_DECLARATION.md current version = ${qd_version}" + fi + versions_seen+=("$qd_version") + fi + # Check consistency if no expected version given if [ -z "$expected_version" ]; then local unique_versions diff --git a/src/ros2_medkit_gateway/CHANGELOG.rst b/src/ros2_medkit_gateway/CHANGELOG.rst index f41c87c9d..4f0c05cd7 100644 --- a/src/ros2_medkit_gateway/CHANGELOG.rst +++ b/src/ros2_medkit_gateway/CHANGELOG.rst @@ -51,9 +51,7 @@ Changelog for package ros2_medkit_gateway ``parameters`` / ``error`` (``GET .../scripts/{id}/executions/{eid}``) and the script ``parameters_schema`` field (``GET .../scripts/{id}``). Clients that tested ``field === null`` or relied on the key always being present must - treat an absent key the same as ``null``. The ``rtmaps_medkit`` variant is - explicitly NOT covered by this PR - its handlers continue to run on the - pre-typed HandlerContext surface and will be migrated separately + treat an absent key the same as ``null`` (`#403 `_) * Synchronous operation-execution service-call failures (``POST /api/v1/{entity-path}/operations/{id}/executions`` when the underlying @@ -102,6 +100,9 @@ Changelog for package ros2_medkit_gateway * All-or-nothing fragment semantics: a single malformed or forbidden fragment fails the entire load / reload and keeps the previously-loaded manifest active (`#376 `_) * ``ManifestParser::parse_fragment_file`` convenience entrypoint that injects a synthetic ``manifest_version`` header when the fragment omits one * See ``design/plugin_entity_notifications.rst`` for the lifecycle, merge-rule, and plugin-side write-contract walkthrough +* New ``GET /api/v1/apps/{app_id}/belongs-to`` discovery endpoint returning the areas and components an app belongs to; the ``belongs-to`` URI is advertised on ``GET /apps/{app_id}`` (`#196 `_) +* Pool-backed ``TopicDataProvider`` for live topic data: a shared subscription pool owned by a single-writer executor node, with LRU and idle eviction and publisher-QoS matching, replacing per-request subscriptions. Pool and executor health are surfaced as the ``x-medkit-subscription-executor`` vendor-extension stats on ``GET /api/v1/health``, read atomically so ``/health`` never blocks under load (`#384 `_) +* ``GET /api/v1/updates/{id}/status`` exposes the update lifecycle ``phase`` under the response ``x-medkit`` object * Contributors: @bburda, @mfaferek93, @eclipse0922 0.4.0 (2026-03-20) From ad8a8c8bbe42938df406602d3865a93c56bfa2e5 Mon Sep 17 00:00:00 2001 From: Bartosz Burda Date: Mon, 8 Jun 2026 13:14:48 +0200 Subject: [PATCH 4/4] chore(release): record post-cut PRs in 0.5.0 changelogs and set date PRs #408 (gateway config_file launch argument), #411 (httplib-free plugin-facing headers), and #405 (cpp-httplib <0.20 cap + ROS 2 Lyrical / Ubuntu 26.04 support) merged after the 0.5.0 changelogs were finalized. Add their entries to the gateway and cmake changelogs and credit @evTessellate. Set the 0.5.0 release date to 2026-06-08 across all 15 package changelogs. --- src/ros2_medkit_cmake/CHANGELOG.rst | 3 ++- src/ros2_medkit_diagnostic_bridge/CHANGELOG.rst | 2 +- .../ros2_medkit_beacon_common/CHANGELOG.rst | 2 +- .../ros2_medkit_linux_introspection/CHANGELOG.rst | 2 +- .../ros2_medkit_param_beacon/CHANGELOG.rst | 2 +- .../ros2_medkit_topic_beacon/CHANGELOG.rst | 2 +- src/ros2_medkit_fault_manager/CHANGELOG.rst | 2 +- src/ros2_medkit_fault_reporter/CHANGELOG.rst | 2 +- src/ros2_medkit_gateway/CHANGELOG.rst | 6 ++++-- src/ros2_medkit_integration_tests/CHANGELOG.rst | 2 +- src/ros2_medkit_msgs/CHANGELOG.rst | 2 +- .../ros2_medkit_graph_provider/CHANGELOG.rst | 2 +- src/ros2_medkit_plugins/ros2_medkit_opcua/CHANGELOG.rst | 2 +- .../ros2_medkit_sovd_service_interface/CHANGELOG.rst | 2 +- src/ros2_medkit_serialization/CHANGELOG.rst | 2 +- 15 files changed, 19 insertions(+), 16 deletions(-) diff --git a/src/ros2_medkit_cmake/CHANGELOG.rst b/src/ros2_medkit_cmake/CHANGELOG.rst index 28ab78321..3ed1791d4 100644 --- a/src/ros2_medkit_cmake/CHANGELOG.rst +++ b/src/ros2_medkit_cmake/CHANGELOG.rst @@ -2,12 +2,13 @@ Changelog for package ros2_medkit_cmake ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -0.5.0 (2026-06-01) +0.5.0 (2026-06-08) ------------------ * ``ROS2MedkitWarnings.cmake`` module centralizes compiler warning flags across all packages, with selective ``-Werror`` (namespaced ``MEDKIT_ENABLE_WERROR``, defaults OFF) applied only to flags safe against external headers * ``ROS2MedkitSanitizers.cmake`` module adds ASan/UBSan and TSan support for sanitizer CI jobs * ``ROS2MedkitTestDomain.cmake`` centralizes ``ROS_DOMAIN_ID`` allocation for per-test DDS isolation * Vendored cpp-httplib 0.14.3 as a build-farm fallback (``VENDORED_DIR`` parameter), marked as a SYSTEM include to suppress third-party warnings +* ``medkit_find_cpp_httplib`` caps cpp-httplib at ``< 0.20`` across both the pkg-config and ``find_package(httplib)`` tiers, so distros shipping 0.20+ (Ubuntu 26.04 ships 0.26, which dropped the multipart ``Request::has_file`` API the gateway uses) fall through to the vendored 0.14.3 header instead of failing the build; ``ROS2MedkitCompat.cmake`` extended to cover ROS 2 Lyrical / Ubuntu 26.04 Resolute (rclcpp 32, ``yaml_cpp_vendor`` target export, ``ament_target_dependencies`` removal in ament_cmake 2.8.5+), which replaces Rolling in CI (`#405 `_) * Contributors: @bburda, @mfaferek93 0.4.0 (2026-03-20) diff --git a/src/ros2_medkit_diagnostic_bridge/CHANGELOG.rst b/src/ros2_medkit_diagnostic_bridge/CHANGELOG.rst index d9a8cf327..216bda4d3 100644 --- a/src/ros2_medkit_diagnostic_bridge/CHANGELOG.rst +++ b/src/ros2_medkit_diagnostic_bridge/CHANGELOG.rst @@ -2,7 +2,7 @@ Changelog for package ros2_medkit_diagnostic_bridge ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -0.5.0 (2026-06-01) +0.5.0 (2026-06-08) ------------------ * Build: adopt the centralized ``ROS2MedkitWarnings`` and ``ROS2MedkitSanitizers`` cmake modules * Tests: use centralized ``ROS_DOMAIN_ID`` allocation for DDS isolation diff --git a/src/ros2_medkit_discovery_plugins/ros2_medkit_beacon_common/CHANGELOG.rst b/src/ros2_medkit_discovery_plugins/ros2_medkit_beacon_common/CHANGELOG.rst index 3d9103652..4ff02a737 100644 --- a/src/ros2_medkit_discovery_plugins/ros2_medkit_beacon_common/CHANGELOG.rst +++ b/src/ros2_medkit_discovery_plugins/ros2_medkit_beacon_common/CHANGELOG.rst @@ -2,7 +2,7 @@ Changelog for package ros2_medkit_beacon_common ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -0.5.0 (2026-06-01) +0.5.0 (2026-06-08) ------------------ * Updated include paths for the gateway core / ROS 2 ``PluginContext`` layer split and removal of backwards-compat shim headers * Build: adopt the centralized ``ROS2MedkitWarnings`` cmake module diff --git a/src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/CHANGELOG.rst b/src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/CHANGELOG.rst index 41679492b..d99049f6d 100644 --- a/src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/CHANGELOG.rst +++ b/src/ros2_medkit_discovery_plugins/ros2_medkit_linux_introspection/CHANGELOG.rst @@ -2,7 +2,7 @@ Changelog for package ros2_medkit_linux_introspection ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -0.5.0 (2026-06-01) +0.5.0 (2026-06-08) ------------------ * Migrated the introspection plugins to the ``get_routes()`` plugin API * Declared ``pkg-config`` as a ``buildtool_depend`` and fixed a route-separator bug diff --git a/src/ros2_medkit_discovery_plugins/ros2_medkit_param_beacon/CHANGELOG.rst b/src/ros2_medkit_discovery_plugins/ros2_medkit_param_beacon/CHANGELOG.rst index c76a6d3da..6c54aeaae 100644 --- a/src/ros2_medkit_discovery_plugins/ros2_medkit_param_beacon/CHANGELOG.rst +++ b/src/ros2_medkit_discovery_plugins/ros2_medkit_param_beacon/CHANGELOG.rst @@ -2,7 +2,7 @@ Changelog for package ros2_medkit_param_beacon ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -0.5.0 (2026-06-01) +0.5.0 (2026-06-08) ------------------ * Migrated ``ParameterBeaconPlugin`` to the ``get_routes()`` plugin API * Added shutdown guards and ``noexcept`` destructors that reset rclcpp resources before member destruction, preventing teardown SIGSEGV; the graph poll now swallows ``rcl`` "context invalid" during shutdown diff --git a/src/ros2_medkit_discovery_plugins/ros2_medkit_topic_beacon/CHANGELOG.rst b/src/ros2_medkit_discovery_plugins/ros2_medkit_topic_beacon/CHANGELOG.rst index 58048efa3..2dc7847ef 100644 --- a/src/ros2_medkit_discovery_plugins/ros2_medkit_topic_beacon/CHANGELOG.rst +++ b/src/ros2_medkit_discovery_plugins/ros2_medkit_topic_beacon/CHANGELOG.rst @@ -2,7 +2,7 @@ Changelog for package ros2_medkit_topic_beacon ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -0.5.0 (2026-06-01) +0.5.0 (2026-06-08) ------------------ * Migrated ``TopicBeaconPlugin`` to the ``get_routes()`` plugin API * Added shutdown guards and ``noexcept`` destructors (with ``override``) that reset rclcpp resources before member destruction, preventing teardown SIGSEGV diff --git a/src/ros2_medkit_fault_manager/CHANGELOG.rst b/src/ros2_medkit_fault_manager/CHANGELOG.rst index 197e94d54..97f4c1ce1 100644 --- a/src/ros2_medkit_fault_manager/CHANGELOG.rst +++ b/src/ros2_medkit_fault_manager/CHANGELOG.rst @@ -2,7 +2,7 @@ Changelog for package ros2_medkit_fault_manager ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -0.5.0 (2026-06-01) +0.5.0 (2026-06-08) ------------------ * ``ClearFault`` honors the new ``skip_correlation_auto_clear`` request flag so per-entity fault clears can opt out of cascade-clearing correlated symptom fault codes (`#395 `_) * Three-layer protection against unbounded snapshot growth (bounded buffers plus pruning) diff --git a/src/ros2_medkit_fault_reporter/CHANGELOG.rst b/src/ros2_medkit_fault_reporter/CHANGELOG.rst index 0a180817b..ce58b8a69 100644 --- a/src/ros2_medkit_fault_reporter/CHANGELOG.rst +++ b/src/ros2_medkit_fault_reporter/CHANGELOG.rst @@ -2,7 +2,7 @@ Changelog for package ros2_medkit_fault_reporter ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -0.5.0 (2026-06-01) +0.5.0 (2026-06-08) ------------------ * ``LocalFilter`` now debounces ``PASSED`` events with the same threshold / window filtering as ``FAILED``, preventing rapid CONFIRMED/CLEARED status cycling from triggering unbounded snapshot recapture (`#308 `_) * Build: adopt the centralized ``ROS2MedkitWarnings`` and ``ROS2MedkitSanitizers`` cmake modules diff --git a/src/ros2_medkit_gateway/CHANGELOG.rst b/src/ros2_medkit_gateway/CHANGELOG.rst index 4f0c05cd7..afe06d180 100644 --- a/src/ros2_medkit_gateway/CHANGELOG.rst +++ b/src/ros2_medkit_gateway/CHANGELOG.rst @@ -2,7 +2,7 @@ Changelog for package ros2_medkit_gateway ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -0.5.0 (2026-06-01) +0.5.0 (2026-06-08) ------------------ **Breaking Changes:** @@ -103,7 +103,9 @@ Changelog for package ros2_medkit_gateway * New ``GET /api/v1/apps/{app_id}/belongs-to`` discovery endpoint returning the areas and components an app belongs to; the ``belongs-to`` URI is advertised on ``GET /apps/{app_id}`` (`#196 `_) * Pool-backed ``TopicDataProvider`` for live topic data: a shared subscription pool owned by a single-writer executor node, with LRU and idle eviction and publisher-QoS matching, replacing per-request subscriptions. Pool and executor health are surfaced as the ``x-medkit-subscription-executor`` vendor-extension stats on ``GET /api/v1/health``, read atomically so ``/health`` never blocks under load (`#384 `_) * ``GET /api/v1/updates/{id}/status`` exposes the update lifecycle ``phase`` under the response ``x-medkit`` object -* Contributors: @bburda, @mfaferek93, @eclipse0922 +* ``gateway.launch.py`` and ``gateway_https.launch.py`` accept a ``config_file`` launch argument pointing at an external parameter YAML. Parameters present in the file override the matching gateway defaults; parameters the file omits keep their launch defaults instead of being reset (`#408 `_) +* Plugin-facing headers are httplib-free across the ``.so`` boundary: the handler-result vocabulary (``Result``, ``NoContent``, ``Forwarded``, ``ValidatorResult``, ``ResponseAttachments``) moved to a new leaf header ``http/handler_result.hpp`` so provider and DTO interfaces no longer transitively include ````. Out-of-tree plugins built against the installed gateway (build-farm / Docker topology, where the vendored httplib is not on the include path) compile again; no ABI, wire, or behaviour change. A pre-push gate and CI scan keep the plugin-facing headers httplib-free (`#411 `_) +* Contributors: @bburda, @eclipse0922, @evTessellate, @mfaferek93 0.4.0 (2026-03-20) ------------------ diff --git a/src/ros2_medkit_integration_tests/CHANGELOG.rst b/src/ros2_medkit_integration_tests/CHANGELOG.rst index b63855863..ba4ec9709 100644 --- a/src/ros2_medkit_integration_tests/CHANGELOG.rst +++ b/src/ros2_medkit_integration_tests/CHANGELOG.rst @@ -2,7 +2,7 @@ Changelog for package ros2_medkit_integration_tests ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -0.5.0 (2026-06-01) +0.5.0 (2026-06-08) ------------------ * New peer-aggregation suites: peer aggregation, cross-ECU fan-out across all resource types, daisy-chain hierarchical aggregation, leaf-collision aggregation, and cross-ECU log aggregation * New SOVD-aligned entity-model suites: runtime entity model, flat entity tree without areas, hybrid suppression, and per-entity fault scope isolation diff --git a/src/ros2_medkit_msgs/CHANGELOG.rst b/src/ros2_medkit_msgs/CHANGELOG.rst index fda586152..785f2e313 100644 --- a/src/ros2_medkit_msgs/CHANGELOG.rst +++ b/src/ros2_medkit_msgs/CHANGELOG.rst @@ -2,7 +2,7 @@ Changelog for package ros2_medkit_msgs ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -0.5.0 (2026-06-01) +0.5.0 (2026-06-08) ------------------ * New service definitions ``ListEntities.srv``, ``GetEntityData.srv``, ``GetCapabilities.srv`` and the ``EntityInfo.msg`` type for exposing the entity tree over ROS 2 services (`#330 `_) * ``ClearFault.srv`` request gains a ``bool skip_correlation_auto_clear`` field so callers can opt out of cascade-clearing correlated symptom fault codes; out-of-tree callers must rebuild against the new message (`#395 `_) diff --git a/src/ros2_medkit_plugins/ros2_medkit_graph_provider/CHANGELOG.rst b/src/ros2_medkit_plugins/ros2_medkit_graph_provider/CHANGELOG.rst index 57e956a4c..1765bc0d1 100644 --- a/src/ros2_medkit_plugins/ros2_medkit_graph_provider/CHANGELOG.rst +++ b/src/ros2_medkit_plugins/ros2_medkit_graph_provider/CHANGELOG.rst @@ -2,7 +2,7 @@ Changelog for package ros2_medkit_graph_provider ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -0.5.0 (2026-06-01) +0.5.0 (2026-06-08) ------------------ * Migrated ``GraphProviderPlugin`` to the ``get_routes()`` plugin API and fixed a route-separator bug * Added shutdown guards and ``noexcept`` destructors that reset rclcpp resources before member destruction, preventing teardown SIGSEGV diff --git a/src/ros2_medkit_plugins/ros2_medkit_opcua/CHANGELOG.rst b/src/ros2_medkit_plugins/ros2_medkit_opcua/CHANGELOG.rst index 2e60f8cf5..0cde2babe 100644 --- a/src/ros2_medkit_plugins/ros2_medkit_opcua/CHANGELOG.rst +++ b/src/ros2_medkit_plugins/ros2_medkit_opcua/CHANGELOG.rst @@ -2,7 +2,7 @@ Changelog for package ros2_medkit_opcua ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -0.5.0 (2026-06-01) +0.5.0 (2026-06-08) ------------------ * Native OPC-UA Part 9 ``AlarmConditionType`` event subscription. The plugin now subscribes to vendor-defined alarms (Siemens S7-1500 ``Program_Alarm`` / ProDiag, Beckhoff TF6100, CodeSys 3.5+, Rockwell via FactoryTalk Linx) and bridges each event into the SOVD fault lifecycle. Configured via a new top-level ``event_alarms:`` block in the node map YAML; mutually exclusive per entry with the existing threshold-based ``alarm`` form. (issue #386) * New SOVD operations on entities that host alarm sources: ``acknowledge_fault`` invokes the inherited ``Acknowledge`` method on the live ``ConditionId`` (i=9111, EventId tracked per Part 9 §5.7.3); ``confirm_fault`` invokes ``Confirm`` (i=9113). Both accept an optional ``comment`` rendered as ``LocalizedText`` on the server. diff --git a/src/ros2_medkit_plugins/ros2_medkit_sovd_service_interface/CHANGELOG.rst b/src/ros2_medkit_plugins/ros2_medkit_sovd_service_interface/CHANGELOG.rst index 4fa00d852..649a79db6 100644 --- a/src/ros2_medkit_plugins/ros2_medkit_sovd_service_interface/CHANGELOG.rst +++ b/src/ros2_medkit_plugins/ros2_medkit_sovd_service_interface/CHANGELOG.rst @@ -2,7 +2,7 @@ Changelog for package ros2_medkit_sovd_service_interface ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -0.5.0 (2026-06-01) +0.5.0 (2026-06-08) ------------------ * Initial release - gateway plugin that exposes the medkit entity tree and fault data over standard ROS 2 services, so other ROS 2 nodes can query entities and faults without going through the HTTP API (`#330 `_) * Creates ROS 2 services under a configurable prefix (default ``/medkit``): ``list_entities``, ``list_entity_faults``, and ``get_capabilities``; a ``get_entity_data`` service is also registered but currently returns "not implemented" (use the HTTP REST API for topic data) pending (`#351 `_) diff --git a/src/ros2_medkit_serialization/CHANGELOG.rst b/src/ros2_medkit_serialization/CHANGELOG.rst index 7db753e9b..d9f723675 100644 --- a/src/ros2_medkit_serialization/CHANGELOG.rst +++ b/src/ros2_medkit_serialization/CHANGELOG.rst @@ -2,7 +2,7 @@ Changelog for package ros2_medkit_serialization ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -0.5.0 (2026-06-01) +0.5.0 (2026-06-08) ------------------ * ``TypeIntrospection`` relocated into this package as part of the gateway core / ROS 2 layer split * Build: adopt the centralized ``ROS2MedkitWarnings`` and ``ROS2MedkitSanitizers`` cmake modules