🔧 Harden installed QDMI runtime staging - #2231
Conversation
c179ed5 to
a475cff
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
a475cff to
4e8ca87
Compare
4e8ca87 to
7a0a7b2
Compare
7a0a7b2 to
dac07f4
Compare
dac07f4 to
7559735
Compare
f83234e to
4c203d2
Compare
4c203d2 to
d68d7dc
Compare
d68d7dc to
63eab06
Compare
burgholzer
left a comment
There was a problem hiding this comment.
Also quite a bit of meta comments here for the general direction of this series. This should complete the run of feedback through the PRs.
There was a problem hiding this comment.
This feels overly complicated and slightly confusing, especially because of the terminology being used. "closure", "staging", "concrete", "runtime".
I think this is important work to ensure a robust installation and usage; but it needs to be prepared in a better fashion.
Our top distribution channel is the mqt-core Python package. It is either directly used, which needs to work with the shipped libraries. Or it is loaded in other Python-only libraries (also not critical), or it is used to feed a find_package(mqt-core) call in another project (such as MQT QCEC, MQT DDSIM, or MQT QMAP). The latter case is probably the one that is hardest to get right across all systems when it comes to using the QDMI-related functionality.
However, I still have the feeling that most of that was already working quite alright.
The second distribution channel is likely installations in HPC centers. These would typically build MQT Core from source via tools like spack. I do not really foresee major problems there with the solution that we previously had in place (maybe I am missing something though). The key aspect here is that this is almost exclusively for Linux (x86 and arm64), while the Python distribution channel is much broader and needs to cover macOS and Windows.
Maybe one can simplify around that information and already include these thoughts in the iteration on the lower layers.
There was a problem hiding this comment.
This definitely goes out of its way to prove that something works.
I'd personally be fine if this was demonstrated locally but not directly included in the test suite.
Assisted-by: GPT-5.6 Sol via Codex
63eab06 to
7545e0b
Compare
🤖 AI text below 🤖
Description
Stage the complete QDMI runtime closure for installed and imported consumers.
This pull request:
MQT::CoreQDMI,MQT::CoreQDMIDriver, and device libraries throughmqt_copy_qdmi_runtime;qdmi/ProgramFormat.hppheader required byqdmi/Client.hpp; andfind_package(mqt-core)consumer that creates aqdmi::Session.The change only hardens deployment. It does not add another Client or Driver API.
Dependencies
This PR is stacked directly on #2230.
Validation
On the exact replay:
The preceding deployment layer also passed the full 440-step release build and documentation build. The imported-target closure passed simulated Windows generation with CMake 3.28 and 4.4.
Hosted CI is pending for this draft.
AI assistance: OpenAI Codex assisted with implementation, review, testing, and this description.
Checklist
If PR contains AI-assisted content:
🤖 *AI text below* 🤖(titles are exempt).