From a9a2209f6fc7fbbccbfe3cc9a6835627a2fb76a7 Mon Sep 17 00:00:00 2001 From: Daniel Haag <121057143+denialhaag@users.noreply.github.com> Date: Thu, 6 Aug 2026 00:25:54 +0200 Subject: [PATCH 1/2] =?UTF-8?q?=F0=9F=90=8D=20Start=20building=20CPython?= =?UTF-8?q?=203.15=20wheels?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Assisted-by: Claude Sonnet 5 via Claude Code --- .github/workflows/cd.yml | 4 ++-- .github/workflows/ci.yml | 30 +++++++++++++-------------- .github/workflows/update-mqt-core.yml | 2 +- .github/workflows/upstream.yml | 4 ++-- CHANGELOG.md | 5 +++++ pyproject.toml | 2 ++ 6 files changed, 27 insertions(+), 20 deletions(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 6015e6ee0..a2c837ef5 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -12,7 +12,7 @@ permissions: jobs: build-sdist: name: 🐍 Packaging - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-packaging-sdist.yml@973217bac3ad300d9982fffdd3b37a9b5b3a51ea # v2.2.1 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-packaging-sdist.yml@579203ef22082fa5d5483412f442e50d0c5ff4a7 # v2.2.2 # Builds wheels on all supported platforms using cibuildwheel. # The wheels are uploaded as GitHub artifacts `dev-cibw-*` or `cibw-*`, depending on whether the workflow is triggered from a PR or a release, respectively. @@ -30,7 +30,7 @@ jobs: windows-2025, windows-11-arm, ] - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml@973217bac3ad300d9982fffdd3b37a9b5b3a51ea # v2.2.1 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml@579203ef22082fa5d5483412f442e50d0c5ff4a7 # v2.2.2 with: runs-on: ${{ matrix.runs-on }} setup-z3: true diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index acca9f648..a65122f92 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,7 +14,7 @@ concurrency: jobs: change-detection: name: 🔍 Change - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-change-detection.yml@973217bac3ad300d9982fffdd3b37a9b5b3a51ea # v2.2.1 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-change-detection.yml@579203ef22082fa5d5483412f442e50d0c5ff4a7 # v2.2.2 cpp-tests-ubuntu: name: 🇨 Test 🐧 @@ -30,7 +30,7 @@ jobs: - runs-on: ubuntu-24.04 compiler: gcc preset: debug - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-ubuntu.yml@973217bac3ad300d9982fffdd3b37a9b5b3a51ea # v2.2.1 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-ubuntu.yml@579203ef22082fa5d5483412f442e50d0c5ff4a7 # v2.2.2 with: runs-on: ${{ matrix.runs-on }} compiler: ${{ matrix.compiler }} @@ -51,7 +51,7 @@ jobs: - runs-on: macos-26 compiler: clang preset: debug - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-macos.yml@973217bac3ad300d9982fffdd3b37a9b5b3a51ea # v2.2.1 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-macos.yml@579203ef22082fa5d5483412f442e50d0c5ff4a7 # v2.2.2 with: runs-on: ${{ matrix.runs-on }} compiler: ${{ matrix.compiler }} @@ -72,7 +72,7 @@ jobs: - runs-on: windows-2025 compiler: msvc preset: debug-windows - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-windows.yml@973217bac3ad300d9982fffdd3b37a9b5b3a51ea # v2.2.1 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-windows.yml@579203ef22082fa5d5483412f442e50d0c5ff4a7 # v2.2.2 with: runs-on: ${{ matrix.runs-on }} compiler: ${{ matrix.compiler }} @@ -90,7 +90,7 @@ jobs: runs-on: [ubuntu-24.04, ubuntu-24.04-arm] compiler: [gcc, clang, clang-20, clang-21] preset: [release, debug] - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-ubuntu.yml@973217bac3ad300d9982fffdd3b37a9b5b3a51ea # v2.2.1 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-ubuntu.yml@579203ef22082fa5d5483412f442e50d0c5ff4a7 # v2.2.2 with: runs-on: ${{ matrix.runs-on }} compiler: ${{ matrix.compiler }} @@ -108,7 +108,7 @@ jobs: runs-on: [macos-15, macos-15-intel, macos-26, macos-26-intel] compiler: [clang, clang-20, clang-21, gcc-14, gcc-15] preset: [release, debug] - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-macos.yml@973217bac3ad300d9982fffdd3b37a9b5b3a51ea # v2.2.1 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-macos.yml@579203ef22082fa5d5483412f442e50d0c5ff4a7 # v2.2.2 with: runs-on: ${{ matrix.runs-on }} compiler: ${{ matrix.compiler }} @@ -126,7 +126,7 @@ jobs: runs-on: [windows-2022, windows-2025, windows-11-arm] compiler: [msvc, clang] preset: [release-windows, debug-windows] - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-windows.yml@973217bac3ad300d9982fffdd3b37a9b5b3a51ea # v2.2.1 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-windows.yml@579203ef22082fa5d5483412f442e50d0c5ff4a7 # v2.2.2 with: runs-on: ${{ matrix.runs-on }} compiler: ${{ matrix.compiler }} @@ -137,7 +137,7 @@ jobs: name: 🇨 Coverage needs: change-detection if: fromJSON(needs.change-detection.outputs.run-cpp-tests) - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-coverage.yml@973217bac3ad300d9982fffdd3b37a9b5b3a51ea # v2.2.1 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-coverage.yml@579203ef22082fa5d5483412f442e50d0c5ff4a7 # v2.2.2 with: setup-z3: true permissions: @@ -148,7 +148,7 @@ jobs: name: 🇨 Lint needs: change-detection if: fromJSON(needs.change-detection.outputs.run-cpp-linter) - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-linter.yml@973217bac3ad300d9982fffdd3b37a9b5b3a51ea # v2.2.1 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-linter.yml@579203ef22082fa5d5483412f442e50d0c5ff4a7 # v2.2.2 with: clang-version: 20 files-changed-only: true @@ -172,7 +172,7 @@ jobs: macos-26-intel, windows-2025, ] - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-tests.yml@973217bac3ad300d9982fffdd3b37a9b5b3a51ea # v2.2.1 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-tests.yml@579203ef22082fa5d5483412f442e50d0c5ff4a7 # v2.2.2 with: runs-on: ${{ matrix.runs-on }} setup-z3: true @@ -181,7 +181,7 @@ jobs: name: 🐍 Coverage needs: [change-detection, python-tests] if: fromJSON(needs.change-detection.outputs.run-python-tests) - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-coverage.yml@973217bac3ad300d9982fffdd3b37a9b5b3a51ea # v2.2.1 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-coverage.yml@579203ef22082fa5d5483412f442e50d0c5ff4a7 # v2.2.2 permissions: contents: read id-token: write @@ -195,7 +195,7 @@ jobs: fail-fast: false matrix: runs-on: [macos-15, macos-15-intel, windows-2022] - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-tests.yml@973217bac3ad300d9982fffdd3b37a9b5b3a51ea # v2.2.1 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-tests.yml@579203ef22082fa5d5483412f442e50d0c5ff4a7 # v2.2.2 with: runs-on: ${{ matrix.runs-on }} setup-z3: true @@ -204,7 +204,7 @@ jobs: name: 🐍 Lint needs: change-detection if: fromJSON(needs.change-detection.outputs.run-python-linter) - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-linter.yml@973217bac3ad300d9982fffdd3b37a9b5b3a51ea # v2.2.1 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-linter.yml@579203ef22082fa5d5483412f442e50d0c5ff4a7 # v2.2.2 with: check-stubs: true enable-mypy: false @@ -215,7 +215,7 @@ jobs: name: 🚀 CD needs: change-detection if: fromJSON(needs.change-detection.outputs.run-cd) - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-packaging-sdist.yml@973217bac3ad300d9982fffdd3b37a9b5b3a51ea # v2.2.1 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-packaging-sdist.yml@579203ef22082fa5d5483412f442e50d0c5ff4a7 # v2.2.2 build-wheel: name: 🚀 CD @@ -233,7 +233,7 @@ jobs: windows-2025, windows-11-arm, ] - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml@973217bac3ad300d9982fffdd3b37a9b5b3a51ea # v2.2.1 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml@579203ef22082fa5d5483412f442e50d0c5ff4a7 # v2.2.2 with: runs-on: ${{ matrix.runs-on }} setup-z3: true diff --git a/.github/workflows/update-mqt-core.yml b/.github/workflows/update-mqt-core.yml index 181aceb45..f5f0e04c1 100644 --- a/.github/workflows/update-mqt-core.yml +++ b/.github/workflows/update-mqt-core.yml @@ -21,7 +21,7 @@ concurrency: jobs: update-mqt-core: name: ⬆️ Update MQT Core - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-mqt-core-update.yml@973217bac3ad300d9982fffdd3b37a9b5b3a51ea # v2.2.1 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-mqt-core-update.yml@579203ef22082fa5d5483412f442e50d0c5ff4a7 # v2.2.2 with: update-to-head: ${{ github.event.inputs.update-to-head == 'true' }} secrets: diff --git a/.github/workflows/upstream.yml b/.github/workflows/upstream.yml index 2b2f547b8..0f0cb626e 100644 --- a/.github/workflows/upstream.yml +++ b/.github/workflows/upstream.yml @@ -19,7 +19,7 @@ jobs: fail-fast: false matrix: runs-on: [ubuntu-24.04, macos-26, windows-2025] - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-qiskit-upstream-tests.yml@973217bac3ad300d9982fffdd3b37a9b5b3a51ea # v2.2.1 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-qiskit-upstream-tests.yml@579203ef22082fa5d5483412f442e50d0c5ff4a7 # v2.2.2 with: runs-on: ${{ matrix.runs-on }} setup-z3: true @@ -28,7 +28,7 @@ jobs: name: Create issue on failure needs: qiskit-upstream-tests if: ${{ always() }} - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-qiskit-upstream-issue.yml@973217bac3ad300d9982fffdd3b37a9b5b3a51ea # v2.2.1 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-qiskit-upstream-issue.yml@579203ef22082fa5d5483412f442e50d0c5ff4a7 # v2.2.2 with: tests-result: ${{ needs.qiskit-upstream-tests.result }} permissions: diff --git a/CHANGELOG.md b/CHANGELOG.md index 8e2b0ce01..0243d96b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,10 @@ releases may include breaking changes. _If you are upgrading: please see [`UPGRADING.md`](UPGRADING.md#unreleased)._ +### Added + +- 🐍 Start building CPython 3.15 wheels ([#1096]) ([**@denialhaag**]) + ### Changed - ⬆️ Update `mqt-core` to version 3.8.0 ([#1093]) ([**@denialhaag**]) @@ -279,6 +283,7 @@ _📚 Refer to the [GitHub Release Notes] for previous changelogs._ +[#1096]: https://github.com/munich-quantum-toolkit/qmap/pull/1096 [#1093]: https://github.com/munich-quantum-toolkit/qmap/pull/1093 [#1069]: https://github.com/munich-quantum-toolkit/qmap/pull/1069 [#1058]: https://github.com/munich-quantum-toolkit/qmap/pull/1058 diff --git a/pyproject.toml b/pyproject.toml index 094b54cc0..6008bbe1f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -46,6 +46,7 @@ classifiers = [ "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", + "Programming Language :: Python :: 3.15", "Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)", "Typing :: Typed", ] @@ -320,6 +321,7 @@ build-frontend = "uv" test-skip = [ "cp3??t-*", # no freethreading qiskit wheels "cp*-win_arm64", # no numpy, qiskit, ... wheels + "cp315*", # no 3.15 wheels yet ] # The mqt-core shared libraries are provided by the mqt-core Python package. From 92f19f3235ed1e89b29c48700b17487ce519aa56 Mon Sep 17 00:00:00 2001 From: Daniel Haag <121057143+denialhaag@users.noreply.github.com> Date: Thu, 6 Aug 2026 00:55:02 +0200 Subject: [PATCH 2/2] Streamline changelog Assisted-by: Claude Sonnet 5 via Claude Code --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0243d96b5..149e52b46 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -148,7 +148,7 @@ _If you are upgrading: please see [`UPGRADING.md`](UPGRADING.md#330)._ ### Added -- 🐍 Build Python 3.14 wheels ([#717]) ([**@denialhaag**]) +- 🐍 Start building CPython 3.14 wheels ([#717]) ([**@denialhaag**]) ### Changed