Skip to content

✨ Building Shared Libraries#352

Closed
burgholzer wants to merge 27 commits intomainfrom
fetch-content
Closed

✨ Building Shared Libraries#352
burgholzer wants to merge 27 commits intomainfrom
fetch-content

Conversation

@burgholzer
Copy link
Member

@burgholzer burgholzer commented Jan 13, 2024

Description

This PR started out with the purpose of switching over to the mqt-core Python package.
Over time, the scope has grown quite considerably.
Now, the main changes this strives for is switching the library to build dynamic libraries by default. This considerably decreases the binary size and would, in general, be nice to support.
However, producing shared libraries also means explicitly managing symbol visibility and, as it turned out, this is not such an easy endeavor.
The corresponding changes need appropriate testing across all different projects to make sure that nothing is missed.
This directly relates to munich-quantum-toolkit/core#538.

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.

Signed-off-by: burgholzer <burgholzer@me.com>
@burgholzer burgholzer added dependencies Pull requests that update a dependency file python Anything related to Python code usability Anything related to usability packaging Anything related to Python packaging minor Part of a minor release enhancement Anything related to improvements of the existing library labels Jan 13, 2024
@burgholzer burgholzer self-assigned this Jan 13, 2024
Signed-off-by: burgholzer <burgholzer@me.com>
Signed-off-by: burgholzer <burgholzer@me.com>
Signed-off-by: burgholzer <burgholzer@me.com>
burgholzer added a commit to munich-quantum-toolkit/core that referenced this pull request Jan 13, 2024
## Description

This PR fixes a small oversight in #529 where one of the install
instructions was not guarded properly. This should fix the issues
observed in munich-quantum-toolkit/qcec#352.

## 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.

Signed-off-by: burgholzer <burgholzer@me.com>
Signed-off-by: burgholzer <burgholzer@me.com>
Signed-off-by: burgholzer <burgholzer@me.com>
Signed-off-by: burgholzer <burgholzer@me.com>
@codecov
Copy link

codecov bot commented Jan 16, 2024

Codecov Report

Attention: 2 lines in your changes are missing coverage. Please review.

Comparison is base (1210c62) 96.2% compared to head (452daa4) 96.3%.
Report is 2 commits behind head on main.

❗ Current head 452daa4 differs from pull request most recent head 5094688. Consider uploading reports for the commit 5094688 to get more accurate results

Additional details and impacted files

Impacted file tree graph

@@          Coverage Diff          @@
##            main    #352   +/-   ##
=====================================
  Coverage   96.2%   96.3%           
=====================================
  Files         34      34           
  Lines       1756    1751    -5     
  Branches     214     214           
=====================================
- Hits        1691    1687    -4     
+ Misses        65      64    -1     
Flag Coverage Δ
cpp 96.1% <ø> (+<0.1%) ⬆️
python 97.1% <97.2%> (-0.1%) ⬇️
Files Coverage Δ
src/mqt/qcec/verify.py 100.0% <100.0%> (ø)
src/mqt/qcec/verify_compilation_flow.py 100.0% <ø> (ø)
src/mqt/qcec/parameterized.py 94.5% <96.8%> (-0.4%) ⬇️

... and 1 file with indirect coverage changes

Signed-off-by: burgholzer <burgholzer@me.com>
Signed-off-by: burgholzer <burgholzer@me.com>
Signed-off-by: burgholzer <burgholzer@me.com>
Signed-off-by: burgholzer <burgholzer@me.com>
Signed-off-by: burgholzer <burgholzer@me.com>
Signed-off-by: burgholzer <burgholzer@me.com>
Signed-off-by: burgholzer <burgholzer@me.com>
Signed-off-by: burgholzer <burgholzer@me.com>
Signed-off-by: burgholzer <burgholzer@me.com>
Signed-off-by: burgholzer <burgholzer@me.com>
Signed-off-by: burgholzer <burgholzer@me.com>
Signed-off-by: burgholzer <burgholzer@me.com>
Signed-off-by: burgholzer <burgholzer@me.com>
Signed-off-by: burgholzer <burgholzer@me.com>
Signed-off-by: burgholzer <burgholzer@me.com>
Signed-off-by: burgholzer <burgholzer@me.com>
Signed-off-by: burgholzer <burgholzer@me.com>
Signed-off-by: burgholzer <burgholzer@me.com>
Signed-off-by: burgholzer <burgholzer@me.com>
@burgholzer
Copy link
Member Author

As already noted in munich-quantum-toolkit/core#538, getting shared libraries working seems like it is not going to be that easy. Because of that, I am also going to split this PR apart into separate contributions and will try to get those that are ready to merge merged as soon as possible.

@burgholzer burgholzer changed the title ✨ switch to mqt-core Python package ✨ Building Shared Libraries Jan 26, 2024
@burgholzer burgholzer marked this pull request as draft January 26, 2024 15:09
@burgholzer
Copy link
Member Author

Closing in favor of #432

@burgholzer burgholzer closed this Aug 6, 2024
burgholzer added a commit that referenced this pull request Feb 18, 2025
## Description

This is an alternative to #355 and marks the final transition to the
`mqt-core` Python package. See #355 and #352 for some history on this
topic.

In addition to directly using the MQT Core Python package, this PR makes
Qiskit an optional dependency of MQT QCEC. All core functionality is now
covered MQT-internally.

## 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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file enhancement Anything related to improvements of the existing library minor Part of a minor release packaging Anything related to Python packaging python Anything related to Python code usability Anything related to usability

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant