Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
e00dded
Add new noise model and simulators
bramathon May 18, 2026
0e0dade
Target unitary required
bramathon May 22, 2026
e11791e
Comment
bramathon May 23, 2026
cc7e267
Add surface 17 test
bramathon May 25, 2026
7df59eb
Improve simulator performance
bramathon May 25, 2026
2874d0b
Format and style
bramathon May 25, 2026
630475d
Style and formatting
bramathon May 25, 2026
3d5206f
Formatting and style
bramathon May 25, 2026
6334f3f
Update quax bound
bramathon May 25, 2026
490515b
Add sharding support
bramathon May 25, 2026
3b9bd4f
Resolver simplification
bramathon May 26, 2026
597476b
Update workflows
bramathon May 26, 2026
9f376ac
Format and style
bramathon May 26, 2026
3904749
Use scan
bramathon May 31, 2026
d56c2b4
Improve compile time
bramathon May 31, 2026
efde04b
Improve efficiency of _resolver
bramathon May 31, 2026
35b86e6
fix performance regression
bramathon May 31, 2026
5170fdd
clean up pure state simulator
bramathon Jun 5, 2026
8b371e4
Fix measurement order
bramathon Jun 7, 2026
dec6851
Small fixes
bramathon Jun 25, 2026
9cd6cd3
Update native format of noise model
bramathon Jun 25, 2026
f8f5cf4
Fix CI failures for noise model PR
bramathon Jun 25, 2026
4a7f622
Fix documentation doctest expectations
bramathon Jun 25, 2026
e9fb8e9
Make compiler doctest tolerate quilc HALT output
bramathon Jun 25, 2026
d0c6b2d
Stabilize QASM transpilation unit test
bramathon Jun 25, 2026
26cfd94
Update version
bramathon Jun 25, 2026
0d16ac3
Add docs
bramathon Jun 28, 2026
72a85db
Add dynamic trajectory simulator
bramathon Jul 1, 2026
203b8d3
Require rigetti-quax >=0.6.6 for states-only squeeze
bramathon Jul 1, 2026
0ab6087
Bump dev version to 4.19.0-rc.1
bramathon Jul 1, 2026
2d11e73
Fix emit order
bramathon Jul 1, 2026
570da77
Bump version from 4.19.0-rc.1 to 4.19.0-rc.2
bramathon Jul 1, 2026
4736511
Fixes to noise model
bramathon Jul 2, 2026
329f83d
Clean up
bramathon Jul 2, 2026
74d8c58
Fix lint and type errors in CycleChannel validation
bramathon Jul 2, 2026
372947f
Fix sharding
bramathon Jul 3, 2026
ecd9cff
Dump to rc3
bramathon Jul 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/benchmark_base.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ on:
jobs:
benchmark_base_branch:
name: Continuous Benchmarking with Bencher
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.9
uses: actions/setup-python@v2
- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: '3.9'
python-version: '3.12'
- uses: actions/cache@v4
with:
path: .venv
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/benchmark_pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@ jobs:
if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository
permissions:
pull-requests: write
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.9
uses: actions/setup-python@v2
- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: '3.9'
python-version: '3.12'
- uses: actions/cache@v4
with:
path: .venv
Expand Down
24 changes: 14 additions & 10 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,10 @@ jobs:
name: Build and Publish
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v3
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- uses: snok/install-poetry@v1
with:
virtualenvs-in-project: true
Expand Down Expand Up @@ -42,8 +44,10 @@ jobs:
id-token: write
contents: read
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v3
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- uses: snok/install-poetry@v1
with:
virtualenvs-in-project: true
Expand All @@ -55,7 +59,7 @@ jobs:
run: |
poetry build --no-interaction
- name: Upload wheels as artifacts
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: wheels
path: dist
Expand All @@ -78,7 +82,7 @@ jobs:
# Determine the tags to publish based on the release tag
- name: Docker Metadata
id: meta
uses: docker/metadata-action@v4
uses: docker/metadata-action@v5
with:
images: |
${{ vars.DOCKER_IMAGE_NAME }}
Expand All @@ -88,9 +92,9 @@ jobs:
type=raw,value=${{ env.PYQUIL_TAG_RC }},enable=${{ env.PYQUIL_TAG_RC != '' }}
# Checkout is needed to use the path context: .
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Build and Test
uses: docker/build-push-action@v4
uses: docker/build-push-action@v6
with:
context: .
load: true
Expand All @@ -102,12 +106,12 @@ jobs:
docker run --rm "${{ vars.DOCKER_IMAGE_NAME }}:test" python -c "from pyquil import get_qc"
# Build and publish the image
- name: Login to Docker Hub
uses: docker/login-action@v2
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Build and Push
uses: docker/build-push-action@v4
uses: docker/build-push-action@v6
with:
context: .
push: true
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.PAT }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.PAT }}
Expand Down
62 changes: 31 additions & 31 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@ jobs:
name: Build and test documentation
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python 3.9
uses: actions/setup-python@v4
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: '3.9'
python-version: '3.11'
- uses: actions/cache@v4
with:
path: .venv
Expand All @@ -32,11 +32,11 @@ jobs:
name: Check formatting
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python 3.9
uses: actions/setup-python@v4
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: '3.9'
python-version: '3.11'
- uses: actions/cache@v4
with:
path: .venv
Expand All @@ -51,11 +51,11 @@ jobs:
name: Check style
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python 3.9
uses: actions/setup-python@v4
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: '3.9'
python-version: '3.11'
- uses: actions/cache@v4
with:
path: .venv
Expand All @@ -70,11 +70,11 @@ jobs:
name: Check types
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python 3.9
uses: actions/setup-python@v4
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: '3.9'
python-version: '3.11'
- uses: actions/cache@v4
with:
path: .venv
Expand All @@ -90,7 +90,7 @@ jobs:
name: Check dependencies for vulnerabilities
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
- name: Install OSV scanner
Expand All @@ -105,11 +105,11 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12"]
python-version: ["3.11", "3.12"]
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- uses: actions/cache@v4
Expand All @@ -133,11 +133,11 @@ jobs:
pull-requests: write # allows coverage bot to comment
strategy:
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12"]
python-version: ["3.11", "3.12"]
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- uses: actions/cache@v4
Expand Down Expand Up @@ -165,11 +165,11 @@ jobs:
name: Check docker image
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python 3.10
uses: actions/setup-python@v2
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: '3.10'
python-version: '3.11'
- uses: actions/cache@v4
with:
path: .venv
Expand All @@ -180,7 +180,7 @@ jobs:
. scripts/ci_install_deps
poetry build -o wheels
- name: Build and Test
uses: docker/build-push-action@v4
uses: docker/build-push-action@v6
with:
file: Dockerfile.test
context: .
Expand All @@ -195,11 +195,11 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12"]
python-version: ["3.11", "3.12"]
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- uses: actions/cache@v4
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# use multi-stage builds to independently pull dependency versions
ARG quilc_version=1.20.0
ARG qvm_version=1.17.1
ARG python_version=3.10
ARG python_version=3.11

# use multi-stage builds to independently pull dependency versions
FROM rigetti/quilc:$quilc_version as quilc

Check warning on line 7 in Dockerfile

View workflow job for this annotation

GitHub Actions / Docker Publish

The 'as' keyword should match the case of the 'from' keyword

FromAsCasing: 'as' and 'FROM' keywords' casing do not match More info: https://docs.docker.com/go/dockerfile/rule/from-as-casing/

Check warning on line 7 in Dockerfile

View workflow job for this annotation

GitHub Actions / Docker Publish

The 'as' keyword should match the case of the 'from' keyword

FromAsCasing: 'as' and 'FROM' keywords' casing do not match More info: https://docs.docker.com/go/dockerfile/rule/from-as-casing/
FROM rigetti/qvm:$qvm_version as qvm

Check warning on line 8 in Dockerfile

View workflow job for this annotation

GitHub Actions / Docker Publish

The 'as' keyword should match the case of the 'from' keyword

FromAsCasing: 'as' and 'FROM' keywords' casing do not match More info: https://docs.docker.com/go/dockerfile/rule/from-as-casing/

Check warning on line 8 in Dockerfile

View workflow job for this annotation

GitHub Actions / Docker Publish

The 'as' keyword should match the case of the 'from' keyword

FromAsCasing: 'as' and 'FROM' keywords' casing do not match More info: https://docs.docker.com/go/dockerfile/rule/from-as-casing/
FROM python:$python_version-trixie

# passed in by `.github/workflows/publish.yml`, should match the version just published to pypi
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile.test
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# use multi-stage builds to independently pull dependency versions
ARG quilc_version=1.20.0
ARG qvm_version=1.17.1
ARG python_version=3.10
ARG python_version=3.11

# use multi-stage builds to independently pull dependency versions
FROM rigetti/quilc:$quilc_version as quilc

Check warning on line 7 in Dockerfile.test

View workflow job for this annotation

GitHub Actions / Check docker image

The 'as' keyword should match the case of the 'from' keyword

FromAsCasing: 'as' and 'FROM' keywords' casing do not match More info: https://docs.docker.com/go/dockerfile/rule/from-as-casing/
FROM rigetti/qvm:$qvm_version as qvm

Check warning on line 8 in Dockerfile.test

View workflow job for this annotation

GitHub Actions / Check docker image

The 'as' keyword should match the case of the 'from' keyword

FromAsCasing: 'as' and 'FROM' keywords' casing do not match More info: https://docs.docker.com/go/dockerfile/rule/from-as-casing/
FROM python:$python_version-trixie

# copy over the pre-built quilc binary from the first build stage
Expand Down
8 changes: 8 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,14 @@ DEFAULT_QUILC_URL=tcp://localhost:5555
DEFAULT_QVM_URL=http://localhost:5000
DOCKER_TAG=rigetti/forest:$(COMMIT_HASH)

.DEFAULT := help

.PHONY: help
help:
@awk 'BEGIN { FS=":.*##"; print "Supported Makefile commands:\n" } \
/^[a-zA-Z0-9_-]+:.*##/ { cmd=$$1; desc=$$2; printf " \033[36m%-20s\033[0m %s\n", cmd, desc } \
END { print "" }' $(MAKEFILE_LIST)

.PHONY: all
all: dist

Expand Down
3 changes: 1 addition & 2 deletions docs/source/compiler.rst
Original file line number Diff line number Diff line change
Expand Up @@ -364,8 +364,7 @@ For example, consider running a ``CZ`` on non-neighboring qubits on a linear dev

.. testoutput:: swaps

CZ 2 1
HALT
CZ 2 1...

We see that the resulting program has only a single ``CZ`` even though the original program would
usually require the insertion of a ``SWAP`` gate. The compiler instead opted to just relabel (or
Expand Down
6 changes: 3 additions & 3 deletions docs/source/getting_started.rst
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ If you would like to stay up to date with the latest changes and bug fixes, you

.. note::

pyQuil requires Python 3.9 or later.
pyQuil requires Python 3.11 or later and supports Python versions earlier than 3.13.

.. testcode:: verify-min-version
:hide:
Expand All @@ -58,7 +58,7 @@ If you would like to stay up to date with the latest changes and bug fixes, you
.. testoutput:: verify-min-version
:hide:

^3.9...
>=3.11, <3.13

.. note::

Expand Down Expand Up @@ -165,7 +165,7 @@ the terminal windows where your servers are running, you should see output print
pyQuil also provides the :py:func:`~pyquil.api.local_forest_runtime()` context manager to ensure both ``quilc`` and ``qvm`` servers are running
by starting them as subprocesses if they aren't already.

.. testcode:: first-program
.. code:: python

from pyquil import get_qc, Program
from pyquil.gates import CNOT, Z, MEASURE
Expand Down
2 changes: 2 additions & 0 deletions docs/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ If you’re new to pyQuil, head to the `getting started <getting_started>`_ guid
wavefunction_simulator
compiler
noise
simulation_architecture
dynamic_simulator_benchmark
advanced_usage
troubleshooting
introducing_v4
Expand Down
Loading
Loading