π What Changed
The last (this time for real) pre-release in the v3 release series. With a couple of further breaking changes.
Brings in 866, 870, 878, 879, 882, 883, 886
βοΈ MQT Core
- π₯ Remove `Teleportation` gate burgholzer (882)
- π¨ Run clang-tidy on MLIR subproject, switch to `LLVM20`, and update to `CMake >= 3.24` burgholzer (879)
- π©Ή Add `insert_or_assign` method to `Permutation` class burgholzer (870)
- β¨Add continuous testing workflow for Qiskit main branch burgholzer (860)
- β¨ Add Python interface improvements and Qiskit export support burgholzer (859)
- β»οΈπ Refactor `qc::Permutation` and fix corner case in Qiskit layout import burgholzer (858)
- π Slightly improve code documentation and `QuantumComputation.__repr__` burgholzer (851)
- π Fix and enhance Qiskit layout and permutation handling burgholzer (850)
- π§ Handle empty quantum and classical registers in qiskit to MQT translation burgholzer (849)
- β¬οΈ scikit-build-core 0.11, PEP 639 license expressions, sphinx fixes, more automerge burgholzer (847)
- β¬οΈ Update googletest and Boost Multiprecision dependencies burgholzer (840)
- πΈ Allow indexed registers as operation arguments burgholzer (839)
- πΈ Add support for indexed identifiers and improve OpenQASM handling burgholzer (832)
- β¨ Add State Preparation Algorithm M-J-Hochreiter (543)
- β»οΈ Refactor QASM import functionality and remove deprecated formats burgholzer (822)
- β¨ Ancillary and garbage support TooMuchDakka (635)
- β»οΈ Refactor handling of gate matrices and inverses Joshy-R (752)
- π§ update Python coverage configuration burgholzer (811)
- π fix permutation handling in QASM dump burgholzer (810)
- π use fuzzy comparison for floating point in const evaluation equality check burgholzer (809)
- π do not invalidate iterator in block collection burgholzer (808)
- π Fix stripping of idle qubits burgholzer (763)
- β»οΈ Refactor and improve register handling burgholzer (807)
- π update to latest `uv` version that properly supports dynamically versioned packages burgholzer (802)
- β¨ ship shared C++ libraries with mqt-core Python package burgholzer (662)
- β»οΈπ¨ Code cleanup and refactors burgholzer (798)
- πΈ slightly tweak how optional qiskit dependency is handled burgholzer (797)
- π Rework existing project documentation burgholzer (789)
- β simplify dependencies after `uv` update burgholzer (786)
- π add license headers burgholzer (770)
- π¨ adapt to warnings related to Qiskit 1.3 burgholzer (771)
- β¨ Adopt PEP 735 dependency groups burgholzer (762)
- π Fix out-of-bounds error in ZX `EdgeIterator` and needless dummy register in empty circuit construction burgholzer (758)
- π properly handle timing literals in QASM parser burgholzer (724)
- π§ use separate build directories per Python version burgholzer (721)
βοΈ MQT Core DD Package
- β»οΈ Eliminate templates from `dd::Package` class burgholzer (886)
- π₯ Remove `extract_probability_vector` functionality burgholzer (883)
- β»οΈ Remove template parameter from MemoryManager and adjacent classes Joshy-R (866)
- βοΈ Fix potential division by zero error and tweak DD evaluation settings burgholzer (873)
- π Add documentation for DD package burgholzer (831)
- β¨π DD Package Python bindings burgholzer (838)
- β»οΈπ¨ Code cleanup and refactors burgholzer (798)
- π¨ further DD usability improvements burgholzer (764)
- πΈβ»οΈ convenience methods and updates for DD functionality burgholzer (674)
- π fix endianness in DCX and XX\_minus\_YY gate matrix definition burgholzer (741)
πΈοΈ MQT Core ZX Package
- π Add documentation for ZX-calculus package and C++ API docs setup pehamTom (817)
- π Fix out-of-bounds error in ZX `EdgeIterator` and needless dummy register in empty circuit construction burgholzer (758)
π MQT Core MLIR
- π¨ Run clang-tidy on MLIR subproject, switch to `LLVM20`, and update to `CMake >= 3.24` burgholzer (879)
- β¨ Initial Infrastructure for MLIR within the MQT burgholzer (878)
π Features and Enhancements
- β»οΈ Eliminate templates from `dd::Package` class burgholzer (886)
- π₯ Remove `extract_probability_vector` functionality burgholzer (883)
- π₯ Remove `Teleportation` gate burgholzer (882)
- π¨ Add U operation and allow for Multiple Zones ystade (877)
- β¨ Initial Infrastructure for MLIR within the MQT burgholzer (878)
- β»οΈ Remove template parameter from MemoryManager and adjacent classes Joshy-R (866)
- βοΈ Fix potential division by zero error and tweak DD evaluation settings burgholzer (873)
- β¨ Add Python interface improvements and Qiskit export support burgholzer (859)
- π¨ Refactor `NAComputation` with concrete base classes for every operation and ouput new `.naviz` format ystade (846)
- π§ Only enable IPO per default for Release builds outside of deployment burgholzer (841)
- πΈ Allow indexed registers as operation arguments burgholzer (839)
- β¨π DD Package Python bindings burgholzer (838)
- πΈ Add support for indexed identifiers and improve OpenQASM handling burgholzer (832)
- β¨ Add State Preparation Algorithm M-J-Hochreiter (543)
- β»οΈ Refactor QASM import functionality and remove deprecated formats burgholzer (822)
- β¨ Ancillary and garbage support TooMuchDakka (635)
- β»οΈ Refactor handling of gate matrices and inverses Joshy-R (752)
- π Fix stripping of idle qubits burgholzer (763)
- β»οΈ Refactor and improve register handling burgholzer (807)
- β¨ ship shared C++ libraries with mqt-core Python package burgholzer (662)
- β»οΈπ¨ Code cleanup and refactors burgholzer (798)
- πΈ slightly tweak how optional qiskit dependency is handled burgholzer (797)
- π¨ further DD usability improvements burgholzer (764)
- πΈβ»οΈ convenience methods and updates for DD functionality burgholzer (674)
π Bug Fixes
- π©Ή Add `insert_or_assign` method to `Permutation` class burgholzer (870)
- β¨ Add Python interface improvements and Qiskit export support burgholzer (859)
- β»οΈπ Refactor `qc::Permutation` and fix corner case in Qiskit layout import burgholzer (858)
- π Fix and enhance Qiskit layout and permutation handling burgholzer (850)
- π§ Handle empty quantum and classical registers in qiskit to MQT translation burgholzer (849)
- π fix permutation handling in QASM dump burgholzer (810)
- π use fuzzy comparison for floating point in const evaluation equality check burgholzer (809)
- π do not invalidate iterator in block collection burgholzer (808)
- π Fix stripping of idle qubits burgholzer (763)
- π Fix out-of-bounds error in ZX `EdgeIterator` and needless dummy register in empty circuit construction burgholzer (758)
- π fix endianness in DCX and XX\_minus\_YY gate matrix definition burgholzer (741)
- π properly handle timing literals in QASM parser burgholzer (724)
- π§π unshallow git clone for RtD burgholzer (722)
π Documentation
- π Add JOSS paper burgholzer (869)
- π Update documentation to reflect recent changes burgholzer (861)
- π Slightly improve code documentation and `QuantumComputation.__repr__` burgholzer (851)
- π Add documentation for ZX-calculus package and C++ API docs setup pehamTom (817)
- β¨π Rework and modernize the development guide burgholzer (842)
- π Add documentation for DD package burgholzer (831)
- π Rework existing project documentation burgholzer (789)
- π update copyright notice burgholzer (788)
- π add license headers burgholzer (770)
- π§π unshallow git clone for RtD burgholzer (722)
- π§ update release drafter template and renovate config burgholzer (720)
π¦ Packaging
- π update to latest `uv` version that properly supports dynamically versioned packages burgholzer (802)
- β¨ ship shared C++ libraries with mqt-core Python package burgholzer (662)
- β¨ Adopt PEP 735 dependency groups burgholzer (762)
π§Ή Code Quality
- π¨ Run clang-tidy on MLIR subproject, switch to `LLVM20`, and update to `CMake >= 3.24` burgholzer (879)
- β»οΈ Remove template parameter from MemoryManager and adjacent classes Joshy-R (866)
- β»οΈπ Refactor `qc::Permutation` and fix corner case in Qiskit layout import burgholzer (858)
- β»οΈ Refactor QASM import functionality and remove deprecated formats burgholzer (822)
- β»οΈ Refactor and improve register handling burgholzer (807)
- β»οΈπ¨ Code cleanup and refactors burgholzer (798)
- π¨ adapt to warnings related to Qiskit 1.3 burgholzer (771)
- β¬οΈπͺ Update pre-commit hook astral-sh/ruff-pre-commit to v0.8.0 [renovate[bot]](https://github.com/apps/renovate) (#757)
- π§ use separate build directories per Python version burgholzer (721)
π€ CI
- π¨ Run clang-tidy on MLIR subproject, switch to `LLVM20`, and update to `CMake >= 3.24` burgholzer (879)
- β¨Add continuous testing workflow for Qiskit main branch burgholzer (860)
- π·β¬οΈ update MQT workflows to v1.7 burgholzer (812)
- π§ update Python coverage configuration burgholzer (811)
- π·β¬οΈ update MQT workflows to v1.6 burgholzer (803)
- π¨ adapt to warnings related to Qiskit 1.3 burgholzer (771)
β¬οΈ Dependencies
<details>
<summary>96 changes</summary>
- β¬οΈπ Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#884)
- π¨ Run clang-tidy on MLIR subproject, switch to `LLVM20`, and update to `CMake >= 3.24` burgholzer (879)
- β¬οΈπͺ Update pre-commit hook astral-sh/ruff-pre-commit to v0.11.2 [renovate[bot]](https://github.com/apps/renovate) (#864)
- β¬οΈπ Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#872)
- β¬οΈπ¨βπ» Update actions/github-script action to v7 [renovate[bot]](https://github.com/apps/renovate) (#871)
- β¬οΈπ Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#857)
- β¬οΈπͺ Update pre-commit hook rbubley/mirrors-prettier to v3.5.3 [renovate[bot]](https://github.com/apps/renovate) (#855)
- β¬οΈπͺ Update pre-commit hook python-jsonschema/check-jsonschema to v0.31.3 [renovate[bot]](https://github.com/apps/renovate) (#854)
- β¬οΈπͺ Update pre-commit hook crate-ci/typos to v1.30.1 [renovate[bot]](https://github.com/apps/renovate) (#853)
- β¬οΈπͺ Update pre-commit hook astral-sh/ruff-pre-commit to v0.9.10 [renovate[bot]](https://github.com/apps/renovate) (#852)
- β¬οΈ scikit-build-core 0.11, PEP 639 license expressions, sphinx fixes, more automerge burgholzer (847)
- β¬οΈπͺ Update pre-commit hook crate-ci/typos to v1.30.0 [renovate[bot]](https://github.com/apps/renovate) (#844)
- β¬οΈπͺ Update pre-commit hook astral-sh/ruff-pre-commit to v0.9.9 [renovate[bot]](https://github.com/apps/renovate) (#843)
- β¬οΈ Update googletest and Boost Multiprecision dependencies burgholzer (840)
- β¬οΈπ Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#837)
- β¬οΈπͺ Update pre-commit hook rbubley/mirrors-prettier to v3.5.2 [renovate[bot]](https://github.com/apps/renovate) (#836)
- β¬οΈπͺ Update pre-commit hook python-jsonschema/check-jsonschema to v0.31.2 [renovate[bot]](https://github.com/apps/renovate) (#835)
- β¬οΈπͺ Update pre-commit hook astral-sh/ruff-pre-commit to v0.9.7 [renovate[bot]](https://github.com/apps/renovate) (#833)
- β¬οΈπͺ Update pre-commit hook crate-ci/typos to v1.29.9 [renovate[bot]](https://github.com/apps/renovate) (#834)
- β¬οΈπ Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#830)
- β¬οΈπͺ Update pre-commit hook crate-ci/typos to v1.29.7 [renovate[bot]](https://github.com/apps/renovate) (#828)
- β¬οΈπͺ Update pre-commit hook rbubley/mirrors-prettier to v3.5.1 [renovate[bot]](https://github.com/apps/renovate) (#829)
- β¬οΈπͺ Update pre-commit hook astral-sh/ruff-pre-commit to v0.9.6 [renovate[bot]](https://github.com/apps/renovate) (#827)
- β¬οΈπ Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#825)
- β¬οΈπͺ Update pre-commit hook pre-commit/mirrors-mypy to v1.15.0 [renovate[bot]](https://github.com/apps/renovate) (#824)
- β¬οΈπͺ Update pre-commit hook astral-sh/ruff-pre-commit to v0.9.5 [renovate[bot]](https://github.com/apps/renovate) (#823)
- β¬οΈπ Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#821)
- β¬οΈπͺ Update pre-commit hook python-jsonschema/check-jsonschema to v0.31.1 [renovate[bot]](https://github.com/apps/renovate) (#820)
- β¬οΈπͺ Update pre-commit hook crate-ci/typos to v1.29.5 [renovate[bot]](https://github.com/apps/renovate) (#819)
- β¬οΈπͺ Update pre-commit hook astral-sh/ruff-pre-commit to v0.9.4 [renovate[bot]](https://github.com/apps/renovate) (#818)
- β¬οΈπ Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#816)
- β¬οΈπͺ Update pre-commit hook astral-sh/ruff-pre-commit to v0.9.3 [renovate[bot]](https://github.com/apps/renovate) (#815)
- π·β¬οΈ update MQT workflows to v1.7 burgholzer (812)
- β¬οΈπ Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#806)
- β¬οΈπͺ Update pre-commit hook astral-sh/ruff-pre-commit to v0.9.2 [renovate[bot]](https://github.com/apps/renovate) (#804)
- β¬οΈπͺ Update pre-commit hook pre-commit/mirrors-clang-format to v19.1.7 [renovate[bot]](https://github.com/apps/renovate) (#805)
- π update to latest `uv` version that properly supports dynamically versioned packages burgholzer (802)
- β¬οΈπ Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#801)
- β¬οΈπͺ Update pre-commit hook python-jsonschema/check-jsonschema to v0.31.0 [renovate[bot]](https://github.com/apps/renovate) (#800)
- β¬οΈπͺ Update pre-commit hook astral-sh/ruff-pre-commit to v0.9.1 [renovate[bot]](https://github.com/apps/renovate) (#799)
- β¬οΈπ Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#795)
- β¬οΈπͺ Update pre-commit hook astral-sh/ruff-pre-commit to v0.8.6 [renovate[bot]](https://github.com/apps/renovate) (#794)
- β¬οΈπͺ Update pre-commit hook pre-commit/mirrors-clang-format to v19.1.6 [renovate[bot]](https://github.com/apps/renovate) (#793)
- β¬οΈπͺ Update pre-commit hook crate-ci/typos to v1.29.4 [renovate[bot]](https://github.com/apps/renovate) (#792)
- β¬οΈπͺ Update pre-commit hook astral-sh/ruff-pre-commit to v0.8.5 [renovate[bot]](https://github.com/apps/renovate) (#790)
- β¬οΈπͺ Update pre-commit hook pre-commit/mirrors-mypy to v1.14.1 [renovate[bot]](https://github.com/apps/renovate) (#791)
- β¬οΈπ Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#787)
- β simplify dependencies after `uv` update burgholzer (786)
- β¬οΈπͺ Update pre-commit hook astral-sh/ruff-pre-commit to v0.8.4 [renovate[bot]](https://github.com/apps/renovate) (#782)
- β¬οΈπ Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#785)
- β¬οΈπͺ Update pre-commit hook pre-commit/mirrors-mypy to v1.14.0 [renovate[bot]](https://github.com/apps/renovate) (#784)
- β¬οΈπͺ Update pre-commit hook crate-ci/typos to v1.28.4 [renovate[bot]](https://github.com/apps/renovate) (#783)
- β¬οΈπ Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#769)
- β¬οΈπͺ Update pre-commit hook pre-commit/mirrors-clang-format to v19.1.5 [renovate[bot]](https://github.com/apps/renovate) (#781)
- β¬οΈπͺ Update pre-commit hook crate-ci/typos to v1.28.3 [renovate[bot]](https://github.com/apps/renovate) (#780)
- β¬οΈπͺ Update pre-commit hook astral-sh/ruff-pre-commit to v0.8.3 [renovate[bot]](https://github.com/apps/renovate) (#779)
- β¬οΈπ¨βπ» Update actions/attest-build-provenance action to v2 [renovate[bot]](https://github.com/apps/renovate) (#777)
- β¬οΈπͺ Update pre-commit hook sirosen/texthooks to v0.6.8 [renovate[bot]](https://github.com/apps/renovate) (#776)
- β¬οΈπͺ Update pre-commit hook astral-sh/ruff-pre-commit to v0.8.2 [renovate[bot]](https://github.com/apps/renovate) (#773)
- β¬οΈπͺ Update pre-commit hook rbubley/mirrors-prettier to v3.4.2 [renovate[bot]](https://github.com/apps/renovate) (#775)
- β¬οΈπͺ Update pre-commit hook crate-ci/typos to v1.28.2 [renovate[bot]](https://github.com/apps/renovate) (#774)
- β¬οΈπͺ Update pre-commit hook astral-sh/ruff-pre-commit to v0.8.1 [renovate[bot]](https://github.com/apps/renovate) (#765)
- β¬οΈπͺ Update pre-commit hook python-jsonschema/check-jsonschema to v0.30.0 [renovate[bot]](https://github.com/apps/renovate) (#768)
- β¬οΈπͺ Update pre-commit hook rbubley/mirrors-prettier to v3.4.1 [renovate[bot]](https://github.com/apps/renovate) (#767)
- β¬οΈπͺ Update pre-commit hook crate-ci/typos to v1.28.1 [renovate[bot]](https://github.com/apps/renovate) (#766)
- β¬οΈπ Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#755)
- β¬οΈπ¨βπ» Update cda-tum/mqt-workflows action to v1.5 [renovate[bot]](https://github.com/apps/renovate) (#759)
- β¬οΈπͺ Update pre-commit hook crate-ci/typos to v1.28.0 [renovate[bot]](https://github.com/apps/renovate) (#760)
- β¬οΈπͺ Update pre-commit hook astral-sh/ruff-pre-commit to v0.8.0 [renovate[bot]](https://github.com/apps/renovate) (#757)
- β¬οΈπͺ Update pre-commit hook rbubley/mirrors-prettier to v3.4.0 [renovate[bot]](https://github.com/apps/renovate) (#761)
- β¬οΈπͺ Update pre-commit hook pre-commit/mirrors-clang-format to v19.1.4 [renovate[bot]](https://github.com/apps/renovate) (#756)
- β¬οΈπ Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#754)
- β¬οΈπͺ Update pre-commit hook astral-sh/ruff-pre-commit to v0.7.4 [renovate[bot]](https://github.com/apps/renovate) (#753)
- β¬οΈπ Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#750)
- β¬οΈπͺ Update pre-commit hook astral-sh/ruff-pre-commit to v0.7.3 [renovate[bot]](https://github.com/apps/renovate) (#748)
- β¬οΈπ¨βπ» Update actions/attest-build-provenance action to v1.4.4 [renovate[bot]](https://github.com/apps/renovate) (#747)
- β¬οΈπͺ Update pre-commit hook crate-ci/typos to v1.27.3 [renovate[bot]](https://github.com/apps/renovate) (#749)
- β¬οΈπ Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#746)
- β¬οΈπͺ Update pre-commit hook crate-ci/typos to v1.27.0 [renovate[bot]](https://github.com/apps/renovate) (#745)
- β¬οΈπͺ Update pre-commit hook pre-commit/mirrors-clang-format to v19.1.3 [renovate[bot]](https://github.com/apps/renovate) (#744)
- β¬οΈπͺ Update pre-commit hook astral-sh/ruff-pre-commit to v0.7.2 [renovate[bot]](https://github.com/apps/renovate) (#743)
- β¬οΈπ Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#742)
- β¬οΈπͺ Update pre-commit hook pre-commit/mirrors-mypy to v1.13.0 [renovate[bot]](https://github.com/apps/renovate) (#740)
- β¬οΈπͺ Update pre-commit hook crate-ci/typos to v1.26.8 [renovate[bot]](https://github.com/apps/renovate) (#739)
- β¬οΈπͺ Update pre-commit hook astral-sh/ruff-pre-commit to v0.7.1 [renovate[bot]](https://github.com/apps/renovate) (#738)
- β¬οΈπͺ Update pre-commit hook adamchainz/blacken-docs to v1.19.1 [renovate[bot]](https://github.com/apps/renovate) (#737)
- β¬οΈπ Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#736)
- β¬οΈπͺ Update pre-commit hook pre-commit/mirrors-mypy to v1.12.1 [renovate[bot]](https://github.com/apps/renovate) (#735)
- β¬οΈπͺ Update pre-commit hook srstevenson/nb-clean to v4.0.1 [renovate[bot]](https://github.com/apps/renovate) (#734)
- β¬οΈπͺ Update pre-commit hook srstevenson/nb-clean to v4 [renovate[bot]](https://github.com/apps/renovate) (#733)
- β¬οΈπͺ Update pre-commit hook pre-commit/mirrors-mypy to v1.12.0 [renovate[bot]](https://github.com/apps/renovate) (#732)
- β¬οΈπͺ Update pre-commit hook astral-sh/ruff-pre-commit to v0.7.0 [renovate[bot]](https://github.com/apps/renovate) (#731)
- β¬οΈπͺ Update pre-commit hook pre-commit/mirrors-clang-format to v19.1.2 [renovate[bot]](https://github.com/apps/renovate) (#730)
- β¬οΈπ Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#727)
- β¬οΈπͺ Update pre-commit hook adamchainz/blacken-docs to v1.19.0 [renovate[bot]](https://github.com/apps/renovate) (#726)
- β¬οΈπͺ Update pre-commit hook python-jsonschema/check-jsonschema to v0.29.4 [renovate[bot]](https://github.com/apps/renovate) (#725)
</details>
**Full Changelog**: https://github.com/cda-tum/mqt-core/compare/v2.7.0...v3.0.0