From 716c55dfa64f72263be2615171f825e7c37d75d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristian=20Zar=C4=99bski?= Date: Wed, 11 Feb 2026 08:09:57 +0000 Subject: [PATCH 1/4] Prepare for v2.3.4 release --- CHANGELOG.md | 2 +- CITATION.cff | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 857a0f93..c696339f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Change Log -## [v2.3.4](https://github.com/simvue-io/python-api/releases/tag/v2.3.4) - 2026-02-10 +## [v2.3.4](https://github.com/simvue-io/python-api/releases/tag/v2.3.4) - 2026-02-11 - Add handling of metrics based on size and enforce 10k points per grid metric as per server. - Freeze `flatdict==4.0.0` do address install issues. diff --git a/CITATION.cff b/CITATION.cff index a93eb4d8..98af5a03 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -43,5 +43,5 @@ keywords: - simulation license: Apache-2.0 commit: a24e113aeb6091399cffa0166dd17d1bae0ed916 -version: 2.3.3 -date-released: '2026-02-10' +version: 2.3.4 +date-released: '2026-02-11' From f05cf94844312ca1a214b5c4b90448495d18bae6 Mon Sep 17 00:00:00 2001 From: Matt Field Date: Wed, 11 Feb 2026 15:42:26 +0000 Subject: [PATCH 2/4] Correct total grid metric size --- simvue/run.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/simvue/run.py b/simvue/run.py index 7f587f0b..b3a6affb 100644 --- a/simvue/run.py +++ b/simvue/run.py @@ -79,6 +79,7 @@ HEARTBEAT_INTERVAL: int = 60 RESOURCES_METRIC_PREFIX: str = "resources" +TOTAL_GRID_METRIC_SIZE: int = 1e7 MAXIMUM_GRID_METRIC_SIZE: int = 5 * 10**4 logger = logging.getLogger(__name__) @@ -547,7 +548,7 @@ def _start(self) -> bool: mode=self._dispatch_mode, termination_trigger=self._shutdown_event, object_types=["events", "metrics_regular", "metrics_tensor"], - thresholds=dict(object_size=MAXIMUM_GRID_METRIC_SIZE), + thresholds=dict(object_size=TOTAL_GRID_METRIC_SIZE), callback=self._create_dispatch_callback(), ) From 019adbe5193fcaebc875a1ce35bfb7bc9fa78e77 Mon Sep 17 00:00:00 2001 From: Matt Field Date: Wed, 11 Feb 2026 15:52:26 +0000 Subject: [PATCH 3/4] Finish heartbeat thread after finishing dispatch --- simvue/run.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/simvue/run.py b/simvue/run.py index b3a6affb..0a45b6a2 100644 --- a/simvue/run.py +++ b/simvue/run.py @@ -585,12 +585,6 @@ def _error(self, message: str, join_threads: bool = True) -> None: RuntimeError exception throw """ - # Stop heartbeat - if self._heartbeat_termination_trigger and self._heartbeat_thread: - self._heartbeat_termination_trigger.set() - if join_threads: - self._heartbeat_thread.join() - # Finish stopping all threads if self._shutdown_event: self._shutdown_event.set() @@ -601,6 +595,12 @@ def _error(self, message: str, join_threads: bool = True) -> None: if join_threads: self._dispatcher.join() + # Stop heartbeat + if self._heartbeat_termination_trigger and self._heartbeat_thread: + self._heartbeat_termination_trigger.set() + if join_threads: + self._heartbeat_thread.join() + if not self._suppress_errors: raise SimvueRunError(message) @@ -1861,10 +1861,6 @@ def set_status( def _tidy_run(self) -> None: self._executor.wait_for_completion() - if self._heartbeat_thread and self._heartbeat_termination_trigger: - self._heartbeat_termination_trigger.set() - self._heartbeat_thread.join() - if self._shutdown_event: self._shutdown_event.set() @@ -1877,6 +1873,10 @@ def _tidy_run(self) -> None: self._dispatcher.purge() self._dispatcher.join() + if self._heartbeat_thread and self._heartbeat_termination_trigger: + self._heartbeat_termination_trigger.set() + self._heartbeat_thread.join() + if ( self._sv_obj and self._user_config.run.mode == "offline" From ac94826f7875eefe39cdb1f4d0989251dba2ef17 Mon Sep 17 00:00:00 2001 From: Matt Field Date: Wed, 11 Feb 2026 15:53:54 +0000 Subject: [PATCH 4/4] Set limit to 1e6 --- simvue/run.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/simvue/run.py b/simvue/run.py index 0a45b6a2..64fa2ec1 100644 --- a/simvue/run.py +++ b/simvue/run.py @@ -79,7 +79,7 @@ HEARTBEAT_INTERVAL: int = 60 RESOURCES_METRIC_PREFIX: str = "resources" -TOTAL_GRID_METRIC_SIZE: int = 1e7 +TOTAL_GRID_METRIC_SIZE: int = 1e6 MAXIMUM_GRID_METRIC_SIZE: int = 5 * 10**4 logger = logging.getLogger(__name__)