cda-tum / mqt-qao

MQT Quantum Auto Optimizer - A MQT Tool for Solving Optimization Problems with Quantum Computers
MIT License
13 stars 0 forks source link

First release of the framework #1

Closed DeborahVolpe closed 3 months ago

DeborahVolpe commented 3 months ago

Pull request for obtaining a first mqt-toolkit-compatible release of the framework, adding documentation, managing libraries dependencies, updating code for supporting qiskit 1.0.

burgholzer commented 3 months ago

I pushed a couple of changes here that should help to stir this in the right direction. First and foremost, I enabled Python 3.8 to 3.12 support. It should definitely be possible to support all these versions here. Then, I cleaned up the dependency mess a little bit and tried to identify suitable versions. I fixed whatever I could. However, I also left some things slightly broken and would ask you to please fix them. Most importantly, I updated all depenencies and some of the code to Qiskit 1.0. This broke some parts with QAOA, VQE, etc. There should be migration guides for all of these. So it is just a matter of time to fix the resulting errors.

The bigger thing, that is still unaddressed is concerning the warnings about invalid escape sequences in third party libraries. As far as I was able to tell, these concern DWave's libraries dimod + dwave-samplers and docplex. The main reason for this failure is that, since Python 3.11, such invalid escape sequences are no longer warnings, but SyntaxErrors. So this is really a fundamental flaw in these libraries. The appropriate thing to do is to raise issue in their repositories reporting the errors based on a minimal reproducible example. If a codebase is using ruff as a linter, there is even a check that prevents such sequences, see https://docs.astral.sh/ruff/rules/invalid-escape-sequence/. In most cases, you could probably fix those issues yourself and submit a PR to their repository. We would then wait for the respective PRs to be merged and a new release to be created. Then, we can use that release as a lowerbound here.

I also enabled the pre-commit bot for this repositore to reveal the respective warnings in PRs.

burgholzer commented 3 months ago

Ok. This is looking quite good already. All Ubuntu and Windows failures are due to the invalid escape sequences, but work otherwise. It also works on x86 (intel) macOS. However, it does not work on Apple Silicon arm64 macOS runners. There it fails to build one of the dependencies (rectangle-packer), which does not provide wheels for arm64 macOS at the moment. It would be best to check their repository and its issue tracker. If not already, consider raising an issue there to provide the respective wheels.

please also always post links to relevant PRs and issues from other repositories over here once you created them.

burgholzer commented 3 months ago

Also: Please provide a proper Title, a Description, and the appropriate Labels for this Pull Request.