{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":114306758,"defaultBranch":"main","name":"Cirq","ownerLogin":"quantumlib","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2017-12-14T23:41:49.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/31279789?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1726696893.0","currentOid":""},"activityList":{"items":[{"before":"3fefe2984a1203c0bf647c1ea84f4882b05f8477","after":"2bbc3c4c4be92547cc1750546d0ee1a3d50b26f6","ref":"refs/heads/main","pushedAt":"2024-09-20T23:56:37.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"pavoljuhas","name":"Pavol Juhas","path":"/pavoljuhas","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1915760?s=80&v=4"},"commit":{"message":"CI - add temporary job pytest-numpy-2 to test with NumPy-2 on Ubuntu (#6740)\n\nNote cirq-rigetti is excluded, because it is not yet NumPy-2 compatible.\r\nThe test is only run on Ubuntu for the sake of speed and simplicity.\r\n\r\nRelated to #6706","shortMessageHtmlLink":"CI - add temporary job pytest-numpy-2 to test with NumPy-2 on Ubuntu (#…"}},{"before":"d15549c9e2d63307002e186ec3e3587492390c34","after":"3fefe2984a1203c0bf647c1ea84f4882b05f8477","ref":"refs/heads/main","pushedAt":"2024-09-20T23:02:04.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mhucka","name":"Michael Hucka","path":"/mhucka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1450019?s=80&v=4"},"commit":{"message":"Fix #6706 – Update sources for compatibility with NumPy 2 (#6724)\n\n* Explicitly convert NumPy ndarray of np.bool to Python bool\r\n\r\nIn NumPy 2 (and possibly earlier versions), lines 478-480 produced a\r\ndeprecation warning:\r\n\r\n```\r\nDeprecationWarning: In future, it will be an error\r\nfor 'np.bool' scalars to be interpreted as an index\r\n```\r\n\r\nThis warning is somewhat misleading: it _is_ the case that Booleans\r\nare involved, but they are not being used as indices.\r\n\r\nThe fields `rs`, `xs`, and `zs` of CliffordTableau as defined in file\r\n`cirq-core/cirq/qis/clifford_tableau.py` have type\r\n`Optional[np.ndarray]`, and the values in the ndarray have NumPy type\r\n`bool` in practice. The protocol buffer version of CliffordTableau\r\ndefined in file `cirq-google/cirq_google/api/v2/program_pb2.pyi`\r\ndefines those fields as `collections.abc.Iterable[builtins.bool]`. At\r\nfirst blush, you might think they're arrays of Booleans in both cases,\r\nbut unfortunately, there's a wrinkle: Python defines its built-in\r\n`bool` type as being derived from `int` (see PEP 285), while NumPy\r\nexplicitly does _not_ drive its `bool` from its integer class (see\r\n).\r\nThe warning about converting `np.bool` to index values (i.e.,\r\nintegers) probably arises when the `np.bool` values in the ndarray are\r\ncoerced into Python Booleans.\r\n\r\nAt first, I thought the obvious solution would be to use `np.asarray`\r\nto convert the values to `builtins.bool`, but this did not work:\r\n\r\n```\r\n>>> import numpy as np\r\n>>> import builtins\r\n>>> arr = np.array([True, False], dtype=np.bool)\r\n>>> arr\r\narray([ True, False])\r\n>>> type(arr[0])\r\n\r\n>>> newarr = np.asarray(arr, dtype=builtins.bool)\r\n>>> newarr\r\narray([ True, False])\r\n>>> type(newarr[0])\r\n\r\n```\r\n\r\nThey still end up being NumPy bools. Some other variations on this\r\napproach all failed to produce proper Python Booleans. In the end,\r\nwhat worked was to use `map()` to apply `builtins.bool` to every value\r\nin the incoming arrays. This may not be as efficient as possible; a\r\npossible optimization for the future is to look for a more efficient\r\nway to cast the types, or avoid having to do it at all.\r\n\r\n* Avoid a construct deprecated in NumPy 2\r\n\r\nThe NumPy 2 Migration Guide [explicitly recommends\r\nchanging](https://numpy.org/doc/stable/numpy_2_0_migration_guide.html#adapting-to-changes-in-the-copy-keyword)\r\nconstructs of the form\r\n\r\n```python\r\nnp.array(state, copy=False)\r\n```\r\n\r\nto\r\n\r\n```python\r\nnp.asarray(state)\r\n```\r\n\r\n* Avoid implicitly converting 2-D arrays of single value to scalars\r\n\r\nNumPy 2 raises deprecation warnings about converting an ndarray with\r\ndimension > 0 of values likle `[[0]]` to a scalar value like `0`. The\r\nsolution is to get the value using `.item()`.\r\n\r\n* Add pytest option --warn-numpy-data-promotion\r\n\r\nThis adds a new option to make NumPy warn about data promotion behavior that has changed in NumPy 2. This new promotion can lead to lower precision results when working with floating-point scalars, and errors or overflows when working with integer scalars. Invoking pytest with `--warn-numpy-data-promotion` will cause warnings warnings to be emitted when dissimilar data types are used in an operation in such a way that NumPy ends up changing the data type of the result value.\r\n\r\nAlthough this new option for Cirq's pytest code is most useful during Cirq's migration to NumPy 2, the flag will likely remain for some time afterwards too, because developers will undoubtely need time to adjust to the new NumPy behavior.\r\n\r\nFor more information about the NumPy warning enabled by this option, see\r\n.\r\n\r\n* Update requirements to use NumPy 2\r\n\r\nThis updates the minimum NumPy version requirement to 2.0, and updates\r\na few other packages to versions that are compatible with NumPy 2.0.\r\n\r\nNote: NumPy 2.1 was released 3 weeks ago, but at this time, Cirq can\r\nonly upgrade to 2.0. This is due to the facts that (a) Google's\r\ninternal codebase is moving to NumPy 2.0.2, and not 2.1 yet; and (b)\r\nconflicts arise with some other packages used by Cirq if NumPy 2.1 is\r\nrequired right now. These considerations will no doubt change in the\r\nnear future, at which time we can update Cirq to use NumPy 2.1 or\r\nhigher.\r\n\r\n* Address NumPy 2 data type promotion warnings\r\n\r\nOne of the changes in NumPy 2 is to the [behavior of type\r\npromotion](https://numpy.org/devdocs/numpy_2_0_migration_guide.html#changes-to-numpy-data-type-promotion).\r\nA possible negative impact of the changes is that some operations\r\ninvolving scalar types can lead to lower precision, or even overflow.\r\nFor example, `uint8(100) + 200` previously (in Numpy < 2.0) produced a\r\n`unit16` value, but now results in a `unit8` value and an overflow\r\n_warning_ (not error). This can have an impact on Cirq. For example,\r\nin Cirq, simulator measurement result values are `uint8`'s, and in\r\nsome places, arrays of values are summed; this leads to overflows if\r\nthe sum > 128. It would not be appropriate to change measurement\r\nvalues to be larger than `uint8`, so in cases like this, the proper\r\nsolution is probably to make sure that where values are summed or\r\notherwise numerically manipulated, `uint16` or larger values are\r\nensured.\r\n\r\nNumPy 2 offers a new option\r\n(`np._set_promotion_state(\"weak_and_warn\")`) to produce warnings where\r\ndata types are changed. Commit 6cf50eb3 adds a new command-line to our\r\npytest framework, such that running\r\n\r\n```bash\r\ncheck/pytest --warn-numpy-data-promotion\r\n```\r\n\r\nwill turn on this NumPy setting. Running `check/pytest` with this\r\noption enabled revealed quite a lot of warnings. The present commit\r\nchanges code in places where those warnings were raised, in an effort\r\nto eliminate as many of them as possible.\r\n\r\nIt is certainly the case that not all of the type promotion warnings\r\nare meaningful. Unfortunately, I found it sometimes difficult to be\r\nsure of which ones _are_ meaningful, in part because Cirq's code has\r\nmany layers and uses ndarrays a lot, and understanding the impact of a\r\ntype demotion (say, from `float64` to `float32`) was difficult for me\r\nto do. In view of this, I wanted to err on the side of caution and try\r\nto avoid losses of precision. The principles followed in the changes\r\nare roughly the following:\r\n\r\n* Don't worry about warnings about changes from `complex64` to\r\n `complex128`, as this obviously does not reduce precision.\r\n\r\n* If a warning involves an operation using an ndarray, change the code\r\n to try to get the actual data type of the data elements in the array\r\n rather than use a specific data type. This is the reason some of the\r\n changes look like the following, where it reaches into an ndarray to\r\n get the dtype of an element and then later uses the `.type()` method\r\n of that dtype to cast the value of something else:\r\n\r\n ```python\r\n dtype = args.target_tensor.flat[0].dtype\r\n .....\r\n args.target_tensor[subspace] *= dtype.type(x)\r\n ```\r\n\r\n* In cases where the above was not possible, or where it was obvious\r\n what the type must always be, the changes add type casts with\r\n explicit types like `complex(x)` or `np.float64(x)`.\r\n\r\nIt is likely that this approach resulted in some unnecessary\r\nup-promotion of values and may have impacted run-time performance.\r\nSome simple overall timing of `check/pytest` did not reveal a glaring\r\nnegative impact of the changes, but that doesn't mean real\r\napplications won't be impacted. Perhaps a future review can evaluate\r\nwhether speedups are possible.\r\n\r\n* NumPy 2 data promotion + minor refactoring\r\n\r\nThis commit for one file implements a minor refactoring of 3 test\r\nfunctions to make them all use similar idioms (for greater ease of\r\nreading) and to address the same NumPy 2 data promotion warnings for\r\nthe remaining files in commit eeeabeff.\r\n\r\n* Adjust dtypes per mypy warnings\r\n\r\nMypy flagged a couple of the previous data type declaration changes as\r\nbeing incompatible with expected types. Changing them to satisfy mypy\r\ndid not affect Numpy data type promotion warnings.\r\n\r\n* Fix Rigetti check for Aspen family device kind (#6734)\r\n\r\n* Sync with new API for checking device family in qcs-sdk-python,\r\n Ref: https://github.com/rigetti/qcs-sdk-rust/pull/463 in isa.pyi\r\n\r\n* Require qcs-sdk-python-0.20.1 which introduced the new family API\r\n\r\nFixes #6732\r\n\r\n* Adjustment for mypy: change 2 places where types are declared\r\n\r\nPytest was happy with the previous approach to declaring the value\r\ntypes in a couple of expressions, but mypy was not. This new version\r\nsatisfies both.\r\n\r\n* Avoid getting NumPy dtypes in printed (string) scalar values\r\n\r\nAs a consequence of [NEP\r\n51](https://numpy.org/neps/nep-0051-scalar-representation.html#nep51),\r\nthe string representation of scalar numbers changed in NumPy 2 to\r\ninclude type information. This affected printing Cirq circuit\r\ndiagrams: instead seeing numbers like 1.5, you would see\r\n`np.float64(1.5)` and similar.\r\n\r\nThe solution is to avoid getting the repr output of NumPy scalars\r\ndirectly, and instead doing `.item()` on them before passing them\r\nto `format()` or other string-producing functions.\r\n\r\n* Don't force Numpy 2; maintain compatibility with 1\r\n\r\nThe recent changes support NumPy 2 (as long as cirq-rigetti is removed\r\nmanually), but they don't require NumPy 2. We can maintain\r\ncompatibility with Numpy 1.x.\r\n\r\n* Bump serve-static and express in /cirq-web/cirq_ts (#6731)\r\n\r\nBumps [serve-static](https://github.com/expressjs/serve-static) and [express](https://github.com/expressjs/express). These dependencies needed to be updated together.\r\n\r\nUpdates `serve-static` from 1.15.0 to 1.16.2\r\n- [Release notes](https://github.com/expressjs/serve-static/releases)\r\n- [Changelog](https://github.com/expressjs/serve-static/blob/v1.16.2/HISTORY.md)\r\n- [Commits](https://github.com/expressjs/serve-static/compare/v1.15.0...v1.16.2)\r\n\r\nUpdates `express` from 4.19.2 to 4.21.0\r\n- [Release notes](https://github.com/expressjs/express/releases)\r\n- [Changelog](https://github.com/expressjs/express/blob/4.21.0/History.md)\r\n- [Commits](https://github.com/expressjs/express/compare/4.19.2...4.21.0)\r\n\r\n---\r\nupdated-dependencies:\r\n- dependency-name: serve-static\r\n dependency-type: indirect\r\n- dependency-name: express\r\n dependency-type: indirect\r\n...\r\n\r\nSigned-off-by: dependabot[bot] \r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\r\nCo-authored-by: Michael Hucka \r\n\r\n* Silence pytest warnings about asyncio fixture scope\r\n\r\nIn the current version of pytest (8.3.3) with the pytest-asyncio\r\nmodule version 0.24.0, we see the following warnings at the beginning\r\nof a pytest run:\r\n\r\n```\r\nwarnings.warn(PytestDeprecationWarning(_DEFAULT_FIXTURE_LOOP_SCOPE_UNSET))\r\n\r\n..../lib/python3.10/site-packages/pytest_asyncio/plugin.py:208:\r\nPytestDeprecationWarning: The configuration option\r\n\"asyncio_default_fixture_loop_scope\" is unset. The event loop scope for\r\nasynchronous fixtures will default to the fixture caching scope. Future\r\nversions of pytest-asyncio will default the loop scope for asynchronous\r\nfixtures to function scope. Set the default fixture loop scope explicitly in\r\norder to avoid unexpected behavior in the future. Valid fixture loop scopes\r\nare: \"function\", \"class\", \"module\", \"package\", \"session\"\r\n```\r\n\r\nA [currently-open issue and discussion over in the pytest-asyncio\r\nrepo](https://github.com/pytest-dev/pytest-asyncio/issues/924) suggests that\r\nthis is an undesired side-effect of a recent change in pytest-asyncio and is\r\nnot actually a significant warning. Moreover, the discussion suggests the\r\nwarning will be removed or changed in the future.\r\n\r\nIn the meantime, the warning is confusing because it makes it sound like\r\nsomething is wrong. This simple PR silences the warning by adding a suitable\r\npytest init flag to `pyproject.toml'.\r\n\r\n* Fix wrong number of arguments to reshape()\r\n\r\nFlagged by pylint.\r\n\r\n* Fix formatting issues flagged by check/format-incremental\r\n\r\n* Add coverage tests for changes in format_real()\r\n\r\n* Remove import of kahypar after all\r\n\r\nIn commit eb9836121303dbd05e9548fe90b6937a22d407a6 I added the import of kahypar, which (at least at the time) appeared to have been imported by Quimb. Double-checking this import in clean environments reveals that in fact, nothing depends on kahypar.\r\n\r\nTaking it out via a separate commit because right now this package is causing our GitHub actions for commit checks to fail, and I want to leave a record of what caused the failures and how they were resolved.\r\n\r\n* Simplify proper_repr\r\n\r\n* No need to use bool from builtins\r\n\r\n* Restore numpy casting to the state as in main\r\n\r\n* Fix failing test_run_repetitions_terminal_measurement_stochastic\r\n\r\nInstead of summing int8 ones count them.\r\n\r\n* Simplify CircuitDiagramInfoArgs.format_radians\r\n\r\nHandle np2 numeric types without outputting their dtype.\r\n\r\n* `.item()` already collapses dimensions and converts to int\r\n\r\n* Exclude cirq_rigetti from json_serialization_test when using numpy-2\r\n\r\nThis also enables the hash_from_pickle_test.py with numpy-2.\r\n\r\n* pytest - apply warn_numpy_data_promotion option before test collection\r\n\r\n* Add temporary requirements file for NumPy-2.0\r\n\r\n* Adjust requirements for cirq-core\r\n\r\n* allow numpy-1.24 which is still in the NEP-29 support window per\r\n https://numpy.org/neps/nep-0029-deprecation_policy.html\r\n\r\n* require `scipy~=1.8` as scipy-1.8 is the first version that has\r\n wheels for Python 3.10\r\n\r\n---------\r\n\r\nSigned-off-by: dependabot[bot] \r\nCo-authored-by: Pavol Juhas \r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>","shortMessageHtmlLink":"Fix #6706 – Update sources for compatibility with NumPy 2 (#6724)"}},{"before":"484df6f351e58e02cddfe4b3723c1565c7e6d1d9","after":"d15549c9e2d63307002e186ec3e3587492390c34","ref":"refs/heads/main","pushedAt":"2024-09-20T01:59:35.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mhucka","name":"Michael Hucka","path":"/mhucka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1450019?s=80&v=4"},"commit":{"message":"Exclude conftest.py files from enforcing changed-code coverage (#6738)\n\n* Exclude conftest.py files from enforcing changed-code coverage\r\n\r\nAvoid spurious CI failure due to missing coverage of changed conftest.py lines.\r\nconftest.py configures the pytest session. It is tricky and not worthwhile to\r\nensure it is test-covered.\r\n\r\n* Typo - missing comma","shortMessageHtmlLink":"Exclude conftest.py files from enforcing changed-code coverage (#6738)"}},{"before":"2fdee795214fe25bccb36c50fd5ac1d857d6d1fb","after":"484df6f351e58e02cddfe4b3723c1565c7e6d1d9","ref":"refs/heads/main","pushedAt":"2024-09-19T20:45:56.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mhucka","name":"Michael Hucka","path":"/mhucka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1450019?s=80&v=4"},"commit":{"message":"Silence pytest warnings about asyncio fixture scope (#6736)\n\nIn the current version of pytest (8.3.3) with the pytest-asyncio\r\nmodule version 0.24.0, we see the following warnings at the beginning\r\nof a pytest run:\r\n\r\n```\r\nwarnings.warn(PytestDeprecationWarning(_DEFAULT_FIXTURE_LOOP_SCOPE_UNSET))\r\n\r\n..../lib/python3.10/site-packages/pytest_asyncio/plugin.py:208:\r\nPytestDeprecationWarning: The configuration option\r\n\"asyncio_default_fixture_loop_scope\" is unset. The event loop scope for\r\nasynchronous fixtures will default to the fixture caching scope. Future\r\nversions of pytest-asyncio will default the loop scope for asynchronous\r\nfixtures to function scope. Set the default fixture loop scope explicitly in\r\norder to avoid unexpected behavior in the future. Valid fixture loop scopes\r\nare: \"function\", \"class\", \"module\", \"package\", \"session\"\r\n```\r\n\r\nA [currently-open issue and discussion over in the pytest-asyncio\r\nrepo](https://github.com/pytest-dev/pytest-asyncio/issues/924) suggests that\r\nthis is an undesired side-effect of a recent change in pytest-asyncio and is\r\nnot actually a significant warning. Moreover, the discussion suggests the\r\nwarning will be removed or changed in the future.\r\n\r\nIn the meantime, the warning is confusing because it makes it sound like\r\nsomething is wrong. This simple PR silences the warning by adding a suitable\r\npytest init flag to `pyproject.toml'.","shortMessageHtmlLink":"Silence pytest warnings about asyncio fixture scope (#6736)"}},{"before":"f5a58903542ac11107b1174e4c6a8b390c36be8d","after":null,"ref":"refs/heads/dependabot/npm_and_yarn/cirq-web/cirq_ts/multi-9423f4c335","pushedAt":"2024-09-18T22:01:33.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"}},{"before":"8bbfd27319f2911a6328cacf93e813ce1a8cd0ca","after":null,"ref":"refs/heads/dependabot/npm_and_yarn/cirq-web/cirq_ts/multi-d66d039ac5","pushedAt":"2024-09-18T22:01:00.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"}},{"before":"ad29fa87caa005ccd22fa5101d353fdb5230355c","after":"2fdee795214fe25bccb36c50fd5ac1d857d6d1fb","ref":"refs/heads/main","pushedAt":"2024-09-18T22:00:53.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"pavoljuhas","name":"Pavol Juhas","path":"/pavoljuhas","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1915760?s=80&v=4"},"commit":{"message":"Bump serve-static and express in /cirq-web/cirq_ts (#6731)\n\nBumps [serve-static](https://github.com/expressjs/serve-static) and [express](https://github.com/expressjs/express). These dependencies needed to be updated together.\r\n\r\nUpdates `serve-static` from 1.15.0 to 1.16.2\r\n- [Release notes](https://github.com/expressjs/serve-static/releases)\r\n- [Changelog](https://github.com/expressjs/serve-static/blob/v1.16.2/HISTORY.md)\r\n- [Commits](https://github.com/expressjs/serve-static/compare/v1.15.0...v1.16.2)\r\n\r\nUpdates `express` from 4.19.2 to 4.21.0\r\n- [Release notes](https://github.com/expressjs/express/releases)\r\n- [Changelog](https://github.com/expressjs/express/blob/4.21.0/History.md)\r\n- [Commits](https://github.com/expressjs/express/compare/4.19.2...4.21.0)\r\n\r\n---\r\nupdated-dependencies:\r\n- dependency-name: serve-static\r\n dependency-type: indirect\r\n- dependency-name: express\r\n dependency-type: indirect\r\n...\r\n\r\nSigned-off-by: dependabot[bot] \r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\r\nCo-authored-by: Michael Hucka ","shortMessageHtmlLink":"Bump serve-static and express in /cirq-web/cirq_ts (#6731)"}},{"before":"6e1ed065bc17d4a1babc210bd786ab9ad857c394","after":"8bbfd27319f2911a6328cacf93e813ce1a8cd0ca","ref":"refs/heads/dependabot/npm_and_yarn/cirq-web/cirq_ts/multi-d66d039ac5","pushedAt":"2024-09-18T21:30:22.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"mhucka","name":"Michael Hucka","path":"/mhucka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1450019?s=80&v=4"},"commit":{"message":"Merge branch 'main' into dependabot/npm_and_yarn/cirq-web/cirq_ts/multi-d66d039ac5","shortMessageHtmlLink":"Merge branch 'main' into dependabot/npm_and_yarn/cirq-web/cirq_ts/mul…"}},{"before":null,"after":"f5a58903542ac11107b1174e4c6a8b390c36be8d","ref":"refs/heads/dependabot/npm_and_yarn/cirq-web/cirq_ts/multi-9423f4c335","pushedAt":"2024-09-18T20:52:27.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"},"commit":{"message":"Bump body-parser and express in /cirq-web/cirq_ts\n\nBumps [body-parser](https://github.com/expressjs/body-parser) and [express](https://github.com/expressjs/express). These dependencies needed to be updated together.\n\nUpdates `body-parser` from 1.20.2 to 1.20.3\n- [Release notes](https://github.com/expressjs/body-parser/releases)\n- [Changelog](https://github.com/expressjs/body-parser/blob/master/HISTORY.md)\n- [Commits](https://github.com/expressjs/body-parser/compare/1.20.2...1.20.3)\n\nUpdates `express` from 4.19.2 to 4.21.0\n- [Release notes](https://github.com/expressjs/express/releases)\n- [Changelog](https://github.com/expressjs/express/blob/4.21.0/History.md)\n- [Commits](https://github.com/expressjs/express/compare/4.19.2...4.21.0)\n\n---\nupdated-dependencies:\n- dependency-name: body-parser\n dependency-type: indirect\n- dependency-name: express\n dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"Bump body-parser and express in /cirq-web/cirq_ts"}},{"before":"d74e0dce73adf45f15b873bf28236ef355d960ce","after":"ad29fa87caa005ccd22fa5101d353fdb5230355c","ref":"refs/heads/main","pushedAt":"2024-09-18T20:51:35.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"pavoljuhas","name":"Pavol Juhas","path":"/pavoljuhas","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1915760?s=80&v=4"},"commit":{"message":"Fix Rigetti check for Aspen family device kind (#6734)\n\n* Sync with new API for checking device family in qcs-sdk-python,\r\n Ref: https://github.com/rigetti/qcs-sdk-rust/pull/463 in isa.pyi\r\n\r\n* Require qcs-sdk-python-0.20.1 which introduced the new family API\r\n\r\nFixes #6732","shortMessageHtmlLink":"Fix Rigetti check for Aspen family device kind (#6734)"}},{"before":"2adc218981ffc7622a8bffb2ef09da0864dd49c0","after":"d74e0dce73adf45f15b873bf28236ef355d960ce","ref":"refs/heads/main","pushedAt":"2024-09-17T19:34:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"BichengYing","name":"Bicheng Ying","path":"/BichengYing","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16711681?s=80&v=4"},"commit":{"message":"Add support for const sweep with None (#6729)\n\n* Add support for const sweep with None\r\n\r\n* Fix the test\r\n\r\n* Fix the test coverage\r\n\r\n* Fix the test coverage\r\n\r\n* Address the comment\r\n\r\n* Use const for all single sweep\r\n\r\n* Add more test for constant\r\n\r\n* Fix typecheck\r\n\r\n* Fix the lint","shortMessageHtmlLink":"Add support for const sweep with None (#6729)"}},{"before":null,"after":"6e1ed065bc17d4a1babc210bd786ab9ad857c394","ref":"refs/heads/dependabot/npm_and_yarn/cirq-web/cirq_ts/multi-d66d039ac5","pushedAt":"2024-09-17T11:10:39.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"},"commit":{"message":"Bump serve-static and express in /cirq-web/cirq_ts\n\nBumps [serve-static](https://github.com/expressjs/serve-static) and [express](https://github.com/expressjs/express). These dependencies needed to be updated together.\n\nUpdates `serve-static` from 1.15.0 to 1.16.2\n- [Release notes](https://github.com/expressjs/serve-static/releases)\n- [Changelog](https://github.com/expressjs/serve-static/blob/v1.16.2/HISTORY.md)\n- [Commits](https://github.com/expressjs/serve-static/compare/v1.15.0...v1.16.2)\n\nUpdates `express` from 4.19.2 to 4.21.0\n- [Release notes](https://github.com/expressjs/express/releases)\n- [Changelog](https://github.com/expressjs/express/blob/4.21.0/History.md)\n- [Commits](https://github.com/expressjs/express/compare/4.19.2...4.21.0)\n\n---\nupdated-dependencies:\n- dependency-name: serve-static\n dependency-type: indirect\n- dependency-name: express\n dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"Bump serve-static and express in /cirq-web/cirq_ts"}},{"before":"9edb957e9c4df931440c4e99441c4a23b144d53f","after":"2adc218981ffc7622a8bffb2ef09da0864dd49c0","ref":"refs/heads/main","pushedAt":"2024-09-11T23:49:05.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"pavoljuhas","name":"Pavol Juhas","path":"/pavoljuhas","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1915760?s=80&v=4"},"commit":{"message":"Implement and enforce explicit re-export for cirq modules (#6722)\n\n* Enable and enforce the `no_implicit_reexport` mypy rule for cirq modules\r\n* Update `__init__.py` files so they explicitly re-export public symbols, but\r\n do not re-export local symbols or submodules already in parent namespace\r\n* Fix few instances of imports from incorrect modules\r\n\r\nFixes #6717\r\n---------\r\n\r\nCo-authored-by: Pavol Juhas ","shortMessageHtmlLink":"Implement and enforce explicit re-export for cirq modules (#6722)"}},{"before":"32fd34f767c14953abd9fb42331cd708f3716ae0","after":null,"ref":"refs/heads/dependabot/npm_and_yarn/cirq-web/cirq_ts/multi-962407646f","pushedAt":"2024-09-07T07:42:26.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"}},{"before":"ae028fe2e7afda2819158e01f4b29e41d2789d74","after":"9edb957e9c4df931440c4e99441c4a23b144d53f","ref":"refs/heads/main","pushedAt":"2024-09-07T07:42:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"pavoljuhas","name":"Pavol Juhas","path":"/pavoljuhas","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1915760?s=80&v=4"},"commit":{"message":"Bump tough-cookie and npm in /cirq-web/cirq_ts (#6721)\n\nBumps [tough-cookie](https://github.com/salesforce/tough-cookie) to 4.1.4 and updates ancestor dependency [npm](https://github.com/npm/cli). These dependencies need to be updated together.\r\n\r\n\r\nUpdates `tough-cookie` from 2.5.0 to 4.1.4\r\n- [Release notes](https://github.com/salesforce/tough-cookie/releases)\r\n- [Changelog](https://github.com/salesforce/tough-cookie/blob/master/CHANGELOG.md)\r\n- [Commits](https://github.com/salesforce/tough-cookie/compare/v2.5.0...v4.1.4)\r\n\r\nUpdates `npm` from 7.24.2 to 10.8.3\r\n- [Release notes](https://github.com/npm/cli/releases)\r\n- [Changelog](https://github.com/npm/cli/blob/latest/CHANGELOG.md)\r\n- [Commits](https://github.com/npm/cli/compare/v7.24.2...v10.8.3)\r\n\r\n---\r\nupdated-dependencies:\r\n- dependency-name: tough-cookie\r\n dependency-type: indirect\r\n- dependency-name: npm\r\n dependency-type: direct:development\r\n...\r\n\r\nSigned-off-by: dependabot[bot] \r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>","shortMessageHtmlLink":"Bump tough-cookie and npm in /cirq-web/cirq_ts (#6721)"}},{"before":"9542c46f227f1d19886a6779e6e8ebd5d9558dc4","after":"32fd34f767c14953abd9fb42331cd708f3716ae0","ref":"refs/heads/dependabot/npm_and_yarn/cirq-web/cirq_ts/multi-962407646f","pushedAt":"2024-09-07T04:09:09.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"},"commit":{"message":"Bump tough-cookie and npm in /cirq-web/cirq_ts\n\nBumps [tough-cookie](https://github.com/salesforce/tough-cookie) to 4.1.4 and updates ancestor dependency [npm](https://github.com/npm/cli). These dependencies need to be updated together.\n\n\nUpdates `tough-cookie` from 2.5.0 to 4.1.4\n- [Release notes](https://github.com/salesforce/tough-cookie/releases)\n- [Changelog](https://github.com/salesforce/tough-cookie/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/salesforce/tough-cookie/compare/v2.5.0...v4.1.4)\n\nUpdates `npm` from 7.24.2 to 10.8.3\n- [Release notes](https://github.com/npm/cli/releases)\n- [Changelog](https://github.com/npm/cli/blob/latest/CHANGELOG.md)\n- [Commits](https://github.com/npm/cli/compare/v7.24.2...v10.8.3)\n\n---\nupdated-dependencies:\n- dependency-name: tough-cookie\n dependency-type: indirect\n- dependency-name: npm\n dependency-type: direct:development\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"Bump tough-cookie and npm in /cirq-web/cirq_ts"}},{"before":"9e672711fa1c8969d1ab171534b7ab0372dcebab","after":null,"ref":"refs/heads/dependabot/npm_and_yarn/cirq-web/cirq_ts/webpack-5.94.0","pushedAt":"2024-09-07T04:08:26.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"}},{"before":"19af193e4c9308052a945582e7d57ddf4eb13215","after":"ae028fe2e7afda2819158e01f4b29e41d2789d74","ref":"refs/heads/main","pushedAt":"2024-09-07T04:08:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mhucka","name":"Michael Hucka","path":"/mhucka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1450019?s=80&v=4"},"commit":{"message":"Bump webpack from 5.76.0 to 5.94.0 in /cirq-web/cirq_ts (#6715)\n\n* Bump webpack from 5.76.0 to 5.94.0 in /cirq-web/cirq_ts\r\n\r\nBumps [webpack](https://github.com/webpack/webpack) from 5.76.0 to 5.94.0.\r\n- [Release notes](https://github.com/webpack/webpack/releases)\r\n- [Commits](https://github.com/webpack/webpack/compare/v5.76.0...v5.94.0)\r\n\r\n---\r\nupdated-dependencies:\r\n- dependency-name: webpack\r\n dependency-type: direct:development\r\n...\r\n\r\nSigned-off-by: mhucka@google.com\r\n\r\n* Make step names match up to what they're actually doing\r\n\r\n* Name all steps for improved debugability\r\n\r\n* Require version 20+ of Node in package.json\r\n\r\n* Update package-lock.json for changes in package.json\r\n\r\n---------\r\n\r\nSigned-off-by: dependabot[bot] \r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\r\nCo-authored-by: Michael Hucka ","shortMessageHtmlLink":"Bump webpack from 5.76.0 to 5.94.0 in /cirq-web/cirq_ts (#6715)"}},{"before":null,"after":"9e672711fa1c8969d1ab171534b7ab0372dcebab","ref":"refs/heads/dependabot/npm_and_yarn/cirq-web/cirq_ts/webpack-5.94.0","pushedAt":"2024-09-07T03:51:16.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"mhucka","name":"Michael Hucka","path":"/mhucka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1450019?s=80&v=4"},"commit":{"message":"Update package-lock.json for changes in package.json","shortMessageHtmlLink":"Update package-lock.json for changes in package.json"}},{"before":"9e672711fa1c8969d1ab171534b7ab0372dcebab","after":null,"ref":"refs/heads/dependabot/npm_and_yarn/cirq-web/cirq_ts/webpack-5.94.0","pushedAt":"2024-09-07T03:50:42.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"}},{"before":"b761a2298d0d3fefd18eb3664a56bdaf66bf086d","after":"9e672711fa1c8969d1ab171534b7ab0372dcebab","ref":"refs/heads/dependabot/npm_and_yarn/cirq-web/cirq_ts/webpack-5.94.0","pushedAt":"2024-09-07T03:28:37.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"mhucka","name":"Michael Hucka","path":"/mhucka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1450019?s=80&v=4"},"commit":{"message":"Update package-lock.json for changes in package.json","shortMessageHtmlLink":"Update package-lock.json for changes in package.json"}},{"before":"6befe4521c78a6867d28ef42f2d9fec0817f9e3e","after":"b761a2298d0d3fefd18eb3664a56bdaf66bf086d","ref":"refs/heads/dependabot/npm_and_yarn/cirq-web/cirq_ts/webpack-5.94.0","pushedAt":"2024-09-07T02:25:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mhucka","name":"Michael Hucka","path":"/mhucka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1450019?s=80&v=4"},"commit":{"message":"Name all steps for improved debugability","shortMessageHtmlLink":"Name all steps for improved debugability"}},{"before":"40d8188ef839c91b84a9677318e44ba754033671","after":"6befe4521c78a6867d28ef42f2d9fec0817f9e3e","ref":"refs/heads/dependabot/npm_and_yarn/cirq-web/cirq_ts/webpack-5.94.0","pushedAt":"2024-09-07T02:10:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mhucka","name":"Michael Hucka","path":"/mhucka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1450019?s=80&v=4"},"commit":{"message":"Make step names match up to what they're actually doing","shortMessageHtmlLink":"Make step names match up to what they're actually doing"}},{"before":"ea07929d2dc63586ab38b06c9d5d3a32344dbe9a","after":"40d8188ef839c91b84a9677318e44ba754033671","ref":"refs/heads/dependabot/npm_and_yarn/cirq-web/cirq_ts/webpack-5.94.0","pushedAt":"2024-09-07T00:09:12.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"mhucka","name":"Michael Hucka","path":"/mhucka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1450019?s=80&v=4"},"commit":{"message":"chore: merge branch","shortMessageHtmlLink":"chore: merge branch"}},{"before":null,"after":"9542c46f227f1d19886a6779e6e8ebd5d9558dc4","ref":"refs/heads/dependabot/npm_and_yarn/cirq-web/cirq_ts/multi-962407646f","pushedAt":"2024-09-06T23:51:31.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"},"commit":{"message":"Bump tough-cookie and npm in /cirq-web/cirq_ts\n\nBumps [tough-cookie](https://github.com/salesforce/tough-cookie) to 4.1.4 and updates ancestor dependency [npm](https://github.com/npm/cli). These dependencies need to be updated together.\n\n\nUpdates `tough-cookie` from 2.5.0 to 4.1.4\n- [Release notes](https://github.com/salesforce/tough-cookie/releases)\n- [Changelog](https://github.com/salesforce/tough-cookie/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/salesforce/tough-cookie/compare/v2.5.0...v4.1.4)\n\nUpdates `npm` from 7.24.2 to 10.8.3\n- [Release notes](https://github.com/npm/cli/releases)\n- [Changelog](https://github.com/npm/cli/blob/latest/CHANGELOG.md)\n- [Commits](https://github.com/npm/cli/compare/v7.24.2...v10.8.3)\n\n---\nupdated-dependencies:\n- dependency-name: tough-cookie\n dependency-type: indirect\n- dependency-name: npm\n dependency-type: direct:development\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"Bump tough-cookie and npm in /cirq-web/cirq_ts"}},{"before":"f56a799c4dff188df9cb91c2de524a7953938e48","after":"19af193e4c9308052a945582e7d57ddf4eb13215","ref":"refs/heads/main","pushedAt":"2024-09-06T23:50:43.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mhucka","name":"Michael Hucka","path":"/mhucka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1450019?s=80&v=4"},"commit":{"message":"Update node dependencies & generate bundled JavaScript files (#6720)\n\n* Update package.json to work for recent version of node\r\n\r\nDoing an `npm install` in `cirq-web/cirq_ts` failed due to a\r\ndependency being impossible to reconcile. Specifically, the\r\nconstraints on the version of `ts-mocha` specified in file\r\n`cirq-web/cirq_ts/package.json` could not be reconciled with the\r\nconstraints that arose from another package required by\r\n`package.json`. Increasing the minimum version of `ts-mocha` made it\r\npossible to run `npm install`.\r\n\r\nNote: on Apple Silicon machines and MacOS, the `canvas` package will\r\nfail to install because of missing dependencies unless you install the\r\nCairo package. Here is an example installation command using Homebrew:\r\n\r\n```\r\nbrew install pkg-config cairo pango libpng jpeg giflib librsvg\r\n```\r\n\r\nThis must be done before running `npm install`. (Tested on MacOS\r\n14.6.1.)\r\n\r\n* Update package-lock.json to go with updated package.json\r\n\r\nThis package-lock.json file is what resulted after running `npm\r\ninstall`, after making the change to `package.json` to increase the\r\nversion of `ts-mocha`.\r\n\r\n* Update distributed versions of .js files\r\n\r\nThese are the files produced by running\r\n\r\n```\r\nnpx webpack --mode production\r\n```\r\n\r\nas described in the section on _Creating visualization bundle files_\r\nin the subdirectory `cirq-web/cirq-ts`.\r\n\r\n* Update version of node used in ci.yml\r\n\r\nThe file `ci.yml` had specified Node version 14, which is very old;\r\nGitHub officially deprecated version 16 in 2023 (c.f.\r\nhttps://nodejs.org/en/blog/announcements/nodejs16-eol). This \r\ncommit updates `ci.yml` to use version 20.17.0, which is the\r\ncurrent LTS version.","shortMessageHtmlLink":"Update node dependencies & generate bundled JavaScript files (#6720)"}},{"before":"18b9506c49dd799adb13fe62c458bf100faa7ba1","after":"ea07929d2dc63586ab38b06c9d5d3a32344dbe9a","ref":"refs/heads/dependabot/npm_and_yarn/cirq-web/cirq_ts/webpack-5.94.0","pushedAt":"2024-09-06T18:46:07.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"mhucka","name":"Michael Hucka","path":"/mhucka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1450019?s=80&v=4"},"commit":{"message":"Merge branch 'main' into dependabot/npm_and_yarn/cirq-web/cirq_ts/webpack-5.94.0","shortMessageHtmlLink":"Merge branch 'main' into dependabot/npm_and_yarn/cirq-web/cirq_ts/web…"}},{"before":"f0ead96aea07df8b1be290aafb7273254707b4cb","after":"f56a799c4dff188df9cb91c2de524a7953938e48","ref":"refs/heads/main","pushedAt":"2024-09-04T00:04:22.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"kmlau","name":"K M Lau","path":"/kmlau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1931798?s=80&v=4"},"commit":{"message":"introduce a generic value type for DeviceParametersDiff proto (#6712)\n\n* introduce a generic value type for DeviceParametersDiff proto\r\n\r\n* fix lint and typecheck\r\n\r\n* adjust proto field id","shortMessageHtmlLink":"introduce a generic value type for DeviceParametersDiff proto (#6712)"}},{"before":"e16d88677db2785972796dad7f8cf32b3020d08e","after":"f0ead96aea07df8b1be290aafb7273254707b4cb","ref":"refs/heads/main","pushedAt":"2024-08-30T23:57:33.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"pavoljuhas","name":"Pavol Juhas","path":"/pavoljuhas","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1915760?s=80&v=4"},"commit":{"message":"Limit maximum multiprocessing pool size in xeb tests (#6713)\n\nProblem: `multiprocessing.Pool()` uses all available cores which can\r\ncause problems on hardware with many cores.\r\n\r\nSolution: Limit the maximum pool size to 4.","shortMessageHtmlLink":"Limit maximum multiprocessing pool size in xeb tests (#6713)"}},{"before":"8354ad80d5e52f24dba31d6b9cc09b44772122a3","after":null,"ref":"refs/heads/eliottrosenberg-patch-1","pushedAt":"2024-08-30T21:19:18.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"eliottrosenberg","name":null,"path":"/eliottrosenberg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/61400172?s=80&v=4"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0yMFQyMzo1NjozNy4wMDAwMDBazwAAAAS8cqEn","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0yMFQyMzo1NjozNy4wMDAwMDBazwAAAAS8cqEn","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOC0zMFQyMToxOToxOC4wMDAwMDBazwAAAASpDLxu"}},"title":"Activity · quantumlib/Cirq"}