π What Changed
Python 3.13 is out and Python 3.8 has reached end-of-life. Hence, this release drops support for Python 3.8 and includes Python 3.13 wheels (including the free-threading Python variant).
Additionally, this is the first release with Linux wheels based on `manylinux_2_28` instead of `manylinux2014`. This means generally faster performance for the package on Linux.
This is also the first release including a `uv.lock` file for reproducible, working Python environments. This includes switching from dependabot to renovate for automatically managing dependency updates.
Finally, this release contains a couple of convenience updates for MQT Core itself and its DD package.
βοΈ MQT Core
- β»οΈ move `--reinstall-package` from `noxfile` to `pyproject.toml` configuration burgholzer (711)
- π§ adjust how the CD workflow is run burgholzer (710)
- π©Ή fix endless loop on unsupported operations in OpenQASM gate declarations burgholzer (700)
- β¬οΈ update MQT workflows to `v1.4` burgholzer (692)
- π· Configure Renovate renovate (695)
- π uv lock file burgholzer (694)
- πΈ Allow creating circuits from compound operations burgholzer (690)
- β»οΈ optimize `isDynamic` check and move to `QuantumComputation` class burgholzer (689)
- π Fix dynamic circuit detection burgholzer (687)
- π₯ drop Python 3.8 support burgholzer (684)
- πΈ Small library improvements burgholzer (686)
- πΈ improve nox sessions burgholzer (685)
- πβ¬οΈ update image for Linux wheel builds to `manylinux_2_28` burgholzer (683)
- π©Ή make sure to define `Py_GIL_DISABLED` on Windows for Python 3.13t burgholzer (682)
- π©Ήfix loading circuits from `PathLike` objects burgholzer (681)
- πΈ natively support `c3x`, `c3sqrtx`, and `c4x` gates from OpenQASM 2 burgholzer (680)
- β¬οΈ require `pybind11 >= 2.13.5` burgholzer (679)
- π¨ fix Qiskit 1.2 deprecation warnings burgholzer (673)
- πΈ rename algorithms target and adapt nox config burgholzer (672)
- β»οΈ miscellaneous changes pulled from 622 burgholzer (669)
- β»οΈ reorganize library structure burgholzer (668)
- π₯ remove ECC framework burgholzer (667)
- β¬οΈ update mqt-workflows to v1.3 (moving tag) burgholzer (665)
- β¬οΈ update to scikit-build-core 0.10 burgholzer (664)
βοΈ MQT Core DD Package
- β‘ dedicated unitary simulator DD package config burgholzer (691)
- π©Ή disentangle `mqt-core-dd` and `mqt-core-algo` burgholzer (670)
π Features and Enhancements
- β»οΈ move `--reinstall-package` from `noxfile` to `pyproject.toml` configuration burgholzer (711)
- π uv lock file burgholzer (694)
- β‘ dedicated unitary simulator DD package config burgholzer (691)
- πΈ Allow creating circuits from compound operations burgholzer (690)
- β»οΈ optimize `isDynamic` check and move to `QuantumComputation` class burgholzer (689)
- πΈ Small library improvements burgholzer (686)
- πβ¬οΈ update image for Linux wheel builds to `manylinux_2_28` burgholzer (683)
- πΈ natively support `c3x`, `c3sqrtx`, and `c4x` gates from OpenQASM 2 burgholzer (680)
- πΈ rename algorithms target and adapt nox config burgholzer (672)
- π₯ remove ECC framework burgholzer (667)
π Bug Fixes
- π©Ή make sure to activate the venv in RtD build burgholzer (717)
- π©Ή fix endless loop on unsupported operations in OpenQASM gate declarations burgholzer (700)
- π Fix dynamic circuit detection burgholzer (687)
- π©Ή make sure to define `Py_GIL_DISABLED` on Windows for Python 3.13t burgholzer (682)
- π©Ήfix loading circuits from `PathLike` objects burgholzer (681)
- β¬οΈ require `pybind11 >= 2.13.5` burgholzer (679)
- π©Ή disentangle `mqt-core-dd` and `mqt-core-algo` burgholzer (670)
π Documentation
- π©Ή make sure to activate the venv in RtD build burgholzer (717)
π€ CI
- β¬οΈπͺ Update pre-commit hook pre-commit/pre-commit-hooks to v5 renovate (718)
- β¬οΈπͺ Update pre-commit hook crate-ci/typos to v1.25.0 renovate (716)
- β¬οΈπͺ Update pre-commit hook pre-commit/mirrors-clang-format to v19.1.1 renovate (714)
- β¬οΈπͺ Update pre-commit hook astral-sh/ruff-pre-commit to v0.6.9 renovate (713)
- β¬οΈπͺ Update pre-commit hook python-jsonschema/check-jsonschema to v0.29.3 renovate (715)
- π§ update renovate configuration burgholzer (712)
- π§ adjust how the CD workflow is run burgholzer (710)
- βοΈ upload to Test PyPI for pushes on `main` burgholzer (666)
- β¬οΈπͺ Update pre-commit hook astral-sh/ruff-pre-commit to v0.6.8 renovate (709)
- β¬οΈπͺ Update pre-commit hook pre-commit/mirrors-clang-format to v19 renovate (708)
- β¬οΈπͺ Update pre-commit hook astral-sh/ruff-pre-commit to v0.6.7 renovate (702)
- β¬οΈπͺ Update pre-commit hook astral-sh/ruff-pre-commit to v0.6.6 renovate (701)
- β¬οΈ update MQT workflows to `v1.4` burgholzer (692)
- β¬οΈπͺ Update pre-commit hook crate-ci/typos to v1.24.6 renovate (696)
- π· Configure Renovate renovate (695)
- β¬οΈ update mqt-workflows to v1.3 (moving tag) burgholzer (665)
π¦ Packaging
- π§ adjust how the CD workflow is run burgholzer (710)
- βοΈ upload to Test PyPI for pushes on `main` burgholzer (666)
- πβ¬οΈ update image for Linux wheel builds to `manylinux_2_28` burgholzer (683)
- β¬οΈ update to scikit-build-core 0.10 burgholzer (664)
π§Ή Code Quality
- πΈ Small library improvements burgholzer (686)
- πΈ improve nox sessions burgholzer (685)
- π¨ fix Qiskit 1.2 deprecation warnings burgholzer (673)
β¬οΈ Dependencies
<details>
<summary>33 changes</summary>
- β¬οΈπ Lock file maintenance renovate (706)
- β¬οΈπͺ update pre-commit hooks pre-commit-ci (719)
- β¬οΈπͺ Update pre-commit hook pre-commit/pre-commit-hooks to v5 renovate (718)
- β¬οΈπͺ Update pre-commit hook crate-ci/typos to v1.25.0 renovate (716)
- β¬οΈπͺ Update pre-commit hook pre-commit/mirrors-clang-format to v19.1.1 renovate (714)
- β¬οΈπͺ Update pre-commit hook astral-sh/ruff-pre-commit to v0.6.9 renovate (713)
- β¬οΈπͺ Update pre-commit hook python-jsonschema/check-jsonschema to v0.29.3 renovate (715)
- π§ update renovate configuration burgholzer (712)
- π§ adjust how the CD workflow is run burgholzer (710)
- βοΈ upload to Test PyPI for pushes on `main` burgholzer (666)
- β¬οΈπͺ Update pre-commit hook astral-sh/ruff-pre-commit to v0.6.8 renovate (709)
- β¬οΈπͺ Update pre-commit hook pre-commit/mirrors-clang-format to v19 renovate (708)
- β¬οΈπͺ update pre-commit hooks pre-commit-ci (707)
- β¬οΈπ Lock file maintenance renovate (705)
- β¬οΈπ Lock file maintenance renovate (703)
- β¬οΈπͺ Update pre-commit hook astral-sh/ruff-pre-commit to v0.6.7 renovate (702)
- β¬οΈπͺ Update pre-commit hook astral-sh/ruff-pre-commit to v0.6.6 renovate (701)
- β¬οΈ update MQT workflows to `v1.4` burgholzer (692)
- β¬οΈπ Lock file maintenance renovate (698)
- β¬οΈπͺ Update pre-commit hook crate-ci/typos to v1.24.6 renovate (696)
- π· Configure Renovate renovate (695)
- π uv lock file burgholzer (694)
- β¬οΈπͺ update pre-commit hooks pre-commit-ci (693)
- Bump actions/attest-build-provenance from 1.4.2 to 1.4.3 in the github-actions group dependabot (688)
- π₯ drop Python 3.8 support burgholzer (684)
- πΈ Small library improvements burgholzer (686)
- β¬οΈ require `pybind11 >= 2.13.5` burgholzer (679)
- β¬οΈπͺ update pre-commit hooks pre-commit-ci (676)
- Bump actions/attest-build-provenance from 1.4.1 to 1.4.2 in the github-actions group dependabot (677)
- β¬οΈπͺ update pre-commit hooks pre-commit-ci (675)
- Bump actions/attest-build-provenance from 1.4.0 to 1.4.1 in the github-actions group dependabot (671)
- β¬οΈ update mqt-workflows to v1.3 (moving tag) burgholzer (665)
- β¬οΈ update to scikit-build-core 0.10 burgholzer (664)
</details>
**Full Changelog**: https://github.com/cda-tum/mqt-core/compare/v2.6.0...v2.7.0