Skip to content

chore: Prep branch for HETA 1.3.0 release#671

Merged
olivermeyer merged 1 commit into
mainfrom
chore/he-tme-version-bump
Jun 9, 2026
Merged

chore: Prep branch for HETA 1.3.0 release#671
olivermeyer merged 1 commit into
mainfrom
chore/he-tme-version-bump

Conversation

@ari-nz

@ari-nz ari-nz commented Jun 8, 2026

Copy link
Copy Markdown
Collaborator

No description provided.

Copilot AI review requested due to automatic review settings June 8, 2026 15:41
@ari-nz ari-nz requested a review from a team as a code owner June 8, 2026 15:41
@sonarqubecloud

sonarqubecloud Bot commented Jun 8, 2026

Copy link
Copy Markdown

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Prepares the test suite constants for an upcoming HETA (he-tme) 1.3.0 cycle by updating which application version tests target in staging and by normalizing the ordering of expected output artifact metadata used by E2E tests.

Changes:

  • Reordered SPOT_0_EXPECTED_RESULT_FILES / SPOT_1_EXPECTED_RESULT_FILES entries (no content changes, ordering only).
  • Updated the staging HETA_APPLICATION_VERSION constant to 1.3.0-rc.1.

Comment thread tests/constants_test.py
Comment on lines 124 to 128
TEST_APPLICATION_VERSION = "1.0.0"

HETA_APPLICATION_ID = "he-tme"
HETA_APPLICATION_VERSION = "1.2.0"
HETA_APPLICATION_VERSION = "1.3.0-rc.1"
TEST_APPLICATION_VERSION_USE_LATEST_FALLBACK_SKIP = True
@codecov

codecov Bot commented Jun 8, 2026

Copy link
Copy Markdown

❌ 3 Tests Failed:

Tests completed Failed Passed Skipped
875 3 872 19
View the top 2 failed test(s) by shortest run time
tests.aignostics.application.cli_test::test_cli_application_dump_schemata
Stack Traces | 0.825s run time
runner = <typer.testing.CliRunner object at 0x7f550089e8b0>
tmp_path = PosixPath('.../pytest-18/popen-gw0/test_cli_application_dump_sche0')
record_property = <function record_property.<locals>.append_property at 0x7f5500159d20>

    @pytest.mark.e2e
    @pytest.mark.timeout(timeout=60)
    def test_cli_application_dump_schemata(runner: CliRunner, tmp_path: Path, record_property) -> None:
        """Check application dump schemata works as expected."""
        record_property("tested-item-id", "SPEC-APPLICATION-SERVICE")
        result = runner.invoke(
            cli,
            [
                "application",
                "dump-schemata",
                HETA_APPLICATION_ID,
                "--application-version",
                HETA_APPLICATION_VERSION,
                "--destination",
                str(tmp_path),
                "--zip",
            ],
        )
>       assert result.exit_code == 0
E       assert 1 == 0
E        +  where 1 = <Result SystemExit(1)>.exit_code

.../aignostics/application/cli_test.py:240: AssertionError
tests.aignostics.application.gui_test::test_gui_cli_submit_to_run_result_delete
Stack Traces | 5.51s run time
user = <nicegui.testing.user.User object at 0x7f4bfb608050>
runner = <typer.testing.CliRunner object at 0x7f4bf98c1450>
silent_logging = None
record_property = <function record_property.<locals>.append_property at 0x7f4c18499fe0>

    @pytest.mark.e2e
    @pytest.mark.long_running
    @pytest.mark.flaky(retries=2, delay=5, only_on=[AssertionError])
    @pytest.mark.timeout(timeout=60 * 5)
    @pytest.mark.sequential
    async def test_gui_cli_submit_to_run_result_delete(
        user: User,
        runner: CliRunner,
        silent_logging: None,
        record_property,
    ) -> None:
        """Test that the user can submit a run via the CLI up to deleting the run results."""
        record_property("tested-item-id", "SPEC-APPLICATION-SERVICE, SPEC-GUI-SERVICE")
    
        with tempfile.TemporaryDirectory() as tmpdir:
            tmp_path = Path(tmpdir)
            application = Service().application(HETA_APPLICATION_ID)
    
            # Submit run
            csv_content = (
                "external_id;checksum_base64_crc32c;resolution_mpp;width_px;height_px;staining_method;tissue;disease;"
            )
            csv_content += "platform_bucket_url\n"
            csv_content += ";5onqtA==;0.26268186053789266;7447;7196;H&E;LUNG;LUNG_CANCER;gs:.../bucket/test"
            csv_path = tmp_path / "dummy.csv"
            csv_path.write_text(csv_content)
            result = await to_thread(
                runner.invoke,
                cli,
                [
                    "application",
                    "run",
                    "submit",
                    HETA_APPLICATION_ID,
                    str(csv_path),
                    "--application-version",
                    HETA_APPLICATION_VERSION,
                    "--note",
                    "test_gui_cli_submit_to_run_result_delete",
                    "--tags",
                    "test_gui_cli_submit_to_run_result_delete",
                    "--deadline",
                    (datetime.now(tz=UTC) + timedelta(minutes=5)).isoformat(),
                    "--gpu-type",
                    PIPELINE_GPU_TYPE,
                ],
            )
>           assert result.exit_code == 0
E           assert 1 == 0
E            +  where 1 = <Result SystemExit(1)>.exit_code

.../aignostics/application/gui_test.py:130: AssertionError
View the full list of 1 ❄️ flaky test(s)
tests.aignostics.application.cli_test::test_cli_application_list_verbose

Flake rate in main: 8.82% (Passed 31 times, Failed 3 times)

Stack Traces | 1.42s run time
runner = <typer.testing.CliRunner object at 0x7f55009e68b0>
record_property = <function record_property.<locals>.append_property at 0x7f55008483b0>

    @pytest.mark.e2e
    @pytest.mark.scheduled
    @pytest.mark.timeout(timeout=60)
    def test_cli_application_list_verbose(runner: CliRunner, record_property) -> None:
        """Check application list command runs successfully."""
        record_property("tested-item-id", "SPEC-APPLICATION-SERVICE")
        result = runner.invoke(cli, ["application", "list", "--verbose"])
        assert result.exit_code == 0
        assert HETA_APPLICATION_ID in normalize_output(result.output)
>       assert HETA_APPLICATION_VERSION in normalize_output(result.output)
E       assert '1.3.0-rc.1' in 'Available Applications:================================================================================Application ID: he-tmeName: Atlas H&E-TMERegulatory Classes: Available Versions:  - 1.2.0 (2026-05-08 19:02:28.875257+00:00)    Changelog: ## HETA Changelog - Version 1.2.0*Release Date: May 2026*### Features* Added support for `.mrxs` (Mirax) image files* Exposed GeoParquet outputs as user-facing artifacts* Added prostate, pancreatic, and stomach cancer types* Annotated and cleaned up pipeline components### Fixes* Fixed cell assignment in gaps between tissue regions for cell-to-cell statistics* Computed tissue areas from polygons; removed the "No Tissue" category* Fixed rare crash during processing cluster startup when nodes are replaced* Fixed Python dependency and compatibility issues* Fixed security dependency pins and regenerated lock files### Support* Dedicated support channel: <support@aignostics.com>* Extensive documentation available at platform.aignostics.com    Artifacts: 1 input(s), 14 output(s)  - 1.1.1 (2026-04-27 21:24:17.093125+00:00)    Changelog: ## HETA Changelog - Version 1.1.1*Release Date: April 2026*### Bug Fixes & Improvements* Fixed incorrect content ty...tailed Readouts that quantify the analysis results.    This internal variant supports application-specific configuration via ``custom_metadata.application.he-tme-internal``.--------------------------------------------------------------------------------Application ID: test-appName: Test ApplicationRegulatory Classes: demo, RuOAvailable Versions:  - 1.0.0 (2026-04-27 20:44:52.814231+00:00)    Changelog: Release test-app v1.0.0    Artifacts: 1 input(s), 6 output(s)  - 0.99.0 (2025-11-24 16:15:50.072582+00:00)    Changelog:     Artifacts: 2 input(s), 6 output(s)  - 0.0.6 (2025-11-14 17:29:33.275163+00:00)    Changelog: test-app changes that align internal services    Artifacts: 1 input(s), 6 output(s)Description:  This is the test application with two algorithms: TissueQc and Tissue Segmentation--------------------------------------------------------------------------------Application ID: validation-appName: validation-appRegulatory Classes: Available Versions:  - 0.1.0 (2026-01-19 12:38:16.573922+00:00)    Changelog:      Artifacts: 1 input(s), 2 output(s)Description:  This is the validation application--------------------------------------------------------------------------------'
E        +  where 'Available Applications:================================================================================Application ID: he-tmeName: Atlas H&E-TMERegulatory Classes: Available Versions:  - 1.2.0 (2026-05-08 19:02:28.875257+00:00)    Changelog: ## HETA Changelog - Version 1.2.0*Release Date: May 2026*### Features* Added support for `.mrxs` (Mirax) image files* Exposed GeoParquet outputs as user-facing artifacts* Added prostate, pancreatic, and stomach cancer types* Annotated and cleaned up pipeline components### Fixes* Fixed cell assignment in gaps between tissue regions for cell-to-cell statistics* Computed tissue areas from polygons; removed the "No Tissue" category* Fixed rare crash during processing cluster startup when nodes are replaced* Fixed Python dependency and compatibility issues* Fixed security dependency pins and regenerated lock files### Support* Dedicated support channel: <support@aignostics.com>* Extensive documentation available at platform.aignostics.com    Artifacts: 1 input(s), 14 output(s)  - 1.1.1 (2026-04-27 21:24:17.093125+00:00)    Changelog: ## HETA Changelog - Version 1.1.1*Release Date: April 2026*### Bug Fixes & Improvements* Fixed incorrect content ty...tailed Readouts that quantify the analysis results.    This internal variant supports application-specific configuration via ``custom_metadata.application.he-tme-internal``.--------------------------------------------------------------------------------Application ID: test-appName: Test ApplicationRegulatory Classes: demo, RuOAvailable Versions:  - 1.0.0 (2026-04-27 20:44:52.814231+00:00)    Changelog: Release test-app v1.0.0    Artifacts: 1 input(s), 6 output(s)  - 0.99.0 (2025-11-24 16:15:50.072582+00:00)    Changelog:     Artifacts: 2 input(s), 6 output(s)  - 0.0.6 (2025-11-14 17:29:33.275163+00:00)    Changelog: test-app changes that align internal services    Artifacts: 1 input(s), 6 output(s)Description:  This is the test application with two algorithms: TissueQc and Tissue Segmentation--------------------------------------------------------------------------------Application ID: validation-appName: validation-appRegulatory Classes: Available Versions:  - 0.1.0 (2026-01-19 12:38:16.573922+00:00)    Changelog:      Artifacts: 1 input(s), 2 output(s)Description:  This is the validation application--------------------------------------------------------------------------------' = normalize_output('Available Applications:\n================================================================================\nApplication ID: he-tme\nName: Atlas H&E-TME\nRegulatory Classes: \nAvailable Versions:\n  - 1.2.0 (2026-05-08 19:02:28.875257+00:00)\n    Changelog: ## HETA Changelog - Version 1.2.0\n*Release Date: May 2026*\n\n### Features\n\n* Added support for `.mrxs` (Mirax) image files\n* Exposed GeoParquet outputs as user-facing artifacts\n* Added prostate, pancreatic, and stomach cancer types\n* Annotated and cleaned up pipeline components\n\n### Fixes\n\n* Fixed cell assignment in gaps between tissue regions for cell-to-cell statistics\n* Computed tissue areas from polygons; removed the "No Tissue" category\n* Fixed rare crash during processing cluster startup when nodes are replaced\n* Fixed Python dependency and compatibility issues\n* Fixed security dependency pins and regenerated lock files\n\n### Support\n\n* Dedicated support channel: <support@aignostics.com>\n* Extensive documentation available at platform.aignostics.com\n    Artifacts: 1 input(s), 14 output(s)\n  - 1.1.1 (2026-04-27 21:24:17.093125+00:00)\n    Changelog: ## HETA Changelog - Version 1.1.1\n*Release Date: Apr...his internal variant supports application-specific configuration via ``custom_metadata.application.he-tme-internal``.\n--------------------------------------------------------------------------------\nApplication ID: test-app\nName: Test Application\nRegulatory Classes: demo, RuO\nAvailable Versions:\n  - 1.0.0 (2026-04-27 20:44:52.814231+00:00)\n    Changelog: Release test-app v1.0.0\n    Artifacts: 1 input(s), 6 output(s)\n  - 0.99.0 (2025-11-24 16:15:50.072582+00:00)\n    Changelog: \n    Artifacts: 2 input(s), 6 output(s)\n  - 0.0.6 (2025-11-14 17:29:33.275163+00:00)\n    Changelog: test-app changes that align internal services\n    Artifacts: 1 input(s), 6 output(s)\nDescription:\n  This is the test application with two algorithms: TissueQc and Tissue Segmentation\n--------------------------------------------------------------------------------\nApplication ID: validation-app\nName: validation-app\nRegulatory Classes: \nAvailable Versions:\n  - 0.1.0 (2026-01-19 12:38:16.573922+00:00)\n    Changelog:  \n    Artifacts: 1 input(s), 2 output(s)\nDescription:\n  This is the validation application\n--------------------------------------------------------------------------------\n')
E        +    where 'Available Applications:\n================================================================================\nApplication ID: he-tme\nName: Atlas H&E-TME\nRegulatory Classes: \nAvailable Versions:\n  - 1.2.0 (2026-05-08 19:02:28.875257+00:00)\n    Changelog: ## HETA Changelog - Version 1.2.0\n*Release Date: May 2026*\n\n### Features\n\n* Added support for `.mrxs` (Mirax) image files\n* Exposed GeoParquet outputs as user-facing artifacts\n* Added prostate, pancreatic, and stomach cancer types\n* Annotated and cleaned up pipeline components\n\n### Fixes\n\n* Fixed cell assignment in gaps between tissue regions for cell-to-cell statistics\n* Computed tissue areas from polygons; removed the "No Tissue" category\n* Fixed rare crash during processing cluster startup when nodes are replaced\n* Fixed Python dependency and compatibility issues\n* Fixed security dependency pins and regenerated lock files\n\n### Support\n\n* Dedicated support channel: <support@aignostics.com>\n* Extensive documentation available at platform.aignostics.com\n    Artifacts: 1 input(s), 14 output(s)\n  - 1.1.1 (2026-04-27 21:24:17.093125+00:00)\n    Changelog: ## HETA Changelog - Version 1.1.1\n*Release Date: Apr...his internal variant supports application-specific configuration via ``custom_metadata.application.he-tme-internal``.\n--------------------------------------------------------------------------------\nApplication ID: test-app\nName: Test Application\nRegulatory Classes: demo, RuO\nAvailable Versions:\n  - 1.0.0 (2026-04-27 20:44:52.814231+00:00)\n    Changelog: Release test-app v1.0.0\n    Artifacts: 1 input(s), 6 output(s)\n  - 0.99.0 (2025-11-24 16:15:50.072582+00:00)\n    Changelog: \n    Artifacts: 2 input(s), 6 output(s)\n  - 0.0.6 (2025-11-14 17:29:33.275163+00:00)\n    Changelog: test-app changes that align internal services\n    Artifacts: 1 input(s), 6 output(s)\nDescription:\n  This is the test application with two algorithms: TissueQc and Tissue Segmentation\n--------------------------------------------------------------------------------\nApplication ID: validation-app\nName: validation-app\nRegulatory Classes: \nAvailable Versions:\n  - 0.1.0 (2026-01-19 12:38:16.573922+00:00)\n    Changelog:  \n    Artifacts: 1 input(s), 2 output(s)\nDescription:\n  This is the validation application\n--------------------------------------------------------------------------------\n' = <Result okay>.output

.../aignostics/application/cli_test.py:188: AssertionError

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

@olivermeyer olivermeyer merged commit a8ca3e1 into main Jun 9, 2026
46 of 63 checks passed
@olivermeyer olivermeyer deleted the chore/he-tme-version-bump branch June 9, 2026 08:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants