Enforce two channel names for Measure operation
Explanation of changes
Make the channel map explicit: output channel names activate only the output module ports, and inputs only input module ports. Therefore, operations requiring both input and output like Measure require two channel names, which share a portclock. ChannelPath has an extra field channel_name_measure (list is only to allow for a second element for compatibility with old style hardware configs).
Allowed channel name combinations with the same portclock:
- QRM
-
complex_output_0+complex_input_0 -
real_output_{i}+real_input_{j}
-
- QRM_RF:
complex_output_0+complex_input_0
(more combinations are technically allowed, but only for backward compatibility so we do not mention them at the public interface)
These changes define hardware config version "0.2"
Notes:
- Even though there is only one channel name in the quantify tests, these won’t fail because all acquisitions are mocks.
- This MR might fix SE-500
Motivation of changes
Having output channel names activating inputs implicitly is very confusing, hard to maintain, and has proven to be bug-prone. Time to fix that.
Merge checklist
See also merge request guidelines
-
Merge request has been reviewed (in-depth by a knowledgeable contributor), and is approved by a project maintainer. -
New code is covered by unit tests (or N/A). -
New code is documented and docstrings use numpydoc format (or N/A). -
New functionality: considered making private instead of extending public API (or N/A). -
Public API changed: added @deprecatedand entry in deprecated code suggestions (or N/A). -
Newly added/adjusted documentation and docstrings render properly (or N/A). -
Pipeline fix or dependency update: post in #software-for-developerschannel to mergemainback in or update local packages (or N/A). -
Tested on hardware (or N/A). -
CHANGELOG.mdfor breaking changes andAUTHORS.mdhave been updated (or N/A). -
Update Hardware backends documentation if backend interface change or N/A -
Check whether performance is significantly affected by looking at the Performance metrics results. -
Windows tests in CI pipeline pass (manually triggered by maintainers before merging). - Maintainers do not hit Auto-merge, we need to actively check as manual tests do not block pipeline
For reference, the issues workflow is described in the contribution guidelines.