-
Notifications
You must be signed in to change notification settings - Fork 26
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
✨ switch to
mqt-core
Python package (#418)
## Description This PR switches the project to use the newly developed `mqt-core` Python package. Any Python package build will only require the `mqt-core` package as a build and runtime dependency and won't have to rely on fetched version of mqt-core any more. Any regular C++ build will still use the `FetchContent` CMake module. The change brings a range of advantages: - Uses the new `load` function of `mqt-core` that allows to load any supported circuit format as input and has better handling for Qiskit `QuantumCircuit` objects. - Allows to directly feed QASM strings as inputs to the compilation methods - Simplifies the interfaces of the QMAP Python bindings - Allows OpenQASM3 as an input format. ## Checklist: <!--- This checklist serves as a reminder of a couple of things that ensure your pull request will be merged swiftly. --> - [x] The pull request only contains commits that are related to it. - [x] I have added appropriate tests and documentation. - [x] I have made sure that all CI jobs on GitHub pass. - [x] The pull request introduces no new warnings and follows the project's style guidelines.
- Loading branch information
Showing
62 changed files
with
1,672 additions
and
1,162 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -14,45 +14,181 @@ concurrency: | |
jobs: | ||
change-detection: | ||
name: 🔍 Change | ||
uses: cda-tum/mqt-workflows/.github/workflows/reusable-change-detection.yml@v1.5 | ||
uses: cda-tum/mqt-workflows/.github/workflows/reusable-change-detection.yml@v1.7 | ||
|
||
cpp-tests: | ||
name: 🇨 Test | ||
needs: change-detection | ||
if: fromJSON(needs.change-detection.outputs.run-cpp-tests) | ||
uses: cda-tum/mqt-workflows/.github/workflows/[email protected] | ||
uses: cda-tum/mqt-workflows/.github/workflows/[email protected] | ||
with: | ||
# Runs to enable | ||
enable-ubuntu2404-gcc-release: true | ||
enable-ubuntu2404-arm-gcc-release: true | ||
enable-macos13-clang-release: true | ||
enable-macos14-clang-release: true | ||
enable-windows2022-msvc-release: true | ||
# Runs to disable | ||
enable-ubuntu2404-gcc-debug: false | ||
enable-ubuntu2404-clang-release: false | ||
enable-ubuntu2404-clang-debug: false | ||
enable-ubuntu2204-gcc-release: false | ||
enable-ubuntu2204-gcc-debug: false | ||
enable-ubuntu2204-clang-release: false | ||
enable-ubuntu2204-clang-debug: false | ||
enable-ubuntu2404-arm-gcc-debug: false | ||
enable-ubuntu2404-arm-clang-release: false | ||
enable-ubuntu2404-arm-clang-debug: false | ||
enable-ubuntu2204-arm-gcc-release: false | ||
enable-ubuntu2204-arm-gcc-debug: false | ||
enable-ubuntu2204-arm-clang-release: false | ||
enable-ubuntu2204-arm-clang-debug: false | ||
enable-macos13-clang-debug: false | ||
enable-macos13-gcc-release: false | ||
enable-macos13-gcc-debug: false | ||
enable-macos14-clang-debug: false | ||
enable-macos14-gcc-release: false | ||
enable-macos14-gcc-debug: false | ||
enable-macos15-clang-release: false | ||
enable-macos15-clang-debug: false | ||
enable-macos15-gcc-release: false | ||
enable-macos15-gcc-debug: false | ||
enable-windows2022-msvc-debug: false | ||
enable-windows2022-clang-release: false | ||
enable-windows2022-clang-debug: false | ||
enable-windows2025-msvc-release: false | ||
enable-windows2025-msvc-debug: false | ||
enable-windows2025-clang-release: false | ||
enable-windows2025-clang-debug: false | ||
# General settings | ||
setup-z3: true | ||
|
||
# run extensive C++ tests whenever this is on a PR and the PR has the `extensive-cpp-ci` label | ||
cpp-tests-extensive: | ||
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') | ||
uses: cda-tum/mqt-workflows/.github/workflows/[email protected] | ||
with: | ||
# Runs to enable | ||
enable-ubuntu2404-gcc-debug: true | ||
enable-ubuntu2404-clang-release: true | ||
enable-ubuntu2404-clang-debug: true | ||
enable-ubuntu2204-gcc-release: true | ||
enable-ubuntu2204-gcc-debug: true | ||
enable-ubuntu2204-clang-release: true | ||
enable-ubuntu2204-clang-debug: true | ||
enable-ubuntu2404-arm-gcc-debug: true | ||
enable-ubuntu2404-arm-clang-release: true | ||
enable-ubuntu2404-arm-clang-debug: true | ||
enable-ubuntu2204-arm-gcc-release: true | ||
enable-ubuntu2204-arm-gcc-debug: true | ||
enable-ubuntu2204-arm-clang-release: true | ||
enable-ubuntu2204-arm-clang-debug: true | ||
enable-macos13-clang-debug: true | ||
enable-macos13-gcc-release: true | ||
enable-macos13-gcc-debug: true | ||
enable-macos14-clang-debug: true | ||
enable-macos14-gcc-release: true | ||
enable-macos14-gcc-debug: true | ||
enable-macos15-clang-release: true | ||
enable-macos15-clang-debug: true | ||
enable-macos15-gcc-release: true | ||
enable-macos15-gcc-debug: true | ||
enable-windows2022-msvc-debug: true | ||
enable-windows2022-clang-release: true | ||
enable-windows2022-clang-debug: true | ||
enable-windows2025-msvc-release: true | ||
enable-windows2025-msvc-debug: true | ||
enable-windows2025-clang-release: true | ||
enable-windows2025-clang-debug: true | ||
# Runs to disable (these are already enabled in the non-extensive run) | ||
enable-ubuntu2404-gcc-release: false | ||
enable-ubuntu2404-arm-gcc-release: false | ||
enable-macos13-clang-release: false | ||
enable-macos14-clang-release: false | ||
enable-windows2022-msvc-release: false | ||
# General settings | ||
setup-z3: true | ||
|
||
cpp-coverage: | ||
name: 🇨 Coverage | ||
needs: change-detection | ||
if: fromJSON(needs.change-detection.outputs.run-cpp-tests) | ||
uses: cda-tum/mqt-workflows/.github/workflows/[email protected] | ||
with: | ||
setup-z3: true | ||
|
||
cpp-linter: | ||
name: 🇨 Lint | ||
needs: change-detection | ||
if: fromJSON(needs.change-detection.outputs.run-cpp-linter) | ||
uses: cda-tum/mqt-workflows/.github/workflows/reusable-cpp-linter.yml@v1.5 | ||
uses: cda-tum/mqt-workflows/.github/workflows/reusable-cpp-linter.yml@v1.7 | ||
with: | ||
setup-z3: true | ||
|
||
# run extensive Python tests whenever this is on a PR and the PR has the `extensive-python-ci` label | ||
python-tests: | ||
name: 🐍 Test | ||
needs: change-detection | ||
if: fromJSON(needs.change-detection.outputs.run-python-tests) | ||
uses: cda-tum/mqt-workflows/.github/workflows/[email protected] | ||
uses: cda-tum/mqt-workflows/.github/workflows/[email protected] | ||
with: | ||
# Runs to enable | ||
enable-ubuntu2404: true | ||
enable-ubuntu2404-arm: true | ||
enable-macos13: true | ||
enable-macos14: true | ||
enable-windows2022: true | ||
# Runs to disable | ||
enable-ubuntu2204: false | ||
enable-ubuntu2204-arm: false | ||
enable-macos15: false | ||
enable-windows2025: false | ||
# General settings | ||
setup-z3: true | ||
|
||
python-tests-extensive: | ||
name: 🐍 Test (Extensive) | ||
needs: change-detection | ||
if: fromJSON(needs.change-detection.outputs.run-python-tests) && github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'extensive-python-ci') | ||
uses: cda-tum/mqt-workflows/.github/workflows/[email protected] | ||
with: | ||
# Runs to enable | ||
enable-ubuntu2204: true | ||
enable-ubuntu2204-arm: true | ||
enable-macos15: true | ||
enable-windows2025: true | ||
# Runs to disable (these are already enabled in the non-extensive run) | ||
enable-ubuntu2404: false | ||
enable-ubuntu2404-arm: false | ||
enable-macos13: false | ||
enable-macos14: false | ||
enable-windows2022: false | ||
# General settings | ||
setup-z3: true | ||
|
||
python-linter: | ||
name: 🐍 Lint | ||
needs: change-detection | ||
if: fromJSON(needs.change-detection.outputs.run-python-tests) | ||
uses: cda-tum/mqt-workflows/.github/workflows/[email protected] | ||
with: | ||
setup-z3: true | ||
|
||
code-ql: | ||
name: 📝 CodeQL | ||
needs: change-detection | ||
if: fromJSON(needs.change-detection.outputs.run-code-ql) | ||
uses: cda-tum/mqt-workflows/.github/workflows/reusable-code-ql.yml@v1.5 | ||
uses: cda-tum/mqt-workflows/.github/workflows/reusable-code-ql.yml@v1.7 | ||
with: | ||
setup-z3: true | ||
|
||
cd: | ||
name: 🚀 CD | ||
needs: change-detection | ||
if: fromJSON(needs.change-detection.outputs.run-cd) | ||
uses: cda-tum/mqt-workflows/.github/workflows/reusable-python-packaging.yml@v1.5 | ||
uses: cda-tum/mqt-workflows/.github/workflows/reusable-python-packaging.yml@v1.7 | ||
with: | ||
setup-z3: true | ||
# 4.13.0 has incorrectly tagged manylinux wheels | ||
|
@@ -64,8 +200,12 @@ jobs: | |
needs: | ||
- change-detection | ||
- cpp-tests | ||
- cpp-tests-extensive | ||
- cpp-coverage | ||
- cpp-linter | ||
- python-tests | ||
- python-tests-extensive | ||
- python-linter | ||
- code-ql | ||
- cd | ||
runs-on: ubuntu-latest | ||
|
@@ -78,6 +218,14 @@ jobs: | |
fromJSON(needs.change-detection.outputs.run-cpp-tests) | ||
&& '' || 'cpp-tests,' | ||
}} | ||
${{ | ||
fromJSON(needs.change-detection.outputs.run-cpp-tests) && github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'extensive-cpp-ci') | ||
&& '' || 'cpp-tests-extensive,' | ||
}} | ||
${{ | ||
fromJSON(needs.change-detection.outputs.run-cpp-tests) | ||
&& '' || 'cpp-coverage,' | ||
}} | ||
${{ | ||
fromJSON(needs.change-detection.outputs.run-cpp-linter) | ||
&& '' || 'cpp-linter,' | ||
|
@@ -86,6 +234,14 @@ jobs: | |
fromJSON(needs.change-detection.outputs.run-python-tests) | ||
&& '' || 'python-tests,' | ||
}} | ||
${{ | ||
fromJSON(needs.change-detection.outputs.run-python-tests) && github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'extensive-python-ci') | ||
&& '' || 'python-tests-extensive,' | ||
}} | ||
${{ | ||
fromJSON(needs.change-detection.outputs.run-python-tests) | ||
&& '' || 'python-linter,' | ||
}} | ||
${{ | ||
fromJSON(needs.change-detection.outputs.run-code-ql) | ||
&& '' || 'code-ql,' | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.