Skip to content

📦 Switch to component-based installation for the MQT Core Python package (backport #1596)#1598

Merged
mergify[bot] merged 1 commit intov3.xfrom
mergify/bp/v3.x/pr-1596
Mar 31, 2026
Merged

📦 Switch to component-based installation for the MQT Core Python package (backport #1596)#1598
mergify[bot] merged 1 commit intov3.xfrom
mergify/bp/v3.x/pr-1596

Conversation

@mergify
Copy link
Copy Markdown

@mergify mergify bot commented Mar 31, 2026

Description

This PR switches the MQT Core Python package build to use component-based installation.
This is a first step towards enabling MLIR as part of the Python package.

The majority of the work in this PR was to properly define our external dependencies (nlohmann_json, spdlog, QDMI) in a way that they can be included as part of our installation components configuration.
This requires defining our own installation instructions for these libraries (except for QDMI).

One of the big plus points of this is that it allows us to drop all the DISABLE_INSTALL in the MLIR code, as the respective code is not added to any of the components we define at the moment.

Checklist

  • The pull request only contains commits that are focused and relevant to this change.
  • I have added appropriate tests that cover the new/changed functionality.
  • I have updated the documentation to reflect these changes.
  • I have added entries to the changelog for any noteworthy additions, changes, fixes, or removals.
  • I have added migration instructions to the upgrade guide (if needed).
  • The changes follow the project's style guidelines and introduce no new warnings.
  • The changes are fully tested and pass the CI checks.
  • I have reviewed my own code changes.

If PR contains AI-assisted content:

  • I have disclosed the use of AI tools in the PR description as per our AI Usage Guidelines.
  • AI-assisted commits include an Assisted-by: [Model Name] via [Tool Name] footer.
  • I confirm that I have personally reviewed and understood all AI-generated content, and accept full responsibility for it.

(cherry picked from commit 8cec5ca)

@mergify mergify bot added the conflicts PRs that currently have conflicts with their base branch label Mar 31, 2026
@mergify
Copy link
Copy Markdown
Author

mergify bot commented Mar 31, 2026

Cherry-pick of 8cec5ca has failed:

On branch mergify/bp/v3.x/pr-1596
Your branch is up to date with 'origin/v3.x'.

You are currently cherry-picking commit 8cec5cad.
  (fix conflicts and run "git cherry-pick --continue")
  (use "git cherry-pick --skip" to skip this patch)
  (use "git cherry-pick --abort" to cancel the cherry-pick operation)

Changes to be committed:
	modified:   CHANGELOG.md
	modified:   pyproject.toml

Unmerged paths:
  (use "git add/rm <file>..." as appropriate to mark resolution)
	both modified:   CMakeLists.txt
	both modified:   cmake/ExternalDependencies.cmake
	deleted by us:   mlir/lib/Compiler/CMakeLists.txt
	both modified:   mlir/lib/Conversion/MQTOptToMQTRef/CMakeLists.txt
	both modified:   mlir/lib/Conversion/MQTRefToMQTOpt/CMakeLists.txt
	both modified:   mlir/lib/Conversion/MQTRefToQIR/CMakeLists.txt
	deleted by us:   mlir/lib/Conversion/QCOToJeff/CMakeLists.txt
	both modified:   mlir/lib/Conversion/QIRToMQTRef/CMakeLists.txt
	both modified:   mlir/lib/Dialect/MQTOpt/IR/CMakeLists.txt
	both modified:   mlir/lib/Dialect/MQTRef/IR/CMakeLists.txt
	both modified:   mlir/lib/Dialect/MQTRef/Translation/CMakeLists.txt
	deleted by us:   mlir/lib/Dialect/QC/Builder/CMakeLists.txt
	deleted by us:   mlir/lib/Dialect/QC/Translation/CMakeLists.txt
	deleted by us:   mlir/lib/Dialect/QCO/IR/CMakeLists.txt
	deleted by us:   mlir/lib/Dialect/QCO/Utils/CMakeLists.txt
	deleted by us:   mlir/lib/Dialect/QIR/Builder/CMakeLists.txt
	deleted by us:   mlir/lib/Dialect/QIR/Utils/CMakeLists.txt
	deleted by us:   mlir/lib/Support/CMakeLists.txt

To fix up this pull request, you can check it out locally. See documentation: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally

…age (#1596)

## Description

This PR switches the MQT Core Python package build to use
component-based installation.
This is a first step towards enabling MLIR as part of the Python
package.

The majority of the work in this PR was to properly define our external
dependencies (nlohmann_json, spdlog, QDMI) in a way that they can be
included as part of our installation components configuration.
This requires defining our own installation instructions for these
libraries (except for QDMI).

One of the big plus points of this is that it allows us to drop all the
`DISABLE_INSTALL` in the MLIR code, as the respective code is not added
to any of the components we define at the moment.

## 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 focused and
relevant to this change.
- [x] I have added appropriate tests that cover the new/changed
functionality.
- [x] I have updated the documentation to reflect these changes.
- [x] I have added entries to the changelog for any noteworthy
additions, changes, fixes, or removals.
- [x] I have added migration instructions to the upgrade guide (if
needed).
- [x] The changes follow the project's style guidelines and introduce no
new warnings.
- [x] The changes are fully tested and pass the CI checks.
- [x] I have reviewed my own code changes.

**If PR contains AI-assisted content:**

- [x] I have disclosed the use of AI tools in the PR description as per
our [AI Usage
Guidelines](https://github.com/munich-quantum-toolkit/core/blob/main/docs/ai_usage.md).
- [x] AI-assisted commits include an `Assisted-by: [Model Name] via
[Tool Name]` footer.
- [x] I confirm that I have personally reviewed and understood all
AI-generated content, and accept full responsibility for it.

---------

Signed-off-by: burgholzer <burgholzer@me.com>
(cherry picked from commit 8cec5ca)
Signed-off-by: burgholzer <burgholzer@me.com>

# Conflicts:
#	CMakeLists.txt
#	cmake/ExternalDependencies.cmake
#	mlir/lib/Compiler/CMakeLists.txt
#	mlir/lib/Conversion/MQTOptToMQTRef/CMakeLists.txt
#	mlir/lib/Conversion/MQTRefToMQTOpt/CMakeLists.txt
#	mlir/lib/Conversion/MQTRefToQIR/CMakeLists.txt
#	mlir/lib/Conversion/QCOToJeff/CMakeLists.txt
#	mlir/lib/Conversion/QIRToMQTRef/CMakeLists.txt
#	mlir/lib/Dialect/MQTOpt/IR/CMakeLists.txt
#	mlir/lib/Dialect/MQTRef/IR/CMakeLists.txt
#	mlir/lib/Dialect/MQTRef/Translation/CMakeLists.txt
#	mlir/lib/Dialect/QC/Builder/CMakeLists.txt
#	mlir/lib/Dialect/QC/Translation/CMakeLists.txt
#	mlir/lib/Dialect/QCO/IR/CMakeLists.txt
#	mlir/lib/Dialect/QCO/Utils/CMakeLists.txt
#	mlir/lib/Dialect/QIR/Builder/CMakeLists.txt
#	mlir/lib/Dialect/QIR/Utils/CMakeLists.txt
#	mlir/lib/Support/CMakeLists.txt
@burgholzer burgholzer force-pushed the mergify/bp/v3.x/pr-1596 branch from 480d9c0 to 8ac203d Compare March 31, 2026 07:59
@codecov
Copy link
Copy Markdown

codecov bot commented Mar 31, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@mergify mergify bot merged commit 8b82352 into v3.x Mar 31, 2026
33 checks passed
@mergify mergify bot added the backport Changes that have been backported to a stable release branch label Mar 31, 2026
@mergify mergify bot deleted the mergify/bp/v3.x/pr-1596 branch March 31, 2026 08:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport Changes that have been backported to a stable release branch conflicts PRs that currently have conflicts with their base branch

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant