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

🚸 Installation Improvements #539

Merged
merged 30 commits into from
Jan 27, 2024
Merged

Conversation

burgholzer
Copy link
Member

Description

This PR improves a couple of bits and pieces throughout the library and should increase the overall usability and DX.

Most notable breaking changes:

  • The MQT::CorePython target is removed. After this PR is merged, top-level packages are expected to use the mqt.core Python package for translating from Qiskit to MQT. Furthermore, the top-level packages are responsible for bringing in the pybind11_json dependency if they require it, as it is no longer shipped with mqt-core.
  • The MQT::ProjectOptions and MQT::ProjectWarnings targets are now linked privately into the libraries in order to not pollute other CMake targets. This means that top-level projects now also need to explicitly link against these targets if they want to benefit from the common settings.
  • Includes are now placed in a dedicated include/mqt-core subdirectory to create a cleaner installation structure.

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>
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>
…s` targets

Note that this will require upstream projects to explicitly link against these targets. This makes sure that no options are forced on targets that incorporate mqt-core

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>
Signed-off-by: burgholzer <burgholzer@me.com>
@burgholzer burgholzer added usability Anything related to usability refactor Anything related to code refactoring Core Anything related to the Core library and IR labels Jan 26, 2024
@burgholzer burgholzer added this to the MQT Core milestone Jan 26, 2024
@burgholzer burgholzer self-assigned this Jan 26, 2024
Copy link

codecov bot commented Jan 26, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Comparison is base (6d9a08e) 91.2% compared to head (889ac89) 91.2%.

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##            main    #539     +/-   ##
=======================================
- Coverage   91.2%   91.2%   -0.1%     
=======================================
  Files        130     130             
  Lines      13709   13709             
  Branches    2155    2155             
=======================================
- Hits       12510   12509      -1     
- Misses      1199    1200      +1     
Flag Coverage Δ
cpp 90.9% <ø> (ø)
python 99.5% <100.0%> (-0.3%) ⬇️
Files Coverage Δ
include/mqt-core/CircuitOptimizer.hpp 100.0% <ø> (ø)
include/mqt-core/Definitions.hpp 76.4% <ø> (ø)
include/mqt-core/Permutation.hpp 100.0% <ø> (ø)
include/mqt-core/QuantumComputation.hpp 91.6% <ø> (ø)
...qt-core/algorithms/GoogleRandomCircuitSampling.hpp 58.3% <ø> (ø)
include/mqt-core/dd/Benchmark.hpp 85.7% <ø> (ø)
include/mqt-core/dd/CachedEdge.hpp 85.7% <ø> (ø)
include/mqt-core/dd/Complex.hpp 100.0% <ø> (ø)
include/mqt-core/dd/ComplexNumbers.hpp 100.0% <ø> (ø)
include/mqt-core/dd/ComplexValue.hpp 100.0% <ø> (ø)
... and 56 more

... and 1 file with indirect coverage changes

@burgholzer
Copy link
Member Author

That one cpp-linter failure cannot be fixed here since pybind11 is not available in the C++ linting environment.

Signed-off-by: burgholzer <burgholzer@me.com>
@burgholzer burgholzer force-pushed the install-improvements-best-of branch from 11428c9 to c597e64 Compare January 26, 2024 16:00
…ort` extra

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

Cpp-Linter Report ⚠️

Some files did not pass the configured checks!

clang-tidy reports: 1 concern(s)
  • include/mqt-core/python/pybind11.hpp

    include/mqt-core/python/pybind11.hpp:5:10: error: [clang-diagnostic-error]

    'pybind11/pybind11.h' file not found

    #include "pybind11/pybind11.h"
             ^~~~~~~~~~~~~~~~~~~~~

Have any feedback or feature suggestions? Share it here.

@burgholzer burgholzer merged commit 3d0d0be into main Jan 27, 2024
31 of 33 checks passed
@burgholzer burgholzer deleted the install-improvements-best-of branch January 27, 2024 12:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Core Anything related to the Core library and IR refactor Anything related to code refactoring usability Anything related to usability
Projects
Status: Done
Status: Done
Development

Successfully merging this pull request may close these issues.

1 participant