π What Changed
The next, and hopefully final, pre-release in the 3.0 series. Contains 543, 832, 839, 840, 847, 831, 838, 817, 841, which bring in quite some new features. Most notably, Python bindings for the DD package, updated dependencies for googletest and Boost Multiprecision, better OpenQASM 3 support, and scikit-build-core 0.11 support.
βοΈ MQT Core
- β¬οΈ 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
- π 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)
π Features and Enhancements
- π§ 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
- π 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 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
- β»οΈ 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
- π·β¬οΈ 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>86 changes</summary>
- β¬οΈ 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