)]}'
{
  "log": [
    {
      "commit": "8f7c550e20a6edbc9af7bb48675afaf8bcb3783f",
      "tree": "7a04d263f79324e59a30fda3a78034159578c90d",
      "parents": [
        "555bf41049bbc387d920704f7a1f23314bc84986"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Mar 02 17:45:01 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Mar 02 17:45:51 2017 -0800"
      },
      "message": "AAPT2: Fix Plural::Equals() method\n\nTest: make aapt2_tests\nBug: 35902437\nChange-Id: I8797f89af58876f891f0b0c5cce85fd7781c4e24\n"
    },
    {
      "commit": "b5dc4bd49a036e3403ca17e961d2c8e13e038295",
      "tree": "e07c0d9a9718a34e2834fe6adbfd99e449cebb8b",
      "parents": [
        "9a53d03104c4535f512ec24e63afe9a965979812"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Feb 22 19:29:29 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Feb 22 19:54:43 2017 -0800"
      },
      "message": "AAPT2: Few tweaks to get shared-libraries working\n\nTest: manual (building shared support library demo)\nChange-Id: I4730645aa92ba1893baf67ffe35fbd4aac0f8e46\n"
    },
    {
      "commit": "7542162cb1b1fd2ce8a26dd7f3fedc8de8160d38",
      "tree": "0358684e3551d67eb93cb80ae81ef391ba1a9091",
      "parents": [
        "c270de85cc0c398d9ce165592908d2740219a708"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Jan 06 15:20:04 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Feb 08 06:23:45 2017 -0800"
      },
      "message": "AAPT2: Fix pseudolocalization to respect \u003cxliff:g\u003e\n\nThe XLIFF \u0027g\u0027 tag specifies content that should NOT be translated.\nAAPT2\u0027s pseudolocalization process should respect it.\n\nBug:34064599\nTest: make libandroidfw_tests\nChange-Id: Ice437d7f0ff246730ee04896fd035e2d846148fb\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": "5c3464c75fc517c0306a4ffd39c59671ccfde544",
      "tree": "6a20580de33238d2c16a761f880a442eb5c74c0b",
      "parents": [
        "e637f31581787efc533b2115ca7d71fa8d92e98b"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Aug 24 16:03:48 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Aug 26 19:40:50 2016 -0700"
      },
      "message": "AAPT2: Fix merging of styleables the right way\n\nStyleables should only be merged when processing overlays.\nThis moves the styleable merging code out of ResourceTable\nand into TableMerger.\n\nChange-Id: I3aae05cf4dd875cd25ac2ac744b61194409b2fee\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": "36c73a595910e96f3552f938eeb81d46356067a1",
      "tree": "69632325f13ba59c48c9951b35abc3ef6e7ceda3",
      "parents": [
        "534376f3e9e302946d6f5aae883748107d466c50"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Aug 11 13:39:24 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Aug 15 12:14:26 2016 -0700"
      },
      "message": "AAPT2: Expose split support to command line\n\nBug:30445078\nChange-Id: If4b8530dba71b9059b8e62c04757da99c1119d22\n"
    },
    {
      "commit": "5e8fa3a24835a1ad39f758f630a61c83133eabf8",
      "tree": "c357223fa7c0d85b482b6cf82a6ebe4aadb20076",
      "parents": [
        "d4e80c6a4b99a24b0cf3a14a42123ec593412a7f"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Jun 27 16:21:42 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Jun 29 21:56:58 2016 -0700"
      },
      "message": "AAPT2: Improve diff command\n\nChange-Id: Ia1e2f8482c7192ef50126b61bed7975297332767\n"
    },
    {
      "commit": "458b877488c12ea4336d8fc00a95d9c0298bd6d0",
      "tree": "6169f78510254f6bde737279763049f00eaef200",
      "parents": [
        "832449800e2e5068ab0eb986bb359906ddf6efdc"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Apr 25 14:20:21 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Sat Apr 30 01:36:12 2016 +0000"
      },
      "message": "AAPT2: Add diff command\n\nAdds the diff command and various small fixes to issues\ndiscovered when diffing old AAPT built APKs with new AAPT2\nbuilt APKS.\n\nBug:22775504\nChange-Id: I682a7fe1cf4b3efa7cbd5d18b333cf2d1046fe1b\n"
    },
    {
      "commit": "355f285ffd000f6cfe76680eb22d010546d124bb",
      "tree": "94d86559ba73ed2f482af1f296ef56374776a8f6",
      "parents": [
        "e4735a99598bf29847a9f12dd7fae6d7df880bc4"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Sat Feb 13 20:26:45 2016 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Feb 17 18:17:25 2016 -0800"
      },
      "message": "AAPT2: Implement density stripping and initial Split support\n\nWhen a preferred density is supplied, the closest matching densities\nwill be selected, the rest stripped from the APK.\n\nSplit support will be enabled in a later CL. Command line support is still\nneeded, but the foundation is ready.\n\nBug:25958912\nChange-Id: I56d599806b4ec4ffa24e17aad48d47130ca05c08\n"
    },
    {
      "commit": "59e04c6f92da584b322c87072f18e6cab4de4c60",
      "tree": "c08dd13ae57f9b6000441035201f226d532f8896",
      "parents": [
        "41466449aae2d304cf05680f5adbf44312d7a65e"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Feb 04 15:59:23 2016 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Feb 09 19:59:17 2016 +0000"
      },
      "message": "AAPT2: Switch to protobuf for intermediate format\n\nWithout needing to conform to the runtime data format,\nit is much easier to add new features such as debugging symbols\nand carrying over product data to link time.\n\nThis also simplifies the runtime format parser and serializer,\nwhich will change much less frequently than the protobuf intermediate\nformat.\n\nChange-Id: I209787bbf087db0a58a534cb8511c51d21133e00\n"
    },
    {
      "commit": "393b5f0d6130d3848dd82075986a5cf40c09ce44",
      "tree": "5643311ac74ad383b2efa37fee2f3d21878cf6d8",
      "parents": [
        "24b8ff0faf7c59323d0171cdd825ca09e712aa1e"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Dec 17 13:03:11 2015 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Jan 06 12:05:41 2016 -0800"
      },
      "message": "AAPT2: Port AAPT pseudolocalization to AAPT2\n\nPseudolocalization happens at the compile phase. Pseudolocalized\nvalues are weak, such that manually specified values will take precedence.\n\nChange-Id: I5e064ce0d270c9f4f9022f75aecedab9d45bc980\n"
    },
    {
      "commit": "24b8ff0faf7c59323d0171cdd825ca09e712aa1e",
      "tree": "f1350009e8e3aa03ab93b088619635991aeb989a",
      "parents": [
        "7ff3ee19f4b831a526baf4b928d1ac172d070d82"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Dec 16 14:01:57 2015 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Dec 17 11:01:55 2015 -0800"
      },
      "message": "AAPT2: Fix references to private parent\n\nChange-Id: Id4697551b6c8cb6167f562de593006ae3c6158c0\n"
    },
    {
      "commit": "a587065721053ad54e34f484868142407d59512d",
      "tree": "57efbb55d03b5e68610802da8e469d5d48a29078",
      "parents": [
        "78de1bcbbdad03d893d0b1df5372732cf6d0d934"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Nov 20 15:32:30 2015 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Nov 23 12:01:15 2015 -0800"
      },
      "message": "AAPT2: Verify min/max attr fields\n\nIntegers are now checked to see if they fall in the range\nof min/max for the attribute they are assigned.\n\nChange-Id: I42c435b15fd3f0bd23691c83efccce4ad5973276\n"
    },
    {
      "commit": "467f171315f9c2037fcd3eb5edcfabc40671bf7b",
      "tree": "3b14762e3d9e42a660479d0d5722883b391f835b",
      "parents": [
        "abf83cbe4f63cd76043aab89cd0e08525560fea2"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Nov 16 17:35:44 2015 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Nov 19 14:46:53 2015 -0800"
      },
      "message": "AAPT2: Fail compiling when private symbols are referenced\n\nAlso moved some XML specific stuff into its own directory,\nand refactored ReferenceLinker a bit.\n\nChange-Id: I912247a82023c1bbf72dc191fbdaf62858cbec0c\n"
    },
    {
      "commit": "b274e35abfbbd09e0fce983a215c11522c56cce2",
      "tree": "a30ba5aac504bbdfde8ac6931cb8471a46f6e284",
      "parents": [
        "557b64abad9915f92a9d35c748766e873f3a29fd"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Nov 06 15:14:35 2015 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Nov 06 16:37:57 2015 -0800"
      },
      "message": "AAPT2: Fix inclusion of comments in R.java javadoc\n\nComments weren\u0027t being copied when merged from the various\nresource tables.\n\nAlso refactored the JavaClassGenerator to omit a class\nif no entries exist for it.\n\nChange-Id: I6eaa89b7b3715bc05403635a2baf0d1db3efd142\n"
    },
    {
      "commit": "e78fd617ec60139a973a01925fa7adad31febb39",
      "tree": "b64f9590b16dfb2e6e9ea8bf2eb5d54a02230b0a",
      "parents": [
        "3b7acbb86207df78eccfeb40aabcc8543703a58f"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Oct 22 12:48:43 2015 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Oct 22 16:35:47 2015 -0700"
      },
      "message": "AAPT2: Move comments and source into Value\n\nValues are closely related to where they were defined, so\nthis information should live inside the Value.\n\nThis also enables comments to be attached to nested Values.\n\nChange-Id: Ic7481b5a5f26d0ef248d638e2e29252f88154581\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": "bdaa092a193d8ddccbd9ad8434be97878e6ded59",
      "tree": "04310ae0b932078409147cbfa8332d96e76555d1",
      "parents": [
        "330edcdf1316ed599fe0eb16a64330821fd92f18"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri May 08 20:16:23 2015 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue May 12 20:41:31 2015 -0700"
      },
      "message": "AAPT2: inferred style parent processing\n\nChange-Id: I8fbc4feef16b6039cf4c526fcfb767dc75a9c131\n"
    },
    {
      "commit": "330edcdf1316ed599fe0eb16a64330821fd92f18",
      "tree": "8a9bddd59f53efc836b787565ba206a1d78383e3",
      "parents": [
        "a4492b418d23e3bcdb077aab5d48eb24e932fc13"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon May 04 17:40:56 2015 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue May 12 20:41:31 2015 -0700"
      },
      "message": "AAPT2: Support static lib referencing static lib\n\nWhen a static library A references static library B,\nand app C references both A and B, we get the following symbol merging,\nsymbols from library B get imported twice.\n\nWe must only check that symbol references to library B are valid\nwhen building library A. We should only merge all the symbols\nwhen building final app C.\n\nChange-Id: I23cba33b0901dcbb5328d9c9dfaa6a979c073c36\n"
    },
    {
      "commit": "6ff19664f9279023c96e5a65c3059e1ef4beac0f",
      "tree": "f193586403acb034359ffbba1f9211827918fe07",
      "parents": [
        "24aad163bc88cb10d2275385e9afc3de7f342d65"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Apr 30 17:40:46 2015 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon May 04 16:43:24 2015 -0700"
      },
      "message": "AAPT2: Record public status in a more robust way\n\nThis allows us to store the source and comments of a resource\u0027s\npublic declaration and avoids issues where there is no default\nconfiguration for a publicly declared resource (like with drawables\nof various densities) and AAPT2 mistakenly took this as an error.\n\nChange-Id: I07a2fe9f551daefcce842f205fb219d2fa453ebc\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": "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"
    }
  ]
}
