Changelog

All notable changes to this project will be documented in this file.

The format is based on a mixture of Keep a Changelog and Common Changelog. This project adheres to Semantic Versioning, with the exception that minor releases may include breaking changes.

Unreleased

Fixed

  • 🐛 Allow one hour per backend for hardware validation, including queue time, without increasing the QPU execution budget. (#32) (@marcelwa)

  • 🐛 Find generated native coverage reports when uploading to Codecov. (#27) (@marcelwa)

  • 🐛 Accept IBM measurement calibration repeated in per-qubit readout and gate metadata so public backends can initialize for quantum execution. (#25) (@marcelwa)

  • 🧪 Allow 60 seconds for native test discovery on slower runners. (#13) (@marcelwa)

  • 🐛 Avoid hostname resolution when starting offline test servers and report slow wheel tests. (#16) (@marcelwa)

Added

  • ✨ Add optional Executor v2.0 programs through QDMI with native job retrieval and complete results. Expose IBMBackend.executor() through the executor extra, preserving the existing sampler and estimator paths. (#40) (@marcelwa)

  • 📚 Embed native declarations in Sphinx and execute cached simulator notebooks during documentation builds, including sampling and VQE offloaders. Preserve standalone native API links. (#37) (@marcelwa)

  • ✨ Add Slurm sampling and VQE offloaders with local simulator execution and ibm-sampler and ibm-estimator workers. (#36) (@marcelwa)

  • 👷 Build and repair Windows ARM wheels in CI and releases. Skip optional Python framework tests on this platform; retain native ARM tests. (#35) (@marcelwa)

  • 🧪 Organize native unit, loopback integration, and Python adapter tests by component, with central pytest markers and test selection. Collect native transport and in-process CLI coverage offline, without additional QPU submissions. (#33) (@marcelwa)

  • 👷 Allow maintainers to opt same-repository PRs into bounded IBM hardware checks with the live-qpu-tests label. Reuse successful offline checks and the exact candidate wheel on label addition; ignore unrelated label changes. (#31) (@marcelwa)

  • 📚 Add task-based navigation, Python package and dependency guides, API links, and MQSC branding. Align community support, security reporting, and contribution guidance. (#26) (@marcelwa)

  • 📚 Add generated Python API references and runnable native QDMI, Qiskit, MQT Bench, H₂, and PennyLane QAOA examples with offline validation. (#24) (@marcelwa)

  • ✨ Add PennyLane devices for the IBM catalogue with finite-shot measurements, gradients, shot vectors, and validated native OpenQASM execution. Synthesize CNOT for CZ/ECR bases and fold native RZZ angles into the hardware range. Use MQT Core 4 for the shared Python adapters and Qiskit duration conversion. (#22) (@marcelwa)

  • ✨ Add native environment defaults, explicit API-key files, per-session HTTP timeouts, and explicit calibration and pulse capability reporting. (#20) (@marcelwa)

  • ✨ Configure per-job IBM Runtime dynamical decoupling through a validated JSON parameter, with disabled defaults and unchanged execution limits. (#19) (@marcelwa)

  • 🧪 Gate bounded Berlin and Aachen quantum execution behind all offline CI checks, using the tested wheel, fresh-session retrieval, and redacted diagnostics. Confirm terminal state before collecting public job results. Keep hardware access explicitly opt-in and unverified until the first merged-main run. (#13) (@marcelwa)

  • ✨ Add the public Qiskit backend, metadata-derived targets, physical-layout serialization, ordered results, and shared sampler and estimator primitives. Expose advertised measurement/reset metadata and readout calibration. Honor registered defaults and the shared backend factory, with separate circuit serialization. (#12) (@marcelwa)

  • ✨ Install a relocatable device catalogue, exported QDMI target properties, package path constants, and an information CLI with installed-driver checks. Preserve bundled wheel dependencies during relocation checks. (#11) (@marcelwa)

  • ✨ Implement native OpenQASM 3 jobs, bounded execution, cancellation, retrieval, ordered shots, and histograms with synthetic lifecycle tests and QDMI error codes for invalid buffers and job states. (#10) (@marcelwa)

  • 🧪 Add opt-in, metadata-only live validation for IBM Berlin and Aachen through the installed library, with a manual main-only workflow and offline safety regressions. (#3) (@marcelwa)

  • ✨ Add IBM cloud API-key authentication and native backend, site, and operation queries with offline integration tests. Exclude explicitly faulty operation tuples. (#2) (@marcelwa)

  • 🎉 Initialize the IBM QDMI Device build, packaging, documentation, and automation scaffold. (#1) (@marcelwa)

Changed

  • 🔧 Let uv manage Nox test and documentation environments. Declare the native example’s build tools in its dependency group. (#30) (@marcelwa)

  • ♻️ Index native calibrations by directed site tuple and share gate and readout fidelity validation. Preserve tuple order and measurement precedence. (#29) (@marcelwa)

  • ♻️ Share connection defaults between the Qiskit and PennyLane adapters while preserving explicit overrides and catalogue backend selection. (#28) (@marcelwa)

  • ⚡ Allow independent session and job requests to progress concurrently while preserving shared IAM refresh, per-job result caches, and wait deadlines. (#23) (@marcelwa)

  • 👷 Use GitHub’s self-repository references for reusable CI workflows. (#8) (@marcelwa)

  • 👷 Delegate hook checks to pre-commit.ci and documentation builds to Read the Docs before merging. Retain Actions type checks, source-distribution checks, and offline hardware prerequisites. Use the same Doxygen version for hosted native API builds. Configure release-tag publishing. (#18) (@marcelwa)

  • 🛠️ Format Python project metadata consistently, install the CMake executable used by development sessions, and classify release notes with label-based categories, exclusions, and version rules. (#17) (@marcelwa)

  • 👷 Route CI checks by changed files, aggregate results in 🚦 Check, add Windows ClangCL testing, build caching, and Linux mold setup, and standardize workflow names, project badges, native build ignores, and changelog formatting. (#5) (@marcelwa)