From c3233ce5cd42a5ea4e04552815c274d2631668a2 Mon Sep 17 00:00:00 2001 From: harryswift01 Date: Fri, 25 Sep 2026 09:48:01 +0100 Subject: [PATCH 01/10] ci: build and publish sist for linux-aarch64, osx-64, and osx-arm64 --- .github/workflows/pr.yaml | 8 ++++++-- .github/workflows/regression-tests.yaml | 8 ++++++-- .github/workflows/release.yaml | 8 ++++++-- docs/source/installation.rst | 10 ++++++++++ 4 files changed, 28 insertions(+), 6 deletions(-) diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 106b2f6..a8f46fd 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -12,9 +12,13 @@ concurrency: jobs: regression: - name: Regression - runs-on: ubuntu-24.04 + name: Regression (${{ matrix.os }}) + runs-on: ${{ matrix.os }} timeout-minutes: 30 + strategy: + fail-fast: false + matrix: + os: [ubuntu-24.04, ubuntu-24.04-arm, macos-13, macos-14] steps: - name: Checkout diff --git a/.github/workflows/regression-tests.yaml b/.github/workflows/regression-tests.yaml index d046ca2..b6f5eef 100644 --- a/.github/workflows/regression-tests.yaml +++ b/.github/workflows/regression-tests.yaml @@ -17,9 +17,13 @@ concurrency: jobs: regression: - name: SIST Regression - runs-on: ubuntu-24.04 + name: SIST Regression (${{ matrix.os }}) + runs-on: ${{ matrix.os }} timeout-minutes: 30 + strategy: + fail-fast: false + matrix: + os: [ubuntu-24.04, ubuntu-24.04-arm, macos-13, macos-14] steps: - name: Checkout diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index bf09da2..11b44ec 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -206,9 +206,13 @@ jobs: --data-urlencode "content=${CONTENT}" conda: - name: publish conda to anaconda.org + name: publish conda to anaconda.org (${{ matrix.os }}) needs: [tag, release] - runs-on: ubuntu-24.04 + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-24.04, ubuntu-24.04-arm, macos-13, macos-14] steps: - name: Checkout diff --git a/docs/source/installation.rst b/docs/source/installation.rst index c013cec..0eee5ff 100644 --- a/docs/source/installation.rst +++ b/docs/source/installation.rst @@ -1,6 +1,16 @@ Installation ============ +Supported platforms +-------------------- + +SIST's Conda package is built and tested on: + +* ``linux-64`` +* ``linux-aarch64`` +* ``osx-64`` +* ``osx-arm64`` + Conda ----- From 288164c4f12fc75df5947942366bfa13973578dd Mon Sep 17 00:00:00 2001 From: harryswift01 Date: Fri, 25 Sep 2026 09:56:07 +0100 Subject: [PATCH 02/10] ci: bump all runners to the latest ubuntu/macos images --- .github/workflows/pr.yaml | 4 ++-- .github/workflows/regression-tests.yaml | 2 +- .github/workflows/release.yaml | 10 +++++----- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index a8f46fd..6d93513 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -18,7 +18,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-24.04, ubuntu-24.04-arm, macos-13, macos-14] + os: [ubuntu-26.04, ubuntu-26.04-arm, macos-26-intel, macos-26] steps: - name: Checkout @@ -53,7 +53,7 @@ jobs: docs: name: Docs - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 timeout-minutes: 20 steps: diff --git a/.github/workflows/regression-tests.yaml b/.github/workflows/regression-tests.yaml index b6f5eef..36a92b7 100644 --- a/.github/workflows/regression-tests.yaml +++ b/.github/workflows/regression-tests.yaml @@ -23,7 +23,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-24.04, ubuntu-24.04-arm, macos-13, macos-14] + os: [ubuntu-26.04, ubuntu-26.04-arm, macos-26-intel, macos-26] steps: - name: Checkout diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 11b44ec..9f315c6 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -14,7 +14,7 @@ permissions: jobs: checks: name: Version check - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: - name: Checkout repository id: repo @@ -56,7 +56,7 @@ jobs: version: name: prepare ${{ github.event.inputs.version }} needs: checks - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: - name: checkout @@ -141,7 +141,7 @@ jobs: tag: name: tag release needs: version - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: - name: Checkout repository uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 @@ -158,7 +158,7 @@ jobs: release: name: make github release needs: tag - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: - name: create release @@ -212,7 +212,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-24.04, ubuntu-24.04-arm, macos-13, macos-14] + os: [ubuntu-26.04, ubuntu-26.04-arm, macos-26-intel, macos-26] steps: - name: Checkout From b823926459808bf8ac852eca7de4de1fa8ba9021 Mon Sep 17 00:00:00 2001 From: harryswift01 Date: Fri, 25 Sep 2026 14:14:43 +0100 Subject: [PATCH 03/10] fix(sist): bound the irf subprocess call with a timeout to avoid indefinite hangs --- src/sist/ir_finder.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/sist/ir_finder.py b/src/sist/ir_finder.py index 236add7..2251dc0 100644 --- a/src/sist/ir_finder.py +++ b/src/sist/ir_finder.py @@ -45,6 +45,7 @@ class IRFinder: IRF_MAX_LENGTH = 10000 IRF_MAX_LOOP = 100 IRF_MIN_LOOP = 3 + IRF_TIMEOUT_SECONDS = 120 CRUCIFORM_SALT = 0.01 @@ -325,9 +326,11 @@ def _score_reports( str(self.IRF_MAX_LENGTH), str(self.IRF_MAX_LOOP), ], + stdin=subprocess.DEVNULL, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, check=False, + timeout=self.IRF_TIMEOUT_SECONDS, ) report_prefix = ( From ae02ff9f1279c72ad022fe5972f4c3837b13c26d Mon Sep 17 00:00:00 2001 From: harryswift01 Date: Fri, 25 Sep 2026 14:33:34 +0100 Subject: [PATCH 04/10] fix(sist): downgrade ubuntun arm image to `ubuntu-24.04-arm` from `ubuntu-26.04-arm` --- .github/workflows/pr.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 6d93513..11980b8 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -18,7 +18,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-26.04, ubuntu-26.04-arm, macos-26-intel, macos-26] + os: [ubuntu-26.04, ubuntu-24.04-arm, macos-26-intel, macos-26] steps: - name: Checkout From ec4071ef14aa87d4621303df6af48abf66bbafbc Mon Sep 17 00:00:00 2001 From: harryswift01 Date: Fri, 25 Sep 2026 14:45:12 +0100 Subject: [PATCH 05/10] fix(sist): upgrade ubuntu arm image to `ubuntu-26.04-arm` from `ubuntu-24.04-arm` --- .github/workflows/pr.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 11980b8..6d93513 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -18,7 +18,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-26.04, ubuntu-24.04-arm, macos-26-intel, macos-26] + os: [ubuntu-26.04, ubuntu-26.04-arm, macos-26-intel, macos-26] steps: - name: Checkout From c02dfdda19d9591b98c60161198d8e15acac12a8 Mon Sep 17 00:00:00 2001 From: harryswift01 Date: Fri, 25 Sep 2026 14:46:29 +0100 Subject: [PATCH 06/10] fix(sist): unbound the irf subprocess call --- src/sist/ir_finder.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/sist/ir_finder.py b/src/sist/ir_finder.py index 2251dc0..8509d66 100644 --- a/src/sist/ir_finder.py +++ b/src/sist/ir_finder.py @@ -45,7 +45,6 @@ class IRFinder: IRF_MAX_LENGTH = 10000 IRF_MAX_LOOP = 100 IRF_MIN_LOOP = 3 - IRF_TIMEOUT_SECONDS = 120 CRUCIFORM_SALT = 0.01 @@ -330,7 +329,6 @@ def _score_reports( stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, check=False, - timeout=self.IRF_TIMEOUT_SECONDS, ) report_prefix = ( From c57b5e51a18071874d1ab167eaf5a39be8e932cc Mon Sep 17 00:00:00 2001 From: harryswift01 Date: Fri, 25 Sep 2026 14:50:55 +0100 Subject: [PATCH 07/10] fix(workflows): increase `timeout-minutes` within `workflows/pr.yaml` --- .github/workflows/pr.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 6d93513..45f1219 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -14,7 +14,7 @@ jobs: regression: name: Regression (${{ matrix.os }}) runs-on: ${{ matrix.os }} - timeout-minutes: 30 + timeout-minutes: 60 strategy: fail-fast: false matrix: From f95d0d2684db0aee6bddb4b1c1cd92e8bc905d59 Mon Sep 17 00:00:00 2001 From: harryswift01 Date: Fri, 25 Sep 2026 15:16:33 +0100 Subject: [PATCH 08/10] ci(workflows): install conda-build via mamba in regression job --- .github/workflows/pr.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 45f1219..c2c8458 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -24,10 +24,11 @@ jobs: - name: Checkout uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 - - name: Setup Conda + - name: Setup Mamba uses: conda-incubator/setup-miniconda@8ee1f361103df19b6f8c8655fd3967a8ecb162d5 # v4 with: miniforge-variant: Miniforge3 + mamba-version: "*" auto-activate: true activate-environment: base conda-remove-defaults: true @@ -37,7 +38,7 @@ jobs: - name: Install conda-build shell: bash -l {0} run: | - conda install -y \ + mamba install -y \ --override-channels \ -c conda-forge \ conda-build From ba17a2024da3c910f6fca351f7d1fae7ddd90185 Mon Sep 17 00:00:00 2001 From: harryswift01 Date: Fri, 25 Sep 2026 16:03:21 +0100 Subject: [PATCH 09/10] ci(workflows): set miniconda to latest version --- .github/workflows/pr.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index c2c8458..377f57c 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -25,7 +25,7 @@ jobs: uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 - name: Setup Mamba - uses: conda-incubator/setup-miniconda@8ee1f361103df19b6f8c8655fd3967a8ecb162d5 # v4 + uses: conda-incubator/setup-miniconda@v4.1.0 with: miniforge-variant: Miniforge3 mamba-version: "*" From 84235e224ad20e0676d38e79beba4c456c20019f Mon Sep 17 00:00:00 2001 From: harryswift01 Date: Fri, 25 Sep 2026 16:58:34 +0100 Subject: [PATCH 10/10] ci(workflows): drop support for `ubuntu-26.04-arm` due to bug within IRF package --- .github/workflows/pr.yaml | 2 +- .github/workflows/regression-tests.yaml | 2 +- .github/workflows/release.yaml | 2 +- docs/source/installation.rst | 1 - 4 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 377f57c..1bc9ced 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -18,7 +18,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-26.04, ubuntu-26.04-arm, macos-26-intel, macos-26] + os: [ubuntu-26.04, macos-26-intel, macos-26] steps: - name: Checkout diff --git a/.github/workflows/regression-tests.yaml b/.github/workflows/regression-tests.yaml index 36a92b7..d6d8d90 100644 --- a/.github/workflows/regression-tests.yaml +++ b/.github/workflows/regression-tests.yaml @@ -23,7 +23,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-26.04, ubuntu-26.04-arm, macos-26-intel, macos-26] + os: [ubuntu-26.04, macos-26-intel, macos-26] steps: - name: Checkout diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 9f315c6..3b18f21 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -212,7 +212,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-26.04, ubuntu-26.04-arm, macos-26-intel, macos-26] + os: [ubuntu-26.04, macos-26-intel, macos-26] steps: - name: Checkout diff --git a/docs/source/installation.rst b/docs/source/installation.rst index 8d9dfe8..874b825 100644 --- a/docs/source/installation.rst +++ b/docs/source/installation.rst @@ -7,7 +7,6 @@ Supported platforms SIST's Conda package is built and tested on: * ``linux-64`` -* ``linux-aarch64`` * ``osx-64`` * ``osx-arm64``