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.
3.10.0 - 2026-09-12
If you are upgrading: please see UPGRADING.md.
- 🎉 Add a photonic subcircuit compiler with loss-aware routing and batched phase optimization (#1059) (@tobi-forster, @burgholzer)
- ✨ Provide extended neutral-atom OpenQASM serialization through
na::serializeOpenQASM(#1124) (@burgholzer) - ✨ Provide the neutral-atom QDMI device and client integration transferred from MQT Core, preserving distinct registered devices with the same name (#1111) (@denialhaag, @burgholzer)
- 🔧 Use Ninja and shared CMake presets on all platforms, removing
-windowsfrom preset names (#1158) (@denialhaag) - 💥 Require CMake 3.28 or newer for source builds and embedded projects (#1146) (@burgholzer)
- ⬆️ Update
mqt-coreto version 3.10.0 (#1144) (@denialhaag, @burgholzer) - ⬆️ Update
nanobindto version 3.0.1 (#1144) (@denialhaag, @burgholzer) - 💥 Require Python 3.11 or newer (#1126) (@denialhaag)
- 📦 Publish one split-mode
cp311-abi3wheel for GIL-enabled CPython 3.11 and newer (#1144) (@denialhaag) - 📦 Publish one
cp315-abi3twheel for free-threaded CPython 3.15 and newer (#1144) (@denialhaag) - 💥 Raise the minimum Qiskit version from 1.0.0 to 2.1.0 (#1144) (@denialhaag)
- ♻️ Own the
singleQubitGateFusion,decomposeSWAP,cancelCNOTs, andreplaceMCXWithMCZcircuit transformations (#1125) (@simon1hofmann, @burgholzer) - ♻️ Own the neutral-atom computation IR and circuit operations (#1111) (@denialhaag, @burgholzer)
- 💥 Drop support for x86 macOS and stop publishing the respective wheels (#1126) (@denialhaag)
- ⬆️ Raise the macOS deployment target to 13.3 to enable
std::formatin libc++ (#1126) (@denialhaag)
- 🐛 Preserve mid-circuit measurements, resets, and barriers during single-qubit gate fusion (#1125) (@burgholzer)
- 🐛 Preserve bijective layouts when the heuristic mapper moves logical qubits (#1153) (@burgholzer)
- 🐛 Preserve the input circuit name during mapping (#1154) (@burgholzer)
- 🐛 Handle Qiskit targets without calibration properties (#1152) (@burgholzer)
3.9.0 - 2026-08-24
If you are upgrading: please see UPGRADING.md.
- 🐍 Start building CPython 3.15 wheels (#1096) (@denialhaag)
- ⬆️ Update
mqt-coreto version 3.9.0 (#1116) (@denialhaag) - ⬆️ Update
nanobindto version 2.15.0 (#1116) (@denialhaag) - ♻️ Move output-permutation measurement construction from MQT Core into QMAP (#1106) (@simon1hofmann)
3.8.0 - 2026-07-09
If you are upgrading: please see UPGRADING.md.
- ⬆️ Update
mqt-coreto version 3.7.0 (#1069) (@denialhaag) - ⬆️ Update
nanobindto version 2.13.0 (#1069) (@denialhaag) - ♻️ Move auxiliary datastructures used in, e.g., NASP and NALAC from MQT Core to QMAP (#1058) (@ystade)
- 📝 Remove support for generating LaTeX documentation (#1057) (@denialhaag)
3.7.0 - 2026-06-17
If you are upgrading: please see UPGRADING.md.
- 🚸 Add CMake presets to provide a standardized and reproducible way to configure builds (#1020) (@denialhaag)
- ⬆️ Update munich-quantum-toolkit/workflows to version
v2.0.1(#1020) (@denialhaag) - 🎨 Add two-qubit gate layer to decomposer interface in zoned neutral atom compiler ([#976]) (@ystade)
- ⬆️ Update
mqt-coreto version 3.6.0 ([#1011]) (@denialhaag) - ⬆️ Update
nanobindto version 2.12.0 ([#1011]) (@denialhaag)
3.6.0 - 2026-02-24
If you are upgrading: please see UPGRADING.md.
- ⬆️ Update
spdlogto version 1.17.0 (#921) (@denialhaag) - ⬆️ Update
mqt-coreto version 3.4.1 (#924) (@denialhaag) - ⬆️ Update
nanobindto version 2.11.0 (#924) (@denialhaag) - 🔧 Replace
mypywithty(#912) (@denialhaag) - ♻️ Migrate Python bindings from
pybind11tonanobind(#911, #916) (@denialhaag) - 📦️ Provide Stable ABI wheels for Python 3.12+ (#911) (@denialhaag)
3.5.0 - 2025-12-16
If you are upgrading: please see UPGRADING.md.
- ✨ Add iterative diving search as a more efficient placement heuristic method (#862) (@ystade)
- ✨ Add relaxed routing method to the zoned neutral atom compiler (#859) (@ystade)
- 👷 Stop testing on
ubuntu-22.04andubuntu-22.04-armrunners (#874) (@denialhaag) - 👷 Stop testing with
clang-19and start testing withclang-21(#874) (@denialhaag) - 👷 Fix macOS tests with Homebrew Clang via new
munich-quantum-toolkit/workflowsversion (#874) (@denialhaag) - 👷 Re-enable macOS tests with GCC by disabling module scanning (#874) (@denialhaag)
- ✨ Enable code generation for relaxed routing constraints (#848) (@ystade)
- ✨ Add
max_filling_factorto scheduler in Zoned Neutral Atom Compiler (#847) (@ystade) - ✨ Added extension to the hybrid routing mapper to also support Bridge gates, Passby moves and Flying ancillas (#832) (@lsschmid)
- ✨ Added hybrid synthesis routing for iterative circuit constructions (#832) (@lsschmid)
- 🔥 Remove wheel builds for Python 3.13t (#874) (@denialhaag)
3.4.0 - 2025-10-15
If you are upgrading: please see UPGRADING.md.
- 👷 Enable testing on Python 3.14 (#796) (@denialhaag)
- 📝 Improve error message in the NA compiler (#804) (@ystade)
- ⬆️ Bump minimum required
mqt-coreversion to3.3.1(#803) (@denialhaag, @ystade)
- 🔥 Drop support for Python 3.9 (#767) (@denialhaag)
3.3.1 - 2025-08-07
3.3.0 - 2025-08-04
If you are upgrading: please see UPGRADING.md.
- 🐍 Start building CPython 3.14 wheels (#717) (@denialhaag)
- ⬆️ Bump minimum required
mqt-coreversion to3.2.1(#720) (@denialhaag) - ⬆️ Require C++20 (#720) (@denialhaag)
- ♻️ Neutral Atom Compiler: Merge Placement and Routing stage into a Layout Synthesis stage (#713) (@ystade)
- ✨ Expose enums to Python via
pybind11's new (enum.Enum-compatible)py::native_enum(#715) (@denialhaag)
- 🚸 Make function to export architecture in
.namachineformat available from Python (#719) (@ystade) - 🚸 Increase binary compatibility between
mqt-qmap,mqt-core, andmqt-qcec(#714) (@denialhaag)
3.2.0 - 2025-07-16
If you are upgrading: please see UPGRADING.md.
- ♻️ Restructure the Python code to introduce modules (#665) (@denialhaag)
- ♻️ Restructure the C++ code for the Python bindings to mirror the introduced Python modules (#665) (@denialhaag)
- ⬆️ Bump minimum required
mqt-coreversion to3.1.0(#694) (@denialhaag) - ⬆️ Bump minimum required
pybind11version to3.0.0(#694) (@denialhaag)
- 🔥 Remove CMake function
add_mqt_qmap_binding(#665) (@denialhaag)
3.1.3 - 2025-05-28
- 🐛 Fix the CD pipeline by changing the statistics struct in the zoned neutral atom compiler (#661) (@ystade)
3.1.2 - 2025-05-27
- 🐛 Entirely deactivate PDF export in documentation build (#660) (@ystade)
- 📝 Append the docstring for the
__init__method to the class docstring in the documentation (#660) (@ystade)
3.1.1 - 2025-05-27
3.1.0 - 2025-05-26
- ✨ Add new compilers for zoned neutral atom architectures (a routing-agnostic and routing-aware compiler) (#624) (@ystade)
- ✨ Add a new CMake function
add_mqt_qmap_bindingto add a Python binding library (#624) (@ystade)
- ♻️ Move the C++ code for the Python bindings to the top-level
bindingsdirectory (#624) (@ystade) - ♻️ Move all Python code (no tests) to the top-level
pythondirectory (#624) (@ystade) - ♻️ Restructure the Python bindings for neutral atom tools into separate modules (#624) (@ystade)
3.0.0 - 2025-05-08
If you are upgrading: please see UPGRADING.md.
- ✨ Support Qiskit 2.0+ (#610) (@burgholzer)
- 🚚 Move MQT QMAP to the munich-quantum-toolkit GitHub organization
- ♻️ Use the
mqt-corePython package for handling circuits (#418) (@burgholzer) - ⬆️ Bump minimum required CMake version to
3.24.0(#621) (@burgholzer) - ♻️ Adopt new
NAComputationin NASP tool (#608) (@ystade) - ♻️ Isolate NALAC from the main library (#608, #609) (@ystade)
- 📝 Rework existing project documentation (#614) (@burgholzer)
- 🔥 Remove teleportation support for the heuristic mapping (#621) (@burgholzer)
- 🔥 Remove support for
BackendV1Qiskit backends (#610) (@burgholzer) - 🔥 Remove support for
.real,.qc,.tfc, andGRCSfiles (#621) (@burgholzer) - 🔥 Remove
yaml-cppdependency (#608) (@ystade)
2.8.0 - 2024-11-18
📚 Refer to the GitHub Release Notes for previous changelogs.