Skip to content

Commit 1a7a226

Browse files
authored
πŸ”§ Set up rumdl (#1043)
## Description This PR sets up [`rumdl`](https://rumdl.dev/) for linting and formatting Markdown files. ## Checklist - [x] The pull request only contains commits that are focused and relevant to this change. - [x] ~~I have added appropriate tests that cover the new/changed functionality.~~ - [x] ~~I have updated the documentation to reflect these changes.~~ - [x] ~~I have added entries to the changelog for any noteworthy additions, changes, fixes, or removals.~~ - [x] ~~I have added migration instructions to the upgrade guide (if needed).~~ - [x] The changes follow the project's style guidelines and introduce no new warnings. - [x] The changes are fully tested and pass the CI checks. - [x] I have reviewed my own code changes.
1 parent f12faeb commit 1a7a226

16 files changed

Lines changed: 789 additions & 359 deletions

β€Ž.pre-commit-config.yamlβ€Ž

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,9 +105,19 @@ repos:
105105
rev: v3.8.4
106106
hooks:
107107
- id: prettier
108-
types_or: [yaml, markdown, html, css, scss, javascript, json, json5]
108+
types_or: [yaml, html, css, scss, javascript, json, json5]
109109
priority: 5
110110

111+
## Format Markdown files with rumdl
112+
- repo: https://github.com/rvben/rumdl-pre-commit
113+
rev: v0.2.18
114+
hooks:
115+
- id: rumdl
116+
args: [--fix]
117+
priority: 5
118+
- id: rumdl-fmt
119+
priority: 6
120+
111121
## Format CMake files with cmake-format
112122
- repo: https://github.com/cheshirekow/cmake-format-precommit
113123
rev: v0.6.13

β€Ž.rumdl.tomlβ€Ž

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
[per-file-ignores]
2+
# The PR template is not a Markdown document in that sense
3+
"**/pull_request_template.md" = ["MD013", "MD041"]
4+
# The docs files do not necessarily need to start with a top-level heading
5+
"docs/**" = ["MD041"]
6+
# The README starts with an image and may include HTML tags
7+
"README.md" = ["MD033", "MD041"]
8+
9+
[per-file-flavor]
10+
"docs/**" = "myst"
11+
12+
[MD013]
13+
line-length = 80
14+
reflow = true
15+
reflow-mode = "semantic-line-breaks"
16+
17+
[MD060]
18+
enabled = true

β€ŽCHANGELOG.mdβ€Ž

Lines changed: 87 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -5,42 +5,49 @@
55
All notable changes to this project will be documented in this file.
66

77
The 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

Comments
Β (0)