github quantumlib/Cirq v1.7.0

10 hours ago

Cirq v1.7.0 release

General

Added support for Python 3.14 and protobuf-6. Increased the minimum
version of NumPy to 2.1. Established performance benchmarks suite
based on pytest-benchmarks. Increased type-check coverage for
return types of public functions. Improved speed and reliability
of the CI test suite.

cirq-core

Added CY and CCY gates. Added circuit insertion strategy LATEST to
complement EARLIEST. Improved handling of measurement and control keys
overlap in Circuit.insert and Circuit.append. Added efficient
sparse matrix computation to PauliString and PauliSum.
Improved dynamical decoupling transformer to better preserve input circuit
structure. Added lightcone filter transformer. Thoroughly optimized
computation of PhasedXZGate unitary and of its has_stabilizer_effect flag.
Added tools for creating GHZ state-preparing circuits with 1D and 2D
connectivity of qubits. Added cirq.symbol function for a more
convenient setup of parametrized circuits. Improved handling of unordered
sets in cirq.approx_eq.

cirq-core contrib

Added functions for measuring expectation values of Pauli strings with readout
and T-rex error mitigations. Added tool for measuring the fidelity of GHZ
states. Enhanced support for import and export of circuits to QASM 3. Added
publication-quality circuit rendering via LaTeX and Quantikz (experimental).

cirq-google

Many enhancements to utilize developments of the internal QuantumEngineService.
Improved support and efficiency of running multi-circuit and batched
parametrized-circuit programs. Added specialized gates to express
options and parameters available for Google quantum hardware.
Added simulator for circuits with analog gates.

cirq-ionq

Updated IonQ client for the IonQ API version 0.4. Added support
for retrying engine requests that failed due to service rate limits.

cirq-pasqal

Fixed PasqalGateset to correctly produce single-gate moments in transformed circuits.

cirq-web

Migrated from Webpack to the Vite framework for Typescript development and packaging.

A Huge Thank You

Thank you to all our contributors for this release:

A.C.E07, Aarush, Anton Kast, Aqil Ahmad, Bicheng Ying, Chris Bunch,
Codrut Grosu, Danni Wang, Dax Fohl, Devon Yates, Doug Strain, Edge Seven,
Eliott Rosenberg, Gangavarapu Vivek, Guilherme Dionysio, Jagan Kalsi,
Joe Schulte, Jon Donovan, Kamal Al-Ameri, Kanguk Lee, kataro92, Matt Wenner,
Matthew Neeley, Michael Hucka, Michael Qian, Nate Stemen, Nour Yosri,
Patryk Kowalewski, Pavol Juhas, Quantova-Inc, Radu Marginean, Rahil Jain,
Renyi Chen, Revanth Gundala, Ross Peili, Sena Gul Hazir, Seun Omonije,
Shashwat Kumar, Shih-Cheng Tu, Shubham Agrawal, Spencer Churchill,
Supash Ramesha, William (Acciaccatura), Zlatko Minev

What's Changed

de651a7 Removing 1.7.0.dev0 -> 1.7.0
bf0ed0c Fix small bugs in top-level README.md file (#8166)
ae6959f Flush deprecations for the 1.7.0 release (#8165)
2fa26d0 Fix histogram() for qudits by adding fold_base parameter (#8138)
cedfc6d Fix circuit reversal when searching for shortest stratified_circuit in reverse (#8164)
0bd08de Add qubit_attributes to GridDeviceMetadata and corresponding proto (#8155)
f0e4c73 Add sparse_matrix() to PauliString and PauliSum (#8127)
498d35e Add some utilities for T-rex error mitigation (#8095)
d97892b Add note that PauliSum does not preserve gate order of summed PauliStrings (#8163)
0f28d2e Add test for text fontsize in SVG circuit diagrams (#8161)
dc296ed When recovering from a failed stream, attempt to create missing programs/jobs if they are not found (#8151)
f98e5bd Fix the ci-daily job (#8160)
592c001 Replace inplace assignment of NumPy array shape (#8159)
8cb539e CI - use all runner CPUs in ci-daily and ci-weekly (#8149)
7cf89ef For development install cirq-packages in an editable mode (#8148)
5b2b46b Escape xml characters in all svg text instructions (#8144)
6baa941 Update spin echoes tutorial transformer usage (#8137)
a4e92af pytest - parametrize tests using collection containers only (#8142)
835ca4b Validate device_config_revision type in cirq-google (#8135)
780fe1f Make DD more stable (#8130)
c80eb1d Update Scientific Python dependencies per NEP-29 and SPEC-0 (#8133)
aec7393 Fix typecheck - remove unnecessary type-ignore comment (#8136)
6922063 Fix RCE in BooleanHamiltonianGate decomposition (CWE-502 -> CWE-94) (#8110)
ba1b578 Allow top-level cirq_google.Snapshot and cirq_google.Run (#8126)
3db82dd Replace noninclusive dummy and sanity language (#8103) (#8120)
a596e1c Update triage party configuration (#8080)
4738170 Proto used to hold the output of QEC circuit calibration (#8100)
7edca25 Tweaks to lightcone filter test function (#8109)
74abd87 Add lightcone filter transformer (#8107)
a9a16b6 Add docstring to the QubitManager abstract base class (#8108)
defc9a0 Add LeakageISWAP gate to cirq_google (#8099)
650016f Add LZSResetViaResonator Gate to Cirq-google (#8093)
6527aab Add quantum engine batched_results() (#8092)
fe135f6 Deflake notebook_test when run in parallel (#8090)
503a246 Adds MultilevelResetViaResonator gate to cirq_google (#8089)
f4c35b0 Support non-uniform repetitions in batch jobs (#8088)
5f5c5ae Fix internal sub_state_vector test failure due to tight atol (#8085)
d1cab35 Disable local Google Cloud credentials in cirq-google tests (#8083)
15e1e5d Fix patching of CIRQ_TESTING environment variable (#8084)
bde5ffa Fix issues with multi-circuit size in Engine (#8076)
3bc60a8 (2/2) Combine Pauli measurements and postselection (#7970)
be76e86 Fix bug in circuit.insert (#7823)
ccf35e6 Fix ci-daily run on windows-2022 (#8082)
7228447 Clean up recent changes in sub_state_vector (#8081)
02e927f Sub state vector (#8077)
bf16378 Improve fixup order in check/all --fix (#8079)
76910aa Fix broken IonQ links (#8075)
7753319 Replace specific loops with Boolean masking and vectorized assignments (#8045)
852f92e Micro optimization to Moment initialization. (#8069)
af4e48d Add argument check to move_pauli_strings_into_circuit (#7985)
de66262 Fix ordering in Engine.run_batch (#8060)
f55763c Add multi-circuit capability to EngineJob.get_circuit (#8057)
c73d890 Fix flaky EngineProcessor time filter tests (#8058)
f5300e0 Change canonicalization of PhasedXZGate to preserve pi-pulse rotation axis (#8053)
2821085 Update .github/CODEOWNERS file (#8055)
aff3efc Improve inefficient string concatenation in clifford_tableu.py (#8044)
c40e01d Make program.run() return an EngineJob so it's consistent with program.run_sweep() (#8048)
fdf7e50 All multi-circuit programs to be batched in the same request in Engine. (#8036)
89993a9 Finalize conversion from asv to pytest-benchmark (#8051)
8691276 Fix bash_scripts_test when invoked from pytest --cov (#8050)
574dfeb CI - automatically convert new dependabot PRs to draft (#8043)
fcdf63e Support "input" modifier in QASM3 parser (#7997)
b3366ab Add pull-request note for the first-time contributors (#8016)
7e113e6 Convert attribute docstrings to conventional docstrings (#8037)
b8ff93e Wrap calls to deprecated functions in qubit_characterizations_test.py (#8031)
603755a In histogram.py, only apply log scale if data has positive values (#8032)
a46677e CI - ensure concurrency group name is unique (#8035)
c58771f Avoid circular dependency hack in periodic_value.py (#8030)
6314823 Update protobuf to 6.32.1 or later version 6 (#8029)
f876e70 Address mypy complaint showing for typedunits-0.0.2 (#8033)
52cfc35 Add texlive-latex-extra to required system packages (#8027)
096fe82 Run pytest-changed-files-and-incremental-coverage in a serial mode for small changes (#8025)
5b3eb0b Replace sortedcontainers with builtin collections (#8020)
3f054e8 Streamline .gitignore file (#7992)
3175c9d Update Scientific Python dependencies per NEP-29 and SPEC-0 (#8019)
20bbeec Fix bug & improve stale issue/PR handling workflow (#8010)
c7c054e Add .toml and .cff rules to .editorconfig, and clean up file comments (#7994)
cd63aad Treat classically controlled ops as non-Clifford in dynamical_decoupling (#7621)
aa9a4da Filter Scorecard results about version hash of cifuzz (#7993)
2941583 Only use chr(30) and chr(31) delimiters in cirq-ionq (#7699)
c80fb73 Run black formatter with the --fast option to suppress warning (#8015)
5975e16 Disable Cloud credentials for papermill execution from notebook test (#8014)
a9445bb Enable testing of the pasqal/getting_started.ipynb notebook (#8011)
c3507d8 CI - use Python 3.14 to run the format check (#8008)
d7bc109 Remove obsolete code for handling quimb-1.2 (#7999)
c14de40 Add test coverage for an exception handling case in quimb/state_vector.py (#7987)
9677ce5 Replace awkward if-if wording in a docstring (#7998)
1432127 Use SVD-based fidelity for density matrices and add numerical stability test (#7292)
90fb609 Fix PasqalGateset optimization to enforce single-gate moments #6655 (#7972)
e74a2a3 Fix typos, grammar errors, and capitalization inconsistencies in docstrings (#7989)
9a4d2b1 Add workflow for labeling issues (#7990)
7960fe7 Fix matching operator for ignored files in size-labeler.sh (#7986)
1d14c84 use concurrent.futures.Executor instead of multiprocessing pool to resolve conflict with duet (#7938)
9888067 Avoid broad Exception catch in consistent_resolve_parameters (#7979)
336a71f fix typo (#7977)
c4ea4e5 Further speed up CIFuzz workflow (#7973)
9e6c70a Adding new 'get_job' helper method. (#7969)
e605fa8 Add corresponding serialization for TwoPulseFSimTag (#7971)
fe93650 Make parallel_xeb.parallel_two_qubit_xeb reproducible w/r to randomly_seed (#7968)
f7cb548 Add hash support to UniformSuperpositionGate via value_equality (#7967)
04eb366 Remove canonicalization of exponents and update tests to reflect the new changes (#7954)
353a928 Fix TypeError when checking unhashable gates in Gateset.contains (#7963)
a48d60a Deprecate the --apply-format-changes option of check/all (#7964)
b2a6af6 Improve the check/all testing script (#7962)
0c987fc Mark slow benchmarks to shorten overall runtime (#7960)
fd5d1dd Fix #2643: add module string to contrib/acquaintance (#7952)
7a0f7ad Add ruff step to development.md (#7951)
8aacb64 Add GHZ fidelity tool (#7944)
9dc6526 If job result streaming fails, fall back on EngineClient.get_job_results_async (#7950)
b96afa9 Clean up snippet test errors in ionq and pasqal md files (#7918)
6689231 CI - check only the required Python versions for merge queue (#7949)
83165d3 CI - check for the ci/no-release label first (#7948)
1ac366c Fix return order in the docstring of two_qubit_matrix_to_diagonal_and_cz_operations (#7947)
61a6993 Remove documentation about how to fetch calibration for specific job.… (#7935)
e3bddbe Add 1d GHZ circuits (#7936)
3bc3aa4 Add pytest-benchmark to development requirements (#7937)
4c28746 fix circuit routing failure for directed device graph (#7889)
8b8050e Add TwoPulseFSimTag (#7929)
a2a7dc1 CI - provide token for GitHub CLI used in the release workflow (#7928)
df4f3ff Fix detection of ci/no-release label in a push event (#7927)
f71191e Fix detection of the ci/no-release label in a push event (#7917)
bf22232 Skip cirq pre-release if PR has ci/no-release label (#7915)
5f7c592 Use temporary per-file exclude in snippets_test (#7914)
7eba335 CI - disable ci-daily tests with Python 3.14 on Mac OS X (#7912)
b8bfd90 (1/2) Combine Pauli measurements and postselection (#7746)
e5173b7 Fix docs/google snippet error and add to snippets_test (#7803)
d837721 ruff - enable and fix selected RUF rules (#7883)
66cc4c8 Use bit better mocks of AbstractProcessor (#7909)
912a76e Ruff furb implementation (#7907)
349378a ruff - enable and fix N805 (#7903)
d86ac03 Add analog simulator (#7896)
f3284ea Supporting run_id and snapshot_id in create_job_async / run_job_over_stream (#7897)
0ce9341 Fix comments in routing_transformer.ipynb (#7899)
9847f17 CI - fix type checking complains that arise with numpy-2.4.2 (#7902)
5516f73 Cleaned up some typos in comments and variable names (#7898)
11b5233 ruff - enable and fix selected PERF rules (#7895)
ecffd22 Fix LineQubit.neighbors and GridQubit.neighbors for iterator qids (#7893)
a6519bb Add CY and CCY gates (#7894)
657c8dd CI - activate tests with Python 3.14 on Mac OS X (#7833)
149e266 [Magic square game] add comments (#7890)
650e200 ruff - enable and fix PLE1205 (logging-too-many-args) (#7888)
f24a68b ruff - enable and fix selected PLR rules (#7887)
b34d78d ruff - enable and fix selected PLW rules (#7886)
7c0b775 ruff - enable and fix selected SIM rules (#7882)
931d5fd Ruff ret implementation (#7884)
4f3f6ea Support routing for directed device graphs (#7810)
fde100e Add measure_on_full_support to optimize Pauli string readout mitigation (#7760)
b6c8c09 ruff - enable and fix the C4 (flake8-comprehensions) rule (#7881)
e1d51cd Fix test_submit_cancel_future_expects_engine_cancellation_rpc_call for Python 3.13.12 (#7879)
bd4c30b Use Python 3.12 for Python coverage tests (#7878)
9a99c60 Fix incorrectly joined multi-line strings (#7877)
5361ecf Take advantage of sys.monitoring for small speedup of tests in Python 3.12+ (#7777)
052f087 Add CSWAP support to ClassicalStateSimulator (#7844)
2e3cc38 Add parallel-fuzzing flag to run_fuzzers step (#7872)
8e9f83c Ignore source code formatting in git blame (#7875)
8e1901a Remove unused methods _decompose_into_clifford_* (#7855)
a003880 Add recursion support (#7843)
54a6647 CI - record randomly_seed value in pytest XML report (#7865)
3712c3d Move mypy configuration to pyproject.toml (#7864)
14cb77b Add metadata fields to results proto for keyed circuits (#7861)
c346e50 Deflake the status test of an asynchronous SimulatedLocalJob (#7862)
3b03ef6 Move pylint configuration to pyproject.toml (#7859)
4e65c20 Add cirq.symbol function to create a sympy.Symbol. (#7853)
ef5e2f7 pylint - fail for unnecessary pylint-disable comments (#7857)
3f5c3c6 Speed up Fuzzing workflow (#7856)
0eab4c2 Optimize PhasedXZGate._has_stabilizer_effect_ a bit more (#7852)
ca1c21a Add cifuzz CI config for OSS-Fuzz (#7625)
f066e63 Fix EngineProgram.get_circuit(async) empty code detection (#7850)
2ef9f37 Fix EngineClient.list
(jobs|programs) (#7848)
9d01b0b Replace importlib_metadata with builtin importlib.metadata (#7847)
6a0fd11 CI - skip Pytest Windows with Python 3.14 (#7846)
f65e3e9 Convert ASV benchmarks to pytest-benchmark (#7799)
6147746 doctest - improve loading of doctest examples (#7842)
1fbb244 Extend pandas compatibility window to include pandas-2.2 (#7845)
9f96ca5 CI - eliminate duplicate test report for Pytest Ubuntu (#7839)
19c2c0d CI - add dedicated workflow to monitor performance of Pytest Ubuntu (#7838)
9c443b6 Fix: use context argument in drop_diagonal_before_measurement (#7837)
5c23169 Update Scientific Python dependencies per NEP-29 and SPEC-0 (#7834)
9aea3ba Enable installation and testing with Python 3.14 (#7761)
449a1ea approx_eq - ensure set-sorting of the first argument is tested (#7830)
9b89f3c Fix measurement and control key commutativity bug in insertion_sort_transformer. (#7822)
0e86b24 Fix inconsistency with set equality in approx_eq (#7792)
38318ba Add drop_diagonal_before_measurement transformer (#7790)
a8efbc5 CI - enforce lint and type checks for benchmarks (#7828)
e96726a manual bump to gts 7, and necessary code nits (#7826)
ceb9432 Fix failure of qvm_stabilizer_example.ipynb with numpy-2.4.0 (#7813)
0ba2dbc Fix inconsistency between qubits measurements in readout circuits and real measurement circuits (#7801)
ba6bf26 Ignore outputs from pytest-benchmark and pytest-profiling (#7812)
52c1a86 Optimize calculation of PhasedXZGate unitary (#7811)
8e3e4d8 Add LATEST InsertStrategy to complement EARLIEST (#7804)
76cab92 Adjust workflow job runner choices for better efficiency (#7775)
16d4406 implement has_stabilizer_effect for PhasedXZGate to speedup cirq.has_stabilizer_effect (#7807)
b921054 Add benchmark for has_stabilizer_effect calls on PhasedXZGate (#7808)
14b3382 CI - deflake "Isolated pytest Ubuntu" (#7806)
1467a32 Remove obsolete check from circuit.earliest_available_moment. (#7805)
a0cd4b6 Fix parent resource name used to call ListQuantumProcessorConfigs (#7802)
6871bdb CI - store test reports only for merge-queue events (#7800)
c8d141b Add list_configs() (#7794)
9e2123d Fix docs path in snippet test and exclude subdirs (#7798)
843f216 Add test for the add_dd_and_align_right in 2D GHZ state generation (#7793)
c3c5945 Return a single results object instead of always a list - IonQ (#7285)
c3e676c CI - store test report for Pytest Ubuntu 3.11 (#7795)
a764b67 Update Scorecard scanner and rename file (#7776)
4d75b4b Convert cirq_google proto_test-s to actual unit tests (#7791)
6b0ed2f Refactor get sampler (#7672)
078af27 Improve error message when validate_density_matrix fails (#7789)
5515522 Enforce the recommended "import attrs" instead of "attr" (#7788)
c6c0eff Eliminate dependency of tests on freezegun (#7773)
09f87b9 Use minor release deprecation for run_shuffled_circuits_with_readout_benchmarking (#7772)
9a8c15f Update versions of GitHub Actions used in workflows (#7769)
48b1316 Fix CircuitDag constructor to match its networkx.DiGraph base (#7771)
ddb640c Add 2D GHZ state generation (#7767)
8dd8a8f asv - adjust build_command for making the cirq-core wheel (#7764)
2c90d1d Adjust test names to match the tested function (#7763)
6d4a488 Adds a cirq_google function to convert lists of dictionaries into Sweeps (#7758)
82435c1 Parameterize QasmUGate (#7759)
e95ae4b Refresh proto-generated source files (#7762)
be86c17 docs: fix typos in some files (#7756)
bf23fc0 Improve docstring for unitary() & other text in unitary_protocol.py (#7582)
ad37bb7 Send connection keepalive pings once per minute to prevent stream termination while awaiting long-running jobs (#7755)
96c2004 [bugfix] Prevent GateOperation.add from superseding Circuit.radd (#7707)
57f17ce Documentation: Improve virtualenvwrapper setup instructions for new contributors (#7741)
ea7c94e ruff - enable and fix a series of UPNNN rules (#7748)
c444498 pr-size-labeler - fetch change info for the maximum number of files (#7749)
3e0e213 Use "uv pip compile" to check consistency of requirements (#7745)
77035ba Migrate contrib json tests to standard json test framework (#7743)
2bdbea8 Use cirq.q instead of str in analog (#7736)
1deffd6 Change ParamResolver keys to be strings (#7714)
08a15c8 Optimize pauli_string_measurement_with_readout_mitigation_test (#7740)
4cbe88d Skip cirq pre-release if identical to the last version (#7737)
783aedf Allow the multi-moment gc to pass prng in caller. (#7733)
8ce1a4b Provide native support for U3 gate (#7717)
12b3906 Implement structure preserving dynamical decoupling (dd-v2) (#7609)
472b6ad Micro-optimization of big_endian_int_to_digits (#7715)
e3a0fec Replace macos-latest with the specific macos-15 (#7718)
357ac93 - Deprecate macos-13 and replace with macos-latest (#7716)
39c57d6 Use pytest fixture for multiprocessing Pool in z_phase_calibration_test (#7713)
036f969 Remove xfail from QSD tests (#7712)
bc6dab9 feat: support retrying 429 responses from IonQ (#7710)
7cb819c Improve hashing of PhasedXZGate for symbolic values (#7708)
253b7b1 Use an efficient representation for merged components of operations (#7484)
34f1f99 Fix the type error in the Shor tutorial notebook (#7655)
8483c36 CI - enhance check for up-to-date cirq-web bundle files (#7705)
da27075 Micro-optimizations for Parameter Resolution (#7701)
704913b Manually bump Vite to v7 (#7702)
f1e4d39 Add @hoisinberg as owner of cirq-google (#7703)
770b5a6 Add webgpu support (#7698)
72c728a Fail check/ts-build-current when bundle files cannot be built (#7696)
8137600 Fixing ts-build errors and build config from webpack-to-vite merge (#7697)
e8e79bb Micro-optimization for Gateset containment (#7692)
01e82bf Adjust grid_device for optimization (#7693)
2beca80 Webpack to Vite (#7687)
3b3cd7d Update branches from master to main for ReCirq and qsim (#7689)
7e9f13a Add return-type to public functions, mostly tests part 5 (#7691)
913e68b Add methods to serialize multi-programs in cirq_google (#7678)
891e452 Add new Quantikz rendering modules and enhance existing functions for visualization (#7354)
d69b437 Replace deprecated datetime.utcfromtimestamp (#7676)
efb296e Delete unused dataclass cirq_google.CalibrationResult (#7677)
1ad77cd Update Scientific Python dependencies per NEP-29 and SPEC-0 (#7675)
82d2cdc Support multi moment gauge compiling (#7501)
92b0206 Micro-optimizations to WaitGate (#7671)
413aee6 Fix #2961: add basic docstring to clifford_optimized_circuit() (#7663)
cd89c1f fix bug in idle moments gauge (#7669)
7a0a7be ruff - check and fix escape-sequence-in-docstring (#7670)
c8d8d59 (2/2) Add parameter sweep support for Pauli string measurements with readout mitigation (#7569)
63cfe53 Avoid in-place Python code execution (#7667)
9550c0d Test qcircuit with actual PDF output (#7665)
b1f8b82 Remove trailing empty ListSweep from merged sweep (#7664)
23afd92 Fix type-checking issues for numpy-2.3.3 (#7661)
7b68c39 Don't refresh the job as soon as we receive the result. (#7662)
c3e8b44 Advise to use git ls-remote --branches instead of --heads (#7660)
dbde273 Add get config functions (#7565)
a30b607 Increase default max_concurrent_jobs to 100 (#7659)
2845910 CI - unblock type check with a temporary pin to numpy-2.2 (#7658)
163a087 Fix unexpected markdown syntax in docstring (#7653)
7673240 Create a gauge for idle moments (#7648)
1fa73c7 Add return-type to public functions, mostly tests part 4 (#7645)
6816824 Allow PauliString-like gates to be used in PauliSum (#7651)
97781c7 Fix typo and numbered list in variational algo doc (#7647)
692dbcf Generalize DensePauliString.mul to handle multi-qubit Paulis (#7643)
25d727f Fix Circuit._control_keys_ to respect control-measurement order (#7639)
f203210 Update IonQ API version from v0.3 to v0.4 (#7438)
f0d9237 Correct documented exception in StateVectorMixin (#7646)
ce35d68 QVM - require gate_times_ns argument in noise_properties_from_calibration (#7644)
fc5bee5 pytest-changed-files - test only files changed in the current branch (#7642)
9f3b2c5 Support export/import multiple conditions in QASM 3.0 (#7638)
ba8f55a Optimize multiplications with Pauli operations (#7637)
a0115b3 Allow cirq-google installation with protobuf-6 in addtion to protobuf-5 (#7628)
c35ed72 Preserve max moment of control key while appending to circuit (#7626)
c334f75 Increase np.isclose tolerance for mitigated expectation value assertion (#7627)
f3680d0 Fix inconsistent Pauli gate multiplication (#7603)
cedd002 Regenerate QuantumEngineService RPC client to include ListQuantumProcessorConfigs (#7636)
d7f81f4 Add linting and type checking overrides for cirq-google/cirq_google/cloud, which contains only generated code (#7633)
7f3bab4 make final_density_matrix work with classical control (#7610)
9672295 Tighten the search for actual version sources (#7615)
f06362a Improve wheel-building process (#7613)
12b443e Clean up unused environment variable CIRQ_PRE_RELEASE_VERSION (#7614)
d0e2bc5 Add QubitPermutationGate and tuple input support to ClassicalStateSimulator (#7567)
c517794 Generate reproducible dev-versions from the last commit time (#7597)
60cbc49 OpenQASM lexer: allow leading _ in identifiers (#7608)
f616a41 Update the tutorials to use journal style reference (#7577)
ee4029a Delete unused script publish-dev-packages.sh (#7606)
c08eaf0 Bail out of shell scripts on failure to determine repository root (#7605)
65c5691 Improve performance of _build_sweep_const (#7601)
f841c5d Fix typo in the deprecation message for pass_operations_over (#7604)
c09eeb6 update the RB fitting method to compensate for the standard deviation induced from the random number generator (#7562)
d941b55 Pass numpy arrays in cirq.unitary unchecked (#7595)
f7a90c2 Performance improvement in _check_duplicate_keys (#7599)
8afd5aa Micro-optimizations for gateset validation performance (#7598)
800b9db Some micro improvements to sweep_from_proto (#7600)
5327175 Performance Improvement for Circuit.has_measurements() (#7596)
728b035 Replace typing_extensions with builtin typing module (#7590)
dc69fa1 Add return-type to public functions, mostly tests part 3 (#7589)
a165e2d Add analog gates into device specification (#7583)
130e3bb Fix flaky pauli_string_measurement_with_readout_mitigation_test (#7571)
66eb689 Allow serialization of raw Args as tags (#7581)
78722ec Allow Mapping type for the xeb_fidelity amplitudes (#7584)
4103b8b Handle None vs NotImplemented correctly in decompose protocol (#7553)
1f00133 Change order of checking containment within a gateset (#7578)
3d3b180 ruff - enable and fix RUF027 - missing-f-string-syntax (#7580)
c7f10ac ruff - enforce rules that are already satisfied (#7579)
f61b172 Add user option to compress run context (#7575)
d5f8fb7 Cite Cirq release 1.6.1 (#7576)
ce1858c Add serialization support for analog gates (#7564)
9a6d9d7 Clarify the instructions about pre-release notebooks (#7573)
3c02ed9 CI - add manual trigger for daily and weekly workflows (#7570)
39b3e6b Improve serialization of Sweepable objects (#7563)
87b1726 Adds a FiniteRandomVariable sweep to cirq_google (#7542)
b5ca970 Test all notebooks vs stable Cirq after the release (#7561)
1be4d9a Add return-type to public functions, mostly tests part 2 (#7568)
fe0dc21 Don't merge PhaseXPowGate into measurement gate in eject_phased_paulis (#7538)
0e87d09 Link to Willow and Weber data sheets (#7560)
99320d3 Update OpenQASM compatibility table (#7555)
574595f Fix mutable_pauli_string.inplace_after() and inplace_before() (#7507)
17c4e95 Add CompressDurationTag (#7543)
1ed3fdf Allow users to run readout benchmarking with sweep (#7435)
b765bd9 Add option and set the default float encoding as float32 (#7554)
ffbad23 Remove the merge moments logic in dd (#7545)
072d871 Fix typos in reference docs (#7539)
6d10979 Fix kraus channels for fallbacks to super-operators (#7537)
45712a4 Add generic analog circuit builder class (#7491)
31df8ef Adds option to compress the size of RunContext (#7532)
862bc2f Fix two typos (#7533)
23b301c Include cirq.contrib test JSON files in cirq-core package (#7529)
edca39d Restore behavior which persists quantum_run_streams indefinitely (#7527)
bad600f Cite Cirq release 1.6.0 (#7530)
bbbf952 Indicate that docs/simulate/virtual_engine_interface.ipynb depends on unreleased features (#7528)
f9489cd Bump cirq version to 1.7.0 (#7526)

Don't miss a new Cirq release

NewReleases is sending notifications on new releases.