✨ Add replaceable Client drivers and stable device IDs - #511
Open
burgholzer wants to merge 4 commits into
Open
Conversation
Contributor
|
Codecov Report❌ Patch coverage is
@@ Coverage Diff @@
## codex/multi-program-jobs #511 +/- ##
==========================================================
+ Coverage 90.9% 91.4% +0.5%
==========================================================
Files 7 7
Lines 861 891 +30
Branches 181 192 +11
==========================================================
+ Hits 783 815 +32
+ Misses 78 76 -2
🚀 New features to boost your workflow:
|
burgholzer
added a commit
that referenced
this pull request
Aug 24, 2026
Test duplicate library registration, device initialization failure, and the default configuration path. Simplify allocation to its specified out-of-memory result and attribute the Client ABI changes to PR #511. Assisted-by: GPT-5.6 Sol via Codex
burgholzer
commented
Aug 24, 2026
burgholzer
left a comment
Contributor
Author
There was a problem hiding this comment.
This is mostly looking good already. There's a few minor things that I would like to fix.
burgholzer
marked this pull request as ready for review
August 24, 2026 12:12
12 tasks
Export the complete Client interface, add a pure ABI query and stable device IDs, and make example-driver initialization transactional and retryable. Assisted-by: GPT-5.6 Sol via Codex
Add the direct standard-library includes, make the owning device wrapper noncopyable, and use explicit C boundary representations in tests. Assisted-by: GPT-5.6 Sol via Codex
Test duplicate library registration, device initialization failure, and the default configuration path. Simplify allocation to its specified out-of-memory result and attribute the Client ABI changes to PR #511. Assisted-by: GPT-5.6 Sol via Codex
burgholzer
force-pushed
the
codex/client-driver-abi-stable-ids
branch
from
August 24, 2026 12:43
2ce1ffb to
691cc97
Compare
Generate the public Client ABI macro from the CMake project version, install and document the generated header, remove duplicated test constants, and apply the device-package wording suggestions. Assisted-by: GPT-5.6 Sol via Codex
burgholzer
force-pushed
the
codex/client-driver-abi-stable-ids
branch
from
August 24, 2026 12:49
95e7fb5 to
dcb5742
Compare
11 tasks
Contributor
Author
|
Okay, this should be good now. |
12 tasks
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🤖 AI text below 🤖
Description
This PR defines a versioned, replaceable Client-driver ABI and stable
client-visible device IDs for QDMI v1.4. It is stacked directly on #509 so MQT
Core can consume one ordered QDMI v1.4 stack.
The Client ABI contract adds:
QDMI_driver_get_client_abi_versionas a pure compatibility query beforesession allocation.
QDMI_session_alloc, includingretry after a failed allocation.
QDMI_DEVICE_PROPERTY_IDas a mandatory, stable Client Interface property.A driver supplies the value when a device does not provide it.
The stable ID is opaque, nonempty, immutable for one device handle, unique in a
session, and stable across equivalent sessions and process restarts while the
same logical resource exists. It is separate from display names, endpoints,
credentials, library versions, symbol prefixes, and CMake target properties.
Local validation on the final head passes:
uvx prek run -aCodecov reports 91.4% patch line coverage and 91.05% project line coverage on
the final head. Both required Codecov checks pass.
Checklist
If PR contains AI-assisted content:
Assisted-by: [Model Name] via [Tool Name]footer.