55All notable changes to this project will be documented in this file.
66
77The format is based on a mixture of [ Keep a Changelog] and [ Common Changelog] .
8- This project adheres to [ Semantic Versioning] , with the exception that minor releases may include breaking changes.
8+ This project adheres to [ Semantic Versioning] ,
9+ with the exception that minor releases may include breaking changes.
910
1011## [ Unreleased]
1112
1213_ If you are upgrading: please see [ ` UPGRADING.md ` ] ( UPGRADING.md#unreleased ) ._
1314
1415### Added
1516
16- - πΈ Add [ CMake presets] to provide a standardized and reproducible way to configure builds ([ #1020 ] ) ([ ** @denialhaag ** ] )
17+ - πΈ Add [ CMake presets] to provide a standardized
18+ and reproducible way to configure builds ([ #1020 ] ) ([ ** @denialhaag ** ] )
1719
1820### Changed
1921
20- - β¬οΈ Update [ munich-quantum-toolkit/workflows] to version ` v2.0.1 ` ([ #1020 ] ) ([ ** @denialhaag ** ] )
21- - π¨ Add two-qubit gate layer to decomposer interface in zoned neutral atom compiler ([ #976 ] ) ([ ** @ystade ** ] )
22+ - β¬οΈ Update [ munich-quantum-toolkit/workflows] to version ` v2.0.1 ` ([ #1020 ] )
23+ ([ ** @denialhaag ** ] )
24+ - π¨ Add two-qubit gate layer to decomposer interface in zoned neutral atom
25+ compiler ([ #976 ] ) ([ ** @ystade ** ] )
2226- β¬οΈ Update ` mqt-core ` to version 3.6.0 ([ #1011 ] ) ([ ** @denialhaag ** ] )
2327- β¬οΈ Update ` nanobind ` to version 2.12.0 ([ #1011 ] ) ([ ** @denialhaag ** ] )
2428
2529### Fixed
2630
27- - π Fix condition to detect previously unrecognized reuse opportunities ([ #953 ] ) ([ ** @ystade ** ] )
31+ - π Fix condition to detect previously unrecognized reuse opportunities
32+ ([ #953 ] ) ([ ** @ystade ** ] )
2833
2934## [ 3.6.0] - 2026-02-24
3035
3136_ If you are upgrading: please see [ ` UPGRADING.md ` ] ( UPGRADING.md#360 ) ._
3237
3338### Added
3439
35- - β¨ Add a (no-op) decomposer component to the zoned neutral atom compiler ([ #902 ] ) ([ ** @ystade ** ] )
40+ - β¨ Add a (no-op) decomposer component to the zoned neutral atom compiler
41+ ([ #902 ] ) ([ ** @ystade ** ] )
3642
3743### Changed
3844
3945- β¬οΈ Update ` spdlog ` to version 1.17.0 ([ #921 ] ) ([ ** @denialhaag ** ] )
4046- β¬οΈ Update ` mqt-core ` to version 3.4.1 ([ #924 ] ) ([ ** @denialhaag ** ] )
4147- β¬οΈ Update ` nanobind ` to version 2.11.0 ([ #924 ] ) ([ ** @denialhaag ** ] )
4248- π§ Replace ` mypy ` with ` ty ` ([ #912 ] ) ([ ** @denialhaag ** ] )
43- - β»οΈ Migrate Python bindings from ` pybind11 ` to ` nanobind ` ([ #911 ] , [ #916 ] ) ([ ** @denialhaag ** ] )
49+ - β»οΈ Migrate Python bindings from ` pybind11 ` to ` nanobind `
50+ ([ #911 ] , [ #916 ] ) ([ ** @denialhaag ** ] )
4451- π¦οΈ Provide Stable ABI wheels for Python 3.12+ ([ #911 ] ) ([ ** @denialhaag ** ] )
4552
4653## [ 3.5.0] - 2025-12-16
@@ -49,19 +56,29 @@ _If you are upgrading: please see [`UPGRADING.md`](UPGRADING.md#350)._
4956
5057### Added
5158
52- - β¨ Add iterative diving search as a more efficient placement heuristic method ([ #862 ] ) ([ ** @ystade ** ] )
53- - β¨ Add relaxed routing method to the zoned neutral atom compiler ([ #859 ] ) ([ ** @ystade ** ] )
59+ - β¨ Add iterative diving search
60+ as a more efficient placement heuristic method ([ #862 ] ) ([ ** @ystade ** ] )
61+ - β¨ Add relaxed routing method to the zoned neutral atom compiler ([ #859 ] )
62+ ([ ** @ystade ** ] )
5463
5564### Changed
5665
57- - π· Stop testing on ` ubuntu-22.04 ` and ` ubuntu-22.04-arm ` runners ([ #874 ] ) ([ ** @denialhaag ** ] )
58- - π· Stop testing with ` clang-19 ` and start testing with ` clang-21 ` ([ #874 ] ) ([ ** @denialhaag ** ] )
59- - π· Fix macOS tests with Homebrew Clang via new ` munich-quantum-toolkit/workflows ` version ([ #874 ] ) ([ ** @denialhaag ** ] )
60- - π· Re-enable macOS tests with GCC by disabling module scanning ([ #874 ] ) ([ ** @denialhaag ** ] )
61- - β¨ Enable code generation for relaxed routing constraints ([ #848 ] ) ([ ** @ystade ** ] )
62- - β¨ Add ` max_filling_factor ` to scheduler in Zoned Neutral Atom Compiler ([ #847 ] ) ([ ** @ystade ** ] )
63- - β¨ Added extension to the hybrid routing mapper to also support Bridge gates, Passby moves and Flying ancillas ([ #832 ] ) ([ ** @lsschmid ** ] )
64- - β¨ Added hybrid synthesis routing for iterative circuit constructions ([ #832 ] ) ([ ** @lsschmid ** ] )
66+ - π· Stop testing on ` ubuntu-22.04 `
67+ and ` ubuntu-22.04-arm ` runners ([ #874 ] ) ([ ** @denialhaag ** ] )
68+ - π· Stop testing with ` clang-19 `
69+ and start testing with ` clang-21 ` ([ #874 ] ) ([ ** @denialhaag ** ] )
70+ - π· Fix macOS tests with Homebrew Clang via new
71+ ` munich-quantum-toolkit/workflows ` version ([ #874 ] ) ([ ** @denialhaag ** ] )
72+ - π· Re-enable macOS tests with GCC by disabling module scanning ([ #874 ] )
73+ ([ ** @denialhaag ** ] )
74+ - β¨ Enable code generation
75+ for relaxed routing constraints ([ #848 ] ) ([ ** @ystade ** ] )
76+ - β¨ Add ` max_filling_factor ` to scheduler in Zoned Neutral Atom Compiler
77+ ([ #847 ] ) ([ ** @ystade ** ] )
78+ - β¨ Added extension to the hybrid routing mapper to also support Bridge gates,
79+ Passby moves and Flying ancillas ([ #832 ] ) ([ ** @lsschmid ** ] )
80+ - β¨ Added hybrid synthesis routing
81+ for iterative circuit constructions ([ #832 ] ) ([ ** @lsschmid ** ] )
6582
6683### Removed
6784
@@ -78,11 +95,13 @@ _If you are upgrading: please see [`UPGRADING.md`](UPGRADING.md#340)._
7895### Changed
7996
8097- π Improve error message in the NA compiler ([ #804 ] ) ([ ** @ystade ** ] )
81- - β¬οΈ Bump minimum required ` mqt-core ` version to ` 3.3.1 ` ([ #803 ] ) ([ ** @denialhaag ** ] , [ ** @ystade ** ] )
98+ - β¬οΈ Bump minimum required ` mqt-core ` version to ` 3.3.1 ` ([ #803 ] )
99+ ([ ** @denialhaag ** ] , [ ** @ystade ** ] )
82100
83101### Fixed
84102
85- - π Fix logging level parameter values and error/warning messages ([ #793 ] ) ([ ** @ystade ** ] )
103+ - π Fix logging level parameter values
104+ and error/warning messages ([ #793 ] ) ([ ** @ystade ** ] )
86105
87106### Removed
88107
@@ -92,7 +111,8 @@ _If you are upgrading: please see [`UPGRADING.md`](UPGRADING.md#340)._
92111
93112### Fixed
94113
95- - π Fix lookup of discrete columns in routing-aware compiler ([ #728 ] ) ([ ** @ystade ** ] )
114+ - π Fix lookup of discrete columns in routing-aware compiler ([ #728 ] )
115+ ([ ** @ystade ** ] )
96116
97117## [ 3.3.0] - 2025-08-04
98118
@@ -104,30 +124,42 @@ _If you are upgrading: please see [`UPGRADING.md`](UPGRADING.md#330)._
104124
105125### Changed
106126
107- - β¬οΈ Bump minimum required ` mqt-core ` version to ` 3.2.1 ` ([ #720 ] ) ([ ** @denialhaag ** ] )
127+ - β¬οΈ Bump minimum required ` mqt-core ` version to ` 3.2.1 ` ([ #720 ] )
128+ ([ ** @denialhaag ** ] )
108129- β¬οΈ Require C++20 ([ #720 ] ) ([ ** @denialhaag ** ] )
109- - β»οΈ Neutral Atom Compiler: Merge Placement and Routing stage into a Layout Synthesis stage ([ #713 ] ) ([ ** @ystade ** ] )
110- - β¨ Expose enums to Python via ` pybind11 ` 's new (` enum.Enum ` -compatible) ` py::native_enum ` ([ #715 ] ) ([ ** @denialhaag ** ] )
130+ - β»οΈ Neutral Atom Compiler:
131+ Merge Placement and Routing stage into a Layout Synthesis stage ([ #713 ] )
132+ ([ ** @ystade ** ] )
133+ - β¨ Expose enums to Python via ` pybind11 ` 's new (` enum.Enum ` -compatible)
134+ ` py::native_enum ` ([ #715 ] ) ([ ** @denialhaag ** ] )
111135
112136### Fixed
113137
114- - πΈ Make function to export architecture in ` .namachine ` format available from Python ([ #719 ] ) ([ ** @ystade ** ] )
115- - πΈ Increase binary compatibility between ` mqt-qmap ` , ` mqt-core ` , and ` mqt-qcec ` ([ #714 ] ) ([ ** @denialhaag ** ] )
138+ - πΈ Make function to export architecture in ` .namachine ` format available from
139+ Python ([ #719 ] ) ([ ** @ystade ** ] )
140+ - πΈ Increase binary compatibility between ` mqt-qmap ` , ` mqt-core ` ,
141+ and ` mqt-qcec ` ([ #714 ] ) ([ ** @denialhaag ** ] )
116142
117143## [ 3.2.0] - 2025-07-16
118144
119145_ If you are upgrading: please see [ ` UPGRADING.md ` ] ( UPGRADING.md#320 ) ._
120146
121147### Changed
122148
123- - β»οΈ Restructure the Python code to introduce modules ([ #665 ] ) ([ ** @denialhaag ** ] )
124- - β»οΈ Restructure the C++ code for the Python bindings to mirror the introduced Python modules ([ #665 ] ) ([ ** @denialhaag ** ] )
125- - β¬οΈ Bump minimum required ` mqt-core ` version to ` 3.1.0 ` ([ #694 ] ) ([ ** @denialhaag ** ] )
126- - β¬οΈ Bump minimum required ` pybind11 ` version to ` 3.0.0 ` ([ #694 ] ) ([ ** @denialhaag ** ] )
149+ - β»οΈ Restructure the Python code to introduce modules ([ #665 ] )
150+ ([ ** @denialhaag ** ] )
151+ - β»οΈ Restructure the C++ code
152+ for the Python bindings to mirror the introduced Python modules ([ #665 ] )
153+ ([ ** @denialhaag ** ] )
154+ - β¬οΈ Bump minimum required ` mqt-core ` version to ` 3.1.0 ` ([ #694 ] )
155+ ([ ** @denialhaag ** ] )
156+ - β¬οΈ Bump minimum required ` pybind11 ` version to ` 3.0.0 ` ([ #694 ] )
157+ ([ ** @denialhaag ** ] )
127158
128159### Fixed
129160
130- - π Fix out-of-bounds access to the vector of reuse qubits ([ #712 ] ) ([ ** @ystade ** ] )
161+ - π Fix out-of-bounds access to the vector of reuse qubits ([ #712 ] )
162+ ([ ** @ystade ** ] )
131163
132164### Removed
133165
@@ -137,14 +169,18 @@ _If you are upgrading: please see [`UPGRADING.md`](UPGRADING.md#320)._
137169
138170### Fixed
139171
140- - π Fix the CD pipeline by changing the statistics struct in the zoned neutral atom compiler ([ #661 ] ) ([ ** @ystade ** ] )
172+ - π Fix the CD pipeline by changing the statistics struct in the zoned neutral
173+ atom compiler ([ #661 ] ) ([ ** @ystade ** ] )
141174
142175## [ 3.1.2] - 2025-05-27
143176
144177### Fixed
145178
146- - π Entirely deactivate PDF export in documentation build ([ #660 ] ) ([ ** @ystade ** ] )
147- - π Append the docstring for the ` __init__ ` method to the class docstring in the documentation ([ #660 ] ) ([ ** @ystade ** ] )
179+ - π Entirely deactivate PDF export in documentation build ([ #660 ] )
180+ ([ ** @ystade ** ] )
181+ - π Append the docstring
182+ for the ` __init__ ` method to the class docstring in the documentation ([ #660 ] )
183+ ([ ** @ystade ** ] )
148184
149185## [ 3.1.1] - 2025-05-27
150186
@@ -156,14 +192,19 @@ _If you are upgrading: please see [`UPGRADING.md`](UPGRADING.md#320)._
156192
157193### Added
158194
159- - β¨ Add new compilers for zoned neutral atom architectures (a routing-agnostic and routing-aware compiler) ([ #624 ] ) ([ ** @ystade ** ] )
160- - β¨ Add a new CMake function ` add_mqt_qmap_binding ` to add a Python binding library ([ #624 ] ) ([ ** @ystade ** ] )
195+ - β¨ Add new compilers for zoned neutral atom architectures
196+ (a routing-agnostic and routing-aware compiler) ([ #624 ] ) ([ ** @ystade ** ] )
197+ - β¨ Add a new CMake function ` add_mqt_qmap_binding ` to add a Python binding
198+ library ([ #624 ] ) ([ ** @ystade ** ] )
161199
162200### Changed
163201
164- - β»οΈ Move the C++ code for the Python bindings to the top-level ` bindings ` directory ([ #624 ] ) ([ ** @ystade ** ] )
165- - β»οΈ Move all Python code (no tests) to the top-level ` python ` directory ([ #624 ] ) ([ ** @ystade ** ] )
166- - β»οΈ Restructure the Python bindings for neutral atom tools into separate modules ([ #624 ] ) ([ ** @ystade ** ] )
202+ - β»οΈ Move the C++ code for the Python bindings to the top-level ` bindings `
203+ directory ([ #624 ] ) ([ ** @ystade ** ] )
204+ - β»οΈ Move all Python code
205+ (no tests) to the top-level ` python ` directory ([ #624 ] ) ([ ** @ystade ** ] )
206+ - β»οΈ Restructure the Python bindings
207+ for neutral atom tools into separate modules ([ #624 ] ) ([ ** @ystade ** ] )
167208
168209## [ 3.0.0] - 2025-05-08
169210
@@ -176,17 +217,21 @@ _If you are upgrading: please see [`UPGRADING.md`](UPGRADING.md#300)._
176217### Changed
177218
178219- π Move MQT QMAP to the [ munich-quantum-toolkit] GitHub organization
179- - β»οΈ Use the ` mqt-core ` Python package for handling circuits ([ #418 ] ) ([ ** @burgholzer ** ] )
180- - β¬οΈ Bump minimum required CMake version to ` 3.24.0 ` ([ #621 ] ) ([ ** @burgholzer ** ] )
220+ - β»οΈ Use the ` mqt-core ` Python package
221+ for handling circuits ([ #418 ] ) ([ ** @burgholzer ** ] )
222+ - β¬οΈ Bump minimum required CMake version to ` 3.24.0 ` ([ #621 ] )
223+ ([ ** @burgholzer ** ] )
181224- β»οΈ Adopt new ` NAComputation ` in NASP tool ([ #608 ] ) ([ ** @ystade ** ] )
182225- β»οΈ Isolate NALAC from the main library ([ #608 ] , [ #609 ] ) ([ ** @ystade ** ] )
183226- π Rework existing project documentation ([ #614 ] ) ([ ** @burgholzer ** ] )
184227
185228### Removed
186229
187- - π₯ Remove teleportation support for the heuristic mapping ([ #621 ] ) ([ ** @burgholzer ** ] )
230+ - π₯ Remove teleportation support
231+ for the heuristic mapping ([ #621 ] ) ([ ** @burgholzer ** ] )
188232- π₯ Remove support for ` BackendV1 ` Qiskit backends ([ #610 ] ) ([ ** @burgholzer ** ] )
189- - π₯ Remove support for ` .real ` , ` .qc ` , ` .tfc ` , and ` GRCS ` files ([ #621 ] ) ([ ** @burgholzer ** ] )
233+ - π₯ Remove support for ` .real ` , ` .qc ` , ` .tfc ` ,
234+ and ` GRCS ` files ([ #621 ] ) ([ ** @burgholzer ** ] )
190235- π₯ Remove ` yaml-cpp ` dependency ([ #608 ] ) ([ ** @ystade ** ] )
191236
192237## [ 2.8.0] - 2024-11-18
@@ -230,7 +275,6 @@ _π Refer to the [GitHub Release Notes] for previous changelogs._
230275[ #796 ] : https://github.com/munich-quantum-toolkit/qmap/pull/796
231276[ #793 ] : https://github.com/munich-quantum-toolkit/qmap/pull/793
232277[ #767 ] : https://github.com/munich-quantum-toolkit/qmap/pull/767
233- [ #760 ] : https://github.com/munich-quantum-toolkit/qmap/pull/760
234278[ #728 ] : https://github.com/munich-quantum-toolkit/qmap/pull/728
235279[ #720 ] : https://github.com/munich-quantum-toolkit/qmap/pull/720
236280[ #719 ] : https://github.com/munich-quantum-toolkit/qmap/pull/719
0 commit comments