)]}'
{
  "log": [
    {
      "commit": "0c10e4dcc027e341655e8eedc20bd77f9539a22b",
      "tree": "84843d33683b21c94e695d2251b1fe20c58cb4fb",
      "parents": [
        "e59c0db5360b850b444c3bed9b92b0fd30b15e1e"
      ],
      "author": {
        "name": "LaMont Jones",
        "email": "lamontjones@google.com",
        "time": "Tue May 16 00:58:37 2023 +0000"
      },
      "committer": {
        "name": "LaMont Jones",
        "email": "lamontjones@google.com",
        "time": "Fri May 19 20:31:32 2023 +0000"
      },
      "message": "Parallelize singleton execution\n\nBug: 281536768\nTest: manual, presubmits\nChange-Id: I57fdc76ba6b277e88e196b506af87127a530fd37\n"
    },
    {
      "commit": "76b06f3973462a5c4d1702e94426aa33874a0af2",
      "tree": "075380f70338bef3e57f70329c2cdc119e1b00f9",
      "parents": [
        "8ecedd4dfc3ccd1c2a4c384e9a6de3906a33a1b4"
      ],
      "author": {
        "name": "Kiyoung Kim",
        "email": "kiyoungkim@google.com",
        "time": "Mon Feb 06 22:08:13 2023 +0900"
      },
      "committer": {
        "name": "Kiyoung Kim",
        "email": "kiyoungkim@google.com",
        "time": "Mon Feb 27 12:57:30 2023 +0900"
      },
      "message": "Implement API surface import with APEX stub\n\nImplement APEX stub of API surface so any stub can be replaced with API\nsurface when APEX stub interface is required.\n\nUnlike other stub interface, APEX stub can be decided if it should be\nused after APEX postdeps mutator analyzes which modules should be\nincluded in which APEX. To cover this, APEX stub is being added to the\ndependency if the dependency should not be covered with LLNDK or NDK\nstub, and APEX stub exists. From depsToPaths, if dependency to both\noriginal module and API library exists, then it choose one of the\ndependency and ignore the other.\n\nTo cover this logic, a new property is added to the api_surface :\napex_libs. This is introduced as it is difficult to\ngather all api library with apex stub before DepsMutator.\n\nBug: 264963986\nTest: cf_x86_64_phone_vendor build succeeded\nChange-Id: I9f0b1f70968e32eba94d3e0d7bb1f4bb29ff2438\n"
    },
    {
      "commit": "22e6b50ac21af31ceba020dd741f97aefd141916",
      "tree": "25c17d50265c5f8706f76efad9a658f536571938",
      "parents": [
        "51279d3a7b255cd302846a03254d9ac6fa18c409"
      ],
      "author": {
        "name": "Kiyoung Kim",
        "email": "kiyoungkim@google.com",
        "time": "Wed Aug 31 14:05:45 2022 +0900"
      },
      "committer": {
        "name": "Kiyoung Kim",
        "email": "kiyoungkim@google.com",
        "time": "Thu Sep 01 11:24:38 2022 +0900"
      },
      "message": "Export API imported library list to Makefile\n\nExport API imported library list to Makefile, so it can be used to\nreplace dependency for modules defined in Makefile.\n\nBug: 243736650\nTest: \u0027ALLOW_MISSING_DEPENDENCIES\u003dtrue m halutil\u0027 succeeded\nChange-Id: I0540681b4b8129a37b4a83eed9b09218839e364e\n"
    },
    {
      "commit": "487689eaee9edf5163ed31e3a66f8e35f1dfcfb6",
      "tree": "ec52c0bd4157e2226146bf83e86472e0c5ba1507",
      "parents": [
        "b7873a8b0fa950bcab2e90e2e8ce3d4664e91eb2"
      ],
      "author": {
        "name": "Kiyoung Kim",
        "email": "kiyoungkim@google.com",
        "time": "Tue Jul 26 09:48:22 2022 +0900"
      },
      "committer": {
        "name": "Kiyoung Kim",
        "email": "kiyoungkim@google.com",
        "time": "Wed Aug 10 10:12:18 2022 +0900"
      },
      "message": "Introduce cc_api_library\n\nIntroduce cc_api_library, which reflects imported API from other\ninner-tree. This cc_api_library module type will later refer from\nthe other ninja module which generates stub library from the interface\ndescription.\n\nTested environment :\n* original libc definition has been removed temporarily, to ensure that\n  imported api stub library is being used from build\n* Added new definition of libc as below\n cc_api_library {\n  name: \"libc\",\n  arch: {\n    x86: {\n      src: \"libs/x86/libc.so\",\n    },\n    x86_64: {\n      src: \"libs/x86_64/libc.so\",\n    },\n  },\n  header_libs: [\n    \"libc_headers\",\n  ],\n  export_header_lib_headers: [\"libc_headers\"],\n  min_sdk_version: \"9\",\n  vendor_available: true,\n }\n\nBug: 236087698\nTest: `ALLOW_MISSING_DEPENDENCIES\u003dtrue m vendorimage` succeeded\nChange-Id: I67070b0f3561aa2afd73b6c1c0fdf4255218baac\n"
    },
    {
      "commit": "5eb7ee9fad2cd514fdb432d8bce075efe50fc3b2",
      "tree": "39407550eaaddc23fff62b6b299199f940082d5a",
      "parents": [
        "d0fba50d71b711fd7ac8fbacde5376053b1a5cbf"
      ],
      "author": {
        "name": "Inseob Kim",
        "email": "inseob@google.com",
        "time": "Wed Apr 27 10:30:34 2022 +0900"
      },
      "committer": {
        "name": "Inseob Kim",
        "email": "inseob@google.com",
        "time": "Thu Apr 28 08:20:10 2022 +0000"
      },
      "message": "Prototype changes for multitree\n\nThis change contains a prototype implementation for multitree. Several\ninterfaces and modules are added.\n\n1. Imported/Exported\nModules implementing Exportable interface can export artifacts to other\ncomponents. \"imported_filegroup\" modules can import generated artifacts from other exported modules.\n\n2. Multitree metadata\nIt contains information about imported/exported modules in each\ncomponent, and can be generated via \"m update-meta\".\n\n3. cc library stub\nIt\u0027s based on prototype stub libraries. It uses imported/exported\nmechanism to expose a C API, with a map.txt file and header files.\n\nBug: 230448564\nTest: m\nChange-Id: Id7ff7618e2c630c5617a564d8b23b60a1cc9c8e8\n"
    }
  ]
}
