Skip to content

Commit c006cd8

Browse files
authored
🎨 Do not rebuild MQT Core in tests (#606)
## Description This PR changes the test setup to not rebuild MQT Core from source. Related to munich-quantum-toolkit/qcec#661 ## 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 2b70436 commit c006cd8

File tree

4 files changed

+27
-24
lines changed

4 files changed

+27
-24
lines changed

.readthedocs.yaml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
version: 2
22

33
formats:
4-
# - pdf
54
- htmlzip
5+
# - pdf
66

77
sphinx:
88
configuration: docs/conf.py
@@ -31,9 +31,9 @@ build:
3131
- asdf plugin add uv
3232
- asdf install uv latest
3333
- asdf global uv latest
34-
# Set up build time dependencies including a source distribution of mqt-core.
35-
- uv sync --only-group build --only-group docs --no-binary-package mqt-core
36-
# The default version of CMake on Ubuntu 24.04 is too old, so we need to install a newer version.
34+
# Set up build-time dependencies
35+
- uv sync --only-group build --only-group docs
36+
# Install CMake because the default version on Ubuntu 24.04 is too old
3737
- uv pip install cmake
3838
build:
3939
html:
@@ -42,8 +42,8 @@ build:
4242
- uv run --frozen --no-dev --no-build-isolation-package mqt-ddsim -m sphinx -T -b dirhtml -d docs/_build/doctrees -D language=en docs docs/_build/dirhtml
4343
- mkdir -p $READTHEDOCS_OUTPUT/htmlzip
4444
- zip -r $READTHEDOCS_OUTPUT/htmlzip/html.zip docs/_build/dirhtml/*
45-
# pdf:
46-
# - uv run --frozen --no-dev --no-build-isolation-package mqt-ddsim -m sphinx -T -b latex -d docs/_build/doctrees -D language=en docs docs/_build/latex
47-
# - cd docs/_build/latex && latexmk -pdf -f -dvi- -ps- -interaction=nonstopmode -jobname=$READTHEDOCS_PROJECT
48-
# - mkdir -p $READTHEDOCS_OUTPUT/pdf
49-
# - cp docs/_build/latex/$READTHEDOCS_PROJECT.pdf $READTHEDOCS_OUTPUT/pdf/$READTHEDOCS_PROJECT.pdf
45+
# pdf:
46+
# - uv run --frozen --no-dev --no-build-isolation-package mqt-ddsim -m sphinx -T -b latex -d docs/_build/doctrees -D language=en docs docs/_build/latex
47+
# - cd docs/_build/latex && latexmk -pdf -f -dvi- -ps- -interaction=nonstopmode -jobname=$READTHEDOCS_PROJECT
48+
# - mkdir -p $READTHEDOCS_OUTPUT/pdf
49+
# - cp docs/_build/latex/$READTHEDOCS_PROJECT.pdf $READTHEDOCS_OUTPUT/pdf/$READTHEDOCS_PROJECT.pdf

CHANGELOG.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ _If you are upgrading: please see [`UPGRADING.md`](UPGRADING.md#Unreleased)._
1717

1818
### Changed
1919

20-
- **Breaking**: ⬆️ Bump minimum required MQT Core version to `3.1.0` ([#591]) ([**@denialhaag**])
20+
- **Breaking**: ⬆️ Bump minimum required `mqt-core` version to `3.1.0` ([#591]) ([**@denialhaag**])
2121
- **Breaking**: ⬆️ Bump minimum required `pybind11` version to `3.0.0` ([#591]) ([**@denialhaag**])
2222
- ♻️ Move the C++ code for the Python bindings to the top-level `bindings` directory ([#567]) ([**@denialhaag**])
2323
- ♻️ Move all Python code (no tests) to the top-level `python` directory ([#567]) ([**@denialhaag**])
@@ -34,6 +34,10 @@ _If you are upgrading: please see [`UPGRADING.md`](UPGRADING.md#Unreleased)._
3434
- **Breaking**: 🔥 Remove some superfluous C++ executables ([#336]) ([**@burgholzer**])
3535
- **Breaking**: 🔥 Remove support for `.real`, `.qc`, `.tfc`, and `GRCS` files ([#538]) ([**@burgholzer**])
3636

37+
### Fixed
38+
39+
- 🚸 Increase binary compatibility between `mqt-ddsim` and `mqt-core` ([#606]) ([**@denialhaag**])
40+
3741
## [1.24.0] - 2024-10-10
3842

3943
_📚 Refer to the [GitHub Release Notes] for previous changelogs._
@@ -45,6 +49,7 @@ _📚 Refer to the [GitHub Release Notes] for previous changelogs._
4549

4650
<!-- PR links -->
4751

52+
[#606]: https://github.com/munich-quantum-toolkit/ddsim/pull/606
4853
[#591]: https://github.com/munich-quantum-toolkit/ddsim/pull/591
4954
[#571]: https://github.com/munich-quantum-toolkit/ddsim/pull/571
5055
[#567]: https://github.com/munich-quantum-toolkit/ddsim/pull/567

UPGRADING.md

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,18 @@ We intend to provide a more comprehensive migration guide for future releases.
1111
The major change in this major release is the move to the MQT Core Python package.
1212
This move allows us to make `qiskit` a fully optional dependency and entirely rely on the MQT Core IR for representing circuits.
1313
Additionally, the `mqt-core` Python package now ships all its C++ libraries as shared libraries so that these need not be fetched or built as part of the build process.
14-
This was tricky to achieve cross-platform, and you can find some more backstory in the corresponding [PR](https://github.com/munich-quantum-toolkit/ddsim/pulls/336).
15-
We expect this integration to mature over the next few releases.
14+
This was tricky to achieve cross-platform, and you can find some more backstory in the corresponding PR [#336].
15+
The problem was simplified by the latest `pybind11` release (`v3`) that greatly increased binary compatibility.
16+
It is not necessary to build MQT Core from source, and a simple `uv sync` is enough to successfully run `pytest`.
17+
We expect the MQT Core integration to mature over the next few releases.
1618
If you encounter any issues, please let us know.
1719

1820
Support for the tensor network strategy in the path simulator has been removed.
1921
If you still depend on that method, please use the last version of MQT DDSIM that supports them, which is `1.24.0`.
2022

2123
MQT Core itself dropped support for several parsers in `v3.0.0`, including the `.real`, `.qc`, `.tfc`, and `GRCS` parsers.
2224
The `.real` parser lives on as part of the [MQT SyReC] project. All others have been removed without replacement.
23-
Consequently, these input formats are no longer supported in MQT QMAP.
25+
Consequently, these input formats are no longer supported in MQT DDSIM.
2426

2527
MQT DDSIM has moved to the [munich-quantum-toolkit](https://github.com/munich-quantum-toolkit) GitHub organization under https://github.com/munich-quantum-toolkit/ddsim.
2628
While most links should be automatically redirected, please update any links in your code to point to the new location.
@@ -36,5 +38,11 @@ As a result, the return values of the `Estimator` and `Sampler` have been change
3638
To developers of MQT DDSIM, it is worth mentioning that all Python code (except tests) has been moved to the top-level `python` directory.
3739
Furthermore, the C++ code for the Python bindings has been moved to the top-level `bindings` directory.
3840

39-
[MQT SyReC]: https://github.com/cda-tum/mqt-syrec
41+
<!-- Version links -->
42+
4043
[unreleased]: https://github.com/munich-quantum-toolkit/qmap/compare/v1.24.0...HEAD
44+
45+
<!-- Other links -->
46+
47+
[#336]: https://github.com/munich-quantum-toolkit/ddsim/pull/336
48+
[MQT SyReC]: https://github.com/cda-tum/mqt-syrec

noxfile.py

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -67,11 +67,6 @@ def _run_tests(
6767
"build",
6868
"--only-group",
6969
"test",
70-
# Build mqt-core from source to work around pybind believing that two
71-
# compiled extensions might not be binary compatible.
72-
# This will be fixed in a new pybind11 release that includes https://github.com/pybind/pybind11/pull/5439.
73-
"--no-binary-package",
74-
"mqt-core",
7570
*install_args,
7671
env=env,
7772
)
@@ -146,11 +141,6 @@ def docs(session: nox.Session) -> None:
146141
"build",
147142
"--only-group",
148143
"docs",
149-
# Build mqt-core from source to work around pybind believing that two
150-
# compiled extensions might not be binary compatible.
151-
# This will be fixed in a new pybind11 release that includes https://github.com/pybind/pybind11/pull/5439.
152-
"--no-binary-package",
153-
"mqt-core",
154144
env=env,
155145
)
156146

0 commit comments

Comments
 (0)