)]}'
{
  "log": [
    {
      "commit": "e570ace2e4dbc7a2b4eb895f7a06d250e35b1cd9",
      "tree": "93ea9d9572ca173402f544f09e77e4aec83f96ca",
      "parents": [
        "40b8b1604217ccb6180d9f5e31f4777799a95837"
      ],
      "author": {
        "name": "Jamie Garside",
        "email": "jgarside@google.com",
        "time": "Mon Nov 27 12:07:36 2023 +0000"
      },
      "committer": {
        "name": "Jamie Garside",
        "email": "jgarside@google.com",
        "time": "Mon Nov 27 12:07:36 2023 +0000"
      },
      "message": "Add the ability for a java_sdk_library to depend on another.\n\nThis simply exports all of the uses_libs: [] libraries into a\n\"dependency\u003d\u0027\u0027\" statement in the generated XML file (with the \u003clibrary\u003e\nstanza in it).\n\nTest: `go test` in java/\nBug: 184396657\n\nNOTE FOR REVIEWERS - original patch and result patch are not identical.\nPLEASE REVIEW CAREFULLY.\nDiffs between the patches:\n func formattedDependenciesAttribute(dependencies []string) string {\n\u003e +\tif dependencies \u003d\u003d nil {\n\u003e +\t\treturn \"\"\n\u003e +\t}\n\u003e +\treturn fmt.Sprintf(`        dependency\u003d\\\"%s\\\"\\n`, strings.Join(dependencies, \":\"))\n\u003e +}\n\u003e +\n\u003e +\tdependenciesAttr :\u003d formattedDependenciesAttribute(module.properties.Uses_libs_dependencies)\n\u003e +\t\tdependenciesAttr,\n\u003e --- java/sdk_library_test.go\n\u003e +++ java/sdk_library_test.go\n\u003e +\n\u003e +func TestSdkLibraryDependency(t *testing.T) {\n\u003e +\tresult :\u003d android.GroupFixturePreparers(\n\u003e +\t\tprepareForJavaTest,\n\u003e +\t\tPrepareForTestWithJavaSdkLibraryFiles,\n\u003e +\t\tFixtureWithPrebuiltApis(map[string][]string{\n\u003e +\t\t\t\"30\": {\"bar\", \"foo\"},\n\u003e +\t\t}),\n\u003e +\t).RunTestWithBp(t,\n\u003e +\t\t`\n\u003e +\t\tjava_sdk_library {\n\u003e +\t\t\tname: \"foo\",\n\u003e +\t\t\tsrcs: [\"a.java\", \"b.java\"],\n\u003e +\t\t\tapi_packages: [\"foo\"],\n\u003e +\t\t}\n\u003e +\t\t\n\u003e +\t\tjava_sdk_library {\n\u003e +\t\t\tname: \"bar\",\n\u003e +\t\t\tsrcs: [\"c.java\", \"b.java\"],\n\u003e +\t\t\tlibs: [\n\u003e +\t\t\t\t\"foo\",\n\u003e +\t\t\t],\n\u003e +\t\t\tuses_libs: [\n\u003e +\t\t\t\t\"foo\",\n\u003e +\t\t\t],\n\u003e +\t\t}\n\u003e +`)\n\u003e +\t\n\u003e +\tbarPermissions :\u003d result.ModuleForTests(\"bar.xml\", \"android_common\").Rule(\"java_sdk_xml\")\n\u003e +\t\n\u003e +\tandroid.AssertStringDoesContain(t, \"bar.xml java_sdk_xml command\", barPermissions.RuleParams.Command, `dependency\u003d\\\"foo\\\"`)\n\u003e +}\n\nOriginal patch:\n diff --git a/java/sdk_library.go b/java/sdk_library.go\nold mode 100644\nnew mode 100644\n--- a/java/sdk_library.go\n+++ b/java/sdk_library.go\n@@ -1993,6 +1993,7 @@\n \t\tMin_device_sdk            *string\n \t\tMax_device_sdk            *string\n \t\tSdk_library_min_api_level *string\n+\t\tUses_libs_dependencies    []string\n \t}{\n \t\tName:                      proptools.StringPtr(module.xmlPermissionsModuleName()),\n \t\tLib_name:                  proptools.StringPtr(module.BaseModuleName()),\n@@ -2002,6 +2003,7 @@\n \t\tMin_device_sdk:            module.commonSdkLibraryProperties.Min_device_sdk,\n \t\tMax_device_sdk:            module.commonSdkLibraryProperties.Max_device_sdk,\n \t\tSdk_library_min_api_level: \u0026moduleMinApiLevelStr,\n+\t\tUses_libs_dependencies:    module.usesLibraryProperties.Uses_libs,\n \t}\n \n \tmctx.CreateModule(sdkLibraryXmlFactory, \u0026props)\n@@ -2968,6 +2970,11 @@\n \t//\n \t// This value comes from the ApiLevel of the MinSdkVersion property.\n \tSdk_library_min_api_level *string\n+\n+\t// Uses-libs dependencies that the shared libra\n[[[Original patch trimmed due to size. Decoded string size: 3559. Decoded string SHA1: 67fbd040aa818732a686514c4556850c8c36dc8d.]]]\n\nResult patch:\n diff --git a/java/sdk_library.go b/java/sdk_library.go\nindex fb27812..fbfe509 100644\n--- a/java/sdk_library.go\n+++ b/java/sdk_library.go\n@@ -1993,6 +1993,7 @@\n \t\tMin_device_sdk            *string\n \t\tMax_device_sdk            *string\n \t\tSdk_library_min_api_level *string\n+\t\tUses_libs_dependencies    []string\n \t}{\n \t\tName:                      proptools.StringPtr(module.xmlPermissionsModuleName()),\n \t\tLib_name:                  proptools.StringPtr(module.BaseModuleName()),\n@@ -2002,6 +2003,7 @@\n \t\tMin_device_sdk:            module.commonSdkLibraryProperties.Min_device_sdk,\n \t\tMax_device_sdk:            module.commonSdkLibraryProperties.Max_device_sdk,\n \t\tSdk_library_min_api_level: \u0026moduleMinApiLevelStr,\n+\t\tUses_libs_dependencies:    module.usesLibraryProperties.Uses_libs,\n \t}\n \n \tmctx.CreateModule(sdkLibraryXmlFactory, \u0026props)\n@@ -2968,6 +2970,11 @@\n \t//\n \t// This value comes from the ApiLevel of the MinSdkVersion property.\n \tSdk_library_min_api_level *string\n+\n+\t// Uses-libs dependencies that the shared library\n[[[Result patch trimmed due to size. Decoded string size: 3614. Decoded string SHA1: b5730ecbeeaad420439ddb67eaaa9150ede94585.]]]\n\nChange-Id: I73f69e2a4573e416492f68e083fe739f3f75b721\n"
    },
    {
      "commit": "80456fdec4abae6690c633b502e4e518aaec029d",
      "tree": "351f2864d43473985fd26fc5e8ce743868aff889",
      "parents": [
        "2f63457354ad618934545d02422adb29ee2be4fe"
      ],
      "author": {
        "name": "Jihoon Kang",
        "email": "jihoonkang@google.com",
        "time": "Wed Nov 15 19:22:14 2023 +0000"
      },
      "committer": {
        "name": "Jihoon Kang",
        "email": "jihoonkang@google.com",
        "time": "Wed Nov 15 20:40:37 2023 +0000"
      },
      "message": "Add contribute_to_android_api property in java_sdk_library\n\nThe default-false bool property `contribute_to_android_api` will be used to signify whether the java_sdk_library module contributes to an api\nsurface (i.e. listed in frameworks-base-api.bootclasspath or not).\nIf the property is set to true, the module\u0027s stub jar can be\ngenerated from .txt files.\n\nCurrently, the property is a no-op. The property will be utilized in the\nchild changes.\n\nTest: m nothing\nBug: 276958307\nChange-Id: I617802ec352c7055579ce92ea3de43f10cac1da4\n"
    },
    {
      "commit": "fd1c0d2eaa0d1455ab4e710fb83f1142bded0b81",
      "tree": "80f935c2a52e049f06cf438d2e2c143475df2878",
      "parents": [
        "4c01bb49daeb30ae228ff8eface36d1fc76598fa"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Thu Nov 02 15:18:09 2023 +0000"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Tue Nov 07 10:14:50 2023 +0000"
      },
      "message": "Add a new flag to stop disabling lint errors\n\njava_sdk_library has historically suppressed a few legitimate lint\nerrors. Make it possible to remove these suppressions via a flag.\n\nBug: 306806877\nTest: checkapi\nMerged-In: I10577dacbd7ea8063c6e1e02f3b6c60a2bee5094\nChange-Id: I10577dacbd7ea8063c6e1e02f3b6c60a2bee5094\n"
    },
    {
      "commit": "2cc80ba1458c2c273fa495e20c3c9286a36373cc",
      "tree": "e74fc785c2949067b7a43a28108b65e0ddebda9e",
      "parents": [
        "ee44d32adda18275869a99b0b3e4c26d10d4dc59"
      ],
      "author": {
        "name": "Spandan Das",
        "email": "spandandas@google.com",
        "time": "Fri Oct 27 17:21:52 2023 +0000"
      },
      "committer": {
        "name": "Spandan Das",
        "email": "spandandas@google.com",
        "time": "Tue Oct 31 20:57:56 2023 +0000"
      },
      "message": "Add the name of the sdk library to dynamically generated java modules\n\nThe name of the sdk library will be used in source vs prebuilt\nselection. For soong modules that are not dynamically created from a\njava_sdk_library, the value will be nil.\n\nBug: 308174768\nTest: TH\nChange-Id: Ic7e9889f00c6184992b663a7124967bb0794d475\n"
    },
    {
      "commit": "8e586ab8b3232d38d400ee9d28eeb6c320354abd",
      "tree": "bad8cb9055197d075411c271f58b7d4f1d465bd1",
      "parents": [
        "aa5b2cd37b37f617c356473289f6b391f6ab22c7",
        "70f74de4cbb84232135c556a2d5d5517cbc583e2"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Fri Oct 27 07:36:35 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 27 07:36:35 2023 +0000"
      },
      "message": "Merge \"Remove UnavailableSymbol from warnings to disable\" into main"
    },
    {
      "commit": "f9a2bc0e4b2d7811a9f53849402cd88c07b6854c",
      "tree": "8b456a82baaf7b0c1f1d621a4a35767067cfd6bd",
      "parents": [
        "4efd3365cc263f3ee38a9bcdd9afd97c4875562b"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Thu Oct 26 15:13:26 2023 +0000"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Thu Oct 26 15:13:26 2023 +0000"
      },
      "message": "Remove HiddenTypeParameter from warnings to disable\n\nBug: 306806877\nTest: m checkapi\nChange-Id: I68036ad7fc24cda8673379a218ecbb26aa48ad8f\n"
    },
    {
      "commit": "70f74de4cbb84232135c556a2d5d5517cbc583e2",
      "tree": "9da9a85946ede808d5412d1ee9ff2668420f6807",
      "parents": [
        "4efd3365cc263f3ee38a9bcdd9afd97c4875562b"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Thu Oct 26 14:33:59 2023 +0000"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Thu Oct 26 14:35:39 2023 +0000"
      },
      "message": "Remove UnavailableSymbol from warnings to disable\n\nBug: 306806877\nTest: m checkapi\nChange-Id: If8ad3cf37d84ec30c886a0e6d094ea451c4c3d75\n"
    },
    {
      "commit": "9421c4ceb912ffb27df86d3a9cb0c8e5609e0384",
      "tree": "94cc44ecff206cc2904b2fb3657cee8f15daaa05",
      "parents": [
        "c70be4b986b0d2ec52c6a899b3c6d7fb0015b9bf"
      ],
      "author": {
        "name": "Mark White",
        "email": "anothermark@google.com",
        "time": "Thu Aug 10 00:07:03 2023 +0000"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Mon Oct 23 15:25:55 2023 +0000"
      },
      "message": "SdkTestCore for non-updatable modules\n\nProvides SdkTestCore/test_core_current sdk_version for non-updatable\nmodules that have their test scope dependent on test apis from\nframework-minus-apex.\n\nIgnore-AOSP-First: Change in topic with internal-first projects\nBug: 289776578\nTest: m checkapi | go test ./java\n\nMerged-In: Iba3213e8c34ea75ac9dd8532a95ef62fb5455e6c\nChange-Id: Iba3213e8c34ea75ac9dd8532a95ef62fb5455e6c\n"
    },
    {
      "commit": "063ec003f98a1cb45ddbda607dd41563d204f85d",
      "tree": "007941d946ad6f7380b3596856d195fb2357cd9d",
      "parents": [
        "d30ac8a32a9ff28db781db20e6dbe08d0b04b394"
      ],
      "author": {
        "name": "Jihoon Kang",
        "email": "jihoonkang@google.com",
        "time": "Wed Jun 28 01:16:23 2023 +0000"
      },
      "committer": {
        "name": "Jihoon Kang",
        "email": "jihoonkang@google.com",
        "time": "Fri Oct 13 18:24:41 2023 +0000"
      },
      "message": "Add current api check as validation for from-text stub generation\n\nCurrently, there is no build action ensuring that the API text files are\nup to date, unless a user runs `m checkapi` or `m update-api`. This\nmeans that the user must run `m update-api` after making a change that\nmodifies api surface(s), so that the API text file reflects the local\nchange. This adds additional layer of action to developers, and it is\nnot guaranteed that the developer will always run `m update-api` after\nmaking an api surface-affecting changes.\n\nTo prevent such mistake, this change adds droidstub-level api check as\nvalidation for from-text stub generation. With this change, the build\nwill fail if the API text file is not up to date and the user must run\n`m update-api` when making api surface-affecting local changes.\n\nThe validation is done by adding all droidstubs modules associated with\nthe java_api_contributions passed to java_api_library via\n`api_contributions` as dependency and setting the current api timestamp\nfiles as the validations for the from-text stubs generating build rule.\n\nThe full api surface libraries will not run the validations to avoid\ncircular dependency. However, all java_sdk_library generated\njava_api_library modules will run validations, mapped to the droidstubs\nin the same api domaion.\n\nIf the user sets the environment variable `DISABLE_STUB_VALIDATION\u003dtrue`, validation\nactions are not run. Validation actions run by default.\n\nTest: m nothing --build-from-text-stub and run ninja query to verify `check_current_api.timestamp`s are listed as validation \\\n      DISABLE_STUB_VALIDATION\u003dtrue m nothing --build-from-text-stub and run ninja query to verify that validation actions are not added\nBug: 288624417\nChange-Id: I329e6438fe8f3ac30d8c6a971d57853ed6b0d150\n"
    },
    {
      "commit": "d30ac8a32a9ff28db781db20e6dbe08d0b04b394",
      "tree": "7b885fd009d2c851328d04f4c7dc55b641456b3d",
      "parents": [
        "69101d699cc821ee2c13121153b97794f3a0a84f"
      ],
      "author": {
        "name": "Jihoon Kang",
        "email": "jihoonkang@google.com",
        "time": "Mon Oct 09 18:00:17 2023 +0000"
      },
      "committer": {
        "name": "Jihoon Kang",
        "email": "jihoonkang@google.com",
        "time": "Thu Oct 12 23:05:27 2023 +0000"
      },
      "message": "Disable full_api_surface_stubs for some java_api_library modules\n\njava_api_library modules generated from java_sdk_library get\nfull_api_surface_stubs corresponding to the api surface that the module\ncontributes to. However, modules generated from java_sdk_library where\nsdk_version is none should not depend on the full api surface stub jar.\n\nTest: m --build-from-text-stub\nBug: 288624417\nChange-Id: I7edda3e6a40f739e805e8719b8d366da765a6933\n"
    },
    {
      "commit": "4ec24870e03eee77911d787d6d160e2389fc2a9f",
      "tree": "8699441a3d2b6f49f3a6c9535ba1a3c023358ae4",
      "parents": [
        "b0f3ff43e57391ba95b661b7830e6e967979e071"
      ],
      "author": {
        "name": "Jihoon Kang",
        "email": "jihoonkang@google.com",
        "time": "Thu Oct 05 17:26:09 2023 +0000"
      },
      "committer": {
        "name": "Jihoon Kang",
        "email": "jihoonkang@google.com",
        "time": "Mon Oct 09 17:44:54 2023 +0000"
      },
      "message": "Introduce system_modules property to java_api_library\n\nSystem_modules property provides the jars passed as bootclasspath when\ncompiling the stubs in the java_api_library where its creating\njava_sdk_library\u0027s sdk_version is none, as the jars will not be provided\nfrom the full_surface_stub_libs but compiled by itself in the child\nchange.\n\nThe jar provided by the system_modules will also be passed to metalava\nto resolve hierarchy coming from outer dependencies.\n\nTest: m --build-from-text-stub\nBug: 288624417\nChange-Id: I8f3b89efa24bceb070d7a37fae3c7334dd7f0868\n"
    },
    {
      "commit": "534e2e504dc96c77b5d4f3abb8f5134d33efc2e3",
      "tree": "adec8ffc244b7c410213cd1f990cd3e66423dfda",
      "parents": [
        "b95a8b33be5f12f4bb1f3d6c12e1f42a646848e7",
        "a96a7b1e13f04c79831347acc02bedc62cfd954e"
      ],
      "author": {
        "name": "Jihoon Kang",
        "email": "jihoonkang@google.com",
        "time": "Mon Sep 25 22:31:53 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 25 22:31:53 2023 +0000"
      },
      "message": "Merge changes from topics \"remove_api_files\", \"remove_naming_convention\" into main\n\n* changes:\n  Remove naming conventioned based file sorting in java_api_library\n  Remove api_files property from java_api_library\n"
    },
    {
      "commit": "a96a7b1e13f04c79831347acc02bedc62cfd954e",
      "tree": "89e50313e6c5c4eb2078aa42f79320e9fb0ea113",
      "parents": [
        "6be0f00671e39a8b744a10bd1d0c91dc8724d4b2"
      ],
      "author": {
        "name": "Jihoon Kang",
        "email": "jihoonkang@google.com",
        "time": "Wed Sep 20 23:43:32 2023 +0000"
      },
      "committer": {
        "name": "Jihoon Kang",
        "email": "jihoonkang@google.com",
        "time": "Fri Sep 22 16:55:43 2023 +0000"
      },
      "message": "Remove naming conventioned based file sorting in java_api_library\n\nWith api_files property being removed from java_api_library, all api\nfiles are passed to java_api_library via java_api_contribution, which\nprovide api_surface information. Instead of relying on the naming\nconvention of the api files, java_api_library can utilize this\ninformation to sort the api files from narrower api scope to the wider\napi scope.\n\nTest: m --build-from-text-stub\nBug: 295429988\nChange-Id: Idd832778833c072c6b7e9d1f775533e5f4e2af00\n"
    },
    {
      "commit": "637458d3265e3f08cc42dcde3536d8775a2009b9",
      "tree": "e3a34a4757f85a052f91de5b4e7e23cc74408433",
      "parents": [
        "9e12c7863726889853d12d8dea2bf7574b96133e"
      ],
      "author": {
        "name": "Chris Parsons",
        "email": "cparsons@google.com",
        "time": "Tue Sep 19 20:09:00 2023 +0000"
      },
      "committer": {
        "name": "Chris Parsons",
        "email": "cparsons@google.com",
        "time": "Wed Sep 20 14:49:35 2023 +0000"
      },
      "message": "Have ConvertWBp2build use Bp2buildMutatorContext\n\nThis no-op refactoring facilitates some upcoming functional changes for\n\"bp2build allowlist v2\". The work requires that the bp2build conversion\nmutator be changed from a TopDown mutator to a BottomUp mutator.\nRefactoring all bp2build-related methods so that they use Bp2buildMutatorContext\nmakes it easier to make this functional change without touching tens of\nfiles and multiple projects.\n\nBug: 285631638\nTest: m bp2build\nChange-Id: I3d1ef3064146e959c6f0dc315350fc9764bf2bd2\n"
    },
    {
      "commit": "9a97a8f62ab19be0c544cdde40466a1286b3575e",
      "tree": "c660b18e6ba49a10146911897935fd904fc6c867",
      "parents": [
        "e0cbc983ec710a718f762b2c94351c0ba1669a64"
      ],
      "author": {
        "name": "Liz Kammer",
        "email": "eakammer@google.com",
        "time": "Mon Sep 18 13:36:41 2023 -0400"
      },
      "committer": {
        "name": "Liz Kammer",
        "email": "eakammer@google.com",
        "time": "Tue Sep 19 15:58:22 2023 -0400"
      },
      "message": "Implement bp2build for java_sdk_library_import\n\nTest: go test bp2build conversion tests\nTest: enable modules build from prebuilt and m nothing\nBug: 300640274\nChange-Id: I8c015aec546d052bef6c42869e12db4e87d39780\n"
    },
    {
      "commit": "71c868340ea2dac17e71fd998ed5ddd01e754e92",
      "tree": "853c5aea33e39737683685edc77de5b38adc135b",
      "parents": [
        "8fe1982e8bf6728b2f7d1de7380d9a2f86556fbe"
      ],
      "author": {
        "name": "Jihoon Kang",
        "email": "jihoonkang@google.com",
        "time": "Wed Sep 13 01:01:53 2023 +0000"
      },
      "committer": {
        "name": "Jihoon Kang",
        "email": "jihoonkang@google.com",
        "time": "Mon Sep 18 19:33:28 2023 +0000"
      },
      "message": "Create java_api_contribution_import from sdk_library_import\n\nThis change modifies sdk_library_import so that it directly creates\njava_api_contribution per api scope. The module creates api_contribution\nmodule for api scopes where the api file is specified.\n\nTest: m nothing \u0026\u0026 MODULE_BUILD_FROM_SOURCE\u003dfalse m nothing\n--build-from-text-stub and inspect ninja dependency of java_api_library\nBug: 300175323\n\nChange-Id: I74be3b4f1efef7f7d1cb8bd7b6c893b9cef0f370\n"
    },
    {
      "commit": "786df93db0d5bab68b7002544454835c3f59ad18",
      "tree": "10d168d923459c2f3ed4ddd13e9b3b7c45b3c6df",
      "parents": [
        "55e775f94fa6e93ea7fca202eb7bc550c13e5f5d"
      ],
      "author": {
        "name": "Jihoon Kang",
        "email": "jihoonkang@google.com",
        "time": "Thu Sep 07 01:18:31 2023 +0000"
      },
      "committer": {
        "name": "Jihoon Kang",
        "email": "jihoonkang@google.com",
        "time": "Thu Sep 07 01:22:12 2023 +0000"
      },
      "message": "Modify static lib stub library visiblity\n\njava_sdk_library generates stub java_library module which compiles the\nstub generated from either source or txt files, which is toggled based\non the build configuration. The java_api_library/java_library module\nthat compiles the stubs should not be directly accessible to the modules\noutside of the sdk_library module scope, thus modify their visibility as\nprivate.\n\nTest: m nothing\nBug: 299373105\nChange-Id: Ia4a08bf6e65c521814c82f54ea43cc8d367834e3\n"
    },
    {
      "commit": "e7ee256746cce9fd3f54a5a6e306e390c007bce6",
      "tree": "35b341c81a51995be615daa713ae0e66f8153f60",
      "parents": [
        "9db358d43de252dae98932c9bc737a1109703ca8"
      ],
      "author": {
        "name": "Jihoon Kang",
        "email": "jihoonkang@google.com",
        "time": "Tue Jul 25 05:51:46 2023 +0000"
      },
      "committer": {
        "name": "Jihoon Kang",
        "email": "jihoonkang@google.com",
        "time": "Mon Aug 14 21:18:13 2023 +0000"
      },
      "message": "Stop sdk_library generated api_library to depend on full surface api_library\n\nSince full_api_surface_libs extract class files instead of srcjar file,\nfull_api_surface_stub can be replace with android_*_stubs_current,\ninstead of the api_library android_*_stubs_current.from-text.\nFunctionally, the class files of the two modules are identical (in\nfrom-text stub build), but depending on the from-text java_api_library\nleads to missing dependency errors in partial branches (especially ART\nbranches). To resolve this problem, make sdk_library generated\napi_library depend on the missing dependency handled\nandroid_*_stubs_current.\n\nSince android_module_lib_stubs_current.from-text does not have its\nfrom-source equivalent, this can remain as dependency as the module is\nmoved to build/soong in aosp/2674196\n\nTest: m (default to from-text stub build)\nBug: 274805756\nChange-Id: Ic8bbd25252e5f9f1dc7c059ce6b00a951188985d\n"
    },
    {
      "commit": "0c705a448f5cc261dc7f3173cada0625e7e1f0fc",
      "tree": "948801f1e93a6035b7df790ac5733004f9ac8b0d",
      "parents": [
        "95e8fe9e1ef15836f8c7dbf62f3dd1a706019f57"
      ],
      "author": {
        "name": "Jihoon Kang",
        "email": "jihoonkang@google.com",
        "time": "Wed Aug 02 06:44:57 2023 +0000"
      },
      "committer": {
        "name": "Jihoon Kang",
        "email": "jihoonkang@google.com",
        "time": "Mon Aug 14 17:17:48 2023 +0000"
      },
      "message": "Convert additional sdk_library stub libraries to from stub generation\n\nlegacy.i18n.module.platform.api, stable.i18n.module.platform.api and\nconscrypt.module.platform.api contributes to api surfaces, but the\ncorresponding stub libraries were being generated from source during\nfrom-text stub build. This discrepancy may lead to hiddenapi failure.\nThus, enable these modules to be built from txt files during from-text\nstub build.\n\nTest: m\nBug: 274805756\nChange-Id: I940dc8484b210bb8aea57ead1055983be7cdf5ec\n"
    },
    {
      "commit": "ca198c2639994fbc27925df04362a5fee44a23ad",
      "tree": "6e156adf53c6e65f37664cf16c056bb7dca7a98c",
      "parents": [
        "a56663f6954de78f82d7862c2e86bb1932e6c6da"
      ],
      "author": {
        "name": "Jihoon Kang",
        "email": "jihoonkang@google.com",
        "time": "Thu Jun 22 23:13:51 2023 +0000"
      },
      "committer": {
        "name": "Jihoon Kang",
        "email": "jihoonkang@google.com",
        "time": "Thu Jun 29 22:43:05 2023 +0000"
      },
      "message": "Extract class files from dep_api_srcs instead of java files\n\nCurrently, stub java files are extracted from srcjar file provided from\ndep_api_srcs in java_api_library module generated in java_sdk_library\nper api scope. However, compiling the java files may lead to difference\nin the content of the generated class files even if the stub java files\nare equivalent, as javac may arbitrarily add overridden methods. Thus,\ncreate a stub jar file instead of creating a stub srcjar file and\ncompiling it, in order to guarantee stub jar files content equivalence\nand thus enable hiddenapi during from-text stub build.\n\nNote that this change does not fully resolve differences between the\nfull api surface csv and the per sdk_library csv. Instead, it removes\nthe difference caused by methods arbitrarily added by javac.\n\nThis change also renames dep_api_srcs to full_api_surface_stubs to be\nmore intuitive.\n\nTest: rebase on top of aosp/2617274 and `m --build-from-text-stub`\nBug: 275570206\nChange-Id: I22b6d56624633681f5c3b000370b5782655c7b8d\n"
    },
    {
      "commit": "c0036491cd6b454a90bde516555a006d20d06ddd",
      "tree": "faec7402ed90ba5094e19abb83ffd2904ccc36f2",
      "parents": [
        "8f557323178a088603af6c2dbb74d485aef27cf1"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Jun 21 15:42:49 2023 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Jun 21 15:42:49 2023 +0100"
      },
      "message": "Remove reference to the deprecated and disabled Typo issue\n\nMetalava no longer looks for common typos. It relies on the code\nanalyzers that run on Gerrit to detect them.\n\nBug: 288072162\nTest: m checkapi\nChange-Id: I08eca8008af39ebe69442db419ebd3d3378aa0de\n"
    },
    {
      "commit": "df9c3441aa12df7bce9e25d024fd07ba7f4e47ad",
      "tree": "0005afc6504c0b8063f14d215bdc2d79bbae93b5",
      "parents": [
        "55be40beb408586ff94f2aa017a3cb371ea19b3c",
        "39a169721c3d5a085bb7940b363fd1a5dbaf4faf"
      ],
      "author": {
        "name": "Christopher Parsons",
        "email": "cparsons@google.com",
        "time": "Fri Jun 16 13:49:49 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 16 13:49:49 2023 +0000"
      },
      "message": "Merge \"Provide reason for unconverted bp2build modules\""
    },
    {
      "commit": "39a169721c3d5a085bb7940b363fd1a5dbaf4faf",
      "tree": "c6de7c548f41a55152a5d3d4109c3bd68f2b724d",
      "parents": [
        "d34e4c72f33d5a3813b52405779ac0148211a713"
      ],
      "author": {
        "name": "Chris Parsons",
        "email": "cparsons@google.com",
        "time": "Thu Jun 08 14:28:51 2023 +0000"
      },
      "committer": {
        "name": "Chris Parsons",
        "email": "cparsons@google.com",
        "time": "Fri Jun 16 13:45:17 2023 +0000"
      },
      "message": "Provide reason for unconverted bp2build modules\n\nThis also changes the expectation of ConvertWithBp2build. Each\nimplementation must either create one or more Bazel target modules, or\nmark the module as unconvertible (with a specific reason).\n\nManually verified no runtime hit in AOSP\nIn AOSP, the metrics file size increases from 252K to 1.6M\n\nThis changes some effective module counts in bp2build metrics:\n - Removes \"package\" modules from the module count list in\nmetrics, as these will not be converted like regular modules.\n - Counts Handcrafted modules as being \"unconverted\", as bp2build is not\n   responsible for them.\n\nBug: 285631638\nTest: Verified generated BUILD.bazel files are bit-for-bit identical\nwith this change\nTest: Manually verified one case of each implemented reasonType\n\nChange-Id: I308dd451d8f28379b15671dae9f931bd0446f5c1\n"
    },
    {
      "commit": "1147b31eb0e2e9df822b1e89b2eed9bae87c4f00",
      "tree": "9e9c4e477211f1170f7a06070a8b7f12b02a0719",
      "parents": [
        "5244c1a19f7d6c824ea0a565b2f3d78eecc679d3"
      ],
      "author": {
        "name": "Jihoon Kang",
        "email": "jihoonkang@google.com",
        "time": "Thu Jun 08 23:25:57 2023 +0000"
      },
      "committer": {
        "name": "Jihoon Kang",
        "email": "jihoonkang@google.com",
        "time": "Thu Jun 15 18:18:09 2023 +0000"
      },
      "message": "Dynamically link static libs for sdk_library created java_library\n\nRename java_library created inside sdk_library with the \".from-source\"\nsuffix, and set it as static lib of the top level java_library, which\ngets java_api_library instead as static lib during from-text stub build.\n\nTest: m nothing \u0026\u0026 m nothing --build-from-text-stub\nBug: 286446015\nChange-Id: I32e8ea264987e9f9df05e462292bd54e45074912\n"
    },
    {
      "commit": "1c92c3e09262d24947a6d314fe3be77329127a76",
      "tree": "73bf2dde0c337aae2cf1eb2c0919afc1710920b0",
      "parents": [
        "0393174fe78afa42a6bac036b96cd4a690563535"
      ],
      "author": {
        "name": "Jihoon Kang",
        "email": "jihoonkang@google.com",
        "time": "Thu Mar 23 17:44:51 2023 +0000"
      },
      "committer": {
        "name": "Jihoon Kang",
        "email": "jihoonkang@google.com",
        "time": "Fri May 19 06:07:37 2023 +0000"
      },
      "message": "Generate java_api_library from java_sdk_library\n\nThis change enables java_sdk_library to generate java_api_library\nmodules per api surface, so that from-text stubs can be generated per\napi domain scope. This module is only created when\n`--build-from-text-stub` flag is passed during build.\n\nTest: enable disabled modules in java/core-libraries/TxtStubLibraries.bp then m art.module.public.api.stubs.from-text --build-from-text-stub\nBug: 276957733\nChange-Id: Ic1ead15b3d0bcb921ca8d31bcaeeb4cd9ee8715c\nMerged-In: Ic1ead15b3d0bcb921ca8d31bcaeeb4cd9ee8715c\n"
    },
    {
      "commit": "877f39d535edfb58d75eac843a818234d1c56657",
      "tree": "28cdd443933b7c4c14b4f85d17c33553bf56a5af",
      "parents": [
        "69f4218c4feaeca953237cd9e76a9a8cc423d3e3"
      ],
      "author": {
        "name": "Spandan Das",
        "email": "spandandas@google.com",
        "time": "Wed Mar 29 16:19:51 2023 +0000"
      },
      "committer": {
        "name": "Spandan Das",
        "email": "spandandas@google.com",
        "time": "Thu Mar 30 00:34:36 2023 +0000"
      },
      "message": "Use stubs from .txt files for hiddenapi\n\nHiddenapi processing uses the stub libraries to determine the api\nsurface boundaries. Use JavaLibraryName function to redirect the usage\nof stubs from .txt files based on config.\n\nThis should be a no-op for now.\n\nBug: 271443071\nTest: go test ./java\nChange-Id: I1ed3ab2485c903bc57f627dc1acf1a3fbc0a3c4d\n"
    },
    {
      "commit": "8c9ae7ed6770b45f1337722a2e61cb22317659aa",
      "tree": "2d1b882fed5c5a6291ae685cbd268ed1c8c17bc0",
      "parents": [
        "7947b31a5577c3bb6dbcffb808dc8f71904249c5"
      ],
      "author": {
        "name": "Spandan Das",
        "email": "spandandas@google.com",
        "time": "Fri Mar 03 21:20:36 2023 +0000"
      },
      "committer": {
        "name": "Spandan Das",
        "email": "spandandas@google.com",
        "time": "Wed Mar 22 20:15:45 2023 +0000"
      },
      "message": "Update min_sdk_version from SdkSpec to ApiLevel\n\nThis relands aosp/2457063. The original change broke T and U since those\nbranches still contain soong modules of type (kind+level). Those soong\nmodules have been cleaned up now\n\nTest: Used go/abtd to test T and U branches with this change\n\nBug: 208456999\nChange-Id: I0ef7933c055f88cb512a02108f1173e51156ef1c\n"
    },
    {
      "commit": "b74d1e1d913ffdc883121c962eb5ca661196e460",
      "tree": "192889f627b363e01a20539ec4ba22f04316138e",
      "parents": [
        "e773739787394e9632043749e88ca6cfd5a40a67"
      ],
      "author": {
        "name": "Spandan Das",
        "email": "spandandas@google.com",
        "time": "Tue Mar 21 01:36:46 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 21 01:36:47 2023 +0000"
      },
      "message": "Revert \"Update min_sdk_version from SdkSpec to ApiLevel\"\n\nRevert submission 2457063\n\nReason for revert: Broken udc-dev\n\nReverted changes: /q/submissionid:2457063\n\nChange-Id: Id6349fc1318877044af713c914a0afd437d3d2d5\n"
    },
    {
      "commit": "e773739787394e9632043749e88ca6cfd5a40a67",
      "tree": "c069277b81df80f608af7f97b33e62c3e0d18ff8",
      "parents": [
        "3015e38a5f0d466dd850fd0a77648844a1364efc"
      ],
      "author": {
        "name": "Spandan Das",
        "email": "spandandas@google.com",
        "time": "Fri Mar 03 21:20:36 2023 +0000"
      },
      "committer": {
        "name": "Spandan Das",
        "email": "spandandas@google.com",
        "time": "Mon Mar 20 16:51:32 2023 +0000"
      },
      "message": "Update min_sdk_version from SdkSpec to ApiLevel\n\nmin_sdk_version signifies device version and does not need an sdkKind to\ndescribe it fully. Update the type and cleanup existing usages. As a\nside benefit, we also get better error handling since users can no\nlonger enter something like `public_30` as a valid min_sdk_version in bp\nfiles\n\nWill do a similar cleanup for targetSdkVersion and maxSdkVersion in a\nfollowup CL\n\nTest: m nothing\nTest: no change in ninja files (this should be a no-op)\nBug: 208456999\n\nChange-Id: Ie6ae7e267d093c5e4787e82685daaca1021d202e\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": "c004bf3b7ed9d23d9e7aef69fe2d63d6478b2db3",
      "tree": "fe34465e60e619f6a1bc0d5ab21508e08f974009",
      "parents": [
        "ec8f7543f64c816458c79c3ecedfd6fc85bf9fe8",
        "81e468171f4822d1f9a6a2aed78589c74a1ee940"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 16 14:46:19 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 16 14:46:19 2023 +0000"
      },
      "message": "Merge changes I55a5a295,I9c09451d,I05177388\n\n* changes:\n  Use the profiles in the APEX to dexpreopt system server jars.\n  Add tests for the ignored \"profile_guided: true\" property.\n  Output dex_preopt to SDK snapshot.\n"
    },
    {
      "commit": "81e468171f4822d1f9a6a2aed78589c74a1ee940",
      "tree": "9477ee60468c1466be05ab74c49f62da809b0888",
      "parents": [
        "1f4542c85bfadbac6cd0860057e401393231f2e5"
      ],
      "author": {
        "name": "Jiakai Zhang",
        "email": "jiakaiz@google.com",
        "time": "Wed Feb 08 21:56:07 2023 +0800"
      },
      "committer": {
        "name": "Jiakai Zhang",
        "email": "jiakaiz@google.com",
        "time": "Wed Feb 15 22:47:24 2023 +0000"
      },
      "message": "Use the profiles in the APEX to dexpreopt system server jars.\n\nAfter this change, if \"profile_guided: true\" is set, profile-guided\ncompilation will be enabled for the jar and the \".prof\" file next to\nthe jar in the APEX (\"javalib/\u003cname\u003e.jar.prof\") will be used as the\nprofile when dexpreopting for the prebuilt APEX.\n\nBug: 241823638\nTest: m nothing\nTest: -\n  1. (on internal master) Patch aosp/2426453.\n  2. Build the APEX bundle and the module SDK of com.android.wifi\n  3. (on tm-dev) Patch this CL and aosp/2141972.\n  4. Copy the APEX bundle and the module SDK built on step 2 to the\n     source tree\n  5. Disable hiddenapi check\n  6. lunch cf_x86_64_phone-userdebug \u0026\u0026 m MODULE_BUILD_FROM_SOURCE\u003dfalse com.google.android.wifi\n  7. cat out/soong/.intermediates/prebuilts/module_sdk/Wifi/current/prebuilt_service-wifi/android_common_com.android.wifi/dexpreopt/oat/x86_64/javalib.invocation\n  8. See the profile being used.\nChange-Id: I55a5a295e9c5d6f0564afb139c5fb7da91ab8cae\n"
    },
    {
      "commit": "9c4dc19f4e3b72b13d557cdfbab32dbc63f456d7",
      "tree": "1de9cac312b15abbafac9fea9c65f2b9df9a7904",
      "parents": [
        "8916b21320969a6de6b5724f0be1ff4346ea1406"
      ],
      "author": {
        "name": "Jiakai Zhang",
        "email": "jiakaiz@google.com",
        "time": "Thu Feb 09 00:09:24 2023 +0800"
      },
      "committer": {
        "name": "Jiakai Zhang",
        "email": "jiakaiz@google.com",
        "time": "Wed Feb 15 22:47:23 2023 +0000"
      },
      "message": "Output dex_preopt to SDK snapshot.\n\nThis is needed to determine whether we need to deapex the profile or\nnot.\n\nBug: 241823638\nTest: m nothing\nTest: -\n  1. Patch ag/20582608 PS2.\n  2. TARGET_BUILD_APPS\u003dcom.android.wifi packages/modules/common/build/mainline_modules_sdks.sh\n  3. See the `dex_preopt` property being written.\nChange-Id: I05177388c24be1ab315247ea85e7e3a8600cebd3\n"
    },
    {
      "commit": "b2179e397aa6c8d8c3ad12e8a9d19621d627b670",
      "tree": "0b2bb5fefe5a7bb7fa6a11fb1258454cc859caea",
      "parents": [
        "0620c7c56a2a2237ed88fe7e3726525d6a9784be"
      ],
      "author": {
        "name": "Zi Wang",
        "email": "mrziwang@google.com",
        "time": "Tue Jan 31 15:53:30 2023 -0800"
      },
      "committer": {
        "name": "Zi Wang",
        "email": "mrziwang@google.com",
        "time": "Tue Feb 14 13:21:21 2023 -0800"
      },
      "message": "Add limited bp2build converter of java_sdk_library\n\nOnly public, system, test, module_lib and system_server are\nconverted in order to generate api_fingerprint.txt in Bazel.\n\nTest: java_sdk_library_conversion_test.go and TH\n\nBug: 266973526\nChange-Id: I67a00806165e5afad3876b6cd5cdbc6b0dd65d8b\n"
    },
    {
      "commit": "d48abd566b80e407adaba600335b1c0e5824081e",
      "tree": "92d1d3dc373bc3e1d133d6ba73711e0103cbf7aa",
      "parents": [
        "ade518ad6ed7c1cbb97f424404bbcbcc23e28bd6"
      ],
      "author": {
        "name": "Jihoon Kang",
        "email": "jihoonkang@google.com",
        "time": "Thu Feb 02 22:32:31 2023 +0000"
      },
      "committer": {
        "name": "Jihoon Kang",
        "email": "jihoonkang@google.com",
        "time": "Tue Feb 07 18:45:38 2023 +0000"
      },
      "message": "Call hook in java_sdk_library after droidstubs generation\n\nCurrently, droidstubs module create java_api_contribution module, but\nwhen a java_sdk_library module dynamically creates a droidstubs module,\njava_api_contribution is not created as the hook inside droidstubs get\nlost. Therefore, call hook inside sdk_library after creating the\ndroidstubs module.\n\nTest: m\nChange-Id: I68bf1d796f6f9a6f81011ae35e4991b6ed1421ea\n"
    },
    {
      "commit": "3198f3cb52c07addf3953edae1a826947b0714eb",
      "tree": "ab085f1a21c49467d6d73c636f59e0762ebe158a",
      "parents": [
        "ba46e7662221801867534444e64928f438511a5b"
      ],
      "author": {
        "name": "Jihoon Kang",
        "email": "jihoonkang@google.com",
        "time": "Thu Jan 26 08:08:52 2023 +0000"
      },
      "committer": {
        "name": "Jihoon Kang",
        "email": "jihoonkang@google.com",
        "time": "Thu Jan 26 18:44:25 2023 +0000"
      },
      "message": "Generate java_api_contribution module from droidstubs module\n\nContext\n- droidstubs module are either generated from the java_sdk_library\n  module or defined in the bp files.\n- Since droidstubs module contains API text file property,\n  java_api_contribution module can by dynamically created from\n  droidstubs.\n\nImplementation\n- Add `api_surface` property in droidstubs module. This property is\n  either inherited from the java_sdk_library or written in the module\n  definition in the bp file.\n- Add defaultable hook in droidstubs module to generate the child\n  java_api_contribution module.\n\nTest: m\nChange-Id: Ica43d65614723c623cd0c155266f9844e69e5d5e\n"
    },
    {
      "commit": "d796f6f6dcb1c34bb7ed5c699588eb3938a3ed37",
      "tree": "37b5efac5f630c265f9ea8b458f540f4ff5ab8ee",
      "parents": [
        "5e71e68a82bf00b8d1ddb3c6d50a0aa38458530c"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Nov 23 23:06:05 2022 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Dec 12 17:33:06 2022 +0000"
      },
      "message": "Stop module types being SdkAware\n\nRemoves all usages of SdkBase and InitSdkAwareModule.\n\nBug: 260237150\nTest: m nothing\nChange-Id: I07db8afc805eadbeb5b23f2e1d2f51567eecfab0\n"
    },
    {
      "commit": "2178762a8aa11aee7705723b12e98c3cead8204e",
      "tree": "fd47e16e9dec3cd5f053c51f6ee7b0ad5f2dba3a",
      "parents": [
        "458a15bd8af649af4f2d3752ba2e6d0d5c61350b"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Nov 25 12:48:20 2022 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Dec 12 17:33:06 2022 +0000"
      },
      "message": "Remove SdkAware.SdkMemberComponentName\n\nThat method was provided to allow a java_sdk_library_import that was\npart of a versioned sdk snapshot to create the name of its component\nmodules consistent with the way in which modules were named within the\nsdk snapshot. As versioned sdk snapshots have all been removed this is\nno longer necessary.\n\nBug: 260237150\nTest: m nothing\nChange-Id: Iee35abd6d210d9a33dfd8ef2f9c77a53329fda24\n"
    },
    {
      "commit": "d732da72512c4d09e5a217e85d783e01ac5e7fe4",
      "tree": "e96acb36b3e0d23c4c10b239a3650137ceb64c1e",
      "parents": [
        "1ad62c7073fc7716e19f9b6cf34ec469c52d674a"
      ],
      "author": {
        "name": "Nikita Ioffe",
        "email": "ioffe@google.com",
        "time": "Mon Nov 21 12:38:25 2022 +0000"
      },
      "committer": {
        "name": "Nikita Ioffe",
        "email": "ioffe@google.com",
        "time": "Mon Nov 21 15:51:40 2022 +0000"
      },
      "message": "Propagate stub_only_libs to the invocation generating stub sources\n\nIn some cases the java_sdk_library needs to compile against hidden\nplatform APIs, in order to do so it needs to add impl_only_libs\ndependency on the framework library, and set the sdk_version property to\nthe \"core_*\" one (e.g. core_platform).\n\nHowever, if this java_sdk_library depends on the Android SDK in it\u0027s\nstable API surface, then the setup above will break the stubs srcs\ngeneration, as it uses the sdk_version of the java_sdk_library (e.g.\ncore_platform), which doesn\u0027t have symbols from the Android SDK.\n\nThis chage solves the problem by propagating the stub_only_libs to the\ninvocation that generates the stub sources. It allows the\njava_sdk_libraries to add a stub_only_libs dependency on the\nandroid_module_lib_stubs_current stubs library to fix their stubs build.\n\nFor more context see another change in this topic:\nhttps://android-review.git.corp.google.com/c/platform/packages/modules/Virtualization/+/2310569\n\nBug: 243512044\nTest: builds\nTest: m nothing\nChange-Id: Id745cfb2789901672561050c1c3f8bb163922379\n"
    },
    {
      "commit": "d0b9fca6d21eaf4f0e34b1608006111fcf06546a",
      "tree": "7e3b7097c8d1390d4a90131907477e40042b4ca5",
      "parents": [
        "2adc1a6e99cc0e8a9214f1f37281c2184b8ec69e"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Sep 30 18:11:41 2022 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Oct 05 17:22:59 2022 +0100"
      },
      "message": "Allow sdk_version: \"system_server_current\" modules to access module-lib APIs\n\nPreviously, a java module with sdk_version: \"system_server_current\",\nwould only be able to access the system server or public API of a\njava_sdk_library. This change allows it to access the system server,\nmodule lib, system and public APIs in that order.\n\nThe apiScope structs define the characteristics of each of the\ndifferent API scopes used as required by the java_sdk_library. They are\norganized into a hierarchy which is used for two different purposes.\n\nThe first purpose is to define an extension hierachy. If scope X\nextends Y then X provides a superset of all API elements (classes,\nfields, methods, etc) provided by Y. That is reflected in the fact that\nthe .txt file for X would be a delta on the .txt file for Y. So, system\nextends public and so system_current.txt only contains additional API\nelements to add to current.txt.\n\nThe second purpose is when a java_sdk_library/import is asked to\nprovide a specific API scope. e.g. a library that has:\n    sdk_version: \"module_current\"\nwill ask each of the SDK libraries it depends upon for a module-lib\nAPI. However, not all of them will provide an API for that scope. In\nthat case it will find the closest suitable API scope.\n\nPreviously, it did that by traversing up the API extension until it\nfound an API scope that it did provide and return that. As\nsystem_server_current extended the public API that meant that a library\nwhich has:\n    sdk_version: \"system_server_current\"\nwould provide a system server API if available, and if not fall\nstraight back to public. That meant that the library could not access\nsystem or module-lib APIs even though it is running in the system\nserver which should be able to access all APIs.\n\nOne way to fix this would have been to just have system server API\nscope extend module-lib but that would have had a number of nasty\nside effects:\n* It would have created a significant overhead as every module that\n  provides a system server API would also have to provide a module-lib\n  and system API, along with their corresponding .txt files.\n* Each existing java_sdk_library that provided a system server API\n  would need those .txt files created.\n* Generating sdk snapshots for older releases would have been more\n  complicated.\n* It would have confused developers.\n\nAll of that would be unnecessary because the system server API scope is\nintended to be provided by libraries that are used solely by the system\nserver so there is no point in them providing anything other than a\nsystem server API.\n\nSo, instead a separate access hierarchy was added which is the same as\nthe extension hierarchy for all existing scopes except for the\nsystem server scope, which instead of just being able to access the\npublic API will be able to access the module-lib scope, which can in\nturn access system and it can in turn access public.\n\nThat achieves what we want which is a library that is loaded into the\nsystem server to be able to access all API scopes.\n\nBug: 204176972\nTest: m nothing\nChange-Id: I854df63fcaeba32afbc1eb0d1a501238022673d0\n"
    },
    {
      "commit": "bf4de041de611de4b3ec24c5f261c4293522961a",
      "tree": "4d1ba866ba6c4fcc566880b3bdc9ab0fb44c0ab8",
      "parents": [
        "c0d3527a0d2863bac1d6e4168938dadfa86dc117"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Sep 27 12:41:52 2022 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Sep 28 13:58:52 2022 +0100"
      },
      "message": "java_sdk_library_import: Copy all prebuilt properties to child modules\n\nPreviously, only the prefer property was copied from the\njava_sdk_library_import module to its child modules which meant that if\nthe use_source_config_var property was used to control the prefer\nproperty that the child modules would never be used. That can cause\nbuild breakages when building against prebuilts as some parts of the\nbuild will use prebuilt files from java_sdk_library_import and some\nwill use source files from the corresponding java_sdk_library.\n\nThis change copies the use_source_config_var property too.\n\nIt also adds tests to verify that dependencies on child modules of a\njava_sdk_library use the prebuilt child modules of the corresponding\njava_sdk_library_import. That revealed a bug with the handling of stub\nsources where the prefer property was set after creating the module\nwhich has also been fixed.\n\nBug: 249192297\nTest: m nothing\n      # Cherry pick into branch broken by previous behavior and make\n      # sure that it fixes it.\nChange-Id: I5719c257f8457bcb2238bc7965215512a20f1095\n"
    },
    {
      "commit": "e840995ac39040b1e6804e5067a5dde11fa85f8c",
      "tree": "4ca30e38b1374ee440714a3b77109d7d70284ea8",
      "parents": [
        "bfdca968288c930a8d717ceb76349c19bef42fd1"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Sep 22 16:24:46 2022 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Sep 26 18:32:58 2022 +0100"
      },
      "message": "java_sdk_library: Use dist_stem when generating sdk snapshot file names\n\nThe API finalization process for platform releases copies various files\nfrom the apistubs/ dist directory into prebuilts/sdk/\u003cn\u003e/...  Having\nthem use the same name in both places makes that process simpler. For\nmost modules the name of the file is derived from the name of the\nmodule by appending a suffix but unfortunately, for some modules that\ndoes not work. e.g. the conscrypt.txt file is produced by the\nconscrypt.module.public.api module. The dist_stem property was added to\njava_sdk_library to allow the stem name of the file to differ from the\nmodule name.\n\nThe API finalization process for extension APIs does something similar\nas it extracts various files from the snapshots and copies them into\nthe appropriate extension API specific directory in\nprebuilts/sdk/extensions/\u003cn\u003e. Instead of copying files from the\napistubs/ dist directory (which is not built for trains) it copies them\nfrom sdk snapshots that are built as part of the train.\n\nPreviously, the sdk snapshot used to derive the name of the files\nwithin the snapshot from the name of the module, it ignored the\ndist_stem property. This change causes it to use the dist_stem property\nto make it consistent with the apistubs/ dist directory naming.\n\nThe file name is created in\nsdkLibrarySdkMemberProperties.AddPropertyToSet() which does not have\naccess to the dist_stem property. So, it has to be supplied in the\nsdkLibrarySdkMemberProperties instance in the new Stem property.\n\nBug: 248258460\nTest: m nothing\n      BUILD_NUMBER\u003dfixed packages/modules/common/build/mainline_modules_sdks.sh --build-release\u003dlatest\n      # Ran the previous command before and after and make sure that the\n      # conscrypt, art and icu sdk snapshots use the dist_stem value but\n      # none of the other snapshots are affected.\nChange-Id: Ied52003de63dcdb86a252a39bb8781f85d51a6ff\n"
    },
    {
      "commit": "d079e0b2708ce0f4cce470db929f28dd8d2b0e80",
      "tree": "e8cdb4a59bd88411a262a1d91bd75def56cc4de2",
      "parents": [
        "852d0c48593fb2a17d301d7274edac907e8e194f"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Aug 16 10:27:33 2022 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Aug 17 10:43:13 2022 -0700"
      },
      "message": "Reformat build/soong for go 1.19\n\nTest: none\nChange-Id: I132368f0fcbdb5ea088b5b84dbe4ccfdd9e94cad\n"
    },
    {
      "commit": "492128b5260a8a3a548a818ba037936e5fd75db4",
      "tree": "47419e04e99275e75da82a5c2848530d9fc62833",
      "parents": [
        "b0070a5c8aa35a97756b9c3636cf4eac6347fb56",
        "489912283e29c4ee07754b185e984eddd90fb067"
      ],
      "author": {
        "name": "Pedro Loureiro",
        "email": "pedroql@google.com",
        "time": "Fri Jun 17 22:00:47 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Jun 17 22:00:47 2022 +0000"
      },
      "message": "Translate SDK codenames to SDK versions for finalized releases am: 489912283e\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/build/soong/+/18965894\n\nChange-Id: I67c2cd6d39d13ff9bf00b7da5986664da4ae95c5\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "489912283e29c4ee07754b185e984eddd90fb067",
      "tree": "f0c71ea96dc35cf5bdac56f392d76962d3288c1e",
      "parents": [
        "9e8e7d7b861278246700c542a7f75166c8c827c5"
      ],
      "author": {
        "name": "Pedro Loureiro",
        "email": "pedroql@google.com",
        "time": "Fri Jun 17 20:01:21 2022 +0000"
      },
      "committer": {
        "name": "Pedro Loureiro",
        "email": "pedroql@google.com",
        "time": "Fri Jun 17 20:01:21 2022 +0000"
      },
      "message": "Translate SDK codenames to SDK versions for finalized releases\n\nThis applies to updatability attributes of shared libraries.\n\nBug: 235318264\n\nTest: atest UpdatableSharedLibsTest\nChange-Id: Id2c2b769a99ca1debb5d8525e46d37698ef2fc6c\n"
    },
    {
      "commit": "81d909525d0979d2d9cb391ba9f59fe71fba912d",
      "tree": "d3395442f20df0ed4f7c3a1ee2aaeb85d3f13cf8",
      "parents": [
        "0507921dcf1820c598122604905c7a54f2025dd7"
      ],
      "author": {
        "name": "Mårten Kongstad",
        "email": "amhk@google.com",
        "time": "Wed May 25 16:27:11 2022 +0200"
      },
      "committer": {
        "name": "Mårten Kongstad",
        "email": "amhk@google.com",
        "time": "Wed May 25 16:27:55 2022 +0200"
      },
      "message": "sdkLibraryProperties: fix typo\n\nTest: m nothing\nChange-Id: Id9a0ba0a1123a298b8713f6dd6526ccb54fe5c46\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": "9c60cc4f22f1f196520010a8bc6541fdd301a26d",
      "tree": "8cfd8a795c714479a7ea1f49e6757f32958d35de",
      "parents": [
        "f485a95d3ae61c7cc0353e784d80e38546bf2529",
        "1e940d5b449148105e33d75cbef4bbde307bf1f9"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 29 17:27:23 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 29 17:27:23 2022 +0000"
      },
      "message": "Merge \"java_sdk_library_import: Delegate OutputFiles to impl library if needed\""
    },
    {
      "commit": "2b5384bc9373139e96241083b5421758380e9b18",
      "tree": "8cc3f0cd3ad8c3691b539eec851f5290fd2af119",
      "parents": [
        "a80cc174a2b56b53c8fed1cf6c868f760404b3c1",
        "3cf140fe98baf01cfc35a52a551d5e6d41159ed7"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Apr 29 16:26:07 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 29 16:26:07 2022 +0000"
      },
      "message": "Merge \"java_sdk_library_import: Delegate OutputFiles to impl library if needed\" into tm-dev"
    },
    {
      "commit": "a80cc174a2b56b53c8fed1cf6c868f760404b3c1",
      "tree": "9ae8c0670d705e1be4a53f44f980b8726e6e1d15",
      "parents": [
        "a083ec4acf53bd65676df31a5d99db2574a6b0aa"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Apr 28 17:45:11 2022 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Apr 29 14:08:30 2022 +0000"
      },
      "message": "hiddenapi: Prevent libraries for Q/R from include S+ flags.\n\nThe Q and R runtimes can handle Q/R flags but not S flags. So, this\nchange verifies that any library that can run on Q/R\n(min_sdk_version \u003c\u003d R) by adding --max-hiddenapi-level\u003dmax-target-r\nto the \"hiddenapi encode\" command. That will cause a failure if any\nS+ flags are found in the flags to encode.\n\nBug: 172453495\nTest: m droid \u0026\u0026 launch_cvd\n      Cherry pick changes in https://r.android.com/q/topic:max-target-s\n      Add @UnsupportedAppUsage maxTargetSdk\u003dS in classes in framework-permission (for r/q)\n      and framework-permission-s (nominally for S+). I had to incresed the min_sdk_version\n      in the latter to 31 (S) as it was still set at 30 (R).\nMerged-In: Ie0f68482603adc7b4e3d7a5c81bf203d81a84a9e\nChange-Id: Ie0f68482603adc7b4e3d7a5c81bf203d81a84a9e\n(cherry picked from commit 09817d66dea3639528b35a5b61ddce78766d198c)\n"
    },
    {
      "commit": "3cf140fe98baf01cfc35a52a551d5e6d41159ed7",
      "tree": "5a5e834dc457a79f5fe3e3f1bd4af571503c4e1c",
      "parents": [
        "a083ec4acf53bd65676df31a5d99db2574a6b0aa"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Apr 29 14:21:25 2022 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Apr 29 14:05:22 2022 +0000"
      },
      "message": "java_sdk_library_import: Delegate OutputFiles to impl library if needed\n\nBug: 230846030\nTest: m nothing\n      # Cherry pick into build with prebuilts enabled to verify.\nMerged-In: I5ac9b1cdd2fc61efbc988e84556202ff6cd57146\nChange-Id: I5ac9b1cdd2fc61efbc988e84556202ff6cd57146\n(cherry picked from commit 1e940d5b449148105e33d75cbef4bbde307bf1f9)\n"
    },
    {
      "commit": "1e940d5b449148105e33d75cbef4bbde307bf1f9",
      "tree": "d440d5203bd99f6f5c2dbccc4bb2b24c6cf23723",
      "parents": [
        "2fe7af01af8c043446d7caef5fcfaf4f6a115d78"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Apr 29 14:21:25 2022 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Apr 29 14:42:04 2022 +0100"
      },
      "message": "java_sdk_library_import: Delegate OutputFiles to impl library if needed\n\nBug: 230846030\nTest: m nothing\n      # Cherry pick into build with prebuilts enabled to verify.\nChange-Id: I5ac9b1cdd2fc61efbc988e84556202ff6cd57146\n"
    },
    {
      "commit": "a09d95f60507ca4deac9552d114733ed79f2aa06",
      "tree": "b8f00357d373670601999fd2abca2c7a592c8ee8",
      "parents": [
        "99666e27200b6ef0c42ed495ee73fee426436fbc",
        "09817d66dea3639528b35a5b61ddce78766d198c"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Apr 29 13:37:35 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 29 13:37:35 2022 +0000"
      },
      "message": "Merge \"hiddenapi: Prevent libraries for Q/R from include S+ flags.\""
    },
    {
      "commit": "a083ec4acf53bd65676df31a5d99db2574a6b0aa",
      "tree": "8dc9d49944b4796767488d926985a4dfd980c646",
      "parents": [
        "557e3fa4a65879d188ba525aadcb838c34a85ce6"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Apr 28 14:13:30 2022 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Apr 28 21:49:52 2022 +0000"
      },
      "message": "Allow framework-media to build the framework-media.impl\n\n(cherry picked from commit 77590a82638fdd3d1d9e12cd57270e1a9cb2eaa7)\n\nThe framework-media java_sdk_library is currently api_only for legacy\nreasons. This change allows it to also build the framework-media.impl\nlibrary by making the following changes:\n* Adds impl_only_static_libs to allow the implementation to statically\n  include other libraries, something no other java_sdk_library has\n  needed to do.\n* Passes the apex_availability property through to the impl library so\n  it can be statically included in the updatable-media which is what is\n  included in the apex, again for legacy reasons.\n\nBug: 190807367\nBug: 229932396\nTest: m com.android.media media-module-sdk\n      # Compare before and after this change (and corresponding change\n      # to updatable-media/framework-media.\nMerged-In: I9e1837edcca6f5fa84fc611274cf8fbba8a896b8\nChange-Id: I9e1837edcca6f5fa84fc611274cf8fbba8a896b8\n"
    },
    {
      "commit": "09817d66dea3639528b35a5b61ddce78766d198c",
      "tree": "fcf6479a6e90192cb5c2e64a83245f534e9325d4",
      "parents": [
        "fcf0b686aa0e00a76232f801fbe01707fb7be78f"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Apr 28 17:45:11 2022 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Apr 28 18:34:48 2022 +0100"
      },
      "message": "hiddenapi: Prevent libraries for Q/R from include S+ flags.\n\nThe Q and R runtimes can handle Q/R flags but not S flags. So, this\nchange verifies that any library that can run on Q/R\n(min_sdk_version \u003c\u003d R) by adding --max-hiddenapi-level\u003dmax-target-r\nto the \"hiddenapi encode\" command. That will cause a failure if any\nS+ flags are found in the flags to encode.\n\nBug: 172453495\nTest: m droid \u0026\u0026 launch_cvd\n      Cherry pick changes in https://r.android.com/q/topic:max-target-s\n      Add @UnsupportedAppUsage maxTargetSdk\u003dS in classes in framework-permission (for r/q)\n      and framework-permission-s (nominally for S+). I had to incresed the min_sdk_version\n      in the latter to 31 (S) as it was still set at 30 (R).\nChange-Id: Ie0f68482603adc7b4e3d7a5c81bf203d81a84a9e\n"
    },
    {
      "commit": "77590a82638fdd3d1d9e12cd57270e1a9cb2eaa7",
      "tree": "d4fce98fcc5949817f8f4439b0b4354671afe3b6",
      "parents": [
        "a465e28bcb6c65ebb6fb67ce06ec748d5bfb700f"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Apr 28 14:13:30 2022 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Apr 28 14:30:14 2022 +0000"
      },
      "message": "Allow framework-media to build the framework-media.impl\n\nThe framework-media java_sdk_library is currently api_only for legacy\nreasons. This change allows it to also build the framework-media.impl\nlibrary by making the following changes:\n* Adds impl_only_static_libs to allow the implementation to statically\n  include other libraries, something no other java_sdk_library has\n  needed to do.\n* Passes the apex_availability property through to the impl library so\n  it can be statically included in the updatable-media which is what is\n  included in the apex, again for legacy reasons.\n\nBug: 190807367\nBug: 229932396\nTest: m com.android.media media-module-sdk\n      # Compare before and after this change (and corresponding change\n      # to updatable-media/framework-media.\nChange-Id: I9e1837edcca6f5fa84fc611274cf8fbba8a896b8\n"
    },
    {
      "commit": "ad40fffa644ada1c0113b9de18bdaa2bb1e1490f",
      "tree": "b4def10988ce8df06bf8b6acc804eaef203fb027",
      "parents": [
        "b47e89f2d1a05409e7fdd7a598e76fbfef3d743d",
        "d9c23abeca23bfe13c65fd4d341a4d6b2b59d5be"
      ],
      "author": {
        "name": "Spandan Das",
        "email": "spandandas@google.com",
        "time": "Thu Mar 24 16:38:20 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 24 16:38:20 2022 +0000"
      },
      "message": "Merge changes I4c373b29,I9ccda6fc,I1b390b0e,I30151217\n\n* changes:\n  Do not propagate strict updatability linting to libcore/\n  Create allowlist to skip strict updatability lint check\n  Propagate strict_updatability_linting to transitive deps of updatable apexes\n  Export LintDepSetsIntf from java package\n"
    },
    {
      "commit": "3c0779a6b1e916e50f512d2db65de634d2ced188",
      "tree": "a2a2f824916f906391c84a6c83fa26490341158f",
      "parents": [
        "a5969bec06e1e73f73e97b516024e184cab87716"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Fri Feb 18 19:24:30 2022 +0000"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Fri Feb 18 19:24:30 2022 +0000"
      },
      "message": "Sort the list of hidden warnings\n\nThe list was difficult to read.\n\nTest: m nothing\nChange-Id: I55c55033e411f891083264942c543dcd45540c75\n"
    },
    {
      "commit": "b638c62620abde6f080ecf8119ac32ad185059e1",
      "tree": "3a49179877af5a4bcc6dcc5cbb0824cdb442206b",
      "parents": [
        "104ecf6708bd754a7f378055ba913ff52f371dc7"
      ],
      "author": {
        "name": "Pedro Loureiro",
        "email": "pedroql@google.com",
        "time": "Wed Dec 22 15:28:05 2021 +0000"
      },
      "committer": {
        "name": "Pedro Loureiro",
        "email": "pedroql@google.com",
        "time": "Fri Feb 11 17:59:36 2022 +0000"
      },
      "message": "Pass shared library updatability attributes as strings\n\nMigrate from ints to Strings so we can pass codenames. Otherwise we\ncan\u0027t use these attributes representing a release in progress until that\nrelease is finalized. I.e. if release T is in progress, we don\u0027t get the\ncorrect behaviour if we use \"T\" in those attributes\n\nBug: 191978330\n\nTest: m nothing\nChange-Id: I35389da0a01549ba2f820f5e5b78f6ea88c2aea1\n"
    },
    {
      "commit": "e7babdbfe14abb57aacd36f8d92a8af9efaa7a97",
      "tree": "4f696f53fc3115237499e88ad6d0bb842bc7a367",
      "parents": [
        "db07f002b8dae61878ed34b62c039da52df6f346"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Feb 10 13:06:54 2022 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Feb 10 13:06:54 2022 +0000"
      },
      "message": "Use Tiramisu instead of T in supported_build_releases\n\nMake this consistent with how code names are used in the rest of Soong.\n\nBug: 204763318\nTest: m nothing\nChange-Id: I1f2f40310df9d619db6aaaad3ed7339bb5e79194\n"
    },
    {
      "commit": "17854f5797d10fc04301703e7d0fc7adee09394d",
      "tree": "ba9e73c25b8fef225eb657ea29cd259d42c6f0a7",
      "parents": [
        "076b9c26e935829845ff90ad6176cf812a3c7a2d"
      ],
      "author": {
        "name": "Spandan Das",
        "email": "spandandas@google.com",
        "time": "Fri Jan 14 21:19:14 2022 +0000"
      },
      "committer": {
        "name": "Spandan Das",
        "email": "spandandas@google.com",
        "time": "Tue Feb 08 19:25:37 2022 +0000"
      },
      "message": "Export LintDepSetsIntf from java package\n\nThis interface will be used in the apex package to propagate\nstrict_updatability_linting to transitive deps of mainline code\n\nTest: In build/soong, go test ./java\nBug: 182349282\n\nChange-Id: I30151217e843e4e9fe82db572a066918414ed3a0\n"
    },
    {
      "commit": "a54016c3ba5db8efd69d098e0bb4cb8b318d2efa",
      "tree": "7e59b38c6f5cc763da27e59fc43bdcf3200c762e",
      "parents": [
        "106a3a4bec44f8d1120f72dc52f6d2c797f3a80e"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jan 27 16:39:47 2022 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Jan 31 12:28:04 2022 +0000"
      },
      "message": "Only output annotations properties in snapshots for T+\n\nMarks the `scopeProperties.AnnotationsZip` property as only being\nsupported on T builds and above.\n\nBug: 204763318\nTest: m nothing\nChange-Id: Ie59396287c08da77a6a1f15d4be202429e011e17\n"
    },
    {
      "commit": "106a3a4bec44f8d1120f72dc52f6d2c797f3a80e",
      "tree": "4a13f8d451070f1a231c59940fe298119a5c049e",
      "parents": [
        "545c59273de8e741ca8820656d972fbeb03f1ef9"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jan 27 16:39:06 2022 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Jan 31 12:28:04 2022 +0000"
      },
      "message": "Allow pruning of unsupported fields in structs in maps\n\nAdds support for traversing into a field that is of type:\n   map[...]*struct{...}\n\nThis is needed to allow java_sdk_library to mark scope specific\nproperties, e.g. public.annotations as being target build release\nspecific.\n\nIt was necessary to change the Scope field from:\n   Scope map[*apiScope]scopeProperties\nto:\n   Scope map[*apiScope]*scopeProperties\n\nThat is because there is no way in go to change the field of a struct\nvalue of a map. i.e. you cannot do the following, not even using\nreflection:\n   Scope[apiScopePublic].AnnotationsZip \u003d nil\n\nBug: 204763318\nTest: m nothing\nChange-Id: Id103f70f55d4202971321ef4925cbec4b55f8136\n"
    },
    {
      "commit": "18ecf61090cd987e049aadfea6371ea4ca651b06",
      "tree": "018b08e85df3f3e5aa56e60b970b3cdd282ca2b8",
      "parents": [
        "b62248a6aa3a2ebcb6dc3026994e597d19f90bf8"
      ],
      "author": {
        "name": "Sorin Basca",
        "email": "sorinbasca@google.com",
        "time": "Sun Jan 23 09:01:07 2022 +0000"
      },
      "committer": {
        "name": "Sorin Basca",
        "email": "sorinbasca@google.com",
        "time": "Mon Jan 24 13:31:05 2022 +0000"
      },
      "message": "Revert^2: \"Setting Java 11 as the default version\"\n\nReverted Change: I2f9866deff41406aede24758f6eda5e5808c7f29\n\nReason for revert: Post-submission failure have been fixed.\n\nTest: presubmit\nBug: 195387473\nChange-Id: If5db1614ef455e2f1eae1d36cf514e13e7aab993\n"
    },
    {
      "commit": "8d3e0bb25edd55f296c0d361868e223ddbaec587",
      "tree": "44e4a6e9b1e59b3642c4aa49a3aa7dbc32dab3c6",
      "parents": [
        "171c2103b89d38179119decea1be442015009caf"
      ],
      "author": {
        "name": "Sorin Basca",
        "email": "sorinbasca@google.com",
        "time": "Thu Jan 20 15:21:51 2022 +0000"
      },
      "committer": {
        "name": "Sorin Basca",
        "email": "sorinbasca@google.com",
        "time": "Thu Jan 20 15:37:11 2022 +0000"
      },
      "message": "Revert \"Setting Java 11 as the default version\"\n\nRevert submission 1944928-default-java11\n\nReason for revert: Post-submit failures\nReverted Changes:\nIa9a0aa2a4:Setting Java 11 as the default version\nIbf5d10521:Setting Java 11 as the default version\n\nFixes: 215504708\nFixes: 215502091\nFixes: 215502091\nChange-Id: I2f9866deff41406aede24758f6eda5e5808c7f29\n"
    },
    {
      "commit": "171c2103b89d38179119decea1be442015009caf",
      "tree": "dfcbdc5b767300bb20ce5fa245b992fa01f72e7a",
      "parents": [
        "07d858468efc950d4072f7a2058026927e8e138a"
      ],
      "author": {
        "name": "Sorin Basca",
        "email": "sorinbasca@google.com",
        "time": "Wed Jan 12 16:04:50 2022 +0000"
      },
      "committer": {
        "name": "Sorin Basca",
        "email": "sorinbasca@google.com",
        "time": "Tue Jan 18 09:05:34 2022 +0000"
      },
      "message": "Setting Java 11 as the default version\n\nTest: m\nChange-Id: Ia9a0aa2a4aa02d7b67ad8e1cb6083d33c3d75e70\n"
    },
    {
      "commit": "196d3e6b6bef7eb088c21f2e06df8efaf2c76299",
      "tree": "72336e5362fa87aa2d79b0ecb848106e56f79224",
      "parents": [
        "81e3ef848521518b469bc1274a5332be8827751f"
      ],
      "author": {
        "name": "Pedro Loureiro",
        "email": "pedroql@google.com",
        "time": "Wed Dec 22 19:53:01 2021 +0000"
      },
      "committer": {
        "name": "Pedro Loureiro",
        "email": "pedroql@google.com",
        "time": "Thu Jan 06 10:33:42 2022 +0000"
      },
      "message": "Rename updatable-library to apex-library\n\nMostly for consistency with the names used in related changes.\n\nTest: m nothing\n\nBug: 191978330\nChange-Id: I34637986ead1c671bcc649891aceb3fe0f44b52a\n"
    },
    {
      "commit": "9347ae3ba06363a6a8268d6e587f7dcff4e76c38",
      "tree": "08cc4d14a420848e2920d2428eba4cd8e09c7624",
      "parents": [
        "f1228f570a40b0f856b36779821ca0a86662a511"
      ],
      "author": {
        "name": "Sorin Basca",
        "email": "sorinbasca@google.com",
        "time": "Mon Dec 20 11:51:24 2021 +0000"
      },
      "committer": {
        "name": "Sorin Basca",
        "email": "sorinbasca@google.com",
        "time": "Mon Dec 20 21:33:14 2021 +0000"
      },
      "message": "Adding option to include sources only for Java 11 builds\n\nBug: 207852002\nTest: m\nTest: EXPERIMENTAL_TARGET_JAVA_VERSION_11\u003dtrue m\nChange-Id: I554a79798ea7f1dd4a96b09f761090f83a009cb4\n"
    },
    {
      "commit": "c68db4b305b9186d8d9b4e83b298a33fa810d06b",
      "tree": "d8a61ff4d4694bedd12cbb3ef100f974b24e08e3",
      "parents": [
        "e23a32bdc5dc07bea8d602662b2b0020159a6742"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Nov 11 18:59:15 2021 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Dec 15 15:22:53 2021 -0800"
      },
      "message": "Remove InstallBypassMake and ToMakePath\n\nInstallBypassMake and ToMakePath are obsolete, remove them.\n\nBug: 204136549\nTest: m checkbuild\nChange-Id: Ie5a6f7254b3d317ed6039e114ed6aec35e1ce273\n"
    },
    {
      "commit": "d8395b1b2f434f1b30dae57b4e0bc17cfa6b83e7",
      "tree": "c377a855c854c569ebc7263af9621c772731df46",
      "parents": [
        "34ca826598e3063dd51b36904e57997f5d943f56",
        "4acaea9cbf8fd3b42bf0a02e8b90c94c6b0d30e7"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sat Dec 11 03:48:25 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Dec 11 03:48:25 2021 +0000"
      },
      "message": "Revert^2 \"Build license metadata files in Soong\" am: 4acaea9cbf\n\nOriginal change: https://android-review.googlesource.com/c/platform/build/soong/+/1918948\n\nChange-Id: I8682f46f7843e0d367b96a09135dad03e3df934c\n"
    },
    {
      "commit": "4acaea9cbf8fd3b42bf0a02e8b90c94c6b0d30e7",
      "tree": "2d43ebc576589936ef10c384c8af3248e28d2116",
      "parents": [
        "b3264f20905792e553561e9e0076eaf95d80a25d"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Dec 10 23:05:02 2021 +0000"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Dec 10 23:05:02 2021 +0000"
      },
      "message": "Revert^2 \"Build license metadata files in Soong\"\n\nb3264f20905792e553561e9e0076eaf95d80a25d\n\nChange-Id: I5ea5f7e29eb1dbc72b8b30f010006a25f5f72fac\n"
    },
    {
      "commit": "67938c292547ee0ef03e273f13c7ac7ec85e5c45",
      "tree": "19f599d3d2de4b409ed9454f7d42fb6d617f411d",
      "parents": [
        "b435744fdc3d13558ac30f4c3e2e02eb1243a4b6",
        "b3264f20905792e553561e9e0076eaf95d80a25d"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Dec 10 23:04:45 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 10 23:04:45 2021 +0000"
      },
      "message": "Merge changes from topic \"revert-1899703-AMWIVCREEV\"\n\n* changes:\n  Revert \"Build license metadata files in Soong\"\n  Revert \"Add dependency license annotations\"\n"
    },
    {
      "commit": "b3264f20905792e553561e9e0076eaf95d80a25d",
      "tree": "846b3f37576fb812937251adb2fa4aef258a0583",
      "parents": [
        "abe2a4b7bfc559255838cbc08a60f84eb5baf046"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Dec 10 22:52:43 2021 +0000"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Dec 10 23:02:57 2021 +0000"
      },
      "message": "Revert \"Build license metadata files in Soong\"\n\nRevert submission 1899703\n\nReason for revert: b/210158272\nReverted Changes:\nI142c19284:Reuse license metadata files from Soong\nIfe89b8f23:Add dependency license annotations\nI8e7410837:Build license metadata files in Soong\n\nChange-Id: I48f2bf2e2797ac9d38f7ece35ba616b823035607\n"
    },
    {
      "commit": "b435744fdc3d13558ac30f4c3e2e02eb1243a4b6",
      "tree": "add2d9d05efb5cc710760331517c1b26ddfe654d",
      "parents": [
        "eb59a6d3ea10c7c383b84c0ef3d7dd7a8015d5a8",
        "b674b436568b9a16bb417d1310cfd9a009c837cd"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Dec 10 21:43:49 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 10 21:43:49 2021 +0000"
      },
      "message": "Merge changes from topic \"soong-license-metadata\"\n\n* changes:\n  Add dependency license annotations\n  Build license metadata files in Soong\n  Escape Host*Variable contents\n"
    },
    {
      "commit": "3dd2ff28ed41ecd3363b7c04c5d3401fe49c4e7c",
      "tree": "2d43ebc576589936ef10c384c8af3248e28d2116",
      "parents": [
        "1c35f243c5db793cc2c8b2fd7fea3530b42ce7ec"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Nov 08 11:52:49 2021 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Dec 08 15:08:59 2021 -0800"
      },
      "message": "Build license metadata files in Soong\n\nSoong has enough information to build the license metadata files\nwithout resorting to the fixups required in Make.\n\nBug: 207445310\nTest: m checkbuild\nChange-Id: I8e74108376162b8fdb87ba098ebe94350aa1f7c4\n"
    },
    {
      "commit": "758968a70081ee5d299452008e25cd75eead742b",
      "tree": "b7a3a7d199aae4a8859e43d78551f05774feda72",
      "parents": [
        "8f088b09d87caf20468750a05351474c7bf72322"
      ],
      "author": {
        "name": "satayev",
        "email": "satayev@google.com",
        "time": "Mon Dec 06 11:42:40 2021 +0000"
      },
      "committer": {
        "name": "satayev",
        "email": "satayev@google.com",
        "time": "Wed Dec 08 11:36:34 2021 +0000"
      },
      "message": "Allow java_sdk_library in an APEX to have higher min_sdk_version.\n\nInidividual boot or system server jars may have higher min_sdk_version\nthan the contianing apex, since the runtime respects the values of\nmin/max_sdk_version; e.g. runtime would not load a boot jar with\nhigher min_sdk_version. This allows shipping new boot jars via apexes\nthat target older platforms.\n\nBug: 190818041\nTest: presubmit\nChange-Id: I08ec0b4463a17bc8265b948fe09da55eb4e52ac3\n"
    },
    {
      "commit": "8f088b09d87caf20468750a05351474c7bf72322",
      "tree": "a929214112e402cf67a4c7e5618d0d38acc305e9",
      "parents": [
        "ad99149a629a01f0fda63e3efe282529205cf320"
      ],
      "author": {
        "name": "satayev",
        "email": "satayev@google.com",
        "time": "Mon Dec 06 11:40:46 2021 +0000"
      },
      "committer": {
        "name": "satayev",
        "email": "satayev@google.com",
        "time": "Wed Dec 08 11:36:34 2021 +0000"
      },
      "message": "Perform CheckMinSdkVersion for java_sdk_library.\n\nIn a follow up, apex would expect that any module that implements\nModuleWithMinSdkVersionCheck to have performed appropate checks on\nmin_sdk_version, to allow relaxing some of the existing conditions.\n\nThis change moves the responsibility of checking min_sdk_version\nof java_sdk_library to java_sdk_library itself.\n\nBug: 205923322\nTest: presubmit\nChange-Id: I79b5a1fc34098fff60221e416db6e6e69e01f531\n"
    },
    {
      "commit": "ba6682fabfbf39b11a74c8b48a08b9308f94a8a4",
      "tree": "81402f776e51551dab1cca869b81fc8c3d30f9ce",
      "parents": [
        "c362142438b5b883f62d57f980fdee2f02a26b7c"
      ],
      "author": {
        "name": "Pedro Loureiro",
        "email": "pedroql@google.com",
        "time": "Fri Oct 29 09:32:32 2021 +0000"
      },
      "committer": {
        "name": "satayev",
        "email": "satayev@google.com",
        "time": "Wed Nov 24 17:09:20 2021 +0000"
      },
      "message": "Fix attribute names in generated permissions.xml\n\nPreviously it would write min_device_sdk whereas the correct name should\nbe min-device-sdk. This happened for all shared libs attributes.\n\nTest: m nothing\nTest: manually installed an apex with a shared lib and made sure PM used\nthe attributes as expected\n\nBug: 191978330\n\nChange-Id: Iecf7edd6bae98c7af908d3f320f10ae4973d0396\nMerged-In: Iecf7edd6bae98c7af908d3f320f10ae4973d0396\n(cherry picked from commit bde653e5fdde3c2136b524e2afbd42bfa008dd2f)\n"
    },
    {
      "commit": "c362142438b5b883f62d57f980fdee2f02a26b7c",
      "tree": "6e9597e73c2cb2d453f0d43dbfd584d459b12996",
      "parents": [
        "9956e5e281973c810ac182646f18649a35182bb5"
      ],
      "author": {
        "name": "Pedro Loureiro",
        "email": "pedroql@google.com",
        "time": "Tue Sep 28 15:40:23 2021 +0000"
      },
      "committer": {
        "name": "satayev",
        "email": "satayev@google.com",
        "time": "Wed Nov 24 17:09:19 2021 +0000"
      },
      "message": "Perform validation of shared library attributes\n\nPerform consistency checks as per http://go/updatable-shared-libraries\n\nThese include:\n  * no attribute can specified can be less than T\n  * max-device-sdk can\u0027t be less than min-device-sdk\n  * min and max-device-sdk need to be at least the module\u0027s\n  min_sdk_version\n  * using on-bootclasspath-before implies that the module\u0027s\n  min_sdk_version is at least T or the library has min-device-sdk of at\n  least T\n\nTest: m nothing\n\nBug: 191978330\n\nChange-Id: Iaca5cf23fb0bc7e65effb3529c8e829560894c2e\nMerged-In: Iaca5cf23fb0bc7e65effb3529c8e829560894c2e\n(cherry picked from commit f9e584dd20068334f7ab44c8a989fc1b177e3886)\n"
    },
    {
      "commit": "9956e5e281973c810ac182646f18649a35182bb5",
      "tree": "b4ef032e109a7be85c850c0d738e26c98b9ebd07",
      "parents": [
        "8c64fa9a8efafadb787143296750b32a0119f23b"
      ],
      "author": {
        "name": "Pedro Loureiro",
        "email": "pedroql@google.com",
        "time": "Tue Sep 07 17:21:59 2021 +0000"
      },
      "committer": {
        "name": "satayev",
        "email": "satayev@google.com",
        "time": "Wed Nov 24 17:09:18 2021 +0000"
      },
      "message": "Add support for new permissions library tag attributes\n\nWe are expanding PackageManager\u0027s supported attributes and this change\nenables the developer to define them in the .bp file.\n\nTest: m nothing\n\nBug: 191978330\n\nChange-Id: I01d579190fb585662086a7fc456f3b33cb89fb57\nMerged-In: I01d579190fb585662086a7fc456f3b33cb89fb57\n(cherry picked from commit 826863c8e0844b2172fde38ccdcc0d83aa2ae7e5)\n"
    },
    {
      "commit": "df8aa1fbcff1c9fe88e64daa9d8da0cfbebfb7ea",
      "tree": "a0aa0653f5a28dbf39cadfea2a2080d431eb7c89",
      "parents": [
        "5506c1658c654c8d97c6e7f41116678384e2e50b"
      ],
      "author": {
        "name": "Trevor Radcliffe",
        "email": "tradical@google.com",
        "time": "Thu Nov 04 14:25:39 2021 +0000"
      },
      "committer": {
        "name": "Trevor Radcliffe",
        "email": "tradical@google.com",
        "time": "Thu Nov 04 14:39:06 2021 +0000"
      },
      "message": "Reformat SDK Library docs\n\nWe\u0027re not sure what formatting is applied to this but it sure\nisn\u0027t markdown.\n\nFixes: 204572072\nTest: Build and compare docs\nChange-Id: Ib023f0cb490a7c7c5605d426ce5e70a7130d5162\n"
    },
    {
      "commit": "a14b18fb31eada7b8b58ecd469691c20dcb371b3",
      "tree": "59e25c1f40494371ebfbd1000b9dd73a6ccbdffe",
      "parents": [
        "12a0a310a76b8219e7cbb5cb89edd1384c7c0b42",
        "46eb0fd501cf2e9e391808b55a8c91d2364f10cc"
      ],
      "author": {
        "name": "Jiakai Zhang",
        "email": "jiakaiz@google.com",
        "time": "Sun Sep 26 03:34:28 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Sep 26 03:34:28 2021 +0000"
      },
      "message": "Merge \"Remove updatable-bcp-packages.txt.\""
    },
    {
      "commit": "cf6bf37d0448919e752c3068a4c47adde42dc7f8",
      "tree": "72f81e463e1992b304c06aaf7adba43e0b54fff1",
      "parents": [
        "e1bb74e72445557e4dbdcc321072f15a45b5e005",
        "4482560cc73f16f09eecda42751cf2f8dc72e7de"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Sep 24 09:32:24 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 24 09:32:24 2021 +0000"
      },
      "message": "Merge changes I957f3df8,I68986dcc\n\n* changes:\n  Consolidate the code to resolve a deapexer module dependency.\n  Propagate the dex jar path as an OptionalPath which is either valid or invalid with a message.\n"
    },
    {
      "commit": "46eb0fd501cf2e9e391808b55a8c91d2364f10cc",
      "tree": "b20f29e9fb68dcc49021aeaccd674bf2ba9f74a8",
      "parents": [
        "66213a64b2dc1b5491dd127b35aa7b9c960ea6c7"
      ],
      "author": {
        "name": "Jiakai Zhang",
        "email": "jiakaiz@google.com",
        "time": "Thu Sep 23 07:36:57 2021 +0000"
      },
      "committer": {
        "name": "Jiakai Zhang",
        "email": "jiakaiz@google.com",
        "time": "Fri Sep 24 03:19:05 2021 +0000"
      },
      "message": "Remove updatable-bcp-packages.txt.\n\nHistorically, this file was used by the `--updatable-bcp-packages-file`\nflag for dex2oat. The flag is no longer needed and is being deprecated.\n\nUnfortunately, we cannot remove `permitted_packages` and all the code\nrelated to it because we still need it for checking the module\ncompatibility with Q and R.\n\nBug: 200241946\nTest: m nothing\nChange-Id: Ie3be54fd47a847ba0caf627d12da76b415d99466\n"
    },
    {
      "commit": "4482560cc73f16f09eecda42751cf2f8dc72e7de",
      "tree": "21b3906c4fa5b2844bc9bb7527e26a4d0d6df17e",
      "parents": [
        "8be1e6db1640d51ca4478fec2c4f20d71b115734"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Sep 17 01:44:12 2021 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Sep 23 17:19:55 2021 +0100"
      },
      "message": "Consolidate the code to resolve a deapexer module dependency.\n\nIt will get more logic in upcoming CLs.\n\nAdd a property to DeapexerInfo for the APEX name, for use in error\nmessages.\n\nTest: m nothing\nBug: 192006406\nChange-Id: I957f3df8b34543a38cde38768dac93e78132d672\n"
    },
    {
      "commit": "8be1e6db1640d51ca4478fec2c4f20d71b115734",
      "tree": "b8c30872ff614934308ecfbd5b9cd99f1e69cc87",
      "parents": [
        "b13daf2ba7135f25f81fb3b51b147c63ccda143d"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Sep 15 03:34:04 2021 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Sep 23 17:19:55 2021 +0100"
      },
      "message": "Propagate the dex jar path as an OptionalPath which is either valid or\ninvalid with a message.\n\nThis will allow propagating any error from the deapexer module for\nprebuilt APEXes to the location where the dex jars get used. It\u0027s only\nat those points that we can raise errors about not being able to\nextract files from the deapexer modules if they are invalid, and this\nway we avoid encoding knowledge there about why they may be invalid.\n\nTo keep the refactoring limited it intentionally does not change any of\nthe existing logic for when dexJarFiles are set or not (non-nil vs nil\nprior to this change), although there may be opportunity to use this\nfor more conditions when dex jars aren\u0027t available.\n\nThe refactoring is also not extended to\ndexpreopt.ClassLoaderContextMap.\n\nTest: m nothing\nBug: 192006406\nChange-Id: I68986dccd9a9b3fee4d24caa1947ea17a36caedc\n"
    },
    {
      "commit": "86da9c6a3d9915549d1f94c83511866a1d0b60b5",
      "tree": "01d0443bec01ba9b35645b011e0b0dad9ad9b3d5",
      "parents": [
        "66213a64b2dc1b5491dd127b35aa7b9c960ea6c7",
        "d78eb76f6428b471a57451cc80574019c89d3409"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Thu Sep 23 09:39:38 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 23 09:39:38 2021 +0000"
      },
      "message": "Merge \"Add annotations.zip support to java_sdk_library\""
    },
    {
      "commit": "d78eb76f6428b471a57451cc80574019c89d3409",
      "tree": "86bbef402ae8892035e3fc61c58b9dff12cedc18",
      "parents": [
        "1b15345ac932793054a5d8e65cf4862ae7c12e49"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Tue Sep 21 15:25:12 2021 +0100"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Wed Sep 22 17:23:10 2021 +0100"
      },
      "message": "Add annotations.zip support to java_sdk_library\n\nThe annotations zip file is produced by the \"main\" sdk build and is\nprimarily consumed by android studio.\n\nIn order to support building the main SDK without requiring the sources\nof all modules, we are adding module SDK artifacts that allows\nreconstructing these outputs. The annotations zip contains XML files\nwhich should be fairly easy to merge from all the individual parts.\n\nBug: 187397779\nTest: unit tests in this CL\nTest: m sdkextensions-sdk and inspect output\nChange-Id: I955cae720e6f1382936836ee1d8fb11003f51b7d\n"
    },
    {
      "commit": "8b1add6dd471fe8699edc1cc370621172e131c4d",
      "tree": "681487c0c65873ab9b8d4ec8e7a95f3768ae794e",
      "parents": [
        "1b15345ac932793054a5d8e65cf4862ae7c12e49",
        "f8ea3729ca864474861f7b809a9f8c5ed13f39fc"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Tue Sep 21 14:45:02 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 21 14:45:02 2021 +0000"
      },
      "message": "Merge \"Add back the api_srcs argument\""
    },
    {
      "commit": "f8ea3729ca864474861f7b809a9f8c5ed13f39fc",
      "tree": "3cd7897a40537cc7ce9a5ae363fad3181c942f06",
      "parents": [
        "07e7294a753ef3faf572a528c8d58aba77373598"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Thu Sep 16 14:24:13 2021 +0100"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Fri Sep 17 13:42:44 2021 +0000"
      },
      "message": "Add back the api_srcs argument\n\nThis arg provides the ability to pass sources to the metalava\ninvocations that are part of a java_sdk_library without affecting\nthe runtime library.\n\nThis is useful in various scenarios, e.g.: when javadoc in some source\nfiles affects the metalava behavior. For example, the javadoc-generation\njavadoc tags @paramDoc, @returnDoc etc. Passing these as a library does\nnot work because class files do not contain javadoc.\n\nBug: 186197911\nTest: manually inspect module stub src for doc enhancements\nMerged-In: I2ce98f891283514e1896c52d9335550c1f5435fb\nChange-Id: I2ce98f891283514e1896c52d9335550c1f5435fb\n"
    },
    {
      "commit": "204356f3b54be5936e152815a96d1e917022d077",
      "tree": "e88c95897a6c94d9ca8e71a27a32f34c993244f3",
      "parents": [
        "ca9bc98e0cfe9a519cfdd13450a68f1ed7ad5b02"
      ],
      "author": {
        "name": "Jiakai Zhang",
        "email": "jiakaiz@google.com",
        "time": "Thu Sep 09 08:12:46 2021 +0000"
      },
      "committer": {
        "name": "Jiakai Zhang",
        "email": "jiakaiz@google.com",
        "time": "Wed Sep 15 09:01:07 2021 +0000"
      },
      "message": "Preopt APEX system server jars from prebuilts.\n\nSimilar to the previous CL, but for jars from prebuilts.\n\nTest: manual - 1. Patch aosp/1818020 and aosp/1810840.\n  2. m SOONG_CONFIG_art_module_source_build\u003dfalse com.android.art\nBug: 194150908\nChange-Id: Idc0c73a78045a602ad3a91cb5071d291bd611015\n"
    },
    {
      "commit": "296701e35b96c232bc4c0af69cfe0e367fd54ef4",
      "tree": "8315ccc4bc1ffad392779a4efc2b08336f31cd9c",
      "parents": [
        "45de13f93dc9c859fd763b320a80fb6d740c0a62"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Jul 14 10:29:36 2021 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Aug 31 17:07:07 2021 +0100"
      },
      "message": "Refactor SdkMemberType.AddDependencies()\n\nReplaces the BottomUpMutatorContext parameter with a new\nSdkDependencyContext type that extends BottomUpMutatorContext. This is\nto allow the sdk to pass additional information to the implementations\nof that method to allow the behavior to be more finely tuned.\n\nBug: 195754365\nTest: m nothing\nChange-Id: I69c6d2c523934eb67d7a7e6c55c241e9b8a81773\n"
    },
    {
      "commit": "93e95992a4629c8fb5a46f5628c7d1e0e6f596e3",
      "tree": "b081e6360373715f3396d0bc785157e5aba995ee",
      "parents": [
        "ae86338676084cf5966adf99f34e7086f9687edc"
      ],
      "author": {
        "name": "Spandan Das",
        "email": "spandandas@google.com",
        "time": "Thu Jul 29 18:26:39 2021 +0000"
      },
      "committer": {
        "name": "Spandan Das",
        "email": "spandandas@google.com",
        "time": "Fri Jul 30 00:25:20 2021 +0000"
      },
      "message": "Update documentation for genrule and sdk_library\n\n1. Documentation for genrule and sdk_library was missing a period, which\nhas been added now. For\ngenrule, Before:\nhttps://android-build.googleplex.com/builds/submitted/7594870/linux/latest/view/genrule.html,\nAfter:\nhttps://x20web.corp.google.com/users/sp/spandandas/soong_docs/genrule.html\n\n2. Documentation for genrule was missing definition of $(locations),\nwhich has been added now\n\nBug: 194231221\nTest: m soong_docs\nChange-Id: Ia367f13055c110d92a491a9c1b1af4113f66b296\n"
    },
    {
      "commit": "c2427ea2900d8cd5bc74e086c0937041576a349e",
      "tree": "8ff4ba2dee7120733b2490fd2ac64ae8e1cc7d36",
      "parents": [
        "52cc87959ba27af578bddd348baff2e826813772",
        "78645fbba10f390d9c814209985a038bf451bf2f"
      ],
      "author": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Mon Jul 19 10:38:45 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 19 10:38:45 2021 +0000"
      },
      "message": "Merge \"Remove `OptionalImplicitSdkLibrary()` function (it\u0027s not used anymore).\""
    },
    {
      "commit": "78645fbba10f390d9c814209985a038bf451bf2f",
      "tree": "c704b280ebdc599301b28414ec0358a316520b51",
      "parents": [
        "840efb666118ce15abbfaf49c11828d41ec38a80"
      ],
      "author": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Fri Jul 16 15:29:25 2021 +0100"
      },
      "committer": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Fri Jul 16 16:24:31 2021 +0100"
      },
      "message": "Remove `OptionalImplicitSdkLibrary()` function (it\u0027s not used anymore).\n\nSlightly improve documentation for `OptionalSdkLibraryImplementation()`.\n\nBug: 193425964\nTest: m nothing\nChange-Id: I3c3f385cf948cdbec54b5a6fb33a4d24d4b54be3\n"
    },
    {
      "commit": "630b11e9d4d63e5fabaa20adf5d1b1c81ede6681",
      "tree": "42404802684073103d3155c78b4b48a7036ac3be",
      "parents": [
        "869de147abdb2c86a91cced4fda7d27746c52af4"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jul 15 13:35:26 2021 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jul 15 14:16:44 2021 +0100"
      },
      "message": "Build updatable-bcp-packages.txt from prebuilts in sdk snapshot\n\nPreviously, the java_import and java_sdk_library_import modules did not\nmake their permitted_packages available to the rule that generates the\nupdatable-bcp-packages.txt file. This change corrects that.\n\nBug: 193763688\nTest: m nothing\n      - Added unit tests, which all failed and then fixed the tests.\nChange-Id: If0706e4551a331b48d383123088e63924dded48b\n"
    },
    {
      "commit": "869de147abdb2c86a91cced4fda7d27746c52af4",
      "tree": "65b30600d891d24d05b320318aef552e3cbde88c",
      "parents": [
        "bd14f9a952b75a85be9f6c806e2d873853ca125f"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jul 15 14:14:41 2021 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jul 15 14:15:58 2021 +0100"
      },
      "message": "Propagate permitted packages to sdk snapshot\n\nPreviously, permitted_packages were not copied to the sdk snapshot.\nThis change corrects that.\n\nBug: 193763688\nTest: m nothing\n      - Added unit tests, which all failed and then fixed the tests.\nChange-Id: I4560987f746f78c0ae706058195b6db4bea438aa\n"
    },
    {
      "commit": "d5fe8782e089ec1539a133f270aa62f5d3ead61a",
      "tree": "958cc2cb03abcabd87196c7d943d0d0cb9957b3a",
      "parents": [
        "49e0e811556dc82a3457783b3bf5a690af447183"
      ],
      "author": {
        "name": "Jeongik Cha",
        "email": "jeongik@google.com",
        "time": "Thu Jul 08 01:13:11 2021 +0900"
      },
      "committer": {
        "name": "Jeongik Cha",
        "email": "jeongik@google.com",
        "time": "Tue Jul 13 13:54:03 2021 +0000"
      },
      "message": "SdkLibraryImport\u0027s DexJarInstallPath uses installPath from source module\n\nEven though actual installed module path is the same as source module,\nit uses impl\u0027s one.\n\nBug: 188179858\nBug: 193082464\nTest: compare dexpreopt_config.zip files from\n  1. TARGET_BUILD_UNBUNDLED_IMAGE\u003dtrue m dexpreopt_config_zip\n  2. m dexpreopt_config_zip\n  (note that m clean should run between steps)\nTest: build aosp_cf_x86_64_phone,  launch_cvd, and then\n  adb wait-for-device \\\n      \u0026\u0026 adb root \\\n      \u0026\u0026 adb logcat \\\n      | grep -E \u0027ClassLoaderContext [a-z ]+ mismatch\u0027 -C 1\n      and then check if there is no message.\n\nChange-Id: I34ffd9a2d214a6614c2befc35b2beec003cfcd25\n"
    },
    {
      "commit": "3f0290ef7940c70a491dcbd4b57cabd8b2e753ef",
      "tree": "3d19d31d7bcc9e9fa2a77ada44f0f5342ab5b1e2",
      "parents": [
        "49387d54688b2fb4dd309f583e2da13d57a6772a"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Jun 30 18:25:36 2021 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Jun 30 19:36:52 2021 +0100"
      },
      "message": "Support using java_sdk_library components in stub_libs\n\nPreviously, if a bootclasspath_fragment had both a java_sdk_library\nmodule and one of its components in stub_libs properties they would be\ntreated as separate modules instead of simply different APIs from the\nsame module. That would result in them both providing stub dex jars to\n\"hiddenapi list\" which would fail because it found duplicate\ndefinitions of the same class.\n\ne.g. Specifying something like this:\n    api: {\n        stub_libs: [\n            \"art.module.public.api\",\n        ],\n    },\n    core_platform_api: {\n        stub_libs: [\n            \"art.module.public.api.stubs.module_lib\",\n        ],\n    },\n\nwould cause \"hiddenapi list\" to fail because it would have been passed\npaths to two dex jars (actually the same dex jar but that does not\nmatter) each of which defined the same class, e.g. java.lang.Object.\n\nThis change treats the \"art.module.public.api.stubs.module_lib\" and\n\"art.module.public.api\" modules as being the same for the purposes of\nhidden API processing.\n\nBug: 192446466\nTest: m nothing\nChange-Id: I9de96337f64f26e24cff040d4bbed9eecc67b1ed\n"
    },
    {
      "commit": "ea8f808580824fb1c0828ca9bc3644da274e8297",
      "tree": "be87bd65f2fd3642e98a907d226e10c42bd217c3",
      "parents": [
        "a8de9fb2aea3e543313eef63ec2c8b1389796097"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jun 24 13:25:57 2021 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jun 24 13:33:01 2021 +0100"
      },
      "message": "Ensure consistent APEX variation for java_sdk_library and java_sdk_library_import\n\nPreviously, a java_sdk_library with shared_library \u003d true would create\na variation per APEX because it depends on an sdkLibraryXml module\nwhich generates a file containing the APEX name. However, a shared\njava_sdk_library_import would create a merged APEX variation. The\ninconsistent variations caused failures in sdkDepsReplaceMutator.\n\nThis change ensures that both java_sdk_library and\njava_sdk_library_import create an APEX specific variation when their\nshared_library property is true.\n\nBug: 190499958\nTest: m nothing\n      - ran the above command after modifying the test to reproduce the\n        problem and then after fixing to verify that it fixed the problem.\nChange-Id: Iee81776a8569db3e871c40cbde14d248dfeb56e4\n"
    }
  ],
  "next": "b97b1579d3374ada49887d356dd6dd693d32a18d"
}
