Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
17f29e6
👷 Enable MLIR in CI
denialhaag Dec 4, 2025
5102a53
🔧 Enable MLIR build by default except for problematic build configura…
denialhaag Dec 4, 2025
650af9a
🏁 Fix QIR runner test command
burgholzer Dec 5, 2025
f6b83c7
📦 Fix link library dependencies and disable install of MLIR components
burgholzer Dec 5, 2025
e593ca7
🔧 Configure RtD build to install MLIR
burgholzer Dec 31, 2025
9da3283
🩹 Fix QDMI driver linkage
burgholzer Dec 31, 2025
6fee47c
🚨 Silence and fix accumulated compiler warnings
burgholzer Dec 31, 2025
d1518fd
📄 Ensure license headers are always complete
burgholzer Dec 31, 2025
0a984e4
🔧 Ensure exceptions are enabled in compiler options
burgholzer Jan 2, 2026
9188216
🩹 C function must not throw
burgholzer Jan 2, 2026
26bf303
🏁 Enable color diagnostics for MSVC
burgholzer Jan 2, 2026
b719c11
🏁 Refactor symbol registration in QIR Runner to allow execution on Wi…
burgholzer Jan 2, 2026
e8fc6ac
🔧 Link ProjectOptions and ProjectWarnings libraries into QDMI generators
burgholzer Jan 2, 2026
122e561
🔧 Enable exception handling through the call to `include(HandleLLVMOp…
burgholzer Jan 2, 2026
99f45ae
🏁 Ensure dynamic QDMI devices can be compiled on Windows
burgholzer Jan 2, 2026
09b6137
♻️ Replace usage of exception with llvm_unreachable
burgholzer Jan 2, 2026
e9fc5f0
🩹 Allow multi-config builds for lit tests
burgholzer Jan 2, 2026
3f00871
📝 Add changelog and upgrade guide fragments
burgholzer Jan 4, 2026
3c68684
🎨 Fix inconsistency discovered by CodeRabbit
burgholzer Jan 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 1 addition & 10 deletions .github/codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ flag_management:
paths:
- "include"
- "src"
- "mlir"
- name: python
paths:
- "python/mqt/**/*.py"
Expand All @@ -36,16 +37,6 @@ flag_management:
- type: patch
target: 95%
threshold: 1%
- name: mlir
paths:
- "mlir"
statuses:
- type: project
threshold: 0.5%
removed_code_behavior: adjust_base
- type: patch
target: 95%
threshold: 1%

parsers:
gcov:
Expand Down
49 changes: 27 additions & 22 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
cpp-tests-ubuntu:
name: 🇨‌ Test 🐧
needs: change-detection
if: fromJSON(needs.change-detection.outputs.run-cpp-tests) && !contains(github.event.pull_request.labels.*.name, 'extensive-cpp-ci')
if: (fromJSON(needs.change-detection.outputs.run-cpp-tests) || fromJSON(needs.change-detection.outputs.run-mlir)) && !contains(github.event.pull_request.labels.*.name, 'extensive-cpp-ci')
strategy:
fail-fast: false
matrix:
Expand All @@ -35,11 +35,13 @@ jobs:
runs-on: ${{ matrix.runs-on }}
compiler: ${{ matrix.compiler }}
config: ${{ matrix.config }}
setup-mlir: true
llvm-version: 21.1.8

cpp-tests-macos:
name: 🇨‌ Test 🍎
needs: change-detection
if: fromJSON(needs.change-detection.outputs.run-cpp-tests) && !contains(github.event.pull_request.labels.*.name, 'extensive-cpp-ci')
if: (fromJSON(needs.change-detection.outputs.run-cpp-tests) || fromJSON(needs.change-detection.outputs.run-mlir)) && !contains(github.event.pull_request.labels.*.name, 'extensive-cpp-ci')
strategy:
fail-fast: false
matrix:
Expand All @@ -56,11 +58,13 @@ jobs:
compiler: ${{ matrix.compiler }}
config: ${{ matrix.config }}
cmake-args: -DMQT_CORE_WITH_GMP=ON
setup-mlir: true
llvm-version: 21.1.8

cpp-tests-windows:
name: 🇨‌ Test 🏁
needs: change-detection
if: fromJSON(needs.change-detection.outputs.run-cpp-tests) && !contains(github.event.pull_request.labels.*.name, 'extensive-cpp-ci')
if: (fromJSON(needs.change-detection.outputs.run-cpp-tests) || fromJSON(needs.change-detection.outputs.run-mlir)) && !contains(github.event.pull_request.labels.*.name, 'extensive-cpp-ci')
strategy:
fail-fast: false
matrix:
Expand All @@ -76,12 +80,14 @@ jobs:
runs-on: ${{ matrix.runs-on }}
compiler: ${{ matrix.compiler }}
config: ${{ matrix.config }}
setup-mlir: true
llvm-version: 21.1.8

# run extensive C++ tests on PRs labeled with the `extensive-cpp-ci` label
cpp-tests-extensive-ubuntu:
name: 🇨‌ Test (Extensive) 🐧
needs: change-detection
if: fromJSON(needs.change-detection.outputs.run-cpp-tests) && github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'extensive-cpp-ci')
if: (fromJSON(needs.change-detection.outputs.run-cpp-tests) || fromJSON(needs.change-detection.outputs.run-mlir)) && github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'extensive-cpp-ci')
strategy:
fail-fast: false
matrix:
Expand All @@ -93,12 +99,14 @@ jobs:
runs-on: ${{ matrix.runs-on }}
compiler: ${{ matrix.compiler }}
config: ${{ matrix.config }}
setup-mlir: true
llvm-version: 21.1.8

# run extensive C++ tests on PRs labeled with the `extensive-cpp-ci` label
cpp-tests-extensive-macos:
name: 🇨‌ Test (Extensive) 🍎
needs: change-detection
if: fromJSON(needs.change-detection.outputs.run-cpp-tests) && github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'extensive-cpp-ci')
if: (fromJSON(needs.change-detection.outputs.run-cpp-tests) || fromJSON(needs.change-detection.outputs.run-mlir)) && github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'extensive-cpp-ci')
strategy:
fail-fast: false
matrix:
Expand All @@ -111,29 +119,36 @@ jobs:
compiler: ${{ matrix.compiler }}
config: ${{ matrix.config }}
cmake-args: -DMQT_CORE_WITH_GMP=ON
setup-mlir: true
llvm-version: 21.1.8

# run extensive C++ tests on PRs labeled with the `extensive-cpp-ci` label
cpp-tests-extensive-windows:
name: 🇨‌ Test (Extensive) 🏁
needs: change-detection
if: fromJSON(needs.change-detection.outputs.run-cpp-tests) && github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'extensive-cpp-ci')
if: (fromJSON(needs.change-detection.outputs.run-cpp-tests) || fromJSON(needs.change-detection.outputs.run-mlir)) && github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'extensive-cpp-ci')
strategy:
fail-fast: false
matrix:
runs-on: [windows-2022, windows-2025, windows-11-arm]
compiler: [msvc, clang]
config: [Release]
config: [Release, Debug]
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-windows.yml@99170045e26c2564e9573174b573310e211fca72 # v1.17.10
with:
runs-on: ${{ matrix.runs-on }}
compiler: ${{ matrix.compiler }}
config: ${{ matrix.config }}
setup-mlir: true
llvm-version: 21.1.8

cpp-coverage:
name: 🇨‌ Coverage
needs: change-detection
if: fromJSON(needs.change-detection.outputs.run-cpp-tests)
if: fromJSON(needs.change-detection.outputs.run-cpp-tests) || fromJSON(needs.change-detection.outputs.run-mlir)
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-coverage.yml@99170045e26c2564e9573174b573310e211fca72 # v1.17.10
with:
setup-mlir: true
llvm-version: 21.1.8
permissions:
contents: read
id-token: write
Expand All @@ -152,6 +167,7 @@ jobs:
install-pkgs: "nanobind==2.10.2"
cpp-linter-extra-args: "-std=c++20"
setup-mlir: true
llvm-version: 21.1.8

python-tests:
name: 🐍 Test
Expand Down Expand Up @@ -229,12 +245,6 @@ jobs:
with:
runs-on: ${{ matrix.runs-on }}

mlir-tests:
name: 🐉 Test
needs: change-detection
if: fromJSON(needs.change-detection.outputs.run-mlir)
uses: ./.github/workflows/reusable-mlir-tests.yml

# this job does nothing and is only used for branch protection
required-checks-pass:
name: 🚦 Check
Expand All @@ -254,23 +264,22 @@ jobs:
- python-linter
- build-sdist
- build-wheel
- mlir-tests
runs-on: ubuntu-latest
steps:
- name: Decide whether the needed jobs succeeded or failed
uses: re-actors/alls-green@05ac9388f0aebcb5727afa17fcccfecd6f8ec5fe # v1.2.2
with:
allowed-skips: >-
${{
fromJSON(needs.change-detection.outputs.run-cpp-tests) && !contains(github.event.pull_request.labels.*.name, 'extensive-cpp-ci')
(fromJSON(needs.change-detection.outputs.run-cpp-tests) || fromJSON(needs.change-detection.outputs.run-mlir)) && !contains(github.event.pull_request.labels.*.name, 'extensive-cpp-ci')
&& '' || 'cpp-tests-ubuntu,cpp-tests-macos,cpp-tests-windows,'
}}
${{
fromJSON(needs.change-detection.outputs.run-cpp-tests) && github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'extensive-cpp-ci')
(fromJSON(needs.change-detection.outputs.run-cpp-tests) || fromJSON(needs.change-detection.outputs.run-mlir)) && github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'extensive-cpp-ci')
&& '' || 'cpp-tests-extensive-ubuntu,cpp-tests-extensive-macos,cpp-tests-extensive-windows,'
}}
${{
fromJSON(needs.change-detection.outputs.run-cpp-tests)
(fromJSON(needs.change-detection.outputs.run-cpp-tests) || fromJSON(needs.change-detection.outputs.run-mlir))
&& '' || 'cpp-coverage,'
}}
${{
Expand All @@ -289,8 +298,4 @@ jobs:
fromJSON(needs.change-detection.outputs.run-cd)
&& '' || 'build-sdist,build-wheel,'
}}
${{
fromJSON(needs.change-detection.outputs.run-mlir)
&& '' || 'mlir-tests,'
}}
jobs: ${{ toJSON(needs) }}
119 changes: 0 additions & 119 deletions .github/workflows/reusable-mlir-tests.yml

This file was deleted.

1 change: 1 addition & 0 deletions .license-tools-config.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"years": [2023, 2025]
},
"force_author": true,
"force_license": true,
"license": "MIT",
"title": false,
"include": ["**/*"],
Expand Down
15 changes: 7 additions & 8 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,11 @@ sphinx:
build:
os: ubuntu-24.04
tools:
python: "3.12"
python: "3.13"
apt_packages:
- libmlir-19-dev
- mlir-19-tools
- clang-19
- clang-tools-19
- graphviz
- inkscape
- zstd
jobs:
post_checkout:
# Skip docs build if the commit message contains "skip ci"
Expand All @@ -34,13 +31,15 @@ build:
- asdf plugin add uv
- asdf install uv latest
- asdf global uv latest
# Install MLIR
- curl -LsSf https://github.com/munich-quantum-software/setup-mlir/releases/latest/download/setup-mlir.sh | bash -s -- -v 21.1.8 -p $HOME/mlir
# Build the MLIR documentation
- uvx cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DBUILD_MQT_CORE_MLIR=ON -DMQT_MLIR_MIN_VERSION=19.0 -DMLIR_DIR=/usr/lib/llvm-19/lib/cmake/mlir -DLLVM_DIR=/usr/lib/llvm-19/lib/cmake/llvm
- uvx cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DBUILD_MQT_CORE_MLIR=ON -DMLIR_DIR=$HOME/mlir/lib/cmake/mlir
- uvx cmake --build build --target mlir-doc
build:
html:
- uv run --frozen --no-dev --group docs -m sphinx -T -b html -d docs/_build/doctrees -D language=en docs $READTHEDOCS_OUTPUT/html
- MLIR_DIR=$HOME/mlir/lib/cmake/mlir uv run --frozen --no-dev --group docs -m sphinx -T -b html -d docs/_build/doctrees -D language=en docs $READTHEDOCS_OUTPUT/html
htmlzip:
- uv run --frozen --no-dev --group docs -m sphinx -T -b dirhtml -d docs/_build/doctrees -D language=en docs docs/_build/dirhtml
- MLIR_DIR=$HOME/mlir/lib/cmake/mlir uv run --frozen --no-dev --group docs -m sphinx -T -b dirhtml -d docs/_build/doctrees -D language=en docs docs/_build/dirhtml
- mkdir -p $READTHEDOCS_OUTPUT/htmlzip
- zip -r $READTHEDOCS_OUTPUT/htmlzip/html.zip docs/_build/dirhtml/*
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ This project adheres to [Semantic Versioning], with the exception that minor rel

### Changed

- 📦 Build MLIR by default for C++ library builds ([#1356]) ([**@burgholzer**], [**@denialhaag**])
- 📦🏁 Build Windows x86 wheels on windows-2025 runner for newer compiler ([#1415]) ([**@burgholzer**])
- 👷 Build on `macos-15`/`windows-2025` by default and `macos-14`/`windows-2022` for extensive tests ([#1414]) ([**@burgholzer**])
- 📦🍎 Build macOS arm64 wheels on macos-15 runner for newer compiler ([#1413]) ([**@burgholzer**])
Expand Down
Loading
Loading