-
Notifications
You must be signed in to change notification settings - Fork 26
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
♻️ Refactor Packaging and CI #366
Conversation
This pull request sets up GitHub code scanning for this repository. Once the scans have completed and the checks have passed, the analysis results for this pull request branch will appear on this overview. Once you merge this pull request, the 'Security' tab will show more code scanning analysis results (for example, for the default branch). Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results. For more information about GitHub code scanning, check out the documentation. |
Codecov Report
@@ Coverage Diff @@
## main #366 +/- ##
=======================================
- Coverage 92.3% 92.2% -0.1%
=======================================
Files 44 44
Lines 4155 4162 +7
Branches 699 701 +2
=======================================
+ Hits 3837 3841 +4
- Misses 318 321 +3
|
configuration now unified in reusable workflow
Signed-off-by: burgholzer <[email protected]>
Cpp-Linter Report ✔️No problems need attention. Have any feedback or feature suggestions? Share it here. |
Description
This PR brings a major refactoring for the overall Python packaging as well as the CI employed in the project.
Packaging
We are (finally) moving away from
setuptools
and towards modernscikit-build-core
(https://scikit-build-core.readthedocs.io/)This brings many advantages such as
setup.py
(and theMANIFEST.in
) file and all custom build code that was required previously.As part of this change, we adopt the established best practice of a src-layout for the Python package. This implies that the Python package no longer lives in the main package directory, but is moved to
src/mqt/...
.This avoids several pitfalls when working with Python packages and makes the overall handling way easier.
This also means there is no direct build-time dependency on cmake and ninja anymore as this is automatically handled by scikit-build-core on demand.
As part of this rewrite, several
nox
sessions are also updatedCI
MQT Core has introduced reusable workflows in
These have been further refined in
Overall, this allows to
@main
while at the same time:
As a nice side effect, the new CI has revealed two bugs in the heuristic mapper. One where the single-qubit gates could not be placed properly and one where the output permutation inference accessed arrays out of bounds. Both issues have subsequently been fixed.
Checklist: