Skip to content

Commit fb01402

Browse files
authored
👷 Update C++ test matrices (#874)
1 parent 24a5a7b commit fb01402

File tree

5 files changed

+36
-24
lines changed

5 files changed

+36
-24
lines changed

.github/workflows/ci.yml

Lines changed: 5 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -88,16 +88,9 @@ jobs:
8888
strategy:
8989
fail-fast: false
9090
matrix:
91-
runs-on:
92-
[ubuntu-22.04, ubuntu-24.04, ubuntu-22.04-arm, ubuntu-24.04-arm]
93-
compiler: [gcc, clang, clang-19, clang-20]
91+
runs-on: [ubuntu-24.04, ubuntu-24.04-arm]
92+
compiler: [gcc, clang, clang-20, clang-21]
9493
config: [Release, Debug]
95-
exclude:
96-
# both combinations do not support C++20 due to the compiler being too old
97-
- runs-on: ubuntu-22.04
98-
compiler: clang
99-
- runs-on: ubuntu-22.04-arm
100-
compiler: clang
10194
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-ubuntu.yml@89734354f64f30a80dd16602d4e271df34348987 # v1.17.4
10295
with:
10396
runs-on: ${{ matrix.runs-on }}
@@ -113,15 +106,9 @@ jobs:
113106
strategy:
114107
fail-fast: false
115108
matrix:
116-
runs-on: [macos-14, macos-15-intel, macos-15]
117-
compiler: [clang, clang-19, clang-20, gcc-14, gcc-15]
109+
runs-on: [macos-14, macos-15, macos-15-intel]
110+
compiler: [clang, clang-20, clang-21, gcc-14, gcc-15]
118111
config: [Release, Debug]
119-
exclude:
120-
# see https://github.com/munich-quantum-toolkit/core/issues/979
121-
- runs-on: macos-15
122-
compiler: gcc-14
123-
- runs-on: macos-15
124-
compiler: gcc-15
125112
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-macos.yml@89734354f64f30a80dd16602d4e271df34348987 # v1.17.4
126113
with:
127114
runs-on: ${{ matrix.runs-on }}
@@ -211,10 +198,7 @@ jobs:
211198
strategy:
212199
fail-fast: false
213200
matrix:
214-
runs-on: [ubuntu-22.04, ubuntu-22.04-arm, macos-15, windows-2025]
215-
exclude:
216-
# see https://github.com/munich-quantum-toolkit/qmap/issues/703
217-
- runs-on: macos-15
201+
runs-on: [macos-15, windows-2025]
218202
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-tests.yml@89734354f64f30a80dd16602d4e271df34348987 # v1.17.4
219203
with:
220204
runs-on: ${{ matrix.runs-on }}

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,19 @@ _If you are upgrading: please see [`UPGRADING.md`](UPGRADING.md#unreleased)._
1313

1414
### Changed
1515

16+
- 👷 Stop testing on `ubuntu-22.04` and `ubuntu-22.04-arm` runners ([#874]) ([**@denialhaag**])
17+
- 👷 Stop testing with `clang-19` and start testing with `clang-21` ([#874]) ([**@denialhaag**])
18+
- 👷 Fix macOS tests with Homebrew Clang via new `munich-quantum-toolkit/workflows` version ([#874]) ([**@denialhaag**])
19+
- 👷 Re-enable macOS tests with GCC by disabling module scanning ([#874]) ([**@denialhaag**])
1620
- ✨ Enable code generation for relaxed routing constraints ([#848]) ([**@ystade**])
1721
- ✨ Add `max_filling_factor` to scheduler in Zoned Neutral Atom Compiler ([#847]) ([**@ystade**])
1822
- ✨ Added extension to the hybrid routing mapper to also support Bridge gates, Passby moves and Flying ancillas ([#832]) ([**@lsschmid**])
1923
- ✨ Added hybrid synthesis routing for iterative circuit constructions ([#832]) ([**@lsschmid**])
2024

25+
### Removed
26+
27+
- 🔥 Remove wheel builds for Python 3.13t ([#874]) ([**@denialhaag**])
28+
2129
## [3.4.0] - 2025-10-15
2230

2331
_If you are upgrading: please see [`UPGRADING.md`](UPGRADING.md#340)._
@@ -160,6 +168,7 @@ _📚 Refer to the [GitHub Release Notes] for previous changelogs._
160168

161169
<!-- PR links -->
162170

171+
[#874]: https://github.com/munich-quantum-toolkit/qmap/pull/874
163172
[#848]: https://github.com/munich-quantum-toolkit/qmap/pull/848
164173
[#847]: https://github.com/munich-quantum-toolkit/qmap/pull/847
165174
[#832]: https://github.com/munich-quantum-toolkit/qmap/pull/832

CMakeLists.txt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,18 @@ endif()
7474

7575
option(BUILD_MQT_QMAP_TESTS "Also build tests for the MQT QMAP project" ${MQT_QMAP_MASTER_PROJECT})
7676

77+
# on macOS with GCC, disable module scanning
78+
# https://www.reddit.com/r/cpp_questions/comments/1kwlkom/comment/ni5angh/
79+
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
80+
if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.28")
81+
set(CMAKE_CXX_SCAN_FOR_MODULES OFF)
82+
else()
83+
message(WARNING "CMake 3.28+ is required to disable C++ module scanning on macOS with GCC. "
84+
"Current version: ${CMAKE_VERSION}. "
85+
"Consider upgrading CMake to avoid potential build issues.")
86+
endif()
87+
endif()
88+
7789
include(cmake/ExternalDependencies.cmake)
7890

7991
# set the include directory for the build tree

UPGRADING.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,13 @@ Enabling/increasing the corresponding parameters allows enabling individually si
2020

2121
The hybrid mapper now also optionally yields a `.naviz` output which can be handled similarly to the zoned architecture compiler.
2222

23+
### Removal of Python 3.13t wheels
24+
25+
Free-threading Python was introduced as an experimental feature in Python 3.13.
26+
It became stable in Python 3.14.
27+
To conserve space on PyPI and to reduce the CD build times, we have removed all wheels for Python 3.13t from our CI.
28+
We continue to provide wheels for the regular Python versions 3.10 to 3.14, as well as 3.14t.
29+
2330
## [3.4.0]
2431

2532
### End of support for Python 3.9

pyproject.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,7 @@ ignore = ["GH200"]
316316

317317
[tool.cibuildwheel]
318318
build = "cp3*"
319-
skip = "*-musllinux*"
319+
skip = ["*-musllinux_*", "cp313t-*"]
320320
archs = "auto64"
321321
test-groups = ["test"]
322322
test-command = "pytest {project}/test/python"
@@ -327,7 +327,7 @@ manylinux-aarch64-image = "manylinux_2_28"
327327
manylinux-ppc64le-image = "manylinux_2_28"
328328
manylinux-s390x-image = "manylinux_2_28"
329329
test-skip = [
330-
"cp3*t-*", # no freethreading qiskit wheels
330+
"cp3??t-*", # no freethreading qiskit wheels
331331
"cp*-win_arm64", # no numpy, qiskit, ... wheels
332332
]
333333

@@ -353,7 +353,7 @@ environment = { MACOSX_DEPLOYMENT_TARGET = "11.0" }
353353
repair-wheel-command = "delocate-wheel --require-archs {delocate_archs} -w {dest_dir} -v {wheel} --ignore-missing-dependencies"
354354

355355
[tool.cibuildwheel.windows]
356-
before-build = "uv pip install delvewheel>=1.9.0"
356+
before-build = "uv pip install delvewheel>=1.11.2"
357357
repair-wheel-command = """delvewheel repair -w {dest_dir} {wheel} --namespace-pkg mqt \
358358
--exclude mqt-core-ir.dll \
359359
--exclude mqt-core-qasm.dll \

0 commit comments

Comments
 (0)