Releases: rigetti/pyquil
v2.11.0
Announcements
- PyQuil's changelog has been overhauled and rewritten in Markdown instead of RST, and can be found in the top-level directory of the repository as the CHANGELOG.md file (which is the standard for most GitHub repositories). However, during the build process, we use
pandoc
to convert it back to RST so that it can be included as part of the ReadTheDocs documentation here (@karalekas, gh-945, gh-973).
Improvements and Changes
- Test suite attempts to retry specific tests that fail often. Tests are retried only a single time (@notmgsk, gh-951).
- The
QuantumComputer.run_symmetrized_readout()
method has been revamped, and now has options for using more advanced forms of readout symmetrization (@joshcombes, gh-919). - The ProtoQuil restrictions built in to PyQVM have been removed (@ecpeterson, gh-874).
- Add the ability to query for other memory regions after both QPU and QVM runs. This removes a previously unnecessary restriction on the QVM, although
ro
remains the only QPU-writeable memory region during Quil execution (@ecpeterson, gh-873). - Now, running
QuantumComputer.reset()
(andQuantumComputer.compile()
when using the QPU) additionally resets the connection information for the underlyingQVM
/QPU
andQVMCompiler
/QPUCompiler
objects, which should resolve bugs that arise due to stale clients/connections (@karalekas, gh-872). - In addition to the simultaneous 1Q RB fidelities contained in device specs prior to this release, there are now 1Q RB fidelities for non-simultaneous gate operation. The names of these fields have been changed for clarity, and standard errors for both fidelities have been added as well. Finally, deprecation warnings have been added regarding the
fCPHASE
andfBellState
device spec fields, which are no longer routinely updated and will be removed in release v2.13 (@jvalery2, gh-968). - The NOTICE has been updated to accurately reflect the third-party software used in pyQuil (@karalekas, gh-979).
- PyQuil now sends “modern” ISA payloads to quilc, which must be of version >=
1.10.0
. Check out the details ofget_isa
for information on how to specify custom payloads (@ecpeterson, gh-961).
Bugfixes
- The
MemoryReference
warnings have been removed from the unit tests (@maxKenngott, gh-950). - The
merge_programs
function now supports merging programs withDefPermutationGate
, instead of throwing an error, and avoids redundant readout declaration (@kylegulshen, gh-971). - Remove unsound logic to fill out non-"ro" memory regions when targeting a QPU (@notmgsk, gh-982).
v2.10.0
Improvements and Changes
-
Rewrote the README, adding a more in-depth overview of the purpose of pyQuil as a library, as well as two badges -- one for PyPI downloads and another for the Forest Slack workspace. Also, included an example section for how to get started with running a simple Bell state program on the QVM (@karalekas, gh-946, gh-949).
-
The test suite for
pyquil.operator_estimation
now has an (optional) faster version that uses fixed random seeds instead of averaging over several experiments. This can be enabled with the--use-seed
command line option when runningpytest
(@msohaibalam, gh-928). -
Deleted the deprecated modules
job_results.py
andkraus.py
(@karalekas, gh-957). -
Updated the examples README. Removed an outdated notebook. Updated remaining notebooks to use
MemoryReference
, and fix any parts that were broken (@notmgsk, gh-820). -
The
AbstractCompiler.quil_to_native_quil()
function now accepts aprotoquil
keyword which tells the compiler to restrict both input and output to protoquil (i.e. Quil code executable on a QPU). Additionally, the compiler will return a metadata dictionary that contains statistics about the compiled program, e.g. its estimated QPU runtime. See the compiler docs for more information (@notmgsk, gh-940). -
Updated the QCS and Slack invite links on the
index.rst
docs page (@starktech23, gh-965). -
Provided example code for reading out the QPU runtime estimation for a program (@notmgsk, gh-963).
Bugfixes
-
unitary_tools.lifted_gate()
was not properly handling modifiers such asDAGGER
andCONTROLLED
(@kylegulshen, gh-931). -
Fixed warnings raised by Sphinx when building the documentation (@appleby, gh-929).
v2.9.1
v2.9.0
Announcements
- PyQuil now has a Pull Request Template, which contains a checklist of things that must be completed (if applicable) before a PR can be merged (@karalekas, gh-921).
Improvements and Changes
-
Removed a bunch of logic around creating inverse gates from user-defined gates in
Program.dagger()
in favor of a simpler call toGate.dagger()
(@notmgsk, gh-887). -
The
RESET
instruction now works correctly withQubitPlaceholder
objects and theaddress_qubits
function (@jclapis, gh-910). -
ReferenceDensitySimulator
can now have a state that is persistent between rounds ofrun
orrun_and_measure
(@joshcombes, gh-920).
Bugfixes
-
Small negative probabilities were causing
ReferenceDensitySimulator
to fail (@joshcombes, gh-908). -
The
dagger
function was incorrectly dropping gate modifiers likeCONTROLLED
(@jclapis, gh-914). -
Negative numbers in classical instruction arguments were not being parsed (@notmgsk, gh-917).
-
Inline math rendering was not working correctly in
intro.rst
(@appleby, gh-927).
Thanks to community member @jclapis for the contributions to this release!
v2.8.0
Improvements and Changes
-
PyQuil now verifies that you are using the correct version of the QVM and quilc (@karalekas, gh-913).
-
Added support for defining permutation gates for use with the latest version of quilc (@notmgsk, gh-891).
-
The rpcq dependency requirement has been raised to v2.5.1 (@notmgsk, gh-911).
-
Added a note about the QVM's compilation mode to the documentation (@stylewarning, gh-900).
-
Some measure_observables params now have the
Optional
type specification (@msohaibalam, gh-903).
Bugfixes
v2.7.2
v2.7.1
Bugfixes
- The changes to operator estimation (gh-870, gh-896) were not made in a backwards-compatible fashion, and therefore this patch release aims to remedy that. Going forward, there will be much more stringent requirements around backwards compatibility and deprecation (@karalekas, gh-899).
v2.7.0
Improvements and Changes
-
Standard deviation -> standard error in operator estimation (@msohaibalam, gh-870).
-
Update what pyQuil expects from quilc in terms of rewiring pragmas -- they are now comments rather than distinct instructions (@ecpeterson, gh-878).
-
Allow users to deprioritize QPU jobs -- mostly a Rigetti-internal feature (@jvalery2, gh-877).
-
Remove the
qubits
field from theTomographyExperiment
dataclass (@msohaibalam, gh-896).
Bugfixes
-
Ensure that shots aren't lost when passing a
Program
throughaddress_qubits
(@notmgsk, gh-895). -
Fixed the
conda
install command in the README (@seandiscovery, gh-890).
v2.6.0
Improvements and Changes
-
Added a CODEOWNERS file for default reviewers (@karalekas, gh-855).
-
Bifurcated the
QPUCompiler
endpoint parameter into two --quilc_endpoint
andqpu_compiler_endpoint
-- to reflect changes in Quantum Cloud Services (@karalekas, gh-856). -
Clarified documentation around the DELAY pragma (@willzeng, gh-862).
-
Added information about the
local_qvm
context manager to the getting started documentation (@willzeng, gh-851). -
Added strict version lower bounds on the rpcq and networkx dependencies (@notmgsk, gh-828).
-
A slice of a
Program
object now returns aProgram
object (@notmgsk, gh-848).
Bugfixes
-
Added a non-None default timeout to the
QVMCompiler
object and theget_benchmarker
function (@karalekas, gh-850, gh-854). -
Fixed the docstring for the
apply_clifford_to_pauli
function (@kylegulshen, gh-836). -
Allowed the
apply_clifford_to_pauli
function to now work with the Identity as input (@msohaibalam, gh-849). -
Updated a stale link to the Rigetti Forest Slack workspace (@karalekas, gh-860).
-
Fixed a notation typo in the documentation for noise (@willzeng, gh-861).
-
An
IndexError
is now raised when trying to access an out-of-bounds entry in aMemoryReference
(@notmgsk, gh-819). -
Added a check to ensure that
measure_observables
takes as many shots as requested (@marcusps, gh-846).
Special thanks to @willzeng for all the contributions this release!
v2.5.2
This is a bugfix release, repairing a bug in the serialization of ExperimentResults objects.