Skip to content

✨ Migrate the IQM backend to configurable QDMI devices - #140

Merged
burgholzer merged 25 commits into
mainfrom
agent/qdmi-core-1912
Jul 30, 2026
Merged

✨ Migrate the IQM backend to configurable QDMI devices#140
burgholzer merged 25 commits into
mainfrom
agent/qdmi-core-1912

Conversation

@burgholzer

@burgholzer burgholzer commented Jul 25, 2026

Copy link
Copy Markdown
Collaborator

🤖 AI text below 🤖

Summary

  • export the stable iqm.default device ID and IQM symbol prefix through
    QDMI's public device-target helper so MQT Core can synthesize relocatable QDMI
    manifests
  • expose the same metadata as Python package constants and preserve filesystem
    paths when registering the packaged library
  • register the packaged IQM device only as a fallback and open a fresh device
    session for each IQMBackend
  • preserve configured device defaults while applying explicit arguments and
    environment variables as session overrides
  • keep scikit-build settings package-scoped when documentation builds the IQM
    package
  • cover endpoint precedence, registration, metadata, and session behavior with
    hermetic tests

Motivation

This migrates QDMI-on-IQM from add_dynamic_device_library to the configurable
device registry and session APIs released in MQT Core 3.8.0. Applications can
use the stable device identity consistently across generated manifests,
configuration files, and Python integrations without duplicating loader
behavior.

The Python integration now consumes the published mqt-core~=3.8.0 package
directly. No source override, synthetic source version, or downstream LLVM/MLIR
setup is required.

Dependencies

  • MQT Core 3.8.0 from PyPI
  • merged QDMI commit b94be74fdac61dfdea51fc35ead5c314dbc89862

Validation

  • Python 3.14 against the published MQT Core 3.8.0 wheel: 33 passed, 3
    credential-gated tests skipped
  • full lint suite passed
  • uv lock
  • git diff --check
  • the documentation environment replaced the former Git dependency with the
    published wheel; local notebook execution then reached the expected
    credential-gated live Resonance example
  • no live IQM hardware tests were run

Assisted-by: GPT-5 via Codex
Assisted-by: GPT-5 via Codex
Assisted-by: GPT-5.6 via Codex
Assisted-by: GPT-5.6 via Codex
Assisted-by: GPT-5.6 via Codex
Assisted-by: GPT-5.6 via Codex
@codecov

codecov Bot commented Jul 25, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

Assisted-by: GPT-5.6 via Codex
Assisted-by: GPT-5.6-terra via Codex
Update the temporary source pin and lockfile to the validated MQT Core PR head.

Assisted-by: GPT-5.6-sol via Codex
Repin MQT Core after the cross-project target metadata contract was generalized and export the IQM device identity through the neutral QDMI property names.

Assisted-by: GPT-5.6 via Codex
Consume QDMI's public metadata helper and repin the integration to the
reviewed MQT Core configuration head.

Assisted-by: GPT-5.6-sol via Codex
Assisted-by: gpt-5.6-sol via Codex
Avoid leaking IQM-specific scikit-build targets into source builds of dependencies such as MQT Core.

Assisted-by: gpt-5.6-sol via Codex
Update the temporary QDMI source pin after PR #475 was rebased.

Assisted-by: gpt-5.6-sol via Codex
Preserve the new integration guidance alongside the configurable QDMI device changelog entries.

Assisted-by: GPT-5.6-sol via Codex
Update the temporary source dependency to the refreshed configurable QDMI branch after it incorporated the mandatory LLVM/MLIR build foundation.

Assisted-by: GPT-5.6-sol via Codex
Use an IQM-specific environment variable only for locating generated headers while retaining package-scoped scikit-build settings.

Assisted-by: GPT-5.6-sol via Codex
Expose the device identifier and prefix as package constants so registration, opening, and tests share one definition. Preserve the filesystem path type when constructing the MQT Core device definition.

Assisted-by: GPT-5.6-sol via Codex
Use the merged QDMI template revision and build against the exact v3.x backport head without provisioning LLVM/MLIR.

Assisted-by: GPT-5.6-sol via Codex
Remove the temporary source override now that the configurable QDMI device APIs are available from the published package.

Assisted-by: GPT-5.6-sol via Codex
@burgholzer burgholzer self-assigned this Jul 30, 2026
Keep QDMI 1.3.0 as the supported minimum and fetch v1.3.2 while exporting the stable device metadata directly.

Assisted-by: GPT-5.6-sol via Codex
@burgholzer burgholzer added the dependencies Pull requests that update a dependency file label Jul 30, 2026
@burgholzer
burgholzer marked this pull request as ready for review July 30, 2026 12:52
@burgholzer burgholzer added the enhancement New feature or request label Jul 30, 2026
@burgholzer
burgholzer merged commit 39c2892 into main Jul 30, 2026
36 checks passed
@burgholzer
burgholzer deleted the agent/qdmi-core-1912 branch July 30, 2026 13:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant