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

Update pyquil requirement from ~=3.5.4 to ~=4.11.0 #2063

Open
wants to merge 7 commits into
base: main
Choose a base branch
from

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Oct 19, 2023

Description

upgrade support to pyquil v4

fixes #2254


Updates the requirements on pyquil to permit the latest version.

Release notes

Sourced from pyquil's releases.

4.0.3 (2023-10-18)

Fixes

only rewrite arithmetic when targeting Aspen processors (#1679)

Changelog

Sourced from pyquil's changelog.

4.0.3 (2023-10-18)

Fixes

only rewrite arithmetic when targeting Aspen processors (#1679)

4.0.3-rc.0 (2023-10-18)

Fixes

only rewrite arithmetic when targeting Aspen processors (#1679)

4.0.2 (2023-10-16)

Fixes

update qcs-sdk-rust and quil-rs to pull in fixes (#1680)

4.0.2-rc.0 (2023-10-16)

Fixes

update qcs-sdk-rust and quil-rs to pull in fixes (#1680)

4.0.1 (2023-09-27)

Fixes

Gates should no longer compare as equal and not equal. (#1671)

4.0.1-rc.0 (2023-09-27)

Fixes

Gates should no longer compare as equal and not equal. (#1671)

4.0.0

The 4.0 release of pyQuil migrates its core functionality into Rigetti's latest generation of Rust SDKs. With this comes access to new features, improved performance, stronger type safety, and better error messages. While this is a significant change for the internals of pyQuil, we've attempted to keep breaking changes to a minimum. Unless necessary, we've chosen to only remove redundant or lesser used features that aren't likely to bother most users.

Breaking Changes

  • Replaced the qcs-api-client dependency with qcs-sdk-python. Consequentially, the former's QCSClientConfiguration has been replaced by the latter’s QCSClient. The QCSClient class can be imported from the api module.
  • Removed the compatibility.v2 sub-package.
  • Removed the EngagementManager class as RPCQ is no longer used.
  • Python 3.7 is no longer supported.
  • The environment variable overrides for quilc and QVM URLs have been renamed to QCS_SETTINGS_APPLICATIONS_QUILC_URL and QCS_SETTINGS_APPLICATIONS_QVM_URL, respectively.
  • The QuantumComputer's run method now takes an optional memory_map parameter. This mapping takes memory region names to a list of values to use for a run. This replaces the ability to use write_memory on Programs.
  • Program and instructions have been re-written using the quil package. Much of the API remains the same, with the following exceptions:
    • SwapPhase has been renamed to SwapPhases

... (truncated)

Commits
  • a72499c chore: prepare release 4.0.3 [skip ci]
  • 314038c chore: prepare release 4.0.3-rc.0 [skip ci]
  • a73a896 fix: only rewrite arithmetic when targeting Aspen processors (#1679)
  • ca07ff6 chore: prepare release 4.0.2 [skip ci]
  • 38f6d75 chore: prepare release 4.0.2-rc.0 [skip ci]
  • f84445e fix: update qcs-sdk-rust and quil-rs to pull in fixes (#1680)
  • fdedda2 chore: prepare release 4.0.1 [skip ci]
  • 8b90d65 chore: prepare release 4.0.1-rc.0 [skip ci]
  • fc513ea fix: Gates should no longer compare as equal and not equal. (#1671)
  • 3a6b057 re-enable knope changelog management (#1662)
  • Additional commits viewable in compare view

Most Recent Ignore Conditions Applied to This Pull Request
Dependency Name Ignore Conditions
pyquil [>= 3.0.a, < 3.1]

You can trigger a rebase of this PR by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Note
Automatic rebases have been disabled on this pull request as it has been open for over 30 days.

@dependabot dependabot bot added the infrastructure For issues related to building, packaging, and continuous integration. label Oct 19, 2023
@dependabot dependabot bot force-pushed the dependabot/pip/pyquil-approx-eq-4.0.3 branch 7 times, most recently from 2c34d4b to ffecf50 Compare October 27, 2023 14:00
@dependabot dependabot bot force-pushed the dependabot/pip/pyquil-approx-eq-4.0.3 branch from ffecf50 to 629dcdb Compare November 6, 2023 19:57
@natestemen
Copy link
Member

We'll have to wait for quantumlib/Cirq#6281 to land (and be released) before we can support pyquil 4.

Copy link
Contributor Author

dependabot bot commented on behalf of github Nov 14, 2023

A newer version of pyquil exists, but since this PR has been edited by someone other than Dependabot I haven't updated it. You'll get a PR for the updated version as normal once this PR is merged.

@natestemen
Copy link
Member

quantumlib/Cirq#6281 has landed. Will now just wait for a patch release.

@natestemen
Copy link
Member

Patch release is out! https://github.com/quantumlib/Cirq/releases/tag/v1.4.1

@natestemen natestemen force-pushed the dependabot/pip/pyquil-approx-eq-4.0.3 branch from 3b0a1a5 to 6c07441 Compare June 27, 2024 05:25
@natestemen natestemen changed the title Update pyquil requirement from ~=3.5.4 to ~=4.0.3 Update pyquil requirement from ~=3.5.4 to ~=4.11.0 Jun 27, 2024
@natestemen
Copy link
Member

@dependabot rebase

Copy link
Contributor Author

dependabot bot commented on behalf of github Aug 28, 2024

Looks like this PR has been edited by someone other than Dependabot. That means Dependabot can't rebase it - sorry!

If you're happy for Dependabot to recreate it from scratch, overwriting any edits, you can request @dependabot recreate.

@natestemen natestemen removed the monitor-for-external-solution Tracking issues caused by external packages label Aug 28, 2024
@natestemen
Copy link
Member

There are two pyquil conversion issue which are causing the Ubuntu builds to fail.

  1. $\pi$ is no longer represented as pi, and a decimal expansion is used, and
  2. CPHASE00 gates are being converted to USERGATEs.

I've raised an issue for point 2 here: quantumlib/Cirq#6714. I haven't been able to reproduce locally a MRE for point 1 just yet, but if I can I will open a different issue.


Since this isn't a huge concern for us I recommend we modify this test so it passes as is and add a note for ourselves to come back to it if cirq/pyquil fix the underlying issues. Only challenging thing here is that the issue only seems to be arising on Ubuntu. Another option is to intentionally skip this test for the time being just so we can upgrade the rest of the dependencies.

@cosenal
Copy link
Contributor

cosenal commented Sep 2, 2024

Only challenging thing here is that the issue only seems to be arising on Ubuntu.

We run those tests only on Ubuntu 😬 See

run: ${{ matrix.os == 'ubuntu-latest' && 'make test-all' || 'make test' }}
and

mitiq/Makefile

Lines 60 to 61 in 685e7d0

test:
pytest -n auto -v --cov=mitiq --cov-report=term --cov-report=xml --ignore=mitiq/interface/mitiq_pyquil

@natestemen
Copy link
Member

This is now blocked by the two pyquil tutorials. They are both failing with the same error relating to a "bug" that happens when converting a pyquil program to a cirq circuit.

In short, when a pyquil program that has a scalar variable, say theta, is converted to cirq, the variable gets renamed to theta_0. Upon conversion back to pyquil—to be executed by the QVM—the variable remains theta_0, which then confuses the pyquil simulator since the subsitutions for theta don't work.

I've opened a PR quantumlib/Cirq#6755 with a partial fix, but it needs input to be taken further.

Copy link

codecov bot commented Oct 9, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 98.72%. Comparing base (6512dbe) to head (dfdc455).
Report is 25 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #2063   +/-   ##
=======================================
  Coverage   98.71%   98.72%           
=======================================
  Files          89       90    +1     
  Lines        4131     4156   +25     
=======================================
+ Hits         4078     4103   +25     
  Misses         53       53           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@natestemen natestemen added the monitor-for-external-solution Tracking issues caused by external packages label Oct 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
infrastructure For issues related to building, packaging, and continuous integration. monitor-for-external-solution Tracking issues caused by external packages
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Upgrade dependency to pyQuil v4
3 participants