unitaryfund / mitiq

Mitiq is an open source toolkit for implementing error mitigation techniques on most current intermediate-scale quantum computers.
https://mitiq.readthedocs.io
GNU General Public License v3.0
357 stars 157 forks source link

Upgrade dependency to pyQuil v4 #2254

Open cosenal opened 5 months ago

cosenal commented 5 months ago

If we still want to support pyQuil, then we also want to upgrade the pyQuil dependency v4, with the current version being pinned at pyquil~=3.5.4.

When it comes to the pyQuil integration, the benefits of upgrading are described in https://pyquil-docs.rigetti.com/en/stable/introducing_v4.html.

The main immediate benefit outside of the integration is that we could finally upgrade many transitive dependencies, see discussion in https://github.com/unitaryfund/mitiq/discussions/2233#discussioncomment-8973650

Going from v3 to v4 in pyQuil carries some substantial breaking changes. I will use this ticket to track progress on the upgrade.

cosenal commented 5 months ago

@natestemen @nathanshammah If any of you has tried this before, please share your findings, including any branch with partial work.

cosenal commented 5 months ago

First obstacle: the latest version of Cirq doesn't support pyQuil v4 https://github.com/quantumlib/Cirq/blob/7b97ead2a829f64cc9448122c89d03f887ee4fac/cirq-rigetti/requirements.txt

natestemen commented 5 months ago

Thanks for opening this! Indeed there has been some work started in dependabot PR: https://github.com/unitaryfund/mitiq/pull/2063

As you saw, Cirq does not support pyQuil v4 and hence that is blocking, but they are working on it here: https://github.com/quantumlib/Cirq/pull/6281! I've done a little bit to provide evidence that the PR is safe, but they need to resolve some tests on their end. It seems like they are trying to get this out in the next release, which is good news.