)]}'
{
  "log": [
    {
      "commit": "8a9628098bbed62f3af13021b434238308adc7c1",
      "tree": "4163340a4c49f0c0db0d9aa145c4fc99f7693e2a",
      "parents": [
        "2d2e68ffaf29af085201f5200db5938d6040b79c"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Oct 09 15:29:27 2024 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Oct 10 11:59:52 2024 -0700"
      },
      "message": "Remove MutatorHandle.Parallel()\n\nAll mutators are parallel by default, remove the explicit Parallel()\ncalls.\n\nBug: 372540665\nTest: all soong tests pass\nFlag: EXEMPT refactor\nChange-Id: I41e3a71bd13c75b7fceae91b1c4cfe678ab62df2\n"
    },
    {
      "commit": "b8533a82cdbccb86e268bd3df9319f4cf6c9193b",
      "tree": "39be5b15ffef558eaf0b3cbe882d594d7b467754",
      "parents": [
        "b2388e3e3d67ab20292ada184bfbeb32d65d7d4c"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sat Oct 05 15:25:09 2024 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Oct 07 20:13:00 2024 -0700"
      },
      "message": "Annotate mutators that use methods that prevent mutator coalescing\n\nMutator coalescing reduces the overhead of visiting every module\nfor every mutator by calling a series of mutator methods on a\na single module in a row.  This is only valid for well-behaved\nmutators.  Add methods on MutatorHandle that allow annotating\nmutators that are not well behaved, and use that to prevent\ncoalescing mutators.\n\nBug: 372076859\nTest: all soong tests pass with race detector on\nFlag: EXEMPT refactor\nChange-Id: Id9b005f05227e5558cac6d488030a7398af13fb8\n"
    },
    {
      "commit": "0b28fa0b8408261ea74ed60691eb7be6da14db82",
      "tree": "43b691e3d37cb14f5711e9a11dcc7c102a5cffe6",
      "parents": [
        "1705676dd0ccaf56724ea6e0cfbddd0a73c2b802"
      ],
      "author": {
        "name": "Spandan Das",
        "email": "spandandas@google.com",
        "time": "Tue May 28 23:40:17 2024 +0000"
      },
      "committer": {
        "name": "Spandan Das",
        "email": "spandandas@google.com",
        "time": "Wed May 29 00:06:32 2024 +0000"
      },
      "message": "Override modules should always override source modules\n\nSince overrides are implemented as variants of the source module, the\noverride module should not be replaced with prebuilts of the source\nmodule even when the prebuilt is preferred.\n\nTest: go test ./apex\nChange-Id: I26e97f700276e7beaf6d1bd61b164f11d57a5e09\n"
    },
    {
      "commit": "98cea0e0d1f242b36501ceda684276fda0114c83",
      "tree": "c2da440ec4e455da030d12e4f98e8a7cde211d92",
      "parents": [
        "e8cb9178ec8b4faf24ffd3c0f123efa7f7f9fe65"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue May 14 20:15:05 2024 +0000"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed May 15 12:01:23 2024 -0700"
      },
      "message": "Reapply \"Convert overrides to a TransitionMutator\"\n\nReplace the performOverrideMutator with a TransitionMutator.\n\nThis relands I358f260f1bcd894d7803036ce77ba666c0429355, which was\nreverted due to a subtle behavior change when converting AliasVariation\ninto an IncomingTransition.  AliasVariation is temporary, losing its\neffect after the next call to CreateVariations that doesn\u0027t also call\nAliasVariation.  dexpreopt_bootjar.go was checking if a variant existed\nafter the apex mutator had run and obsoleted the alias created by the\nperform_override mutator.  When the alias was replaced by\nIncomingTransition it wasn\u0027t obsoleted and dexpreopt_bootjar.go found\nextra dependencies.  The extra dependencies were picked up by the\ncore licensing code walking dependencies, and caused a significant\nincrease to the size of system/etc/NOTICE.xml.gz.\n\nag/27324277 removed flags that triggered the extra dependencies,\nwhich prevents the system/etc/NOTICE.xml.gz increase for now.\nb/340911730 tracks avoiding the unnecessary dependencies if the\nflags are re-enabled.\n\nBug: 319288033\nFlag: NONE\nTest: all soong tests pass\nTest: no change to build.ninja\nChange-Id: I46171ba69f24482414a20d63a131941a162f025c\n"
    },
    {
      "commit": "efdbfe1ede68930e696b6299bca8908fa2f4d149",
      "tree": "fac5389c4b10e13e8bee45a3f69cb38e28d2db8f",
      "parents": [
        "4ba7b435e4a285b5661522a69ad04101caa51bce",
        "d7b2a45d47394da0619c21ef5b2d6792e2f2feba"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu May 09 21:35:12 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 09 21:35:12 2024 +0000"
      },
      "message": "Merge \"Revert \"Convert overrides to a TransitionMutator\"\" into main"
    },
    {
      "commit": "d7b2a45d47394da0619c21ef5b2d6792e2f2feba",
      "tree": "ff4a3e1add60c76aacdeee874c9ef2549e8644cd",
      "parents": [
        "49be24b833934d2675395c09594bb2d39b828944"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu May 09 20:18:49 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 09 20:18:49 2024 +0000"
      },
      "message": "Revert \"Convert overrides to a TransitionMutator\"\n\nThis reverts commit 49be24b833934d2675395c09594bb2d39b828944.\n\nReason for revert: b/338643193\nBug: 319288033\nBug: 338643193\n\nChange-Id: I7106e779e52ffc943bdcf7ee3b7c7b65fe34122e\n"
    },
    {
      "commit": "3f01580c04bfe37c920e247015cce93cff2451c0",
      "tree": "b2165cd64e2876d8fa4c60bd322de81364143aed",
      "parents": [
        "0d4a9ca79225bac10e4b62a663ee0cd09e3b314d",
        "a963b94cde194257fa67ce9596026a4da2fe7523"
      ],
      "author": {
        "name": "Cole Faust",
        "email": "colefaust@google.com",
        "time": "Tue May 07 17:49:10 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 07 17:49:10 2024 +0000"
      },
      "message": "Merge \"Make the enabled property configurable\" into main"
    },
    {
      "commit": "a963b94cde194257fa67ce9596026a4da2fe7523",
      "tree": "8bffbc8bdaa97f5bb57f533422623b62287f1326",
      "parents": [
        "01bd5b1ddf0706ecb683f1fc70bf1d11028e7591"
      ],
      "author": {
        "name": "Cole Faust",
        "email": "colefaust@google.com",
        "time": "Thu Apr 11 17:43:00 2024 -0700"
      },
      "committer": {
        "name": "Cole Faust",
        "email": "colefaust@google.com",
        "time": "Thu May 02 15:41:24 2024 -0700"
      },
      "message": "Make the enabled property configurable\n\nThis allows using select statements with it.\n\nBug: 323382414\nTest: m nothing --no-skip-soong-tests\nChange-Id: I6f3efaaa3d82505e38a91ee4ba0e18e404360191\nMerged-In: If355d24506e3f117d27b21442a6c02bca3402dc7\n"
    },
    {
      "commit": "49be24b833934d2675395c09594bb2d39b828944",
      "tree": "075bf83a7fa2e1ae0db292ffbd86e5728f634389",
      "parents": [
        "888046f053653ad3dd8e50d5d0478d1991b11691"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Apr 26 14:25:19 2024 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu May 02 15:31:58 2024 -0700"
      },
      "message": "Convert overrides to a TransitionMutator\n\nReplace the performOverrideMutator with a TransitionMutator.\n\nBug: 319288033\nFlag: NONE\nTest: all soong tests pass\nTest: no change to build.ninja\nChange-Id: I358f260f1bcd894d7803036ce77ba666c0429355\n"
    },
    {
      "commit": "b63d7b3af71b13d94f30f1d973d375a5fadfdd48",
      "tree": "4119f7f781e93397a929304fc9f8193dfab24b14",
      "parents": [
        "8ff105860d20f2ccbb8d8044bf562f94100b7f6a"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Dec 07 16:54:51 2023 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Dec 08 13:51:07 2023 -0800"
      },
      "message": "Remove infrastructure to run bp2build\n\nBug: 315353489\nTest: m blueprint_tests\nChange-Id: Idcf6377d389b94c39e4e6ff4b8efa8a9f9e78b17\n"
    },
    {
      "commit": "c86e094e131a0792215ddbf0256c16b3ab9e28e5",
      "tree": "34e44d42672c5fab32c65373a4811bce7a8f994a",
      "parents": [
        "4ed512b3c7c5ef53e4b82117d5021fc0ccb9b6d5"
      ],
      "author": {
        "name": "Liz Kammer",
        "email": "eakammer@google.com",
        "time": "Fri Aug 11 16:15:12 2023 -0400"
      },
      "committer": {
        "name": "Liz Kammer",
        "email": "eakammer@google.com",
        "time": "Mon Aug 14 11:03:05 2023 -0400"
      },
      "message": "Make ShouldConvertWithBp2build avail in loadhooks\n\nTest: Soong go tests\nChange-Id: I65af040152107ce50b1a97efcee9364f28bad08b\n"
    },
    {
      "commit": "ebaa5733173f687ed14c0b7aedfa72bcc990138d",
      "tree": "db0897a7975a9a2c8e98d03eff1591f993257eb4",
      "parents": [
        "acb7f7a7ce75c9b9ee82f715468f7ad90cdba23c"
      ],
      "author": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Tue May 02 11:43:14 2023 +0900"
      },
      "committer": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Thu May 04 10:36:27 2023 +0900"
      },
      "message": "Prebuilt replacing source should not change partition\n\nThis reveals unintended mistake (setting a wrong target partition) at\nbuild-time instead of runtime, which is much harder to debug.\n\nBug: 280368661\nTest: m nothing (soong test)\nChange-Id: Ic5e5e97ba918e24f7a59aceb405c2b105e28cccc\n"
    },
    {
      "commit": "20f0f780df380ee713289385f538866fa45e7551",
      "tree": "88c21aeac170385b26a6a680a97b78e5218acda8",
      "parents": [
        "12d170dc2ab1ba2cdc2e2dc5e0249ae58ed20dae"
      ],
      "author": {
        "name": "Liz Kammer",
        "email": "eakammer@google.com",
        "time": "Mon May 01 13:46:33 2023 -0400"
      },
      "committer": {
        "name": "Liz Kammer",
        "email": "eakammer@google.com",
        "time": "Tue May 02 09:27:55 2023 -0400"
      },
      "message": "Correct allowlisting for override modules\n\nPrevoiusly, we were partially correcting for override modules in\nbp2build/mixed builds in some but not all places. Now we always check\nfor override modules and ensure that Bazel_module properties are\npropagated properly for override modules.\n\nBug: 279609939\nTest: go test soong tests\nChange-Id: I5445aa71f4c8013315415a2ca9ab9c6b3be6bce0\n"
    },
    {
      "commit": "912c4ab16f4c47942c66ded50f4aabba06f51d16",
      "tree": "968714375bead167768e425617e861954f4b4b84",
      "parents": [
        "28cbb75a09c313956ac356d006106bc0c58d94ac"
      ],
      "author": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Sat Apr 22 13:46:59 2023 +0900"
      },
      "committer": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Tue Apr 25 15:57:38 2023 +0900"
      },
      "message": "override_apex can be replaced with apex_set\n\nBug: 279247159\nTest: m nothing\nChange-Id: Ic4f8b2b1ee936afe2bf26de7d6cae19d93ecc831\n"
    },
    {
      "commit": "889f2f28442f1d0757744c63399c1256c5d0e247",
      "tree": "bfb7bf8842b130d6a787b9e473cd73cea820ed93",
      "parents": [
        "597894279dc86250706f9666707396c906160045"
      ],
      "author": {
        "name": "Jingwen Chen",
        "email": "jingwen@google.com",
        "time": "Fri Dec 16 08:16:01 2022 +0000"
      },
      "committer": {
        "name": "Jingwen Chen",
        "email": "jingwen@google.com",
        "time": "Tue Dec 20 07:35:20 2022 +0000"
      },
      "message": "mixed builds: Make apex\u0027s GetBazelLabel return the label of the override_apex, if applicable.\n\nAnd add test1_com.android.tzdata to prod allowlist.\n\nFixes: 261054570\nBug: 261054570\nTest: mkcompare\nChange-Id: I314a4e44ade958ba9a91f71430d76175d734579e\n"
    },
    {
      "commit": "5a3ce13c6a63e51557a344a752b308184e49230a",
      "tree": "20cfdbd666f668a9fe8ad863383e2cbb0b3a8cf4",
      "parents": [
        "0fd548dcd072f8cefad9243d5fad808dff64bf5c"
      ],
      "author": {
        "name": "Daniel Norman",
        "email": "danielnorman@google.com",
        "time": "Thu Aug 26 15:44:43 2021 -0700"
      },
      "committer": {
        "name": "Daniel Norman",
        "email": "danielnorman@google.com",
        "time": "Thu Sep 02 09:28:52 2021 -0700"
      },
      "message": "Allows prebuilts in override_apex.\n\nBug: 197787336\nTest: Create an override_apex that uses a different `prebuilts` than its\n      base. Observe built contents.\nTest: apex_test.go\nChange-Id: I7666ed6cfe3f2fa5dd81e5f8c1961477dabbbd3c\n"
    },
    {
      "commit": "4102666b99cc911fbfd7afcd594a6648cc8c8d87",
      "tree": "c01bf3c2567ac873ca32f61dc17ffd67f3bb6940",
      "parents": [
        "c424b76f7623c5e42bfc5302786c47e95bf95656"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu May 06 11:59:38 2021 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu May 06 11:59:38 2021 -0700"
      },
      "message": "Remove registerOverrideMutator\n\nregisterOverrideMutator is no longer necessary, the new dependency is\nreturned in overrideModuleDepsMutator and can be immediately acted\nupon.\n\nTest: TestOverrideAndroidApp\nChange-Id: I82237bad88ccb1d9564e17512c948e770581823f\n"
    },
    {
      "commit": "f7c99f598321d139d7926a2bb34b16ec35e78a81",
      "tree": "5dab54ecab1950cf85c4dbc03c859f6d1323cc17",
      "parents": [
        "8d817b70e6889f2445be4c9ef507640e4104575c"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Apr 28 10:41:21 2021 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Apr 28 14:02:04 2021 +0100"
      },
      "message": "Add GetEmbeddedPrebuilt and IsModulePrebuilt\n\nDedups the many repetitions of the code to obtain a *Prebuilt from a\nmodule.\n\nBug: 177892522\nTest: m nothing\nChange-Id: I1ededbe9ee79e89ea6dd8882dfee4be0bf0b51b7\n"
    },
    {
      "commit": "86feead0d5f836e5c0c6298b6b0e3b6c691be4df",
      "tree": "ec0251a1ce73545ba3e124c4d18a4ab47385a9a6",
      "parents": [
        "acb7aeb9a80e97a9f54f6188ecca1e4cd7928ed5"
      ],
      "author": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Mon Mar 08 13:11:48 2021 +0900"
      },
      "committer": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Tue Mar 09 11:23:46 2021 +0900"
      },
      "message": "Run \"prebuilt_postdeps\" mutator again\n\nBecause OverridablePropertiesDepsMutator is run after prebuilt_postdeps,\nprebuilt\u0027s replacement doesn\u0027t affect to those deps added by overridable\nproperties.\n\nBy running prebuilt_postdeps again after\nOverridablePropertiesDepsMutator, replacing source with prebuilts is\napplied to those deps.\n\nBug: 152155285\nBug: 181953909\nBug: 181974714\nTest: m nothing\nChange-Id: I24acc02785c9580c2beca096042f1173eb28ba9a\n"
    },
    {
      "commit": "a9c8c9f1457a3848ff0d2c6bcb3dfbe256c1b8d4",
      "tree": "4f8131e3064cad70d015689cfda55bc15e1c0cd2",
      "parents": [
        "95b07f2b59049dd4a539780ed0c91b8809ce97a9"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Dec 16 10:20:23 2020 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Dec 17 10:02:18 2020 -0800"
      },
      "message": "Call ctx.InstallFile for uninstallable cc modules\n\nSkipInstall is actually primarily used to prevent making a module\nvisible to Make, rename it and add new SkipInstall that actually\nskips installation without affecting Make.\n\nCall c.SkipInstall() for uninstallable cc modules to allow calling\nc.installer.install, which will collect PackagingSpecs for\nuninstallable cc modules, allowing them to be used by genrules.\n\nBug: 124313442\nTest: m checkbuild\nChange-Id: I8038ed5c6f05c989ac21ec06c4552fb3136b9a7a\n"
    },
    {
      "commit": "cb6143a142a3a7985d18ad346a6c21314b90cf87",
      "tree": "68f0ec3db5c76ea3b1cd9403d169dfd390080442",
      "parents": [
        "133ebefb8d2bf57d3d8c4860a40729eb95cb6fa3"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Aug 14 17:39:29 2020 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Aug 19 11:19:14 2020 -0700"
      },
      "message": "Capture list of unused methods when shrinking in R8\n\nUse the -printusage flag in R8 to output a list of the unused\nmethods.  Some of the files can be large (2MB for DocumentsUI,\n87MB for all of AOSP), so immediately zip them and remove the\noriginals.  The zipped files will be merged and disted.\n\nBug: 151857441\nTest: m TARGET_BUILD_APPS\u003dDocumentsUI dist\nChange-Id: I780e84e80eba7fe4d4fa15fec0f461890afd900b\n"
    },
    {
      "commit": "1a8c8565bd1f77eea5caf9368594f132ccaa5faf",
      "tree": "d216f3402211d20b590ec75cd475888d2985cb95",
      "parents": [
        "a66f571e010fef50d0680cd54e8afa944c3859ac"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Jun 29 23:49:34 2020 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Jul 01 15:13:58 2020 -0700"
      },
      "message": "Fix out/soong/Android-\u003c\u003e.mk reproducibility\n\nWhen there were multiple modules overriding a single module, sometimes\nwe would create the list in different orders, which would trigger some\nof the later mutators to write the Android-\u003c\u003e.mk out in different\norders.\n\nBug: 160207422\nTest: diff out/soong/Android-\u003c\u003e.mk between multiple runs on internal master\nChange-Id: I321db706dd34aa20a0b1556fd282d54b826a4a97\n"
    },
    {
      "commit": "5c17ac003abb5bc9b6fe41ae5b20bc2db9efcd68",
      "tree": "5739c16c3c2ee9595f83a870a808cf9d25e39117",
      "parents": [
        "1bb4665c40df0368dd095223e4b14ef44e276c0e"
      ],
      "author": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Sat Jun 20 19:38:21 2020 +0900"
      },
      "committer": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Thu Jun 25 09:17:59 2020 +0900"
      },
      "message": "Check `base` property before using it\n\nOverrideModule\u0027s `base` property should point a valid\nmodule(OverridableModule).\n\nIt should be checked before using it.\n\nBug: 159503211\nTest: add `override_apex` without `base`\n      m emits error, not panic.\nChange-Id: I1d7c9395cc9a7461e317dd4b6ddbec3a9e68e9bf\n(cherry picked from commit 3851b0c1fe8e8ffd3d30b4b8a5289f39a2c98270)\n"
    },
    {
      "commit": "1e362dade7964240e69889652a8f4ebf82ec9492",
      "tree": "0db9bbbd354b667ae870e62014efaac1e7d09811",
      "parents": [
        "0e63a8e76180fe7a92000b6aa3bc0d5e64e2c564"
      ],
      "author": {
        "name": "Jaewoong Jung",
        "email": "jungjw@google.com",
        "time": "Tue Jun 23 07:58:13 2020 -0700"
      },
      "committer": {
        "name": "Jaewoong Jung",
        "email": "jungjw@google.com",
        "time": "Tue Jun 23 17:50:13 2020 -0700"
      },
      "message": "Change how override_modules work with prebuilts.\n\nIf an override module is overridden by a prebuilt, only skip its\ninstallation instead of completely ignoring it, so that other modules\nrely on it can still get configured and built properly.\n\nFixes: 159694118\nTest: m checkbuild\nMerged-In: I96d24f1440ff8a8aa8b1253fc22fd532b5588339\nChange-Id: I96d24f1440ff8a8aa8b1253fc22fd532b5588339\n"
    },
    {
      "commit": "fb25a64fdd00d9c2c77ed38840894c291b7a5e94",
      "tree": "e45b2f7ddb45efdfa3e28ab4cce1cf99f6f4f168",
      "parents": [
        "9e90e61ffdbf1831efb5019d2e9151b45aa001ec"
      ],
      "author": {
        "name": "Jaewoong Jung",
        "email": "jungjw@google.com",
        "time": "Thu Jun 11 10:37:51 2020 -0700"
      },
      "committer": {
        "name": "Jaewoong Jung",
        "email": "jungjw@google.com",
        "time": "Thu Jun 11 16:01:30 2020 -0700"
      },
      "message": "Make override modules compatible with prebuilts.\n\nPrebuilt\u0027s prefer flag doesn\u0027t work against override modules because\noverride modules are sort of virtual modules that delegate all the work\nto their base modules. Therefore, even if a prebuilt module suppresses\ninstallation of its src-counterpart override module, the actual build\nactions are still performed in the base module.\n\nThis change fixes it by filtering out override modules that are being\nreplaced by prebuilts.\n\nTest: prebuilt_test.go\nBug: 152155285\nChange-Id: I859b35c0629b2b6258dd1ec5e020ba2c77ff9612\n"
    },
    {
      "commit": "b64dd002b35af917f474ffb179e59af8f694c002",
      "tree": "ed19a95717f6aa4a35fbd334d8ae91a8eaef44c7",
      "parents": [
        "e35e961aa925e6ab75daf455d36875b3d6511081"
      ],
      "author": {
        "name": "Jaewoong Jung",
        "email": "jungjw@google.com",
        "time": "Fri Jan 10 13:26:00 2020 -0800"
      },
      "committer": {
        "name": "Jaewoong Jung",
        "email": "jungjw@google.com",
        "time": "Fri Jan 10 13:26:00 2020 -0800"
      },
      "message": "Rename OverridableModuleBase.properties.\n\nThe generic name causes confusion, even to the IDE.\n\nTest: TreeHugger\nChange-Id: I0cb4959ab41b4732e7ee7a5d1d818ef771674023\n"
    },
    {
      "commit": "7abcf8ead8238a463714aa58beb521ac8f538aa1",
      "tree": "767da87357acbc7f2a42caa29d397bda0cd7d8a5",
      "parents": [
        "ff8cb1e69e32cf1e63f843a616ee4b5759311132"
      ],
      "author": {
        "name": "Jaewoong Jung",
        "email": "jungjw@google.com",
        "time": "Thu Dec 19 17:32:06 2019 -0800"
      },
      "committer": {
        "name": "Jaewoong Jung",
        "email": "jungjw@google.com",
        "time": "Thu Dec 19 17:32:06 2019 -0800"
      },
      "message": "Make apex.overrides overridable by override_apex.\n\nTest: apex_test.go\nChange-Id: Id47e5e5bec45ec1ada68f9d2d806585c5141a2f9\n"
    },
    {
      "commit": "317645e84c9ce38eaeb4cdbb46f9b7b31ef51bf8",
      "tree": "5d7a4c72cc3dc9f31739e429161bbbf3570375f4",
      "parents": [
        "7b34ebf4474094259695df90e9a87bf57f5c83e2"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Dec 05 13:20:58 2019 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Dec 05 13:25:39 2019 +0900"
      },
      "message": "Overridden APEX doesn\u0027t contribute to the file contexts\n\nThis change fixes the problem that when an apex module is overridden by\nanother override_apex, the \u003capex_name\u003e-file_contexts are duplicated when\ncreating the system-level file-contexts.\n\nFixing this by not emitting the file_context info for the overridden\napex.\n\nIn doing so, OverridableModule interface was extended to have\nGetOverriddenBy() method which can be used to test whether a module is\nan overridden one or not.\n\nBug: 144338929\nTest: m (apex_test amended)\nTest: add \"override_apex {name:\"com.googlge.android.tzdata\",\nChange-Id: I5e9401c32899bb9987c90cba4185f571dc1a87f0\nbase:\"com.android.tzdata\"}\" and the build is successful\n"
    },
    {
      "commit": "5d790c3ddad12b66ebb2e8491c042269af6f2a73",
      "tree": "3386f0028d6b65321ecfd61f70d9469ea0c69df2",
      "parents": [
        "c6e9f92cfab07fded61b52f0645fab580e0858a2"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Fri Nov 15 18:40:32 2019 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Tue Nov 19 16:49:36 2019 +0900"
      },
      "message": "Add override_apex module type\n\noverride_apex module type is used to override existing apex module with\ncertain properties overridden. Currently, only the \u0027apps\u0027 property is\noverridable.\n\nBug: 144338929\nTest: m\nChange-Id: Ic050b062093cda29ce78126cc92dd6097647f7db\n"
    },
    {
      "commit": "26dedd36ed3853dc210730a41da5afbc95afcc0a",
      "tree": "e6027ad2829919ed80e29ff8c09dc0606284a21f",
      "parents": [
        "9f88ce26a80dc85cb3a6033f52e9fbc82c400ed1"
      ],
      "author": {
        "name": "Jaewoong Jung",
        "email": "jungjw@google.com",
        "time": "Thu Jun 06 08:45:58 2019 -0700"
      },
      "committer": {
        "name": "Jaewoong Jung",
        "email": "jungjw@google.com",
        "time": "Fri Nov 15 15:06:06 2019 -0800"
      },
      "message": "Add override_android_test.\n\nThis change also adds instrumentation_target_package to android_test, so\nthat the target package name in a test manifest can be easily\noverridden.\n\nFixes: 134624457\nTest: app_test.go\nChange-Id: Ib8dd703da0038ac76210c92d79e133e37c718122\n"
    },
    {
      "commit": "8985d527ae03bd13c1854e4f2f5088841c8f62f5",
      "tree": "1cce626de0fa53bf585bf21e0af3614ac272da05",
      "parents": [
        "72ea641dffd8b6d037d1529ea6946c726a624f14"
      ],
      "author": {
        "name": "Jaewoong Jung",
        "email": "jungjw@google.com",
        "time": "Wed Jun 19 11:22:25 2019 -0700"
      },
      "committer": {
        "name": "Jaewoong Jung",
        "email": "jungjw@google.com",
        "time": "Wed Jun 19 11:22:25 2019 -0700"
      },
      "message": "OverridableModuleBase shouldn\u0027t embed ModuleBase.\n\nIndividual module structs normally embed ModuleBase themselves. This\ncaused duplicate embedding, and so made common properties like notice\ninaccessible.\n\nBug: 135460391\nTest: app_test.go, TreeHugger\nChange-Id: I5683b194e3de909d480c083a931cc7e871de1d74\n"
    },
    {
      "commit": "b639a6adb284ad8c9d320127fd205b77990ef146",
      "tree": "6f792947a505e62ae18c5023c6926ba5d1d27788",
      "parents": [
        "bc975e8b897eaff7e5729fc362c31d35e838526a"
      ],
      "author": {
        "name": "Jaewoong Jung",
        "email": "jungjw@google.com",
        "time": "Fri May 10 15:16:29 2019 -0700"
      },
      "committer": {
        "name": "Jaewoong Jung",
        "email": "jungjw@google.com",
        "time": "Wed May 15 12:11:18 2019 -0700"
      },
      "message": "Fix override_android_app dependency issues.\n\nThis change fixes an issue where an android_test could not depened on an\noverride_android_app or an android_app overridden by one by moving all\noverride processing to post-deps and forwarding incoming dependencies on\noverride_android_apps to base android_app modules\n\nFixes: 132447700\nTest: app_test.go\nChange-Id: I4ac593be661f541f5ea9823ef97373bee4b186f9\n"
    },
    {
      "commit": "a641ee9cc78840e2067533d83a41aebe070b5b60",
      "tree": "14f211d4a935a78726fc390f59e88dc844e5ff3e",
      "parents": [
        "ac7f27eab0ca0574f14875416fa471137c8736f2"
      ],
      "author": {
        "name": "Jaewoong Jung",
        "email": "jungjw@google.com",
        "time": "Wed Mar 27 11:17:14 2019 -0700"
      },
      "committer": {
        "name": "Jaewoong Jung",
        "email": "jungjw@google.com",
        "time": "Wed Mar 27 11:21:24 2019 -0700"
      },
      "message": "Fix an override_module bug.\n\nproptools.PrependProperties doesn\u0027t replace a pointer when both the src\nand the dst have one. This prevented override_module from overriding\nsimple value pointer properties when the base module has existing\nvalues. It turns out this was why the name property needed to be\noverwritten manually.\n\nBug: 122957760\nTest: app_test.go\nChange-Id: I3302287c31a560422548c22fade95261ddbe606a\n"
    },
    {
      "commit": "525443aa22641c57c1fac269ddba8bf869266c5f",
      "tree": "b102e36eb9d200d984f0884bcfb53b1601c8db76",
      "parents": [
        "53c88448fd2497023cd6403a7aa72a3f763f3e3a"
      ],
      "author": {
        "name": "Jaewoong Jung",
        "email": "jungjw@google.com",
        "time": "Thu Feb 28 15:35:54 2019 -0800"
      },
      "committer": {
        "name": "Jaewoong Jung",
        "email": "jungjw@google.com",
        "time": "Thu Mar 21 13:26:20 2019 -0700"
      },
      "message": "Add override_android_app module type.\n\nThis is a new implementation of overriding module types that makes use\nof local variants. With this, product owners can use PRODUCT_PACKAGES to\ndecide which override module to include in their products.\n\nBug: 122957760\nBug: 123640028\nTest: app_test.go\nChange-Id: Ie65e97f615d006b6e9475193b6017ea9d97e8e97\n"
    },
    {
      "commit": "acb6db331bca698a806114f3de0fe8a04cdb5938",
      "tree": "2d4e4b6b56231815a7e00471146b77c01c4e5236",
      "parents": [
        "aa65e17016152d0d73cd10ab3987bc3bd5c2ef91"
      ],
      "author": {
        "name": "Jaewoong Jung",
        "email": "jungjw@google.com",
        "time": "Thu Feb 28 16:22:30 2019 +0000"
      },
      "committer": {
        "name": "Jaewoong Jung",
        "email": "jungjw@google.com",
        "time": "Thu Feb 28 16:22:30 2019 +0000"
      },
      "message": "Revert \"Add override_module.\"\n\nThis reverts commit aa65e17016152d0d73cd10ab3987bc3bd5c2ef91.\n\nReason for revert: Not compatible with PRODUCT_PACKAGES, and so has very limited use.\n\nChange-Id: Ib141d3984a6f12bb50989e66037494c466b066f1\n"
    },
    {
      "commit": "aa65e17016152d0d73cd10ab3987bc3bd5c2ef91",
      "tree": "a5438418e791c46ff902a1f919fddce269342a45",
      "parents": [
        "6bd446620c663de2aba60f1dde554e8ebca39f6a"
      ],
      "author": {
        "name": "Jaewoong Jung",
        "email": "jungjw@google.com",
        "time": "Fri Feb 22 16:28:40 2019 -0800"
      },
      "committer": {
        "name": "Jaewoong Jung",
        "email": "jungjw@google.com",
        "time": "Wed Feb 27 14:35:39 2019 -0800"
      },
      "message": "Add override_module.\n\nThis new module type replaces the inherit-package function in make by\nallowing developers to override the name, the certificate, and the\nmanifest package name of an android_app module.\n\nBug: 122957760\nFixes: 123640028\nTest: app_test.go + BrowserGoogle\nChange-Id: Iefe447e7078b25039233221361ef95c83a29973a\n"
    }
  ]
}
