)]}'
{
  "log": [
    {
      "commit": "d5083f6f6b9bc76bbe64052bcec639eee752a321",
      "tree": "29b5dfb74c7e9b12164ced408315b0ad8d5cf527",
      "parents": [
        "04e7b6c6de620406348142ba9dd65bad094e264b"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Jan 16 15:07:21 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jan 17 18:55:51 2017 -0800"
      },
      "message": "Move StringPiece to libandroidfw\n\nlibandroidfw needs to make use of StringPiece, so\nmove it to libandroidfw and update all code referencing\nStringPiece in aapt2.\n\nTest: make libandroidfw_tests libaapt2_tests\nChange-Id: I68d7f0fc7c651b048d9d1f5e7971f10ef5349fa1\n"
    },
    {
      "commit": "c0c366394c658e3787b12e65833b520c9a9a34d9",
      "tree": "0f8edb0b05d1d2899100fd114053ba1b8baa39a0",
      "parents": [
        "9212fc742ff4fc92561c8055388d119d8ef195ae"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Oct 19 18:37:53 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Oct 27 18:09:00 2016 -0700"
      },
      "message": "Add font type to AAPT2\n\nTest: make libaapt2_tests AaptTestAppOne\nChange-Id: I8fbf01675a218cc3c0b59598b6b1ec173851e946\n"
    },
    {
      "commit": "ce5e56e243d262a9b65459c3bd0bb9eaadd40628",
      "tree": "cf0ecea98883d090d8d2856fc6d32046c7e3d9e8",
      "parents": [
        "0f7cc4dc2c49a30c072cbc7aa6c0c5d5c31496d4"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Oct 21 17:56:45 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Oct 26 19:30:23 2016 -0700"
      },
      "message": "AAPT2: Rename to match new style\n\nUse Google3 naming style to match new\nprojects\u0027 and open source google projects\u0027 style.\n\nPreferred to do this in a massive CL so as to avoid\nstyle inconsistencies that plague legacy code bases.\nThis is a relatively NEW code base, may as well keep\nit up to date.\n\nTest: name/style refactor - existing tests pass\nChange-Id: Ie80ecb78d46ec53efdfca2336bb57d96cbb7fb87\n"
    },
    {
      "commit": "cacb28f2d60858106e2819cc7d95a65e8bda890b",
      "tree": "c8ac4af72b0a9599983567029e5680c40f9883a3",
      "parents": [
        "733f0bc08ea0c93d095016a791c2914658d0cdde"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Oct 19 12:18:14 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Oct 19 12:18:14 2016 -0700"
      },
      "message": "Use Google3 style guide with .clang-format\n\nTest: style change only, builds ok\nChange-Id: I885180e24cb2e7b58cfb4967c3bcb40058ce4078\n"
    },
    {
      "commit": "8197cc460e02c6445434eace435e3d38ebe475c6",
      "tree": "4d3a76e6bf511d3f6ef331fc9dcd89ebf1ebd0fe",
      "parents": [
        "aa0255da28675431c93593a8dd2d225538cbb3ac"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Aug 19 12:16:49 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Aug 19 13:29:40 2016 -0700"
      },
      "message": "AAPT2: Merge Styleables instead of overriding them\n\nStyleables merge in AAPT. Preserve this behavior.\n\nBug:30970091\nChange-Id: Ie68ca675aeecd873c0648682182e2fc574e329a0\n"
    },
    {
      "commit": "9b8528fee4eed35b8e887ded0851d08eb2b10db6",
      "tree": "36df1cee89b3689454e6b09a6bfa5eabfb3214b1",
      "parents": [
        "7310353aeb771c109e5aea2c5415fa502eb13a7b"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 14:15:30 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Aug 11 15:16:41 2016 -0700"
      },
      "message": "Fix clang-tidy warnings in aapt and aapt2.\n\n* Add explicit keyword to conversion constructors.\n* Add NOLINT(implicit) comments for implicit conversion constructors.\nBug: 28341362\n* Use const reference type for read-only parameters.\nBug: 30407689\n* Use const reference type to avoid unnecessary copy.\nBug: 30413862\nTest: build with WITH_TIDY\u003d1\n\nChange-Id: Id6d21961f313a1ad92b15a37fdaa5be9e8ab48e1\n"
    },
    {
      "commit": "bf0bd0f9ac1ffa0231cff0f6591dede48b3c6d52",
      "tree": "fa0def8a1f754872ce6b912e30b7badc6470e208",
      "parents": [
        "ef556916aa75ae5e992b7c92345dc1011899a660"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Jun 01 15:31:50 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Jul 25 16:02:18 2016 -0700"
      },
      "message": "AAPT2: Add support to specify stable IDs\n\nThe --stable-ids flag allows the user to specify a file containing\na list of resource name and resource ID pairs in the form of:\n\npackage:type/name \u003d 0xPPTTEEEE\n\nThis assigns the given resource the specified ID. It helps ensure\nthat when adding or removing resources, IDs are assigned in a stable\nfashion.\n\nIf a package, type, or name is not found, no error or warning is\nraised.\n\nChange-Id: Ibc2f4e05cc924be255fedd862d835cb5b18d7584\n"
    },
    {
      "commit": "d0f116b619feede0cfdb647157ce5ab4d50a1c46",
      "tree": "5b2a8663602ba2b267890ff85d3cf5618ac922b5",
      "parents": [
        "aaac91f4a00a9968ef107ea143e6f2f669f762f1"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Jul 08 15:00:32 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Jul 13 17:45:28 2016 -0700"
      },
      "message": "AAPT2: Remove usage of u16string\n\nFor legacy reasons, we kept around the use of UTF-16 internally\nin AAPT2. We don\u0027t need this and this CL removes all instances of\nstd::u16string and StringPiece16. The only places still needed\nare when interacting with the ResTable APIs that only operate in\nUTF16.\n\nChange-Id: I492475b84bb9014fa13bf992cff447ee7a5fe588\n"
    },
    {
      "commit": "96917c25f09bb2f33e22f20cdfa4ece8f310b084",
      "tree": "3ceb11cdc8d6dfc3dd399a01e648bda0d91dea05",
      "parents": [
        "0dda14c671e7c19841f963b0bc665da055738437"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Mar 09 13:11:25 2016 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Mar 09 13:23:12 2016 -0800"
      },
      "message": "AAPT2: Fix file::mkdirs when given absolute paths\n\nfile::mkdirs would try to extract the first part of the\npath \u0027/path\u0027 which would be the empty string \u0027\u0027. Mkdir would\nfail creating the empty string directory.\n\nChange-Id: Ice8ba92135f145f52f3663499a2c49eebe797328\n"
    },
    {
      "commit": "74605cd40256ca75b44cc3182eeeb886c92d737c",
      "tree": "aeaba146e014328caa3eafc257b3c6bad73bb53e",
      "parents": [
        "626a69f34536d01db0847df0051199beaecce060"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Mar 03 15:39:50 2016 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Mar 04 20:06:05 2016 -0800"
      },
      "message": "AAPT2: Emit proper doclava comments in R.java\n\nBug:25958912\nChange-Id: I663f2eb5bd54e3c3288ce9bc186c928f0a014f93\n"
    },
    {
      "commit": "a6fe345be955368a13aea76aefb4db821aad11df",
      "tree": "c5385f798a6e1fb674f6f13c0f323726258618ca",
      "parents": [
        "01655232371d7c7ea5b58ccf66ad99917072018a"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Dec 09 15:20:52 2015 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Dec 10 16:24:15 2015 -0800"
      },
      "message": "AAPT2: Fix overlay support\n\nSupports the \u003cadd-resource\u003e tag and mimics old AAPT behavior of\nnot allowing new resources defined unless \u003cadd-resource\u003e was used\nor --auto-add-overlay was specified.\n\nChange-Id: I9b461137357617ade37fd7045b418b8e6450b9c4\n"
    },
    {
      "commit": "ca5638fd85098c3d0a699492751043545f75553a",
      "tree": "9ede79caee33fc201b2d5a2da994a77fa25a7c2c",
      "parents": [
        "030cfd3da697d51bf1bffd076881c12acedd851e"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Oct 21 14:42:43 2015 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Oct 30 13:51:11 2015 -0700"
      },
      "message": "AAPT2: Support generating Manifest.java\n\nThis includes comments from AndroidManifest.xml.\n\nChange-Id: I412d9ecb12bad20a49a683d6b3bea4a0be1235ae\n"
    },
    {
      "commit": "9ba47d813075fcb05c5e1532c137c93b394631cb",
      "tree": "1eb9f7adc315ab8ad640249f8ac1888951520f3f",
      "parents": [
        "072c5bdff77e354bdf333c0c1d460cdd1c2e76ae"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Oct 13 11:37:10 2015 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Oct 16 15:50:58 2015 -0700"
      },
      "message": "Filter products during compile phase\n\nUnfortunately there is no good way to deal with products in the link phase.\nProducts are like preprocessor defines in that they are processed early\nand change the composition of the compiled unit.\n\nChange-Id: I6d5e15ef60d29df8e83e059ba857c09333993779\n"
    },
    {
      "commit": "1ab598f46c3ff520a67f9d80194847741f3467ab",
      "tree": "4846790211599fdd7a9bb35ec94df4a6ec4839d6",
      "parents": [
        "547c346bb34878b691fd53e54aa3a88efcc5dc6f"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Aug 14 14:26:04 2015 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Oct 16 12:13:08 2015 -0700"
      },
      "message": "AAPT2: Separate out the various steps\n\nAn early refactor. Some ideas became clearer as\ndevelopment continued. Now the various phases are much\nclearer and more easily reusable.\n\nAlso added a ton of tests!\n\nChange-Id: Ic8f0a70c8222370352e63533b329c40457c0903e\n"
    },
    {
      "commit": "838a68705bc79527e592265371cbe4d8e888d9d9",
      "tree": "63986bf6eb70a6af4c0298e9aa0393b4266cd92f",
      "parents": [
        "6ff19664f9279023c96e5a65c3059e1ef4beac0f"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri May 01 13:14:05 2015 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon May 04 16:43:24 2015 -0700"
      },
      "message": "AAPT2: Include package name of attributes in styleable from another package\n\nChange-Id: I44f902e297238e7ee4ae27c02aaaf9e148652d2a\n"
    },
    {
      "commit": "24aad163bc88cb10d2275385e9afc3de7f342d65",
      "tree": "361fc0b3fbef5f68a16f357ae9d2bed5e93efbf5",
      "parents": [
        "ab2581398c812917145088590bd18eb83f3a2ea6"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Apr 24 19:19:30 2015 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon May 04 16:43:24 2015 -0700"
      },
      "message": "Add namespace handling in attribute values\n\nPreviously, you could only reference namespace prefixes in attribute names:\n\n\u003cView xmlns:appcompat\u003d\"http://schemas.android.com/apk/res/android.support.v7.appcompat\"\n      appcompat:name\u003d\"hey\"\n      ...\n\nNow you can also reference them in resource names within an attribute value:\n\n      ...\n      android:text\u003d\"@appcompat:string/confirm\"\n      ...\n\nWhich will be treated as \"@android.support.v7.appcompat:string/confirm\".\n\nChange-Id: Ib076e867a990c80cf877a704eb77cd1ef0b23b52\n"
    },
    {
      "commit": "769de98f2dd41bfe39a1c9f76aefd1ad58942733",
      "tree": "3d79143b08f02dfb61158689f51e01eeb1bb371e",
      "parents": [
        "9310e4285b3fc951c3524d040726d1161015562c"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Apr 10 19:43:55 2015 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Apr 15 19:56:59 2015 -0700"
      },
      "message": "AAPT2: Add library support\n\nChange-Id: I307f56d9631784ab29ee4156d94886f9b2f25b30\n"
    },
    {
      "commit": "ca2fc353c2b07e24e297fdc8426c7abd601d908b",
      "tree": "2f9242af3558209ac265fb7d2d1164652f78d8de",
      "parents": [
        "7e3a19ac85d30abade971d8d0a948b4599d97c9e"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Apr 03 12:08:26 2015 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Apr 03 12:33:02 2015 -0700"
      },
      "message": "Fix windows build of AAPT2\n\nChange-Id: Ib8e1a4322510b582e9600a08d3118842c9abc73c\n"
    },
    {
      "commit": "6f6ceb7e1456698b1f33e04536bfb3227f9fcfcb",
      "tree": "0a1f8e354c4714f162f849b09a5d5da757c6d5b8",
      "parents": [
        "041ca26d028ae314d416cb107721ea7267af6aca"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Nov 14 14:48:12 2014 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Apr 02 17:02:48 2015 -0700"
      },
      "message": "AAPT2\n\nFirst checking of AAPT2. The individual phases of AAPT2 work, but there\nare some missing pieces.\n\nFor early testing we are missing:\n- Need to properly mark file references and include them in package\n- Need to package into zip\n\nFinal AAPT for apps we are missing:\n- Need to crush PNGs\n- Need to parse 9-patches\n- Need to validate all of AndroidManifest.xml\n- Need to write align method to align resource tables for splits.\n\nFinal AAPT for apps + system we are missing:\n- Need to handle overlays\n- Need to store comments for R file\n- Need to handle --shared-lib (dynamic references too).\n\nNew AAPT features coming:\n- Need to import compiled libraries\n    - Name mangling\n    - R file generation for library code\n\nChange-Id: I95f8a63581b81a1f424ae6fb2c373c883b72c18d\n"
    }
  ]
}
