Skip to content

Commit

Permalink
Merge branch 'v4' into v4-doctests
Browse files Browse the repository at this point in the history
  • Loading branch information
MarquessV committed Jul 26, 2023
2 parents bd437a2 + 347aac9 commit 412bfae
Show file tree
Hide file tree
Showing 43 changed files with 3,216 additions and 1,820 deletions.
8 changes: 8 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,14 @@ jobs:
docker run --rm -itd -p 5555:5555 rigetti/quilc -R
docker run --rm -itd -p 5000:5000 rigetti/qvm -S
poetry run make test
- name: Report Coverage
if: matrix.python-version == '3.11'
uses: orgoro/[email protected]
with:
coverageFile: coverage.xml
thresholdAll: 0.87
thresholdNew: 0.9
token: ${{ secrets.PAT }}

test-e2e:
name: Test e2e QVM
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
README.rst
docs/source/changes.rst
docs/source/apidocs/
coverage.xml

# Created by https://www.gitignore.io/api/python,osx,pycharm

Expand Down
124 changes: 28 additions & 96 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,120 +1,52 @@
# Changelog

## 4.0.0-rc.12
## 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 redunant or lesser used features that aren't likely to bother most users.

### Breaking Changes

- use qcs-sdk-python implementation of conjugate_pauli_by_clifford and generate_randomized_benchmarking_sequence (#1557)
- remove qcs-api-client dependency (#1550)
- Removes the compatilbility.v2 subpackage
- 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_APPLICATIONS_QUILC_URL` and `QCS_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 `Program`s.

### Features

- remove v2 compatibility layer (#1475)
- gracefully handle error when QPU unavailable for engagement (#1457)
- pyQuil now uses `qcs-sdk-python` (bindings to the [QCS Rust SDK](https://github.com/rigetti/qcs-sdk-rust/)) for compiling and executing programs.
- With the exception of requests to a `quilc` server, RPCQ has been removed in favor of OpenAPI and gRPC calls. This enables:
- Better performance
- Better error messages when a request fails
- The improved Rust backend allows on-demand access to a QPU.
- The new `QPUCompilerAPIOptions` class provides can now be used to customize how a program is compiled against a QPU.

## 3.5.4

### Fixes

- bump qcs-sdk-python to fix waveforms (#1507)
- Remove pyi type annotations causing runtime errors (#1506)
- use highest priority Gateway (#1504)
- use properly packaged qcs-sdk types
- Docs Theme
- Docker qvm/quilc in `rigetti/forest` image. (#1437)
- DefFrame to/from Quil with JSON values (#1419)
- DefFrame to/from Quil with JSON values (#1419)
- Correctly apply the phase in quilwaveforms (#1408)
- allow spaces in DEFFRAME specs
- Correctly apply the phase in quilwaveforms (#1408)
- Changed pad_left to pad_right
- allow spaces in DEFFRAME specs
- Changed pad_left to pad_right
- update Quil-T docs to use `get_calibration_program()` name (#1389)
- allow np.ndarray in write_memory and disallow non-int and non-fl… (#1365)
- document error on noisy qcs qpu request
- Fix bug in QPU workflow
- Fix execution of parametric programs (#1353)
- sphinx>=3.0.0,<4.0.0
- support instructions with no qubits or parameters
- remove extraneous debug prints
- Remove test RPCQ server to improve CI consistency. (#1350)
- lock port test fixture
- provide default client configuration on get qcs qpu (#1333)
- raise error on noisy qcs qpu (#1332)
- ignore node modules and commit npm lock
- Fix contiguous engagement handling (#1325)
- Re-add `QPUCompiler.refresh_calibration_program()` (#1323)
- add git commit messge check (#1318)
- include dead attributes when no gates present (#1317)
- Fix RC publising to PyPI
- GitHub checks for PRs to rc branch

## 4.0.0-rc.11
- Loosen `networkx` requirements (#1584)

### Breaking Changes
## 3.5.3

- use qcs-sdk-python implementation of conjugate_pauli_by_clifford and generate_randomized_benchmarking_sequence (#1557)
- remove qcs-api-client dependency (#1550)
- Removes the compatilbility.v2 subpackage
### Fixes

### Features
- Correctly parse matrix gate definitions and support lower case function call expressions (#1588)

- remove v2 compatibility layer (#1475)
- gracefully handle error when QPU unavailable for engagement (#1457)
## 3.5.2

### Fixes
## 3.5.1

- bump qcs-sdk-python to fix waveforms (#1507)
- Remove pyi type annotations causing runtime errors (#1506)
- use highest priority Gateway (#1504)
- use properly packaged qcs-sdk types
- Docs Theme
- Docker qvm/quilc in `rigetti/forest` image. (#1437)
- DefFrame to/from Quil with JSON values (#1419)
- DefFrame to/from Quil with JSON values (#1419)
- Correctly apply the phase in quilwaveforms (#1408)
- allow spaces in DEFFRAME specs
- Correctly apply the phase in quilwaveforms (#1408)
- Changed pad_left to pad_right
- allow spaces in DEFFRAME specs
- Changed pad_left to pad_right
- update Quil-T docs to use `get_calibration_program()` name (#1389)
- allow np.ndarray in write_memory and disallow non-int and non-fl… (#1365)
- document error on noisy qcs qpu request
- Fix bug in QPU workflow
- Fix execution of parametric programs (#1353)
- sphinx>=3.0.0,<4.0.0
- support instructions with no qubits or parameters
- remove extraneous debug prints
- Remove test RPCQ server to improve CI consistency. (#1350)
- lock port test fixture
- provide default client configuration on get qcs qpu (#1333)
- raise error on noisy qcs qpu (#1332)
- ignore node modules and commit npm lock
- Fix contiguous engagement handling (#1325)
- Re-add `QPUCompiler.refresh_calibration_program()` (#1323)
- add git commit messge check (#1318)
- include dead attributes when no gates present (#1317)
- Fix RC publising to PyPI
- GitHub checks for PRs to rc branch

## 4.0.0-rc.10
## 3.5.0

### Breaking Changes
### Features

- Use qcs-sdk-python implementation of conjugate_pauli_by_clifford and generate_randomized_benchmarking_sequence (#1557)
- Replace `qcs-api-client` with `qcs-sdk-python` (#1550)
- Removed the `compatilbility.v2` subpackage (#1475)
- Removed the `EngagementManager` class as RPCQ is no longer used.
- Python 3.7 is no longer supported.
- Add CHANNEL-DELAY attribute to DefFrame (#1564)

### Features
### Fixes

- pyQuil now uses `qcs-sdk-python` (bindings to the QCS Rust SDK) for compiling and executing programs.
- RPCQ has been removed in favor of OpenAPI and GRPC calls. This enables:
- Better performance
- Better error messages when a request fails
- The improved Rust backend allows on-demand access to a QPU.
- improve messaging on QPU and compiler timeout (#1397)

## 3.5.0-rc.0

Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ install:
.PHONY: test
test:
poetry install --extras latex
pytest -v --runslow --cov=pyquil test/unit
pytest -v --runslow --cov=pyquil --cov-report xml:coverage.xml test/unit

.PHONY: test-fast
test-fast:
Expand Down
3 changes: 0 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ PyQuil: Quantum programming in Python

[![binder](https://mybinder.org/badge_logo.svg)][binder]
[![docs][docs-badge]][docs-repo]
[![coverage][coverage-badge]][coverage-repo]
[![docker][docker-badge]][docker-repo]
[![pepy][pepy-badge]][pepy-repo]
[![pypi][pypi-badge]][pypi-repo]
Expand Down Expand Up @@ -181,8 +180,6 @@ PyQuil is licensed under the
[conda-forge-repo]: https://anaconda.org/conda-forge/pyquil
[conda-rigetti-badge]: https://img.shields.io/conda/vn/rigetti/pyquil?label=conda-rigetti
[conda-rigetti-repo]: https://anaconda.org/rigetti/pyquil
[coverage-badge]: https://coveralls.io/repos/github/rigetti/pyquil/badge.svg?branch=more-badges
[coverage-repo]: https://coveralls.io/github/rigetti/pyquil?branch=more-badges
[docker-badge]: https://img.shields.io/docker/pulls/rigetti/forest
[docker-repo]: https://hub.docker.com/r/rigetti/forest
[docs-badge]: https://readthedocs.org/projects/pyquil/badge/?version=latest
Expand Down
Loading

0 comments on commit 412bfae

Please sign in to comment.