)]}'
{
  "log": [
    {
      "commit": "5eeaaddffd23d8d85aeb321e3ceea626e42cf9de",
      "tree": "dcd102c0f14825c34c2251427db84e48cb11d8a7",
      "parents": [
        "79758c8e7706f3cce265a881cc66df8771d3c456"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Aug 25 12:26:56 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Aug 31 18:32:34 2016 -0700"
      },
      "message": "AAPT2: Add Inline Complex XML support\n\nSee: https://developer.android.com/guide/topics/resources/complex-xml-resources.html\n\nChange-Id: I8274c85e25cabf90423141c228697e873167d136\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": "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": "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": "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": "e4bb9eb5af5b0899dc0921d5580220b20e15bd5a",
      "tree": "d522014811735f3bdba1f916d83dc699189a14b9",
      "parents": [
        "59e04c6f92da584b322c87072f18e6cab4de4c60"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Feb 12 22:18:51 2016 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Feb 12 22:21:48 2016 -0800"
      },
      "message": "AAPT2: Introduce notion of \u0027product\u0027 to ResourceTable\n\nThis allows us to preserve the various product definitions during the compile\nphase, and allows us to select the product in the link phase.\n\nThis allows compiled files to remain product-independent, so that they do not need\nto be recompiled when switching targets.\n\nBug:25958912\nChange-Id: Iaa7eed25c834b67a39cdc9be43613e8b5ab6cdd7\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": "fb48d292d9eb78a73f9473d90911ecb81da5fffd",
      "tree": "28500d68602a58c597949269be31c64e9691a673",
      "parents": [
        "7fdc58866f4285ab27702c2fc311613a5b771747"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Sat Nov 07 15:52:13 2015 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Nov 12 14:26:29 2015 -0800"
      },
      "message": "AAPT2: Add support for overlays when merging resources\n\nChange-Id: Iea9e41123cf89e3cfba7eb6bea89def56dee8093\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": "9e10ac70155c993e7053323ad36beaea7bf7d54f",
      "tree": "6d5ba83f2ff0e6ff0a0ac1fede1154902b3f14ab",
      "parents": [
        "5359893effd12bac156505e1ad3a77a30d27cc0a"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Oct 16 14:37:48 2015 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Oct 22 12:52:49 2015 -0700"
      },
      "message": "AAPT2: Process \u003cjava-symbols\u003e and private symbol package\n\nNeed to introduce the idea of multiple levels of visibility to support \u003cjava-symbol\u003e.\n\nPublic, Private, Undefined.\n\nPublic means it is accessible from outside and requires an ID assigned.\nPrivate means that we explicitly want this to be a symbol (show up in R.java), but not visible\nto other packages. No ID required.\n\nUndefined is any normal resource. When --private-symbols is specified in the link phase,\nthese resources will not show up in R.java.\n\nChange-Id: Icba89221e08e685dee7683786aa7112baf28c856\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": "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": "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"
    }
  ]
}
