✨ Add replaceable QDMI drivers and stable device IDs - #511
Open
burgholzer wants to merge 12 commits into
Open
burgholzer wants to merge 12 commits into
burgholzer wants to merge 12 commits into
Conversation
Contributor
|
Codecov Report❌ Patch coverage is
@@ Coverage Diff @@
## develop #511 +/- ##
=========================================
+ Coverage 90.6% 91.1% +0.5%
=========================================
Files 6 6
Lines 745 778 +33
Branches 145 157 +12
=========================================
+ Hits 675 709 +34
+ Misses 70 69 -1
🚀 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
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
force-pushed
the
codex/client-driver-abi-stable-ids
branch
2 times, most recently
from
August 24, 2026 12:49
95e7fb5 to
dcb5742
Compare
11 tasks
Contributor
Author
|
Okay, this should be good now. |
This was referenced Aug 25, 2026
burgholzer
added a commit
that referenced
this pull request
Sep 4, 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
force-pushed
the
codex/client-driver-abi-stable-ids
branch
from
September 4, 2026 09:38
dcb5742 to
8460e91
Compare
This was referenced Sep 4, 2026
burgholzer
added a commit
that referenced
this pull request
Sep 5, 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
force-pushed
the
codex/client-driver-abi-stable-ids
branch
2 times, most recently
from
September 5, 2026 14:40
6591f8e to
c7494d6
Compare
burgholzer
added a commit
that referenced
this pull request
Sep 23, 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
force-pushed
the
codex/client-driver-abi-stable-ids
branch
from
September 23, 2026 13:53
c7494d6 to
b09f3b0
Compare
This was referenced Sep 24, 2026
burgholzer
commented
Sep 25, 2026
Contributor
Author
|
@ystade After quite some iteration, the next PR in this series towards the 1.4 release is ready across the board. I hope this is fairly uncontroversial. Looking forward to your feedback! |
burgholzer
added this pull request to stack #557
September 27, 2026 20:35
burgholzer
added a commit
that referenced
this pull request
Sep 27, 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
force-pushed
the
codex/client-driver-abi-stable-ids
branch
from
September 27, 2026 20:54
8eb74de to
76d12d3
Compare
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
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
Use driver and stable-ID terminology, report the CMake default ID in the example and device template, and document the generated Client Interface ABI macro beside its definition. Assisted-by: GPT-6 via Codex
Require driver-supplied stable IDs for configured top-level devices. Child devices may omit IDs without adding provider requirements or generated identities. Assisted-by: GPT-6 via Codex
Use the same canonical path for the allowlist check and file access instead of reopening the environment-variable spelling. Cover rejection outside the allowed directory in the existing initialization retry test. Assisted-by: GPT-6 via Codex
Document stable identifiers and per-session driver ownership, keep the ABI constant in the public header, and reuse the configured device prefix. Assisted-by: GPT-6 via Codex
Co-authored-by: Lukas Burgholzer <burgholzer@me.com> Signed-off-by: Lukas Burgholzer <burgholzer@me.com>
Use the native Windows library loader so downstream clients can exercise the QDMI example driver on every supported platform. Retain POSIX loading and link its platform library explicitly. Assisted-by: GPT-6 via Codex
List the replaceable ABI, stable device IDs, and Windows example-driver loading separately. Assisted-by: GPT-6 via Codex
Release loaded device libraries when the last driver session closes, so device finalizers run before process-wide dependencies shut down. Accept a device's NOTSUPPORTED response to the token parameter while still propagating actual authentication failures. Extend the existing initialization test to cover library lifetime and reload. Assisted-by: GPT-6 via Codex
burgholzer
force-pushed
the
codex/client-driver-abi-stable-ids
branch
from
September 28, 2026 06:19
76d12d3 to
ffde5f4
Compare
This branch has not been deployed
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
Allow applications to replace a QDMI driver without rebuilding and select configured devices by stable ID. The PR targets
developand retains the merged calibration and pulse removals.The driver exports the Client Interface and reports its ABI version. Both interfaces use the QDMI release version; application–driver compatibility compares major/minor and ignores patch. The ABI macro and its documentation live together in
client.h.QDMI_DEVICE_PROPERTY_IDis the single client-visible identity. Drivers supply configured IDs, overriding device defaults as needed. Device-side reporting stays optional. Configured top-level devices have IDs; child devices may forward a device-reported ID or return NOTSUPPORTED. The example and template report their default stable identifiers, and documentation explains which driver and configuration to record with a saved ID.Validation: release build and 97 CTest cases passed (expected read-only skips); repository lint, C11 header consumption, and Doxygen passed. The canonical configuration-path fix, optional example-driver authentication, and final-session library cleanup are included here because they repair this driver foundation. Core #2229 now reuses QDMI's example driver for runtime tests. The example uses native Windows loading and POSIX loading; the Windows paths are covered by Core's hosted Windows jobs. The downstream Core/provider changes demonstrate installed C++ and Python applications using standard QDMI symbols with interchangeable drivers.
QDMI commit:
ffde5f4aa09e70b681a79418c5071eb65ba8121d. All 19 hosted checks passed on this head.AI assistance: Codex prepared and validated these changes; human review remains required.
Checklist
If PR contains AI-assisted content:
Assisted-by: [Model Name] via [Tool Name]footer.