Skip to content

v1.6.0

Compare
Choose a tag to compare
@pavoljuhas pavoljuhas released this 23 Jul 04:43
· 36 commits to main since this release
v1.6.0

Cirq v1.6.0 release

Summary

Removed the Cirq-Rigetti package. Increased the minimum Python version to 3.11.
Enhanced support for experiment types and circuits for Quantum Engine.
Added a new Quantum Virtual Machine "willow_pink", to simulate state-of-art
Google processors.

Removal of cirq-rigetti

The Cirq-Rigetti subpackage has been removed after its deprecation in #7058.
For legacy code needs, please use the last release cirq-rigetti-1.5.0.

General code maintenance

Increased type-check coverage by adding type annotations to unit tests
(an ongoing effort). Updated annotations syntax to confirm to PEP-585.
Activated ruff tool for fast code checking and linting. Deleted the
outdated maintenance tool pr_monitor and eliminated the use of Docker
in tools and tests.

cirq-core

Added CXSWAP and CZSWAP gates. Added transformers for manipulating
operation tags and for parameterizing tagged operations. Added support
for parameterized circuits in the merge-single-qubit-gates transformer.
Added a new implementation of parallel XEB accepting circuits instead of
single gates. Improved Randomized Benchmarking to reduce the size of
generated circuits. Simplified decomposition of controlled gates with
global phase. Added JSON serialization support for NoiseModel classes.
Extended the QASM import parser to understand more OpenQASM 2.0 gates.
Improved the output and speed of Quantum Shannon Decomposition.
Implemented support for adding tags to Cirq moments.
Enhanced apply_unitary and unitary to accept numpy matrices.

API change

Changed CircuitOperation to assume use_repetition_ids=False by default
(you can pass the explicit argument use_repetition_ids=True to restore
the previous behavior).

cirq-google

Added specifications for the new Quantum Virtual Machine (QVM) "willow_pink"
with updated demos in QVM notebooks. Improved serialization of Cirq objects
for Quantum Engine (QE) for better performance and to support more Cirq types.
Added classes to express analog qubit frequency and coupling experiments at QE.
Deprecated hard-coded default gate times in noise_properties_from_calibration.

cirq-ionq

Added support for expressing IonQ Pauli-exponential gates.
Fixed a bug in the computation of inverse MSGate.

cirq-web

Improved the cirq-web package layout to avoid installing the unnecessary
cirq_ts module.

A Huge Thank You

Thank you to all our contributors for this release:

ACE07-Sev, Akshita, Andreas Bengtsson, Bicheng Ying, Codrut Grosu, Danni Wang,
Dax Fohl, Devon Yates, Doug Strain, Kerry Zhou, Michael Hucka, Michael Qian,
Nour Yosri, Pavol Juhas, Radu Marginean, Renyi Chen, Revanth Gundala,
Saurav Maheshkar, Seneca Meeks, Su Ji Park, WingCode

What's Changed

315f026 Change use of measurements to records in tomography [continued] (#7477)
cd32133 Fix #7510: remove outdated notebook about XEB (#7519)
86b38ab Regenerate QuantumEngineService gRPC client libraries with GAPIC (#7500)
0373f2b Fix sidepanel contents for section on noise (#7518)
c09b3d0 Derive _kraus_ from _apply_channel_ (#7434)
6b6a7ff Fix global phase computation in matrix gate decomposition (#7482)
3031b1f Expand product sweep parameters iteratively rather than recursively (#7523)
8e8fd80 Add JSON serialization support for NoiseModel classes (#7396)
11c769d Add clarification to GridQubit neighbors function (#7521)
c434f94 Don't attempt to make the logo light/dark responsive (#7512)
118de18 ruff - enable and fix ISC, implicit string concatenation (#7511)
cb60bba Add num_qubits to DepolarizingChannel cirq_google serialization (#7502)
bdcf704 Remove documentation links to nonexistent documents and pages (#7506)
97718bf Update link to qelib1.inc file (#7508)
286fff5 Adjust example notebooks for the change of the use_repetion_ids default to false (#7504)
e7636e0 Implementation of support for IonQ pauliexp gates (#7374)
662716b Make the points in cirq_google v2 proto to be double (#7498)
731f1bf Serialize tags on moments in cirq_google protos (#7493)
c971809 CI - activate Python 3.13 tests for all platforms (#7489)
11f6238 Bump up grpcio-tools-1.71.2 (#7495)
3254362 NEP-29 - require minimum Python version 3.11 (#7499)
fee1d37 Update Scientific Python dependencies per NEP-29 and SPEC-0 (#7496)
07fb131 CODEOWNERS - remove owner specifications for cirq-rigetti (#7497)
bb2e86b Fix resolution of notebook paths when pytest is not at the repo root (#7487)
40722be Fix missing None types on test functions (#7494)
6d791fa Remove cirq-rigetti vendor module (#7488)
1e66a39 ci - avoid overlapping artifact names from notebook tests (#7486)
89ebad8 Cache the result of CircuitOperation.has_unitary (#7483)
460dda0 Standardize serialization of CalibrationTag (#7480)
ffd78c8 Make isolated_notebook_test work from any directory (#7481)
2e0784b Add proto serialization support for circuit tags (#7478)
a5dceed Fixing MS gate inverse is not implemented correctly (Issue 7432) (#7466)
346c95b Promote FrozenCircuit.tags to AbstractCircuit (#7476)
e42eac2 Update RB to reduce the size of the generated circuits (#7411)
68c5741 Add noise gates to cirq_google serialization (#7443)
5adcb64 Adding tags to Moments (#7467)
b3fe874 Add max_concurrent_jobs to Engine.get_sampler(). (#7442)
b5600e6 Add AnalogDetuneCouplerOnly (#7444)
a89f5b9 Fix a couple of typos in transformers (#7471)
fec106c Add return-type to public functions, mostly tests part 1 (#7440)
f7f54e2 Fix test flake in pauli_string_measurement_with_readout_mitigation_test (#7459)
e34da07 Combine mypy version updates (#7457)
3a6875c Combine cirq-web updates (#7456)
45a0ead CI - disable cirq-rigetti tests (#7433)
7bd8953 Update ruff requirement from ~=0.11.11 to ~=0.12.1 in /dev_tools/requirements/deps (#7451)
73ede52 Address review comments for PR #7390 (#7441)
4c7e393 Make QVM notebooks use development version of cirq_google (#7439)
5c96d02 Add AnalogTrajectory and FreqMap (#7437)
0df354c Update QVM demo notebooks to use "willow_pink" (#7428)
66b582f Add AnalogDetuneQubit cirq google version (#7430)
c9839bf Implements optimizations A.1 and A.2 for Quantum Shannon Decomposition (#7390)
cedf227 Simplify decomposition of controlled eigengates with global phase (#7383)
cac6aad Ensure QVM notebooks use development version of cirq (#7436)
9a58a8b Support merge symbolized 1 qubit gate transformer (#7393)
b1ff3ae Combining readout circuits for QWC pauli strings in the measure_pauli_strings method (#7416)
bcd9528 Update dd with faster circuit construction (#7431)
7978a27 Fix test assertion in raw_types_test.py. (#7401)
4c9b173 Modify apply_unitary and unitary to take in numpy unitary matrix. (#7419)
5ea1d04 Handle non-2D arrays in cirq.unitary (#7427)
a839837 Change merge_single_qubit_moments_to_phxz to support global phase. (#7405)
be1b527 Fix typo in notebook example (#7426)
9d511e9 Extend include_tags to support by-type selection (#7425)
bb7b5c1 CI - bump GHA windows runner to windows-2022 (#7423)
dd8634f Deselect ruff-covered pylint rules (#7424)
a025e0b ruff - enable and fix pylint-equivalent rules (#7420)
e395921 Cirq Exponent exception for str only (#7422)
ef6a3ab Fixes #7072: Support more OpenQASM 2.0 gates from qelib1.inc (#7377)
8788b62 Update dd at "pulled-throughs meet non-cliffords" (#7409)
6bb6661 ruff - enable and fix rules F401, F601 (#7413)
4a128dc Cirq x exponent symbol (#7400)
15345b4 Enable pylint and ruff check for unused suppression comments (#7412)
4b118d0 Remove dead code for scipy<=1.5 (#7410)
d1d25f8 Bump mypy to 1.16.0 (#7407)
1f17390 Prefer load_device_noise_properties in example notebooks (#7408)
fa8d64d Fix test case names. (#7406)
eebcfa0 Use list for GoogleNoiseProperties.readout_errors values (#7392)
123cbf8 QVM - deprecate default gate_times_ns in noise_properties_from_calibration (#7399)
e27d883 Support serializing sweeps with numpy values (#7398)
92c9a91 Ignore notebook formatting in git blame (#7389)
086b03e Fix more typing issues (#7388)
09b44c0 Take care of leftover conversions to PEP 585 style (#7382)
12eab31 pylint - sync with rules used in internal codes (#7387)
8b02d60 Format all notebooks (no change in the code) (#7386)
3578631 Update format-incremental script to format notebooks (#7342)
852997c CI - add ruff check of the code (#7372)
e9f8691 Move cirq-ts files to cirq-web (#7362)
da44cac Bump networkx to minimum version 3.4 (#7378)
c000fae Fix: Allow subtraction of IdentityGate in PauliSum.__sub__ (#7276)
b0a1751 Add list_virtual_processors function to the QVM factory (#7375)
66b3d71 Decompose controlled 1x1 unitary gates generically, not just GlobalPhaseGate (#7283)
e422e16 Add new "willow_pink" processor to the QVM factory (#7366)
318887b Add QVM factory function load_device_noise_properties (#7369)
1c0ba5b Flatten controlled-CZ and controlled-CX more consistently (#7365)
f5228d7 Finalize switch to PEP 585 style type annotations (#7367)
513f309 Update type annotations (#7364)
e9a592d Attempt canonicalization first when decomposing controlled gates (#7269)
0f174c1 Added QASM Import Support for rzz, rxx, ryy, crx, cry, and iswap Gates (#7290)
c45df8b Finalize switch to unquoted type annotations (part 10) (#7357)
4343ef3 Fix Linear dict scalar division test (#7361)
9c376c4 Update types for standard collections (#7355)
d8e4a9b Bump the non-security group in /cirq-web/cirq_ts with 5 updates (#7353)
1f02be7 Bump codecov/codecov-action in the actions-version-updates group (#7351)
aba6fbe Switch to unquoted type annotations part 9 (#7356)
d0a150e Add QVM helper extract_gate_times_ns_from_device (#7350)
080ec36 Update Type Hints (#7348)
e58f3ad Switch to unquoted type annotations part 8 (#7345)
9e13920 Support Reset gate in GridDevice and device specification proto (#7349)
f3410e2 Remove Dockerfile and associated files and documentation (#7347)
4e12cbf Add a symbolize transformer (#7307)
716549e Fix another round of typing issues (#7341)
b4bcdfb Switch to unquoted type annotations part 7 (#7343)
01e3e9c NEP-29 - require minimum Python version 3.11 (#7338)
9df5d3b Remove documentation references to optimized_for_sycamore (#7329)
6ee6b50 Optimize the HHL algorithm using amplitude amplification (#7141)
22b4831 Update .git-blame-ignore-revs for test return types. (#7332)
9a879c9 Adjust type annotations for numpy-2 (#7333)
651fefa Add CXSWAP and CZSWAP gates (#7334)
8ad59df Fix identifying hardware changes notebook (#7328)
33b8f3c Add few more return-type annotations to tests (#7331)
d1e68b1 Add return type for tests (#7327)
b6f9c53 Disable all GitHub Actions jobs in forks (#7326)
af63d6a Add WillowGate to cirq_google serialization (#7309)
3145542 Fix qubit metadata in identifying_hardware_changes (#7308)
b136ae8 Add tag_transformers, remove_tags, index_tags. (#7306)
293f25e Starts deprecating pass_operations_over for PauliString and PauliStringPhasor (#7294)
2635656 Switch to unquoted type annotations part 6 (#7325)
575552a Create a new implementation of parallel XEB and its methods (#6940)
8c5753d CI - fix type check with a temporary pin to numpy-1 (#7324)
2d8da71 Rewrite inefficient sum(..., []) and sum(..., ()) (#7304)
8a322f0 Group updates for GitHub Actions (#7318)
63b0f17 Add the capability to accept group Paulis that can be measured using same measurement results (#7236)
69c686f Switch to unquoted type annotations part 5 (#7317)
39306b4 CI - replace actions/cache with setup-python package caching (#7305)
de37106 Add Willow gate (#7301)
22284fe Update documentation about num_qubits protocol (#7299)
b08bfbe Make cirq.Zip twenty times faster (#7303)
f085651 Improve reporting of errors & efficiency of pr-size-labeler (#7288)
4fa82fb Switch to unquoted type annotations part 4 (#7298)
5f7fc9a Clarify error message for decompose_once(X(q)) (#7281)
3d0dee5 Switch to unquoted type annotations part 3 (#7295)
1a7688a Fix minor README glitches, update Cirq logo to respond to dark/light mode, and add QAI logo (#7186)
197c83a Fixed visual bug and unit test (#7293)
5112418 Fix YAML quotation error (#7286)
c054b90 Switch to unquoted type annotations part 2 (#7278)
aa3cc11 Update cirq resolver to check sympy singletons with is instead of == (#7279)
50d7198 Remove pr_monitor (#7214)
fe86bda Put back the issues-write permission for pr-labeler (#7277)
7f570b3 Flip test names to match expected warnings (#7275)
8824a66 Replace PR labeler with better & safer version (#7271)
28653b6 Remove first-interction.yaml workflow (#7273)
e4ad080 Remove pytest-debug.yaml workflow (#7274)
ca5921f Clarify instructions for release process (#7266)
1a75d9f Remove USE_CONSTANTS flags and make them the default (#7262)
da14476 Roll forward #6910 - CircuitOperation: change use_repetition_ids default to False (#7265)
92f71b6 Test all notebooks vs stable cirq after the release (#7255)
10eb800 Cite Cirq release 1.5.0 (#7263)