From a506b979db38cf317d7ef5b65256422009880865 Mon Sep 17 00:00:00 2001 From: Marquess Valdez Date: Wed, 19 Jul 2023 13:28:51 -0700 Subject: [PATCH 1/8] chore: Start v4.0.0 changelog entry, add V4_PRERELEASE_CHANGELOG (#1622) * Start v4.0.0 changelog entry, add V4_PRERELEASE_CHANGELOG * update issue link * gRPC casing Co-authored-by: jselig-rigetti <97701976+jselig-rigetti@users.noreply.github.com> * Remove extra . Co-authored-by: jselig-rigetti <97701976+jselig-rigetti@users.noreply.github.com> --------- Co-authored-by: jselig-rigetti <97701976+jselig-rigetti@users.noreply.github.com> --- CHANGELOG.md | 1253 +---------------------------------- V4_PRERELEASE_CHANGELOG.md | 1255 ++++++++++++++++++++++++++++++++++++ knope.toml | 4 +- 3 files changed, 1269 insertions(+), 1243 deletions(-) create mode 100644 V4_PRERELEASE_CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md index eddf69974..b116c8d90 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,1257 +1,26 @@ # Changelog -## 4.0.0-rc.32 +## 4.0.0 -### Breaking Changes - -- Use `ExecutionOptions` parameter to configure how jobs are submitted and retrieved from a QPU. This replaces the `use_gateway` flag on `QCSClient.load()` has been removed. (#1598) -- The `QuantumComputer`'s `run` method now takes an optional `MemoryMap` parameter. This mapping takes memory region names to a list of values to use for a run. This replaces the need to use `write_memory` on `Program`s between runs. -- 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 - -### Features - -- increase gRPC message size limit (#1610) -- support translation options for QPUCompiler (#1590) -- remove v2 compatibility layer (#1475) -- gracefully handle error when QPU unavailable for engagement (#1457) - -### Fixes - -- Initializing a QPU with an `endpoint_id` should no longer raise an exception -- `Program.copy_everything_except_instructions()` no longer adds declarations to the instructions property (#1612) -- specify `quil` as a dependency -- `copy_everything_but_instructions` now correctly copies `DECLARE` statements (#1600) -- get_qc will use the given client_configuration -- Remove calibrations from program before sending them to a QVM (#1592) -- Replace `retry`, loosen `networkx` requirements, ensure adding programs don't mutate the first -- Parametric DefGates and upper case function call expressions will no longer fail to parse. (#1589) -- native_quil_to_executable will no longer block indefinitely (#1585) -- The default QCSClient will now load without having QCS credentials (#1582) -- 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.31 - -### Breaking Changes - -- Use `ExecutionOptions` parameter to configure how jobs are submitted and retrieved from a QPU. This replaces the `use_gateway` flag on `QCSClient.load()` has been removed. (#1598) -- The `QuantumComputer`'s `run` method now takes an optional `MemoryMap` parameter. This mapping takes memory region names to a list of values to use for a run. This replaces the need to use `write_memory` on `Program`s between runs. -- 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 - -### Features - -- increase gRPC message size limit (#1610) -- support translation options for QPUCompiler (#1590) -- remove v2 compatibility layer (#1475) -- gracefully handle error when QPU unavailable for engagement (#1457) - -### Fixes - -- Initializing a QPU with an `endpoint_id` should no longer raise an exception -- `Program.copy_everything_except_instructions()` no longer adds declarations to the instructions property (#1612) -- specify `quil` as a dependency -- `copy_everything_but_instructions` now correctly copies `DECLARE` statements (#1600) -- get_qc will use the given client_configuration -- Remove calibrations from program before sending them to a QVM (#1592) -- Replace `retry`, loosen `networkx` requirements, ensure adding programs don't mutate the first -- Parametric DefGates and upper case function call expressions will no longer fail to parse. (#1589) -- native_quil_to_executable will no longer block indefinitely (#1585) -- The default QCSClient will now load without having QCS credentials (#1582) -- 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.30 - -### Breaking Changes - -- Use `ExecutionOptions` parameter to configure how jobs are submitted and retrieved from a QPU. This replaces the `use_gateway` flag on `QCSClient.load()` has been removed. (#1598) -- The `QuantumComputer`'s `run` method now takes an optional `MemoryMap` parameter. This mapping takes memory region names to a list of values to use for a run. This replaces the need to use `write_memory` on `Program`s between runs. -- 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 - -### Features - -- increase gRPC message size limit (#1610) -- support translation options for QPUCompiler (#1590) -- remove v2 compatibility layer (#1475) -- gracefully handle error when QPU unavailable for engagement (#1457) - -### Fixes - -- `Program.copy_everything_except_instructions()` no longer adds declarations to the instructions property (#1612) -- specify `quil` as a dependency -- `copy_everything_but_instructions` now correctly copies `DECLARE` statements (#1600) -- get_qc will use the given client_configuration -- Remove calibrations from program before sending them to a QVM (#1592) -- Replace `retry`, loosen `networkx` requirements, ensure adding programs don't mutate the first -- Parametric DefGates and upper case function call expressions will no longer fail to parse. (#1589) -- native_quil_to_executable will no longer block indefinitely (#1585) -- The default QCSClient will now load without having QCS credentials (#1582) -- 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.29 - -### Breaking Changes - -- Use `ExecutionOptions` parameter to configure how jobs are submitted and retrieved from a QPU. This replaces the `use_gateway` flag on `QCSClient.load()` has been removed. (#1598) -- The `QuantumComputer`'s `run` method now takes an optional `MemoryMap` parameter. This mapping takes memory region names to a list of values to use for a run. This replaces the need to use `write_memory` on `Program`s between runs. -- 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 - -### Features - -- increase gRPC message size limit (#1610) -- support translation options for QPUCompiler (#1590) -- remove v2 compatibility layer (#1475) -- gracefully handle error when QPU unavailable for engagement (#1457) - -### Fixes - -- `Program.copy_everything_except_instructions()` no longer adds declarations to the instructions property (#1612) -- specify `quil` as a dependency -- `copy_everything_but_instructions` now correctly copies `DECLARE` statements (#1600) -- get_qc will use the given client_configuration -- Remove calibrations from program before sending them to a QVM (#1592) -- Replace `retry`, loosen `networkx` requirements, ensure adding programs don't mutate the first -- Parametric DefGates and upper case function call expressions will no longer fail to parse. (#1589) -- native_quil_to_executable will no longer block indefinitely (#1585) -- The default QCSClient will now load without having QCS credentials (#1582) -- 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.28 - -### Breaking Changes - -- The `QuantumComputer`'s `run` method now takes an optional `MemoryMap` parameter. This mapping takes memory region names to a list of values to use for a run. This replaces the need to use `write_memory` on `Program`s between runs. -- 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 - -### Features - -- increase gRPC message size limit (#1610) -- support translation options for QPUCompiler (#1590) -- remove v2 compatibility layer (#1475) -- gracefully handle error when QPU unavailable for engagement (#1457) - -### Fixes - -- `Program.copy_everything_except_instructions()` no longer adds declarations to the instructions property (#1612) -- specify `quil` as a dependency -- `copy_everything_but_instructions` now correctly copies `DECLARE` statements (#1600) -- get_qc will use the given client_configuration -- Remove calibrations from program before sending them to a QVM (#1592) -- Replace `retry`, loosen `networkx` requirements, ensure adding programs don't mutate the first -- Parametric DefGates and upper case function call expressions will no longer fail to parse. (#1589) -- native_quil_to_executable will no longer block indefinitely (#1585) -- The default QCSClient will now load without having QCS credentials (#1582) -- 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.27 - -### Breaking Changes - -- The `QuantumComputer`'s `run` method now takes an optional `MemoryMap` parameter. This mapping takes memory region names to a list of values to use for a run. This replaces the need to use `write_memory` on `Program`s between runs. -- 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 - -### Features - -- increase gRPC message size limit (#1610) -- support translation options for QPUCompiler (#1590) -- remove v2 compatibility layer (#1475) -- gracefully handle error when QPU unavailable for engagement (#1457) - -### Fixes - -- specify `quil` as a dependency -- `copy_everything_but_instructions` now correctly copies `DECLARE` statements (#1600) -- get_qc will use the given client_configuration -- Remove calibrations from program before sending them to a QVM (#1592) -- Replace `retry`, loosen `networkx` requirements, ensure adding programs don't mutate the first -- Parametric DefGates and upper case function call expressions will no longer fail to parse. (#1589) -- native_quil_to_executable will no longer block indefinitely (#1585) -- The default QCSClient will now load without having QCS credentials (#1582) -- 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.26 - -### Breaking Changes - -- The `QuantumComputer`'s `run` method now takes an optional `MemoryMap` parameter. This mapping takes memory region names to a list of values to use for a run. This replaces the need to use `write_memory` on `Program`s between runs. -- 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 - -### Features - -- support translation options for QPUCompiler (#1590) -- remove v2 compatibility layer (#1475) -- gracefully handle error when QPU unavailable for engagement (#1457) - -### Fixes - -- specify `quil` as a dependency -- `copy_everything_but_instructions` now correctly copies `DECLARE` statements (#1600) -- get_qc will use the given client_configuration -- Remove calibrations from program before sending them to a QVM (#1592) -- Replace `retry`, loosen `networkx` requirements, ensure adding programs don't mutate the first -- Parametric DefGates and upper case function call expressions will no longer fail to parse. (#1589) -- native_quil_to_executable will no longer block indefinitely (#1585) -- The default QCSClient will now load without having QCS credentials (#1582) -- 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.25 - -### Breaking Changes - -- The `QuantumComputer`'s `run` method now takes an optional `MemoryMap` parameter. This mapping takes memory region names to a list of values to use for a run. This replaces the need to use `write_memory` on `Program`s between runs. -- 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 - -### Features - -- support translation options for QPUCompiler (#1590) -- remove v2 compatibility layer (#1475) -- gracefully handle error when QPU unavailable for engagement (#1457) - -### Fixes - -- `copy_everything_but_instructions` now correctly copies `DECLARE` statements (#1600) -- get_qc will use the given client_configuration -- Remove calibrations from program before sending them to a QVM (#1592) -- Replace `retry`, loosen `networkx` requirements, ensure adding programs don't mutate the first -- Parametric DefGates and upper case function call expressions will no longer fail to parse. (#1589) -- native_quil_to_executable will no longer block indefinitely (#1585) -- The default QCSClient will now load without having QCS credentials (#1582) -- 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.24 - -### Breaking Changes - -- The `QuantumComputer`'s `run` method now takes an optional `MemoryMap` parameter. This mapping takes memory region names to a list of values to use for a run. This replaces the need to use `write_memory` on `Program`s between runs. -- 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 - -### Features - -- support translation options for QPUCompiler (#1590) -- remove v2 compatibility layer (#1475) -- gracefully handle error when QPU unavailable for engagement (#1457) - -### Fixes - -- `copy_everything_but_instructions` now correctly copies `DECLARE` statements (#1600) -- get_qc will use the given client_configuration -- Remove calibrations from program before sending them to a QVM (#1592) -- Replace `retry`, loosen `networkx` requirements, ensure adding programs don't mutate the first -- Parametric DefGates and upper case function call expressions will no longer fail to parse. (#1589) -- native_quil_to_executable will no longer block indefinitely (#1585) -- The default QCSClient will now load without having QCS credentials (#1582) -- 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.23 - -### Breaking Changes - -- The `QuantumComputer`'s `run` method now takes an optional `MemoryMap` parameter. This mapping takes memory region names to a list of values to use for a run. This replaces the need to use `write_memory` on `Program`s between runs. -- 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 - -### Features - -- support translation options for QPUCompiler (#1590) -- remove v2 compatibility layer (#1475) -- gracefully handle error when QPU unavailable for engagement (#1457) - -### Fixes - -- `copy_everything_but_instructions` now correctly copies `DECLARE` statements (#1600) -- get_qc will use the given client_configuration -- Remove calibrations from program before sending them to a QVM (#1592) -- Replace `retry`, loosen `networkx` requirements, ensure adding programs don't mutate the first -- Parametric DefGates and upper case function call expressions will no longer fail to parse. (#1589) -- native_quil_to_executable will no longer block indefinitely (#1585) -- The default QCSClient will now load without having QCS credentials (#1582) -- 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.22 - -### Breaking Changes - -- The `QuantumComputer`'s `run` method now takes an optional `MemoryMap` parameter. This mapping takes memory region names to a list of values to use for a run. This replaces the need to use `write_memory` on `Program`s between runs. -- 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 - -### Features - -- support translation options for QPUCompiler (#1590) -- remove v2 compatibility layer (#1475) -- gracefully handle error when QPU unavailable for engagement (#1457) - -### Fixes - -- get_qc will use the given client_configuration -- Remove calibrations from program before sending them to a QVM (#1592) -- Replace `retry`, loosen `networkx` requirements, ensure adding programs don't mutate the first -- Parametric DefGates and upper case function call expressions will no longer fail to parse. (#1589) -- native_quil_to_executable will no longer block indefinitely (#1585) -- The default QCSClient will now load without having QCS credentials (#1582) -- 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.21 - -### Breaking Changes - -- The `QuantumComputer`'s `run` method now takes an optional `MemoryMap` parameter. This mapping takes memory region names to a list of values to use for a run. This replaces the need to use `write_memory` on `Program`s between runs. -- 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 - -### Features - -- support translation options for QPUCompiler (#1590) -- remove v2 compatibility layer (#1475) -- gracefully handle error when QPU unavailable for engagement (#1457) - -### Fixes - -- Remove calibrations from program before sending them to a QVM (#1592) -- Replace `retry`, loosen `networkx` requirements, ensure adding programs don't mutate the first -- Parametric DefGates and upper case function call expressions will no longer fail to parse. (#1589) -- native_quil_to_executable will no longer block indefinitely (#1585) -- The default QCSClient will now load without having QCS credentials (#1582) -- 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.20 - -### Breaking Changes - -- The `QuantumComputer`'s `run` method now takes an optional `MemoryMap` parameter. This mapping takes memory region names to a list of values to use for a run. This replaces the need to use `write_memory` on `Program`s between runs. -- 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 - -### Features - -- support translation options for QPUCompiler (#1590) -- remove v2 compatibility layer (#1475) -- gracefully handle error when QPU unavailable for engagement (#1457) - -### Fixes - -- Remove calibrations from program before sending them to a QVM (#1592) -- Replace `retry`, loosen `networkx` requirements, ensure adding programs don't mutate the first -- Parametric DefGates and upper case function call expressions will no longer fail to parse. (#1589) -- native_quil_to_executable will no longer block indefinitely (#1585) -- The default QCSClient will now load without having QCS credentials (#1582) -- 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.19 - -### Breaking Changes - -- The `QuantumComputer`'s `run` method now takes an optional `MemoryMap` parameter. This mapping takes memory region names to a list of values to use for a run. This replaces the need to use `write_memory` on `Program`s between runs. -- 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 - -### Features - -- support translation options for QPUCompiler (#1590) -- remove v2 compatibility layer (#1475) -- gracefully handle error when QPU unavailable for engagement (#1457) - -### Fixes - -- Replace `retry`, loosen `networkx` requirements, ensure adding programs don't mutate the first -- Parametric DefGates and upper case function call expressions will no longer fail to parse. (#1589) -- native_quil_to_executable will no longer block indefinitely (#1585) -- The default QCSClient will now load without having QCS credentials (#1582) -- 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.18 - -### Breaking Changes - -- The `QuantumComputer`'s `run` method now takes an optional `MemoryMap` parameter. This mapping takes memory region names to a list of values to use for a run. This replaces the need to use `write_memory` on `Program`s between runs. -- 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 - -### Features - -- remove v2 compatibility layer (#1475) -- gracefully handle error when QPU unavailable for engagement (#1457) - -### Fixes - -- Replace `retry`, loosen `networkx` requirements, ensure adding programs don't mutate the first -- Parametric DefGates and upper case function call expressions will no longer fail to parse. (#1589) -- native_quil_to_executable will no longer block indefinitely (#1585) -- The default QCSClient will now load without having QCS credentials (#1582) -- 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.17 - -### 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 - -### Features - -- remove v2 compatibility layer (#1475) -- gracefully handle error when QPU unavailable for engagement (#1457) - -### Fixes - -- Replace `retry`, loosen `networkx` requirements, ensure adding programs don't mutate the first -- Parametric DefGates and upper case function call expressions will no longer fail to parse. (#1589) -- native_quil_to_executable will no longer block indefinitely (#1585) -- The default QCSClient will now load without having QCS credentials (#1582) -- 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.16 - -### 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 - -### Features - -- remove v2 compatibility layer (#1475) -- gracefully handle error when QPU unavailable for engagement (#1457) - -### Fixes - -- Parametric DefGates and upper case function call expressions will no longer fail to parse. (#1589) -- native_quil_to_executable will no longer block indefinitely (#1585) -- The default QCSClient will now load without having QCS credentials (#1582) -- 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.15 - -### 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 - -### Features - -- remove v2 compatibility layer (#1475) -- gracefully handle error when QPU unavailable for engagement (#1457) - -### Fixes - -- native_quil_to_executable will no longer block indefinitely (#1585) -- The default QCSClient will now load without having QCS credentials (#1582) -- 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.14 - -### 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 - -### Features - -- remove v2 compatibility layer (#1475) -- gracefully handle error when QPU unavailable for engagement (#1457) - -### Fixes - -- The default QCSClient will now load without having QCS credentials (#1582) -- 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.13 - -### 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 - -### Features - -- remove v2 compatibility layer (#1475) -- gracefully handle error when QPU unavailable for engagement (#1457) - -### 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.12 - -### 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 - -### Features - -- remove v2 compatibility layer (#1475) -- gracefully handle error when QPU unavailable for engagement (#1457) - -### 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 - -### 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 - -### Features - -- remove v2 compatibility layer (#1475) -- gracefully handle error when QPU unavailable for engagement (#1457) - -### 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.10 +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) -- Replace `qcs-api-client` with `qcs-sdk-python` (#1550) -- Removed the `compatilbility.v2` subpackage (#1475) +- 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 -- 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 +- 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 diff --git a/V4_PRERELEASE_CHANGELOG.md b/V4_PRERELEASE_CHANGELOG.md new file mode 100644 index 000000000..79fefebb2 --- /dev/null +++ b/V4_PRERELEASE_CHANGELOG.md @@ -0,0 +1,1255 @@ +# Changelog + +## 4.0.0-rc.32 + +### Breaking Changes + +- Use `ExecutionOptions` parameter to configure how jobs are submitted and retrieved from a QPU. This replaces the `use_gateway` flag on `QCSClient.load()` has been removed. (#1598) +- The `QuantumComputer`'s `run` method now takes an optional `MemoryMap` parameter. This mapping takes memory region names to a list of values to use for a run. This replaces the need to use `write_memory` on `Program`s between runs. +- 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 + +### Features + +- increase gRPC message size limit (#1610) +- support translation options for QPUCompiler (#1590) +- remove v2 compatibility layer (#1475) +- gracefully handle error when QPU unavailable for engagement (#1457) + +### Fixes + +- Initializing a QPU with an `endpoint_id` should no longer raise an exception +- `Program.copy_everything_except_instructions()` no longer adds declarations to the instructions property (#1612) +- specify `quil` as a dependency +- `copy_everything_but_instructions` now correctly copies `DECLARE` statements (#1600) +- get_qc will use the given client_configuration +- Remove calibrations from program before sending them to a QVM (#1592) +- Replace `retry`, loosen `networkx` requirements, ensure adding programs don't mutate the first +- Parametric DefGates and upper case function call expressions will no longer fail to parse. (#1589) +- native_quil_to_executable will no longer block indefinitely (#1585) +- The default QCSClient will now load without having QCS credentials (#1582) +- 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.31 + +### Breaking Changes + +- Use `ExecutionOptions` parameter to configure how jobs are submitted and retrieved from a QPU. This replaces the `use_gateway` flag on `QCSClient.load()` has been removed. (#1598) +- The `QuantumComputer`'s `run` method now takes an optional `MemoryMap` parameter. This mapping takes memory region names to a list of values to use for a run. This replaces the need to use `write_memory` on `Program`s between runs. +- 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 + +### Features + +- increase gRPC message size limit (#1610) +- support translation options for QPUCompiler (#1590) +- remove v2 compatibility layer (#1475) +- gracefully handle error when QPU unavailable for engagement (#1457) + +### Fixes + +- Initializing a QPU with an `endpoint_id` should no longer raise an exception +- `Program.copy_everything_except_instructions()` no longer adds declarations to the instructions property (#1612) +- specify `quil` as a dependency +- `copy_everything_but_instructions` now correctly copies `DECLARE` statements (#1600) +- get_qc will use the given client_configuration +- Remove calibrations from program before sending them to a QVM (#1592) +- Replace `retry`, loosen `networkx` requirements, ensure adding programs don't mutate the first +- Parametric DefGates and upper case function call expressions will no longer fail to parse. (#1589) +- native_quil_to_executable will no longer block indefinitely (#1585) +- The default QCSClient will now load without having QCS credentials (#1582) +- 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.30 + +### Breaking Changes + +- Use `ExecutionOptions` parameter to configure how jobs are submitted and retrieved from a QPU. This replaces the `use_gateway` flag on `QCSClient.load()` has been removed. (#1598) +- The `QuantumComputer`'s `run` method now takes an optional `MemoryMap` parameter. This mapping takes memory region names to a list of values to use for a run. This replaces the need to use `write_memory` on `Program`s between runs. +- 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 + +### Features + +- increase gRPC message size limit (#1610) +- support translation options for QPUCompiler (#1590) +- remove v2 compatibility layer (#1475) +- gracefully handle error when QPU unavailable for engagement (#1457) + +### Fixes + +- `Program.copy_everything_except_instructions()` no longer adds declarations to the instructions property (#1612) +- specify `quil` as a dependency +- `copy_everything_but_instructions` now correctly copies `DECLARE` statements (#1600) +- get_qc will use the given client_configuration +- Remove calibrations from program before sending them to a QVM (#1592) +- Replace `retry`, loosen `networkx` requirements, ensure adding programs don't mutate the first +- Parametric DefGates and upper case function call expressions will no longer fail to parse. (#1589) +- native_quil_to_executable will no longer block indefinitely (#1585) +- The default QCSClient will now load without having QCS credentials (#1582) +- 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.29 + +### Breaking Changes + +- Use `ExecutionOptions` parameter to configure how jobs are submitted and retrieved from a QPU. This replaces the `use_gateway` flag on `QCSClient.load()` has been removed. (#1598) +- The `QuantumComputer`'s `run` method now takes an optional `MemoryMap` parameter. This mapping takes memory region names to a list of values to use for a run. This replaces the need to use `write_memory` on `Program`s between runs. +- 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 + +### Features + +- increase gRPC message size limit (#1610) +- support translation options for QPUCompiler (#1590) +- remove v2 compatibility layer (#1475) +- gracefully handle error when QPU unavailable for engagement (#1457) + +### Fixes + +- `Program.copy_everything_except_instructions()` no longer adds declarations to the instructions property (#1612) +- specify `quil` as a dependency +- `copy_everything_but_instructions` now correctly copies `DECLARE` statements (#1600) +- get_qc will use the given client_configuration +- Remove calibrations from program before sending them to a QVM (#1592) +- Replace `retry`, loosen `networkx` requirements, ensure adding programs don't mutate the first +- Parametric DefGates and upper case function call expressions will no longer fail to parse. (#1589) +- native_quil_to_executable will no longer block indefinitely (#1585) +- The default QCSClient will now load without having QCS credentials (#1582) +- 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.28 + +### Breaking Changes + +- The `QuantumComputer`'s `run` method now takes an optional `MemoryMap` parameter. This mapping takes memory region names to a list of values to use for a run. This replaces the need to use `write_memory` on `Program`s between runs. +- 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 + +### Features + +- increase gRPC message size limit (#1610) +- support translation options for QPUCompiler (#1590) +- remove v2 compatibility layer (#1475) +- gracefully handle error when QPU unavailable for engagement (#1457) + +### Fixes + +- `Program.copy_everything_except_instructions()` no longer adds declarations to the instructions property (#1612) +- specify `quil` as a dependency +- `copy_everything_but_instructions` now correctly copies `DECLARE` statements (#1600) +- get_qc will use the given client_configuration +- Remove calibrations from program before sending them to a QVM (#1592) +- Replace `retry`, loosen `networkx` requirements, ensure adding programs don't mutate the first +- Parametric DefGates and upper case function call expressions will no longer fail to parse. (#1589) +- native_quil_to_executable will no longer block indefinitely (#1585) +- The default QCSClient will now load without having QCS credentials (#1582) +- 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.27 + +### Breaking Changes + +- The `QuantumComputer`'s `run` method now takes an optional `MemoryMap` parameter. This mapping takes memory region names to a list of values to use for a run. This replaces the need to use `write_memory` on `Program`s between runs. +- 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 + +### Features + +- increase gRPC message size limit (#1610) +- support translation options for QPUCompiler (#1590) +- remove v2 compatibility layer (#1475) +- gracefully handle error when QPU unavailable for engagement (#1457) + +### Fixes + +- specify `quil` as a dependency +- `copy_everything_but_instructions` now correctly copies `DECLARE` statements (#1600) +- get_qc will use the given client_configuration +- Remove calibrations from program before sending them to a QVM (#1592) +- Replace `retry`, loosen `networkx` requirements, ensure adding programs don't mutate the first +- Parametric DefGates and upper case function call expressions will no longer fail to parse. (#1589) +- native_quil_to_executable will no longer block indefinitely (#1585) +- The default QCSClient will now load without having QCS credentials (#1582) +- 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.26 + +### Breaking Changes + +- The `QuantumComputer`'s `run` method now takes an optional `MemoryMap` parameter. This mapping takes memory region names to a list of values to use for a run. This replaces the need to use `write_memory` on `Program`s between runs. +- 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 + +### Features + +- support translation options for QPUCompiler (#1590) +- remove v2 compatibility layer (#1475) +- gracefully handle error when QPU unavailable for engagement (#1457) + +### Fixes + +- specify `quil` as a dependency +- `copy_everything_but_instructions` now correctly copies `DECLARE` statements (#1600) +- get_qc will use the given client_configuration +- Remove calibrations from program before sending them to a QVM (#1592) +- Replace `retry`, loosen `networkx` requirements, ensure adding programs don't mutate the first +- Parametric DefGates and upper case function call expressions will no longer fail to parse. (#1589) +- native_quil_to_executable will no longer block indefinitely (#1585) +- The default QCSClient will now load without having QCS credentials (#1582) +- 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.25 + +### Breaking Changes + +- The `QuantumComputer`'s `run` method now takes an optional `MemoryMap` parameter. This mapping takes memory region names to a list of values to use for a run. This replaces the need to use `write_memory` on `Program`s between runs. +- 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 + +### Features + +- support translation options for QPUCompiler (#1590) +- remove v2 compatibility layer (#1475) +- gracefully handle error when QPU unavailable for engagement (#1457) + +### Fixes + +- `copy_everything_but_instructions` now correctly copies `DECLARE` statements (#1600) +- get_qc will use the given client_configuration +- Remove calibrations from program before sending them to a QVM (#1592) +- Replace `retry`, loosen `networkx` requirements, ensure adding programs don't mutate the first +- Parametric DefGates and upper case function call expressions will no longer fail to parse. (#1589) +- native_quil_to_executable will no longer block indefinitely (#1585) +- The default QCSClient will now load without having QCS credentials (#1582) +- 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.24 + +### Breaking Changes + +- The `QuantumComputer`'s `run` method now takes an optional `MemoryMap` parameter. This mapping takes memory region names to a list of values to use for a run. This replaces the need to use `write_memory` on `Program`s between runs. +- 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 + +### Features + +- support translation options for QPUCompiler (#1590) +- remove v2 compatibility layer (#1475) +- gracefully handle error when QPU unavailable for engagement (#1457) + +### Fixes + +- `copy_everything_but_instructions` now correctly copies `DECLARE` statements (#1600) +- get_qc will use the given client_configuration +- Remove calibrations from program before sending them to a QVM (#1592) +- Replace `retry`, loosen `networkx` requirements, ensure adding programs don't mutate the first +- Parametric DefGates and upper case function call expressions will no longer fail to parse. (#1589) +- native_quil_to_executable will no longer block indefinitely (#1585) +- The default QCSClient will now load without having QCS credentials (#1582) +- 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.23 + +### Breaking Changes + +- The `QuantumComputer`'s `run` method now takes an optional `MemoryMap` parameter. This mapping takes memory region names to a list of values to use for a run. This replaces the need to use `write_memory` on `Program`s between runs. +- 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 + +### Features + +- support translation options for QPUCompiler (#1590) +- remove v2 compatibility layer (#1475) +- gracefully handle error when QPU unavailable for engagement (#1457) + +### Fixes + +- `copy_everything_but_instructions` now correctly copies `DECLARE` statements (#1600) +- get_qc will use the given client_configuration +- Remove calibrations from program before sending them to a QVM (#1592) +- Replace `retry`, loosen `networkx` requirements, ensure adding programs don't mutate the first +- Parametric DefGates and upper case function call expressions will no longer fail to parse. (#1589) +- native_quil_to_executable will no longer block indefinitely (#1585) +- The default QCSClient will now load without having QCS credentials (#1582) +- 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.22 + +### Breaking Changes + +- The `QuantumComputer`'s `run` method now takes an optional `MemoryMap` parameter. This mapping takes memory region names to a list of values to use for a run. This replaces the need to use `write_memory` on `Program`s between runs. +- 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 + +### Features + +- support translation options for QPUCompiler (#1590) +- remove v2 compatibility layer (#1475) +- gracefully handle error when QPU unavailable for engagement (#1457) + +### Fixes + +- get_qc will use the given client_configuration +- Remove calibrations from program before sending them to a QVM (#1592) +- Replace `retry`, loosen `networkx` requirements, ensure adding programs don't mutate the first +- Parametric DefGates and upper case function call expressions will no longer fail to parse. (#1589) +- native_quil_to_executable will no longer block indefinitely (#1585) +- The default QCSClient will now load without having QCS credentials (#1582) +- 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.21 + +### Breaking Changes + +- The `QuantumComputer`'s `run` method now takes an optional `MemoryMap` parameter. This mapping takes memory region names to a list of values to use for a run. This replaces the need to use `write_memory` on `Program`s between runs. +- 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 + +### Features + +- support translation options for QPUCompiler (#1590) +- remove v2 compatibility layer (#1475) +- gracefully handle error when QPU unavailable for engagement (#1457) + +### Fixes + +- Remove calibrations from program before sending them to a QVM (#1592) +- Replace `retry`, loosen `networkx` requirements, ensure adding programs don't mutate the first +- Parametric DefGates and upper case function call expressions will no longer fail to parse. (#1589) +- native_quil_to_executable will no longer block indefinitely (#1585) +- The default QCSClient will now load without having QCS credentials (#1582) +- 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.20 + +### Breaking Changes + +- The `QuantumComputer`'s `run` method now takes an optional `MemoryMap` parameter. This mapping takes memory region names to a list of values to use for a run. This replaces the need to use `write_memory` on `Program`s between runs. +- 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 + +### Features + +- support translation options for QPUCompiler (#1590) +- remove v2 compatibility layer (#1475) +- gracefully handle error when QPU unavailable for engagement (#1457) + +### Fixes + +- Remove calibrations from program before sending them to a QVM (#1592) +- Replace `retry`, loosen `networkx` requirements, ensure adding programs don't mutate the first +- Parametric DefGates and upper case function call expressions will no longer fail to parse. (#1589) +- native_quil_to_executable will no longer block indefinitely (#1585) +- The default QCSClient will now load without having QCS credentials (#1582) +- 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.19 + +### Breaking Changes + +- The `QuantumComputer`'s `run` method now takes an optional `MemoryMap` parameter. This mapping takes memory region names to a list of values to use for a run. This replaces the need to use `write_memory` on `Program`s between runs. +- 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 + +### Features + +- support translation options for QPUCompiler (#1590) +- remove v2 compatibility layer (#1475) +- gracefully handle error when QPU unavailable for engagement (#1457) + +### Fixes + +- Replace `retry`, loosen `networkx` requirements, ensure adding programs don't mutate the first +- Parametric DefGates and upper case function call expressions will no longer fail to parse. (#1589) +- native_quil_to_executable will no longer block indefinitely (#1585) +- The default QCSClient will now load without having QCS credentials (#1582) +- 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.18 + +### Breaking Changes + +- The `QuantumComputer`'s `run` method now takes an optional `MemoryMap` parameter. This mapping takes memory region names to a list of values to use for a run. This replaces the need to use `write_memory` on `Program`s between runs. +- 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 + +### Features + +- remove v2 compatibility layer (#1475) +- gracefully handle error when QPU unavailable for engagement (#1457) + +### Fixes + +- Replace `retry`, loosen `networkx` requirements, ensure adding programs don't mutate the first +- Parametric DefGates and upper case function call expressions will no longer fail to parse. (#1589) +- native_quil_to_executable will no longer block indefinitely (#1585) +- The default QCSClient will now load without having QCS credentials (#1582) +- 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.17 + +### 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 + +### Features + +- remove v2 compatibility layer (#1475) +- gracefully handle error when QPU unavailable for engagement (#1457) + +### Fixes + +- Replace `retry`, loosen `networkx` requirements, ensure adding programs don't mutate the first +- Parametric DefGates and upper case function call expressions will no longer fail to parse. (#1589) +- native_quil_to_executable will no longer block indefinitely (#1585) +- The default QCSClient will now load without having QCS credentials (#1582) +- 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.16 + +### 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 + +### Features + +- remove v2 compatibility layer (#1475) +- gracefully handle error when QPU unavailable for engagement (#1457) + +### Fixes + +- Parametric DefGates and upper case function call expressions will no longer fail to parse. (#1589) +- native_quil_to_executable will no longer block indefinitely (#1585) +- The default QCSClient will now load without having QCS credentials (#1582) +- 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.15 + +### 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 + +### Features + +- remove v2 compatibility layer (#1475) +- gracefully handle error when QPU unavailable for engagement (#1457) + +### Fixes + +- native_quil_to_executable will no longer block indefinitely (#1585) +- The default QCSClient will now load without having QCS credentials (#1582) +- 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.14 + +### 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 + +### Features + +- remove v2 compatibility layer (#1475) +- gracefully handle error when QPU unavailable for engagement (#1457) + +### Fixes + +- The default QCSClient will now load without having QCS credentials (#1582) +- 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.13 + +### 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 + +### Features + +- remove v2 compatibility layer (#1475) +- gracefully handle error when QPU unavailable for engagement (#1457) + +### 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.12 + +### 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 + +### Features + +- remove v2 compatibility layer (#1475) +- gracefully handle error when QPU unavailable for engagement (#1457) + +### 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 + +### 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 + +### Features + +- remove v2 compatibility layer (#1475) +- gracefully handle error when QPU unavailable for engagement (#1457) + +### 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.10 + +### Breaking Changes + +- 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. + +### Features + +- 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. + diff --git a/knope.toml b/knope.toml index c8727e030..0944de2f2 100644 --- a/knope.toml +++ b/knope.toml @@ -1,6 +1,8 @@ [package] versioned_files = ["pyproject.toml"] -changelog = "CHANGELOG.md" +# This should be changed back to CHANGELOG.md once v4.0.0 is released. +# https://github.com/rigetti/pyquil/issues/1621 +changelog = "V4_PRERELEASE_CHANGELOG.md" [[workflows]] name = "release" From 73a3dc71d17078fa66376fe43e0a4224dea7d974 Mon Sep 17 00:00:00 2001 From: MarquessV Date: Wed, 19 Jul 2023 20:29:14 +0000 Subject: [PATCH 2/8] chore: prepare release 4.0.0-rc.33 [skip ci] --- V4_PRERELEASE_CHANGELOG.md | 64 +++++++++++++++++++++++++++++++++++++- pyproject.toml | 2 +- 2 files changed, 64 insertions(+), 2 deletions(-) diff --git a/V4_PRERELEASE_CHANGELOG.md b/V4_PRERELEASE_CHANGELOG.md index 79fefebb2..8cbf82e9d 100644 --- a/V4_PRERELEASE_CHANGELOG.md +++ b/V4_PRERELEASE_CHANGELOG.md @@ -1,5 +1,68 @@ # Changelog +## 4.0.0-rc.33 + +### Breaking Changes + +- Use `ExecutionOptions` parameter to configure how jobs are submitted and retrieved from a QPU. This replaces the `use_gateway` flag on `QCSClient.load()` has been removed. (#1598) +- The `QuantumComputer`'s `run` method now takes an optional `MemoryMap` parameter. This mapping takes memory region names to a list of values to use for a run. This replaces the need to use `write_memory` on `Program`s between runs. +- 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 + +### Features + +- increase gRPC message size limit (#1610) +- support translation options for QPUCompiler (#1590) +- remove v2 compatibility layer (#1475) +- gracefully handle error when QPU unavailable for engagement (#1457) + +### Fixes + +- Initializing a QPU with an `endpoint_id` should no longer raise an exception +- `Program.copy_everything_except_instructions()` no longer adds declarations to the instructions property (#1612) +- specify `quil` as a dependency +- `copy_everything_but_instructions` now correctly copies `DECLARE` statements (#1600) +- get_qc will use the given client_configuration +- Remove calibrations from program before sending them to a QVM (#1592) +- Replace `retry`, loosen `networkx` requirements, ensure adding programs don't mutate the first +- Parametric DefGates and upper case function call expressions will no longer fail to parse. (#1589) +- native_quil_to_executable will no longer block indefinitely (#1585) +- The default QCSClient will now load without having QCS credentials (#1582) +- 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.32 ### Breaking Changes @@ -1252,4 +1315,3 @@ - Better performance - Better error messages when a request fails - The improved Rust backend allows on-demand access to a QPU. - diff --git a/pyproject.toml b/pyproject.toml index 32a6742a4..a42ea4c73 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "pyquil" -version = "4.0.0-rc.32" +version = "4.0.0-rc.33" description = "A Python library for creating Quantum Instruction Language (Quil) programs." authors = ["Rigetti Computing "] readme = "README.md" From f404ea6e471427eea8acd15f61e70c2ecd4ac515 Mon Sep 17 00:00:00 2001 From: marquessv Date: Wed, 19 Jul 2023 15:54:49 -0700 Subject: [PATCH 3/8] add pyquil v4 introduction --- docs/source/index.rst | 4 ++-- docs/source/migration.rst | 7 ------- 2 files changed, 2 insertions(+), 9 deletions(-) delete mode 100644 docs/source/migration.rst diff --git a/docs/source/index.rst b/docs/source/index.rst index 3c3d9c0ef..371b615f9 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -20,7 +20,7 @@ to get started. .. note:: - If you've used pyQuil before, be sure to check out :ref:`migration` for help with moving to the newest pyQuil release. + If you've used pyQuil before, be sure to check out :ref:`introducing_v4` to help get oriented on the key changes in v4. .. note:: @@ -38,8 +38,8 @@ to get started. noise advanced_usage troubleshooting + introducing_v4 exercises - migration changes .. toctree:: diff --git a/docs/source/migration.rst b/docs/source/migration.rst deleted file mode 100644 index 79f84acbc..000000000 --- a/docs/source/migration.rst +++ /dev/null @@ -1,7 +0,0 @@ -.. _migration: - -Migrating from pyQuil v3 to v4 -============================== - -Internally, `asyncio` is now used for compilation, execution, and result collection. If using pyQuil in an existing `asyncio` context, -it may be necessary to use [nest-asyncio](https://pypi.org/project/nest-asyncio/) to allow nesting of async contexts. \ No newline at end of file From 7d61498c0660b60189a43df28a24c04497a7f6ab Mon Sep 17 00:00:00 2001 From: MarquessV Date: Wed, 19 Jul 2023 22:55:15 +0000 Subject: [PATCH 4/8] chore: prepare release 4.0.0-rc.34 [skip ci] --- V4_PRERELEASE_CHANGELOG.md | 63 ++++++++++++++++++++++++++++++++++++++ pyproject.toml | 2 +- 2 files changed, 64 insertions(+), 1 deletion(-) diff --git a/V4_PRERELEASE_CHANGELOG.md b/V4_PRERELEASE_CHANGELOG.md index 8cbf82e9d..76a35130e 100644 --- a/V4_PRERELEASE_CHANGELOG.md +++ b/V4_PRERELEASE_CHANGELOG.md @@ -1,5 +1,68 @@ # Changelog +## 4.0.0-rc.34 + +### Breaking Changes + +- Use `ExecutionOptions` parameter to configure how jobs are submitted and retrieved from a QPU. This replaces the `use_gateway` flag on `QCSClient.load()` has been removed. (#1598) +- The `QuantumComputer`'s `run` method now takes an optional `MemoryMap` parameter. This mapping takes memory region names to a list of values to use for a run. This replaces the need to use `write_memory` on `Program`s between runs. +- 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 + +### Features + +- increase gRPC message size limit (#1610) +- support translation options for QPUCompiler (#1590) +- remove v2 compatibility layer (#1475) +- gracefully handle error when QPU unavailable for engagement (#1457) + +### Fixes + +- Initializing a QPU with an `endpoint_id` should no longer raise an exception +- `Program.copy_everything_except_instructions()` no longer adds declarations to the instructions property (#1612) +- specify `quil` as a dependency +- `copy_everything_but_instructions` now correctly copies `DECLARE` statements (#1600) +- get_qc will use the given client_configuration +- Remove calibrations from program before sending them to a QVM (#1592) +- Replace `retry`, loosen `networkx` requirements, ensure adding programs don't mutate the first +- Parametric DefGates and upper case function call expressions will no longer fail to parse. (#1589) +- native_quil_to_executable will no longer block indefinitely (#1585) +- The default QCSClient will now load without having QCS credentials (#1582) +- 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.33 ### Breaking Changes diff --git a/pyproject.toml b/pyproject.toml index a42ea4c73..29390d435 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "pyquil" -version = "4.0.0-rc.33" +version = "4.0.0-rc.34" description = "A Python library for creating Quantum Instruction Language (Quil) programs." authors = ["Rigetti Computing "] readme = "README.md" From 298c9a07ac19b1797cf66128c5c32528fc4a4fb1 Mon Sep 17 00:00:00 2001 From: marquessv Date: Wed, 19 Jul 2023 16:00:26 -0700 Subject: [PATCH 5/8] build: add introducing_v4 doc --- docs/source/introducing_v4.rst | 88 ++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 docs/source/introducing_v4.rst diff --git a/docs/source/introducing_v4.rst b/docs/source/introducing_v4.rst new file mode 100644 index 000000000..1e208a563 --- /dev/null +++ b/docs/source/introducing_v4.rst @@ -0,0 +1,88 @@ +.. _introducing_v4: + +Introducing pyQuil v4 +===================== + +The 4.0 major release of pyQuil moves the foundation of program parsing, manipulation, compilation, and execution into Rigetti's latest generation of SDKs written in Rust. This comes with improved performance, stronger type safety, better error messages, and access to exciting new features. + +As a first step, read through the :doc:`changes` to get an overview of what's new. Pay special attention to the breaking changes you may need to accommodate. In the rest of this introduction, we'll expand on some of the key changes and new features. + +.. note:: + + pyQuil v4 is currently pre-release software. If using ``pip``, be sure to install it with the ``--pre`` flag: ``pip install --pre pyquil`` + +Parameters & Memory +------------------- + +In order to provide more flexibility when executing parameterized Programs, the execution methods on ``QAM``, ``QVM``, ``QPU`` and the like now accept an optional memory_map keyword parameter. This parameter is defined as a mapping of a memory region's name to a sequence of values that will be used to initialize that memory region before executing the program. This replaces the ability to use the write_memory method on a Program. +Here is an example of how you might use a memory map in practice: + +.. code:: python + + from pyquil.api import get_qc + from pyquil.gates import RZ + from pyquil.quil import Program + + qc = get_qc("Ankaa-1") + program = Program() + theta = program.declare("theta", "REAL") + program += RZ(theta, 0) + exe = qc.compile(program) + + # Previously, we would've used program.write_memory(region_name="theta", value=0.0) + memory_map = {"theta": [0.0]} + + result = qc.run(exe, memory_map=memory_map) + +The ``MemoryMap`` type is defined as ``Mapping[str, Union[Sequence[int], Sequence[float]]``. Note that the values mapped to a memory region must always be a sequence. This is different from ``write_memory`` which would allow writing an atomic value to a region of length 1. + + +QCS Gateway and Execution Options +--------------------------------- + +The QCS Gateway is a new service that provides on-demand access to a QPU. See the [QCS documentation]() for more information on what it is and why you might find it useful. + +In pyQuil v4, Gateway is enabled by default and it is generally recommended to keep it on. However, if you have a use case for sending your job to the QPU directly, you can use the new ``ExecutionOptions`` and ``ConnectionStrategy`` classes to configure your request: + +.. code:: python + + from pyquil.api import get_qc, ExecutionOptionsBuilder, ConnectionStrategy + from pyquil.quil import Program + + qc = get_qc("Ankaa-1") + program = Program() + exe = qc.compile(program) + + # Use an ``ExecutionOptionsBuilder`` to build a custom ``ExecutionOptions`` + execution_options_builder = ExecutionOptionsBuilder() + execution_options_builder.connection_strategy = ConnectionStrategy.direct_access() + execution_options = execution_options_builder.build() + + # Option 1: Override execution options on a per-request basis. + result = qc.run(exe, execution_options=execution_options) + + # Option 2: Sets the default options for all execution requests where no execution_options parameter is provided. + result = qc.qam.execution_options = execution_options + + +Using the new QPU Compiler Backend +---------------------------------- + +Rigetti's next-generation QPU compiler is accessible through pyQuil v4. This new backend is still in development, so while it will eventually become the default, it is currently in limited access. If you have access, you can configure your compiler to use it using the new ``QPUCompilerAPIOptions`` class: + +.. code:: python + + from pyquil.api import get_qc, QPUCompilerAPIOptions + from pyquil.quil import Program + + program = Program() + qc = get_qc("Ankaa-1") + + api_options = QPUCompilerAPIOptions() + api_options.use_backend_v2() + + # Option 1: Apply to all compiled programs + qc.compiler.api_options = api_options + + # Option 2: Apply to one specific compilation + qc.compiler.native_quil_to_executable(program, api_options=api_options) From b3bf02f4421ab6cbca14edba918fbbdb8d4569ef Mon Sep 17 00:00:00 2001 From: MarquessV Date: Wed, 19 Jul 2023 23:01:08 +0000 Subject: [PATCH 6/8] chore: prepare release 4.0.0-rc.35 [skip ci] --- V4_PRERELEASE_CHANGELOG.md | 63 ++++++++++++++++++++++++++++++++++++++ pyproject.toml | 2 +- 2 files changed, 64 insertions(+), 1 deletion(-) diff --git a/V4_PRERELEASE_CHANGELOG.md b/V4_PRERELEASE_CHANGELOG.md index 76a35130e..3b61b5ffa 100644 --- a/V4_PRERELEASE_CHANGELOG.md +++ b/V4_PRERELEASE_CHANGELOG.md @@ -1,5 +1,68 @@ # Changelog +## 4.0.0-rc.35 + +### Breaking Changes + +- Use `ExecutionOptions` parameter to configure how jobs are submitted and retrieved from a QPU. This replaces the `use_gateway` flag on `QCSClient.load()` has been removed. (#1598) +- The `QuantumComputer`'s `run` method now takes an optional `MemoryMap` parameter. This mapping takes memory region names to a list of values to use for a run. This replaces the need to use `write_memory` on `Program`s between runs. +- 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 + +### Features + +- increase gRPC message size limit (#1610) +- support translation options for QPUCompiler (#1590) +- remove v2 compatibility layer (#1475) +- gracefully handle error when QPU unavailable for engagement (#1457) + +### Fixes + +- Initializing a QPU with an `endpoint_id` should no longer raise an exception +- `Program.copy_everything_except_instructions()` no longer adds declarations to the instructions property (#1612) +- specify `quil` as a dependency +- `copy_everything_but_instructions` now correctly copies `DECLARE` statements (#1600) +- get_qc will use the given client_configuration +- Remove calibrations from program before sending them to a QVM (#1592) +- Replace `retry`, loosen `networkx` requirements, ensure adding programs don't mutate the first +- Parametric DefGates and upper case function call expressions will no longer fail to parse. (#1589) +- native_quil_to_executable will no longer block indefinitely (#1585) +- The default QCSClient will now load without having QCS credentials (#1582) +- 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.34 ### Breaking Changes diff --git a/pyproject.toml b/pyproject.toml index 29390d435..91f0ca36e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "pyquil" -version = "4.0.0-rc.34" +version = "4.0.0-rc.35" description = "A Python library for creating Quantum Instruction Language (Quil) programs." authors = ["Rigetti Computing "] readme = "README.md" From 35bd6438b864ade028242366e631eaa0df89ab7a Mon Sep 17 00:00:00 2001 From: marquessv Date: Wed, 19 Jul 2023 17:28:33 -0700 Subject: [PATCH 7/8] docs: update gateway documentation link --- docs/source/introducing_v4.rst | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/source/introducing_v4.rst b/docs/source/introducing_v4.rst index 1e208a563..07dafe9b9 100644 --- a/docs/source/introducing_v4.rst +++ b/docs/source/introducing_v4.rst @@ -14,7 +14,7 @@ As a first step, read through the :doc:`changes` to get an overview of what's ne Parameters & Memory ------------------- -In order to provide more flexibility when executing parameterized Programs, the execution methods on ``QAM``, ``QVM``, ``QPU`` and the like now accept an optional memory_map keyword parameter. This parameter is defined as a mapping of a memory region's name to a sequence of values that will be used to initialize that memory region before executing the program. This replaces the ability to use the write_memory method on a Program. +In order to provide more flexibility when executing parameterized Programs, the execution methods on ``QAM``, ``QVM``, ``QPU`` and the like now accept an optional ``memory_map`` keyword parameter. This parameter is defined as a mapping of a memory region's name to a sequence of values that will be used to initialize that memory region before executing the program. This replaces the ability to use the write_memory method on a Program. Here is an example of how you might use a memory map in practice: .. code:: python @@ -40,7 +40,9 @@ The ``MemoryMap`` type is defined as ``Mapping[str, Union[Sequence[int], Sequenc QCS Gateway and Execution Options --------------------------------- -The QCS Gateway is a new service that provides on-demand access to a QPU. See the [QCS documentation]() for more information on what it is and why you might find it useful. +The QCS Gateway is a new service that provides on-demand access to a QPU. See the `QCS documentation`_ for more information on what it is and why you might find it useful. + +.. _QCS documentation: https://docs.rigetti.com/qcs/guides/qcs-gateway In pyQuil v4, Gateway is enabled by default and it is generally recommended to keep it on. However, if you have a use case for sending your job to the QPU directly, you can use the new ``ExecutionOptions`` and ``ConnectionStrategy`` classes to configure your request: From a63f0008d22e9838258e3d11c20f35762498176d Mon Sep 17 00:00:00 2001 From: MarquessV Date: Thu, 20 Jul 2023 00:29:35 +0000 Subject: [PATCH 8/8] chore: prepare release 4.0.0-rc.36 [skip ci] --- V4_PRERELEASE_CHANGELOG.md | 63 ++++++++++++++++++++++++++++++++++++++ pyproject.toml | 2 +- 2 files changed, 64 insertions(+), 1 deletion(-) diff --git a/V4_PRERELEASE_CHANGELOG.md b/V4_PRERELEASE_CHANGELOG.md index 3b61b5ffa..550a75bfc 100644 --- a/V4_PRERELEASE_CHANGELOG.md +++ b/V4_PRERELEASE_CHANGELOG.md @@ -1,5 +1,68 @@ # Changelog +## 4.0.0-rc.36 + +### Breaking Changes + +- Use `ExecutionOptions` parameter to configure how jobs are submitted and retrieved from a QPU. This replaces the `use_gateway` flag on `QCSClient.load()` has been removed. (#1598) +- The `QuantumComputer`'s `run` method now takes an optional `MemoryMap` parameter. This mapping takes memory region names to a list of values to use for a run. This replaces the need to use `write_memory` on `Program`s between runs. +- 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 + +### Features + +- increase gRPC message size limit (#1610) +- support translation options for QPUCompiler (#1590) +- remove v2 compatibility layer (#1475) +- gracefully handle error when QPU unavailable for engagement (#1457) + +### Fixes + +- Initializing a QPU with an `endpoint_id` should no longer raise an exception +- `Program.copy_everything_except_instructions()` no longer adds declarations to the instructions property (#1612) +- specify `quil` as a dependency +- `copy_everything_but_instructions` now correctly copies `DECLARE` statements (#1600) +- get_qc will use the given client_configuration +- Remove calibrations from program before sending them to a QVM (#1592) +- Replace `retry`, loosen `networkx` requirements, ensure adding programs don't mutate the first +- Parametric DefGates and upper case function call expressions will no longer fail to parse. (#1589) +- native_quil_to_executable will no longer block indefinitely (#1585) +- The default QCSClient will now load without having QCS credentials (#1582) +- 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.35 ### Breaking Changes diff --git a/pyproject.toml b/pyproject.toml index 91f0ca36e..3091f96ff 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "pyquil" -version = "4.0.0-rc.35" +version = "4.0.0-rc.36" description = "A Python library for creating Quantum Instruction Language (Quil) programs." authors = ["Rigetti Computing "] readme = "README.md"