Skip to content

MQT Core 3.9.0 Release

Choose a tag to compare

@github-actions github-actions released this 19 Aug 16:32
· 1 commit to v3.x since this release
Immutable release. Only release title and notes can be modified.
9d4820d

πŸ‘€ What Changed

Please refer to the changelog and the upgrade guide for a structured overview of the changes.

Added

  • ✨ Add PennyLane support for gate-based QDMI devices (#2005, #2147) (@burgholzer, @marcelwa)
  • ✨ Add Device::submitCalibrationJob and mqt.core.qdmi.Device.submit_calibration_job for triggering a calibration run (#2148) (@marcelwa, @burgholzer)
  • ✨ Add SpecAudits, a method and probe script for auditing tests that pin behavior the project never specified (#2124) (@marcelwa)
  • 🚸 Add typed stable-ID construction for Qiskit backends, lazy provider discovery, and sampler and estimator factories with explicit shot and precision defaults (#2084) (@burgholzer)
  • πŸ§ͺ Test static Slurm license admission and QDMI execution with DDSIM and the superconducting device, and document the cluster setup (#2043) (@burgholzer)
  • ✨ Add C++ FoMaC and Python QDMI adapters that open the device named by one local Slurm license environment value (#2025) (@burgholzer)
  • ✨ Add generic C++ FoMaC and Python QDMI support for custom device properties that contain operation handles (#2042) (@burgholzer)
  • πŸ“ Generate llms.txt documentation indexes with Sphinx-LLM (#1989, #2046) (@denialhaag, @burgholzer)
  • ✨ Support retrieving existing jobs by ID through the QDMI client API, C++ FoMaC API, and Python QDMI API, and expose optional device queue length and job queue position (#2008, #2010) (@burgholzer)
  • 🐍 Build CPython 3.15 wheels. Their post-build tests remain disabled until test dependency wheels are available (#2011) (@denialhaag)
  • ✨ Bundle reusable IQM Garnet and Emerald superconducting device models with stable QDMI registry IDs (#1992) (@burgholzer)
  • ✨ Expose compressed vector and matrix DD serialization through bytes-based Python APIs (#1983) (@burgholzer)
  • ✨ Make the neutral-atom and superconducting QDMI devices runtime configurable with session-owned topology, operations, and calibration data (#1974, #1980) (@burgholzer)
  • ✨ Expose registered QDMI device IDs without loading device libraries (#1972) (@burgholzer)
  • ✨ Add typed runtime configuration transport and relocatable assets for QDMI device descriptions (#1967) (@burgholzer)

Changed

  • ⬆️ Update QDMI to version 1.3.3 (#2168) (@denialhaag)
  • ⬆️ Update nanobind to version 2.15.0 (#2141) (@denialhaag)
  • πŸ’₯ Replace the MQT-specific QDMI primitive options mappings with explicit shot and precision defaults (#2084) (@burgholzer)
  • ♻️ Simplify Python optional-dependency checks while preserving the Qiskit and PennyLane availability flags (#2108) (@simon1hofmann)
  • πŸ’₯ Remove the unused pybind11 CMake helper and rename add_mqt_python_binding_nanobind to add_mqt_python_binding (#2106) (@denialhaag)
  • πŸ’₯ Move Python QDMI entities and the neutral-atom specialization to QDMI namespaces, expose device registration and opening through mqt.core.qdmi.driver, retain v3 FoMaC compatibility aliases, and let the Qiskit adapter open stable device IDs directly (#2074) (@burgholzer)
  • πŸš€ Reduce ZX diagram growth for multi-controlled X gates with an exact ancilla-free quadratic decomposition (#1984) (@burgholzer)

Fixed

  • πŸ› Distinguish scalar OpenQASM qubits from one-element qubit registers and reject indexing scalar qubits (#2157) (@DRovara, @burgholzer)
  • πŸ› Preserve the original OpenQASM type error when an assignment's right-hand expression cannot be typed (#2156) (@DRovara, @burgholzer)

Removed

  • πŸ’₯ Remove batch job submission from the QDMI client. Device::submitJob now states that MQT Core does not support batch jobs (#2148) (@marcelwa, @burgholzer)
  • πŸ’₯ Remove QDMI device configuration through [tool.qdmi] in pyproject.toml and the vendored toml++ header (#2116) (@denialhaag)

Full Changelog: v3.8.0...v3.9.0