Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

✨ Switch to mqt-core Python package #432

Open
wants to merge 16 commits into
base: main
Choose a base branch
from
Open

Conversation

burgholzer
Copy link
Member

Description

This is an alternative to #355 and hopefully marks the final try of directly incorporating the mqt-core Python package. See #355 and #352 for some history on this topic.

Checklist:

  • The pull request only contains commits that are related to it.
  • I have added appropriate tests and documentation.
  • I have made sure that all CI jobs on GitHub pass.
  • The pull request introduces no new warnings and follows the project's style guidelines.

@burgholzer burgholzer added feature New feature or request dependencies Pull requests that update a dependency file python Anything related to Python code packaging Anything related to Python packaging c++ Anything related to C++ code minor Part of a minor release labels Aug 6, 2024
@burgholzer burgholzer self-assigned this Aug 6, 2024
@burgholzer burgholzer force-pushed the use-mqt-core-package branch from e95ffd5 to 5495501 Compare August 6, 2024 22:13
Copy link

codecov bot commented Aug 6, 2024

Codecov Report

Attention: Patch coverage is 98.78788% with 2 lines in your changes missing coverage. Please review.

Project coverage is 96.1%. Comparing base (fe748f4) to head (0df5561).

Files with missing lines Patch % Lines
src/mqt/qcec/parameterized.py 97.0% 2 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##            main    #432     +/-   ##
=======================================
+ Coverage   95.5%   96.1%   +0.6%     
=======================================
  Files         40      40             
  Lines       1840    1878     +38     
  Branches     223     224      +1     
=======================================
+ Hits        1758    1806     +48     
+ Misses        82      72     -10     
Flag Coverage Δ
cpp 96.0% <100.0%> (+<0.1%) ⬆️
python 96.4% <98.7%> (+2.6%) ⬆️
Files with missing lines Coverage Δ
src/EquivalenceCheckingManager.cpp 92.9% <100.0%> (+<0.1%) ⬆️
src/mqt/qcec/__init__.py 100.0% <100.0%> (ø)
src/mqt/qcec/_compat/optional.py 100.0% <100.0%> (ø)
src/mqt/qcec/compilation_flow_profiles.py 98.1% <100.0%> (+1.3%) ⬆️
src/mqt/qcec/configuration.py 100.0% <100.0%> (ø)
src/mqt/qcec/verify.py 100.0% <100.0%> (ø)
src/mqt/qcec/verify_compilation_flow.py 100.0% <100.0%> (ø)
src/mqt/qcec/parameterized.py 94.5% <97.0%> (-0.4%) ⬇️

... and 3 files with indirect coverage changes

@burgholzer burgholzer force-pushed the use-mqt-core-package branch 6 times, most recently from 96ff41e to db6cb20 Compare August 10, 2024 13:34
@burgholzer burgholzer force-pushed the use-mqt-core-package branch 5 times, most recently from 055c342 to bf94b85 Compare August 14, 2024 17:25
@burgholzer burgholzer force-pushed the use-mqt-core-package branch 2 times, most recently from 77145ad to 64dfa87 Compare September 4, 2024 21:26
@burgholzer burgholzer added major Part of a major release and removed minor Part of a minor release labels Sep 4, 2024
burgholzer added a commit that referenced this pull request Sep 29, 2024
## Description

This PR updates the CD workflow so that anytime it runs on a push to
`main`, it uploads the resulting package to Test PyPI. This allows to
battle test the packages before official releases.
This will be especially important in the context of #432
## Checklist:

<!---
This checklist serves as a reminder of a couple of things that ensure
your pull request will be merged swiftly.
-->

- [x] The pull request only contains commits that are related to it.
- [x] I have added appropriate tests and documentation.
- [x] I have made sure that all CI jobs on GitHub pass.
- [x] The pull request introduces no new warnings and follows the
project's style guidelines.
@burgholzer burgholzer force-pushed the use-mqt-core-package branch from ef6fc4c to dca2e62 Compare January 16, 2025 14:58
@burgholzer burgholzer marked this pull request as ready for review January 16, 2025 15:42
@burgholzer burgholzer force-pushed the use-mqt-core-package branch from dca2e62 to 2645f59 Compare January 16, 2025 20:42
@burgholzer
Copy link
Member Author

Alright, some progress.

The new ubuntu-24.04-arm runners fail due to a uv error that will probably be fixed soonish (a PR is open at astral-sh/uv#10697).

The Ubuntu 22.04 builds fail because pybind decides that the compiled version of mqt-core that comes from PyPI is not binary-compatible with the mqt-qcec extension being compiled.
Hence, it does not recognize the qc::QuantumComputation class. This has been addressed in pybind/pybind11#5439 which, unfortunately, has not been released yet.
We can work around this for now by compiling mqt-core from source, although that should not be a long term solution.

@burgholzer burgholzer added extensive-cpp-ci Adding this label indicates that extensive C++ CI runs should be started for this PR. extensive-python-ci Adding this label indicates that extensive Python CI runs should be started for this PR. labels Jan 22, 2025
@burgholzer burgholzer force-pushed the use-mqt-core-package branch 4 times, most recently from 8472889 to 4acce1a Compare January 22, 2025 14:26
@burgholzer burgholzer force-pushed the use-mqt-core-package branch from 4acce1a to 0df5561 Compare January 22, 2025 20:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c++ Anything related to C++ code dependencies Pull requests that update a dependency file extensive-cpp-ci Adding this label indicates that extensive C++ CI runs should be started for this PR. extensive-python-ci Adding this label indicates that extensive Python CI runs should be started for this PR. feature New feature or request major Part of a major release packaging Anything related to Python packaging python Anything related to Python code
Projects
Status: In Progress
Status: In Progress
Development

Successfully merging this pull request may close these issues.

1 participant