Skip to content

Conversation

@idavis
Copy link
Contributor

@idavis idavis commented Oct 16, 2025

Migrates Azure Quantum's Qiskit backends to the BackendV2 interface and introduces an AzureBackendConfig wrapper that materialises Target metadata and enforces single-circuit job semantics (azure-quantum/azure/quantum/qiskit/backends/backend.py). This enables support for Qiskit 1 & 2.

Release notes

  • Default QIR payload generation now skips transpilation unless you pass skipTranspile=False. Circuits requiring transpilation should transpile prior to running the circuit. A deprecation warning is issued if the user passes skipTranspile=False to backend.run(...).
  • Backends now extend qiskit.providers.BackendV2. Existing code that relied on BackendV1-specific methods (for example, calling backend.name() as a function or accessing backend.configuration()-derived fields that no longer exist on BackendV2) will fail until it is updated to the BackendV2 class (use the backend.name attribute, rely on backend.target, etc.).
  • Provider/test utilities expecting BackendV1 objects will no longer work. Any helpers, mocks, or third-party extensions that instantiate Azure backends assuming the BackendV1 API (including the old job submission plumbing and configuration schema) must be rewritten to understand BackendV2 targets and options.
  • Accessing the backend name must now be done with a property, replacing the backend.name() syntax with backend.name.
  • Accessing the backend provider must now be done with a property, replacing the backend.provider() syntax with backend.provider.
  • New deprecation warnings on AzureBackendBase.__init__ and backend.configuration() are warnings and do not break runtime behavior.

Overview

  • Removes legacy target-level QIR gate accounting
  • Removes Qiskit batch infrastructure that is not needed.
  • Adds a tox-driven Qiskit version matrix, updates CI/publish pipelines, documents the workflow, and records dependencies required for the split test runs (azure-quantum/tox.ini, .ado/ci.yml, .ado/publish.yml, azure-quantum/tests/README.md, azure-quantum/requirements-dev.txt, azure-quantum/requirements-qiskit.txt).
  • Reworks the Qiskit unit test suite for dual 1.x/2.x compatibility and captures new helpers for experiment headers (azure-quantum/tests/unit/test_qiskit.py).
  • Removes legacy target-level QIR gate accounting that is obsolete under the new BackendV2 surface (azure-quantum/azure/quantum/target/target.py).

Testing

  • CI now runs tox -e py311-qiskit1,py311-qiskit2 via the updated pipelines. Qiskit tests are run separately from other integation tests
  • Cross-version result handling added to Qiskit tests. Qiskit changed the result object itself between Qiskit 1 & 2 so attribute access for header and metadata no longer exists and are just keys in a dict.

@idavis idavis self-assigned this Oct 16, 2025
@idavis idavis added qiskit A Qiskit issue python Pull requests that update Python code labels Oct 16, 2025
@swernli swernli self-requested a review November 11, 2025 17:31
@idavis idavis marked this pull request as ready for review November 12, 2025 19:29
@idavis idavis requested a review from a team as a code owner November 12, 2025 19:29
@idavis
Copy link
Contributor Author

idavis commented Nov 12, 2025

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@idavis
Copy link
Contributor Author

idavis commented Nov 12, 2025

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@idavis
Copy link
Contributor Author

idavis commented Nov 12, 2025

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

python Pull requests that update Python code qiskit A Qiskit issue

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants