From 49155c3377164fbc2c17a40f7e53ac77a8535927 Mon Sep 17 00:00:00 2001 From: Lukas Burgholzer Date: Tue, 8 Sep 2026 16:11:34 +0000 Subject: [PATCH 1/9] =?UTF-8?q?=E2=9A=A1=20Cache=20wheel=20builds=20and=20?= =?UTF-8?q?select=20optimized=20MLIR?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Assisted-by: GPT-6 via Codex --- .github/workflows/reusable-cpp-coverage.yml | 7 +++++- .github/workflows/reusable-cpp-linter.yml | 7 +++++- .../workflows/reusable-cpp-tests-macos.yml | 7 +++++- .../workflows/reusable-cpp-tests-ubuntu.yml | 7 +++++- .../workflows/reusable-cpp-tests-windows.yml | 7 +++++- .github/workflows/reusable-python-linter.yml | 7 +++++- ...le-python-packaging-wheel-cibuildwheel.yml | 22 ++++++++++++++----- .github/workflows/reusable-python-tests.yml | 7 +++++- .../reusable-qiskit-upstream-tests.yml | 7 +++++- 9 files changed, 65 insertions(+), 13 deletions(-) diff --git a/.github/workflows/reusable-cpp-coverage.yml b/.github/workflows/reusable-cpp-coverage.yml index 1a7456a..05eeb4b 100644 --- a/.github/workflows/reusable-cpp-coverage.yml +++ b/.github/workflows/reusable-cpp-coverage.yml @@ -22,6 +22,10 @@ on: description: "Whether to set up MLIR" default: false type: boolean + mlir-assertions: + description: "Whether the MLIR SDK should retain assertions" + default: true + type: boolean llvm-version: description: "The LLVM version to set up (formatted as 'major.minor.patch') or commit hash (minimum 7 characters, e.g., 'a832a52')" default: "21.1.8" @@ -72,9 +76,10 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@3f32263ce571a8b745068980f30f188b6e800763 # v1.4.2 + uses: munich-quantum-software/setup-mlir@ed5b604a5540aad8dd5deb19f50745cced8a43e4 with: llvm-version: ${{ inputs.llvm-version }} + assertions: ${{ inputs.mlir-assertions }} - name: Set up sccache if: ${{ inputs.use-sccache-gha }} diff --git a/.github/workflows/reusable-cpp-linter.yml b/.github/workflows/reusable-cpp-linter.yml index cb78826..5920ea4 100644 --- a/.github/workflows/reusable-cpp-linter.yml +++ b/.github/workflows/reusable-cpp-linter.yml @@ -58,6 +58,10 @@ on: description: "Whether to set up MLIR" default: false type: boolean + mlir-assertions: + description: "Whether the MLIR SDK should retain assertions" + default: true + type: boolean llvm-version: description: "The LLVM version to set up (formatted as 'major.minor.patch') or commit hash (minimum 7 characters like 'a832a52')" default: "21.1.8" @@ -102,9 +106,10 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@3f32263ce571a8b745068980f30f188b6e800763 # v1.4.2 + uses: munich-quantum-software/setup-mlir@ed5b604a5540aad8dd5deb19f50745cced8a43e4 with: llvm-version: ${{ inputs.llvm-version }} + assertions: ${{ inputs.mlir-assertions }} - name: Set up sccache if: ${{ inputs.build-project && inputs.use-sccache-gha }} diff --git a/.github/workflows/reusable-cpp-tests-macos.yml b/.github/workflows/reusable-cpp-tests-macos.yml index faf92a4..8487d7c 100644 --- a/.github/workflows/reusable-cpp-tests-macos.yml +++ b/.github/workflows/reusable-cpp-tests-macos.yml @@ -41,6 +41,10 @@ on: description: "Whether to set up MLIR" default: false type: boolean + mlir-assertions: + description: "Whether the MLIR SDK should retain assertions" + default: true + type: boolean llvm-version: description: "The LLVM version to set up (formatted as 'major.minor.patch') or commit hash (minimum 7 characters, e.g., 'a832a52')" default: "21.1.8" @@ -93,9 +97,10 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@3f32263ce571a8b745068980f30f188b6e800763 # v1.4.2 + uses: munich-quantum-software/setup-mlir@ed5b604a5540aad8dd5deb19f50745cced8a43e4 with: llvm-version: ${{ inputs.llvm-version }} + assertions: ${{ inputs.mlir-assertions }} - name: Install the latest version of uv uses: astral-sh/setup-uv@bec219d24cd3e171d82865faccec33120bb574f4 # v10.1.0 diff --git a/.github/workflows/reusable-cpp-tests-ubuntu.yml b/.github/workflows/reusable-cpp-tests-ubuntu.yml index 7748d1f..caba3ae 100644 --- a/.github/workflows/reusable-cpp-tests-ubuntu.yml +++ b/.github/workflows/reusable-cpp-tests-ubuntu.yml @@ -41,6 +41,10 @@ on: description: "Whether to set up MLIR" default: false type: boolean + mlir-assertions: + description: "Whether the MLIR SDK should retain assertions" + default: true + type: boolean llvm-version: description: "The LLVM version to set up (formatted as 'major.minor.patch') or commit hash (minimum 7 characters, e.g., 'a832a52')" default: "21.1.8" @@ -93,9 +97,10 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@3f32263ce571a8b745068980f30f188b6e800763 # v1.4.2 + uses: munich-quantum-software/setup-mlir@ed5b604a5540aad8dd5deb19f50745cced8a43e4 with: llvm-version: ${{ inputs.llvm-version }} + assertions: ${{ inputs.mlir-assertions }} - name: Set up mold as linker uses: rui314/setup-mold@7e4f20ad28a2e8ca6fd0892ccf72e2abb706b9c3 # v1 diff --git a/.github/workflows/reusable-cpp-tests-windows.yml b/.github/workflows/reusable-cpp-tests-windows.yml index 1d6923e..c15e668 100644 --- a/.github/workflows/reusable-cpp-tests-windows.yml +++ b/.github/workflows/reusable-cpp-tests-windows.yml @@ -39,6 +39,10 @@ on: description: "Whether to set up MLIR" default: false type: boolean + mlir-assertions: + description: "Whether the MLIR SDK should retain assertions" + default: true + type: boolean llvm-version: description: "The LLVM version to set up (formatted as 'major.minor.patch') or commit hash (minimum 7 characters, e.g., 'a832a52')" default: "21.1.8" @@ -168,9 +172,10 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@3f32263ce571a8b745068980f30f188b6e800763 # v1.4.2 + uses: munich-quantum-software/setup-mlir@ed5b604a5540aad8dd5deb19f50745cced8a43e4 with: llvm-version: ${{ inputs.llvm-version }} + assertions: ${{ inputs.mlir-assertions }} debug: ${{ inputs.mlir-debug }} - name: Install the latest version of uv diff --git a/.github/workflows/reusable-python-linter.yml b/.github/workflows/reusable-python-linter.yml index af90b53..6677893 100644 --- a/.github/workflows/reusable-python-linter.yml +++ b/.github/workflows/reusable-python-linter.yml @@ -30,6 +30,10 @@ on: description: "Whether to set up MLIR" default: false type: boolean + mlir-assertions: + description: "Whether the MLIR SDK should retain assertions" + default: true + type: boolean llvm-version: description: "The LLVM version to set up (formatted as 'major.minor.patch') or commit hash (minimum 7 characters, e.g., 'a832a52')" default: "21.1.8" @@ -77,9 +81,10 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@3f32263ce571a8b745068980f30f188b6e800763 # v1.4.2 + uses: munich-quantum-software/setup-mlir@ed5b604a5540aad8dd5deb19f50745cced8a43e4 with: llvm-version: ${{ inputs.llvm-version }} + assertions: ${{ inputs.mlir-assertions }} - name: Install the latest version of uv uses: astral-sh/setup-uv@bec219d24cd3e171d82865faccec33120bb574f4 # v10.1.0 diff --git a/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml b/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml index da3583f..f9b2907 100644 --- a/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml +++ b/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml @@ -15,6 +15,10 @@ on: description: "The runner image to test on" default: "ubuntu-24.04" type: string + use-sccache-gha: + description: "Whether to use sccache with the GitHub Actions cache backend" + default: true + type: boolean setup-z3: description: "Whether to set up Z3" default: false @@ -27,6 +31,10 @@ on: description: "Whether to set up MLIR" default: false type: boolean + mlir-assertions: + description: "Whether the MLIR SDK should retain assertions" + default: true + type: boolean llvm-version: description: "The LLVM version to set up (formatted as 'major.minor.patch') or commit hash (minimum 7 characters, e.g., 'a832a52')" default: "21.1.8" @@ -54,6 +62,11 @@ jobs: name: 🎡 ${{ inputs.runs-on }} runs-on: ${{ inputs.runs-on }} env: + CMAKE_C_COMPILER_LAUNCHER: sccache + CMAKE_CXX_COMPILER_LAUNCHER: sccache + SCCACHE_GHA_ENABLED: ${{ inputs.use-sccache-gha }} + SCCACHE_IDLE_TIMEOUT: 0 + SCCACHE_GHA_RW_MODE: ${{ github.ref == 'refs/heads/main' && 'READ_WRITE' || 'READ_ONLY' }} IQM_TOKEN: ${{ secrets.IQM_TOKEN }} IQM_QC_ALIAS: ${{ secrets.IQM_QC_ALIAS }} AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }} @@ -74,9 +87,10 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir && !startsWith(inputs.runs-on, 'ubuntu') }} - uses: munich-quantum-software/setup-mlir@3f32263ce571a8b745068980f30f188b6e800763 # v1.4.2 + uses: munich-quantum-software/setup-mlir@ed5b604a5540aad8dd5deb19f50745cced8a43e4 with: llvm-version: ${{ inputs.llvm-version }} + assertions: ${{ inputs.mlir-assertions }} - name: Install the latest version of uv uses: astral-sh/setup-uv@bec219d24cd3e171d82865faccec33120bb574f4 # v10.1.0 @@ -84,10 +98,8 @@ jobs: enable-cache: ${{ !startsWith(inputs.runs-on, 'ubuntu') }} save-cache: ${{ github.ref == 'refs/heads/main' }} - # set up sccache for faster builds (non-Ubuntu only) - - name: Install sccache - if: ${{ !startsWith(inputs.runs-on, 'ubuntu') }} - run: uv tool install sccache + - name: Set up sccache + uses: mozilla-actions/sccache-action@fc920bf0ec8de6ee65d409111f7ec508035751ba # v0.0.11 # run cibuildwheel to build wheels for the specified Python version - uses: pypa/cibuildwheel@e090b81e30c4d855ea63bf4b6e59204c09a101ae # v4.2.1 diff --git a/.github/workflows/reusable-python-tests.yml b/.github/workflows/reusable-python-tests.yml index ba87ac8..b93d883 100644 --- a/.github/workflows/reusable-python-tests.yml +++ b/.github/workflows/reusable-python-tests.yml @@ -34,6 +34,10 @@ on: description: "Whether to set up MLIR" default: false type: boolean + mlir-assertions: + description: "Whether the MLIR SDK should retain assertions" + default: true + type: boolean llvm-version: description: "The LLVM version to set up (formatted as 'major.minor.patch') or commit hash (minimum 7 characters, e.g., 'a832a52')" default: "21.1.8" @@ -183,9 +187,10 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@3f32263ce571a8b745068980f30f188b6e800763 # v1.4.2 + uses: munich-quantum-software/setup-mlir@ed5b604a5540aad8dd5deb19f50745cced8a43e4 with: llvm-version: ${{ inputs.llvm-version }} + assertions: ${{ inputs.mlir-assertions }} - name: Set up mold as linker (Linux only) uses: rui314/setup-mold@7e4f20ad28a2e8ca6fd0892ccf72e2abb706b9c3 # v1 diff --git a/.github/workflows/reusable-qiskit-upstream-tests.yml b/.github/workflows/reusable-qiskit-upstream-tests.yml index e665b53..934e88f 100644 --- a/.github/workflows/reusable-qiskit-upstream-tests.yml +++ b/.github/workflows/reusable-qiskit-upstream-tests.yml @@ -26,6 +26,10 @@ on: description: "Whether to set up MLIR" default: false type: boolean + mlir-assertions: + description: "Whether the MLIR SDK should retain assertions" + default: true + type: boolean llvm-version: description: "The LLVM version to set up (formatted as 'major.minor.patch') or commit hash (minimum 7 characters, e.g., 'a832a52')" default: "21.1.8" @@ -65,9 +69,10 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@3f32263ce571a8b745068980f30f188b6e800763 # v1.4.2 + uses: munich-quantum-software/setup-mlir@ed5b604a5540aad8dd5deb19f50745cced8a43e4 with: llvm-version: ${{ inputs.llvm-version }} + assertions: ${{ inputs.mlir-assertions }} - name: Set up mold as linker uses: rui314/setup-mold@7e4f20ad28a2e8ca6fd0892ccf72e2abb706b9c3 # v1 From d52572c8a2b292bbd33930ac9a20954efbaac894 Mon Sep 17 00:00:00 2001 From: Lukas Burgholzer Date: Tue, 8 Sep 2026 21:17:41 +0000 Subject: [PATCH 2/9] =?UTF-8?q?=F0=9F=91=B7=20Pin=20macOS=20wheel=20compil?= =?UTF-8?q?ers=20for=20SDK=20LTO?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Allow release consumers to select the SDK Xcode version and retain the default runner compiler for other wheel builds. Assisted-by: GPT-6 via Codex --- .github/workflows/reusable-cpp-coverage.yml | 2 +- .github/workflows/reusable-cpp-linter.yml | 2 +- .github/workflows/reusable-cpp-tests-macos.yml | 2 +- .github/workflows/reusable-cpp-tests-ubuntu.yml | 2 +- .github/workflows/reusable-cpp-tests-windows.yml | 2 +- .github/workflows/reusable-python-linter.yml | 2 +- ...usable-python-packaging-wheel-cibuildwheel.yml | 15 ++++++++++++++- .github/workflows/reusable-python-tests.yml | 2 +- .../workflows/reusable-qiskit-upstream-tests.yml | 2 +- 9 files changed, 22 insertions(+), 9 deletions(-) diff --git a/.github/workflows/reusable-cpp-coverage.yml b/.github/workflows/reusable-cpp-coverage.yml index 05eeb4b..7a7d829 100644 --- a/.github/workflows/reusable-cpp-coverage.yml +++ b/.github/workflows/reusable-cpp-coverage.yml @@ -76,7 +76,7 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@ed5b604a5540aad8dd5deb19f50745cced8a43e4 + uses: munich-quantum-software/setup-mlir@dae31adab96bf01540439d2d2f8226464294f2f3 with: llvm-version: ${{ inputs.llvm-version }} assertions: ${{ inputs.mlir-assertions }} diff --git a/.github/workflows/reusable-cpp-linter.yml b/.github/workflows/reusable-cpp-linter.yml index 5920ea4..eac269b 100644 --- a/.github/workflows/reusable-cpp-linter.yml +++ b/.github/workflows/reusable-cpp-linter.yml @@ -106,7 +106,7 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@ed5b604a5540aad8dd5deb19f50745cced8a43e4 + uses: munich-quantum-software/setup-mlir@dae31adab96bf01540439d2d2f8226464294f2f3 with: llvm-version: ${{ inputs.llvm-version }} assertions: ${{ inputs.mlir-assertions }} diff --git a/.github/workflows/reusable-cpp-tests-macos.yml b/.github/workflows/reusable-cpp-tests-macos.yml index 8487d7c..c10d503 100644 --- a/.github/workflows/reusable-cpp-tests-macos.yml +++ b/.github/workflows/reusable-cpp-tests-macos.yml @@ -97,7 +97,7 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@ed5b604a5540aad8dd5deb19f50745cced8a43e4 + uses: munich-quantum-software/setup-mlir@dae31adab96bf01540439d2d2f8226464294f2f3 with: llvm-version: ${{ inputs.llvm-version }} assertions: ${{ inputs.mlir-assertions }} diff --git a/.github/workflows/reusable-cpp-tests-ubuntu.yml b/.github/workflows/reusable-cpp-tests-ubuntu.yml index caba3ae..153d709 100644 --- a/.github/workflows/reusable-cpp-tests-ubuntu.yml +++ b/.github/workflows/reusable-cpp-tests-ubuntu.yml @@ -97,7 +97,7 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@ed5b604a5540aad8dd5deb19f50745cced8a43e4 + uses: munich-quantum-software/setup-mlir@dae31adab96bf01540439d2d2f8226464294f2f3 with: llvm-version: ${{ inputs.llvm-version }} assertions: ${{ inputs.mlir-assertions }} diff --git a/.github/workflows/reusable-cpp-tests-windows.yml b/.github/workflows/reusable-cpp-tests-windows.yml index c15e668..6f5df00 100644 --- a/.github/workflows/reusable-cpp-tests-windows.yml +++ b/.github/workflows/reusable-cpp-tests-windows.yml @@ -172,7 +172,7 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@ed5b604a5540aad8dd5deb19f50745cced8a43e4 + uses: munich-quantum-software/setup-mlir@dae31adab96bf01540439d2d2f8226464294f2f3 with: llvm-version: ${{ inputs.llvm-version }} assertions: ${{ inputs.mlir-assertions }} diff --git a/.github/workflows/reusable-python-linter.yml b/.github/workflows/reusable-python-linter.yml index 6677893..166d940 100644 --- a/.github/workflows/reusable-python-linter.yml +++ b/.github/workflows/reusable-python-linter.yml @@ -81,7 +81,7 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@ed5b604a5540aad8dd5deb19f50745cced8a43e4 + uses: munich-quantum-software/setup-mlir@dae31adab96bf01540439d2d2f8226464294f2f3 with: llvm-version: ${{ inputs.llvm-version }} assertions: ${{ inputs.mlir-assertions }} diff --git a/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml b/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml index f9b2907..ec58fa8 100644 --- a/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml +++ b/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml @@ -35,6 +35,10 @@ on: description: "Whether the MLIR SDK should retain assertions" default: true type: boolean + xcode-version: + description: "Exact Xcode version for macOS wheel builds; empty uses the runner default" + default: "" + type: string llvm-version: description: "The LLVM version to set up (formatted as 'major.minor.patch') or commit hash (minimum 7 characters, e.g., 'a832a52')" default: "21.1.8" @@ -79,6 +83,15 @@ jobs: fetch-depth: 0 persist-credentials: false + - name: Select Xcode + if: ${{ startsWith(inputs.runs-on, 'macos') && inputs.xcode-version != '' }} + env: + XCODE_VERSION: ${{ inputs.xcode-version }} + run: | + developer_dir="/Applications/Xcode_${XCODE_VERSION}.app/Contents/Developer" + test -d "$developer_dir" + echo "DEVELOPER_DIR=$developer_dir" >> "$GITHUB_ENV" + - name: Set up Z3 if: ${{ inputs.setup-z3 && !startsWith(inputs.runs-on, 'ubuntu') }} uses: cda-tum/setup-z3@0401375ea1e34d77ef35bbeb634f6203f3bcde60 # v1.7.3 @@ -87,7 +100,7 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir && !startsWith(inputs.runs-on, 'ubuntu') }} - uses: munich-quantum-software/setup-mlir@ed5b604a5540aad8dd5deb19f50745cced8a43e4 + uses: munich-quantum-software/setup-mlir@dae31adab96bf01540439d2d2f8226464294f2f3 with: llvm-version: ${{ inputs.llvm-version }} assertions: ${{ inputs.mlir-assertions }} diff --git a/.github/workflows/reusable-python-tests.yml b/.github/workflows/reusable-python-tests.yml index b93d883..dee6e92 100644 --- a/.github/workflows/reusable-python-tests.yml +++ b/.github/workflows/reusable-python-tests.yml @@ -187,7 +187,7 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@ed5b604a5540aad8dd5deb19f50745cced8a43e4 + uses: munich-quantum-software/setup-mlir@dae31adab96bf01540439d2d2f8226464294f2f3 with: llvm-version: ${{ inputs.llvm-version }} assertions: ${{ inputs.mlir-assertions }} diff --git a/.github/workflows/reusable-qiskit-upstream-tests.yml b/.github/workflows/reusable-qiskit-upstream-tests.yml index 934e88f..519ccb1 100644 --- a/.github/workflows/reusable-qiskit-upstream-tests.yml +++ b/.github/workflows/reusable-qiskit-upstream-tests.yml @@ -69,7 +69,7 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@ed5b604a5540aad8dd5deb19f50745cced8a43e4 + uses: munich-quantum-software/setup-mlir@dae31adab96bf01540439d2d2f8226464294f2f3 with: llvm-version: ${{ inputs.llvm-version }} assertions: ${{ inputs.mlir-assertions }} From 8309ced8375d0543c0e3aec6c0dbc5f3e2ab4736 Mon Sep 17 00:00:00 2001 From: Lukas Burgholzer Date: Wed, 9 Sep 2026 22:15:00 +0000 Subject: [PATCH 3/9] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20Use=20the=20runner=20d?= =?UTF-8?q?efault=20Xcode=20for=20wheels?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Native SDK archives no longer require exact Xcode selection. Assisted-by: GPT-6 --- ...reusable-python-packaging-wheel-cibuildwheel.yml | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml b/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml index ec58fa8..a1b83c1 100644 --- a/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml +++ b/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml @@ -35,10 +35,6 @@ on: description: "Whether the MLIR SDK should retain assertions" default: true type: boolean - xcode-version: - description: "Exact Xcode version for macOS wheel builds; empty uses the runner default" - default: "" - type: string llvm-version: description: "The LLVM version to set up (formatted as 'major.minor.patch') or commit hash (minimum 7 characters, e.g., 'a832a52')" default: "21.1.8" @@ -83,15 +79,6 @@ jobs: fetch-depth: 0 persist-credentials: false - - name: Select Xcode - if: ${{ startsWith(inputs.runs-on, 'macos') && inputs.xcode-version != '' }} - env: - XCODE_VERSION: ${{ inputs.xcode-version }} - run: | - developer_dir="/Applications/Xcode_${XCODE_VERSION}.app/Contents/Developer" - test -d "$developer_dir" - echo "DEVELOPER_DIR=$developer_dir" >> "$GITHUB_ENV" - - name: Set up Z3 if: ${{ inputs.setup-z3 && !startsWith(inputs.runs-on, 'ubuntu') }} uses: cda-tum/setup-z3@0401375ea1e34d77ef35bbeb634f6203f3bcde60 # v1.7.3 From 6a46548e4c59d120ce0930c766db40db053aa0e2 Mon Sep 17 00:00:00 2001 From: Lukas Burgholzer Date: Sat, 12 Sep 2026 13:47:00 +0000 Subject: [PATCH 4/9] =?UTF-8?q?=F0=9F=91=B7=20Build=20release=20Python=20A?= =?UTF-8?q?BIs=20in=20separate=20jobs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Let release consumers select one ABI without artifact or concurrency collisions, keeping each PGO pipeline within the five-hour job budget. Use the refreshed assertion-selection action with its compatible manifest. Assisted-by: Codex --- .github/workflows/reusable-cpp-coverage.yml | 2 +- .github/workflows/reusable-cpp-linter.yml | 2 +- .../workflows/reusable-cpp-tests-macos.yml | 2 +- .../workflows/reusable-cpp-tests-ubuntu.yml | 2 +- .../workflows/reusable-cpp-tests-windows.yml | 2 +- .github/workflows/reusable-python-linter.yml | 2 +- ...le-python-packaging-wheel-cibuildwheel.yml | 20 +++++++++++++++---- .github/workflows/reusable-python-tests.yml | 2 +- .../reusable-qiskit-upstream-tests.yml | 2 +- 9 files changed, 24 insertions(+), 12 deletions(-) diff --git a/.github/workflows/reusable-cpp-coverage.yml b/.github/workflows/reusable-cpp-coverage.yml index 7a7d829..f9a377a 100644 --- a/.github/workflows/reusable-cpp-coverage.yml +++ b/.github/workflows/reusable-cpp-coverage.yml @@ -76,7 +76,7 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@dae31adab96bf01540439d2d2f8226464294f2f3 + uses: munich-quantum-software/setup-mlir@01969745aad746dc11e47941c35316704158aa6f with: llvm-version: ${{ inputs.llvm-version }} assertions: ${{ inputs.mlir-assertions }} diff --git a/.github/workflows/reusable-cpp-linter.yml b/.github/workflows/reusable-cpp-linter.yml index eac269b..bc2c21b 100644 --- a/.github/workflows/reusable-cpp-linter.yml +++ b/.github/workflows/reusable-cpp-linter.yml @@ -106,7 +106,7 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@dae31adab96bf01540439d2d2f8226464294f2f3 + uses: munich-quantum-software/setup-mlir@01969745aad746dc11e47941c35316704158aa6f with: llvm-version: ${{ inputs.llvm-version }} assertions: ${{ inputs.mlir-assertions }} diff --git a/.github/workflows/reusable-cpp-tests-macos.yml b/.github/workflows/reusable-cpp-tests-macos.yml index c10d503..9ddcf85 100644 --- a/.github/workflows/reusable-cpp-tests-macos.yml +++ b/.github/workflows/reusable-cpp-tests-macos.yml @@ -97,7 +97,7 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@dae31adab96bf01540439d2d2f8226464294f2f3 + uses: munich-quantum-software/setup-mlir@01969745aad746dc11e47941c35316704158aa6f with: llvm-version: ${{ inputs.llvm-version }} assertions: ${{ inputs.mlir-assertions }} diff --git a/.github/workflows/reusable-cpp-tests-ubuntu.yml b/.github/workflows/reusable-cpp-tests-ubuntu.yml index 153d709..3dc11c8 100644 --- a/.github/workflows/reusable-cpp-tests-ubuntu.yml +++ b/.github/workflows/reusable-cpp-tests-ubuntu.yml @@ -97,7 +97,7 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@dae31adab96bf01540439d2d2f8226464294f2f3 + uses: munich-quantum-software/setup-mlir@01969745aad746dc11e47941c35316704158aa6f with: llvm-version: ${{ inputs.llvm-version }} assertions: ${{ inputs.mlir-assertions }} diff --git a/.github/workflows/reusable-cpp-tests-windows.yml b/.github/workflows/reusable-cpp-tests-windows.yml index 6f5df00..4c76ad0 100644 --- a/.github/workflows/reusable-cpp-tests-windows.yml +++ b/.github/workflows/reusable-cpp-tests-windows.yml @@ -172,7 +172,7 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@dae31adab96bf01540439d2d2f8226464294f2f3 + uses: munich-quantum-software/setup-mlir@01969745aad746dc11e47941c35316704158aa6f with: llvm-version: ${{ inputs.llvm-version }} assertions: ${{ inputs.mlir-assertions }} diff --git a/.github/workflows/reusable-python-linter.yml b/.github/workflows/reusable-python-linter.yml index 166d940..9592bfc 100644 --- a/.github/workflows/reusable-python-linter.yml +++ b/.github/workflows/reusable-python-linter.yml @@ -81,7 +81,7 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@dae31adab96bf01540439d2d2f8226464294f2f3 + uses: munich-quantum-software/setup-mlir@01969745aad746dc11e47941c35316704158aa6f with: llvm-version: ${{ inputs.llvm-version }} assertions: ${{ inputs.mlir-assertions }} diff --git a/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml b/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml index a1b83c1..7efa6ea 100644 --- a/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml +++ b/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml @@ -15,6 +15,10 @@ on: description: "The runner image to test on" default: "ubuntu-24.04" type: string + python-abi: + description: "Optional CPython ABI tag to build separately, such as cp311 or cp315t" + default: "" + type: string use-sccache-gha: description: "Whether to use sccache with the GitHub Actions cache backend" default: true @@ -51,7 +55,7 @@ on: required: false concurrency: - group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}-python-packaging-cibw-${{ inputs.runs-on }} + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}-python-packaging-cibw-${{ inputs.runs-on }}-${{ inputs.python-abi }} cancel-in-progress: true permissions: @@ -59,8 +63,9 @@ permissions: jobs: build-wheel: - name: 🎡 ${{ inputs.runs-on }} + name: 🎡 ${{ inputs.runs-on }} ${{ inputs.python-abi }} runs-on: ${{ inputs.runs-on }} + timeout-minutes: 300 env: CMAKE_C_COMPILER_LAUNCHER: sccache CMAKE_CXX_COMPILER_LAUNCHER: sccache @@ -87,7 +92,7 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir && !startsWith(inputs.runs-on, 'ubuntu') }} - uses: munich-quantum-software/setup-mlir@dae31adab96bf01540439d2d2f8226464294f2f3 + uses: munich-quantum-software/setup-mlir@01969745aad746dc11e47941c35316704158aa6f with: llvm-version: ${{ inputs.llvm-version }} assertions: ${{ inputs.mlir-assertions }} @@ -101,6 +106,13 @@ jobs: - name: Set up sccache uses: mozilla-actions/sccache-action@fc920bf0ec8de6ee65d409111f7ec508035751ba # v0.0.11 + - name: Select the requested Python ABI + if: inputs.python-abi != '' + shell: bash + env: + PYTHON_ABI: ${{ inputs.python-abi }} + run: echo "CIBW_BUILD=${PYTHON_ABI}-*" >> "$GITHUB_ENV" + # run cibuildwheel to build wheels for the specified Python version - uses: pypa/cibuildwheel@e090b81e30c4d855ea63bf4b6e59204c09a101ae # v4.2.1 @@ -112,7 +124,7 @@ jobs: - name: Upload wheels uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: - name: ${{ github.event_name == 'pull_request' && 'dev-' || '' }}cibw-wheels-${{ inputs.runs-on }} + name: ${{ github.event_name == 'pull_request' && 'dev-' || '' }}cibw-wheels-${{ inputs.runs-on }}${{ inputs.python-abi && format('-{0}', inputs.python-abi) || '' }} path: wheelhouse/*.whl - name: Show sccache stats diff --git a/.github/workflows/reusable-python-tests.yml b/.github/workflows/reusable-python-tests.yml index dee6e92..03280dc 100644 --- a/.github/workflows/reusable-python-tests.yml +++ b/.github/workflows/reusable-python-tests.yml @@ -187,7 +187,7 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@dae31adab96bf01540439d2d2f8226464294f2f3 + uses: munich-quantum-software/setup-mlir@01969745aad746dc11e47941c35316704158aa6f with: llvm-version: ${{ inputs.llvm-version }} assertions: ${{ inputs.mlir-assertions }} diff --git a/.github/workflows/reusable-qiskit-upstream-tests.yml b/.github/workflows/reusable-qiskit-upstream-tests.yml index 519ccb1..0ea7b0d 100644 --- a/.github/workflows/reusable-qiskit-upstream-tests.yml +++ b/.github/workflows/reusable-qiskit-upstream-tests.yml @@ -69,7 +69,7 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@dae31adab96bf01540439d2d2f8226464294f2f3 + uses: munich-quantum-software/setup-mlir@01969745aad746dc11e47941c35316704158aa6f with: llvm-version: ${{ inputs.llvm-version }} assertions: ${{ inputs.mlir-assertions }} From 98a22f5cc35bcc4b96cfb1e42278928bdaaad3e5 Mon Sep 17 00:00:00 2001 From: Lukas Burgholzer Date: Sat, 12 Sep 2026 13:50:17 +0000 Subject: [PATCH 5/9] =?UTF-8?q?=F0=9F=91=B7=20Document=20unreleased=20setu?= =?UTF-8?q?p=20action=20pins?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Keep the exact dependency commits while setup-mlir PR 255 awaits release. Limit the stale-tag audit exception to those nine pins and remove it when a released action includes assertion selection. Assisted-by: Codex --- .github/workflows/reusable-cpp-coverage.yml | 2 +- .github/workflows/reusable-cpp-linter.yml | 2 +- .github/workflows/reusable-cpp-tests-macos.yml | 2 +- .github/workflows/reusable-cpp-tests-ubuntu.yml | 2 +- .github/workflows/reusable-cpp-tests-windows.yml | 2 +- .github/workflows/reusable-python-linter.yml | 2 +- .../workflows/reusable-python-packaging-wheel-cibuildwheel.yml | 2 +- .github/workflows/reusable-python-tests.yml | 2 +- .github/workflows/reusable-qiskit-upstream-tests.yml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/reusable-cpp-coverage.yml b/.github/workflows/reusable-cpp-coverage.yml index f9a377a..cf1a5a5 100644 --- a/.github/workflows/reusable-cpp-coverage.yml +++ b/.github/workflows/reusable-cpp-coverage.yml @@ -76,7 +76,7 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@01969745aad746dc11e47941c35316704158aa6f + uses: munich-quantum-software/setup-mlir@01969745aad746dc11e47941c35316704158aa6f # zizmor: ignore[stale-action-refs] -- Pin PR #255 until its release. with: llvm-version: ${{ inputs.llvm-version }} assertions: ${{ inputs.mlir-assertions }} diff --git a/.github/workflows/reusable-cpp-linter.yml b/.github/workflows/reusable-cpp-linter.yml index bc2c21b..bbabf6b 100644 --- a/.github/workflows/reusable-cpp-linter.yml +++ b/.github/workflows/reusable-cpp-linter.yml @@ -106,7 +106,7 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@01969745aad746dc11e47941c35316704158aa6f + uses: munich-quantum-software/setup-mlir@01969745aad746dc11e47941c35316704158aa6f # zizmor: ignore[stale-action-refs] -- Pin PR #255 until its release. with: llvm-version: ${{ inputs.llvm-version }} assertions: ${{ inputs.mlir-assertions }} diff --git a/.github/workflows/reusable-cpp-tests-macos.yml b/.github/workflows/reusable-cpp-tests-macos.yml index 9ddcf85..f4b2d6e 100644 --- a/.github/workflows/reusable-cpp-tests-macos.yml +++ b/.github/workflows/reusable-cpp-tests-macos.yml @@ -97,7 +97,7 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@01969745aad746dc11e47941c35316704158aa6f + uses: munich-quantum-software/setup-mlir@01969745aad746dc11e47941c35316704158aa6f # zizmor: ignore[stale-action-refs] -- Pin PR #255 until its release. with: llvm-version: ${{ inputs.llvm-version }} assertions: ${{ inputs.mlir-assertions }} diff --git a/.github/workflows/reusable-cpp-tests-ubuntu.yml b/.github/workflows/reusable-cpp-tests-ubuntu.yml index 3dc11c8..ba39276 100644 --- a/.github/workflows/reusable-cpp-tests-ubuntu.yml +++ b/.github/workflows/reusable-cpp-tests-ubuntu.yml @@ -97,7 +97,7 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@01969745aad746dc11e47941c35316704158aa6f + uses: munich-quantum-software/setup-mlir@01969745aad746dc11e47941c35316704158aa6f # zizmor: ignore[stale-action-refs] -- Pin PR #255 until its release. with: llvm-version: ${{ inputs.llvm-version }} assertions: ${{ inputs.mlir-assertions }} diff --git a/.github/workflows/reusable-cpp-tests-windows.yml b/.github/workflows/reusable-cpp-tests-windows.yml index 4c76ad0..e486bf7 100644 --- a/.github/workflows/reusable-cpp-tests-windows.yml +++ b/.github/workflows/reusable-cpp-tests-windows.yml @@ -172,7 +172,7 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@01969745aad746dc11e47941c35316704158aa6f + uses: munich-quantum-software/setup-mlir@01969745aad746dc11e47941c35316704158aa6f # zizmor: ignore[stale-action-refs] -- Pin PR #255 until its release. with: llvm-version: ${{ inputs.llvm-version }} assertions: ${{ inputs.mlir-assertions }} diff --git a/.github/workflows/reusable-python-linter.yml b/.github/workflows/reusable-python-linter.yml index 9592bfc..f52dab1 100644 --- a/.github/workflows/reusable-python-linter.yml +++ b/.github/workflows/reusable-python-linter.yml @@ -81,7 +81,7 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@01969745aad746dc11e47941c35316704158aa6f + uses: munich-quantum-software/setup-mlir@01969745aad746dc11e47941c35316704158aa6f # zizmor: ignore[stale-action-refs] -- Pin PR #255 until its release. with: llvm-version: ${{ inputs.llvm-version }} assertions: ${{ inputs.mlir-assertions }} diff --git a/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml b/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml index 7efa6ea..dac9f13 100644 --- a/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml +++ b/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml @@ -92,7 +92,7 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir && !startsWith(inputs.runs-on, 'ubuntu') }} - uses: munich-quantum-software/setup-mlir@01969745aad746dc11e47941c35316704158aa6f + uses: munich-quantum-software/setup-mlir@01969745aad746dc11e47941c35316704158aa6f # zizmor: ignore[stale-action-refs] -- Pin PR #255 until its release. with: llvm-version: ${{ inputs.llvm-version }} assertions: ${{ inputs.mlir-assertions }} diff --git a/.github/workflows/reusable-python-tests.yml b/.github/workflows/reusable-python-tests.yml index 03280dc..52324f1 100644 --- a/.github/workflows/reusable-python-tests.yml +++ b/.github/workflows/reusable-python-tests.yml @@ -187,7 +187,7 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@01969745aad746dc11e47941c35316704158aa6f + uses: munich-quantum-software/setup-mlir@01969745aad746dc11e47941c35316704158aa6f # zizmor: ignore[stale-action-refs] -- Pin PR #255 until its release. with: llvm-version: ${{ inputs.llvm-version }} assertions: ${{ inputs.mlir-assertions }} diff --git a/.github/workflows/reusable-qiskit-upstream-tests.yml b/.github/workflows/reusable-qiskit-upstream-tests.yml index 0ea7b0d..96cfd63 100644 --- a/.github/workflows/reusable-qiskit-upstream-tests.yml +++ b/.github/workflows/reusable-qiskit-upstream-tests.yml @@ -69,7 +69,7 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@01969745aad746dc11e47941c35316704158aa6f + uses: munich-quantum-software/setup-mlir@01969745aad746dc11e47941c35316704158aa6f # zizmor: ignore[stale-action-refs] -- Pin PR #255 until its release. with: llvm-version: ${{ inputs.llvm-version }} assertions: ${{ inputs.mlir-assertions }} From 492d270098d8194e0ef22863312e140489c54741 Mon Sep 17 00:00:00 2001 From: Lukas Burgholzer Date: Sun, 13 Sep 2026 01:36:59 +0000 Subject: [PATCH 6/9] =?UTF-8?q?=F0=9F=94=92=20Pass=20wheel=20ABI=20through?= =?UTF-8?q?=20the=20step=20environment?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Keep the project selectors when no ABI is requested. A direct environment value avoids writing caller-controlled text to GITHUB_ENV. Assisted-by: Codex --- .../reusable-python-packaging-wheel-cibuildwheel.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml b/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml index dac9f13..a1e80b6 100644 --- a/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml +++ b/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml @@ -106,15 +106,15 @@ jobs: - name: Set up sccache uses: mozilla-actions/sccache-action@fc920bf0ec8de6ee65d409111f7ec508035751ba # v0.0.11 - - name: Select the requested Python ABI + - name: Build the requested Python ABI if: inputs.python-abi != '' - shell: bash + uses: pypa/cibuildwheel@e090b81e30c4d855ea63bf4b6e59204c09a101ae # v4.2.1 env: - PYTHON_ABI: ${{ inputs.python-abi }} - run: echo "CIBW_BUILD=${PYTHON_ABI}-*" >> "$GITHUB_ENV" + CIBW_BUILD: ${{ format('{0}-*', inputs.python-abi) }} - # run cibuildwheel to build wheels for the specified Python version - - uses: pypa/cibuildwheel@e090b81e30c4d855ea63bf4b6e59204c09a101ae # v4.2.1 + - name: Build the configured Python ABIs + if: inputs.python-abi == '' + uses: pypa/cibuildwheel@e090b81e30c4d855ea63bf4b6e59204c09a101ae # v4.2.1 - name: Verify clean directory run: git diff --exit-code From 76a7af9fb64b9253958a02307099c0565f66b51e Mon Sep 17 00:00:00 2001 From: Lukas Burgholzer Date: Mon, 14 Sep 2026 02:53:03 +0000 Subject: [PATCH 7/9] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20Limit=20release=20opti?= =?UTF-8?q?ons=20to=20wheel=20builds?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Keep assertion selection and ABI isolation in wheel packaging. Remove unused options from ordinary CI workflows. Assisted-by: Codex --- .github/workflows/reusable-cpp-coverage.yml | 7 +------ .github/workflows/reusable-cpp-linter.yml | 7 +------ .github/workflows/reusable-cpp-tests-macos.yml | 7 +------ .github/workflows/reusable-cpp-tests-ubuntu.yml | 7 +------ .github/workflows/reusable-cpp-tests-windows.yml | 7 +------ .github/workflows/reusable-python-linter.yml | 7 +------ .../reusable-python-packaging-wheel-cibuildwheel.yml | 8 ++------ .github/workflows/reusable-python-tests.yml | 7 +------ .github/workflows/reusable-qiskit-upstream-tests.yml | 7 +------ 9 files changed, 10 insertions(+), 54 deletions(-) diff --git a/.github/workflows/reusable-cpp-coverage.yml b/.github/workflows/reusable-cpp-coverage.yml index cf1a5a5..1a7456a 100644 --- a/.github/workflows/reusable-cpp-coverage.yml +++ b/.github/workflows/reusable-cpp-coverage.yml @@ -22,10 +22,6 @@ on: description: "Whether to set up MLIR" default: false type: boolean - mlir-assertions: - description: "Whether the MLIR SDK should retain assertions" - default: true - type: boolean llvm-version: description: "The LLVM version to set up (formatted as 'major.minor.patch') or commit hash (minimum 7 characters, e.g., 'a832a52')" default: "21.1.8" @@ -76,10 +72,9 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@01969745aad746dc11e47941c35316704158aa6f # zizmor: ignore[stale-action-refs] -- Pin PR #255 until its release. + uses: munich-quantum-software/setup-mlir@3f32263ce571a8b745068980f30f188b6e800763 # v1.4.2 with: llvm-version: ${{ inputs.llvm-version }} - assertions: ${{ inputs.mlir-assertions }} - name: Set up sccache if: ${{ inputs.use-sccache-gha }} diff --git a/.github/workflows/reusable-cpp-linter.yml b/.github/workflows/reusable-cpp-linter.yml index bbabf6b..cb78826 100644 --- a/.github/workflows/reusable-cpp-linter.yml +++ b/.github/workflows/reusable-cpp-linter.yml @@ -58,10 +58,6 @@ on: description: "Whether to set up MLIR" default: false type: boolean - mlir-assertions: - description: "Whether the MLIR SDK should retain assertions" - default: true - type: boolean llvm-version: description: "The LLVM version to set up (formatted as 'major.minor.patch') or commit hash (minimum 7 characters like 'a832a52')" default: "21.1.8" @@ -106,10 +102,9 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@01969745aad746dc11e47941c35316704158aa6f # zizmor: ignore[stale-action-refs] -- Pin PR #255 until its release. + uses: munich-quantum-software/setup-mlir@3f32263ce571a8b745068980f30f188b6e800763 # v1.4.2 with: llvm-version: ${{ inputs.llvm-version }} - assertions: ${{ inputs.mlir-assertions }} - name: Set up sccache if: ${{ inputs.build-project && inputs.use-sccache-gha }} diff --git a/.github/workflows/reusable-cpp-tests-macos.yml b/.github/workflows/reusable-cpp-tests-macos.yml index f4b2d6e..faf92a4 100644 --- a/.github/workflows/reusable-cpp-tests-macos.yml +++ b/.github/workflows/reusable-cpp-tests-macos.yml @@ -41,10 +41,6 @@ on: description: "Whether to set up MLIR" default: false type: boolean - mlir-assertions: - description: "Whether the MLIR SDK should retain assertions" - default: true - type: boolean llvm-version: description: "The LLVM version to set up (formatted as 'major.minor.patch') or commit hash (minimum 7 characters, e.g., 'a832a52')" default: "21.1.8" @@ -97,10 +93,9 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@01969745aad746dc11e47941c35316704158aa6f # zizmor: ignore[stale-action-refs] -- Pin PR #255 until its release. + uses: munich-quantum-software/setup-mlir@3f32263ce571a8b745068980f30f188b6e800763 # v1.4.2 with: llvm-version: ${{ inputs.llvm-version }} - assertions: ${{ inputs.mlir-assertions }} - name: Install the latest version of uv uses: astral-sh/setup-uv@bec219d24cd3e171d82865faccec33120bb574f4 # v10.1.0 diff --git a/.github/workflows/reusable-cpp-tests-ubuntu.yml b/.github/workflows/reusable-cpp-tests-ubuntu.yml index ba39276..7748d1f 100644 --- a/.github/workflows/reusable-cpp-tests-ubuntu.yml +++ b/.github/workflows/reusable-cpp-tests-ubuntu.yml @@ -41,10 +41,6 @@ on: description: "Whether to set up MLIR" default: false type: boolean - mlir-assertions: - description: "Whether the MLIR SDK should retain assertions" - default: true - type: boolean llvm-version: description: "The LLVM version to set up (formatted as 'major.minor.patch') or commit hash (minimum 7 characters, e.g., 'a832a52')" default: "21.1.8" @@ -97,10 +93,9 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@01969745aad746dc11e47941c35316704158aa6f # zizmor: ignore[stale-action-refs] -- Pin PR #255 until its release. + uses: munich-quantum-software/setup-mlir@3f32263ce571a8b745068980f30f188b6e800763 # v1.4.2 with: llvm-version: ${{ inputs.llvm-version }} - assertions: ${{ inputs.mlir-assertions }} - name: Set up mold as linker uses: rui314/setup-mold@7e4f20ad28a2e8ca6fd0892ccf72e2abb706b9c3 # v1 diff --git a/.github/workflows/reusable-cpp-tests-windows.yml b/.github/workflows/reusable-cpp-tests-windows.yml index e486bf7..1d6923e 100644 --- a/.github/workflows/reusable-cpp-tests-windows.yml +++ b/.github/workflows/reusable-cpp-tests-windows.yml @@ -39,10 +39,6 @@ on: description: "Whether to set up MLIR" default: false type: boolean - mlir-assertions: - description: "Whether the MLIR SDK should retain assertions" - default: true - type: boolean llvm-version: description: "The LLVM version to set up (formatted as 'major.minor.patch') or commit hash (minimum 7 characters, e.g., 'a832a52')" default: "21.1.8" @@ -172,10 +168,9 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@01969745aad746dc11e47941c35316704158aa6f # zizmor: ignore[stale-action-refs] -- Pin PR #255 until its release. + uses: munich-quantum-software/setup-mlir@3f32263ce571a8b745068980f30f188b6e800763 # v1.4.2 with: llvm-version: ${{ inputs.llvm-version }} - assertions: ${{ inputs.mlir-assertions }} debug: ${{ inputs.mlir-debug }} - name: Install the latest version of uv diff --git a/.github/workflows/reusable-python-linter.yml b/.github/workflows/reusable-python-linter.yml index f52dab1..af90b53 100644 --- a/.github/workflows/reusable-python-linter.yml +++ b/.github/workflows/reusable-python-linter.yml @@ -30,10 +30,6 @@ on: description: "Whether to set up MLIR" default: false type: boolean - mlir-assertions: - description: "Whether the MLIR SDK should retain assertions" - default: true - type: boolean llvm-version: description: "The LLVM version to set up (formatted as 'major.minor.patch') or commit hash (minimum 7 characters, e.g., 'a832a52')" default: "21.1.8" @@ -81,10 +77,9 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@01969745aad746dc11e47941c35316704158aa6f # zizmor: ignore[stale-action-refs] -- Pin PR #255 until its release. + uses: munich-quantum-software/setup-mlir@3f32263ce571a8b745068980f30f188b6e800763 # v1.4.2 with: llvm-version: ${{ inputs.llvm-version }} - assertions: ${{ inputs.mlir-assertions }} - name: Install the latest version of uv uses: astral-sh/setup-uv@bec219d24cd3e171d82865faccec33120bb574f4 # v10.1.0 diff --git a/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml b/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml index a1e80b6..bee71c3 100644 --- a/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml +++ b/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml @@ -19,10 +19,6 @@ on: description: "Optional CPython ABI tag to build separately, such as cp311 or cp315t" default: "" type: string - use-sccache-gha: - description: "Whether to use sccache with the GitHub Actions cache backend" - default: true - type: boolean setup-z3: description: "Whether to set up Z3" default: false @@ -69,7 +65,7 @@ jobs: env: CMAKE_C_COMPILER_LAUNCHER: sccache CMAKE_CXX_COMPILER_LAUNCHER: sccache - SCCACHE_GHA_ENABLED: ${{ inputs.use-sccache-gha }} + SCCACHE_GHA_ENABLED: true SCCACHE_IDLE_TIMEOUT: 0 SCCACHE_GHA_RW_MODE: ${{ github.ref == 'refs/heads/main' && 'READ_WRITE' || 'READ_ONLY' }} IQM_TOKEN: ${{ secrets.IQM_TOKEN }} @@ -92,7 +88,7 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir && !startsWith(inputs.runs-on, 'ubuntu') }} - uses: munich-quantum-software/setup-mlir@01969745aad746dc11e47941c35316704158aa6f # zizmor: ignore[stale-action-refs] -- Pin PR #255 until its release. + uses: munich-quantum-software/setup-mlir@9e7b46e4ef38ea8e2d5134457fc1c49ee8833192 # zizmor: ignore[stale-action-refs] -- Pin PR #255 until its release. with: llvm-version: ${{ inputs.llvm-version }} assertions: ${{ inputs.mlir-assertions }} diff --git a/.github/workflows/reusable-python-tests.yml b/.github/workflows/reusable-python-tests.yml index 52324f1..ba87ac8 100644 --- a/.github/workflows/reusable-python-tests.yml +++ b/.github/workflows/reusable-python-tests.yml @@ -34,10 +34,6 @@ on: description: "Whether to set up MLIR" default: false type: boolean - mlir-assertions: - description: "Whether the MLIR SDK should retain assertions" - default: true - type: boolean llvm-version: description: "The LLVM version to set up (formatted as 'major.minor.patch') or commit hash (minimum 7 characters, e.g., 'a832a52')" default: "21.1.8" @@ -187,10 +183,9 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@01969745aad746dc11e47941c35316704158aa6f # zizmor: ignore[stale-action-refs] -- Pin PR #255 until its release. + uses: munich-quantum-software/setup-mlir@3f32263ce571a8b745068980f30f188b6e800763 # v1.4.2 with: llvm-version: ${{ inputs.llvm-version }} - assertions: ${{ inputs.mlir-assertions }} - name: Set up mold as linker (Linux only) uses: rui314/setup-mold@7e4f20ad28a2e8ca6fd0892ccf72e2abb706b9c3 # v1 diff --git a/.github/workflows/reusable-qiskit-upstream-tests.yml b/.github/workflows/reusable-qiskit-upstream-tests.yml index 96cfd63..e665b53 100644 --- a/.github/workflows/reusable-qiskit-upstream-tests.yml +++ b/.github/workflows/reusable-qiskit-upstream-tests.yml @@ -26,10 +26,6 @@ on: description: "Whether to set up MLIR" default: false type: boolean - mlir-assertions: - description: "Whether the MLIR SDK should retain assertions" - default: true - type: boolean llvm-version: description: "The LLVM version to set up (formatted as 'major.minor.patch') or commit hash (minimum 7 characters, e.g., 'a832a52')" default: "21.1.8" @@ -69,10 +65,9 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir }} - uses: munich-quantum-software/setup-mlir@01969745aad746dc11e47941c35316704158aa6f # zizmor: ignore[stale-action-refs] -- Pin PR #255 until its release. + uses: munich-quantum-software/setup-mlir@3f32263ce571a8b745068980f30f188b6e800763 # v1.4.2 with: llvm-version: ${{ inputs.llvm-version }} - assertions: ${{ inputs.mlir-assertions }} - name: Set up mold as linker uses: rui314/setup-mold@7e4f20ad28a2e8ca6fd0892ccf72e2abb706b9c3 # v1 From d7d6960ff26de5c12df0fd5929bfa919127357f8 Mon Sep 17 00:00:00 2001 From: Lukas Burgholzer Date: Mon, 14 Sep 2026 06:13:14 +0000 Subject: [PATCH 8/9] =?UTF-8?q?=F0=9F=91=B7=20Pin=20the=20complete=20SDK?= =?UTF-8?q?=20release=20manifest?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use the setup-mlir revision that selects the complete 2026.09.14 SDK release. The immutable prior release cannot receive assertion-free companion archives. Assisted-by: Codex --- .../workflows/reusable-python-packaging-wheel-cibuildwheel.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml b/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml index bee71c3..b3c094e 100644 --- a/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml +++ b/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml @@ -88,7 +88,7 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir && !startsWith(inputs.runs-on, 'ubuntu') }} - uses: munich-quantum-software/setup-mlir@9e7b46e4ef38ea8e2d5134457fc1c49ee8833192 # zizmor: ignore[stale-action-refs] -- Pin PR #255 until its release. + uses: munich-quantum-software/setup-mlir@a43338b02c09c79c8da9eb98b4ad45b08429fd0f # zizmor: ignore[stale-action-refs] -- Pin PR #255 until its release. with: llvm-version: ${{ inputs.llvm-version }} assertions: ${{ inputs.mlir-assertions }} From 674b7a1e5b452979900157dcc676fb944525b224 Mon Sep 17 00:00:00 2001 From: Lukas Burgholzer Date: Mon, 14 Sep 2026 18:07:16 +0000 Subject: [PATCH 9/9] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20Build=20wheel=20ABIs?= =?UTF-8?q?=20in=20one=20cibuildwheel=20run?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use cibuildwheel's normal ABI handling and runner timeout. Keep the assertion selector and standard compiler cache setup, and update the installer dependency to its conflict-free head. Assisted-by: Codex --- ...le-python-packaging-wheel-cibuildwheel.yml | 24 ++++--------------- 1 file changed, 5 insertions(+), 19 deletions(-) diff --git a/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml b/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml index b3c094e..8cc43ae 100644 --- a/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml +++ b/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml @@ -15,10 +15,6 @@ on: description: "The runner image to test on" default: "ubuntu-24.04" type: string - python-abi: - description: "Optional CPython ABI tag to build separately, such as cp311 or cp315t" - default: "" - type: string setup-z3: description: "Whether to set up Z3" default: false @@ -51,7 +47,7 @@ on: required: false concurrency: - group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}-python-packaging-cibw-${{ inputs.runs-on }}-${{ inputs.python-abi }} + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}-python-packaging-cibw-${{ inputs.runs-on }} cancel-in-progress: true permissions: @@ -59,15 +55,12 @@ permissions: jobs: build-wheel: - name: 🎡 ${{ inputs.runs-on }} ${{ inputs.python-abi }} + name: 🎡 ${{ inputs.runs-on }} runs-on: ${{ inputs.runs-on }} - timeout-minutes: 300 env: CMAKE_C_COMPILER_LAUNCHER: sccache CMAKE_CXX_COMPILER_LAUNCHER: sccache SCCACHE_GHA_ENABLED: true - SCCACHE_IDLE_TIMEOUT: 0 - SCCACHE_GHA_RW_MODE: ${{ github.ref == 'refs/heads/main' && 'READ_WRITE' || 'READ_ONLY' }} IQM_TOKEN: ${{ secrets.IQM_TOKEN }} IQM_QC_ALIAS: ${{ secrets.IQM_QC_ALIAS }} AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }} @@ -88,7 +81,7 @@ jobs: - name: Set up MLIR if: ${{ inputs.setup-mlir && !startsWith(inputs.runs-on, 'ubuntu') }} - uses: munich-quantum-software/setup-mlir@a43338b02c09c79c8da9eb98b4ad45b08429fd0f # zizmor: ignore[stale-action-refs] -- Pin PR #255 until its release. + uses: munich-quantum-software/setup-mlir@9750652be0c7c595a8cbcc21769e4300ad599a7e # zizmor: ignore[stale-action-refs] -- Pin PR #255 until its release. with: llvm-version: ${{ inputs.llvm-version }} assertions: ${{ inputs.mlir-assertions }} @@ -102,14 +95,7 @@ jobs: - name: Set up sccache uses: mozilla-actions/sccache-action@fc920bf0ec8de6ee65d409111f7ec508035751ba # v0.0.11 - - name: Build the requested Python ABI - if: inputs.python-abi != '' - uses: pypa/cibuildwheel@e090b81e30c4d855ea63bf4b6e59204c09a101ae # v4.2.1 - env: - CIBW_BUILD: ${{ format('{0}-*', inputs.python-abi) }} - - - name: Build the configured Python ABIs - if: inputs.python-abi == '' + - name: Build wheels uses: pypa/cibuildwheel@e090b81e30c4d855ea63bf4b6e59204c09a101ae # v4.2.1 - name: Verify clean directory @@ -120,7 +106,7 @@ jobs: - name: Upload wheels uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: - name: ${{ github.event_name == 'pull_request' && 'dev-' || '' }}cibw-wheels-${{ inputs.runs-on }}${{ inputs.python-abi && format('-{0}', inputs.python-abi) || '' }} + name: ${{ github.event_name == 'pull_request' && 'dev-' || '' }}cibw-wheels-${{ inputs.runs-on }} path: wheelhouse/*.whl - name: Show sccache stats