cda-tum / mqt-qecc

MQT QECC - Tools for Quantum Error Correcting Codes
MIT License
93 stars 11 forks source link

♻️ Modernize Project Structure #216

Closed lucasberent closed 3 weeks ago

lucasberent commented 3 months ago

Description

This PR brings QECC up to date with the latest best practices. Especially, it revamps the Python packaging, includes more extensive testing and Apple Silicon support

Checklist:

burgholzer commented 2 months ago

@lucasberent any updates here?

codecov[bot] commented 4 weeks ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 85.0%. Comparing base (b96e124) to head (b1acce8).

Additional details and impacted files [![Impacted file tree graph](https://app.codecov.io/gh/cda-tum/mqt-qecc/pull/216/graphs/tree.svg?width=650&height=150&src=pr&token=OAw9kgumkt&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cda-tum)](https://app.codecov.io/gh/cda-tum/mqt-qecc/pull/216?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cda-tum) ```diff @@ Coverage Diff @@ ## main #216 +/- ## ======================================= + Coverage 84.7% 85.0% +0.3% ======================================= Files 25 25 Lines 2028 2024 -4 Branches 189 190 +1 ======================================= + Hits 1718 1721 +3 + Misses 310 303 -7 ``` | [Flag](https://app.codecov.io/gh/cda-tum/mqt-qecc/pull/216/flags?src=pr&el=flags&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cda-tum) | Coverage Δ | | |---|---|---| | [cpp](https://app.codecov.io/gh/cda-tum/mqt-qecc/pull/216/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cda-tum) | `80.2% <100.0%> (+0.6%)` | :arrow_up: | | [python](https://app.codecov.io/gh/cda-tum/mqt-qecc/pull/216/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cda-tum) | `88.8% <100.0%> (+<0.1%)` | :arrow_up: | | [Files](https://app.codecov.io/gh/cda-tum/mqt-qecc/pull/216?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cda-tum) | Coverage Δ | | |---|---|---| | [include/Code.hpp](https://app.codecov.io/gh/cda-tum/mqt-qecc/pull/216?src=pr&el=tree&filepath=include%2FCode.hpp&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cda-tum#diff-aW5jbHVkZS9Db2RlLmhwcA==) | `79.8% <ø> (ø)` | | | [include/Utils.hpp](https://app.codecov.io/gh/cda-tum/mqt-qecc/pull/216?src=pr&el=tree&filepath=include%2FUtils.hpp&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cda-tum#diff-aW5jbHVkZS9VdGlscy5ocHA=) | `94.0% <100.0%> (+1.1%)` | :arrow_up: | | [...decoding/simulators/analog\_tannergraph\_decoding.py](https://app.codecov.io/gh/cda-tum/mqt-qecc/pull/216?src=pr&el=tree&filepath=src%2Fmqt%2Fqecc%2Fanalog_information_decoding%2Fsimulators%2Fanalog_tannergraph_decoding.py&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cda-tum#diff-c3JjL21xdC9xZWNjL2FuYWxvZ19pbmZvcm1hdGlvbl9kZWNvZGluZy9zaW11bGF0b3JzL2FuYWxvZ190YW5uZXJncmFwaF9kZWNvZGluZy5weQ==) | `90.1% <100.0%> (ø)` | | | [...mation\_decoding/simulators/quasi\_single\_shot\_v2.py](https://app.codecov.io/gh/cda-tum/mqt-qecc/pull/216?src=pr&el=tree&filepath=src%2Fmqt%2Fqecc%2Fanalog_information_decoding%2Fsimulators%2Fquasi_single_shot_v2.py&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cda-tum#diff-c3JjL21xdC9xZWNjL2FuYWxvZ19pbmZvcm1hdGlvbl9kZWNvZGluZy9zaW11bGF0b3JzL3F1YXNpX3NpbmdsZV9zaG90X3YyLnB5) | `69.9% <100.0%> (ø)` | | | [...alog\_information\_decoding/simulators/simulation.py](https://app.codecov.io/gh/cda-tum/mqt-qecc/pull/216?src=pr&el=tree&filepath=src%2Fmqt%2Fqecc%2Fanalog_information_decoding%2Fsimulators%2Fsimulation.py&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cda-tum#diff-c3JjL21xdC9xZWNjL2FuYWxvZ19pbmZvcm1hdGlvbl9kZWNvZGluZy9zaW11bGF0b3JzL3NpbXVsYXRpb24ucHk=) | `82.7% <100.0%> (+0.4%)` | :arrow_up: | | [src/mqt/qecc/ecc\_qiskit\_wrapper.py](https://app.codecov.io/gh/cda-tum/mqt-qecc/pull/216?src=pr&el=tree&filepath=src%2Fmqt%2Fqecc%2Fecc_qiskit_wrapper.py&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cda-tum#diff-c3JjL21xdC9xZWNjL2VjY19xaXNraXRfd3JhcHBlci5weQ==) | `97.8% <100.0%> (-0.1%)` | :arrow_down: | ... and [3 files with indirect coverage changes](https://app.codecov.io/gh/cda-tum/mqt-qecc/pull/216/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cda-tum)
github-advanced-security[bot] commented 4 weeks ago

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.

burgholzer commented 3 weeks ago

@lucasberent (@pehamTom for awareness): this is now ready and turned out quite nicely, I believe. Essentially, this PR updates QECC to the latest best practices within the MQT as much as possible given its annoying flint dependency (which, in turn, causes a dependency on GMP and MPFR). That last part is actually what required most of the work here.

Compared to the main branch this PR

Overall, this brings the repository much more in line again with the rest of the MQT repositories. If you have no serious objections, I'd merge the PR tomorrow and release a new version. Then #234 can be rebased and we can start working on getting that in.