)]}'
{
  "log": [
    {
      "commit": "9fae6b63cfeace2e0fb93c9c1ebdc28d3991b16f",
      "tree": "594e022ec772e95ee716e9a9a18ee62ef898a53a",
      "parents": [
        "a69d89186a6bf5ab6363156649f56ba608456eb7"
      ],
      "author": {
        "name": "Jon Brandvein",
        "email": "brandjon@google.com",
        "time": "Wed Aug 14 21:37:08 2019 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 14 21:37:08 2019 -0400"
      },
      "message": "Create CODEOWNERS (#118)\n\nFixes #117."
    },
    {
      "commit": "a69d89186a6bf5ab6363156649f56ba608456eb7",
      "tree": "73daceff7772b78e312313e4dd89c6418d004ab2",
      "parents": [
        "7aa5f9dff89264379de4b28c331c97eb3c93ec5e"
      ],
      "author": {
        "name": "Jon Brandvein",
        "email": "brandjon@google.com",
        "time": "Tue Aug 13 16:13:15 2019 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 13 16:13:15 2019 -0400"
      },
      "message": "Update readme to indicate maintenance status of subpar"
    },
    {
      "commit": "7aa5f9dff89264379de4b28c331c97eb3c93ec5e",
      "tree": "d6ff012fd12a73699b309daca6ac703b9ad2aa9f",
      "parents": [
        "2917d275ee27d7935f7809413c74eddf71a46e5c"
      ],
      "author": {
        "name": "Andy Scott",
        "email": "andyscott@users.noreply.github.com",
        "time": "Tue Aug 13 10:05:06 2019 -0700"
      },
      "committer": {
        "name": "Jon Brandvein",
        "email": "brandjon@google.com",
        "time": "Tue Aug 13 13:05:06 2019 -0400"
      },
      "message": "Propagate tags via par_*** macros (#112)\n\n"
    },
    {
      "commit": "2917d275ee27d7935f7809413c74eddf71a46e5c",
      "tree": "49525ff32d5a17ae3690aa1eb738f0ea3017c6a4",
      "parents": [
        "35bb9f0092f71ea56b742a520602da9b3638a24f"
      ],
      "author": {
        "name": "Jon Brandvein",
        "email": "brandjon@google.com",
        "time": "Fri Aug 02 15:44:21 2019 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 02 15:44:21 2019 -0400"
      },
      "message": "Load Python rules from bazelbuild/rules_python (#115)\n\nThis migrates subpar for bazelbuild/bazel#9006. Note that it adds a dependency\r\non bazelbuild/rules_python, which means that these two repositories now have a\r\ndependency cycle.\r\n\r\nWORKSPACE and BUILD files in tests are also updated for the same."
    },
    {
      "commit": "35bb9f0092f71ea56b742a520602da9b3638a24f",
      "tree": "310c6ed44ae1aa65fc69b161161712604259649b",
      "parents": [
        "5b0f501356b86f16da5aac25bc2069e25e74b67d"
      ],
      "author": {
        "name": "Jon Brandvein",
        "email": "brandjon@google.com",
        "time": "Tue May 14 15:59:21 2019 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 14 15:59:21 2019 -0400"
      },
      "message": "Add note on bazel version compatibility to WORKSPACE (#107)\n\nThis will be useful to keep up-to-date for documentation purposes, and so we\r\nknow when a release cut breaks compatibility with Bazel and therefore needs to\r\nbe a major release."
    },
    {
      "commit": "5b0f501356b86f16da5aac25bc2069e25e74b67d",
      "tree": "2227206d50058c0830144cbf26d50412367ea660",
      "parents": [
        "9c7b3e73b2c1f2befb3a789194bb46982ea336c8"
      ],
      "author": {
        "name": "Jon Brandvein",
        "email": "brandjon@google.com",
        "time": "Mon May 13 17:43:00 2019 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 13 17:43:00 2019 -0400"
      },
      "message": "Fix test failures when running directly instead of via script (#106)\n\nFixes #105 by 1) enabling toolchains in the workspace .bazelrc, and 2) making the test harness filter out runfiles added by the autodetecting toolchain.\r\n\r\nPreviously, the tests worked when run from run_tests.sh but failed in `bazel test //...`. This caused travis to pass but buildkite to fail.\r\n\r\nAlso fixed a typo that caused run_test.sh to fail on some versions of bash."
    },
    {
      "commit": "9c7b3e73b2c1f2befb3a789194bb46982ea336c8",
      "tree": "0048c4681512a404b6643c4e7f7f0e40ec750742",
      "parents": [
        "a25a2f2f9a0a491346df78e933e777d2af76ac27"
      ],
      "author": {
        "name": "Jon Brandvein",
        "email": "brandjon@google.com",
        "time": "Mon May 13 10:48:53 2019 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 13 10:48:53 2019 -0400"
      },
      "message": "Fix tests for --incompatible_use_python_toolchains (#104)\n\nThis adds a hook file for run_tests.sh to write toolchain info to before each bazel invocation. This replaces the legacy way of passing an interpreter in via --python_path.\r\n\r\nIt also replaces a config_setting that was used to control whether PY2 or PY3 was used, with a simple constant symbol consumed at loading time. This is needed in order to make the target aware at analysis time of which version it is building for.\r\n\r\nFixes #98, fixes #102."
    },
    {
      "commit": "a25a2f2f9a0a491346df78e933e777d2af76ac27",
      "tree": "117c6ce44f22af35b285a3afbd122bf3af3c84b9",
      "parents": [
        "0356bef3fbbabec5f0e196ecfacdeb6db62d48c0"
      ],
      "author": {
        "name": "Adam Liddell",
        "email": "adam@aliddell.com",
        "time": "Thu May 09 18:00:45 2019 +0000"
      },
      "committer": {
        "name": "Jon Brandvein",
        "email": "brandjon@google.com",
        "time": "Thu May 09 14:00:45 2019 -0400"
      },
      "message": "Fix incompatibility with Python Toolchains (#99)\n\n* Make remove_if_present atomic\r\n\r\n* Fix typo\r\n\r\n* Pass import roots directly from Bazel to compiler via args\r\n\r\n* Replace default python toolchain wrappers with /usr/bin/env python[23]\r\n\r\n* Replace Skylark with Starlark\r\n\r\n* Update tests for CLI\r\n\r\n* Update CLI args for naming consistency\r\n\r\n* Fail when python interpreter is a relative path and improve comments\r\n"
    },
    {
      "commit": "0356bef3fbbabec5f0e196ecfacdeb6db62d48c0",
      "tree": "2988b9265fec01dd3d3df01d86bd5ea6d463c40e",
      "parents": [
        "76137f15167a5460853fe861732dff588292876d"
      ],
      "author": {
        "name": "Jon Brandvein",
        "email": "brandjon@google.com",
        "time": "Thu Mar 07 17:26:02 2019 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 07 17:26:02 2019 -0500"
      },
      "message": "Fixes for --all_incompatible_changes (#96)\n\nTwo tiny fixes to rename `default_python_version` for a `py_binary` target and to change the syntax of a return.\r\n\r\nThis does not rename the `default_python_version` attribute on the `parfile` rule. That attribute is currently marked mandatory, though it doesn\u0027t appear to be used. If we want to keep it, and if we want a gentle migration period, we\u0027d need to introduce a new `python_version` attribute for `parfile`, make them both non-mandatory, and validate them at anaylsis time, similarly to how Bazel handled the rename of this attribute for `py_binary`/`py_test`."
    },
    {
      "commit": "76137f15167a5460853fe861732dff588292876d",
      "tree": "4b5be848b372cd521fefd06ec9c80011315904f1",
      "parents": [
        "a4f9b23bf01bcc7a52d458910af65a90ee991aff"
      ],
      "author": {
        "name": "Jon Brandvein",
        "email": "brandjon@google.com",
        "time": "Thu Mar 07 17:07:50 2019 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 07 17:07:50 2019 -0500"
      },
      "message": "Update documentation generation dependencies and regenerate (#95)\n\nThis updates to a recent version of Skydoc so that doc generation works on modern versions of Bazel."
    },
    {
      "commit": "a4f9b23bf01bcc7a52d458910af65a90ee991aff",
      "tree": "e7e7eb86ec20558e6006d148bb60c8c30fc67c47",
      "parents": [
        "81d33bafbad4edcb2c9e98548888fc9815c004c4",
        "8d4e98977875dcc1b606eb29e9dad92a54e8684d"
      ],
      "author": {
        "name": "Jon Brandvein",
        "email": "brandjon@google.com",
        "time": "Wed Dec 19 13:02:42 2018 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Dec 19 13:02:42 2018 -0500"
      },
      "message": "Merge pull request #87 from 128technology/master\n\nPython interpreter can now be overridden"
    },
    {
      "commit": "8d4e98977875dcc1b606eb29e9dad92a54e8684d",
      "tree": "e7e7eb86ec20558e6006d148bb60c8c30fc67c47",
      "parents": [
        "1f34493d833f20fbf713f18aa4574c8c8dee38df",
        "81d33bafbad4edcb2c9e98548888fc9815c004c4"
      ],
      "author": {
        "name": "Jon Brandvein",
        "email": "brandjon@google.com",
        "time": "Wed Dec 19 12:58:02 2018 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Dec 19 12:58:02 2018 -0500"
      },
      "message": "Merge branch \u0027master\u0027 into master"
    },
    {
      "commit": "1f34493d833f20fbf713f18aa4574c8c8dee38df",
      "tree": "ffa5eb52de69b4ccdf0fee98c6f78ed4e268f0cf",
      "parents": [
        "6550931223702123193aa21f0c41d0da698f74f3"
      ],
      "author": {
        "name": "Alex Thompson",
        "email": "alex@128technology.com",
        "time": "Wed Dec 19 12:02:42 2018 -0500"
      },
      "committer": {
        "name": "Alex Thompson",
        "email": "alex@128technology.com",
        "time": "Wed Dec 19 12:02:42 2018 -0500"
      },
      "message": "Fixed copy/paste error\n"
    },
    {
      "commit": "6550931223702123193aa21f0c41d0da698f74f3",
      "tree": "2e6e691986655b4813a9d665400e2a12fcb3b7f0",
      "parents": [
        "b57a337e3eca2342ed5f2fa614c62f53d6565ce6"
      ],
      "author": {
        "name": "Alex Thompson",
        "email": "alex@128technology.com",
        "time": "Wed Dec 19 11:59:15 2018 -0500"
      },
      "committer": {
        "name": "Alex Thompson",
        "email": "alex@128technology.com",
        "time": "Wed Dec 19 11:59:15 2018 -0500"
      },
      "message": "Added test case for compiler interpreter argument\n"
    },
    {
      "commit": "81d33bafbad4edcb2c9e98548888fc9815c004c4",
      "tree": "4407f32179a1591781720e6419561c52348b5be5",
      "parents": [
        "07ff5feb7c7b113eea593eb6ec50b51099cf0261",
        "9662e6b5fafb273bcd37b55ea70c0a539e009e6a"
      ],
      "author": {
        "name": "Jon Brandvein",
        "email": "brandjon@google.com",
        "time": "Tue Dec 18 11:12:50 2018 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 18 11:12:50 2018 -0500"
      },
      "message": "Merge pull request #88 from laurentlb/master\n\nCleanup for Bazel future changes"
    },
    {
      "commit": "9662e6b5fafb273bcd37b55ea70c0a539e009e6a",
      "tree": "4407f32179a1591781720e6419561c52348b5be5",
      "parents": [
        "95d029a0b2c7622117f5c2aac83c2d54b9e69112"
      ],
      "author": {
        "name": "Laurent Le Brun",
        "email": "laurentlb@gmail.com",
        "time": "Tue Nov 27 20:58:00 2018 +0100"
      },
      "committer": {
        "name": "Laurent Le Brun",
        "email": "laurentlb@gmail.com",
        "time": "Tue Nov 27 20:58:00 2018 +0100"
      },
      "message": "Fix other Bazel incompatible issues\n\n- depset is not iterable\n- tools should be separate from other inputs\n"
    },
    {
      "commit": "95d029a0b2c7622117f5c2aac83c2d54b9e69112",
      "tree": "bd6f9804577aac63cb5dd11c20bfd43ed700e247",
      "parents": [
        "fe1e114d107b3bf46a5bf035d1e1c3cdc47202e2"
      ],
      "author": {
        "name": "Laurent Le Brun",
        "email": "laurentlb@gmail.com",
        "time": "Tue Nov 27 20:55:29 2018 +0100"
      },
      "committer": {
        "name": "Laurent Le Brun",
        "email": "laurentlb@gmail.com",
        "time": "Tue Nov 27 20:55:29 2018 +0100"
      },
      "message": "Apply buildifier --lint\u003dfix\n"
    },
    {
      "commit": "fe1e114d107b3bf46a5bf035d1e1c3cdc47202e2",
      "tree": "8d2255c068cadb6740dfbefbe4524a8ad639b58b",
      "parents": [
        "07ff5feb7c7b113eea593eb6ec50b51099cf0261"
      ],
      "author": {
        "name": "Laurent Le Brun",
        "email": "laurentlb@gmail.com",
        "time": "Tue Nov 27 20:55:02 2018 +0100"
      },
      "committer": {
        "name": "Laurent Le Brun",
        "email": "laurentlb@gmail.com",
        "time": "Tue Nov 27 20:55:02 2018 +0100"
      },
      "message": "Reformat subpar.bzl with buildifier\n"
    },
    {
      "commit": "b57a337e3eca2342ed5f2fa614c62f53d6565ce6",
      "tree": "ae2a86183983b6f304f318b15464a6db44272318",
      "parents": [
        "07ff5feb7c7b113eea593eb6ec50b51099cf0261"
      ],
      "author": {
        "name": "Alex Thompson",
        "email": "alex@128technology.com",
        "time": "Mon Nov 19 09:37:19 2018 -0500"
      },
      "committer": {
        "name": "Alex Thompson",
        "email": "alex@128technology.com",
        "time": "Mon Nov 19 09:37:19 2018 -0500"
      },
      "message": "Python interpreter can now be overridden\n"
    },
    {
      "commit": "07ff5feb7c7b113eea593eb6ec50b51099cf0261",
      "tree": "07ae74746a7a78104f97cd88042aef876d64d786",
      "parents": [
        "751ca6725d3888cb6922906ffd47627804eaeb83"
      ],
      "author": {
        "name": "Ali",
        "email": "shariat@users.noreply.github.com",
        "time": "Thu Apr 26 11:10:40 2018 -0700"
      },
      "committer": {
        "name": "Douglas Greiman",
        "email": "dgreiman@google.com",
        "time": "Thu Apr 26 11:10:40 2018 -0700"
      },
      "message": "make python_archive compatible with python 2.6 (#80)\n\n"
    },
    {
      "commit": "751ca6725d3888cb6922906ffd47627804eaeb83",
      "tree": "39a6bad4fe2ec81f2129a63fde4d1ca12348edb3",
      "parents": [
        "6c7e64ada41cb0440bcd8a1796f3fba212539882"
      ],
      "author": {
        "name": "Douglas Greiman",
        "email": "dgreiman@google.com",
        "time": "Tue Apr 17 13:30:37 2018 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 17 13:30:37 2018 -0700"
      },
      "message": "Minor fixes and cleanups to run_tests.sh script (#79)\n\nFixed usage of `expr` that is not supported on Mac OS.\r\nFixed case when $(which python3) returned false."
    },
    {
      "commit": "6c7e64ada41cb0440bcd8a1796f3fba212539882",
      "tree": "0611a64a642693eadd6e0f82763efa6c8406a87b",
      "parents": [
        "1c91ab83c784f098718024229256110aa5595b57"
      ],
      "author": {
        "name": "Ed Bardsley",
        "email": "ebardsley@gmail.com",
        "time": "Tue Apr 10 15:20:04 2018 -0700"
      },
      "committer": {
        "name": "Douglas Greiman",
        "email": "dgreiman@google.com",
        "time": "Tue Apr 10 15:20:04 2018 -0700"
      },
      "message": "Pass use_default_shell_env\u003dTrue to ctx.action. (#76)\n\nThis is necessary under --python_path\u003dpython3 and other relative paths,\r\nwhich is in turn necessary to support builds across multiple environments\r\nwith python3 installed in different locations."
    },
    {
      "commit": "1c91ab83c784f098718024229256110aa5595b57",
      "tree": "86f27f6ecb18ba39de34fe80c80d4233a5c5785b",
      "parents": [
        "47ff6643696f4ac9265c2c1b8c5f89dd3c1ce5a5"
      ],
      "author": {
        "name": "Ed Bardsley",
        "email": "ebardsley@gmail.com",
        "time": "Tue Apr 10 15:13:46 2018 -0700"
      },
      "committer": {
        "name": "Douglas Greiman",
        "email": "dgreiman@google.com",
        "time": "Tue Apr 10 15:13:46 2018 -0700"
      },
      "message": "Fix tests on MacOS. (#77)\n\nTwo issues:\r\n - BSD head/tail don\u0027t support the +/- specifications. Use \"-q -q\" to unzip instead\r\n   to remove headers and footers.\r\n - \"python2\" isn\u0027t guaranteed to exist. Use the current interpreter."
    },
    {
      "commit": "47ff6643696f4ac9265c2c1b8c5f89dd3c1ce5a5",
      "tree": "abd233384a84d2983ab79e536d511bf84bdb4bbf",
      "parents": [
        "1f695ee5d42585a66d9dd9b71219eb8551e59c89"
      ],
      "author": {
        "name": "Fahrzin Hemmati",
        "email": "fahhem@users.noreply.github.com",
        "time": "Fri Mar 23 13:43:24 2018 -0700"
      },
      "committer": {
        "name": "Douglas Greiman",
        "email": "dgreiman@google.com",
        "time": "Fri Mar 23 13:43:24 2018 -0700"
      },
      "message": "Handle extra arguments to pass to the compiler (#74)\n\n"
    },
    {
      "commit": "1f695ee5d42585a66d9dd9b71219eb8551e59c89",
      "tree": "9d491f431661ab04279e43b34cc824c410693090",
      "parents": [
        "17aee9047884c589664cb163801648c6f7973d24"
      ],
      "author": {
        "name": "Fahrzin Hemmati",
        "email": "fahhem@users.noreply.github.com",
        "time": "Mon Feb 12 12:14:56 2018 -0800"
      },
      "committer": {
        "name": "Douglas Greiman",
        "email": "dgreiman@google.com",
        "time": "Mon Feb 12 12:14:56 2018 -0800"
      },
      "message": "Make paths absolute before comparing (#73)\n\nSometimes the archive path is relative while sys.path[0] is absolute, or vice versa. This allows `setup()` to work in both cases"
    },
    {
      "commit": "17aee9047884c589664cb163801648c6f7973d24",
      "tree": "d68a98960751ff9b858b52822ec77d052612614c",
      "parents": [
        "e1c30da728874547addf9888ce9e185e2d19873e"
      ],
      "author": {
        "name": "Douglas Greiman",
        "email": "dgreiman@google.com",
        "time": "Mon Jan 29 13:40:19 2018 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 29 13:40:19 2018 -0800"
      },
      "message": "Minor style fixes (#69)\n\n"
    },
    {
      "commit": "e1c30da728874547addf9888ce9e185e2d19873e",
      "tree": "4d5e4d126b1a85387be277dff0b6ca88e47dbd69",
      "parents": [
        "0174d9e8231e38b0dfe675f1b2a0f57b7eddf12d"
      ],
      "author": {
        "name": "Douglas Greiman",
        "email": "dgreiman@google.com",
        "time": "Mon Jan 29 12:44:57 2018 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 29 12:44:57 2018 -0800"
      },
      "message": "Create .par files with deterministic contents (#68)\n\n* Add testcase for .par file deterministic creation\r\n\r\n* Create .par files with deterministic contents\r\n"
    },
    {
      "commit": "0174d9e8231e38b0dfe675f1b2a0f57b7eddf12d",
      "tree": "92bfacd3986a0eed0f3f573a1615ca2a9c4f38ba",
      "parents": [
        "741dbb017927d0cba0e7ba819fee9869b34df1b6"
      ],
      "author": {
        "name": "Douglas Greiman",
        "email": "dgreiman@google.com",
        "time": "Mon Jan 29 11:57:00 2018 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 29 11:57:00 2018 -0800"
      },
      "message": "Fix handling of module doc comments in main source file (#67)\n\n* Add testcases for module doc comments in main source file.\r\n\r\n* Fix handling of module doc comments in main source file\r\n\r\nSee issue #57\r\n\r\n* Fix indentation of regular expression\r\n\r\n* Cleanup test name.\r\n\r\nSee #20\r\n"
    },
    {
      "commit": "741dbb017927d0cba0e7ba819fee9869b34df1b6",
      "tree": "27c53859c88d97bba1f7c45c2487607e63b6fd42",
      "parents": [
        "1f6a460f57601abd8017b62ad4759d711e91e050"
      ],
      "author": {
        "name": "Douglas Greiman",
        "email": "dgreiman@google.com",
        "time": "Mon Jan 29 11:49:58 2018 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 29 11:49:58 2018 -0800"
      },
      "message": "Fix default value of compiler attribute to par_binary() (#70)\n\n"
    },
    {
      "commit": "1f6a460f57601abd8017b62ad4759d711e91e050",
      "tree": "77ee7daf82ca4908b22c7cb3d2a393a2d2e36053",
      "parents": [
        "bd72991a808dba6e3be9d6088cda6340dadc4d1a"
      ],
      "author": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Tue Jan 16 16:00:33 2018 -0800"
      },
      "committer": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Tue Jan 16 16:14:44 2018 -0800"
      },
      "message": "Add compiler attribute to par_test().\n\nAlso minor reformatting.\n"
    },
    {
      "commit": "bd72991a808dba6e3be9d6088cda6340dadc4d1a",
      "tree": "90f25b36caea8d7be1782c93f7384ffc7277d609",
      "parents": [
        "ddf1a36d3cea986e5480045ba10d50734a1fc50b",
        "78576bddd65446c72c5af004794a0266e04d91b5"
      ],
      "author": {
        "name": "Douglas Greiman",
        "email": "dgreiman@google.com",
        "time": "Tue Jan 16 16:12:02 2018 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 16 16:12:02 2018 -0800"
      },
      "message": "Merge branch \u0027master\u0027 into master"
    },
    {
      "commit": "ddf1a36d3cea986e5480045ba10d50734a1fc50b",
      "tree": "90f25b36caea8d7be1782c93f7384ffc7277d609",
      "parents": [
        "d24a3f76d58fe25afacef43012f44d8ae1efca63",
        "78576bddd65446c72c5af004794a0266e04d91b5"
      ],
      "author": {
        "name": "Douglas Greiman",
        "email": "dgreiman@google.com",
        "time": "Tue Jan 16 16:07:13 2018 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 16 16:07:13 2018 -0800"
      },
      "message": "Merge branch \u0027master\u0027 into master"
    },
    {
      "commit": "78576bddd65446c72c5af004794a0266e04d91b5",
      "tree": "27770d5185e347f819fcaee74325305244f23ca7",
      "parents": [
        "f97c7f2a9c8d9dd5a63db7099f30c82b6bc9aaeb"
      ],
      "author": {
        "name": "Douglas Greiman",
        "email": "dgreiman@google.com",
        "time": "Tue Jan 16 15:50:02 2018 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 16 15:50:02 2018 -0800"
      },
      "message": "Support extracting .par file contents to disk. (#65)\n\nUseful for importing C extension modules, or for data resources that\r\nmust be real files, instead of file-like objects.\r\n\r\nTo use, add the zip_safe\u003dFalse attribute to a par_binary() rule.\r\n\r\nYes, the name zip_safe is strange, but it\u0027s consistent with Python\r\ndistutils and eggs."
    },
    {
      "commit": "d24a3f76d58fe25afacef43012f44d8ae1efca63",
      "tree": "d7041bf56ae4b81dea83b65b0e091d4bf2741d4b",
      "parents": [
        "d2fe6ea2f39b1f4884a6561fae7668b436cd2031"
      ],
      "author": {
        "name": "Fahrzin Hemmati",
        "email": "fahhem@appliedintuition.com",
        "time": "Tue Dec 19 17:27:53 2017 -0800"
      },
      "committer": {
        "name": "Fahrzin Hemmati",
        "email": "fahhem@appliedintuition.com",
        "time": "Tue Dec 19 17:27:53 2017 -0800"
      },
      "message": "Pop the argument and use a shared constant for the default\n"
    },
    {
      "commit": "d2fe6ea2f39b1f4884a6561fae7668b436cd2031",
      "tree": "c19912b78bce2e6b4d0c787700de17e2dc2453fa",
      "parents": [
        "f97c7f2a9c8d9dd5a63db7099f30c82b6bc9aaeb"
      ],
      "author": {
        "name": "Fahrzin Hemmati",
        "email": "fahhem@appliedintuition.com",
        "time": "Tue Dec 19 14:12:11 2017 -0800"
      },
      "committer": {
        "name": "Fahrzin Hemmati",
        "email": "fahhem@appliedintuition.com",
        "time": "Tue Dec 19 14:14:23 2017 -0800"
      },
      "message": "Handle a custom compiler attribute\n"
    },
    {
      "commit": "f97c7f2a9c8d9dd5a63db7099f30c82b6bc9aaeb",
      "tree": "03133297406d6f94ff53b65d741e7b008ec146a9",
      "parents": [
        "36baed03d7f0642817281367b46abc6b618bf7b1"
      ],
      "author": {
        "name": "Douglas Greiman",
        "email": "dgreiman@google.com",
        "time": "Fri Dec 15 14:21:05 2017 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Dec 15 14:21:05 2017 -0800"
      },
      "message": "Add zip_safe flag to par_binary. (#62)\n\n* Add zip_safe flag to par_binary.\r\n\r\nCurrently a no-op.\r\n\r\n* Regenerate documentation.\r\n"
    },
    {
      "commit": "36baed03d7f0642817281367b46abc6b618bf7b1",
      "tree": "360757cd7144bf34b801296c9386d7c4ea0ff38f",
      "parents": [
        "b1b6bd13ff80ede09f57539031cfb20459c28237"
      ],
      "author": {
        "name": "Douglas Greiman",
        "email": "dgreiman@google.com",
        "time": "Fri Dec 15 14:15:10 2017 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Dec 15 14:15:10 2017 -0800"
      },
      "message": "Add version check on pkg_resources dependency (#61)\n\n* Test under various different versions of setuptools\r\n\r\n* Update Travis config\r\n\r\n* Add version check on pkg_resources dependency.\r\n\r\nThe implementation is a bit hacky.  See comment in code.\r\n"
    },
    {
      "commit": "b1b6bd13ff80ede09f57539031cfb20459c28237",
      "tree": "4ee09fab62731c0d08adedf980eede37add8b73d",
      "parents": [
        "ad19e64f486c975cf7b546802574c7dd9916ffa9"
      ],
      "author": {
        "name": "Douglas Greiman",
        "email": "dgreiman@google.com",
        "time": "Tue Nov 14 18:18:05 2017 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Nov 14 18:18:05 2017 -0800"
      },
      "message": "Add bare-bones Bazel CI configuration (#54)\n\n"
    },
    {
      "commit": "ad19e64f486c975cf7b546802574c7dd9916ffa9",
      "tree": "ce55302d799a60b555349b9454599b6272e7b4e3",
      "parents": [
        "5e90e97bc1e8dd88dedd56f5e2e10fab4dba93bd"
      ],
      "author": {
        "name": "Douglas Greiman",
        "email": "dgreiman@google.com",
        "time": "Tue Nov 14 14:23:28 2017 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Nov 14 14:23:28 2017 -0800"
      },
      "message": "Update Travis config with new URL for bazel signing key (#53)\n\n"
    },
    {
      "commit": "5e90e97bc1e8dd88dedd56f5e2e10fab4dba93bd",
      "tree": "8edbc344295e97626ab5066db4237c3b6a153915",
      "parents": [
        "051d7f66f2f78b0b7d7c929946d371a085caa996"
      ],
      "author": {
        "name": "Douglas Greiman",
        "email": "dgreiman@google.com",
        "time": "Mon Nov 13 08:50:50 2017 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Nov 13 08:50:50 2017 -0800"
      },
      "message": "Allow pkg_resources\u0027 resource APIs to be used inside .par files. (#52)\n\n* Allow pkg_resources\u0027 resource APIs to be used inside .par files.\r\n\r\nSeveral limitations apply.\r\n\r\n* Fix description of test case\r\n\r\n* Add link to bug tracker\r\n"
    },
    {
      "commit": "051d7f66f2f78b0b7d7c929946d371a085caa996",
      "tree": "bb74285306c131500357fb11dd17e2da8bf5ab36",
      "parents": [
        "556adf36b11273385d06e7081e8f14aa988978ed"
      ],
      "author": {
        "name": "Douglas Greiman",
        "email": "dgreiman@google.com",
        "time": "Wed Nov 08 22:37:43 2017 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 08 22:37:43 2017 -0800"
      },
      "message": "Expose package metadata from wheels in .par files (#49)\n\n* Expose package metadata from wheels in .par files\r\n\r\n* Update pkg_resources\u0027s default distribution metadata object.\r\n\r\n`pkg_resources` creates a default WorkingSet as soon as it is\r\nimported, so even though we add hooks for it to find the .dist-info\r\nmetadata inside .par files, it is too late.  So we manually update the\r\ndefault WorkingSet, trying not to disturb existing entries.\r\n\r\n* Cut down unnecessary test data.\r\n\r\n* Fix lint errors\r\n"
    },
    {
      "commit": "556adf36b11273385d06e7081e8f14aa988978ed",
      "tree": "565de1902b64ac8d2d863b34434bc2f97476db87",
      "parents": [
        "228083a7accc37614b0a51f129b8a8e00f0ab3ad"
      ],
      "author": {
        "name": "Douglas Greiman",
        "email": "dgreiman@google.com",
        "time": "Wed Nov 08 16:36:34 2017 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 08 16:36:34 2017 -0800"
      },
      "message": "Add linter config and fix all lint warnings. (#50)\n\n* Add linter config.\r\n\r\nTo use, run `nox -s lint`.\r\n\r\n* Move flake8 configuration to .flake8 file\r\n\r\n* Add copyright notice\r\n\r\n* Fix lint warnings from merge\r\n"
    },
    {
      "commit": "228083a7accc37614b0a51f129b8a8e00f0ab3ad",
      "tree": "8ac4990597b860eed6f7a10dedc460e5b631f330",
      "parents": [
        "eb23aa7a5361cabc02464476dd080389340a5522"
      ],
      "author": {
        "name": "Douglas Greiman",
        "email": "dgreiman@google.com",
        "time": "Wed Nov 08 15:59:30 2017 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 08 15:59:30 2017 -0800"
      },
      "message": "Retain Bazel\u0027s ordering of Python import paths (#48)\n\n* Add testcase for https://github.com/google/subpar/issues/47\r\n\r\n* Retain Bazel\u0027s ordering of Python import paths.\r\n\r\n* Alphabetize test names\r\n\r\n* Actually alphabetize tests\r\n"
    },
    {
      "commit": "eb23aa7a5361cabc02464476dd080389340a5522",
      "tree": "d532bcae8a697e07c788e0d05190e54b67108ad7",
      "parents": [
        "3df7954135e9b02c8a0b2c1971622b1cd99d7911"
      ],
      "author": {
        "name": "Douglas Greiman",
        "email": "dgreiman@google.com",
        "time": "Tue Oct 31 11:56:35 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 31 11:56:35 2017 -0700"
      },
      "message": "Fix Bazel error with nested workspaces. (#45)\n\nSee https://github.com/bazelbuild/bazel/issues/3874"
    },
    {
      "commit": "3df7954135e9b02c8a0b2c1971622b1cd99d7911",
      "tree": "f374760d6a9ec53e705c4b7f16102a63ccceb900",
      "parents": [
        "0f6928535a24a7aa544ce9370d71c93018dc22f9"
      ],
      "author": {
        "name": "Darío Hereñú",
        "email": "magallania@gmail.com",
        "time": "Tue Oct 31 15:26:27 2017 -0300"
      },
      "committer": {
        "name": "Douglas Greiman",
        "email": "dgreiman@google.com",
        "time": "Tue Oct 31 11:26:27 2017 -0700"
      },
      "message": "Update URL (#46)\n\n"
    },
    {
      "commit": "0f6928535a24a7aa544ce9370d71c93018dc22f9",
      "tree": "e1f85fe1934c37f69d96639e6250c11afeaca3cb",
      "parents": [
        "3b4da8baa75fc7ea5ff70dce83456d09ab334c41",
        "a8893e3eddba550f6a9dd94d941675075bf98821"
      ],
      "author": {
        "name": "Douglas Greiman",
        "email": "dgreiman@google.com",
        "time": "Thu Sep 21 18:31:01 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 21 18:31:01 2017 -0700"
      },
      "message": "Merge pull request #42 from google/dgreiman/skydoc-version-bump\n\nUpdate skydoc dependency for compatibility with Bazel 0.6.0"
    },
    {
      "commit": "a8893e3eddba550f6a9dd94d941675075bf98821",
      "tree": "e1f85fe1934c37f69d96639e6250c11afeaca3cb",
      "parents": [
        "3b4da8baa75fc7ea5ff70dce83456d09ab334c41"
      ],
      "author": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Thu Sep 21 18:09:05 2017 -0700"
      },
      "committer": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Thu Sep 21 18:09:05 2017 -0700"
      },
      "message": "Update skydoc dependency for compatibility with Bazel 0.6.0\n\nSee https://github.com/bazelbuild/skydoc/pull/52\n"
    },
    {
      "commit": "3b4da8baa75fc7ea5ff70dce83456d09ab334c41",
      "tree": "e611a9af7a2f25b96cd96afeba524fca576da2d6",
      "parents": [
        "79550cfdcfa7f5f7923ffd1fcf19c523ca2e429d",
        "e079a437e73b1727a5d6b9962ce0c67e6d13e929"
      ],
      "author": {
        "name": "Douglas Greiman",
        "email": "dgreiman@google.com",
        "time": "Thu Sep 21 14:54:44 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 21 14:54:44 2017 -0700"
      },
      "message": "Merge pull request #40 from google/dgreiman/py3fix\n\nFix tests under Bazel 0.5.3+"
    },
    {
      "commit": "e079a437e73b1727a5d6b9962ce0c67e6d13e929",
      "tree": "e611a9af7a2f25b96cd96afeba524fca576da2d6",
      "parents": [
        "3850f4257d624a569f36fc8cebe49cdbe4975404"
      ],
      "author": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Thu Sep 21 14:50:11 2017 -0700"
      },
      "committer": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Thu Sep 21 14:50:11 2017 -0700"
      },
      "message": "Remove unused configuration.\n"
    },
    {
      "commit": "3850f4257d624a569f36fc8cebe49cdbe4975404",
      "tree": "d4dc00058e82614677aca5203c3212fcdb9a62d0",
      "parents": [
        "f9dc57111332d04ea5de63dacfb84013ebff9188"
      ],
      "author": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Tue Sep 19 16:52:56 2017 -0700"
      },
      "committer": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Tue Sep 19 16:52:56 2017 -0700"
      },
      "message": "Fix tests under Bazel 0.5.3+\n\nBazel now ignores the default_python_version and srcs_version\nattributes, so we wrap bazel test invocations inside a wrapper script\nthat runs all tests under Python 2, and then runs all tests under\nPython 3.\n"
    },
    {
      "commit": "f9dc57111332d04ea5de63dacfb84013ebff9188",
      "tree": "b058b2cd39afa86a838a3ee91547664e5cb27fec",
      "parents": [
        "79550cfdcfa7f5f7923ffd1fcf19c523ca2e429d"
      ],
      "author": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Tue Sep 19 15:37:34 2017 -0700"
      },
      "committer": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Tue Sep 19 15:37:34 2017 -0700"
      },
      "message": "Make the docs/ subdir into a separate Bazel workspace.\n\nThe skydoc code doesn\u0027t work under Python 3, which causes problems now\nthat Bazel doesn\u0027t support Python 2 and 3 at the same time, and just\nignores the python version tags.\n"
    },
    {
      "commit": "79550cfdcfa7f5f7923ffd1fcf19c523ca2e429d",
      "tree": "868a21266e0155035f88d13e97e8823e54fb5f95",
      "parents": [
        "c0a9cf9f1850bbf22fe18f9dade6f27bbcb74fce",
        "bd57c705b71b34a2602f378bfbd62225179158be"
      ],
      "author": {
        "name": "Douglas Greiman",
        "email": "dgreiman@google.com",
        "time": "Tue Aug 08 13:46:47 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 08 13:46:47 2017 -0700"
      },
      "message": "Merge pull request #36 from benley/par-test\n\nAdd par_test variant of par_binary, passthrough testonly attr"
    },
    {
      "commit": "bd57c705b71b34a2602f378bfbd62225179158be",
      "tree": "868a21266e0155035f88d13e97e8823e54fb5f95",
      "parents": [
        "c0a9cf9f1850bbf22fe18f9dade6f27bbcb74fce"
      ],
      "author": {
        "name": "Benjamin Staffin",
        "email": "benley@gmail.com",
        "time": "Tue Jul 18 00:17:18 2017 -0400"
      },
      "committer": {
        "name": "Benjamin Staffin",
        "email": "benley@gmail.com",
        "time": "Tue Jul 18 00:17:18 2017 -0400"
      },
      "message": "Add par_test variant of par_binary, passthrough testonly attr\n\nThis makes it possible to run py_tests as .par files, which is\noccasionally useful for testing code that behaves differently when\ncalled from within a zipped executable.  It also enables the\nuncommon (but valid) scenario of having a par_binary definition with\ntestonly\u003dTrue set.\n"
    },
    {
      "commit": "c0a9cf9f1850bbf22fe18f9dade6f27bbcb74fce",
      "tree": "d38414156a7160ed276fc4d643cb39b08515605c",
      "parents": [
        "c702c484e9dbffedd91999b17aab0cbb3ae61b4c",
        "9187d11d77b01324d915d7ead8ca17869d1f34f4"
      ],
      "author": {
        "name": "Douglas Greiman",
        "email": "dgreiman@google.com",
        "time": "Mon Jun 12 12:48:18 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 12 12:48:18 2017 -0700"
      },
      "message": "Merge pull request #34 from google/duggelz-patch-1\n\nFix git_repository example"
    },
    {
      "commit": "9187d11d77b01324d915d7ead8ca17869d1f34f4",
      "tree": "d38414156a7160ed276fc4d643cb39b08515605c",
      "parents": [
        "c702c484e9dbffedd91999b17aab0cbb3ae61b4c"
      ],
      "author": {
        "name": "Douglas Greiman",
        "email": "dgreiman@google.com",
        "time": "Mon Jun 12 11:25:40 2017 -0700"
      },
      "committer": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Mon Jun 12 11:35:19 2017 -0700"
      },
      "message": "Fix git_repository example\n\nThe \u0027sha256\u0027 attribute is documented but doesn\u0027t seem to actually work.\n"
    },
    {
      "commit": "c702c484e9dbffedd91999b17aab0cbb3ae61b4c",
      "tree": "3b8b578be9a798b4ab1fc419fe0e2c6d606870d5",
      "parents": [
        "edb8409041b521959b6ed4b7412c0eec59d4af78",
        "b904bb0299c6f1550e1a8107d672496b919229e9"
      ],
      "author": {
        "name": "Douglas Greiman",
        "email": "dgreiman@google.com",
        "time": "Mon Jun 12 11:14:17 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 12 11:14:17 2017 -0700"
      },
      "message": "Merge pull request #33 from google/dgreiman/skydoc\n\nFix various documentation issues"
    },
    {
      "commit": "b904bb0299c6f1550e1a8107d672496b919229e9",
      "tree": "3b8b578be9a798b4ab1fc419fe0e2c6d606870d5",
      "parents": [
        "edb8409041b521959b6ed4b7412c0eec59d4af78"
      ],
      "author": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Fri Jun 09 15:55:39 2017 -0700"
      },
      "committer": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Fri Jun 09 16:37:46 2017 -0700"
      },
      "message": "Fix various documentation issues.\n\nAdd better documentation for how to actually build a .par file.\n\nFix documentation update script and URL.\n\nFix minor mixup between markdown and html docs.\n\nStart generating index.html for GibHub Pages.\n"
    },
    {
      "commit": "edb8409041b521959b6ed4b7412c0eec59d4af78",
      "tree": "2e06124c473eec1c96f54220c3dadbf45b7c8cf0",
      "parents": [
        "7e12cc130eb8f09c8cb02c3585a91a4043753c56",
        "7255167030f3a46c2af79c61a1e83edcc6ea75c1"
      ],
      "author": {
        "name": "Douglas Greiman",
        "email": "dgreiman@google.com",
        "time": "Tue Mar 28 12:20:42 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 28 12:20:42 2017 -0700"
      },
      "message": "Merge pull request #25 from google/dgreiman/travis\n\nUpdate WORKSPACE dependencies"
    },
    {
      "commit": "7255167030f3a46c2af79c61a1e83edcc6ea75c1",
      "tree": "2e06124c473eec1c96f54220c3dadbf45b7c8cf0",
      "parents": [
        "7e12cc130eb8f09c8cb02c3585a91a4043753c56"
      ],
      "author": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Tue Mar 28 12:03:49 2017 -0700"
      },
      "committer": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Tue Mar 28 12:03:49 2017 -0700"
      },
      "message": "Update WORKSPACE dependencies\n"
    },
    {
      "commit": "7e12cc130eb8f09c8cb02c3585a91a4043753c56",
      "tree": "df0fdbb31b80c5aafa48d05249716af0c0b1a515",
      "parents": [
        "74529f1df2178f07d34c72b3d270355dab2a10fc",
        "a8a564e5e3bc9f85fed1ea42e888c498dd715cd6"
      ],
      "author": {
        "name": "Douglas Greiman",
        "email": "dgreiman@google.com",
        "time": "Mon Mar 27 01:15:33 2017 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 27 01:15:33 2017 -0700"
      },
      "message": "Merge pull request #24 from mattmoor/master\n\nMake par_binary respect visibility"
    },
    {
      "commit": "a8a564e5e3bc9f85fed1ea42e888c498dd715cd6",
      "tree": "df0fdbb31b80c5aafa48d05249716af0c0b1a515",
      "parents": [
        "74529f1df2178f07d34c72b3d270355dab2a10fc"
      ],
      "author": {
        "name": "Matt Moore",
        "email": "mattmoor@google.com",
        "time": "Wed Mar 22 22:29:08 2017 +0000"
      },
      "committer": {
        "name": "Matt Moore",
        "email": "mattmoor@google.com",
        "time": "Wed Mar 22 22:29:08 2017 +0000"
      },
      "message": "Make par_binary respect visibility\n"
    },
    {
      "commit": "74529f1df2178f07d34c72b3d270355dab2a10fc",
      "tree": "d8fc2972ca52bfcf2d2296e29d7a1c9096e57c06",
      "parents": [
        "fa7e6a5c249303dc618affc0ba1e01422320ea84",
        "de4043280dbae383d1326f2c8b234a2ed3388ab8"
      ],
      "author": {
        "name": "Douglas Greiman",
        "email": "dgreiman@google.com",
        "time": "Tue Nov 01 13:07:57 2016 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Nov 01 13:07:57 2016 -0700"
      },
      "message": "Merge pull request #22 from google/dgreiman/b19\n\nFix misplaced __init__.py files in external repositories"
    },
    {
      "commit": "de4043280dbae383d1326f2c8b234a2ed3388ab8",
      "tree": "d8fc2972ca52bfcf2d2296e29d7a1c9096e57c06",
      "parents": [
        "360f1aa7c5f75bde2df21f35d7cfad2518651615"
      ],
      "author": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Mon Oct 31 15:51:36 2016 -0700"
      },
      "committer": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Mon Oct 31 15:51:36 2016 -0700"
      },
      "message": "Add fix for #19 \"External Repositories\"\n"
    },
    {
      "commit": "360f1aa7c5f75bde2df21f35d7cfad2518651615",
      "tree": "2562d13707c92dc269d8cf808857fe8c64335d10",
      "parents": [
        "fa7e6a5c249303dc618affc0ba1e01422320ea84"
      ],
      "author": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Mon Oct 31 15:50:38 2016 -0700"
      },
      "committer": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Mon Oct 31 15:50:38 2016 -0700"
      },
      "message": "Add testcase for #19 \"External Repositories\"\n\nhttps://github.com/google/subpar/issues/19\n"
    },
    {
      "commit": "fa7e6a5c249303dc618affc0ba1e01422320ea84",
      "tree": "67569e149f99dd83be20db7d12a2b0baffad387c",
      "parents": [
        "5427258431be48f4f72c004e7275110122e3e610",
        "d9eda7a7cd59c62a0589e2987e87ee873c26e5c3"
      ],
      "author": {
        "name": "Douglas Greiman",
        "email": "dgreiman@google.com",
        "time": "Mon Oct 24 01:00:19 2016 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 24 01:00:19 2016 -0700"
      },
      "message": "Merge pull request #17 from google/dgreiman/b12\n\nExtend import_roots to also automatically include workspace roots."
    },
    {
      "commit": "d9eda7a7cd59c62a0589e2987e87ee873c26e5c3",
      "tree": "67569e149f99dd83be20db7d12a2b0baffad387c",
      "parents": [
        "0dc5ad38821f006d1f05f4d3323e22cbbcc30b27"
      ],
      "author": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Thu Oct 13 16:25:02 2016 -0700"
      },
      "committer": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Thu Oct 13 17:43:46 2016 -0700"
      },
      "message": "Extend import_roots to also automatically include workspace roots.\n\nhttps://github.com/google/subpar/issues/12\n"
    },
    {
      "commit": "0dc5ad38821f006d1f05f4d3323e22cbbcc30b27",
      "tree": "13816465d4721d4902bbe32b152dde7a9193a242",
      "parents": [
        "5427258431be48f4f72c004e7275110122e3e610"
      ],
      "author": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Thu Oct 13 15:42:39 2016 -0700"
      },
      "committer": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Thu Oct 13 15:42:39 2016 -0700"
      },
      "message": "Add test for import roots bug.\n\nhttps://github.com/google/subpar/issues/12\n"
    },
    {
      "commit": "5427258431be48f4f72c004e7275110122e3e610",
      "tree": "1d759c1ff52e011e4b674e373272bb70d87d0e81",
      "parents": [
        "390cd1eec132bbab6b1bbbb542f5846a71337f58",
        "adab133596f29fdc082f5d2d763e3bc475b008d5"
      ],
      "author": {
        "name": "Douglas Greiman",
        "email": "dgreiman@google.com",
        "time": "Wed Oct 12 18:11:13 2016 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 12 18:11:13 2016 -0700"
      },
      "message": "Merge pull request #16 from google/dgreiman/b11\n\nInsert imports near the front of sys.path instead of the end."
    },
    {
      "commit": "adab133596f29fdc082f5d2d763e3bc475b008d5",
      "tree": "1d759c1ff52e011e4b674e373272bb70d87d0e81",
      "parents": [
        "163c53c3bfc25e767d7991dca75b3cd6f6165294"
      ],
      "author": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Wed Oct 12 17:54:10 2016 -0700"
      },
      "committer": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Wed Oct 12 17:59:47 2016 -0700"
      },
      "message": "Insert imports near the front of sys.path instead of the end.\n\nAll \u0027imports\u0027 attributes of py_libraries, plus implicit imports added by\nBazel, are added to sys.path by the subpar runtime support module.\nPreviously they were added to the end of sys.path.  Now they are added\nimmediately after sys.path[0], to match the behavior of Bazel\u0027s\ngenerated stub script.\n\nhttps://github.com/google/subpar/issues/11\n"
    },
    {
      "commit": "163c53c3bfc25e767d7991dca75b3cd6f6165294",
      "tree": "55a21a49cac9945ff2f4f34cd9ccb599d09d8177",
      "parents": [
        "390cd1eec132bbab6b1bbbb542f5846a71337f58"
      ],
      "author": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Wed Oct 12 17:45:31 2016 -0700"
      },
      "committer": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Wed Oct 12 17:59:47 2016 -0700"
      },
      "message": "Add test for #11\n"
    },
    {
      "commit": "390cd1eec132bbab6b1bbbb542f5846a71337f58",
      "tree": "310f8f9d3492ccd4d67da8cbe644c7cbe4328ee2",
      "parents": [
        "f700ff2581d02b25840fa6386fe9ee678b56dbc1",
        "4878f52fe87f469330001792d6323770ecb6ab90"
      ],
      "author": {
        "name": "Douglas Greiman",
        "email": "dgreiman@google.com",
        "time": "Wed Oct 12 17:39:20 2016 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 12 17:39:20 2016 -0700"
      },
      "message": "Merge pull request #15 from google/dgreiman/test-cleanup\n\nTest cleanup for Python3"
    },
    {
      "commit": "4878f52fe87f469330001792d6323770ecb6ab90",
      "tree": "310f8f9d3492ccd4d67da8cbe644c7cbe4328ee2",
      "parents": [
        "566ae404ec6cbf3109884c66392fd924d80be929"
      ],
      "author": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Wed Oct 12 17:28:17 2016 -0700"
      },
      "committer": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Wed Oct 12 17:28:17 2016 -0700"
      },
      "message": "Add explicit __init__.py to srcs to work around Python3 issues.\n\nhttps://bugs.python.org/issue28424\nhttps://bugs.python.org/issue28425\n"
    },
    {
      "commit": "566ae404ec6cbf3109884c66392fd924d80be929",
      "tree": "3b88907d5bdb0e2c0b7c065ddb97943fe0c2b9c5",
      "parents": [
        "f700ff2581d02b25840fa6386fe9ee678b56dbc1"
      ],
      "author": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Wed Oct 12 14:44:24 2016 -0700"
      },
      "committer": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Wed Oct 12 15:59:51 2016 -0700"
      },
      "message": "Run tests as both .par files and non-.par files\n"
    },
    {
      "commit": "f700ff2581d02b25840fa6386fe9ee678b56dbc1",
      "tree": "a46f9900bc47d81da5c6be60ee2311f6c321684b",
      "parents": [
        "e77b91cc277fa8239596eff94b326af60185b62e",
        "e2f5923afff846b2df7a3b75710252c6095ced44"
      ],
      "author": {
        "name": "Douglas Greiman",
        "email": "dgreiman@google.com",
        "time": "Wed Oct 12 13:56:11 2016 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 12 13:56:11 2016 -0700"
      },
      "message": "Merge pull request #14 from google/dgreiman/bazel-032-update\n\nUpdate for Bazel 0.3.2 and Python 3.5 compatibility"
    },
    {
      "commit": "e2f5923afff846b2df7a3b75710252c6095ced44",
      "tree": "a46f9900bc47d81da5c6be60ee2311f6c321684b",
      "parents": [
        "d720d6e3472908d3ff394f0c2ec177c732e985c8"
      ],
      "author": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Wed Oct 12 13:27:26 2016 -0700"
      },
      "committer": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Wed Oct 12 13:28:26 2016 -0700"
      },
      "message": "Fix test when run under Python3.5\n"
    },
    {
      "commit": "d720d6e3472908d3ff394f0c2ec177c732e985c8",
      "tree": "5465efde9926709945c6bd3accf17c9beb01e227",
      "parents": [
        "0e80906c9d55ed53ebb2e3537628e7cfbfc6fc28"
      ],
      "author": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Tue Oct 11 18:43:29 2016 -0700"
      },
      "committer": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Tue Oct 11 18:43:29 2016 -0700"
      },
      "message": "Show errors in Travis CI build\n"
    },
    {
      "commit": "0e80906c9d55ed53ebb2e3537628e7cfbfc6fc28",
      "tree": "0123defa1e79fb34863e8073dde44f07783f24fc",
      "parents": [
        "af45bcd06430bdf627d41cd8577cc3ae086ea2eb"
      ],
      "author": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Mon Oct 10 11:20:15 2016 -0700"
      },
      "committer": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Tue Oct 11 18:32:22 2016 -0700"
      },
      "message": "Do not specify bazel version in Travis config.\n\nIt\u0027s not possible to tell apt-get to install version X of Bazel once\nversion X+1 has been released to the repository.  So instead of pinning\nthe version number, we just ask for the latest one.\n"
    },
    {
      "commit": "af45bcd06430bdf627d41cd8577cc3ae086ea2eb",
      "tree": "ea2d1e806d36655d3e35d0aa2b6702825f90f34f",
      "parents": [
        "194aafe00ae3c5e55616a0e65528f50458c481cd"
      ],
      "author": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Tue Oct 11 18:22:22 2016 -0700"
      },
      "committer": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Tue Oct 11 18:25:13 2016 -0700"
      },
      "message": "Fix test when run as root.\n\nPreviously was changing directory modes to raise permission denied\nerrors.  But root doesn\u0027t get those errors, so the test failed.\n\nI ran into this while running Bazel inside Docker as root.\n"
    },
    {
      "commit": "194aafe00ae3c5e55616a0e65528f50458c481cd",
      "tree": "9160b41cf4a046a2f45cd8089080809102da9c5e",
      "parents": [
        "34545f4e42a16ab3f4fdf3ddba36770ca280a8c3"
      ],
      "author": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Mon Oct 10 16:04:59 2016 -0700"
      },
      "committer": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Tue Oct 11 18:25:13 2016 -0700"
      },
      "message": "Add Dockerfile for running tests with Bazel\n"
    },
    {
      "commit": "34545f4e42a16ab3f4fdf3ddba36770ca280a8c3",
      "tree": "8686d31f33278f9676f22584bf97f59ea6b480c4",
      "parents": [
        "e77b91cc277fa8239596eff94b326af60185b62e"
      ],
      "author": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Tue Oct 11 16:53:50 2016 -0700"
      },
      "committer": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Tue Oct 11 16:55:19 2016 -0700"
      },
      "message": "Add cfg\u003dhost to parfile()\u0027s `compiler` attribute.\n"
    },
    {
      "commit": "e77b91cc277fa8239596eff94b326af60185b62e",
      "tree": "930129ac82fa1d26da92d0f784ba1aad5e5587e5",
      "parents": [
        "8e4968d57d601346449ffb665a732652caabb9c1"
      ],
      "author": {
        "name": "Douglas Greiman",
        "email": "duggelz@gmail.com",
        "time": "Fri Aug 05 18:27:28 2016 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 05 18:27:28 2016 -0700"
      },
      "message": "Generate documentation via SkyDoc (#9)\n\n* Generate documentation via SkyDoc\r\n\r\n* Add documentation for some attributes.\r\n"
    },
    {
      "commit": "8e4968d57d601346449ffb665a732652caabb9c1",
      "tree": "7e266cc51b87712dd274111b40c36a2f34ba125b",
      "parents": [
        "d7905cddecbac40882ebeaab4d62101bbff5d2b3"
      ],
      "author": {
        "name": "Douglas Greiman",
        "email": "duggelz@gmail.com",
        "time": "Fri Aug 05 18:01:40 2016 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 05 18:01:40 2016 -0700"
      },
      "message": "Explicity add __init__.py as dependencies (#8)\n\n"
    },
    {
      "commit": "d7905cddecbac40882ebeaab4d62101bbff5d2b3",
      "tree": "9ca5b39b807f8096c98e4f6405fd6d4ad4f8621a",
      "parents": [
        "9207248783a982ff69702533be81ce200dbf52f8"
      ],
      "author": {
        "name": "Douglas Greiman",
        "email": "duggelz@gmail.com",
        "time": "Fri Aug 05 17:28:47 2016 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 05 17:28:47 2016 -0700"
      },
      "message": "Compile the compiler into a .par file (#7)\n\n"
    },
    {
      "commit": "9207248783a982ff69702533be81ce200dbf52f8",
      "tree": "e962f693852b79c4010f98963fc053190e715fa7",
      "parents": [
        "a32c2783d2b882b064123de942572f2e69451610"
      ],
      "author": {
        "name": "Douglas Greiman",
        "email": "duggelz@gmail.com",
        "time": "Fri Aug 05 17:00:27 2016 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 05 17:00:27 2016 -0700"
      },
      "message": "Fix \u0027from __future__ import foo\u0027 and source file coding directives. (#6)\n\n"
    },
    {
      "commit": "a32c2783d2b882b064123de942572f2e69451610",
      "tree": "b843b41fa2aeb55c542a81da6e6ba05030d69dd9",
      "parents": [
        "fb9403ae9f1714a44784e4e2f993c7a9a5bfa12a"
      ],
      "author": {
        "name": "Douglas Greiman",
        "email": "duggelz@gmail.com",
        "time": "Fri Aug 05 14:38:43 2016 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 05 14:38:43 2016 -0700"
      },
      "message": "Python 3 support (#3)\n\n* Make compiler and runtime able to run under python3.\r\n\r\n* Read python interpreter path from Bazel\r\n\r\n* Add integration tests for Python 3 support\r\n\r\n* Remove unused shebang lines\r\n\r\n* Formatting fix: Use single quotes consistently\r\n\r\n* Update README with Python 3 support\r\n"
    },
    {
      "commit": "fb9403ae9f1714a44784e4e2f993c7a9a5bfa12a",
      "tree": "b301edeedb4fae7af6874f34c940cca1edeca8f5",
      "parents": [
        "4355d622c4fe46c14cd143767dadd79ebca24821"
      ],
      "author": {
        "name": "Douglas Greiman",
        "email": "duggelz@gmail.com",
        "time": "Thu Aug 04 16:58:28 2016 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 04 16:58:28 2016 -0700"
      },
      "message": "Add CI status badge to README (#2)\n\n"
    },
    {
      "commit": "4355d622c4fe46c14cd143767dadd79ebca24821",
      "tree": "00d72db04661d0ebef57bd48efcddb0b19e2c80f",
      "parents": [
        "a6d536442b296df241fc2d7cddfa7acc7c423285"
      ],
      "author": {
        "name": "Douglas Greiman",
        "email": "duggelz@gmail.com",
        "time": "Thu Aug 04 14:24:54 2016 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 04 14:24:54 2016 -0700"
      },
      "message": "Get Travis CI working (#1)\n\n* Travis CI: Use Trusty build environment (Ubuntu 14.04)\r\n\r\n* Travis CI: Use precompiled Bazel packages\r\n\r\n* Travis CI: Use Apt Addon to install Bazel\r\n\r\n* Travis CI: Pin bazel version to 0.3.1\r\n"
    },
    {
      "commit": "a6d536442b296df241fc2d7cddfa7acc7c423285",
      "tree": "5919b414bad5e2ca8dbde57f0be2844ac57f1197",
      "parents": [
        "17c4c829bf3ac871c7a7bcb75d36317fadb840f8"
      ],
      "author": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Wed Aug 03 14:51:28 2016 -0700"
      },
      "committer": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Wed Aug 03 14:51:28 2016 -0700"
      },
      "message": "Update repository URL in README\n"
    },
    {
      "commit": "17c4c829bf3ac871c7a7bcb75d36317fadb840f8",
      "tree": "ca96e99b67e8822891eebc194cf133ad3d3e63c2",
      "parents": [
        "271540d28477e8c95ef0ad1ea2ea063fb73172c8"
      ],
      "author": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Wed Aug 03 14:46:09 2016 -0700"
      },
      "committer": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Wed Aug 03 14:46:09 2016 -0700"
      },
      "message": "Configure Travis CI\n"
    },
    {
      "commit": "271540d28477e8c95ef0ad1ea2ea063fb73172c8",
      "tree": "092a38e44e4fa37eeb436c87ecd0aba21769121c",
      "parents": [
        "c901b6edd517513114920b6ec7e084a8bf538e80"
      ],
      "author": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Wed Aug 03 14:42:40 2016 -0700"
      },
      "committer": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Wed Aug 03 14:42:40 2016 -0700"
      },
      "message": "Initial commit of integration tests\n"
    },
    {
      "commit": "c901b6edd517513114920b6ec7e084a8bf538e80",
      "tree": "9982a52c59c84ce18809b48525249436229e8f7a",
      "parents": [
        "07d6353f2b435a6bfaa3ccda84ccff648fa40510"
      ],
      "author": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Wed Aug 03 14:33:16 2016 -0700"
      },
      "committer": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Wed Aug 03 14:33:16 2016 -0700"
      },
      "message": "Initial commit of Bazel rules\n"
    },
    {
      "commit": "07d6353f2b435a6bfaa3ccda84ccff648fa40510",
      "tree": "83cecb36bb225b9cedcd47bed50ece3a7e784be3",
      "parents": [
        "e1f097e9fc3a4d3294855f62cb74e4d1e0f1095d"
      ],
      "author": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Wed Aug 03 14:28:47 2016 -0700"
      },
      "committer": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Wed Aug 03 14:28:47 2016 -0700"
      },
      "message": "Initial commit of compiler and runtime\n"
    },
    {
      "commit": "e1f097e9fc3a4d3294855f62cb74e4d1e0f1095d",
      "tree": "bc507808a8d5a7ce3add6d2a43f953b4890138f4",
      "parents": [],
      "author": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Wed Aug 03 13:21:29 2016 -0700"
      },
      "committer": {
        "name": "Doug Greiman",
        "email": "dgreiman@google.com",
        "time": "Wed Aug 03 13:21:29 2016 -0700"
      },
      "message": "Initial commit\n"
    }
  ]
}
