💥 Remove unused pulse metadata - #513
Conversation
cab083c to
d3c989d
Compare
|
d3c989d to
d6ce0da
Compare
mnfarooqi
left a comment
There was a problem hiding this comment.
@mortaza-lrz is working on a proposal for QDMI v2. However, if no other breaking changes are introduced in v1.4, keeping the enums intact makes sense. Removing them could create extra overhead for implementers who need to avoid breaking changes caused by shifting enum values.
|
As you can see from this PR stack, QDMI v1.4 will likely contain a few more breaking changes/cleanups. |
It's fine for the pulse enums it can be added in v2 when needed. 👍 (The intended emoji appears to be disabled in the repository, or there is a GitHub glitch.) I was just pointing out the issue of backward compatibility, and how inconvenient it would be for developers trying to develop software stacks that are compatible with all these different versions. Hopefully, from v2 onwards, backward compatibility will be in the list of priorities for QDMI. |
Definitely. Already now, we are trying to be very mindful with breaking changes and only make them when they genuinely make sense and are driven by a particular use case that was not possible before the change. I would not expect hosting entities to support multiple major versions of the interface in parallel. |
|
Unfortunately, hosting entities cannot choose which version they support. It depends on the devices being hosted and the QDMI device version supported by their vendors. Some vendors would quickly adopt the newer version, while others would still only support the older version. For now, the only workaround is for hosting entities to have their own layer of abstraction to support multiple versions. |
|
Yeah. At MQSC, we are trying very hard to push and support vendors in a quick update/upgrade path, which would hopefully ease the situation in the future. |
Drop the pulse-support device property and level type because QDMI defines no pulse-programming interface. Close the regular property enum gap and leave pulse support to separate vendor interfaces. Assisted-by: GPT-5.6 Sol via Codex
d6ce0da to
52b0abb
Compare
🤖 AI text below 🤖
Description
Remove
QDMI_DEVICE_PROPERTY_PULSESUPPORTandQDMI_Device_Pulse_Support_Level, which have no corresponding pulse-programming interface. Keep provider-specific pulse programs possible without prescribing their design; requirements are tracked in #523.This is the second metadata-cleanup layer:
v1.4→ #512 → #513. No dependency on payload capabilities, multi-program jobs, or replaceable drivers remains. The regular property-enum gap is closed; consumers must rebuild against matching 1.4 headers.Validation
uvx prek run -a: passed.AI assistance: Codex separated the stack, preserved current develop tests, and ran local validation.
Pulse submission boundary
Removing the coarse pulse metadata does not remove provider-defined pulse-program submission. Opaque payload transport, compiler-construction metadata, and a standardized pulse programming interface are separate concerns. Keep IQM #200 and #234 linked to #171/#523 without making transport wait for a universal pulse interface.
Before the interface change merges, link a working Core consumer and a demonstration with at least one existing provider, preferably both where applicable. Compatibility evidence suffices when a provider needs no changes. Development revisions may support these tests; published artifacts must use released dependencies. Core adoption: #2233.
Checklist
If PR contains AI-assisted content:
Assisted-by: [Model Name] via [Tool Name]footer.