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¶
3.6.1 - 2026-05-21¶
Fixed¶
🐛 Fix segfaults on permutation mismatches in the ZX checker (#929) (@denialhaag)
3.6.0 - 2026-05-13¶
If you are upgrading: please see UPGRADING.md.
Added¶
✨ Add support for many multi-controlled gates to the ZX-calculus checker (#907) (@burgholzer)
Changed¶
⬆️ Update
mqt-coreto version 3.6.0 (#907) (@burgholzer)⬆️ Update
nanobindto version 2.12.0 (#907) (@burgholzer)
3.5.0 - 2026-02-02¶
If you are upgrading: please see UPGRADING.md.
Changed¶
⬆️ Update
mqt-coreto version 3.4.1 (#837) (@denialhaag)⬆️ Update
nanobindto version 2.11.0 (#837) (@denialhaag)♻️ Auto-generate
pyqcec.pyiviananobind.stubgen(#831) (@denialhaag)🔧 Replace
mypywithty(#775, #825) (@denialhaag)
3.4.0 - 2026-01-13¶
If you are upgrading: please see UPGRADING.md.
Changed¶
♻️ Migrate Python bindings from
pybind11tonanobind(#817) (@denialhaag)📦️ Provide Stable ABI wheels for Python 3.12+ (#817) (@denialhaag)
⬆️ Bump minimum required
mqt-coreversion to3.4.0(#817) (@denialhaag)👷 Stop testing on
ubuntu-22.04andubuntu-22.04-armrunners (#796) (@denialhaag)👷 Stop testing with
clang-19and start testing withclang-21(#796) (@denialhaag)👷 Fix macOS tests with Homebrew Clang via new
munich-quantum-toolkit/workflowsversion (#796) (@denialhaag)👷 Re-enable macOS tests with GCC by disabling module scanning (#796) (@denialhaag)
Removed¶
🔥 Remove wheel builds for Python 3.13t (#796) (@denialhaag)
3.3.0 - 2025-10-14¶
If you are upgrading: please see UPGRADING.md.
Added¶
👷 Enable testing on Python 3.14 (#730) (@denialhaag)
Changed¶
⬆️ Bump minimum required
mqt-coreversion to3.3.1(#735) (@denialhaag)
Removed¶
🔥 Drop support for Python 3.9 (#704) (@denialhaag)
3.2.0 - 2025-08-01¶
If you are upgrading: please see UPGRADING.md.
Added¶
🐍 Build Python 3.14 wheels (#665) (@denialhaag)
Changed¶
⬆️ Bump minimum required
mqt-coreversion to3.2.1(#668) (@denialhaag)⬆️ Bump minimum required
mqt-coreversion to3.2.0(#667) (@denialhaag)⬆️ Require C++20 (#667) (@denialhaag)
✨ Expose enums to Python via
pybind11’s new (enum.Enum-compatible)py::native_enum(#663) (@denialhaag)
Fixed¶
🚸 Increase binary compatibility between
mqt-qcecandmqt-core(#662) (@denialhaag)
3.1.0 - 2025-07-11¶
If you are upgrading: please see UPGRADING.md.
Changed¶
⬆️ Bump minimum required
mqt-coreversion to3.1.0(#646) (@denialhaag)⬆️ Bump minimum required
pybind11version to3.0.0(#646) (@denialhaag)♻️ Move the C++ code for the Python bindings to the top-level
bindingsdirectory (#618) (@denialhaag)♻️ Move all Python code (no tests) to the top-level
pythondirectory (#618) (@denialhaag)💥 ZX-calculus checker now reports that it can’t handle circuits with non-garbage ancilla qubits (#512) (@pehamTom)
Deprecated¶
🗑️ Deprecate the
modeargument ofgenerate_profile()and theancilla_modeargument ofverify_compilation()(#626) (@denialhaag)
Fixed¶
3.0.0 - 2025-05-05¶
If you are upgrading: please see UPGRADING.md.
Added¶
✨ Support Qiskit 2.0+ (#571) (@burgholzer)
Changed¶
🚚 Move MQT QCEC to the munich-quantum-toolkit GitHub organization
♻️ Use the
mqt-corePython package for handling circuits (#432) (@burgholzer)♻️ Return counterexamples as decision diagrams instead of dense arrays (#566) (@burgholzer)
♻️ Reduce and restructure public interface of the
EquivalenceCheckingManager(#566) (@burgholzer)⬆️ Bump minimum required CMake version to
3.24.0(#582) (@burgholzer)📝 Rework existing project documentation (#566) (@burgholzer)
Removed¶
🔥 Remove support for
.real,.qc,.tfc, andGRCSfiles (#582) (@burgholzer)🔥 Remove several re-exports from the top-level
mqt-qcecpackage (#566) (@burgholzer)
2.8.2 - 2025-02-18¶
📚 Refer to the GitHub Release Notes for previous changelogs.