Backend split-off requirements
This issue will be used to keep track of the requirements for splitting off the Qblox (and Zhinst) backends. This is mostly relevant to the Qblox backend, as that one will be the most work to split off from quantify-scheduler.
Deprecation
- Some users will be reluctant to immediately switch over to a new backend, so we want to create a support branch from a future quantify-scheduler release.
- Which release exactly is TBD, but it should be before we deprecate the backends.
- On the main branch, the existing backends will be marked as deprecated and users will be asked to use the new backends.
Tests
- A comprehensive test suite is needed for the interface to the backends, such that we do not accidentally introduce breaking changes in quantify.
- We temporarily keep the Qblox and Zhinst backends as test dependencies
- We split out tests between unit tests and integration tests
- We have technical debt in the form of a lot of accidental integration tests that should be unit tests. We slowly refactor those.
- TBD: A separate test category can be created for compliance tests with selected backends. For this, we should know which features are supported by which backends (e.g., loops are only supported by the Qblox backend at the moment of writing). How this featureset is determined is TBD.
Documentation
- We eventually move to using a mock backend in tutorials where appropriate
- Small backend-specific examples are okay to keep. We can have (e.g.) the Qblox backend as a docs dependency
- Backend reference guides will be hosted by the vendors themselves. They will be linked to from the quantify documentation.