)]}'
{
  "log": [
    {
      "commit": "5acdc0b601f1c5adb303cfde50e0f04296f6a9ff",
      "tree": "9aa6b4969c1a2f10e88a1bee3ebd9bce26d7047e",
      "parents": [
        "ecc43696922ee2988932f3adaf09609842ecccc1"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Mon Jul 01 19:30:39 2024 +0000"
      },
      "committer": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Mon Jul 01 19:30:39 2024 +0000"
      },
      "message": "Fix update_crate_tests.py by removing bp2build\n\nbp2build is no longer a valid build target, but queryview seems\nto work without it now. So remove this step when updating TEST_MAPPING\nfiles.\n\nBug: 335629730\nTest: generated TEST_MAPPING for serde; output looks reasonable.\n      See aosp/3155395\nChange-Id: I634f36747b5822e27349d3b81e7426a811760094\n"
    },
    {
      "commit": "f5d35c56b1567b3834b0c25c56401aaef62e36dd",
      "tree": "5cbf0edbcf429ae773f8356814ab24d98d805a8a",
      "parents": [
        "72ff9e98f01818980e319f8c39c5083a8066c7ba",
        "d5494bcdf18ee01a839feca6741bd03cb71ba77a"
      ],
      "author": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Fri May 24 20:06:33 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 24 20:06:33 2024 +0000"
      },
      "message": "Merge \"Remove unused code\" into main"
    },
    {
      "commit": "d5494bcdf18ee01a839feca6741bd03cb71ba77a",
      "tree": "5d19259433a31c9e59465d6afe68a5e909e80bfc",
      "parents": [
        "265686211d07e6c1e4a999212340f4e2e6cd6572"
      ],
      "author": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Fri May 24 10:03:27 2024 -0700"
      },
      "committer": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Fri May 24 10:03:27 2024 -0700"
      },
      "message": "Remove unused code\n\nChange-Id: I9f8cdf2e4daebb6590a29f42d9ca34355c125801\n"
    },
    {
      "commit": "a5fb4533fbbf930bdda8de99cfb10e295ddb25ad",
      "tree": "14c3f5ae73fbc82caa71376fd3deaf654f404b52",
      "parents": [
        "55ab781f743f6ee7c8659e09b6bffaa0cd3cacb2"
      ],
      "author": {
        "name": "Garfield Tan",
        "email": "xutan@google.com",
        "time": "Fri May 17 21:07:35 2024 +0000"
      },
      "committer": {
        "name": "Garfield Tan",
        "email": "xutan@google.com",
        "time": "Fri May 17 14:21:04 2024 -0700"
      },
      "message": "Use JSON format of llvm-symbolizer\n\nThe LLVM webpage of llvm-symbolizer[1] demonstrates outputs in JSON\nformat as the machine readable format.\n\n[1]: https://llvm.org/docs/CommandGuide/llvm-symbolizer.html\n\nBug: None\nTest: stack with a local stack trace\nTest: python3 symbol.py\nChange-Id: Iee6b8805510f5f8569b0a454849fc2e4ffb6d510\n"
    },
    {
      "commit": "32e66fcceb182ef5d13d98f67d1ba4fc27ce6e1f",
      "tree": "e70d29183b693458756fbb0bc726e50a2f6b848e",
      "parents": [
        "5c05085a502e2125e49dda7ab829cd8319930941",
        "cfff4e343b6678a9a8ada6304b3856258bc1190a"
      ],
      "author": {
        "name": "Nikita Putikhin",
        "email": "nputikhin@google.com",
        "time": "Tue Apr 23 08:52:54 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 23 08:52:54 2024 +0000"
      },
      "message": "Merge \"Add --cwd parameter to set debuggee working directory in lldbclient\" into main"
    },
    {
      "commit": "42d7e790c282d32d26eece088e7009d44a012731",
      "tree": "019a7cbf01988a25724b5b61a6faa065768e9987",
      "parents": [
        "9d542ec7d152fddb550d10468c6bb2b7027948e7",
        "39087ca87f192f9550c7c4a5ca1c9aeee573ff03"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Apr 22 17:14:29 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 22 17:14:29 2024 +0000"
      },
      "message": "Merge \"Migrate Test Targets to New Android Ownership Model\" into main"
    },
    {
      "commit": "cfff4e343b6678a9a8ada6304b3856258bc1190a",
      "tree": "02e1f8af97f1b6701cc7a69619f6c671e309212e",
      "parents": [
        "9d542ec7d152fddb550d10468c6bb2b7027948e7"
      ],
      "author": {
        "name": "Nikita Putikhin",
        "email": "nputikhin@google.com",
        "time": "Mon Apr 22 13:04:45 2024 +0200"
      },
      "committer": {
        "name": "Nikita Putikhin",
        "email": "nputikhin@google.com",
        "time": "Mon Apr 22 13:14:19 2024 +0200"
      },
      "message": "Add --cwd parameter to set debuggee working directory in lldbclient\n\nSetting the working direcotry is useful for binaries that expect to be\nrun from a specific folder. In particular, this allows to debug target\nintegration tests with data files, since they expect these files to be\navailable by relative paths.\n\nTest: lldbclient.py /data/ -r pwd # prints /\n      lldbclient.py --cwd /data/ -r pwd # prints /data\n      lldbclient.py --cwd /data/ --chroot / -r pwd # exits with error\n      lldbclient.py --cwd /invalid_path -r pwd # exits with error\nChange-Id: I9d1002c28219028d0120df3b9620e09030d1361e\n"
    },
    {
      "commit": "de979840b967c8e3af9445dc4536093e4dd3af50",
      "tree": "dbae4cadf5724c6fe20efd18215628e2e0787dd7",
      "parents": [
        "f9133cdaf7b3584eb69f1c0e9ec11b352170067e"
      ],
      "author": {
        "name": "Per Larsen",
        "email": "perlarsen@google.com",
        "time": "Sat Apr 06 02:48:36 2024 +0000"
      },
      "committer": {
        "name": "Per Larsen",
        "email": "perlarsen@google.com",
        "time": "Sat Apr 06 02:48:36 2024 +0000"
      },
      "message": "cargo2rulesmk.py: Build with cap-lints allow\n\nMake sure we can generate rules for crates even if they are not\nlinter clean and request to have linter issues treated as errors.\n\nTest: cd external/rust/crates/serde \u0026\u0026 path/to/cargo2rulesmk.py --run\nBug: None\nChange-Id: Ifc40a9e21494c571f598f3d407fe394fcfffb9b3\n"
    },
    {
      "commit": "f8efa36919bc4d23f1fbae5318aa4cc079eb15ac",
      "tree": "17507edda76133707faead63a0f92460fd6d13bc",
      "parents": [
        "952c10f586fd9e94e306f1f42c3426ae628d86c1"
      ],
      "author": {
        "name": "Prashanth Swaminathan",
        "email": "prashanthsw@google.com",
        "time": "Wed Mar 13 10:07:46 2024 -0700"
      },
      "committer": {
        "name": "Prashanth Swaminathan",
        "email": "prashanthsw@google.com",
        "time": "Wed Mar 13 17:27:38 2024 +0000"
      },
      "message": "Suggest running gdb-remote again on failure\n\nThe lldbclient script has a race condition where it starts lldb-server\non the device and runs the client in quick succession, resulting in the\nclient attempting to perform the handshake before the server has had\ntime to fully start.\n\nUntil a mechanism is found to retry the connection automatically or\notherwise block on lldb-server being ready, add a comment suggesting the\nuser retry gdb-remote manually. This occurs most frequently on the\nRISC-V Cuttlefish emulator, where the first attempt of `gdb-remote`\ntends to fail and the second attempt almost always passes.\n\nTest: python3 development/scripts/lldbclient.py --port 1234 -r /system/bin/date\nTest: Verified print of comment when running client script.\nChange-Id: I2c80344a586ad1b54ab9759b40e4e9db46f49084\n"
    },
    {
      "commit": "39087ca87f192f9550c7c4a5ca1c9aeee573ff03",
      "tree": "f9a828e9640e421371be85914536a6bdd9241314",
      "parents": [
        "f148c99aed82a0ff0e92a9b6dc057b3fd547979b"
      ],
      "author": {
        "name": "Aditya Choudhary",
        "email": "caditya@google.com",
        "time": "Fri Feb 02 13:58:27 2024 +0000"
      },
      "committer": {
        "name": "Aditya Choudhary",
        "email": "caditya@google.com",
        "time": "Mon Mar 04 20:16:04 2024 +0000"
      },
      "message": "Migrate Test Targets to New Android Ownership Model\n\nThis CL is created as a best effort to migrate test targets to the new Android ownership model.\nIt is based on historical data from repository history and insights from git blame.\nGiven the nature of this effort, there may be instances of incorrect attribution. If you find incorrect or unnecessary\nattribution in this CL, please create a new CL to fix that.\n\nFor detailed guidelines and further information on the migration please refer to the link below,\ngo/new-android-ownership-model\n\nBug: 304529413\nTest: N/A\nChange-Id: I2248f2ba4699ca3f78dedd752aaa536dccaf4327\n"
    },
    {
      "commit": "a278b15cda8a07a97686370cb5e944fb4f6bc824",
      "tree": "5e5c348047ae5adb56d01a68c79dbfc810909b79",
      "parents": [
        "299e46aaf1c89b6380660cbffeea9caf7593d072"
      ],
      "author": {
        "name": "Matt Schulte",
        "email": "matsch@google.com",
        "time": "Tue Jan 23 15:55:53 2024 -0800"
      },
      "committer": {
        "name": "Matt Schulte",
        "email": "matsch@google.com",
        "time": "Tue Jan 23 15:55:53 2024 -0800"
      },
      "message": "add3prf.py: Update value for crates.io identifier\n\nAccording to go/thirdparty/metadata#identifier\n\n\u003e The identifier field is used to enable this functionality. The type\n\u003e field should correspond to one of OSV\u0027s defined ecosystems or one of the\n\u003e google internal types. Select the identifier type which matches where\n\u003e the package was obtained before importing to Piper. The value should be\n\u003e the name of the package as defined within that ecosystem - see the\n\u003e examples below.\n\nThe OSV\u0027s defined ecosystem is here:\nhttps://ossf.github.io/osv-schema/#affectedpackage-field\n\nFor \"crates.io\" the table says the name field should be the crate name.\n\nBug: 322046255\nTest: N/A\nChange-Id: I3647614f4e9a5157743bf907366cbeaf0c4ed74a\n"
    },
    {
      "commit": "1ef53f9a54e49a1de89527f35410bb67459a22cf",
      "tree": "4dd3c7f725b4219bdb0610c3af7068022009109a",
      "parents": [
        "b35e61fd556aa75cc80656c8063a48c93998bf87"
      ],
      "author": {
        "name": "Matt Schulte",
        "email": "matsch@google.com",
        "time": "Tue Jan 23 11:16:33 2024 -0800"
      },
      "committer": {
        "name": "Matt Schulte",
        "email": "matsch@google.com",
        "time": "Tue Jan 23 11:50:53 2024 -0800"
      },
      "message": "add3prf.py: Add detection of LICENSE-BSD file\n\nAdd the ability to detect a BSD_LIKE license based on the existance of\nLICENSE-BSD file (just like LICENSE-MIT).\n\nBug: 321983331\nTest: Added unit test and tested against the zerocopy crate\nChange-Id: I694a858e33d0c2e6865e4fae77a0287d215076fe\n"
    },
    {
      "commit": "67924d1dd02f91a6775f7c1f3d8f8c26decb833c",
      "tree": "99e7a476cc5b65ad197dcaac2123f594db654a30",
      "parents": [
        "61852053f28cc8fe6c40d2abd6f0e874ea68658d"
      ],
      "author": {
        "name": "Matt Schulte",
        "email": "matsch@google.com",
        "time": "Thu Jan 18 15:37:24 2024 -0800"
      },
      "committer": {
        "name": "Matt Schulte",
        "email": "matsch@google.com",
        "time": "Thu Jan 18 15:37:24 2024 -0800"
      },
      "message": "add3prf.py: Add support for Boost license\n\nBug: 321067451\nTest: Run against `ryu-1.0.15` crate and add unit test\nChange-Id: Ie37e173e73bc0b3c75dd6d83f8c0ef48e428a395\n"
    },
    {
      "commit": "61852053f28cc8fe6c40d2abd6f0e874ea68658d",
      "tree": "7c34310e5602e23c372bfc134ec44f6f6ec0135f",
      "parents": [
        "52e1d5a7e4a372aaf0a04cc88bca1a46f93f61d7"
      ],
      "author": {
        "name": "Matt Schulte",
        "email": "matsch@google.com",
        "time": "Thu Jan 18 15:33:30 2024 -0800"
      },
      "committer": {
        "name": "Matt Schulte",
        "email": "matsch@google.com",
        "time": "Thu Jan 18 15:35:16 2024 -0800"
      },
      "message": "add3prf.py: Add support for zlib license detection\n\nBug: 321066417\nTest: Run add3prf.py against tinyvec-1.6.0 and added unit tests\nChange-Id: I824f93a0335c8d8de13b11df9efe6775a02870f2\n"
    },
    {
      "commit": "52e1d5a7e4a372aaf0a04cc88bca1a46f93f61d7",
      "tree": "166fcf656278087097a04ceffa2b43bb167596e7",
      "parents": [
        "46ab4f81bb7811786bf7aeaadbed80bb37dd4343"
      ],
      "author": {
        "name": "Matt Schulte",
        "email": "matsch@google.com",
        "time": "Thu Jan 18 15:30:30 2024 -0800"
      },
      "committer": {
        "name": "Matt Schulte",
        "email": "matsch@google.com",
        "time": "Thu Jan 18 15:30:30 2024 -0800"
      },
      "message": "add3prf.py: Support license files with extensions\n\nSome crates place there license files in files with extensions, such as\nLICENSE.txt or LICENSE-MIT.md.\n\nWe should account for extensions by removing them.\n\nBug: 321064939\nTest: Ran script against `minimal-lexical-0.2.1` crate and added unit\n      tests\nChange-Id: I0c385e8209969c0900909e764460fc551f07c20c\n"
    },
    {
      "commit": "46ab4f81bb7811786bf7aeaadbed80bb37dd4343",
      "tree": "7835fd26c4d4d5057d941e34c364353e60b126ae",
      "parents": [
        "7e2c49eff3068c85529dabf4c9cfec109aaafbfb"
      ],
      "author": {
        "name": "Matt Schulte",
        "email": "matsch@google.com",
        "time": "Thu Jan 18 15:17:26 2024 -0800"
      },
      "committer": {
        "name": "Matt Schulte",
        "email": "matsch@google.com",
        "time": "Thu Jan 18 15:17:26 2024 -0800"
      },
      "message": "Set `primary_source` for idenfitier in add3prf.py\n\nIn METADATA (go/thirdparty/metadata) there is an identifier required for\neach package. Our script currently contains 2 identifier and therefore\nit\u0027s unclear where we actually downloaded the package from.\n\nTherefore, we need to set a `primary_source` marker. To quote the docs:\n\n\u003e The identifier that is the source of truth for the package should be marked with primary_source: true.\n\nBug: 321065092\nTest: N/A\nChange-Id: I39cb4ad842f0930d964d1f2b814d0f60d23d00bb\n"
    },
    {
      "commit": "70d3787bf9e0006041a7a218b9bb3b277d2a6b6f",
      "tree": "dcd2bb9514a27ce2a9fb080e8d310c08e75bc758",
      "parents": [
        "dc81f943eafa3721fba83ebb5f0a6ab6c01c2a83"
      ],
      "author": {
        "name": "Per Larsen",
        "email": "perlarsen@google.com",
        "time": "Fri Jan 12 03:34:29 2024 +0000"
      },
      "committer": {
        "name": "Per Larsen",
        "email": "perlarsen@google.com",
        "time": "Fri Jan 12 03:36:58 2024 +0000"
      },
      "message": "cargo2rulesmk.py: ignore target-specific dependencies\n\nThe trusty rules.mk files should be target agnostic so\nwe simply ignore any dependencies that are specific to\na given target.\n\nBug: 306066627\nTest: manually, run cargo2rulesmk.py for half crate\nChange-Id: I06efaa9d59b57c071a639a7ff6dbc3146529573e\n"
    },
    {
      "commit": "ab3432cb8b00e05ef9426738e57c226689916993",
      "tree": "8fbbf0c777d0613c3398bb44d2c2f78c5fc664f8",
      "parents": [
        "0e408c6be096f66c2e4cbee19c7b40d49c0ba319"
      ],
      "author": {
        "name": "Per Larsen",
        "email": "perlarsen@google.com",
        "time": "Fri Jan 05 03:11:35 2024 +0000"
      },
      "committer": {
        "name": "Per Larsen",
        "email": "perlarsen@google.com",
        "time": "Fri Jan 05 03:32:21 2024 +0000"
      },
      "message": "cargo2rulesmk.py: dedup lib deps\n\nCargo metadata output can include the same dependency\nmultiple times so they need to be deduplicated in the\noutput rules.mk.\n\nBug: None\nTest: cd external/rust/crates/zerocopy \u0026\u0026 ./cargo2rulesmk.py\nChange-Id: I226316fe59f1811cf674d598c415de67b3f75792\n"
    },
    {
      "commit": "b3c5d1e5b84be8384167c92e89870c1ed7beddd1",
      "tree": "c29dad703c607a0b849d119a3d18e95c6e8850a1",
      "parents": [
        "7d17bb7fea853669401bf665c770067e267517ee"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jan 02 18:30:32 2024 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jan 02 18:40:42 2024 +0000"
      },
      "message": "Update `OWNERS` files under `development`.\n\nTest: n/a\nChange-Id: I63567557665f23950caf15475927b940d43f6251\n"
    },
    {
      "commit": "fa5f3619e6eec437d5f856064c8cb9cea327bca5",
      "tree": "64568a4e096f9e7f25f5c15610d29f53d1115275",
      "parents": [
        "844b604fece4cf9a5cfc6180c74e9a31f6a3d302",
        "f84f5b113ed7d524cf44d172f07e8b4a1adf8518"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Dec 21 21:28:53 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 21 21:28:53 2023 +0000"
      },
      "message": "Merge \"Fix cargo2rulesmk.py handling of optional deps\" into main"
    },
    {
      "commit": "b4fa3db019f17015f48541e51330cfa1e601ae70",
      "tree": "71ef19ef47cd8f906b82706ad611970739f3d528",
      "parents": [
        "b805a4b5f6959e018d6243446dd1c94759c78390"
      ],
      "author": {
        "name": "Matt Schulte",
        "email": "matsch@google.com",
        "time": "Thu Dec 21 08:06:49 2023 -0800"
      },
      "committer": {
        "name": "Matt Schulte",
        "email": "matsch@google.com",
        "time": "Thu Dec 21 08:06:49 2023 -0800"
      },
      "message": "Add unlicense support to add3prf.py\n\nThis adds the ability to detect and generate the correct METADATA file\nfor unlicense licensed crates.\n\nBug: 317361040\nTest: atest --host add3prf_test; Ran against https://crates.io/crates/aho-corasick\nChange-Id: Icbed2fbab7368f5faef2194a4836c369b038979c\n"
    },
    {
      "commit": "38d199e4c8318c6540b3dbb5ff1e402f77b9e14f",
      "tree": "67a0a2aaccd06a86efdeb44608b2017f27e8bda8",
      "parents": [
        "28a5f9d15f47acfbab13bf79e28984293b4fbf97"
      ],
      "author": {
        "name": "Matt Schulte",
        "email": "matsch@google.com",
        "time": "Wed Dec 20 10:05:57 2023 -0800"
      },
      "committer": {
        "name": "Matt Schulte",
        "email": "matsch@google.com",
        "time": "Wed Dec 20 11:42:03 2023 -0800"
      },
      "message": "Add 0BSD support to add3prf.py\n\nThis adds the ability to detect and generate the correct METADATA file\nfor 0BSD licensed crates.\n\nBug: 317214883\nTest: atest --host add3prf_test; Ran against https://crates.io/crates/adler\nChange-Id: I064297212dbbcf7f195cde5e0b345f43da9369df\n"
    },
    {
      "commit": "362d7f4cc42be365c1017138857e189867fd6e2c",
      "tree": "a7c0546635a6fd81be29ab16bd69b16555036b53",
      "parents": [
        "d93d7a6e5a1a9d04656e9050da50ef8f62725cac"
      ],
      "author": {
        "name": "Matt Schulte",
        "email": "matsch@google.com",
        "time": "Wed Dec 20 07:54:03 2023 -0800"
      },
      "committer": {
        "name": "Matt Schulte",
        "email": "matsch@google.com",
        "time": "Wed Dec 20 07:56:47 2023 -0800"
      },
      "message": "Fix MPL matcher to actually match line\n\nBug: 317213681\nTest: atest --host add3prf_test; Ran against https://crates.io/crates/fdt\nChange-Id: Id2200316a8c44c56924fcd959235f29dd78b20a0\n"
    },
    {
      "commit": "f84f5b113ed7d524cf44d172f07e8b4a1adf8518",
      "tree": "77a8b15925129b705e7f43141b633ae58ceb6cfa",
      "parents": [
        "7819477fbbc870bc81d2ac9a0fa3a1a34802aa0a"
      ],
      "author": {
        "name": "Stephen Crane",
        "email": "cranes@google.com",
        "time": "Wed Dec 20 00:10:04 2023 +0000"
      },
      "committer": {
        "name": "Stephen Crane",
        "email": "cranes@google.com",
        "time": "Wed Dec 20 00:10:04 2023 +0000"
      },
      "message": "Fix cargo2rulesmk.py handling of optional deps\n\nOptional dependencies should not be included if their corresponding\nfeatures do not require them.\n\nBug: 281857510\nTest: cargo2rulesmk.py for arrayvec with no features\nChange-Id: Ie4640af8a1e1d3a2a07f35ee260a697dbfd3112e\n"
    },
    {
      "commit": "e3104bfee362a5eb6b43d6ef616ba72f4af592ed",
      "tree": "daa0c0a5be0d313d9d25ef5342ee9a498a5db66d",
      "parents": [
        "7819477fbbc870bc81d2ac9a0fa3a1a34802aa0a"
      ],
      "author": {
        "name": "Andrew Walbran",
        "email": "qwandor@google.com",
        "time": "Tue Dec 19 15:16:53 2023 +0000"
      },
      "committer": {
        "name": "Andrew Walbran",
        "email": "qwandor@google.com",
        "time": "Tue Dec 19 15:19:58 2023 +0000"
      },
      "message": "Remove cargo2android.py.\n\nEverything is now migrated to cargo_embargo.\n\nBug: 293289578\nTest: N/A\nChange-Id: Ifccd8fa5383dacec3ca20a170e0c5618596d448c\n"
    },
    {
      "commit": "5efbf7fe975995ef96e2a294a7b746ea371fc18e",
      "tree": "6c3056f6694aa30f0a4b93b42fbf01101803c7cc",
      "parents": [
        "d40c4f9c64c3baa6d181cd9ac42839fa49314f98"
      ],
      "author": {
        "name": "Bruce Lee",
        "email": "quic_yli29@quicinc.com",
        "time": "Thu Nov 09 14:34:39 2023 +0800"
      },
      "committer": {
        "name": "Bruce Lee",
        "email": "quic_yli29@quicinc.com",
        "time": "Thu Nov 16 02:55:19 2023 +0000"
      },
      "message": "Add -p option when flush coverage\n\nThis is to enable flush coverage from select process on the device by process id:\n\n$ acov-llvm.py flush -p [list of process pids]\n\nChange-Id: I14cf30c80f6d1f7faa0d23f752994f0172ee3ce5\n"
    },
    {
      "commit": "055ccb3c49cc9cf24c3b1353ecaf3268afe8d4ca",
      "tree": "a2059c06538c56937bbe32db6899b4fd5d015083",
      "parents": [
        "4814e8553216815e4a9c4626274639ac8debe5ce"
      ],
      "author": {
        "name": "Matt Schulte",
        "email": "matsch@google.com",
        "time": "Mon Oct 30 14:07:27 2023 -0700"
      },
      "committer": {
        "name": "Matt Schulte",
        "email": "matsch@google.com",
        "time": "Mon Oct 30 14:34:33 2023 -0700"
      },
      "message": "Add MPL support to add3prf.py\n\nThis adds the ability to detect and generate the correct METADATA file\nfor MPL licensed crates.\n\nBug: 308477037\nTest: atest --host add3prf_test; Ran against https://crates.io/crates/fdt\nChange-Id: I2b1765a08b68c5eb59e4f52b33c1df337e8c148b\n"
    },
    {
      "commit": "3187152e8f9a43f7e9168c856f1769821cc13c5b",
      "tree": "a73da3c144b9c217863a0385244e037bba18e82a",
      "parents": [
        "b3206f4e7f92fbff12b43aac4b2d4f92c9b6dd12",
        "ce488a7d20fbf03c14baa640c43bf64642c237ae"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Oct 20 20:53:10 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 20 20:53:10 2023 +0000"
      },
      "message": "Merge \"Update to use `main` for new Rust 3p projects.\" into main"
    },
    {
      "commit": "ce488a7d20fbf03c14baa640c43bf64642c237ae",
      "tree": "9f917d20cee84ecfddaf86cfc26f2a0b398395e7",
      "parents": [
        "2f249d2407595519e9c024b57afd7aee9d274e86"
      ],
      "author": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Thu Oct 19 00:34:53 2023 -0700"
      },
      "committer": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Thu Oct 19 00:34:53 2023 -0700"
      },
      "message": "Update to use `main` for new Rust 3p projects.\n\nTest: N/A\nChange-Id: I3009db547d9ef4a2f6c3645d4276f9542823abcf\n"
    },
    {
      "commit": "7afe14e9d8220b9a6deccdce0e746571b8bfac58",
      "tree": "bc07da1e564df7d2de1c2ae782c3593d6ed35e32",
      "parents": [
        "2f249d2407595519e9c024b57afd7aee9d274e86"
      ],
      "author": {
        "name": "Andrei Homescu",
        "email": "ahomescu@google.com",
        "time": "Thu Oct 19 06:54:33 2023 +0000"
      },
      "committer": {
        "name": "Andrei Homescu",
        "email": "ahomescu@google.com",
        "time": "Thu Oct 19 07:09:00 2023 +0000"
      },
      "message": "Fix cargo2rulesmk.py dependency bug in sandbox\n\nRemove the check performed by cargo2rulesmk.py\nwhether the external/rust/crates/{name} directories\nexist for all dependencies of the current crate.\nThese directories only exist in the Android tree,\nnot in the minimal checkout inside the redshell sandbox.\n\nBug: 281857510\nTest: cargo2rulesmk.py on thiserror-impl\nChange-Id: I1e5d46b4de3129770ab87ebc5e58563010ae6605\n"
    },
    {
      "commit": "a18bd3c1ca792d39bc52d42808af29ea669377e9",
      "tree": "5c5ff87ad9a053bf995a3261279a8c190a0171c0",
      "parents": [
        "4b76dd35260d9298ef2812ccfd4a62ef6e90cae5"
      ],
      "author": {
        "name": "Jeongik Cha",
        "email": "jeongik@google.com",
        "time": "Wed Sep 27 02:28:55 2023 +0900"
      },
      "committer": {
        "name": "Jeongik Cha",
        "email": "jeongik@google.com",
        "time": "Wed Sep 27 02:28:55 2023 +0900"
      },
      "message": "Set \u003cpartition\u003e_available only if it is for device\n\nit is meaningful only if it is installed in the device\n\nBug: 277909042\nTest: cargo2android.py with/without device, and then check\nproduct/vendor_available\n\nChange-Id: I9ca7328ac953849db224949089412e181b659945\n"
    },
    {
      "commit": "bfda306156d4165f8127ebf26d8d5023781ef438",
      "tree": "f2a96d1d128f859feeb63a36b041a99322d4d2f2",
      "parents": [
        "8ca4239aedc476f1ccea6076d90c3b920b28f667"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Sep 19 17:09:33 2023 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Sep 19 17:09:33 2023 +0100"
      },
      "message": "Fix build-id lookup for libraries loaded directly from apk\n\nUse only the part after \"!\" as the filename to lookup.\n\nTest: symbolize local crash\nChange-Id: I70840ffcc07dc7d449b726a91c08d12529125d78\n"
    },
    {
      "commit": "3151ae84efb84163a48b7e7372250bab2371cb5e",
      "tree": "2570ee35a5ef6f9be4254d33ad020843769b8af5",
      "parents": [
        "dddb3fa9874d2faafcef0d5fdb1e0974f43fa529"
      ],
      "author": {
        "name": "Jeongik Cha",
        "email": "jeongik@google.com",
        "time": "Mon Sep 18 20:00:58 2023 +0900"
      },
      "committer": {
        "name": "Jeongik Cha",
        "email": "jeongik@google.com",
        "time": "Mon Sep 18 20:00:58 2023 +0900"
      },
      "message": "Fix the order of suffix in Android.bp\n\nrust_library + host_suffix + rlib_suffix is the right order\nFor example, rust_library_host_dylib, rust_library_host_rlib\n\nBug: 277909042\nTest: cargo2android --run --force-rlib\nChange-Id: Ib156b96853eb51bae1f68229ebe76b87b0f8b363\n"
    },
    {
      "commit": "56475b17c5e3f8a0270cc7018343f393f1285204",
      "tree": "7c5834d156200ad038ec3cc2b97cf9fb876612d5",
      "parents": [
        "a5c22d559c9ff7ff900018785331b1a02cff4074"
      ],
      "author": {
        "name": "James Farrell",
        "email": "jamesfarrell@google.com",
        "time": "Wed Sep 13 18:00:42 2023 +0000"
      },
      "committer": {
        "name": "James Farrell",
        "email": "jamesfarrell@google.com",
        "time": "Wed Sep 13 18:00:42 2023 +0000"
      },
      "message": "Support adding suffixes to module names and deps.\n\nThis is helpful for crates like protobuf and syn for which we have\nmultiple versions, and will let us eliminate several patch files\n\nTest: Ran it on everything in external/rust/crates.\nChange-Id: I29ac1ee69be99b7164e1458e0d8fc1cb028b15a0\n"
    },
    {
      "commit": "a5c22d559c9ff7ff900018785331b1a02cff4074",
      "tree": "54cb5ef5def05dbbdbf30f238db4b8160e80020a",
      "parents": [
        "e1b30f67453a9570d8fa796f0ecb6da18eb04d23"
      ],
      "author": {
        "name": "James Farrell",
        "email": "jamesfarrell@google.com",
        "time": "Tue Sep 12 21:13:52 2023 +0000"
      },
      "committer": {
        "name": "James Farrell",
        "email": "jamesfarrell@google.com",
        "time": "Tue Sep 12 21:14:33 2023 +0000"
      },
      "message": "Add some type annotations, mainly to help the IDE.\n\nNo functional changes.\n\nTest: Ran it.\nChange-Id: Ifedf1c42628dae03968eeefd5101ae75456acd32\n"
    },
    {
      "commit": "ddd7c0ff8743aa5f5eb2e26adc949f7532475974",
      "tree": "fc1fd084efafd476e5a1a695d8799ea837c88156",
      "parents": [
        "6f634869e6f03c67f356d57de3638953f034d7c2"
      ],
      "author": {
        "name": "Joey Jiao",
        "email": "quic_jiangenj@quicinc.com",
        "time": "Fri Sep 08 08:52:32 2023 +0800"
      },
      "committer": {
        "name": "Joey Jiao",
        "email": "quic_jiangenj@quicinc.com",
        "time": "Fri Sep 08 08:56:27 2023 +0800"
      },
      "message": "Fix covreport folder permission\n\nChange-Id: I671c0ddc1cd0632c3d81c9ec68825decc92b065a\n"
    },
    {
      "commit": "6f634869e6f03c67f356d57de3638953f034d7c2",
      "tree": "068685724865e61c6675cd11da73964b9c25f5d4",
      "parents": [
        "c55eea75d2ee74ed5fa0b93d68543b58aa2dc2d9",
        "a6fe26c14696d178833e771cbfb8975ed61fa55b"
      ],
      "author": {
        "name": "Martin Geisler",
        "email": "mgeisler@google.com",
        "time": "Thu Sep 07 14:01:47 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 07 14:01:47 2023 +0000"
      },
      "message": "Merge \"Revert \"Rename `libsyn` to `libsyn2`\"\" into main"
    },
    {
      "commit": "a6fe26c14696d178833e771cbfb8975ed61fa55b",
      "tree": "110a42685f271328d6f94f002f495996f1bef6ac",
      "parents": [
        "7705ea6d369298024f27143ed2424a41f3e07adf"
      ],
      "author": {
        "name": "Martin Geisler",
        "email": "mgeisler@google.com",
        "time": "Fri Sep 01 14:08:11 2023 +0000"
      },
      "committer": {
        "name": "Martin Geisler",
        "email": "mgeisler@google.com",
        "time": "Fri Sep 01 14:08:46 2023 +0000"
      },
      "message": "Revert \"Rename `libsyn` to `libsyn2`\"\n\nThis reverts commit 7705ea6d369298024f27143ed2424a41f3e07adf.\n\nReason for revert: I believe this is stale since `libsyn` is version 2 now:\n\nhttps://cs.android.com/android/platform/superproject/+/main:external/rust/crates/syn/Android.bp;l\u003d41;drc\u003dfcd71dcc29ef325341ea7c1a145591b349018eb3\n\nChange-Id: I31892447cf95d094e4bb201c4d86a28c70085467\n"
    },
    {
      "commit": "4e8edb4a2c17febfc52722be8f7ee5372af2aaae",
      "tree": "fb2302bd8989e8b96c0732c7c8e8d03a7197e524",
      "parents": [
        "718ef28b58893a34512e0a8ee905f7b94bc98803"
      ],
      "author": {
        "name": "Jeongik Cha",
        "email": "jeongik@google.com",
        "time": "Tue Aug 29 11:26:17 2023 +0900"
      },
      "committer": {
        "name": "Jeongik Cha",
        "email": "jeongik@google.com",
        "time": "Tue Aug 29 11:26:17 2023 +0900"
      },
      "message": "Update add3prf for MetadataURLValid\n\nurl field has been deprecated in favor of the identifier field.\n\nTest: check output\nChange-Id: I1d642d74f51244d59de4d5c44c4b9878873dd0d6\n"
    },
    {
      "commit": "e88e4d6a5f104ca1f077bf5bd9059bdb85faa41b",
      "tree": "91279b04709442fd784633c450da7b93b3b1d19f",
      "parents": [
        "fb0b60ff1287832d7a6ca9246392f0344e8d532b"
      ],
      "author": {
        "name": "Andrei Homescu",
        "email": "ahomescu@google.com",
        "time": "Thu Aug 24 22:11:50 2023 +0000"
      },
      "committer": {
        "name": "Andrei Homescu",
        "email": "ahomescu@google.com",
        "time": "Thu Aug 24 22:13:45 2023 +0000"
      },
      "message": "cargo2rulesmk.py: Support customizing rustc\n\nPort aosp/2633771 to cargo2rulesmk.py.\n\nBug: 281857510\nTest: Run in sandbox on bitflags crate\nChange-Id: I85b884351f621a6d96cd2b01ee5113687eb72f32\n"
    },
    {
      "commit": "fb0b60ff1287832d7a6ca9246392f0344e8d532b",
      "tree": "26fbdcfff8c760944ccdaab08f8fdcb0b5965006",
      "parents": [
        "8df3496e01b1c2d1d0a3e53986e5b27c650e6323"
      ],
      "author": {
        "name": "Andrei Homescu",
        "email": "ahomescu@google.com",
        "time": "Thu Aug 24 21:23:36 2023 +0000"
      },
      "committer": {
        "name": "Andrei Homescu",
        "email": "ahomescu@google.com",
        "time": "Thu Aug 24 22:13:39 2023 +0000"
      },
      "message": "cargo2rulesmk.py: Remove Python match usage\n\nThe script uses Python match which was introduced\nin Python 3.10. The sandbox only has 3.8, so we need\nto remove match so the script can run.\n\nBug: 281857510\nTest: Run in sandbox on bitflags crate\nChange-Id: Id03b0e02f8593b551f2aca201fe0ed2659d58d21\n"
    },
    {
      "commit": "46e085a9612f7a82cc28198ad0c51f1eeb8cfa60",
      "tree": "d50f92c33e9b4b50101c2532c8f1917b0b4f1edb",
      "parents": [
        "4bed0887804125a2059f626bf88bdc1165f949df"
      ],
      "author": {
        "name": "Vinh Tran",
        "email": "vinhdaitran@google.com",
        "time": "Fri Aug 18 10:21:56 2023 -0400"
      },
      "committer": {
        "name": "Vinh Tran",
        "email": "vinhdaitran@google.com",
        "time": "Fri Aug 18 10:21:56 2023 -0400"
      },
      "message": "Fix path to add3prf.py when calling from get_rust_pkg.py\n\nWhen --add3prf is set, `get_rust_pkg.py` script `cd` into the crate directory and run `add3prf.py`. However, `add3prf.py` doesn\u0027t exist in the newly downloaded crate directory. This CL ensures that we reference to the existing `add3prf.py` script.\n\nTest: development/scripts/get_rust_pkg.py -add3prf -v -o /tmp tinyjson-2.5.1\nChange-Id: I4273d4f2b6a1f353960adbbab9abbb96bf3e68f3\n"
    },
    {
      "commit": "8449944a50a0445a5ecaf9b7aed12608c81bf3f1",
      "tree": "a31caadadcb1ce9c61e173c517c5c563dcc5e7eb",
      "parents": [
        "e64a580e9f1e2c06b30867fe99299923a0aa3902",
        "7705ea6d369298024f27143ed2424a41f3e07adf"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Aug 16 17:10:05 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 16 17:10:05 2023 +0000"
      },
      "message": "Merge \"Rename `libsyn` to `libsyn2`\" into main"
    },
    {
      "commit": "6f7ecff37c541c8f11d525661ccf7332cd2245cc",
      "tree": "8c85e937420aabe4a3d0df21ecfa70c3018b6732",
      "parents": [
        "3062194792940b3363667a84c2a2c79b2482f0aa",
        "e1a65278e992511f5e4248f81f9ace0bc288efbc"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Jul 21 13:24:42 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 21 13:24:42 2023 +0000"
      },
      "message": "Merge \"Update OWNERS to add new per-file line for script\" into main"
    },
    {
      "commit": "3062194792940b3363667a84c2a2c79b2482f0aa",
      "tree": "23f5e366230c61d76da660cb293a3f0b90024233",
      "parents": [
        "a3a0af9a93b740e5571f45d250eb53ae8eacbaf5",
        "7b03617a5452305278358e0c2fbf1f3854abc437"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Jul 20 13:58:57 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 20 13:58:57 2023 +0000"
      },
      "message": "Merge \"scripts: Add cargo2rulesmk.py to generate rules.mk\" into main"
    },
    {
      "commit": "e1a65278e992511f5e4248f81f9ace0bc288efbc",
      "tree": "c46864f3f3211c19a52634dfcc35822a338e8d00",
      "parents": [
        "7b03617a5452305278358e0c2fbf1f3854abc437"
      ],
      "author": {
        "name": "Per Larsen",
        "email": "perlarsen@google.com",
        "time": "Thu Jul 20 00:41:18 2023 +0000"
      },
      "committer": {
        "name": "Per Larsen",
        "email": "perlarsen@google.com",
        "time": "Thu Jul 20 00:49:43 2023 +0000"
      },
      "message": "Update OWNERS to add new per-file line for script\n\nAdding per-file line for cargo2rulesmk.py such that\nit can be maintained by members of the platsec Rust\nand Trusty teams.\n\nBug: 281857510\nChange-Id: I9aedee5a76c4d463d4cf3d0851c60193d96a7696\n"
    },
    {
      "commit": "7b03617a5452305278358e0c2fbf1f3854abc437",
      "tree": "d8bf685889be2958c4695a0f8d6536e6d2bde856",
      "parents": [
        "7845b265db43082e43f34551926dd8ac669a2c73"
      ],
      "author": {
        "name": "Per Larsen",
        "email": "perlarsen@google.com",
        "time": "Thu Jul 06 22:59:34 2023 +0000"
      },
      "committer": {
        "name": "Per Larsen",
        "email": "perlarsen@google.com",
        "time": "Thu Jul 20 00:15:39 2023 +0000"
      },
      "message": "scripts: Add cargo2rulesmk.py to generate rules.mk\n\nAdd script that generates rules.mk files from Rust crates.\nBased on and inspired by cargo2android.py script to generate\nblueprint files for the Android build system.\n\nThe script has only been tested on the vendored crates used to\nbuild Trusty (see external/rust/crates) and does not support\nthe full range of crate types or cargo features.\n\nBug: 281857510\nChange-Id: I1951f75476c36b9a1b794c4a51483f2c7387b1f5\n"
    },
    {
      "commit": "eea06cf6092e9a23e1275030ca7d4cf499c3e2bb",
      "tree": "069a4c1cb77a41b316de14608b5236bf72ea5bee",
      "parents": [
        "a1133e904c80b25285161159a09079b5e6d197cd",
        "7da179ef34e139a1f14f9ba3c9a22d3109bf5606"
      ],
      "author": {
        "name": "Nikita Putikhin",
        "email": "nputikhin@google.com",
        "time": "Tue Jul 18 14:24:18 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 18 14:24:18 2023 +0000"
      },
      "message": "Merge \"Add --vscode-launch-file to gdbclient.py\" into main"
    },
    {
      "commit": "50c9af7a63ef97a807867836195113ff07aa7b55",
      "tree": "b3ad741f7a21bd44cff7a0bf1d77b4a393180628",
      "parents": [
        "981424a4b8c10f267470534f2403e8c89305f439"
      ],
      "author": {
        "name": "AdityaK",
        "email": "appujee@google.com",
        "time": "Fri Jul 14 16:02:43 2023 -0700"
      },
      "committer": {
        "name": "AdityaK",
        "email": "appujee@google.com",
        "time": "Fri Jul 14 16:55:55 2023 -0700"
      },
      "message": "Clarify meaning of --port flag\n\nAlso, edited error message when lunch menu is incorrect.\n\nChange-Id: Ie9f5a00b8560d938212eb2b38713a6343d175958\n"
    },
    {
      "commit": "7da179ef34e139a1f14f9ba3c9a22d3109bf5606",
      "tree": "e64f8e6086e9eadfdaa1749fb8191272afe67453",
      "parents": [
        "ba3b3ae97a205c353b09cc4dc696ce237ee3a46b"
      ],
      "author": {
        "name": "Nikita Putikhin",
        "email": "nputikhin@google.com",
        "time": "Mon Jul 03 07:37:58 2023 +0000"
      },
      "committer": {
        "name": "Nikita Putikhin",
        "email": "nputikhin@google.com",
        "time": "Thu Jul 13 13:48:37 2023 +0000"
      },
      "message": "Add --vscode-launch-file to gdbclient.py\n\nThe new argument makes the generator write the VSCode launch.json config\ninto a file instead of stdout.\n\nThe generator uses marker lines to insert the config. This way the user\ncan control where in the file the launch config is written.\n\nTest: atest gdbclient_test\nTest: lldbclient.py --setup-forwarding vscode-lldb \\\n  --vscode-launch-props\u003d \\\n  \u0027{\"internalConsoleOptions\" : \"openOnSessionStart\"}\u0027 \\\n  --vscode-launch-file\u003d.vscode/launch.json -r test\n\nChange-Id: I92b3f479b5ebcb722933938f52d0f23ff098beac\n"
    },
    {
      "commit": "ecff5ddc84467af458aae613b510aa68330ae9f4",
      "tree": "6249c45036afb6cb7f9d56ff34537f5a87186fd0",
      "parents": [
        "f87641a7eaa40c57c5d1033a9082a178e99b99e1"
      ],
      "author": {
        "name": "Sim Sun",
        "email": "simsun@fb.com",
        "time": "Wed Jun 21 13:58:24 2023 -0700"
      },
      "committer": {
        "name": "Sim Sun",
        "email": "simsun@fb.com",
        "time": "Wed Jun 21 14:08:38 2023 -0700"
      },
      "message": "c2a: Support customizing rustc\n\nThe current cargo2android.py doesn\u0027t work well w/ `--cargo_bin`. It would use the full path rustc(/\u003cHOME\u003e/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/rustc) instead of basename(`rustc`). The `RUSTC_PAT` and `RUSTC_VV_CMD_ARGS` regex doesn\u0027t match the full path.\n\nThis CL uses `(.*\\/)?` to match the path if it exists.\n\nChange-Id: If5e4060410c1cd45ad6c9612ebe856552aa14d08\n"
    },
    {
      "commit": "c434deca4ebdcd0032024a3dcc73aeef25115c43",
      "tree": "b38049a251e03475ac7dc2292da4006e84bd612f",
      "parents": [
        "f97a3286ec1d7a082d40df19f112c6a4f68457c8"
      ],
      "author": {
        "name": "Samuel Holland",
        "email": "samuel.holland@sifive.com",
        "time": "Fri Jun 16 09:35:40 2023 -0700"
      },
      "committer": {
        "name": "Samuel Holland",
        "email": "samuel.holland@sifive.com",
        "time": "Fri Jun 16 09:48:11 2023 -0700"
      },
      "message": "Support gdbclient.py on riscv64\n\nAdd the path to the existing architecture-specific runtime directory,\nin preparation for when lldb-server is added to the toolchain build by\nIba7efaa62e7d3cc8e3bd1080d9b4a67bc241faf2.\n\nTest: `gdbclient.py -r surfaceflinger` connected to a riscv64 board\nChange-Id: I1654378a7ba92fcd7ffe478d2b491f426655e6f1\n"
    },
    {
      "commit": "90bfd75d6b4a6f75ef8d1afc73a64a0a3933f08b",
      "tree": "d178257fb872dafddcaecec346cf70796f0b73e5",
      "parents": [
        "2876fbc6edf24dfbe5685f3e087ca682edf7fd81"
      ],
      "author": {
        "name": "Andrew Walbran",
        "email": "qwandor@google.com",
        "time": "Tue Jun 13 13:06:26 2023 +0000"
      },
      "committer": {
        "name": "Andrew Walbran",
        "email": "qwandor@google.com",
        "time": "Tue Jun 13 13:06:26 2023 +0000"
      },
      "message": "Support Python 3.8.10.\n\nRedshell unfortunately uses this old version, while the union operator\nfor dictionaries was only added in Python 3.9.\n\nTest: Ran cargo2android.py on a crate with variants\nChange-Id: I7a875acde11c23a3b789ef384f3ab32100d7c6d5\n"
    },
    {
      "commit": "9aa3bc65bacacdf08810f9d650b184578fb7452a",
      "tree": "5c29d062e39d0f29320d07424eaecbb03aaccb64",
      "parents": [
        "43e163e870f7999ab5c93e45efe9885acd7e3fa8"
      ],
      "author": {
        "name": "Nikita Putikhin",
        "email": "nputikhin@google.com",
        "time": "Fri May 19 20:39:51 2023 +0000"
      },
      "committer": {
        "name": "Nikita Putikhin",
        "email": "nputikhin@google.com",
        "time": "Sat Jun 10 20:47:31 2023 +0000"
      },
      "message": "Add --vscode-launch-props to gdbclient.py\n\nThe new argument allows the user to pass a JSON of properties to merge\ninto the generated launch.json config when setting up vscode-lldb\nforwarding. This way the user can add pre-build tasks, extra init\ncommands etc.\n\nTest: atest gdbclient_test\nTest: lldbclient.py --setup-forwarding\u003dvscode-lldb\n  --vscode-launch-props\u003d\u0027{\"sourceMap\": {\"test1\": \"test2\"},\n  \"postDebugTask\": \"Stop LLDB client\", \"processCreateCommands\" :\n  [\"test\"]}\u0027 -r test\nChange-Id: I763dd15dde10421e86bc0a6ddfde974156ef1588\n"
    },
    {
      "commit": "516960e34e410f891c75fdd8a73c021d787e2ce2",
      "tree": "ac8bd39a1bac64fa5d2f06ffbe472017420b6c14",
      "parents": [
        "3b3aef3544df8741d4cf273fb0a7584077e1b233"
      ],
      "author": {
        "name": "Nikita Putikhin",
        "email": "nputikhin@google.com",
        "time": "Wed May 31 21:57:38 2023 +0000"
      },
      "committer": {
        "name": "Nikita Putikhin",
        "email": "nputikhin@google.com",
        "time": "Wed May 31 21:57:38 2023 +0000"
      },
      "message": "Add type annotations to gdbclient.py\n\nIn a couple cases it exposed unused arguments or type errors. This\nchange fixes those as well.\n\nTest: mypy development/scripts/gdbclient.py\nTest: gdbclient -r /system/bin/date\nChange-Id: If471a1853b813e01c89e321eab3d424f1c256f2d\n"
    },
    {
      "commit": "7705ea6d369298024f27143ed2424a41f3e07adf",
      "tree": "4e129660149dd0016aecfd8dcea35b8df6d7fd11",
      "parents": [
        "3b3aef3544df8741d4cf273fb0a7584077e1b233"
      ],
      "author": {
        "name": "Matthew Maurer",
        "email": "mmaurer@google.com",
        "time": "Mon May 22 21:21:02 2023 +0000"
      },
      "committer": {
        "name": "Matthew Maurer",
        "email": "mmaurer@google.com",
        "time": "Mon May 22 21:21:02 2023 +0000"
      },
      "message": "Rename `libsyn` to `libsyn2`\n\nA downstream project has an invalid branching structure, so we can\u0027t\nactually rename `libsyn` to `libsyn-legacy` like we normally would.\nInstead, we must allow the legacy package to squat on the `libsyn` name\nuntil the branching structure is fixed to unblock the upgrade to\nsyn-2.x.\n\nTest: TreeHugger\nBug: 276463929\nBug: 278978404\nChange-Id: If72d389dd5238299cc1b35818e0b5596b0469cb1\n"
    },
    {
      "commit": "59f441224e69fc16be8c7d8feccd3c7d21f8424b",
      "tree": "f813a83767159553992aeb30a542b7530396e2c5",
      "parents": [
        "aff94816087b7a473a6c57c3e8f0e36cf26f467b"
      ],
      "author": {
        "name": "Andrew Walbran",
        "email": "qwandor@google.com",
        "time": "Fri May 12 16:47:19 2023 +0000"
      },
      "committer": {
        "name": "Andrew Walbran",
        "email": "qwandor@google.com",
        "time": "Fri May 12 16:47:19 2023 +0000"
      },
      "message": "Add --dependency-suffix flag.\n\nThis adds a suffix to all dependencies, which may be useful for no_std\ncrates.\n\nBug: 279614907\nTest: Ran on external/rust/crates/ciborium\nChange-Id: I4d504fbfdcd079a946814dcf953b42baa0ca3563\n"
    },
    {
      "commit": "aff94816087b7a473a6c57c3e8f0e36cf26f467b",
      "tree": "eacb5c16477ebbf3166dc530886a8f3f7db6ccaf",
      "parents": [
        "d579a0fa6115d41379f8a06245a417e5667122ea"
      ],
      "author": {
        "name": "Andrew Walbran",
        "email": "qwandor@google.com",
        "time": "Fri May 12 13:24:21 2023 +0000"
      },
      "committer": {
        "name": "Andrew Walbran",
        "email": "qwandor@google.com",
        "time": "Fri May 12 13:24:37 2023 +0000"
      },
      "message": "Fix handling of tests for variants.\n\nVariant test and cargo flags were being ignored.\n\nBug: 279614907\nTest: Ran on external/rust/crates/serde\nChange-Id: I9c6cf71c8d04944cc7c532cfb53b50c2efc3e375\n"
    },
    {
      "commit": "d579a0fa6115d41379f8a06245a417e5667122ea",
      "tree": "4df16f265ba103572ddcdc8f85308057ead196e6",
      "parents": [
        "9af471898448c180eee89bcda114d0db4359db30"
      ],
      "author": {
        "name": "Andrew Walbran",
        "email": "qwandor@google.com",
        "time": "Thu May 11 15:57:36 2023 +0000"
      },
      "committer": {
        "name": "Andrew Walbran",
        "email": "qwandor@google.com",
        "time": "Fri May 12 13:22:55 2023 +0000"
      },
      "message": "Added --no-std and --alloc flags.\n\nThese allow most no_std crates to be supported without extra patches.\n\nBug: 279614907\nTest: Ran on external/rust/crates/half\nChange-Id: I1a69ff7950fb63320ef7c87d6cd45b20915df801\n"
    },
    {
      "commit": "462ff76c54ec2c677f6242285a6e25b65220672f",
      "tree": "410da7d1f4eb5381b05cd17b26b4f46330610f33",
      "parents": [
        "b25a156d0fc3af4c1ed1555e1f776ae2a15ba824",
        "b6b58a4d820c377c2c95ee71cfcb863c4737c0d3"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Thu Mar 16 00:27:43 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 16 00:27:43 2023 +0000"
      },
      "message": "Merge \"gdbclient.py: Fix gdb-remote command for non-local $ANDROID_SERIAL.\""
    },
    {
      "commit": "b6b58a4d820c377c2c95ee71cfcb863c4737c0d3",
      "tree": "6a216e01c054d86d72fe8b1697793e48189c40fc",
      "parents": [
        "098584724bd6519b8f1c4ca0d1d6457da8a1c6a4"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Wed Mar 15 14:11:00 2023 -0700"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Wed Mar 15 14:31:40 2023 -0700"
      },
      "message": "gdbclient.py: Fix gdb-remote command for non-local $ANDROID_SERIAL.\n\nAs it turns out, gdbclient.py is broken when connecting to a host:port\n$ANDROID_SERIAL where the host is something other than localhost,\nbecause it will try to connect to a TCP socket on the host named in\n$ANDROID_SERIAL, while lldb-server is not even set up to listen on a TCP\nsocket on the device (it listens on a Unix socket which gets forwarded\nby adb forward to localhost).\n\nFix it by entirely removing the code that tries to connect directly to\nthe host if the $ANDROID_SERIAL is of the form host:port.\n\nChange-Id: I91a04aa811b246c9cac82ef3b0779dc284364edf\n"
    },
    {
      "commit": "a47d6d090f42487a889af56c8894bb5d88e87ca5",
      "tree": "4d27212258941bfdb7ec461208ff69a2da12ad32",
      "parents": [
        "462b91aae1d57eb389125e4930dcaa7303da1d6c"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Mar 13 14:50:48 2023 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Mar 13 15:22:47 2023 -0700"
      },
      "message": "Add missing changes from ARCH removal.\n\nI somehow didn\u0027t upload these fixes from the review. So doing that\nnow.\n\nTest: Unit tests pass.\nChange-Id: Ia17e480eb972db4f7be6947c0e6567632c65431f\n"
    },
    {
      "commit": "f62a3be63d39c013abacb6d033c9d39eebe2b64b",
      "tree": "4c596410fabe5fbca3916e30145dfafb6a434309",
      "parents": [
        "098584724bd6519b8f1c4ca0d1d6457da8a1c6a4"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Mar 09 16:13:57 2023 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Mar 09 18:44:59 2023 -0800"
      },
      "message": "Remove all ARCH references.\n\nReplaced with ARCH_IS_32BIT since that\u0027s the only thing truly\nnecessary to work.\n\nThis also makes the register regex much more lenient, but it appears\nto be strict enough that it doesn\u0027t seem to capture arbitrary lines\nwhen run through logcat.\n\nRemoved the StripPC function and verified that an arm crash that\nends in 1 still works.\n\nRemoved the architecture.py script, it is old and I don\u0027t see anyone\nusing it.\n\nModify the reading of the lines to ignore any errors in the input.\n\nTest: All unit tests pass.\nTest: Symbolized arm and arm64 tombstones\nTest: Symbolized x86 and x86_64 tombstones\nTest: Ran through a logcat and verified it caught the bug but\nTest: didn\u0027t print any extra information.\nChange-Id: I6a65ecaad68da1d56864db32ff434512e4df0d89\n"
    },
    {
      "commit": "098584724bd6519b8f1c4ca0d1d6457da8a1c6a4",
      "tree": "42b053d3c118d4eae2af7bbdbe767d40ab0a1433",
      "parents": [
        "ac2cc9b4a746d5cea12c3b88aba5b4d538ebf3bf",
        "5b4577977adc2e666c4c939b60c8a3b56c5da77d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 09 21:59:13 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 09 21:59:13 2023 +0000"
      },
      "message": "Merge \"Upgrade the \u0027aday\u0027 script to python3.\""
    },
    {
      "commit": "5b4577977adc2e666c4c939b60c8a3b56c5da77d",
      "tree": "f6959574f581ea9c336695acfce0210ea8217062",
      "parents": [
        "b3e82ffca0025eea96d09ab48e43d024fcc25564"
      ],
      "author": {
        "name": "xutianqi",
        "email": "xutianqi@xiaomi.corp-partner.google.com",
        "time": "Thu Mar 09 17:55:52 2023 +0800"
      },
      "committer": {
        "name": "Tianqi Xu",
        "email": "xutianqi@xiaomi.corp-partner.google.com",
        "time": "Thu Mar 09 11:08:36 2023 +0000"
      },
      "message": "Upgrade the \u0027aday\u0027 script to python3.\n\nTest: Ran with a BUILD_NUMBER as parameter.\n\nChange-Id: I1048cc8bcb6565e14be00563da565eb3b8ce7989\nSigned-off-by: xutianqi \u003cxutianqi@xiaomi.corp-partner.google.com\u003e\n"
    },
    {
      "commit": "c94cb65f21dcd0a84de98094d501b35c755af217",
      "tree": "f6249a2a9e3ed19c60995cbee5062c9f1fff6ed9",
      "parents": [
        "b3e82ffca0025eea96d09ab48e43d024fcc25564"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 09 00:36:31 2023 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 09 00:36:31 2023 +0000"
      },
      "message": "Remove mips.\n\nWe aren\u0027t going to support riscv32, so we won\u0027t even need to reuse any\nof this.\n\nTest: treehugger\nChange-Id: I80d6285ecbd0dfdeeb496be39ba63e06cbb30acd\n"
    },
    {
      "commit": "01fd4185b1f8a35e5151e32062af2fd360b47385",
      "tree": "2b19db933dcceabf703b5ef7b10dc6c681641b24",
      "parents": [
        "e0447d38efcfd89963470b2cd3db9a01f39840b1"
      ],
      "author": {
        "name": "Prashanth Swaminathan",
        "email": "prashanthsw@google.com",
        "time": "Wed Mar 08 13:16:35 2023 -0800"
      },
      "committer": {
        "name": "Prashanth Swaminathan",
        "email": "prashanthsw@google.com",
        "time": "Wed Mar 08 13:21:47 2023 -0800"
      },
      "message": "Support riscv64 in stack tool, remove mips64\n\nTest: atest python-stack_core_test\nTest: Manual validation against a crash stack on aosp_riscv64.\nChange-Id: Ifc3646486fda9120c30c987f9623e134d3491a9a\n"
    },
    {
      "commit": "4b869316eeb3f0619483ea3937ba8d5cb59744f8",
      "tree": "de0ce9cbd238264df2c36ca0f494f37c26f31e2b",
      "parents": [
        "78a68df63437343b6b31070158cda6d3b85386e9"
      ],
      "author": {
        "name": "Matthew Maurer",
        "email": "mmaurer@google.com",
        "time": "Mon Mar 06 22:26:59 2023 +0000"
      },
      "committer": {
        "name": "Matthew Maurer",
        "email": "mmaurer@google.com",
        "time": "Mon Mar 06 22:55:36 2023 +0000"
      },
      "message": "cargo2android.py: Default to vendor + product\n\nThis is used for managing 3p crates, and the vast majority of them\nshould be available to both vendor and product. Enable support by\ndefault.\n\nBug: 270690570\nTest: Regenerate external/rust/crates/*\nChange-Id: Ie5cb4b8d00de5e6ae37c5a69cb2ee0c0cc6f573a\n"
    },
    {
      "commit": "66f9ab6962ced3f0abc96e02127e90a43034f5a1",
      "tree": "47c1405ad64e8fcd2ae31c258afc93eafbb767ce",
      "parents": [
        "c60a5da303d5ee781791b028c213b6777903b5de",
        "602c2483a58a094eb5fb41798f5ad6dc134c1291"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 03 22:01:40 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 03 22:01:40 2023 +0000"
      },
      "message": "Merge \"Extend cargo2android.py version matching to include alpha and beta crates\""
    },
    {
      "commit": "602c2483a58a094eb5fb41798f5ad6dc134c1291",
      "tree": "52601adc9cac709032915b344e8f68842f76d674",
      "parents": [
        "b1fbcaf684471f5a412b8b067183fe11ae52c19f"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Feb 03 12:39:51 2023 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Feb 03 12:39:51 2023 -0800"
      },
      "message": "Extend cargo2android.py version matching to include alpha and beta crates\n\nThe ring crate hasn\u0027t had a non-alpha release in over two years, and\nmay need to be updated to an alpha release.  Modify the version regex\nin cargo2android.py to recognize the alpha version as part of the\nversion suffix.\n\nTest: manually run cargo2android.py in redshell\nChange-Id: If48d5be339d10bc3e6651485b0038b7219403077\n"
    },
    {
      "commit": "b06dd5c7e2f6d112700453a5280bc2e4ca6badf1",
      "tree": "4d6c84194e6aac42b8bea61c8c97ce27d8a1eb7e",
      "parents": [
        "6e50b8e094d2539a920b9f65cfa2de907849fe1d"
      ],
      "author": {
        "name": "Jeff Vander Stoep",
        "email": "jeffv@google.com",
        "time": "Wed Feb 01 14:09:58 2023 +0100"
      },
      "committer": {
        "name": "Jeff Vander Stoep",
        "email": "jeffv@google.com",
        "time": "Wed Feb 01 14:23:40 2023 +0100"
      },
      "message": "c2a: make Rust version matchin regex less exact\n\nAllow custom version like 1.65.0.p1 (added in aosp/2404317).\n\nResolves warning:\nWARNING: cannot find RustDefaultVersion in\ndevelopment/scripts/../../build/soong/rust/config/global.go\nChange-Id: I6fced7695473e025b0f739f9986df932d2c3f5fe\n\nTest: cargo2android.py --config cargo2android.py\nno warning\n\nChange-Id: I43ff81f061477fc0322f27fef1c950954130dbc6\n"
    },
    {
      "commit": "6e50b8e094d2539a920b9f65cfa2de907849fe1d",
      "tree": "3813277f83cfa698a8b961536718aab8b43fee0d",
      "parents": [
        "c3e09085080d4ca651eb410176b7034f3e7cac2a",
        "408e5db8d958dc22c7e620c2ee866c2afdea0d26"
      ],
      "author": {
        "name": "Jeffrey Vander Stoep",
        "email": "jeffv@google.com",
        "time": "Wed Feb 01 07:42:21 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 01 07:42:21 2023 +0000"
      },
      "message": "Merge \"Include non-local tests by path\""
    },
    {
      "commit": "408e5db8d958dc22c7e620c2ee866c2afdea0d26",
      "tree": "9de53c3e0d03b37fc352bab0a470f94a851de3fa",
      "parents": [
        "a7b72f4a020ba82e99fcc102a09c16080ae15a3b"
      ],
      "author": {
        "name": "Jeff Vander Stoep",
        "email": "jeffv@google.com",
        "time": "Mon Jan 30 12:26:28 2023 +0100"
      },
      "committer": {
        "name": "Jeff Vander Stoep",
        "email": "jeffv@google.com",
        "time": "Mon Jan 30 13:10:25 2023 +0100"
      },
      "message": "Include non-local tests by path\n\nImport paths for non-local tests because including tests\ndirectly has proven to be fragile and burdensome. For example,\nwhenever a project removes or renames a test, all the TEST_MAPPING\nfiles for its reverse dependencies must be updated or we get test\nbreakages. That can be many tens of projects that must updated to\nprevent the reported breakage of tests that no longer exist.\nSimilarly when a test is added, it won\u0027t be run when the reverse\ndependencies change unless/until update_crate_tests.py is run for its\ndepenencies. Importing TEST_MAPPING files instead of tests solves\nboth of these problems. When tests are removed, renamed, or added,\nonly files local to the project need to be modified. The downside is\nthat we potentially miss some tests. But this seems like a reasonable\ntradeoff since it\u0027s primarily unit tests that are missing, and all\nunit tests are always run on the host for every presubmit.\n\nSee aosp/2400500 as an example of what test mapping files now\nlook like after this change.\n\nTest: run it over all projects in external/rust/crates\nChange-Id: I2b644f9ebf97968c9928f5b1756b2ab199e8e7ca\n"
    },
    {
      "commit": "13b1ca483d54cfb731ca57ec2109d831185c92d0",
      "tree": "a35c4c3f01df10a20d38449865c4ce883ac12305",
      "parents": [
        "a7b72f4a020ba82e99fcc102a09c16080ae15a3b"
      ],
      "author": {
        "name": "Chris Wailes",
        "email": "chriswailes@google.com",
        "time": "Tue Jan 24 16:30:45 2023 -0800"
      },
      "committer": {
        "name": "Chris Wailes",
        "email": "chriswailes@google.com",
        "time": "Tue Jan 24 16:31:14 2023 -0800"
      },
      "message": "Add a rename mapping for libatomic to libatomic_rust\n\nBug: 229895468\nTest: cargo2andoid.py --config cargo2android.json\nChange-Id: Icf542d1398f9cd378bba845445b2dab34bb0b317\n"
    },
    {
      "commit": "be3f0d9d1116443698c2e8352b37f510a7718934",
      "tree": "535c98a02da6e14add65c0e267cdb2e6bf4851ce",
      "parents": [
        "a3871b818340d93f61e6d2385e697193ddae8a76"
      ],
      "author": {
        "name": "Shuo Wang Hsu",
        "email": "shuohsu@google.com",
        "time": "Thu Dec 22 17:57:39 2022 -0800"
      },
      "committer": {
        "name": "Shuo Wang Hsu",
        "email": "shuohsu@google.com",
        "time": "Wed Dec 28 15:39:42 2022 -0800"
      },
      "message": "Support building crate variants.\n\nThe cargo2android.json config file now supports the key \"variants\" with\na list of entries containing keys and build name suffix. Each entry\nwill produce a different library (or binary). Keys supplied for each\nvariant will overwrite any existing ones specified in the config file.\n\nSee an example of the protobuf crate on aosp/2368788.\n\nTest: None\nChange-Id: Iaca67c7f22718c27b3cb118d9794f1ff01d31c84\n"
    },
    {
      "commit": "af6aef5d2bb722888f91399f08429602d178bc95",
      "tree": "0567a9e91cceab80db84b126d3fdc03aeb9f5758",
      "parents": [
        "42aa38f51e6d15fad917a0d7acfeb1c8e3b5b513",
        "2f3afc25d59a64b8bce6c9dca081126841d29295"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 13 16:22:35 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 13 16:22:35 2022 +0000"
      },
      "message": "Merge \"update_crate_tests.py: update location of bazel binary\""
    },
    {
      "commit": "2f3afc25d59a64b8bce6c9dca081126841d29295",
      "tree": "7d8ab3a7e5601b4aa05e54bfd9fcf084476d07d9",
      "parents": [
        "3726099bf31327b15b9dd4dcff6da6b270daf5e9"
      ],
      "author": {
        "name": "Jeff Vander Stoep",
        "email": "jeffv@google.com",
        "time": "Tue Dec 13 15:43:05 2022 +0100"
      },
      "committer": {
        "name": "Jeff Vander Stoep",
        "email": "jeffv@google.com",
        "time": "Tue Dec 13 15:43:05 2022 +0100"
      },
      "message": "update_crate_tests.py: update location of bazel binary\n\nThe binary for bazel moved from tools/bazel to build/bazel/bin/bazel.\n\nTest: run update_crate_tests.py in a Rust crate. Verify results.\nChange-Id: I2e586b59876bfd7146cd92efc90055828bf60eac\n"
    },
    {
      "commit": "91f544f227fb2dc25e6402a441f569e13df1d00d",
      "tree": "32076af94fbf605da89cb1dfc9675b9494ffed19",
      "parents": [
        "92c1be2a08706c8eb0218a53782a39c35c96679f"
      ],
      "author": {
        "name": "Shaju Mathew",
        "email": "shaju@google.com",
        "time": "Mon Dec 05 20:02:49 2022 -0800"
      },
      "committer": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Tue Dec 06 19:31:22 2022 +0000"
      },
      "message": "Now ignoring adb shell service return error code in acov-llvm.py\n\nBug: 261529166\n\nIgnore failures when sending the flush signal.  Some processes may have\nexited after we run `adb shell ps` but before we could send the flush signal.\n\nTest: Successful run of coverage metrics using acov-llvm (as documented in go/android-native-coverage-local-workflow\n\nChange-Id: I2fc0f71bf5f6d810b4124e28d7dd69ebfc2579b3\nSigned-off-by: Shaju Mathew \u003cshaju@google.com\u003e\n"
    },
    {
      "commit": "cc18ab77b14d3f1feb24e36d93f6991bcf1d46a6",
      "tree": "a986d5a7005481d707a555b36bf7ad6790b90c50",
      "parents": [
        "edb8d1d2e37729c994a3da22ab18288c890a61ea",
        "b5ef53e3358ea5840f69c3fcc84e4fd9fc50e699"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 28 16:55:39 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 28 16:55:39 2022 +0000"
      },
      "message": "Merge \"Get latest stable version rather than absolute latest.\""
    },
    {
      "commit": "b5ef53e3358ea5840f69c3fcc84e4fd9fc50e699",
      "tree": "3191a7499bcc64654c614419f505c73fe3b3df92",
      "parents": [
        "99a9d7be5eb2508a5bd3a8dbe3af0d6094335ca3"
      ],
      "author": {
        "name": "Andrew Walbran",
        "email": "qwandor@google.com",
        "time": "Fri Nov 18 13:42:37 2022 +0000"
      },
      "committer": {
        "name": "Andrew Walbran",
        "email": "qwandor@google.com",
        "time": "Fri Nov 18 15:35:09 2022 +0000"
      },
      "message": "Get latest stable version rather than absolute latest.\n\nWe don\u0027t want to import alpha versions, generally.\n\nTest: get_rust_pkg.py -add3prf zerocopy\nChange-Id: If51a5f9786ccbae8b8f858ae51153a0ffb5ffe7f\n"
    },
    {
      "commit": "e6e02b0e2298fd064f6790597c82d919cf087fd9",
      "tree": "8950be5879d9334df1c9add921a0daba48511cab",
      "parents": [
        "d946117723cfae9a48e1a8a42f294c7c6318902b"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Nov 08 17:47:37 2022 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Nov 08 17:47:37 2022 -0800"
      },
      "message": "Only add files in GlobSymbolsDir.\n\nI previously skipped directories, but that can still lead to problems.\nSo instead, only add paths that are files.\n\nTest: Ran over a stack that failed when trying to run llvm-readelf\nTest: on a directory. After this fix, everything get line numbers.\nChange-Id: Ide39c5a118d78a822057cc3977d0f532595f798b\n"
    },
    {
      "commit": "29fcc84e82d878a398e5e25bfd878c32ab2e38a9",
      "tree": "60c49f646242aaa26bd1373444dc1b3dce380d03",
      "parents": [
        "e6b57e4a05cacd4f508e41aa644976f208fe42df"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Nov 02 17:33:30 2022 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Nov 02 17:55:57 2022 -0700"
      },
      "message": "Fix build id check for libraries.\n\nThe current build id check uses the file utility. Unfortunately, it\ndoesn\u0027t work on all systems. Replace with a call to llvm-readelf and\nget the bitness and build id using that data.\n\nOther small modifications:\n- Only attempt to get the full path for a library once for each library.\n- Do not add directories into the symbol libraries.\n\nTest: Unit tests pass.\nTest: Running using a libart.so that file doesn\u0027t understand and\nTest: verifying the line numbers are correct.\nChange-Id: I12c3d3c4599d201c3c01feeb48448fee6c633d71\n"
    },
    {
      "commit": "a063ff34e47f8d1f14f809edd6e8886a3d780556",
      "tree": "abd95b6a181a5f8a11b371170f604db80fbbc1f8",
      "parents": [
        "002769b04c7d7bdcb8c95ec0573204e7fa65efcd",
        "b61f795aa44c0135cc03559b5627d6531202df67"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 19 18:38:57 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 19 18:38:57 2022 +0000"
      },
      "message": "Merge \"Use `gdb-remote` without host if not given\""
    },
    {
      "commit": "b61f795aa44c0135cc03559b5627d6531202df67",
      "tree": "fac556327fffe27af0f0638ebdfc20cfaf6738a4",
      "parents": [
        "0bd20974dd697e79b765ada5a3e90294ed5e9e57"
      ],
      "author": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Fri Oct 14 00:09:15 2022 +0000"
      },
      "committer": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Wed Oct 19 01:16:11 2022 +0000"
      },
      "message": "Use `gdb-remote` without host if not given\n\nTest: lldbclient.py -r ls\nChange-Id: I162d318fa30c44f180b6104b31e61e7521fb6a48\n"
    },
    {
      "commit": "f8b9b9113062e4202a9eebe7ee2459e563d9ebc6",
      "tree": "a3e58a4adecf8c78b497bb022c5bb966e9939a46",
      "parents": [
        "eb8582344b4cebb5767dea5579ec16a93af27b95"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 18 21:41:59 2022 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 18 21:41:59 2022 +0000"
      },
      "message": "Remove scripts that haven\u0027t yet been updated for python3.\n\nThat seems like a sign none of these are used. (Two of them haven\u0027t been\ntouched since their initial import in 2009!)\n\nTest: treehugger\nChange-Id: I76042f6c8fab84669c83aa72cd0b5df13f01ed7c\n"
    },
    {
      "commit": "99d580a123d19efaa5261bd407f9ad306b569995",
      "tree": "48834227f5ea436669fdcc394e5cd99629242ccb",
      "parents": [
        "9a0d8d75f0f1eadea9a3128ecdc35eb4dee6f6a2"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Oct 13 16:38:34 2022 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Oct 13 16:38:34 2022 -0700"
      },
      "message": "Remove obsolete script.\n\nIn addition, remove the test for it and the test file.\n\nTest: NA\nChange-Id: Ib5124749c523177805f494d9a6daf2400b6fc84c\n"
    },
    {
      "commit": "45c7ebda063e808d804e44a133a8d71e6a8bdc70",
      "tree": "c49a4aca71f5dd1b1e34da6dd8d4ac7b2a6c20d5",
      "parents": [
        "01cd91331201614ac3d71bbd1aadfbae2879f457"
      ],
      "author": {
        "name": "Krzysztof Kosiński",
        "email": "krzysio@google.com",
        "time": "Sat Sep 17 11:33:50 2022 +0000"
      },
      "committer": {
        "name": "Krzysztof Kosiński",
        "email": "krzysio@google.com",
        "time": "Sat Sep 17 11:33:50 2022 +0000"
      },
      "message": "Remove Python enables identical to global defaults.\n\nBug: 245854393\nTest: presubmit\nChange-Id: I9bb5cbd972432a26afcb13d7c2a6bbc73fb0991f\n"
    },
    {
      "commit": "b59698e2e96981609e0452ba7ac687949a675fb7",
      "tree": "8785d00a3e98e64b4bd7bf7619f35ff6bc8a644a",
      "parents": [
        "ae5da710b33779e1eb5452c7a99e9b8c0244c4ab"
      ],
      "author": {
        "name": "Matthew Maurer",
        "email": "mmaurer@google.com",
        "time": "Mon Sep 12 13:03:32 2022 -0700"
      },
      "committer": {
        "name": "Matthew Maurer",
        "email": "mmaurer@google.com",
        "time": "Mon Sep 12 13:03:32 2022 -0700"
      },
      "message": "c2a: Legacy cleanup\n\n* Removed import of print function - we only support py3 now\n* Switched from set() to a set literal\n\nBug: None\nTest: Regenerated argh_derive\nChange-Id: I78bc86ad22c747c5f6ad88e2caa5e707e1ffc381\n"
    },
    {
      "commit": "ae5da710b33779e1eb5452c7a99e9b8c0244c4ab",
      "tree": "df47b0c8af608d1a93e1cc324e9d55ee3af79671",
      "parents": [
        "3ccbbe87176a30772487eb9ab0a49b097becc0e7"
      ],
      "author": {
        "name": "Matthew Maurer",
        "email": "mmaurer@google.com",
        "time": "Mon Sep 12 12:55:47 2022 -0700"
      },
      "committer": {
        "name": "Matthew Maurer",
        "email": "mmaurer@google.com",
        "time": "Mon Sep 12 12:55:47 2022 -0700"
      },
      "message": "c2a: Parse new cargo output\n\nCargo now outputs\n\u0027unittests src/lib.rs\u0027\nwhere before it output\n\u0027unittests\u0027.\n\nBug: 246384761\nTest: Add \"test\": true to argh_derive, regenerate, observe same bp file\nChange-Id: Ieeab83761f5fe7cff88af1ce8293818736a6bb9b\n"
    },
    {
      "commit": "fd12b5feed7e9c7dd4edf20385a01524088f5b0e",
      "tree": "adc090235fe05f8d776e487eea09c9fd3b1f3080",
      "parents": [
        "e5342d134ad27e5fc6a30f3351ea7fc8b501edf0"
      ],
      "author": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Wed Aug 24 16:19:02 2022 +0100"
      },
      "committer": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Wed Aug 24 17:41:08 2022 +0100"
      },
      "message": "c2a: Clean-up no-ops with \u0027pass\u0027\n\nBug: 243662244\nTest: -\nChange-Id: Ib62b19c18da7e3a44c74303a72a9c27f9d8b3315\n"
    },
    {
      "commit": "e5342d134ad27e5fc6a30f3351ea7fc8b501edf0",
      "tree": "654c7e19cbb89c5c0fd0998d922d1b3077f21e9b",
      "parents": [
        "435dfe58d18fa344ac1a6df406ee51b906168101"
      ],
      "author": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Wed Aug 24 16:15:16 2022 +0100"
      },
      "committer": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Wed Aug 24 17:41:08 2022 +0100"
      },
      "message": "c2a: Crate: Don\u0027t parse -Wclippy, -D, and -W flags\n\nDon\u0027t fail the generation of the Android.bp file when those flags are\nencountered.\n\nBug: 243662244\nTest: Used on gdbstub, which fixed issues seen in aosp/2191020\nChange-Id: I80a6ecd8df7980234552a98ddb1149dc29542ac7\n"
    },
    {
      "commit": "435dfe58d18fa344ac1a6df406ee51b906168101",
      "tree": "542f87a6643944e14f5bdd2eb05cf473d5c7a6c4",
      "parents": [
        "dde806f72d96562888865317619a3984a4d64472"
      ],
      "author": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Wed Aug 24 15:48:25 2022 +0100"
      },
      "committer": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Wed Aug 24 17:40:23 2022 +0100"
      },
      "message": "c2a: Crate: Parse unquoted rustc args\n\nPrevent the script from missing flags (minus-prefixed arguments) due to\nthe CLI argument being quoted (making the \"-\" its second character).\n\nThis removes the need to manually unquote the args in the few cases\nwhere the code already handles them being in quotes.\n\nBug: 243662244\nTest: -\nChange-Id: I37b9aa96dcbbeb04616bddfca657d066b998d7c7\n"
    },
    {
      "commit": "dde806f72d96562888865317619a3984a4d64472",
      "tree": "bfabce1f8cfcda54d4476fc126b327de9713f800",
      "parents": [
        "61b8730ec6eee3e68102f46217559ab7d89ca2b7"
      ],
      "author": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Wed Aug 24 15:46:54 2022 +0100"
      },
      "committer": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Wed Aug 24 16:36:34 2022 +0100"
      },
      "message": "c2a: Extend unquote() to single quotes\n\nBug: 243662244\nTest: -\nChange-Id: I4de409b3135369425f8fa934f490e701505cd55d\n"
    },
    {
      "commit": "9f0dd71b8a565183a1137431d947d389e601fb62",
      "tree": "47825fcc1fad1e4aeb5b1bbc72120712a022d901",
      "parents": [
        "b1d8a2de5f1d0d50e23f198a9595d1a1559078c9"
      ],
      "author": {
        "name": "Frederick Mayle",
        "email": "fmayle@google.com",
        "time": "Wed Aug 17 20:34:26 2022 +0000"
      },
      "committer": {
        "name": "Frederick Mayle",
        "email": "fmayle@google.com",
        "time": "Wed Aug 17 20:36:45 2022 +0000"
      },
      "message": "cargo2android: fix test detection when there is exactly 1 test\n\nExample where it failed:\n\n    tests::sock_send_recv_event: test\n\n    1 test, 0 benchmarks\n       Doc-tests vm_control\n    0 tests, 0 benchmarks\n\nthe \"1 test, 0 benchmarks\" line wouldn\u0027t match the test regex, so it\nwould mistakenly parse the doc tests line instead and then fail to\ngenerate a rust_test module.\n\nTest: ran on crosvm repo\n\nChange-Id: Id0286165405b58bf84b7261db842e272442c91e8\n"
    },
    {
      "commit": "b1d8a2de5f1d0d50e23f198a9595d1a1559078c9",
      "tree": "15cc0a9015f82b7f3b6ad669529b28fad4b62299",
      "parents": [
        "e43c2bc9a74fb7d545a6af6fb9e994f18ff59a14",
        "ce53b80d816440d9bd63e80eb9cffdf3ddf0f5d6"
      ],
      "author": {
        "name": "Matthew Maurer",
        "email": "mmaurer@google.com",
        "time": "Wed Aug 17 16:08:32 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 17 16:08:32 2022 +0000"
      },
      "message": "Merge changes I4c3744e0,I91d8de92\n\n* changes:\n  c2a: Our cargo works again, re-enable defaulting.\n  c2a: Fix rust_version calculation\n"
    },
    {
      "commit": "51ec016f76af3617429c8da3e0c424d480d5ba46",
      "tree": "8fb63ad0b9c564c615455bcc3fc845e2a2a8ab58",
      "parents": [
        "ea3c580c004906f48ad7c9af4c5155b1e678312e"
      ],
      "author": {
        "name": "Matthew Maurer",
        "email": "mmaurer@google.com",
        "time": "Wed Aug 10 15:29:24 2022 -0700"
      },
      "committer": {
        "name": "Matthew Maurer",
        "email": "mmaurer@google.com",
        "time": "Wed Aug 10 15:29:24 2022 -0700"
      },
      "message": "rust: addr3prf: Support COPYING files\n\nPreviously, we only looked for LICENSE* files. This adds support for\ndetecting COPYING* files as an alternate representation of the license.\n\nBug: 234563254\nTest: get_rust_pkg.py -add3prf quiche\nChange-Id: Ic04ef42f349879be18a4307bd863288dfa81b5fc\n"
    },
    {
      "commit": "71722b10e5df36b3508e1afe165c3831cde13e2a",
      "tree": "9a05854b71420420486dcde6cf41a0f23b9add2c",
      "parents": [
        "5a5aa3357a6cb561dfb741e343a23be4660b963d"
      ],
      "author": {
        "name": "Frederick Mayle",
        "email": "fmayle@google.com",
        "time": "Wed Jul 27 00:13:52 2022 +0000"
      },
      "committer": {
        "name": "Frederick Mayle",
        "email": "fmayle@google.com",
        "time": "Wed Jul 27 00:13:52 2022 +0000"
      },
      "message": "cargo2android: Fix edge case in --add_workspace feature\n\nIf the last line of a Cargo.toml was a `[*]`, then appending\n`[workspace]` without newlines would result in an invalid toml file.\n\nexternal/crosvm/tracing/Cargo.toml is an example.\n\nTest: ran on crosvm\nChange-Id: Ib949e7f92d0205b1bc6433d1e231924832ddb536\n"
    },
    {
      "commit": "3a293c7bba60b162be8d176a2c13a5dcf679c561",
      "tree": "bc6cfc7c7dc1ba9e5f1fba41928cc009d5997bef",
      "parents": [
        "bd1460dca579dd45ed28a5f569b2e0bcbc858f27",
        "6529bcaf6af71a9ce116d1ecfac33bcf4f3aa5cc"
      ],
      "author": {
        "name": "Jeffrey Vander Stoep",
        "email": "jeffv@google.com",
        "time": "Thu Jul 07 08:24:42 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 07 08:24:42 2022 +0000"
      },
      "message": "Merge \"Revert \"c2a: add option to use Cargo.toml.orig\"\""
    },
    {
      "commit": "6529bcaf6af71a9ce116d1ecfac33bcf4f3aa5cc",
      "tree": "28ecc46f8ef4afa97d3fb91c791381237862d094",
      "parents": [
        "2adbd7ed89d6f4cd7a4766a2a534697f498171a0"
      ],
      "author": {
        "name": "Jeffrey Vander Stoep",
        "email": "jeffv@google.com",
        "time": "Wed Jul 06 12:34:37 2022 +0000"
      },
      "committer": {
        "name": "Jeffrey Vander Stoep",
        "email": "jeffv@google.com",
        "time": "Wed Jul 06 12:34:37 2022 +0000"
      },
      "message": "Revert \"c2a: add option to use Cargo.toml.orig\"\n\nThis reverts commit 2adbd7ed89d6f4cd7a4766a2a534697f498171a0.\n\nReason for revert: This doesn\u0027t work in all cases. For now I\u0027ll\ninstead use local patches for Cargo.toml :(\n\nChange-Id: I0621796e694e2654a01fe9a38a307fd0a4ab8b15\n"
    },
    {
      "commit": "1da99cc99e312c89871e455477f2fde3e2dee030",
      "tree": "69b5776c9688ac75c7fe3f5ccfccbd08de4f983c",
      "parents": [
        "6c8cfa3386bed43d52ce688e58d1094b960c1198",
        "2adbd7ed89d6f4cd7a4766a2a534697f498171a0"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jun 23 15:34:41 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 23 15:34:41 2022 +0000"
      },
      "message": "Merge \"c2a: add option to use Cargo.toml.orig\""
    }
  ],
  "next": "2adbd7ed89d6f4cd7a4766a2a534697f498171a0"
}
