From d841062683d400843e8c555348ae07941d706ad2 Mon Sep 17 00:00:00 2001 From: Ari Angelo Date: Thu, 30 Jul 2026 14:40:27 +0200 Subject: [PATCH 1/4] chore: test-app and he-tme are now available to run version 1.3.0 This version runs on a100's exclusively, in addition the test app produces the same outputs artifact list as he-tme. --- tests/constants_test.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/constants_test.py b/tests/constants_test.py index 3fc1c2d35..5f5365bb7 100644 --- a/tests/constants_test.py +++ b/tests/constants_test.py @@ -106,13 +106,13 @@ match os.getenv("AIGNOSTICS_PLATFORM_ENVIRONMENT", "production"): case "production": TEST_APPLICATION_ID = "test-app" - TEST_APPLICATION_VERSION = "1.0.0" + TEST_APPLICATION_VERSION = "1.3.0" HETA_APPLICATION_ID = "he-tme" - HETA_APPLICATION_VERSION = "1.2.0" - TEST_APPLICATION_VERSION_USE_LATEST_FALLBACK_SKIP = False + HETA_APPLICATION_VERSION = "1.3.0" + TEST_APPLICATION_VERSION_USE_LATEST_FALLBACK_SKIP = True - PIPELINE_GPU_TYPE = "L4" + PIPELINE_GPU_TYPE = "A100" PIPELINE_GPU_PROVISIONING_MODE = "SPOT" PIPELINE_GPU_FLEX_START_MAX_RUN_DURATION_MINUTES = None PIPELINE_MAX_GPUS_PER_SLIDE = 1 @@ -121,13 +121,13 @@ case "staging": TEST_APPLICATION_ID = "test-app" - TEST_APPLICATION_VERSION = "1.0.0" + TEST_APPLICATION_VERSION = "1.3.0" HETA_APPLICATION_ID = "he-tme" - HETA_APPLICATION_VERSION = "1.3.0-rc.1" + HETA_APPLICATION_VERSION = "1.3.0" TEST_APPLICATION_VERSION_USE_LATEST_FALLBACK_SKIP = True - PIPELINE_GPU_TYPE = "L4" + PIPELINE_GPU_TYPE = "A100" PIPELINE_GPU_PROVISIONING_MODE = "SPOT" PIPELINE_GPU_FLEX_START_MAX_RUN_DURATION_MINUTES = None PIPELINE_MAX_GPUS_PER_SLIDE = 1 From 66dba00f09a23ab63c6adaa34d3bdd6843b2ec62 Mon Sep 17 00:00:00 2001 From: Ari Angelo Date: Thu, 30 Jul 2026 15:03:21 +0200 Subject: [PATCH 2/4] docs: Update the contribution guide to mention triggering github actions is a possibility --- CONTRIBUTING.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4ca08d935..34c9f0cf3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -122,6 +122,27 @@ Notes: - **PR labels**: Add labels with the same names (e.g., `skip:ci`, `skip:test:long-running`) to your pull request - Both methods work independently - you can use either or both + +### Run Github Actions + +One can trigger GitHub Actions workflows locally using commands like so: + +```shell +BRANCH=$(git rev-parse --abbrev-ref HEAD) + +# Hourly (quick smoke) and Daily (thorough) — staging +gh workflow run scheduled-testing-staging-hourly.yml --ref "$BRANCH" -f branch="$BRANCH" +gh workflow run scheduled-testing-staging-daily.yml --ref "$BRANCH" -f branch="$BRANCH" + +# Same against production +gh workflow run scheduled-testing-production-hourly.yml --ref "$BRANCH" -f branch="$BRANCH" +gh workflow run scheduled-testing-production-daily.yml --ref "$BRANCH" -f branch="$BRANCH" +``` + +This is especially useful for testing that new he-tme versions will pass the scheduled testing workflows before merging into main. + + + ### Publish Release Releases follow a four-phase workflow that allows Ketryx compliance approvals to be collected before publishing: From af8fb8be6ad5f4e8c0b9b9f75d051680c8236b35 Mon Sep 17 00:00:00 2001 From: Ari Angelo Date: Mon, 3 Aug 2026 19:13:12 +0200 Subject: [PATCH 3/4] Update the expected file sizes --- tests/constants_test.py | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/tests/constants_test.py b/tests/constants_test.py index 5f5365bb7..5df88ab74 100644 --- a/tests/constants_test.py +++ b/tests/constants_test.py @@ -74,33 +74,33 @@ # nearly-identical blocks as duplicated code (the 3% duplication threshold). SPOT_0_EXPECTED_RESULT_FILES = [ ("tissue_qc_csv_class_information.csv", 285, 10), - ("tissue_qc_geojson_polygons.json", 101150, 10), - ("tissue_qc_parquet_polygons.parquet", 39435, 10), - ("tissue_qc_segmentation_map_image.tiff", 1645652, 10), + ("tissue_qc_geojson_polygons.json", 100956, 10), + ("tissue_qc_parquet_polygons.parquet", 39384, 10), + ("tissue_qc_segmentation_map_image.tiff", 1645632, 10), ("tissue_segmentation_csv_class_information.csv", 452, 10), - ("tissue_segmentation_geojson_polygons.json", 327625, 10), - ("tissue_segmentation_parquet_polygons.parquet", 117509, 10), - ("tissue_segmentation_segmentation_map_image.tiff", 2858496, 10), - ("cell_classification_geojson_polygons.json", 6117357, 10), - ("cell_classification_parquet_polygons.parquet", 1985592, 10), - ("readout_generation_cell_readouts.csv", 1660865, 10), - ("readout_generation_slide_readouts.csv", 303585, 10), + ("tissue_segmentation_geojson_polygons.json", 396960, 10), + ("tissue_segmentation_parquet_polygons.parquet", 145744, 10), + ("tissue_segmentation_segmentation_map_image.tiff", 3078034, 10), + ("cell_classification_geojson_polygons.json", 6385805, 10), + ("cell_classification_parquet_polygons.parquet", 1998420, 10), + ("readout_generation_cell_readouts.csv", 1654453, 10), + ("readout_generation_slide_readouts.csv", 303708, 10), ] SPOT_0_EXPECTED_CELLS_CLASSIFIED = (39798, 10) SPOT_1_EXPECTED_RESULT_FILES = [ ("tissue_qc_csv_class_information.csv", 290, 10), ("tissue_qc_geojson_polygons.json", 75281, 10), - ("tissue_qc_parquet_polygons.parquet", 29087, 10), + ("tissue_qc_parquet_polygons.parquet", 29075, 10), ("tissue_qc_segmentation_map_image.tiff", 1288632, 10), - ("tissue_segmentation_csv_class_information.csv", 446, 10), - ("tissue_segmentation_geojson_polygons.json", 152301, 10), - ("tissue_segmentation_parquet_polygons.parquet", 56563, 10), - ("tissue_segmentation_segmentation_map_image.tiff", 1783376, 10), - ("cell_classification_geojson_polygons.json", 1726813, 10), - ("cell_classification_parquet_polygons.parquet", 562536, 10), - ("readout_generation_cell_readouts.csv", 464838, 10), - ("readout_generation_slide_readouts.csv", 299361, 10), + ("tissue_segmentation_csv_class_information.csv", 444, 10), + ("tissue_segmentation_geojson_polygons.json", 163318, 10), + ("tissue_segmentation_parquet_polygons.parquet", 60980, 10), + ("tissue_segmentation_segmentation_map_image.tiff", 1806464, 10), + ("cell_classification_geojson_polygons.json", 1727805, 10), + ("cell_classification_parquet_polygons.parquet", 562586, 10), + ("readout_generation_cell_readouts.csv", 465593, 10), + ("readout_generation_slide_readouts.csv", 299708, 10), ] match os.getenv("AIGNOSTICS_PLATFORM_ENVIRONMENT", "production"): From 420de8526b803c0c234d64ecd59c8b1b5d215920 Mon Sep 17 00:00:00 2001 From: Ari Angelo Date: Mon, 3 Aug 2026 10:56:25 +0200 Subject: [PATCH 4/4] Update CONTRIBUTING.md Co-authored-by: Oliver Meyer <42039965+olivermeyer@users.noreply.github.com> --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 34c9f0cf3..350fe0b5c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -130,7 +130,7 @@ One can trigger GitHub Actions workflows locally using commands like so: ```shell BRANCH=$(git rev-parse --abbrev-ref HEAD) -# Hourly (quick smoke) and Daily (thorough) — staging +# Hourly (quick smoke) and Daily (thorough) against staging gh workflow run scheduled-testing-staging-hourly.yml --ref "$BRANCH" -f branch="$BRANCH" gh workflow run scheduled-testing-staging-daily.yml --ref "$BRANCH" -f branch="$BRANCH"