From ca28135ae132cf538a6f6b3de59c34ae2bef21f2 Mon Sep 17 00:00:00 2001 From: Matthew Silverman Date: Tue, 21 Feb 2023 14:56:09 -0500 Subject: [PATCH 01/17] update changelog before plugin version bumps (#125) * update changelog before plugin version bumps * fix QSV initialization * switch release ownership to timmysilv --- .github/workflows/post_release_version_bump.yml | 2 +- .github/workflows/pre_release_version_bump.yml | 2 +- CHANGELOG.md | 11 ++++++----- tests/test_qvm.py | 2 +- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/.github/workflows/post_release_version_bump.yml b/.github/workflows/post_release_version_bump.yml index 56004f71..0c866839 100644 --- a/.github/workflows/post_release_version_bump.yml +++ b/.github/workflows/post_release_version_bump.yml @@ -35,5 +35,5 @@ jobs: title: Version Bump body: updated changelog and _version.py branch: post-release-version-bump - reviewers: antalszava + reviewers: timmysilv base: master diff --git a/.github/workflows/pre_release_version_bump.yml b/.github/workflows/pre_release_version_bump.yml index 1ac68282..412fd3b4 100644 --- a/.github/workflows/pre_release_version_bump.yml +++ b/.github/workflows/pre_release_version_bump.yml @@ -34,5 +34,5 @@ jobs: title: Version Bump body: updated changelog and _version.py branch: pre-release-version-bump - reviewers: antalszava + reviewers: timmysilv base: master diff --git a/CHANGELOG.md b/CHANGELOG.md index df8f2935..76dc3aaa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,11 +4,8 @@ ### Breaking changes -* Build dependency specification is now solely in `requirements.txt`, which is read - by `setup.py`. What's more, a missing comma has been added to the version bounds - on `qcs-api-client`, fixing ([#120](https://github.com/PennyLaneAI/pennylane-rigetti/pull/120)) - a bug ([#119](https://github.com/PennyLaneAI/pennylane-rigetti/issues/119)) that - was causing errors when trying to use the package. +* Build dependency specification is now solely in `requirements.txt`, which is read by `setup.py`. + [(#120)](https://github.com/PennyLaneAI/pennylane-rigetti/pull/120) * `pennylane-rigetti` no longer supports `python3.7`. A newer python version is required. [(#121)](https://github.com/PennyLaneAI/pennylane-rigetti/pull/121) @@ -22,12 +19,16 @@ ### Bug fixes +* A missing comma has been added to the version bounds on `qcs-api-client`. + [(#120)](https://github.com/PennyLaneAI/pennylane-rigetti/pull/120) + ### Contributors This release contains contributions from (in alphabetical order): Albert Mitjans Coma Graham Enos +Mudit Pandey --- diff --git a/tests/test_qvm.py b/tests/test_qvm.py index b36b1905..4fbd4b1f 100644 --- a/tests/test_qvm.py +++ b/tests/test_qvm.py @@ -612,7 +612,7 @@ def test_apply_qubitstatesvector_raises_an_error_if_not_first(self): applied as the first operation.""" dev = qml.device("rigetti.qvm", device="2q-qvm", parametric_compilation=True) - operation = qml.QubitStateVector(np.array([1, 0]), wires=list(range(2))) + operation = qml.QubitStateVector(np.array([1, 0]), wires=[0]) queue = [qml.PauliX(0), operation] with pytest.raises( qml.DeviceError, From 8d5887582d0f30ba10543ed5764d8f35c953d1d4 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 21 Feb 2023 16:39:09 -0500 Subject: [PATCH 02/17] Version Bump (#126) * pre release version bump * improve changelog categorization --------- Co-authored-by: timmysilv Co-authored-by: Matthew Silverman --- CHANGELOG.md | 16 ++++++---------- pennylane_rigetti/_version.py | 2 +- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 76dc3aaa..a7b62c27 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,21 +1,17 @@ -# Release 0.28.0-dev - -### New features since last release +# Release 0.29.0 ### Breaking changes -* Build dependency specification is now solely in `requirements.txt`, which is read by `setup.py`. - [(#120)](https://github.com/PennyLaneAI/pennylane-rigetti/pull/120) - * `pennylane-rigetti` no longer supports `python3.7`. A newer python version is required. [(#121)](https://github.com/PennyLaneAI/pennylane-rigetti/pull/121) -* Removed the use of in-place inversion for PennyLane operations. - [(#122)](https://github.com/PennyLaneAI/pennylane-rigetti/pull/122) - ### Improvements -### Documentation +* Build dependency specification is now solely in `requirements.txt`, which is read by `setup.py`. + [(#120)](https://github.com/PennyLaneAI/pennylane-rigetti/pull/120) + +* Removed the use of in-place inversion for PennyLane operations. + [(#122)](https://github.com/PennyLaneAI/pennylane-rigetti/pull/122) ### Bug fixes diff --git a/pennylane_rigetti/_version.py b/pennylane_rigetti/_version.py index 9ebe747f..cfe54d9d 100644 --- a/pennylane_rigetti/_version.py +++ b/pennylane_rigetti/_version.py @@ -2,4 +2,4 @@ Version number (convention major.minor.patch[-label]) """ -__version__ = "0.28.0-dev" +__version__ = "0.29.0" From 2ed57180177d11b5d08af40f4c8080fc4c9588e5 Mon Sep 17 00:00:00 2001 From: albi3ro Date: Tue, 28 Feb 2023 17:00:41 -0500 Subject: [PATCH 03/17] add # to line in readme --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index d22fab45..14531656 100644 --- a/README.rst +++ b/README.rst @@ -1,5 +1,5 @@ PennyLane Rigetti Plugin -####################### +######################## .. image:: https://img.shields.io/github/workflow/status/PennyLaneAI/pennylane-rigetti/Tests/master?logo=github&style=flat-square :alt: GitHub Workflow Status (branch) From f9164d0e0153e7192e9aea1db33f0ba5b5da03c4 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 1 Mar 2023 09:21:42 -0500 Subject: [PATCH 04/17] Version Bump (#127) * post release version bump * trigger ci --------- Co-authored-by: albi3ro Co-authored-by: Matthew Silverman --- CHANGELOG.md | 18 ++++++++++++++++++ pennylane_rigetti/_version.py | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a7b62c27..94949992 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,21 @@ +# Release 0.30.0-dev + +### New features since last release + +### Breaking changes + +### Improvements + +### Documentation + +### Bug fixes + +### Contributors + +This release contains contributions from (in alphabetical order): + +--- + # Release 0.29.0 ### Breaking changes diff --git a/pennylane_rigetti/_version.py b/pennylane_rigetti/_version.py index cfe54d9d..d178a16b 100644 --- a/pennylane_rigetti/_version.py +++ b/pennylane_rigetti/_version.py @@ -2,4 +2,4 @@ Version number (convention major.minor.patch[-label]) """ -__version__ = "0.29.0" +__version__ = "0.30.0-dev" From e0811dee904f38f1e1e0fe00b8453ef12ecd5646 Mon Sep 17 00:00:00 2001 From: Matthew Silverman Date: Fri, 14 Apr 2023 11:36:23 -0400 Subject: [PATCH 05/17] update tests to use np.allclose and to not use qml.map (#129) --- tests/test_pyqvm.py | 30 ++++++++--------- tests/test_qvm.py | 79 ++++++++++++++++++--------------------------- 2 files changed, 45 insertions(+), 64 deletions(-) diff --git a/tests/test_pyqvm.py b/tests/test_pyqvm.py index 2e56e8b9..fb9a1146 100644 --- a/tests/test_pyqvm.py +++ b/tests/test_pyqvm.py @@ -39,7 +39,7 @@ def circuit(): res = circuit() # below are the analytic expectation values for this circuit (trace should always be 1) - self.assertAllAlmostEqual(res, np.array([1, 1]), delta=3 / np.sqrt(shots)) + assert np.allclose(res, np.array([1, 1]), atol=3 / np.sqrt(shots)) def test_pauliz_expectation(self, shots): """Test that PauliZ expectation value is correct""" @@ -57,8 +57,8 @@ def circuit(): res = circuit() # below are the analytic expectation values for this circuit - self.assertAllAlmostEqual( - res, np.array([np.cos(theta), np.cos(theta) * np.cos(phi)]), delta=3 / np.sqrt(shots) + assert np.allclose( + res, np.array([np.cos(theta), np.cos(theta) * np.cos(phi)]), atol=3 / np.sqrt(shots) ) def test_paulix_expectation(self, shots): @@ -77,8 +77,8 @@ def circuit(): res = circuit() # below are the analytic expectation values for this circuit - self.assertAllAlmostEqual( - res, np.array([np.sin(theta) * np.sin(phi), np.sin(phi)]), delta=3 / np.sqrt(shots) + assert np.allclose( + res, np.array([np.sin(theta) * np.sin(phi), np.sin(phi)]), atol=3 / np.sqrt(shots) ) def test_pauliy_expectation(self, shots): @@ -98,8 +98,8 @@ def circuit(): res = circuit() # below are the analytic expectation values for this circuit - self.assertAllAlmostEqual( - res, np.array([0, -np.cos(theta) * np.sin(phi)]), delta=3 / np.sqrt(shots) + assert np.allclose( + res, np.array([0, -np.cos(theta) * np.sin(phi)]), atol=3 / np.sqrt(shots) ) def test_hadamard_expectation(self, shots): @@ -122,7 +122,7 @@ def circuit(): expected = np.array( [np.sin(theta) * np.sin(phi) + np.cos(theta), np.cos(theta) * np.cos(phi) + np.sin(phi)] ) / np.sqrt(2) - self.assertAllAlmostEqual(res, expected, delta=3 / np.sqrt(shots)) + assert np.allclose(res, expected, atol=3 / np.sqrt(shots)) def test_hermitian_expectation(self, shots): """Test that arbitrary Hermitian expectation values are correct""" @@ -148,7 +148,7 @@ def circuit(): ev2 = ((a - d) * np.cos(theta) * np.cos(phi) + 2 * re_b * np.sin(phi) + a + d) / 2 expected = np.array([ev1, ev2]) - self.assertAllAlmostEqual(res, expected, delta=3 / np.sqrt(shots)) + assert np.allclose(res, expected, atol=3 / np.sqrt(shots)) def test_multi_qubit_hermitian_expectation(self, shots): """Test that arbitrary multi-qubit Hermitian expectation values are correct""" @@ -184,7 +184,7 @@ def circuit(): - 6 ) - self.assertAllAlmostEqual(res, expected, delta=6 / np.sqrt(shots)) + assert np.allclose(res, expected, atol=6 / np.sqrt(shots)) def test_var(self, shots): """Tests for variance calculation""" @@ -277,7 +277,7 @@ def circuit(): # verify the device is now in the expected state # Note we have increased the tolerance here, since we are only # performing 1024 shots. - self.assertAllAlmostEqual(res, expected, delta=4 / np.sqrt(shots)) + assert np.allclose(res, expected, atol=4 / np.sqrt(shots)) class TestQVMIntegration(BaseTest): @@ -303,12 +303,8 @@ def circuit(): out_state = U2 @ np.array([1, 0, 0, 1]) / np.sqrt(2) obs = np.kron(np.array([[1, 0], [0, -1]]), I) - self.assertAllAlmostEqual( - circuit1(), np.vdot(out_state, obs @ out_state), delta=3 / np.sqrt(shots) - ) - self.assertAllAlmostEqual( - circuit2(), np.vdot(out_state, obs @ out_state), delta=3 / np.sqrt(shots) - ) + assert np.allclose(circuit1(), np.vdot(out_state, obs @ out_state), atol=3 / np.sqrt(shots)) + assert np.allclose(circuit2(), np.vdot(out_state, obs @ out_state), atol=3 / np.sqrt(shots)) @pytest.mark.parametrize("device", ["2q-pyqvm"]) def test_one_qubit_wavefunction_circuit(self, device, shots): diff --git a/tests/test_qvm.py b/tests/test_qvm.py index 4fbd4b1f..34e99256 100644 --- a/tests/test_qvm.py +++ b/tests/test_qvm.py @@ -588,7 +588,6 @@ def test_parametric_compilation_with_numeric_and_symbolic_queue( first = True for run_idx in range(number_of_runs): - with qml.tape.QuantumTape() as tape: qml.RX(param1, wires=[0]) qml.RX(param2, wires=[1]) @@ -777,16 +776,13 @@ def test_compiled_program_was_stored(self, qvm, device): assert len(dev._compiled_program_dict.items()) == 0 - def circuit(params, wires): + @qml.qnode(dev) + def circuit(): qml.Hadamard(0) qml.CNOT(wires=[0, 1]) + return tuple(qml.expval(qml.PauliZ(0) @ qml.PauliZ(1)) for _ in range(6)) - obs = [qml.PauliZ(0) @ qml.PauliZ(1)] - obs_list = obs * 6 - - qnodes = qml.map(circuit, obs_list, dev) - - qnodes([]) + circuit() assert dev.circuit_hash in dev._compiled_program_dict assert len(dev._compiled_program_dict.items()) == 1 @@ -810,18 +806,15 @@ def test_compiled_program_was_stored_mutable_qnode_with_if_statement( assert len(dev._compiled_program_dict.items()) == 0 - def circuit(params, wires, statement=None): + @qml.qnode(dev) + def circuit(statement=None): if statement: qml.Hadamard(0) qml.CNOT(wires=[0, 1]) + return qml.expval(qml.PauliZ(0) @ qml.PauliZ(1)) - obs = [qml.PauliZ(0) @ qml.PauliZ(1)] - obs_list = obs * 6 - - qnodes = qml.map(circuit, obs_list, dev) - - for idx, stmt in enumerate(statements): - qnodes[idx]([], statement=stmt) + for stmt in statements: + circuit(statement=stmt) assert dev.circuit_hash in dev._compiled_program_dict # Using that True evaluates to 1 @@ -829,7 +822,7 @@ def circuit(params, wires, statement=None): # Checks if all elements in the list were either ``True`` or ``False`` # In such a case we have compiled only one program - length = 1 if (number_of_true == 6 or number_of_true == 0) else 2 + length = 1 if number_of_true in [6, 0] else 2 assert len(dev._compiled_program_dict.items()) == length @pytest.mark.parametrize("device", ["2q-qvm", np.random.choice(TEST_QPU_LATTICES)]) @@ -840,48 +833,42 @@ def test_compiled_program_was_stored_mutable_qnode_with_loop(self, qvm, device): assert len(dev._compiled_program_dict.items()) == 0 - def circuit(params, wires, rounds=1): + @qml.qnode(dev) + def circuit(rounds=1): for i in range(rounds): qml.Hadamard(0) qml.CNOT(wires=[0, 1]) + return qml.expval(qml.PauliZ(0) @ qml.PauliZ(1)) - obs = [qml.PauliZ(0) @ qml.PauliZ(1)] - obs_list = obs * 6 - - qnodes = qml.map(circuit, obs_list, dev) - - for idx, qnode in enumerate(qnodes): - qnode([], rounds=idx) + n_calls = 6 + for idx in range(n_calls): + circuit(rounds=idx) assert dev.circuit_hash in dev._compiled_program_dict - assert len(dev._compiled_program_dict.items()) == len(qnodes) + assert len(dev._compiled_program_dict.items()) == n_calls @pytest.mark.parametrize("device", ["2q-qvm", np.random.choice(TEST_QPU_LATTICES)]) def test_compiled_program_was_used(self, qvm, device, monkeypatch): """Test that QVM device used the compiled program correctly, after it was stored""" dev = qml.device("rigetti.qvm", device=device, timeout=100) - number_of_qnodes = 6 - obs = [qml.PauliZ(0) @ qml.PauliZ(1)] - obs_list = obs * number_of_qnodes - - qnodes = qml.map(qml.templates.StronglyEntanglingLayers, obs_list, dev) shape = qml.StronglyEntanglingLayers.shape(n_layers=4, n_wires=dev.num_wires) params = np.random.random(size=shape) + @qml.qnode(dev) + def circuit(weights): + qml.templates.StronglyEntanglingLayers(weights, wires=dev.wires) + return qml.expval(qml.PauliZ(0) @ qml.PauliZ(1)) + # For the first evaluation, use the real compile method - qnodes[0](params) + circuit(params) call_history = [] with monkeypatch.context() as m: m.setattr(QuantumComputer, "compile", lambda self, prog: call_history.append(prog)) - for i in range(1, number_of_qnodes): - qnodes[i](params) - - # Then use the mocked one to see if it was called - - results = qnodes(params) + for i in range(5): + circuit(params) assert len(call_history) == 0 assert dev.circuit_hash in dev._compiled_program_dict @@ -894,23 +881,21 @@ def test_compiled_program_was_correct_compared_with_default_qubit(self, qvm, dev As the results coming from the qvm are stochastic, a constraint of 1 out of 5 runs was added. """ - number_of_qnodes = 6 - obs = [qml.PauliZ(0) @ qml.PauliZ(1)] - obs_list = obs * number_of_qnodes - dev = qml.device("rigetti.qvm", device=device, timeout=100) shape = qml.StronglyEntanglingLayers.shape(n_layers=4, n_wires=dev.num_wires) params = np.random.random(size=shape) - qnodes = qml.map(qml.templates.StronglyEntanglingLayers, obs_list, dev) + def circuit(weights): + qml.templates.StronglyEntanglingLayers(weights, wires=dev.wires) + return tuple(qml.expval(qml.PauliZ(0) @ qml.PauliZ(1)) for _ in range(6)) - results = qnodes(params) + qnode_rigetti = qml.QNode(circuit, dev) + results = qnode_rigetti(params) dev2 = qml.device("default.qubit", wires=dev.num_wires) - qnodes2 = qml.map(qml.templates.StronglyEntanglingLayers, obs_list, dev2) - - results2 = qnodes2(params) + qnode_default = qml.QNode(circuit, dev2) + results2 = qnode_default(params) assert np.allclose(results, results2, atol=6e-02, rtol=0) assert dev.circuit_hash in dev._compiled_program_dict From 2c0c4378de8380b5cbe0c4358eb60f997fcbad21 Mon Sep 17 00:00:00 2001 From: lillian542 <38584660+lillian542@users.noreply.github.com> Date: Tue, 20 Jun 2023 15:13:58 -0400 Subject: [PATCH 06/17] update changelog (#130) * update changelog * Update CHANGELOG.md * Update CHANGELOG.md --------- Co-authored-by: Matthew Silverman --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 94949992..75c22834 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,12 @@ ### Improvements +* Remove the use of the deprecated function `qml.map` in the tests + [(#129)](https://github.com/PennyLaneAI/pennylane-rigetti/pull/129) + +* Update logic in the tests to reflect the new PennyLane return type system + [(#129)](https://github.com/PennyLaneAI/pennylane-rigetti/pull/129) + ### Documentation ### Bug fixes @@ -14,6 +20,8 @@ This release contains contributions from (in alphabetical order): +Matthew Silverman + --- # Release 0.29.0 From b4a0cc192941877404e53dcfccc204e4042a9d32 Mon Sep 17 00:00:00 2001 From: Matthew Silverman Date: Tue, 20 Jun 2023 16:22:21 -0400 Subject: [PATCH 07/17] use images instead of text for demo thumbnail (#131) * use images instead of text for demo thumbnail * Apply suggestions from code review * Revert "Apply suggestions from code review" This reverts commit 75ff04bc1876336ddbfe36c63c751ef77f363df6. --- doc/index.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/index.rst b/doc/index.rst index c6602da3..7fff99a0 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -51,12 +51,12 @@ Check out these demos to see the PennyLane-Rigetti plugin in action: .. title-card:: :name: Ensemble classification with QCS and Qiskit devices - :description: Use two QPUs in parallel to help solve a machine learning classification problem. + :description: :link: https://pennylane.ai/qml/demos/ensemble_multi_qpu.html .. title-card:: :name: PyTorch and noisy devices - :description: Use PyTorch and a noisy QVM to see how optimization responds to noisy qubits. + :description: :link: https://pennylane.ai/qml/demos/pytorch_noise.html .. raw:: html From 399defc655d7554e77189281b6405c1dd8307033 Mon Sep 17 00:00:00 2001 From: Mudit Pandey Date: Tue, 20 Jun 2023 17:07:57 -0400 Subject: [PATCH 08/17] Fix Upload Github Action (#128) * Add CI fix * Split build plugin and test actions --------- Co-authored-by: Christina Lee Co-authored-by: Matthew Silverman --- .github/workflows/upload.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/upload.yml b/.github/workflows/upload.yml index e80f9838..75a2a9f0 100644 --- a/.github/workflows/upload.yml +++ b/.github/workflows/upload.yml @@ -20,9 +20,14 @@ jobs: - name: Run Forest QVM run: docker run --rm -d -p 5000:5000 rigetti/qvm -S - - name: Install plugin and test dependencies + - name: Build and install Plugin + run: | + python -m pip install --upgrade pip wheel + python setup.py bdist_wheel + pip install dist/PennyLane*.whl + + - name: Install test dependencies run: | - python -m pip install --upgrade pip pip install '.[test]' - name: Run tests From 1578505a34430b3da6d7ed9a02ad69b83a3efeab Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 21 Jun 2023 16:05:56 -0400 Subject: [PATCH 09/17] pre release version bump (#132) Co-authored-by: lillian542 Co-authored-by: Matthew Silverman --- CHANGELOG.md | 10 +--------- pennylane_rigetti/_version.py | 2 +- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 75c22834..4a113aec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,4 @@ -# Release 0.30.0-dev - -### New features since last release - -### Breaking changes +# Release 0.31.0 ### Improvements @@ -12,10 +8,6 @@ * Update logic in the tests to reflect the new PennyLane return type system [(#129)](https://github.com/PennyLaneAI/pennylane-rigetti/pull/129) -### Documentation - -### Bug fixes - ### Contributors This release contains contributions from (in alphabetical order): diff --git a/pennylane_rigetti/_version.py b/pennylane_rigetti/_version.py index d178a16b..3b6dbbee 100644 --- a/pennylane_rigetti/_version.py +++ b/pennylane_rigetti/_version.py @@ -2,4 +2,4 @@ Version number (convention major.minor.patch[-label]) """ -__version__ = "0.30.0-dev" +__version__ = "0.31.0" From 5df9d66f55c29027b2e4f81d4d458ec24cf502da Mon Sep 17 00:00:00 2001 From: Paul Finlay <50180049+doctorperceptron@users.noreply.github.com> Date: Mon, 26 Jun 2023 15:52:07 -0400 Subject: [PATCH 10/17] Switch to GA4 tag (#133) --- doc/conf.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/conf.py b/doc/conf.py index 84c9c932..06a738dc 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -63,7 +63,7 @@ # General information about the project. project = "PennyLane-Rigetti" -copyright = "2022" +copyright = "2023" author = "Xanadu" add_module_names = False @@ -234,7 +234,7 @@ ], "toc_overview": True, "navbar_active_link": 3, - "google_analytics_tracking_id": "UA-130507810-1" + "google_analytics_tracking_id": "G-C480Z9JL0D" } edit_on_github_project = 'PennyLaneAI/pennylane-rigetti' From 2aa27b22094f29c86a33d0feb8b4207dc52619e1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 26 Jun 2023 16:45:43 -0400 Subject: [PATCH 11/17] Version Bump (#134) * post release version bump * trigger ci --------- Co-authored-by: timmysilv Co-authored-by: Matthew Silverman --- CHANGELOG.md | 18 ++++++++++++++++++ pennylane_rigetti/_version.py | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4a113aec..61bfd1fa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,21 @@ +# Release 0.32.0-dev + +### New features since last release + +### Breaking changes + +### Improvements + +### Documentation + +### Bug fixes + +### Contributors + +This release contains contributions from (in alphabetical order): + +--- + # Release 0.31.0 ### Improvements diff --git a/pennylane_rigetti/_version.py b/pennylane_rigetti/_version.py index 3b6dbbee..4d21de9b 100644 --- a/pennylane_rigetti/_version.py +++ b/pennylane_rigetti/_version.py @@ -2,4 +2,4 @@ Version number (convention major.minor.patch[-label]) """ -__version__ = "0.31.0" +__version__ = "0.32.0-dev" From 45756968b3386f69b32171ab9c083873457e2536 Mon Sep 17 00:00:00 2001 From: Matthew Silverman Date: Tue, 27 Jun 2023 17:04:40 -0400 Subject: [PATCH 12/17] Fix pypi action (#135) * use correct pypi upload action version * update release automation workflows --- .github/workflows/changelog_template.txt | 18 -- .../workflows/post_release_version_bump.yml | 19 +- .../workflows/pre_release_version_bump.yml | 19 +- .github/workflows/upload.yml | 2 +- .github/workflows/vb_script.py | 179 ------------------ CHANGELOG.md | 12 +- 6 files changed, 18 insertions(+), 231 deletions(-) delete mode 100644 .github/workflows/changelog_template.txt delete mode 100644 .github/workflows/vb_script.py diff --git a/.github/workflows/changelog_template.txt b/.github/workflows/changelog_template.txt deleted file mode 100644 index c216a104..00000000 --- a/.github/workflows/changelog_template.txt +++ /dev/null @@ -1,18 +0,0 @@ -# Release x.x.x-dev - -### New features since last release - -### Breaking changes - -### Improvements - -### Documentation - -### Bug fixes - -### Contributors - -This release contains contributions from (in alphabetical order): - ---- - diff --git a/.github/workflows/post_release_version_bump.yml b/.github/workflows/post_release_version_bump.yml index 0c866839..544d4281 100644 --- a/.github/workflows/post_release_version_bump.yml +++ b/.github/workflows/post_release_version_bump.yml @@ -12,21 +12,12 @@ jobs: - name: Clone repository uses: actions/checkout@v2 - - name: Install Python - uses: actions/setup-python@v2 + - name: Run post-release version bump + uses: PennyLaneAI/automation/version_bump_action@main with: - python-version: '3.9' - - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install -r requirements.txt - - - name: Run version bump - run: > - python .github/workflows/vb_script.py - --version_path "./pennylane_rigetti/_version.py" - --changelog_path "./CHANGELOG.md" --post_release + version_path: "./pennylane_rigetti/_version.py" + changelog_path: "./CHANGELOG.md" + release_status: "post_release" - name: Create Pull Request uses: peter-evans/create-pull-request@v3 diff --git a/.github/workflows/pre_release_version_bump.yml b/.github/workflows/pre_release_version_bump.yml index 412fd3b4..deb0fb1f 100644 --- a/.github/workflows/pre_release_version_bump.yml +++ b/.github/workflows/pre_release_version_bump.yml @@ -11,21 +11,12 @@ jobs: - name: Clone repository uses: actions/checkout@v2 - - name: Install Python - uses: actions/setup-python@v2 + - name: Run pre-release version bump + uses: PennyLaneAI/automation/version_bump_action@main with: - python-version: '3.9' - - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install -r requirements.txt - - - name: Run version bump - run: > - python .github/workflows/vb_script.py - --version_path "./pennylane_rigetti/_version.py" - --changelog_path "./CHANGELOG.md" --pre_release + version_path: "./pennylane_rigetti/_version.py" + changelog_path: "./CHANGELOG.md" + release_status: "pre_release" - name: Create Pull Request uses: peter-evans/create-pull-request@v3 diff --git a/.github/workflows/upload.yml b/.github/workflows/upload.yml index 75a2a9f0..3b587763 100644 --- a/.github/workflows/upload.yml +++ b/.github/workflows/upload.yml @@ -35,7 +35,7 @@ jobs: python -m pytest tests --tb=native - name: Publish - uses: pypa/gh-action-pypi-publish@master + uses: pypa/gh-action-pypi-publish@release/v1 with: user: __token__ password: ${{ secrets.PYPI }} diff --git a/.github/workflows/vb_script.py b/.github/workflows/vb_script.py deleted file mode 100644 index 24cb835b..00000000 --- a/.github/workflows/vb_script.py +++ /dev/null @@ -1,179 +0,0 @@ -# Copyright 2018-2021 Xanadu Quantum Technologies Inc. - -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at - -# http://www.apache.org/licenses/LICENSE-2.0 - -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -"""This script contains the logic to perform automatic version bumping of the plugin via the GitHub workflow. """ -import argparse -import pennylane as qml -pl_version = '"' + qml.version() + '"' - - -def remove_quotes(my_str): - """ A helper function to remove the quote chars (',") - from the provided str. - """ - clean_str = my_str.replace('"', '') # remove " - clean_str = clean_str.replace("'", "") # remove ' - return clean_str - - -def bump_version(version_line, pre_release): - """ A helper function which takes the current version string and - replaces it with the bumped version depending on the pre/post - release flag. - - Args: - version_line (string): The string containing the current - version of the plugin. - pre_release (bool): A flag which determines if this is a - pre-release or post-release version bump. - - Returns: - resultant_line (string): A string of the same form as the version line - with the version number replaced with the bumped version. - bumped_version (string): The bumped version string. - """ - data = version_line.split(" ") - curr_version = data[-1].replace('\n', '') # remove any newline characters - - if pre_release: - curr_version = pl_version # get current Pennylane version - - split_version = curr_version.split(".") # "0.17.0" --> ["0,17,0"] - split_version[1] = str(int(split_version[1]) + 1) # take middle value and cast as int and bump it by 1 - - if not pre_release: - split_version[2] = split_version[2].replace('"', '-dev"') # add -dev, ["0,18,0"] --> ["0,18,0-dev"] - - bumped_version = ".".join(split_version) - data[-1] = bumped_version - clean_bumped_version = remove_quotes(bumped_version) - - return " ".join(data), clean_bumped_version - - -def update_version_file(path, pre_release=True): - """ Updates the __version__ attribute in a specific version file. - - Args: - path (str): The path to the version file. - pre_release (bool): A flag which determines if this is a - pre-release or post-release version bump. - - Return: - new_version (str): The bumped version string. - """ - with open(path, 'r', encoding="utf8") as f: - lines = f.readlines() - - with open(path, 'w', encoding="utf8") as f: - for line in lines: - if "__version__" in line.split(' '): - new_line, new_version = bump_version(line, pre_release) - f.write(new_line + '\n') - else: - f.write(line) - return new_version - - -def remove_empty_headers(lines): - """ Takes a paragraph (list of strings) and removes sections which are empty. - Where a section begins with a header (### Header_Title). - - Args: - lines (list[string]): The paragraph containing the changelog sections. - - Returns: - cleaned_lines (list[string]): The paragraph with empty sections removed. - """ - cleaned_lines = [] - pntr1 = 0 - - while pntr1 < len(lines): - is_empty = True - for pntr2 in range(pntr1 + 1, len(lines)): - line2 = lines[pntr2] - - if (len(line2) >= 4) and (line2[:4] == "### "): - if (pntr1 == 0) or (not is_empty): - cleaned_lines.extend(lines[pntr1:pntr2]) # keep these sections! - - pntr1 = pntr2 - is_empty = True # reset the empty flag - - elif line2 == '\n': - pass - - else: - is_empty = False - - cleaned_lines.extend(lines[pntr1:pntr1+1]) - pntr1 += 1 - - return cleaned_lines - - -def update_changelog(path, new_version, pre_release=True): - """ Updates the Changelog file depending on whether it's a pre-release - or post-release version bump. - - Args: - path (str): The path to the changelog file. - new_version (str): The bumped version string. - pre_release (bool): A flag which determines if this is a - pre-release or post-release version bump. - """ - with open(path, 'r', encoding="utf8") as f: - lines = f.readlines() - end_of_section_index = 0 - for index, line in enumerate(lines): - if (len(line) >= 3) and (line[:3] == "---"): - end_of_section_index = index - break - - with open(path, 'w', encoding="utf8") as f: - if not pre_release: # post_release append template to top of the changelog - with open("./.github/workflows/changelog_template.txt", 'r', encoding="utf8") as template_f: - template_lines = template_f.readlines() - template_lines[0] = template_lines[0].replace('x.x.x-dev', new_version) - f.writelines(template_lines) - f.writelines(lines) - - else: # pre_release update the release header and remove any empty headers - # update release header - line = lines[0] - split_line = line.split(" ") - split_line[-1] = new_version # replace version (split_line = [#, Release, 0.17.0-dev]) - new_line = " ".join(split_line) + '\n' - f.write(new_line) - - # remover empty headers - cleaned_lines = remove_empty_headers(lines[1:end_of_section_index]) - f.writelines(cleaned_lines) - - # keep the rest of the changelog - rest_of_changelog_lines = lines[end_of_section_index:] - f.writelines(rest_of_changelog_lines) - - -if __name__ == "__main__": - parser = argparse.ArgumentParser() - parser.add_argument("--version_path", type=str, required=True, help="Path to the _version.py file") - parser.add_argument("--changelog_path", type=str, required=True, help="Path to the changelog") - parser.add_argument("--pre_release", dest="release_status", action="store_true", - help="True if this is a pre-release version bump, False if it is post release") - parser.add_argument("--post_release", dest="release_status", action="store_false", - help="True if this is a pre-release version bump, False if it is post release") - - args = parser.parse_args() - updated_version = update_version_file(args.version_path, args.release_status) - update_changelog(args.changelog_path, updated_version, args.release_status) diff --git a/CHANGELOG.md b/CHANGELOG.md index 61bfd1fa..f08aaf48 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,15 +2,17 @@ ### New features since last release -### Breaking changes +### Improvements 🛠 -### Improvements +### Breaking changes 💔 -### Documentation +### Deprecations 👋 -### Bug fixes +### Documentation 📝 -### Contributors +### Bug fixes 🐛 + +### Contributors ✍️ This release contains contributions from (in alphabetical order): From e0e6db98fd4097d251a3513470b5a91acb553dd0 Mon Sep 17 00:00:00 2001 From: Jay Soni Date: Wed, 23 Aug 2023 10:55:50 -0400 Subject: [PATCH 13/17] Add `StatePrep` support (#137) * Add support * requirements for ci * change log * fix requirements bug? * Update requirements.txt * ci --------- Co-authored-by: Matthew Silverman --- CHANGELOG.md | 5 +++++ doc/devices/numpy_wavefunction.rst | 2 +- doc/devices/qpu.rst | 2 +- doc/devices/qvm.rst | 2 +- doc/devices/wavefunction.rst | 2 +- pennylane_rigetti/device.py | 2 +- pennylane_rigetti/qc.py | 2 +- requirements.txt | 2 +- tests/test_device.py | 7 ++++--- tests/test_qvm.py | 7 ++++--- 10 files changed, 20 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f08aaf48..462735db 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,9 @@ ### Improvements 🛠 +* Added support for `qml.StatePrep` as a state preparation operation. + [(#137)](https://github.com/PennyLaneAI/pennylane-rigetti/pull/137) + ### Breaking changes 💔 ### Deprecations 👋 @@ -16,6 +19,8 @@ This release contains contributions from (in alphabetical order): + Jay Soni + --- # Release 0.31.0 diff --git a/doc/devices/numpy_wavefunction.rst b/doc/devices/numpy_wavefunction.rst index d2a6541a..96916d8d 100644 --- a/doc/devices/numpy_wavefunction.rst +++ b/doc/devices/numpy_wavefunction.rst @@ -58,4 +58,4 @@ array([0.97517033, 0.04904283]) Supported operations ~~~~~~~~~~~~~~~~~~~~ -All Rigetti devices support all PennyLane `operations and observables `_, with the exception of the PennyLane ``QubitStateVector`` state preparation operation. +All Rigetti devices support all PennyLane `operations and observables `_, with the exception of the PennyLane ``StatePrepBase`` state preparation operations. diff --git a/doc/devices/qpu.rst b/doc/devices/qpu.rst index 996a836f..ffc8e7ef 100644 --- a/doc/devices/qpu.rst +++ b/doc/devices/qpu.rst @@ -48,7 +48,7 @@ We can then integrate the quantum hardware and PennyLane's automatic differentia Supported operations ~~~~~~~~~~~~~~~~~~~~ -All devices support all PennyLane `operations and observables `_, with the exception of the PennyLane ``QubitStateVector`` state preparation operation. +All devices support all PennyLane `operations and observables `_, with the exception of the PennyLane ``StatePrepBase`` state preparation operations. quilc server configuration ~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/doc/devices/qvm.rst b/doc/devices/qvm.rst index b2133f3a..b7d376fc 100644 --- a/doc/devices/qvm.rst +++ b/doc/devices/qvm.rst @@ -96,7 +96,7 @@ Printing out the results of the three device expectation values: Supported operations ~~~~~~~~~~~~~~~~~~~~ -All devices support all PennyLane `operations and observables `_, with the exception of the PennyLane ``QubitStateVector`` state preparation operation. +All devices support all PennyLane `operations and observables `_, with the exception of the PennyLane ``StatePrepBase`` state preparation operations. Supported observables ~~~~~~~~~~~~~~~~~~~~~ diff --git a/doc/devices/wavefunction.rst b/doc/devices/wavefunction.rst index 9b9bc432..bd2eabbb 100644 --- a/doc/devices/wavefunction.rst +++ b/doc/devices/wavefunction.rst @@ -53,6 +53,6 @@ array([0.97517033, 0.04904283]) Supported operations ~~~~~~~~~~~~~~~~~~~~ -All devices support all PennyLane `operations and observables `_, with the exception of the PennyLane ``QubitStateVector`` state preparation operation. +All devices support all PennyLane `operations and observables `_, with the exception of the PennyLane ``StatePrepBase`` state preparation operations. .. include:: ./qvm_and_quilc_server_configuration.rst diff --git a/pennylane_rigetti/device.py b/pennylane_rigetti/device.py index 91689c88..e1f8d17c 100644 --- a/pennylane_rigetti/device.py +++ b/pennylane_rigetti/device.py @@ -253,7 +253,7 @@ def apply_circuit_operations(self, operations): # Array not supported par = [float(i) for i in par] - if i > 0 and operation.name in ("QubitStateVector", "BasisState"): + if i > 0 and operation.name in ("QubitStateVector", "StatePrep", "BasisState"): name = operation.name short_name = self.short_name raise DeviceError( diff --git a/pennylane_rigetti/qc.py b/pennylane_rigetti/qc.py index 95606345..12318d65 100644 --- a/pennylane_rigetti/qc.py +++ b/pennylane_rigetti/qc.py @@ -215,7 +215,7 @@ def apply_parametric_operations(self, operations): # map the operation wires to the physical device qubits device_wires = self.map_wires(operation.wires) - if i > 0 and operation.name in ("QubitStateVector", "BasisState"): + if i > 0 and operation.name in ("QubitStateVector", "StatePrep", "BasisState"): raise DeviceError( f"Operation {operation.name} cannot be used after other Operations have already been applied " f"on a {self.short_name} device." diff --git a/requirements.txt b/requirements.txt index d62ddf90..d24d4425 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ +pennylane @ git+https://github.com/PennyLaneAI/pennylane.git numpy>=1.21,<1.24 networkx>=2.5,<3.0 -pennylane>=0.18 pyquil>=3.0.0,<4.0.0 qcs-api-client>=0.20.13,<0.22.0 diff --git a/tests/test_device.py b/tests/test_device.py index 15bf6a36..5c4f20e0 100644 --- a/tests/test_device.py +++ b/tests/test_device.py @@ -125,13 +125,14 @@ def test_apply_basis_state_raises_an_error_if_not_first(self): ): dev.apply(queue) - def test_apply_qubitstatesvector_raises_an_error_if_not_first(self): - """Test that there is an error raised when the QubitStateVector is not + @pytest.mark.parametrize("op", [qml.StatePrep, qml.QubitStateVector]) + def test_apply_statesvector_raises_an_error_if_not_first(self, op): + """Test that there is an error raised when the QubitStateVector or StatePrep op is not applied as the first operation.""" wires = 1 dev = RigettiDevice(wires=wires, shots=1) - operation = qml.QubitStateVector(np.array([1, 0]), wires=list(range(wires))) + operation = op(np.array([1, 0]), wires=list(range(wires))) queue = [qml.PauliX(0), operation] with pytest.raises( qml.DeviceError, diff --git a/tests/test_qvm.py b/tests/test_qvm.py index 34e99256..bb979ace 100644 --- a/tests/test_qvm.py +++ b/tests/test_qvm.py @@ -606,12 +606,13 @@ def test_parametric_compilation_with_numeric_and_symbolic_queue( assert len(dev._compiled_program_dict.items()) == 1 assert mock_qvm.compile.call_count == 1 - def test_apply_qubitstatesvector_raises_an_error_if_not_first(self): - """Test that there is an error raised when the QubitStateVector is not + @pytest.mark.parametrize("op", [qml.QubitStateVector, qml.StatePrep]) + def test_apply_qubitstatesvector_raises_an_error_if_not_first(self, op): + """Test that there is an error raised when the QubitStateVector or StatPrep is not applied as the first operation.""" dev = qml.device("rigetti.qvm", device="2q-qvm", parametric_compilation=True) - operation = qml.QubitStateVector(np.array([1, 0]), wires=[0]) + operation = op(np.array([1, 0]), wires=[0]) queue = [qml.PauliX(0), operation] with pytest.raises( qml.DeviceError, From 20b69ef6734609c44f9a3582a5fab77e06e9be28 Mon Sep 17 00:00:00 2001 From: Mudit Pandey Date: Wed, 23 Aug 2023 13:24:04 -0400 Subject: [PATCH 14/17] Drop Python 3.8 support (#136) * Drop 3.8 * Apply suggestions from code review * Apply suggestions from code review Co-authored-by: Matthew Silverman * Fix readthedocs --------- Co-authored-by: Matthew Silverman --- .github/workflows/format.yml | 2 +- .github/workflows/tests.yml | 4 ++-- .github/workflows/upload.yml | 2 +- .readthedocs.yaml | 7 +++++-- CHANGELOG.md | 6 +++++- README.rst | 2 +- setup.py | 2 +- 7 files changed, 16 insertions(+), 9 deletions(-) diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml index 981c6461..0fc16366 100644 --- a/.github/workflows/format.yml +++ b/.github/workflows/format.yml @@ -15,7 +15,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v2 with: - python-version: 3.8 + python-version: 3.9 - name: Install dependencies run: pip install black diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index d0eae2f5..f58b4203 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -11,7 +11,7 @@ jobs: strategy: matrix: - python-version: ["3.8", "3.10"] + python-version: ["3.9", "3.11"] steps: - name: Cancel Previous Runs @@ -50,7 +50,7 @@ jobs: strategy: matrix: - python-version: ["3.8", "3.10"] + python-version: ["3.9", "3.11"] steps: - name: Cancel Previous Runs diff --git a/.github/workflows/upload.yml b/.github/workflows/upload.yml index 3b587763..9638ef62 100644 --- a/.github/workflows/upload.yml +++ b/.github/workflows/upload.yml @@ -12,7 +12,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v2 with: - python-version: 3.8 + python-version: 3.9 - name: Run Forest Quilc run: docker run --rm -d -p 5555:5555 rigetti/quilc:1.23.0 -R diff --git a/.readthedocs.yaml b/.readthedocs.yaml index bc09fea1..88ee5c27 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -19,11 +19,14 @@ formats: # Optionally set the version of Python and requirements required to build your docs python: - version: 3.8 install: - requirements: doc/requirements.txt - method: pip path: . build: - image: latest + os: ubuntu-22.04 + tools: + python: "3.9" + apt_packages: + - graphviz diff --git a/CHANGELOG.md b/CHANGELOG.md index 462735db..88817324 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,9 @@ ### Breaking changes 💔 +* Support for Python 3.8 has been removed, and support for Python 3.11 has been added. + [(#136)](https://github.com/PennyLaneAI/pennylane-rigetti/pull/136) + ### Deprecations 👋 ### Documentation 📝 @@ -19,7 +22,8 @@ This release contains contributions from (in alphabetical order): - Jay Soni +Mudit Pandey, +Jay Soni --- diff --git a/README.rst b/README.rst index 14531656..644b63f1 100644 --- a/README.rst +++ b/README.rst @@ -77,7 +77,7 @@ Dependencies PennyLane-Rigetti requires the following libraries be installed: -* `Python `__ >=3.8 +* `Python `__ >=3.9 as well as the following Python packages: diff --git a/setup.py b/setup.py index 51e05ae7..f7ffc9ae 100644 --- a/setup.py +++ b/setup.py @@ -54,9 +54,9 @@ "Operating System :: Microsoft :: Windows", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3 :: Only", "Topic :: Scientific/Engineering :: Physics", ] From d7e63909816dd2d84bf0a03be249be972afa39cf Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 24 Aug 2023 10:04:04 -0400 Subject: [PATCH 15/17] Version Bump (#138) * pre release version bump * trigger ci --------- Co-authored-by: timmysilv Co-authored-by: Matthew Silverman --- CHANGELOG.md | 10 +--------- pennylane_rigetti/_version.py | 2 +- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 88817324..7ff93514 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,4 @@ -# Release 0.32.0-dev - -### New features since last release +# Release 0.32.0 ### Improvements 🛠 @@ -12,12 +10,6 @@ * Support for Python 3.8 has been removed, and support for Python 3.11 has been added. [(#136)](https://github.com/PennyLaneAI/pennylane-rigetti/pull/136) -### Deprecations 👋 - -### Documentation 📝 - -### Bug fixes 🐛 - ### Contributors ✍️ This release contains contributions from (in alphabetical order): diff --git a/pennylane_rigetti/_version.py b/pennylane_rigetti/_version.py index 4d21de9b..cef46250 100644 --- a/pennylane_rigetti/_version.py +++ b/pennylane_rigetti/_version.py @@ -2,4 +2,4 @@ Version number (convention major.minor.patch[-label]) """ -__version__ = "0.32.0-dev" +__version__ = "0.32.0" From b113f4edd2ee354f8c6b1b56c2bd09eb521ec344 Mon Sep 17 00:00:00 2001 From: Matthew Silverman Date: Mon, 28 Aug 2023 15:10:41 -0400 Subject: [PATCH 16/17] put back pennylane version (#139) --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index d24d4425..7c3469d2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ -pennylane @ git+https://github.com/PennyLaneAI/pennylane.git numpy>=1.21,<1.24 networkx>=2.5,<3.0 +pennylane>=0.32 pyquil>=3.0.0,<4.0.0 qcs-api-client>=0.20.13,<0.22.0 From f4b74720906cc4f9d6c7b306c59938f6043d1881 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 29 Aug 2023 11:07:19 -0400 Subject: [PATCH 17/17] Version Bump (#140) * post release version bump * trigger ci --------- Co-authored-by: mudit2812 Co-authored-by: Matthew Silverman --- CHANGELOG.md | 19 +++++++++++++++++++ pennylane_rigetti/_version.py | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7ff93514..ba6a13df 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,22 @@ +# Release 0.33.0-dev + +### New features since last release + +### Improvements 🛠 + +### Breaking changes 💔 + +### Deprecations 👋 + +### Documentation 📝 + +### Bug fixes 🐛 + +### Contributors ✍️ + +This release contains contributions from (in alphabetical order): + +--- # Release 0.32.0 ### Improvements 🛠 diff --git a/pennylane_rigetti/_version.py b/pennylane_rigetti/_version.py index cef46250..788b69ef 100644 --- a/pennylane_rigetti/_version.py +++ b/pennylane_rigetti/_version.py @@ -2,4 +2,4 @@ Version number (convention major.minor.patch[-label]) """ -__version__ = "0.32.0" +__version__ = "0.33.0-dev"