)]}'
{
  "log": [
    {
      "commit": "28c9657e2452a9399877899f84f7f07f055c9d2b",
      "tree": "8eb578386abc22550631b22f534275aa505875a1",
      "parents": [
        "d72360f84bbba72c2fe91dd8991185c7451710e0"
      ],
      "author": {
        "name": "Jihoon Kang",
        "email": "jihoonkang@google.com",
        "time": "Wed Sep 11 23:44:44 2024 +0000"
      },
      "committer": {
        "name": "Jihoon Kang",
        "email": "jihoonkang@google.com",
        "time": "Fri Sep 20 21:55:23 2024 +0000"
      },
      "message": "Revert^2 \"Restrict java_sdk_library in libs\"\n\nInstead, the module should specify the submodule it actually depends on.\nThis is a prereq change to removing the java_sdk_library \"magic\"\n\nTest: m nothing --no-skip-soong-tests\nBug: 366069293\nChange-Id: Idb4b0b0a953f5391c24e50294c940522b73c34f2\n"
    },
    {
      "commit": "5623e5425ab8c9f7be114c1229fede4af9b5fbf2",
      "tree": "4a8d55169e605234561de59de12f4febed916b83",
      "parents": [
        "d3b020a8c301b76791dbb0aa25b3a0e5e33d13fb"
      ],
      "author": {
        "name": "Jihoon Kang",
        "email": "jihoonkang@google.com",
        "time": "Wed Jan 31 23:27:26 2024 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Apr 19 10:56:32 2024 +0100"
      },
      "message": "Support passing multiple last api files to metalava in droidstubs\n\nThis change supports passing multiple last api files to metalava,\ninstead of emitting an error when multiple files are passed as inputs.\n\nThe last api file providing modules are filegroups or genrule modules\nthat output exactly one output file. This change modifies that behavior\nso that the filegroups can output multiple api files.\n\nThe last api file providing modules are (mostly) generated from the\n`prebuilt_apis` sdk module. However, these modules only provide a single\napi scope txt files (e.g. system api scope last api file filegroup\nwould only provide last system api file, not system + public). This\nchange modifies `prebuilt_apis` by generating \"combine\" filegroup\nmodules, that include api files of the subset api scopes as well.\n\nThe ordering of the files are handled when generating the combined api\nfilegroup modules, and droidstubs module does not check whether the\npassed api files are in order from the narrowest api scope to the widest\napi scope.\n\nSubmission of this change will be done once metalava fully supports\nhandling multiple api files input for api lint and nullness migration.\n\nTest: m nothing\nBug: 321827591\nChange-Id: I2066e7ceb7ee7c6d0fd87cd43bfd08db906d4b8f\n"
    },
    {
      "commit": "748a24dd6e2fea894a8130604771ae9757434ec8",
      "tree": "2fb3146b44bac645b4f4abef64dae1348e17c04e",
      "parents": [
        "8426848ade55170fc6cf543b5dfc6bd97333c7d3"
      ],
      "author": {
        "name": "Jihoon Kang",
        "email": "jihoonkang@google.com",
        "time": "Wed Mar 20 21:29:39 2024 +0000"
      },
      "committer": {
        "name": "Jihoon Kang",
        "email": "jihoonkang@google.com",
        "time": "Wed Mar 20 21:29:39 2024 +0000"
      },
      "message": "droidstubs depend on the combined last api filegroup modules\n\nThis change creates a \"combined\" filegroup module, which will contain\nall api files of the subset api scopes in the followup change. In this\nchange, the \"combined\" filegroup is identical to the currently existing\nlast api filegroup module in that it only contains the api file /\nremoved api file of the specific api scope.\n\nThis change also passes the \"combined\" filegroup to the droidstubs\nmodule generated from the sdk_library modules, but this currently does\nnot lead to any functional changes as the \"combined\" filegroup is\nidentical to the currently existing last api filegroup.\n\nTest: m nothing --no-skip-soong-tests\nBug: 321827591\nChange-Id: If73a7229f2f970f7e74cd010a8b4808dc9018344\n"
    },
    {
      "commit": "8ff105860d20f2ccbb8d8044bf562f94100b7f6a",
      "tree": "b01575cd628eb36807b7ca274de28fd6a1971e17",
      "parents": [
        "e51c6e4109e8063e54cf7d8ced1b7da7f9359c34"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Dec 07 13:10:56 2023 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Dec 08 13:51:05 2023 -0800"
      },
      "message": "Remove ConvertWithBp2build implementations\n\nRemove the ConvertWithBp2build implementations from all the module\ntypes, along with the related code.\n\nBug: 315353489\nTest: m blueprint_tests\nChange-Id: I212672286686a318893bc7348ddd5a5ec51e77a7\n"
    },
    {
      "commit": "2ec7e1c55c327f72f963df88c5a36e85885b1f67",
      "tree": "4d52e57c02d73c8ea75ed2601dee09c01e9ba9c7",
      "parents": [
        "1725b20d144e7f7054e63f88e297c5461e6dbe9e"
      ],
      "author": {
        "name": "Todd Lee",
        "email": "leetodd@google.com",
        "time": "Fri Aug 25 18:02:13 2023 +0000"
      },
      "committer": {
        "name": "Todd Lee",
        "email": "leetodd@google.com",
        "time": "Fri Aug 25 18:03:44 2023 +0000"
      },
      "message": "Support for incremetal platform prebuilt APIs\n\nThis change provides support for prebuilt incremental platform API (i.e.\nAPI changes associated with a QPR, as opposed to a major dessert\nreleas).\n\nThis feature is provided via the existing prebuilt_apis module with the\nintroduction of a new attribute:\n\n    allow_incremental_platform_api\n\nWhile typical platform prebuilt APIs are presumed to be under a\ndirectory structure that follows the pattern:\n\n\u003cversion\u003e/\u003cscope\u003e/\u003cmodule\u003e.jar\n\u003cversion\u003e/\u003cscope\u003e/api/\u003cmodule\u003e.txt\n\nWhere \u003cversion\u003e is limited to a single integer signifying the API level.\n\nFor modules where allow_incremental_platform_api is set to \u0027true\u0027 (false\nby default) the pattern is the same, however \u003cversion\u003e is presumed to be\nof the form MM.m, where MM aligns with the existing API level and m\nsignifies the incremental release (e.g. QPR).\n\nBug: b/280790094\nTest: platform build check with both incremental \u0026 non-incremental API\n      cd build/soong \u0026\u0026 go test ./java\n(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:eee6995093485497bc29cdce01c2a86765ffb4eb)\nChange-Id: I67e293006ccfa210d0dcc0a294db894632f1b6cb\n"
    },
    {
      "commit": "ea48fdc6f8735445612c152f67585b4cf8198b72",
      "tree": "f23378b96e20cc640efaa5ecf498f35d46709d34",
      "parents": [
        "26446238d6cb95513e9332a21339d8db7759d7fb",
        "8242b43df84c883db8f7231a3d0e82849583e94d"
      ],
      "author": {
        "name": "Romain Jobredeaux",
        "email": "jobredeaux@google.com",
        "time": "Wed May 10 18:23:51 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 10 18:23:51 2023 +0000"
      },
      "message": "Merge \"Map prebuilt_apis labels to Bazel\u0027s manually generated ones.\""
    },
    {
      "commit": "8242b43df84c883db8f7231a3d0e82849583e94d",
      "tree": "deb8a5bb87c00e153e5ba921df41ad451c845664",
      "parents": [
        "30208863b4ffdf48bd75549a20d083ef8950c3a2"
      ],
      "author": {
        "name": "Romain Jobredeaux",
        "email": "jobredeaux@google.com",
        "time": "Thu May 04 10:16:26 2023 -0400"
      },
      "committer": {
        "name": "Romain Jobredeaux",
        "email": "jobredeaux@google.com",
        "time": "Mon May 08 15:26:43 2023 -0400"
      },
      "message": "Map prebuilt_apis labels to Bazel\u0027s manually generated ones.\n\nChange-Id: I5bec807da9b39e2b166af1bd83da43df91f997ef\nBug: 237810289\nTest: check that android-non-updatable.stubs.module_lib uses manual\nbazel target for its sdk_system_current_android dependency\n\nChange-Id: I6f5fb348e1dcaad10eb756382359f34de792b6e0\n"
    },
    {
      "commit": "daa314ac97d5ab8076113ee7f269b4e4cc3cf620",
      "tree": "794722ad6c28858ce6b8aa0c0c7328860fabf939",
      "parents": [
        "a1961e7eedf7613e208db55b9eb1fa51d11a50a7"
      ],
      "author": {
        "name": "Gurpreet Singh",
        "email": "gurpreetgs@google.com",
        "time": "Fri Apr 21 16:30:03 2023 +0000"
      },
      "committer": {
        "name": "Gurpreet Singh",
        "email": "gurpreetgs@google.com",
        "time": "Thu May 04 21:02:47 2023 +0000"
      },
      "message": "Add genrule to build *.latest.version build target.\n\nBuild a new target *.latest.version which will contain a text file\ncontaining the last finalized version.\n\nBug: 242316893\nTest: atest prebuilt_apis_test\nChange-Id: I41fa91c9ec273f342b7807c66c4d65ba13260124\n"
    },
    {
      "commit": "18994c73f11db00371be747c8dca6da1c01fa2ef",
      "tree": "76516067d92eb71defdcb276a6dc910cb50bd266",
      "parents": [
        "20eed826fd037d27f87631bd6e64e0ea651621e7"
      ],
      "author": {
        "name": "Cole Faust",
        "email": "colefaust@google.com",
        "time": "Tue Feb 28 16:02:16 2023 -0800"
      },
      "committer": {
        "name": "Cole Faust",
        "email": "colefaust@google.com",
        "time": "Tue Feb 28 16:51:32 2023 -0800"
      },
      "message": "Replace SortedStringKeys with SortedKeys\n\nNow that we have generics.\n\nBug: 193460475\nTest: presubmits\nChange-Id: I1594fd8feb505175d5c09c03ef397e5ffd5b09cb\n"
    },
    {
      "commit": "7212dbef03157f0bd048410c07283e4f1232b876",
      "tree": "f728ffaf1facaccc9789e06d48cebedfd982b319",
      "parents": [
        "62b471ae7123c1e63378d2679667276065cec157"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Tue Sep 20 17:08:49 2022 +0000"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Wed Sep 21 11:51:21 2022 +0000"
      },
      "message": "Tweak logic for when extension txt is latest\n\nAlways use the latest extension as the latest API, regardless of\nthe current base extension version. This makes it so that we can\nbump the base in master without changing which txt is considered\nlatest.\n\nAlso extend the error check to apply more widely (which caught an\nerror in the extension 3 finalization).\n\nBug: 228017107\nTest: m checkapi (with api break \u0026 bumped base)\nTest: prebuilt_apis_test.go\nChange-Id: Ia10eb41ff500c566736f0d29a29984a99386bb6f\n"
    },
    {
      "commit": "958806b8c846a5c37830721d82e2d2adb9e7dc16",
      "tree": "943592cded1980c9a5b32594faeeb2b6eb2b3f63",
      "parents": [
        "4dd76eb26c6f673a85d1c33c504e3beb1324bcdb"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon May 16 13:10:47 2022 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon May 16 17:09:10 2022 +0000"
      },
      "message": "Add custom java_sdk_library info to the SDK info file\n\nPreviously the SDK info file only contained basic common information\nabout each member. This change adds support for each member to\nprovide custom information to add to the info file.\n\nIt uses that mechanism to add the following:\n* \"dist_stem\"\n* \"scopes\" object containing:\n  * for each scope a:\n    \"\u003cscope\u003e\" object containing:\n    * \"current_api\" - the path within the snapshot for the API\u0027s .txt\n                      file.\n    * \"removed_api\" - the path within the snapshot for the removed\n                      API\u0027s .txt file.\n    * \"latest_api\" - the path within the build to the latest finalized\n                     API .txt file.\n    * \"latest_removed_api\" - the path within the build to the latest\n                             finalized removed API .txt file.\n\nIn order to access the latest API files it was necessary to add and\nresolve dependencies on the module that makes them available. In order\nto do that safely the code for creating the names of the modules was\nrefactored to avoid duplicating the name creation logic.\n\nBug: 204763318\nTest: m nothing\nChange-Id: Ica68abbd2b2c7c2b2b7877b502f96cc89f06fd68\n"
    },
    {
      "commit": "3a3f169b5634ef6a7c9ad1040e7cf92dd60a37da",
      "tree": "e9cf98d7bdf017d4225e0b2baef544eb456734ea",
      "parents": [
        "377318b33fca4bde6cea3b5d5059c3aceab73890"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Tue Feb 15 12:55:11 2022 +0000"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Mon Feb 21 16:43:43 2022 +0000"
      },
      "message": "Add support for sdk extensions in prebuilt_apis\n\nThis makes it possible to pass an extensions_dir containing finalized\nmodule APIs to prebuilt_apis. The extension versions are compared to the\napi level versions to figure out what the \"latest\" finalized API is for\neach module. This is done using the base_sdk_extension_version, such\nthat any extension higher than than base_sdk_extension_version is\nassumed to be finalized after any of the existing api level versions.\n\nBug: 220086085\nTest: prebuilt_apis_test.go\nTest: existing module in prebuilts/sdk\nChange-Id: Ib792f84202d436f594ba5e8716c6a187f9cd60dc\n"
    },
    {
      "commit": "377318b33fca4bde6cea3b5d5059c3aceab73890",
      "tree": "9804dba07fb9a90af783fd833b2f9bbb8cf38be3",
      "parents": [
        "97d0bae750d56d0e8daa687e190348e8efad594a"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Tue Feb 15 12:55:11 2022 +0000"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Fri Feb 18 15:34:37 2022 +0000"
      },
      "message": "Refactor prebuilt_apis.go\n\nImprove code re-use and improve the names and data types of various vars\nand functions. This makes it easier to extend it for the new use-case of\nalso supporting sdk extension versions on top of the current api level\nversions.\n\nThis change is intended to be a noop.\n\nBug: 220086085\nTest: m nothing (existing soong tests)\nChange-Id: Icf4b320285f791e3b335f71f3c8b1ac52129dbc9\n"
    },
    {
      "commit": "b077bcc6bc5839de98ecb94a3416c69bc54f97c2",
      "tree": "0b2121379b705fc3b5481fa9b1e57b2c5c339b27",
      "parents": [
        "1cad3a53db591d5f40d4a7d7ac883fd10763fd98"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Oct 28 13:27:37 2021 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Nov 01 16:37:49 2021 +0000"
      },
      "message": "Create prebuilt system modules for all API scopes\n\nPreviously, system modules were only created for the public API scope.\nThis change creates them for any API scope as long as its directory has\na core-for-system-modules.jar.\n\nIt does that by hooking into the existing logic for creating a\njava_import for all jars in the API directories and creating a\njava_system_modules for every core-for-system-modules.jar file. That\navoids the need for extra path globs.\n\nTest: m droid\n      m sdk_public_current_system_modules\n      - works as expected.\n      m sdk_module-lib_current_system_modules\n      - fails with missing target as expected.\n      touch prebuilts/sdk/current/module-lib/core-for-system-modules.jar\n      m sdk_module-lib_current_system_modules\n      - fails with invalid jar file as expected.\nBug: 204189791\nChange-Id: I27a264941009e03439d5d847dab14a7b4f6f119f\n"
    },
    {
      "commit": "fa5e6b50aa739692da015981686e604ea94f579c",
      "tree": "23f0038bedb0bf6b99cadeae3df62546318cabfa",
      "parents": [
        "6050c3c31e8d8444adc4d8f373fa2f75f321ba1c"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Tue Apr 13 19:09:48 2021 +0100"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Tue Apr 13 19:09:48 2021 +0100"
      },
      "message": "Remove special case code for obsolete files\n\nincompatibilities.txt doesn\u0027t exist anymore, only\n\"\u003cmodule\u003e-incompatibilities.txt\". Clean up the associated logic that\nmapped incompatibilities.txt to android-incompatibilities.txt.\n\nBug: 178171189\nTest: m\nChange-Id: I61eeb5dcc82770fa2af356bad11b7205551d6d83\n"
    },
    {
      "commit": "f18ff339a9f467af1b8ac95caee38c31315fcbe0",
      "tree": "cd9f5959223b021b2488affc66d49c0455de47e0",
      "parents": [
        "48b8df14be49be41af455d5ddcc8af04777640a9",
        "d6c2a6521166ef373af7ce13a223d8dc1a7c3601"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Mar 11 15:09:47 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 11 15:09:47 2021 +0000"
      },
      "message": "Merge \"prebuilt_apis should create a java_system_modules_import\""
    },
    {
      "commit": "d6c2a6521166ef373af7ce13a223d8dc1a7c3601",
      "tree": "5bddd895590cbf53e4af6144be0e863b69409589",
      "parents": [
        "a55aefd57b5e3aa89648cfc5bca8dcb9eb8322f3"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Mar 11 07:56:22 2021 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Mar 11 08:01:19 2021 +0000"
      },
      "message": "prebuilt_apis should create a java_system_modules_import\n\nPreviously it was creating a java_system_modules which worked fine\nbecause apart from the prebuilt nature the two are functionally\nidentical. However a follow up change will differentiate between them\nwhich would break this code.\n\nBug: 182402568\nTest: m nothing\nChange-Id: Ifc13ce31235494e338d730c61a99d8887c5a2c5b\n"
    },
    {
      "commit": "1a97ee0b202ad23b5a45358dde67cbf085edbfc4",
      "tree": "983c325f2c257f6b64117871e52678b47c5d7d9d",
      "parents": [
        "05ebca4f7fc4dc391575d58db766bb42d16934fe"
      ],
      "author": {
        "name": "Jaewoong Jung",
        "email": "jungjw@google.com",
        "time": "Tue Mar 09 13:25:02 2021 -0800"
      },
      "committer": {
        "name": "Jaewoong Jung",
        "email": "jungjw@google.com",
        "time": "Tue Mar 09 16:26:03 2021 -0800"
      },
      "message": "Populate baseline_file values.\n\nSet baseline_file properties of droidstubs generated in sdk_libary.go to\nincompatibilities modules auto-generated by prebuilt_api. This requires\nprebuilt_api to generate the modules whether next_api_dir is set or not.\n\nTest: TreeHugger\nBug: 180123247\nChange-Id: I690604a8a54e9d9419f072a28a0c0e7734abbd85\n"
    },
    {
      "commit": "c79d412b8a8de3d9700e5d60dca0213bbb38171e",
      "tree": "b8e70d0b4eca703fa1d320601412c38e9b40c9ae",
      "parents": [
        "a0516f76abaa765f1ee22ca5c087fbdfc4db1075"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Wed Feb 17 14:21:33 2021 +0000"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Wed Feb 17 17:16:43 2021 +0000"
      },
      "message": "Use genrule instead of filegroup for api files\n\nfilegroups have the unfortunate limitation that they don\u0027t create phony\ntargets for building them in a convenient way. Also, having a single\noutput file fits better with the genrule concept.\n\nTest: m framework-sdkextensions.api.public.latest\nChange-Id: I229410658b04403ff1ff6abd4116a65aaa02b83b\n"
    },
    {
      "commit": "20ce41d0b929b32daed83796ccbc3975f7d5fa33",
      "tree": "091b883a03b78fd9fe4ea7153f48f1adc9c6cf4d",
      "parents": [
        "370fd0b0500e8817eb1f4cc94ba0fbc29b8444a8"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Fri Jan 22 15:05:32 2021 +0000"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Tue Jan 26 18:08:19 2021 +0000"
      },
      "message": "Fix prebuilt_apis creating of \"latest\" incompatibilities\n\nIncompatibilities are a bit special in that we only ever want to use\nthe \"latest\" if it is for a non-finalized SDK.\n\nAdd a new argument, next_api_dir, and use only those files to create\n\"latest incompatibilities\". Create empty incompatibilities for all\nmodules not in next_api_dir.\n\nBug: 178171189\nTest: m\nChange-Id: I727a52e3a45a5e607c6176d481b40fbf495c6eb0\n"
    },
    {
      "commit": "370fd0b0500e8817eb1f4cc94ba0fbc29b8444a8",
      "tree": "1562809fe93e9bf55b4e787e1b13518d62685a57",
      "parents": [
        "f17b07fc52b49896d0a357f3deeba7177180907c"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Fri Jan 22 15:05:04 2021 +0000"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Mon Jan 25 10:58:41 2021 +0000"
      },
      "message": "Minor cleanup in prebuilt_apis\n\nUse ints instead of strings for version comparison.\n\nBug: 178171189\nTest: m\nChange-Id: I53d71b138a64b902b3f00adafec5d354630a5e35\n"
    },
    {
      "commit": "4e7f2607edbb631977ac66bddb9e494398cb0d4c",
      "tree": "ed15337343324413ea1d7dda15b24ccbd10e576f",
      "parents": [
        "3652018b83d7a46a937564aa0c981e0aee586fbd"
      ],
      "author": {
        "name": "Liz Kammer",
        "email": "eakammer@google.com",
        "time": "Wed Sep 02 08:37:49 2020 -0700"
      },
      "committer": {
        "name": "Liz Kammer",
        "email": "eakammer@google.com",
        "time": "Wed Sep 02 09:27:35 2020 -0700"
      },
      "message": "Add imports_compile_dex to prebuilt_apis\n\nAllows specifying compile_dex for java_import modules generated by\nprebuilt_apis.\n\nBug: 160455085\nTest: m sdk_public_current_android\nChange-Id: Id316ba740577b2c9c0522368c01072864cda6cca\n"
    },
    {
      "commit": "2d2fd859bb9c62afb34b28d41a1c26d4d2879384",
      "tree": "ccd64e9153874e380e4aef7706829cd7a87233fb",
      "parents": [
        "ff6752dfbc7db0bbcaaf5ada7c8ec1d760f7bf32"
      ],
      "author": {
        "name": "Liz Kammer",
        "email": "eakammer@google.com",
        "time": "Wed Aug 12 14:42:30 2020 -0700"
      },
      "committer": {
        "name": "Liz Kammer",
        "email": "eakammer@google.com",
        "time": "Thu Aug 20 09:48:50 2020 -0700"
      },
      "message": "Add imports_sdk_version to prebuilt_apis\n\nThis allows setting the prebuilt sdk\u0027s generated java_imports\nsdk_version to \"none\".\n\nTest: go tests\nTest: m\nBug: 160455085\nChange-Id: Id24aca811f0f09692971e63418da6685d8351737\n"
    },
    {
      "commit": "f971af799795f1ca61391a45a76e0e012da377d6",
      "tree": "36a85eaaaab5d8b8139e736d8fb6fa231fac18c8",
      "parents": [
        "ed62b9cc2a24dd0874f8689902bad759a722497a"
      ],
      "author": {
        "name": "Liz Kammer",
        "email": "eakammer@google.com",
        "time": "Mon Jul 13 15:36:20 2020 -0700"
      },
      "committer": {
        "name": "Liz Kammer",
        "email": "eakammer@google.com",
        "time": "Mon Jul 13 15:41:20 2020 -0700"
      },
      "message": "Set sdk_version for prebuilt_api to scope\n\nRemove old TODO setting sdk_version to \"current\" as the associated bug\nappears to have been fixed.\n\nTest: m checkapi\nChange-Id: I7737fbd17d2f54fc4578e04d07875b4b8d408ef9\n"
    },
    {
      "commit": "17dec171b4e6e260ac9925dca620afe2912c3617",
      "tree": "804e07960d98c03609913fdf4118c4703eaaa94b",
      "parents": [
        "61b5e26f27f7d106177308289437b769722a1548"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu May 14 18:05:32 2020 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri May 15 17:21:58 2020 -0700"
      },
      "message": "Use system modules for prebuilt SDKs \u003e\u003d30\n\nPrebuilt SDKs \u003e\u003d30 now contain core-for-system-modules.jar,\nconvert them to system modules and use them when compiling against\nthe SDK to allow using javac -source 1.9 -target 1.9.\n\nBug: 117069453\nTest: TestClasspath\nChange-Id: Iebadad5980b952ed91c3ffd56cff1ce1827d3247\nMerged-In: Iebadad5980b952ed91c3ffd56cff1ce1827d3247\n"
    },
    {
      "commit": "8d23969bb6bc1ef80621be115061296c364cdd7c",
      "tree": "97d267303f2fc39ccd7dcbb7bd413480fe1519f7",
      "parents": [
        "266a66e20cf061aef70b879b710587cfa9aed49a"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Fri May 01 18:37:15 2020 +0100"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Mon May 04 13:52:43 2020 +0100"
      },
      "message": "Make prebuilt_sdk support module-lib and system-server\n\nThis makes prebuilt_sdk look for and create modules in the module-lib\nand system-server subdirs too, e.g.:\n    framework-wifi.api.module-lib.latest\n\nBug: 149293194\nTest: follow-up change\nChange-Id: Idbded6b633315034e669e9c5dd2bd30725d5c76b\nMerged-In: Idbded6b633315034e669e9c5dd2bd30725d5c76b\n"
    },
    {
      "commit": "d4c0356dade6249d92da7a813b9db1e9289cd479",
      "tree": "47982b0ea52c34bb5fe9dded964c83850d7ab92f",
      "parents": [
        "bb5ee50e29cf3a20aa33b5372ceff8086ba4fb1a"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Apr 09 17:15:44 2020 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Apr 10 07:44:52 2020 +0100"
      },
      "message": "Create prebuilt api modules in load hook not mutator\n\nAn attempt to reference one of the prebuilt modules directly from an\nAndroid.bp file highlighted a bug. The prebuilt_apis module used a\nmutator to create filegroup and java_import modules for a set of api\nversions. That mutator ran after the \"prebuilts\" mutator which handled\nthe renaming of prebuilt modules when the matching source module was\nnot present. That meant that the only way to reference the module was\nby explicitly adding the prefix \"prebuilt_\".\n\nThis change fixed that bug by creating the modules in a load hook rather\nthat a mutator. This ensures that the prebuilt modules are present well\nbefore the \"prebuilts\" mutator is run. Removing the mutator also removes\nan unnecessary traversal of the whole dependency tree.\n\nIt also updated the documentation to explain that it creates\njava_import modules as well as the filegroup modules.\n\n(cherry picked from 47f6315f01f7c81cfd6a494f0a65426bb97a97c5)\n\nBug: 153649372\nTest: m droid\nChange-Id: Id44dce8ca9968ae903345df6ef1c4f1be9cb76c5\nMerged-In: Id44dce8ca9968ae903345df6ef1c4f1be9cb76c5\n"
    },
    {
      "commit": "a48f758d840290dd75fced5234e1c178bf3dc113",
      "tree": "609612a1fce955b0fde14b030b33a76c14632f14",
      "parents": [
        "43dc1cc2bcb600cfaa0ca49788bc13d3d915c3f1"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Dec 19 11:25:19 2019 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Dec 19 19:19:40 2019 +0000"
      },
      "message": "Dedup prebuilt apis module type/mutator registration\n\nTest: m checkbuild\nBug: 146540677\nChange-Id: If5d6fdace2574df6314fbcf6441838cd11df58ae\n"
    },
    {
      "commit": "84dfc3d33138470a9fbf624eaeda977b9f48e571",
      "tree": "40330c7947de9ecbe5a7a15ae8ded0442f2097e6",
      "parents": [
        "505bcb88ed57676208353ba89c329d7edce1c814"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Sep 25 11:33:01 2019 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 26 17:19:26 2019 +0000"
      },
      "message": "Make CreateModule take an android.ModuleFactory\n\nReduce the boilerplate required to call CreateModule by taking an\nandroid.ModuleFactory instead of a blueprint.ModuleFactory.\n\nTest: m checkbuild\nChange-Id: I1259d2dd3f7893b5319c333bc180727ac40f9e91\n"
    },
    {
      "commit": "5fb5b2a7f52cd867dedec3df34f6e0eef96e833c",
      "tree": "9c41086bc49312ff42c03746bd5f04d3186ef2fd",
      "parents": [
        "53c88448fd2497023cd6403a7aa72a3f763f3e3a"
      ],
      "author": {
        "name": "Jaewoong Jung",
        "email": "jungjw@google.com",
        "time": "Thu Mar 21 10:48:25 2019 -0700"
      },
      "committer": {
        "name": "Jaewoong Jung",
        "email": "jungjw@google.com",
        "time": "Thu Mar 21 17:44:11 2019 -0700"
      },
      "message": "Add synopsis for prebuilt_apis.\n\nTest: m soong_docs\nChange-Id: I0e2cefd3dd24e5c8483d32cc325a37e96d3d495c\n"
    },
    {
      "commit": "8faab8a54720cafce85e7dc0c732b1456839b5dc",
      "tree": "3489fcb78b32f11304aca3941f0ab67c84bc87d6",
      "parents": [
        "dfa4a486eb0146582fe015ac4466dc39ae0e5f7d"
      ],
      "author": {
        "name": "Sundong Ahn",
        "email": "sundongahn@google.com",
        "time": "Thu Feb 14 11:49:24 2019 +0900"
      },
      "committer": {
        "name": "Sundong Ahn",
        "email": "sundongahn@google.com",
        "time": "Thu Feb 14 19:46:34 2019 +0900"
      },
      "message": "Get latest api version\n\nThe logic of getting latest api version has problem that we don\u0027t\nguarantee $(module_name).latest is latest api txt file. So change this\nlogic to get the latest api txt file.\n\nTest: make -j40\nChange-Id: Ibbd8475061fc76169a4c94dcf148fece45b9a41d\n"
    },
    {
      "commit": "c0907f191a6c466d077030500f855cdd87ec954a",
      "tree": "18b82c6ebe4f81d49eb8f34a548d8ecddef7ac47",
      "parents": [
        "58b31ad33a8df9f8ea27b9d6c928560d7a6a2452"
      ],
      "author": {
        "name": "Inseob Kim",
        "email": "inseob@google.com",
        "time": "Fri Feb 08 21:00:45 2019 +0900"
      },
      "committer": {
        "name": "Inseob Kim",
        "email": "inseob@google.com",
        "time": "Wed Feb 13 23:32:51 2019 +0000"
      },
      "message": "Create sysprop_library soong module\n\nA newly introduced sysprop_library soong module will generate a\njava_sdk_library and a cc_library from .sysprop description files.\nBoth Java modules and C++ modules can link against sysprop_library\nmodule, thus giving consistency for using generated sysprop API.\n\nAs Java controls accessibility of Internal / System properties with\n@hide and @SystemApi, 2 different header files will be created. And\nbuild system will selectively expose depending on the property owner\nand the place where the client libraries go into.\n\nBug: 80125326\nBug: 122170616\nTest: 1) Create sysprop_library module.\nTest: 2) Create empty txt files under prebuilts/sdk.\nTest: 3) Create api directory, make update-api, and see changes.\nTest: 4) Try to link against sysprop_library with various clients.\nTest: 5) Soc_specific, Device_specific, Product_specific, recovery flags\nwork as intended.\nChange-Id: I78dc5780ccfbb4b69e5c61dec26b94e92d43c333\n"
    },
    {
      "commit": "5f692ec219cb0c46db8f8372ec41e8c35315dd70",
      "tree": "5bb25731a7ab374c44f354254cb70e27ae185b88",
      "parents": [
        "a74ca046dacd052e2fe717ba670b309044fe9d15"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Feb 01 16:53:07 2019 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Feb 01 17:17:58 2019 -0800"
      },
      "message": "Remove empty DepsMutator methods\n\nAdd an empty DepsMutator to ModuleBase so it doesn\u0027t have to be\nimplemented on every module that doesn\u0027t need it.\n\nTest: all soong tests\nChange-Id: I545a832a0dbf27386d3080377a75ea482cd9ce59\n"
    },
    {
      "commit": "054b19a1312606226cd3c3664ce50616d0306569",
      "tree": "773980d8181d101d495de44343ea255d93c49b7d",
      "parents": [
        "63d91fad6a565c4be99ca0af6f9b8581a12354c7"
      ],
      "author": {
        "name": "Sundong Ahn",
        "email": "sundongahn@google.com",
        "time": "Fri Oct 19 13:46:09 2018 +0900"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jan 16 22:00:17 2019 -0800"
      },
      "message": "Support core library\n\nTo support core library, \"Openjdk9\", \"No_standard_libs\" and metalava\nproperties are added to java_sdk_library.\nIf core_lib is true, dist paths are changed to\napistubs/core/....\nimpl library name is changed to {module_name}.jar instead of\n{module_name}.impl.jar\n\nBug: 110404779\nTest: m -j\nChange-Id: Ieb6248ea714b4260333d8bf61573d4f3413f7f24\nMerged-In: Ieb6248ea714b4260333d8bf61573d4f3413f7f24\n(cherry picked from commit af4907fed798aa736d3d20f5439ba87be7ab0f10)\n"
    },
    {
      "commit": "27eecb99d22b7d8aa1e345f0bbcd37f839c8a92f",
      "tree": "c863352baaccc1d1ee66ad6ffc9285f5c78ee68c",
      "parents": [
        "297d9bcedaa14670a84c3dc4d4bf90b9ea033bea"
      ],
      "author": {
        "name": "Sundong Ahn",
        "email": "sundongahn@google.com",
        "time": "Thu Jun 21 13:47:17 2018 +0900"
      },
      "committer": {
        "name": "Sundong Ahn",
        "email": "sundongahn@google.com",
        "time": "Mon Jun 25 10:30:30 2018 +0900"
      },
      "message": "Add api_dirs property and use module name as prefix\n\nThe soong connect the prebuilt library according to LOCAL_SDK_VERSION.\nBut some sdk libraries has diffrent version policy with\nLOCAL_SDK_VERSION. For this, we need to support direct link to the\nprebuilt library instead of creating a new LOCAL_XXX_SDK_VERSION. So,\nThe base module name is used as the prefix for the prebuilt module name.\n\nRemove the empty file check to support the absence of a prebuilt\nlibrary and add api_dirs property\n\nBug:77577799\nTest: make -j\nChange-Id: I1086977d26e4ddfd62e290637126d44e1b248bac\n"
    },
    {
      "commit": "a01c2a510e369b314363f00d03ee708769717d5e",
      "tree": "bf74914b1179c0377dd9780f1994ab2cc27b5790",
      "parents": [
        "6a25de47dcf50d1a8f86165a348bcf3a09bf2136"
      ],
      "author": {
        "name": "Sundong Ahn",
        "email": "sundongahn@google.com",
        "time": "Thu Jun 07 21:42:16 2018 +0900"
      },
      "committer": {
        "name": "Sundong Ahn",
        "email": "sundongahn@google.com",
        "time": "Wed Jun 13 22:51:45 2018 +0900"
      },
      "message": "Support prebuilt libraries in prebuilt_apis.go\n\nWhen the sdk_version or LOCAL_SDK_VERSION is not current or\nTARGET_BUILD_APPS is not null, module will use the prebuilt\nlibraries. For this, prebuilt libraries are supported in\nprebuilt_api.go\n\nBug:77577799\nTest: make -j\nTest: make -j TARGET_BUILD_APPS\u003d\u0027camera2_stubs_test\u0027\n      and check intermediates files\n\nChange-Id: I9540c1d1a7a030bcc599b77df8d101529b12b3bf\n"
    },
    {
      "commit": "58c518b5944be18288694f6c9d7377ab174979b2",
      "tree": "70f24746da796a857c27634c4b99c8cf9f9e2d1a",
      "parents": [
        "eeb8a6474c83327fb495d7ef4cf4b51f3f55a495"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Sat May 12 22:29:12 2018 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Tue May 15 10:57:01 2018 +0900"
      },
      "message": "java_sdk_library does the apicheck by default\n\ndroiddoc now supports apicheck. java_sdk_library uses it to\nautomatically perform apichecks against the not-yet-release API and\nthe latest-released API.\n\nA module type prebuilt_apis is added. It finds api txt files and creates\nfilegroup modules so that it can be referenced from java_sdk_library\nacross the module boundary.\n\nBug: 77575606\nTest: m -j\nTest: m -j checkapi\nTest: m -j update-api\nChange-Id: I0ba859972eac060296e1df2e71c4e047392d4877\n"
    }
  ]
}
