)]}'
{
  "log": [
    {
      "commit": "67f49139311b5d6eba051755ec5c3ddc54ea564d",
      "tree": "7cf504fd1eef99bae2e5e27d7b04caa79415b86a",
      "parents": [
        "4b1eb346fb1fde1b245b9f9fd872746242e05147"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@google.com",
        "time": "Tue Nov 23 19:58:29 2021"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@google.com",
        "time": "Tue Nov 23 19:58:29 2021"
      },
      "message": "Update to point to Catapult.\n"
    },
    {
      "commit": "4b1eb346fb1fde1b245b9f9fd872746242e05147",
      "tree": "5dc474e3b6d48e60fff72f5696648a26c7c0f544",
      "parents": [
        "1e254b3ef4d14dee6109d8c3a58ab64d1500e3c2"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Mon Sep 04 22:42:49 2017"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Mon Sep 04 22:42:49 2017"
      },
      "message": "test against python 3.6, bump version to v0.11.0\n"
    },
    {
      "commit": "1e254b3ef4d14dee6109d8c3a58ab64d1500e3c2",
      "tree": "329b0a7f113a91768e1a11f8cb0a8a7d193505d6",
      "parents": [
        "2b5a4fcf7c103323f9c6cd8d8127d740e78c0fe8"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Mon Sep 04 00:31:16 2017"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Mon Sep 04 00:49:39 2017"
      },
      "message": "Make multiple top-level dirs work, bump version to 0.10.0.\n\nPreviously all of the tests in a given typ invocation had to\nexist in a single importable python tree. In other words,\nthere had to be a single directory at the top and you could\nimport any module or file from under that directory. This\nmeant that you couldn\u0027t run tests from the\n//third_party/WebKit/Tools/Scripts/webkitpy and\n//third_party/blink/tools directories of a Chromium checkout\nin a single invocation, and that meant you had to jump through\nhoops (potentially incorrectly) to try and get coverage in a\nsingle \"test suite\".\n\nThis CL adds support for multiple disjoint top-level directories,\nadding a new --top-level-dirs flag that can be set multiple times\n(i.e, as a list). The existing --top-level-dir flag still works,\nand is equivalent to setting top-level-dirs once. However, setting\nboth is an error.\n"
    },
    {
      "commit": "2b5a4fcf7c103323f9c6cd8d8127d740e78c0fe8",
      "tree": "7592274412fae897e5ef4a921431e47baecb4460",
      "parents": [
        "249cee10e6a3905fe0527442351d01c67d90057b"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu May 11 23:35:46 2017"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu May 11 23:35:46 2017"
      },
      "message": "bump version to 0.9.12\n"
    },
    {
      "commit": "249cee10e6a3905fe0527442351d01c67d90057b",
      "tree": "c98ca33ba5d0547c15ed7fbc5127a1676da26a56",
      "parents": [
        "f6afa2bbd1765b21e815e1e6f6f36e1b9f896edf"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu May 11 23:32:08 2017"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu May 11 23:32:08 2017"
      },
      "message": "Change the handling of the \"no tests to run\" case.\n\nPreviously, if typ failed to find any actual tests to run, either\nbecause there were no tests, or because all of the tests were\nbeing skipped, it would error out. This turns out to be awkward\nbehavior because it can change the result of the test run depending\non whether or not someone skips a test.\n\nSo, this CL changes things so that the test run \"succeeds\" as long\nas no tests actually fail. If no tests are found, or every test is\nskipped, that\u0027s still a success.\n\nAs part of this, this change also changes the format of the\none-line summary from \"%d tests run, %d failures\" to\n\"%d tests passed, %d skipped, %d failures\" to be a little clearer\nabout the three types of results (and to help the user figure out\nwhat happened if all of the tests were skipped or nothing was found).\n\nR\u003dnednguyen@google.com\nBUG\u003dhttps://github.com/catapult-project/catapult/issues/3540\n"
    },
    {
      "commit": "f6afa2bbd1765b21e815e1e6f6f36e1b9f896edf",
      "tree": "cc8fe5661fe55b68b9a6d16ad266fd9179f270f2",
      "parents": [
        "afcd16c7a277c7388d7c8d44ab6c905f3137ddef"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Feb 10 23:29:38 2017"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Feb 10 23:29:38 2017"
      },
      "message": "bump version to 0.9.11\n"
    },
    {
      "commit": "afcd16c7a277c7388d7c8d44ab6c905f3137ddef",
      "tree": "ae906e28c5e3f8228f9ab959bcea35c5c01e2260",
      "parents": [
        "1197d56d19de32d44e5c648d34d7306801efaebe"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Feb 10 23:02:15 2017"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Feb 10 23:02:15 2017"
      },
      "message": "fix upload to still use http servers\n"
    },
    {
      "commit": "1197d56d19de32d44e5c648d34d7306801efaebe",
      "tree": "5f053506e3362bfd3f0ff70da3ed0c35ce0ae447",
      "parents": [
        "96da55533fa4d5ebfe1690c2906c5c7a6fb31f84"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Feb 10 22:47:57 2017"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Feb 10 22:47:57 2017"
      },
      "message": "checkpoint\n"
    },
    {
      "commit": "96da55533fa4d5ebfe1690c2906c5c7a6fb31f84",
      "tree": "bf7d12dd743f9638887cf56dee9f8ee28952a7c1",
      "parents": [
        "5822dda0e2d07fb97290b0b2efdc03316960faf6"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Feb 10 22:45:42 2017"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Feb 10 22:45:42 2017"
      },
      "message": "add test times to the JSON results\n"
    },
    {
      "commit": "5822dda0e2d07fb97290b0b2efdc03316960faf6",
      "tree": "60e301c78707e28d3df4b30db51dad1c1828f1d3",
      "parents": [
        "71574f8056adcb5e5ebd90c21fd734fa0a9c26eb"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Jan 29 00:44:34 2017"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Jan 29 00:44:34 2017"
      },
      "message": "Bump to version 0.9.10.\n"
    },
    {
      "commit": "71574f8056adcb5e5ebd90c21fd734fa0a9c26eb",
      "tree": "e6da63adcf9d954a1a00d6449c33d0da3def0c16",
      "parents": [
        "d77f1a5b246a0bbf04eee73c0bef134bf7a7dbcd"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Jan 29 00:43:31 2017"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Jan 29 00:43:31 2017"
      },
      "message": "Use https when accessing test-results sever\n\nR\u003ddpranke@chromium.org\nBUG\u003d664583\n\npatch from issue 2660433002 at patchset 1 (http://crrev.com/2660433002#ps1)\n"
    },
    {
      "commit": "d77f1a5b246a0bbf04eee73c0bef134bf7a7dbcd",
      "tree": "7e1e3244c3b092eb8e2a160a853be1e1e45f4e14",
      "parents": [
        "69c6119878f10c338418db9114a692e30652ede6"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Dec 11 01:37:23 2016"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Dec 11 01:37:23 2016"
      },
      "message": "bump version to 0.9.9\n"
    },
    {
      "commit": "69c6119878f10c338418db9114a692e30652ede6",
      "tree": "c09e31c0162fd1f36b37a66301376b168aa89686",
      "parents": [
        "3df460d1b6d83594e75f6b50f889a240a2e1925e",
        "0a2f193f3152f9c7e978727bb698a44b6c59a8ce"
      ],
      "author": {
        "name": "dpranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Dec 11 01:33:31 2016"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Dec 11 01:33:31 2016"
      },
      "message": "Merge pull request #7 from dglazkov/foreign-argument\n\nIntroduce the concept of a foreign argument."
    },
    {
      "commit": "0a2f193f3152f9c7e978727bb698a44b6c59a8ce",
      "tree": "c09e31c0162fd1f36b37a66301376b168aa89686",
      "parents": [
        "c8845b2354afb6350244beb2d4430da3a2b203e3"
      ],
      "author": {
        "name": "dpranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Dec 11 01:32:54 2016"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Dec 11 01:32:54 2016"
      },
      "message": "fix indentation"
    },
    {
      "commit": "c8845b2354afb6350244beb2d4430da3a2b203e3",
      "tree": "b42fa8ab6c0c6a802ac799eed4f81be69dca8dab",
      "parents": [
        "3df460d1b6d83594e75f6b50f889a240a2e1925e"
      ],
      "author": {
        "name": "Dimitri Glazkov",
        "email": "dimitri@glazkov.com",
        "time": "Sun Dec 11 00:36:26 2016"
      },
      "committer": {
        "name": "Dimitri Glazkov",
        "email": "dimitri@glazkov.com",
        "time": "Sun Dec 11 00:36:26 2016"
      },
      "message": "Introduce the concept of a foreign argument.\n\nWhen an embedding application wants to integrate its argument\nhandling with typ, it can re-use typ\u0027s ArgumentParser subclass\nand add its own arguments to it. They will be ignored and\nnot passed to spawned instances of typ.\n"
    },
    {
      "commit": "3df460d1b6d83594e75f6b50f889a240a2e1925e",
      "tree": "4d03d418b8368b9acedcd61387e6bd95b06f1ea2",
      "parents": [
        "132685261ca53bd4afdeb13f15af78bfdeb0f75e"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Oct 11 23:56:37 2016"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Oct 11 23:56:37 2016"
      },
      "message": "bump version to 0.9.8\n"
    },
    {
      "commit": "132685261ca53bd4afdeb13f15af78bfdeb0f75e",
      "tree": "7e40d0e95955afeabd8cc5889461a012af0b0d05",
      "parents": [
        "5d0fe133e2ffbcea95f0f3a6e268c6585c2d3a72"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Oct 11 23:49:28 2016"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Oct 11 23:49:28 2016"
      },
      "message": "Add better logging when failing to load a test.\n\nThis should help users better debug problems.\n\nR\u003dnednguyen@google.com\nBUG\u003d649217\n"
    },
    {
      "commit": "5d0fe133e2ffbcea95f0f3a6e268c6585c2d3a72",
      "tree": "7e43ce66a1738ed8e99cb29cef591d6d9503085d",
      "parents": [
        "79fe79dbb4cdd56fd4fe0491f31ad61619652668"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Sep 24 00:34:18 2016"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Sep 24 00:34:18 2016"
      },
      "message": "Clean up formatting, rework run wrapper script to not use globals.\n\n(No functional changes expected).\n\nR\u003dnednguyen@google.com\nBUG\u003d\n\npatch from issue 2322963004 at patchset 40001 (http://crrev.com/2322963004#ps40001)\n"
    },
    {
      "commit": "79fe79dbb4cdd56fd4fe0491f31ad61619652668",
      "tree": "480c5c31a19490b5b3bb185a334b02600ed39c71",
      "parents": [
        "101acd31a8c11fce0b1479bfebcc6e78d97cca33"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Aug 30 18:13:03 2016"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Aug 30 18:13:03 2016"
      },
      "message": "Change typ\u0027s interpretation of a test that first fails and is then skipped.\n\nPreviously, if a test failed and typ retried it, but for whatever reason\nthe test was skipped on subsequent retries, the test was considered to\nhave failed (since it never passed) and so the whole test run failed.\n\nThis is perhaps inconsistent with how typ would\u0027ve reacted if the test\nwas skipped *every* time, and so arguably this is the wrong thing to do.\nFor now, I\u0027m changing the behavior so that subsequent skips are treated\nlike subsequent passes (i.e., the test didn\u0027t fail every time).\n\nIf you really want different behavior you can look at the full list\nof results yourself.\n\nAlso, bump the typ version to 0.9.7, and add a codereview.settings flag\nso that I can use Rietveld.\n\nR\u003dnednguyen@google.com\nBUG\u003d618330\n"
    },
    {
      "commit": "101acd31a8c11fce0b1479bfebcc6e78d97cca33",
      "tree": "4fa9b80c65cac517d27c87919d9de1d687f08427",
      "parents": [
        "2f8787b8618326280035643ce9eb8447174aeb2f"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Wed Jul 13 05:21:41 2016"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Aug 30 18:03:26 2016"
      },
      "message": "Bump version to 0.9.6, clean up Python 3 failures\n"
    },
    {
      "commit": "2f8787b8618326280035643ce9eb8447174aeb2f",
      "tree": "eed757c1985f8f6aada62fa6e9e58b253226833a",
      "parents": [
        "df502363eed5f15910822a4557fde29d85a5ede5"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Mon Jun 20 00:29:37 2016"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Aug 30 18:03:26 2016"
      },
      "message": "rework run script to remove python3 logic\n"
    },
    {
      "commit": "df502363eed5f15910822a4557fde29d85a5ede5",
      "tree": "a66f75c22478f076f7cef438a80ac83280947403",
      "parents": [
        "a277897604718c50b8353b4bce15d6b78cacdfca"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Mon Jun 20 00:29:13 2016"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Mon Jun 20 00:29:13 2016"
      },
      "message": "rework sharding tests\n"
    },
    {
      "commit": "a277897604718c50b8353b4bce15d6b78cacdfca",
      "tree": "4762a1e30e899124f5496bc4eb9cbc061c9f651f",
      "parents": [
        "14890ce3429471e7a0becfed94122270d86b7f4e"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Jun 19 23:25:17 2016"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Jun 19 23:25:17 2016"
      },
      "message": "Add support for running a subset of tests (aka \"sharding\").\n\nThis patch adds two new command line arguments, --shard-index\nand --total-shards. These can be used to run a fractional subset\nof the tests, and work by running every `total_shard`th test in\nthe list of tests, starting at offset `shard_index`.\n\nAlso, bump the version to 0.9.5.\n"
    },
    {
      "commit": "14890ce3429471e7a0becfed94122270d86b7f4e",
      "tree": "3be1b07773969d5266261725af991361b2896154",
      "parents": [
        "e49a2a697c37851036a9756494acfa152767a1f1",
        "424de416fd0a7e26a0fb9748664cfa3dc2d01c86"
      ],
      "author": {
        "name": "dpranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Feb 02 00:25:24 2016"
      },
      "committer": {
        "name": "dpranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Feb 02 00:25:24 2016"
      },
      "message": "Merge pull request #5 from natduca/fix_typo\n\nFix missing format string in test loading failure message"
    },
    {
      "commit": "424de416fd0a7e26a0fb9748664cfa3dc2d01c86",
      "tree": "3be1b07773969d5266261725af991361b2896154",
      "parents": [
        "e49a2a697c37851036a9756494acfa152767a1f1"
      ],
      "author": {
        "name": "Nat Duca",
        "email": "natduca@gmail.com",
        "time": "Mon Feb 01 23:46:13 2016"
      },
      "committer": {
        "name": "Nat Duca",
        "email": "natduca@gmail.com",
        "time": "Mon Feb 01 23:47:58 2016"
      },
      "message": "Fix missing format string in test loading failure message\n\nThis adds the test name into the failure message to resolve a dangling %s\n"
    },
    {
      "commit": "e49a2a697c37851036a9756494acfa152767a1f1",
      "tree": "8eec8532882c3b6a5ed39a94366f310e9e51ed4a",
      "parents": [
        "d4caf6b40658b9c43bbfc5794d37ae34d6ff0486",
        "2a1f3af4e09f78e91a237d59c57e02dd7f472b01"
      ],
      "author": {
        "name": "dpranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Sep 26 01:09:13 2015"
      },
      "committer": {
        "name": "dpranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Sep 26 01:09:13 2015"
      },
      "message": "Merge pull request #4 from qyearsley/sys-path-order\n\nInsert new paths at the start of sys.path."
    },
    {
      "commit": "2a1f3af4e09f78e91a237d59c57e02dd7f472b01",
      "tree": "8eec8532882c3b6a5ed39a94366f310e9e51ed4a",
      "parents": [
        "d4caf6b40658b9c43bbfc5794d37ae34d6ff0486"
      ],
      "author": {
        "name": "Quinten Yearsley",
        "email": "qyearsley@google.com",
        "time": "Fri Sep 25 23:37:41 2015"
      },
      "committer": {
        "name": "Quinten Yearsley",
        "email": "qyearsley@google.com",
        "time": "Fri Sep 25 23:37:41 2015"
      },
      "message": "Insert new paths at the start of sys.path.\n"
    },
    {
      "commit": "d4caf6b40658b9c43bbfc5794d37ae34d6ff0486",
      "tree": "3aa5aa14e96f649116dba18bca2d04eecf83747b",
      "parents": [
        "cc3e7adaa4c8af50c46a6f848b9e7d91a44602a4"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Sep 04 22:35:36 2015"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Sep 04 22:35:36 2015"
      },
      "message": "Bump version to 0.9.4 w/ two changes:\n\nFirst, add a -vvv mode to log when tests are queued for running.\n\nIf one is running a bunch of tests in parallel and something\nis not working right, it can be useful to see which tests are\ncurrently executing at the same time. There isn\u0027t a great way\nto do this in typ, because we don\u0027t know when tests are actually\npicked up for execution by the child processes, but we can at\nleast log which tests has been queued for running.\n\nThis patch adds a -vvv option (verbose\u003d3). This will make\nthe test log twice as long, since we will now log lines for\nwhen every test starts and stops, but at least that can help\nwith debugging.\n\nAlso fix a bug where we might hang if we ran typ from\ninside the package we wanted to test.\n"
    },
    {
      "commit": "cc3e7adaa4c8af50c46a6f848b9e7d91a44602a4",
      "tree": "c46a556d37f4b95395b4db3381cb54d4a02fc6eb",
      "parents": [
        "41a51611d2fc3cd292fc792f5a6ab673c0947f62"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Sep 04 00:41:47 2015"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Sep 04 00:41:47 2015"
      },
      "message": "Revert \"merge in top_dir fix, bump version to 0.9.4pre\"\n\nThis reverts commit 96126498cef62ccbbd325f02cee2f90c565f7f98.\n"
    },
    {
      "commit": "41a51611d2fc3cd292fc792f5a6ab673c0947f62",
      "tree": "3aa5aa14e96f649116dba18bca2d04eecf83747b",
      "parents": [
        "eda91552ae26188afbad74115495e44e07827c4d"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Sep 04 00:41:37 2015"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Sep 04 00:41:37 2015"
      },
      "message": "Revert \"Add a -vvv mode to log when tests are queued for running.\"\n\nThis reverts commit eda91552ae26188afbad74115495e44e07827c4d.\n"
    },
    {
      "commit": "eda91552ae26188afbad74115495e44e07827c4d",
      "tree": "96dc0d1a26315dc09e19daf59ecde0bb2279a6f1",
      "parents": [
        "96126498cef62ccbbd325f02cee2f90c565f7f98"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Sep 04 00:33:45 2015"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Sep 04 00:33:45 2015"
      },
      "message": "Add a -vvv mode to log when tests are queued for running.\n\nIf one is running a bunch of tests in parallel and something\nis not working right, it can be useful to see which tests are\ncurrently executing at the same time. There isn\u0027t a great way\nto do this in typ, because we don\u0027t know when tests are actually\npicked up for execution by the child processes, but we can at\nleast log which tests has been queued for running.\n\nThis patch adds a -vvv option (verbose\u003d3). This will make\nthe test log twice as long, since we will now log lines for\nwhen every test starts and stops, but at least that can help\nwith debugging.\n"
    },
    {
      "commit": "96126498cef62ccbbd325f02cee2f90c565f7f98",
      "tree": "3aa5aa14e96f649116dba18bca2d04eecf83747b",
      "parents": [
        "ab52f2141b419966bddfa2f08d3935ca4f700b51"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Sep 04 00:00:57 2015"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Sep 04 00:33:27 2015"
      },
      "message": "merge in top_dir fix, bump version to 0.9.4pre\n"
    },
    {
      "commit": "ab52f2141b419966bddfa2f08d3935ca4f700b51",
      "tree": "c46a556d37f4b95395b4db3381cb54d4a02fc6eb",
      "parents": [
        "720ea6763b195b0db98999088f24d38fbb3897df"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Jun 30 00:13:56 2015"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Jun 30 00:13:56 2015"
      },
      "message": "clean up run script, bump version to 0.9.3\n"
    },
    {
      "commit": "720ea6763b195b0db98999088f24d38fbb3897df",
      "tree": "440197e52b62f58633c0c24df1c7f42e772963cd",
      "parents": [
        "8b9096f22f49d232d14784e2b9385a103a964392"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Jun 30 00:07:09 2015"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Jun 30 00:07:09 2015"
      },
      "message": "fix lint errors w/ upgraded pylint from depot_tools\n"
    },
    {
      "commit": "8b9096f22f49d232d14784e2b9385a103a964392",
      "tree": "4145a8d3d06d4a382180c70678a4a9f920940a3b",
      "parents": [
        "45882994a9593f2308f55675a6c16173d3ff94c7"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Mon Jun 29 23:50:25 2015"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Mon Jun 29 23:50:25 2015"
      },
      "message": "Misc cleanup; bump version to 0.9.2.\n\n- Add print statements to be clearer in ./run\n- Disable three tests that seem to be failing unexpectedly in Python\n  3.4.\n"
    },
    {
      "commit": "45882994a9593f2308f55675a6c16173d3ff94c7",
      "tree": "1d4e9a4e23e41a47fc0fb2b1cd27f1dc32fcd7c7",
      "parents": [
        "01070401c2c1bf397e4d2d94f61b81dc0e61c0d1"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Apr 07 22:09:22 2015"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Apr 07 22:09:22 2015"
      },
      "message": "Add a --coverage-annotate flag, bump version to 0.9.1.\n"
    },
    {
      "commit": "01070401c2c1bf397e4d2d94f61b81dc0e61c0d1",
      "tree": "9330e0941b70838a1df3e29e470630f0e50f8189",
      "parents": [
        "ea4469a1a1067e4c06bf12ad87877c9ce9d14934"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Mar 26 02:28:28 2015"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Mar 26 02:28:28 2015"
      },
      "message": "bump to version 0.9, add telemetry fix, fix license classifier in setup.py\n"
    },
    {
      "commit": "ea4469a1a1067e4c06bf12ad87877c9ce9d14934",
      "tree": "eb22c5f1b41d1f46de5cf43711ce0b524388ff1b",
      "parents": [
        "68b64ff805d266c7a249294abc45cc12076aeb9f"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Mar 07 03:11:41 2015"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Mar 07 03:11:41 2015"
      },
      "message": "Fix issues arising when load_tests would raise weird exceptions.\n\nThis was encountered in https://codereview.chromium.org/838253005/ .\n\n@unittest.skipUnless() was failing in a weird way depending on the\nruntime state of the Python process, and so loadTestsFromName() was\nraising an exception other than ImportError. typ was not catching\nthis exception, leading to an unexpected exception from the worker\ngetting thrown, with little debugging logic.\n\nThis patch does two things: first, it catches the exceptions and\nthe corresponding traceback, fails the test and attaches the error\nmessage. Second, it also captures the traceback when the worker\nthrows an unexpected exception.\n\nThese fixes still need tests; it\u0027s not yet obvious to me how to\nwrite a unit test that accurately mimics what was actually going\non in telemetry.\n"
    },
    {
      "commit": "68b64ff805d266c7a249294abc45cc12076aeb9f",
      "tree": "47eca50b8972bd266a35e8c41e8636e8efd89493",
      "parents": [
        "9b7f5094ce2f0961986bba1ea3c1d5293050a532"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Jan 15 22:36:02 2015"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Jan 15 22:36:02 2015"
      },
      "message": "bump version to 0.8.9\n"
    },
    {
      "commit": "9b7f5094ce2f0961986bba1ea3c1d5293050a532",
      "tree": "c9cd248cbf11b061e54619617560f0f59deca5e9",
      "parents": [
        "8de32a6ff3027fa4d4d72a2ea6dc9e2fa7688eef"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Jan 15 22:33:56 2015"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Jan 15 22:33:56 2015"
      },
      "message": "Catch and save exceptions and return values from teardown_process.\n\nPreviously, if a teardown_process hook raised an exception, it would\ncause typ to crash. Now, we catch and save any exceptions in the\nRunner.final_responses member variable, which is a list of\n(worker_num, return_value, exception) tuples, one per process created\nover the lifetime of the runner (so worker_num may occur multiple\ntimes).\n"
    },
    {
      "commit": "8de32a6ff3027fa4d4d72a2ea6dc9e2fa7688eef",
      "tree": "59a051e9b8eec9aac65c3afa3798fefccd2656d5",
      "parents": [
        "0a1261f93f9f4b9613edaa3bebf0fb3e0aa0933e"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Jan 15 22:33:24 2015"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Jan 15 22:33:24 2015"
      },
      "message": "add test for exception in teardown\n"
    },
    {
      "commit": "0a1261f93f9f4b9613edaa3bebf0fb3e0aa0933e",
      "tree": "6e7549d8b7867063ff4317f0793b9306f015b7d1",
      "parents": [
        "c6a6b8d1e93b6eaa433b581e100150c591861c81"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Oct 28 20:12:04 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Oct 28 20:12:04 2014"
      },
      "message": "fix typo in setup script, bump version to 0.8.8\n"
    },
    {
      "commit": "c6a6b8d1e93b6eaa433b581e100150c591861c81",
      "tree": "3d4f482f89f696577468accf8982370c6ccca2ba",
      "parents": [
        "07d29caf8eb6a532f912be624e58a86184b7ae58",
        "64216357f3ef72e6a23279eb23fdde23293d86a2"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Oct 28 20:11:16 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Oct 28 20:11:16 2014"
      },
      "message": "Merge branch \u0027dev\u0027\n"
    },
    {
      "commit": "64216357f3ef72e6a23279eb23fdde23293d86a2",
      "tree": "3d4f482f89f696577468accf8982370c6ccca2ba",
      "parents": [
        "e6f3595872e06936dc3257b78242deb93a793771"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Oct 28 20:10:54 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Oct 28 20:10:54 2014"
      },
      "message": "fix typo\n"
    },
    {
      "commit": "e6f3595872e06936dc3257b78242deb93a793771",
      "tree": "6f19b4ebbbd297623846a2c2e3133e646cb3209d",
      "parents": [
        "f220a0fd0ef9567a3adac9f08fe94e01469b283d"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Oct 28 19:41:07 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Oct 28 19:41:07 2014"
      },
      "message": "bump dev version to 0.8.8-dev\n"
    },
    {
      "commit": "07d29caf8eb6a532f912be624e58a86184b7ae58",
      "tree": "00061af01656dd7da5fde9c4dd47fc1ea369f746",
      "parents": [
        "e25b780b0b147580ef248c212b238446264d9d78",
        "f220a0fd0ef9567a3adac9f08fe94e01469b283d"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Oct 28 19:38:58 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Oct 28 19:38:58 2014"
      },
      "message": "Merge branch \u0027dev\u0027 to get to version 0.8.7\n"
    },
    {
      "commit": "f220a0fd0ef9567a3adac9f08fe94e01469b283d",
      "tree": "00061af01656dd7da5fde9c4dd47fc1ea369f746",
      "parents": [
        "66449941160f0fbadd40833e98aa85ae98a78a35"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Oct 28 19:38:45 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Oct 28 19:38:45 2014"
      },
      "message": "bump version to 0.8.7\n"
    },
    {
      "commit": "66449941160f0fbadd40833e98aa85ae98a78a35",
      "tree": "e64cb234134b988334cd2889a966b0f5b9c0e86c",
      "parents": [
        "539d4e54bfe1bbcca76c72d1f68a9ce3b50030db"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Oct 28 19:34:54 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Oct 28 19:34:54 2014"
      },
      "message": "Fix packages list in setup.py.\n\nApparently you have to declare subpackages in the packages arg to the\nsetup() call in setup.py.\n"
    },
    {
      "commit": "539d4e54bfe1bbcca76c72d1f68a9ce3b50030db",
      "tree": "0d45a6020767ff98845741fa9d636047e58b3c8a",
      "parents": [
        "b7fe0c7a87697372902c20e03b3d59082fcfd711"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Oct 28 19:34:31 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Oct 28 19:34:31 2014"
      },
      "message": "Revert \"Remove typ.fakes directory.\"\n\nThis reverts commit b7fe0c7a87697372902c20e03b3d59082fcfd711.\n"
    },
    {
      "commit": "b7fe0c7a87697372902c20e03b3d59082fcfd711",
      "tree": "0635de65e0bc44ce49677b65966e325df527d969",
      "parents": [
        "e5b62191a0ed51f33f671d745f92660e081cd7d1"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Oct 28 17:50:45 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Oct 28 17:52:33 2014"
      },
      "message": "Remove typ.fakes directory.\n\nIt seems that having the fakes in a typ.fakes directory does not\nwork well with egg files; typ wouldn\u0027t launch when run out of an\ninstall.\n\nTo work around this until such time as I understand what\u0027s going on\nbetter, I\u0027ve moved the fakes into the top-level directory and\nmoved the tests for the fakes into typ/tests.\n"
    },
    {
      "commit": "e5b62191a0ed51f33f671d745f92660e081cd7d1",
      "tree": "0d45a6020767ff98845741fa9d636047e58b3c8a",
      "parents": [
        "e208b4429fa69e6c192a036a94660d8b55028676"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Wed Oct 22 02:49:11 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Wed Oct 22 02:49:11 2014"
      },
      "message": "bump dev version to 0.8.7-dev\n"
    },
    {
      "commit": "e208b4429fa69e6c192a036a94660d8b55028676",
      "tree": "232c9c524f9d8d6286a862c1eac63cfde12026e1",
      "parents": [
        "e25b780b0b147580ef248c212b238446264d9d78"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Wed Oct 22 02:46:48 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Wed Oct 22 02:46:48 2014"
      },
      "message": "Fix ArgumentParserTest.test_argv_from_args to be more portable.\n\nOne of the tests was testing --jobs 4, but on a machine w/\n4 CPUs, that would get reduced to the default. This patch\nchanges things to test --jobs 3, which is less likely to be\nseen in the wild.\n"
    },
    {
      "commit": "e25b780b0b147580ef248c212b238446264d9d78",
      "tree": "14c8da08e950e339d4dadb804bb06464a7e81376",
      "parents": [
        "aba6b5defd08d74dc1e52d25838b04a38088072d",
        "6cfe6d6973b30f318d7b9539ea6ed9cbf3e5683b"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Oct 21 23:06:52 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Oct 21 23:06:52 2014"
      },
      "message": "Merge branch \u0027master\u0027 into stable\n"
    },
    {
      "commit": "6cfe6d6973b30f318d7b9539ea6ed9cbf3e5683b",
      "tree": "14c8da08e950e339d4dadb804bb06464a7e81376",
      "parents": [
        "1f45cfc7d768d40024b4329c5589c02e1214f4a9"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Oct 21 22:36:51 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Oct 21 22:36:51 2014"
      },
      "message": "fix handling of wmp\u003dignore on windows\n"
    },
    {
      "commit": "1f45cfc7d768d40024b4329c5589c02e1214f4a9",
      "tree": "44e9369aad5a4c5ceb610fef7f7554e8798bed24",
      "parents": [
        "79a2c6d13f0cc1ebee04b06272d5be7dd8079e88"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Oct 21 22:32:41 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Oct 21 22:32:41 2014"
      },
      "message": "Rework windows multiprocessing approach.\n\nNow we default to spawning unless told not to (what seems likely to be\nthe common case).\n\nWe also rework the way we handle hooks like the classifier and\nsetup/teardown functions so that they can only be set\nfrom a caller that is importable (and doesn\u0027t spawn).\n\nThis simplifies the APIs and the implementation.\n"
    },
    {
      "commit": "79a2c6d13f0cc1ebee04b06272d5be7dd8079e88",
      "tree": "86c1c118be0d07d80bf782515d0a6029d1c01726",
      "parents": [
        "5e9c4856386a9e0fd68eab69a4b4f32de2666f5c"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Oct 17 22:55:29 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Oct 17 22:55:29 2014"
      },
      "message": "add note about both paths being untested\n"
    },
    {
      "commit": "5e9c4856386a9e0fd68eab69a4b4f32de2666f5c",
      "tree": "439e1c1cc8bfc2a2f6870aa719f3411d32214c84",
      "parents": [
        "aba6b5defd08d74dc1e52d25838b04a38088072d"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Oct 17 22:50:54 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Oct 17 22:50:54 2014"
      },
      "message": "Make v0.8.5 actually work on windows.\n\nNext time, when writing code specifically intended to work around\nplatform misfeatures, it would probably be a good idea to actually\ntest it on that platform; this revealed a number of bugs.\n\nI\u0027m not certain that all of these win multiprocessing hacks are\neven a good idea; they\u0027re introducing a bunch of complexity\ninto the startup code paths and make the API harder to understand,\nand I\u0027m not sure if I can really make them correct in all cases,\neither :(.\n"
    },
    {
      "commit": "aba6b5defd08d74dc1e52d25838b04a38088072d",
      "tree": "a861a5199f169fc06f6b23d7ba7c1b6a8eb2c2de",
      "parents": [
        "df1f462ec978d47c7f092e86f4be3fafc7cc446f"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Oct 17 02:42:03 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Oct 17 02:42:03 2014"
      },
      "message": "bump version to 0.8.5\n"
    },
    {
      "commit": "df1f462ec978d47c7f092e86f4be3fafc7cc446f",
      "tree": "70f70829f5d86f094f8c04b34ce1902630cfa076",
      "parents": [
        "5e73c13993ecb44b00f93ca2fe97a7c18158f7ff"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Oct 17 02:29:48 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Oct 17 02:29:48 2014"
      },
      "message": "Rework typ to handle unimportable modules better.\n\nmultiprocessing on windows requires that the __main__ module\nbe importable in order to work properly. If developers are mostly\nworking and testing on unix, it\u0027s possible for them to not realize this\nand attempt to call typ from a wrapper script that may not be\nimportable, and then get unexpected errors.\n\nThis change makes the typ entry points check if it is being called\nfrom an unimportable __main__, and error out if so. Developers\nmust then specify several different ways to work around this by passing\nthe \u0027win_multiprocessing\u0027 flag to typ.main() or typ.Runner.main().\n\nThe flag takes one of the values specified in the typ.WinMultiprocessing\nclass:\n\n  ignore -  The tests are not expected to run on Windows, so ignore\n            the fact that __main__ is not importable. (If the tests\n            are actually run on Windows, it will err out).\n\n  run_serially - Run serially (one at a time) on Windows, regardless\n            of how many cores are available (hence multiprocessing is\n            not used).\n\n  spawn -   Typ will convert the args it was passed back into a command\n            line, and spawn off an invocation of itself on Windows to actually\n            execute the tests in parallel (Since typ itself is importable,\n            this works fine). This mode cannot be used in conjunction\n            with contexts or setup and teardown functions at this time.\n\n  force -   This is like \u0027spawn\u0027, except that it forces the spawn even\n            on non-Windows platforms. This mostly exists for testing.\n\nAs part of this change, we also no longer expose spawn_main() as a public\nentry point (main() handles spawning instead), and merge the cmdline.py\ncode directly into runner, as it didn\u0027t make sense to split things\nacross the two modules once runner had to do the importability checking.\n\nWe also add a host.call_inline() wrapper that is a dumb wrapper\naround subprocess.call(); it does not do the output capturing that\nhost.call() does, and is used when spawning the typ subprocess if needed.\n"
    },
    {
      "commit": "5e73c13993ecb44b00f93ca2fe97a7c18158f7ff",
      "tree": "01a42a6d1c72bd48b22eb92e0f36d821b569696f",
      "parents": [
        "17632a90324e1b42a15bc5da1903d4f828748e1b"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Wed Oct 15 01:26:11 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Wed Oct 15 01:26:11 2014"
      },
      "message": "bump version to 0.8.4\n"
    },
    {
      "commit": "17632a90324e1b42a15bc5da1903d4f828748e1b",
      "tree": "f99d5f56eccf14954ab4825fa43a6ad584e588e6",
      "parents": [
        "efa61f677c662d6d17058410b7f3cf0256c6f39b"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Wed Oct 15 01:25:07 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Wed Oct 15 01:25:07 2014"
      },
      "message": "lint\n"
    },
    {
      "commit": "efa61f677c662d6d17058410b7f3cf0256c6f39b",
      "tree": "5f034dc600e0d4cd05cb7cd12e9660474c699f74",
      "parents": [
        "ad381215b30cc9c8d5a788bcb2b26c13a2de4c88"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Wed Oct 15 01:18:49 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Wed Oct 15 01:18:49 2014"
      },
      "message": "Add --all, **kwargs to typ.main().\n\nTwo features added for switching Chromium over ...\n\nThere\u0027s a new \u0027--all\u0027 flag that will override --skip and\n@unittest.skip and @unittest.skipIf.\n\nAlso, the typ.main() entry point and the runner.parse_args()\ncall now take an optional **kwargs dict of values that can be\nused to set the defaults used to parse arguments. This makes it\neasier for wrapper scripts to set defaults for directories to use,\ntests to skip, etc.\n\nThis works even for the \u0027tests\u0027 arg for the remaining command\nline arguments.\n\nLastly, I fixed some inconsistencies that can arise in Python 2.7\u0027s\nunittests\u0027 handling of realpath() vs. abspath() (see\nhttp://bugs.python.org/issue19352).\n"
    },
    {
      "commit": "ad381215b30cc9c8d5a788bcb2b26c13a2de4c88",
      "tree": "220bc5c40fb66b2d6a92d423b225fbe52d9d8323",
      "parents": [
        "d64ee9bbf4a84dd1ae4df88254013c901ee56376"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Oct 11 01:32:07 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Oct 11 01:32:07 2014"
      },
      "message": "bump version to 0.8.3\n"
    },
    {
      "commit": "d64ee9bbf4a84dd1ae4df88254013c901ee56376",
      "tree": "623936f76da8904d94d8aa97cc688b32347f2a18",
      "parents": [
        "c339a797c349640b812ecf297c86dd595b6ba26f"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Oct 11 01:31:05 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Oct 11 01:31:05 2014"
      },
      "message": "update README, remove unneeded loader arg to Runner\n"
    },
    {
      "commit": "c339a797c349640b812ecf297c86dd595b6ba26f",
      "tree": "a1dd2834abf93be80f2396f97ebc666e9c5a128b",
      "parents": [
        "7e7f8640d20abacb3d262650e4ab13465049919b"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Oct 11 01:26:23 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Oct 11 01:26:32 2014"
      },
      "message": "remove unnecessary \u0027untested\u0027 coverage pragmas\n"
    },
    {
      "commit": "7e7f8640d20abacb3d262650e4ab13465049919b",
      "tree": "e4e55d289c95cd399d8afd7dd0a0ea05888ac972",
      "parents": [
        "4c4a41181fbd8255eb02de043ee66b4b8592f305"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Oct 11 01:25:24 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Oct 11 01:25:24 2014"
      },
      "message": "clean up pool code and queue closing\n"
    },
    {
      "commit": "4c4a41181fbd8255eb02de043ee66b4b8592f305",
      "tree": "97823a9f6403fafe883f4dc9079420ad38d7db47",
      "parents": [
        "d9bd48984a8e591c5b7508b068ade83123b0ffc8"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Oct 11 00:29:40 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Oct 11 00:29:40 2014"
      },
      "message": "linting\n"
    },
    {
      "commit": "d9bd48984a8e591c5b7508b068ade83123b0ffc8",
      "tree": "9cd62a6727200146582c1576bc99168a0d5a1cff",
      "parents": [
        "15ad79010c9f905a58fa4a6a7d3e29bcaab0388e"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Oct 11 00:22:49 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Oct 11 00:22:49 2014"
      },
      "message": "get rid of the multiprocessing shutdown tracebacks\n"
    },
    {
      "commit": "15ad79010c9f905a58fa4a6a7d3e29bcaab0388e",
      "tree": "ba80ff630b588a43c4b97aebc6aa3faec2b57dfe",
      "parents": [
        "b2221f5e3f3d1ccf1e8edca3558d7dd1773ae6b2"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Oct 11 00:15:15 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Oct 11 00:15:15 2014"
      },
      "message": "clean up spawn_main()\n"
    },
    {
      "commit": "b2221f5e3f3d1ccf1e8edca3558d7dd1773ae6b2",
      "tree": "4e07b007ed48cd06cde5e7d816fea99ce1258418",
      "parents": [
        "9c27380813678776b0f3749bad6f7d3451b7e247"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Oct 11 00:10:25 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sat Oct 11 00:10:25 2014"
      },
      "message": "get pool to 100% coverage\n"
    },
    {
      "commit": "9c27380813678776b0f3749bad6f7d3451b7e247",
      "tree": "e19a7824409ec6afb015a5d569c3d93ee5f3c480",
      "parents": [
        "63f38826672747182a495fd36f3b2348751925be"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Oct 10 22:09:35 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Oct 10 22:09:35 2014"
      },
      "message": "add tests for capturing log output in host\n"
    },
    {
      "commit": "63f38826672747182a495fd36f3b2348751925be",
      "tree": "9fbddb31d3e804bf696baa820e06f81c47f82905",
      "parents": [
        "ccf9ceb116aa56ed0d9dcac784f4b730e27ae358"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Oct 10 21:44:32 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Oct 10 21:44:32 2014"
      },
      "message": "add _run_one_test tests\n"
    },
    {
      "commit": "ccf9ceb116aa56ed0d9dcac784f4b730e27ae358",
      "tree": "87905a2284adec5eaa28b17418ff2f77d3cd96a1",
      "parents": [
        "fd576111ddb2624ed69a91d02008685493235039"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Oct 10 21:12:35 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Oct 10 21:12:35 2014"
      },
      "message": "missed new file\n"
    },
    {
      "commit": "fd576111ddb2624ed69a91d02008685493235039",
      "tree": "38b5f9b40718551bcbed1a2ebd608336c0fa2881",
      "parents": [
        "e57ae0ec7fdf8a544adaaa6798e5c8e7b2d34838"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Oct 10 21:09:18 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Oct 10 21:09:18 2014"
      },
      "message": "clean up context/setup/teardown testing\n"
    },
    {
      "commit": "e57ae0ec7fdf8a544adaaa6798e5c8e7b2d34838",
      "tree": "13620a077d0dc2e4e84c382553b8204a416593e4",
      "parents": [
        "4330c2ac0be817e33a4cfb1d35af3126fa3cb9a2"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Oct 10 20:29:40 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Oct 10 20:29:40 2014"
      },
      "message": "make run be less quiet\n"
    },
    {
      "commit": "4330c2ac0be817e33a4cfb1d35af3126fa3cb9a2",
      "tree": "03117bd01a032041401f97868a7abf78e28d618b",
      "parents": [
        "b91c141b8b7c8e9d7f501983e654a6b71a510112"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Oct 10 18:56:49 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Oct 10 18:56:49 2014"
      },
      "message": "add test_fail_then_pass\n"
    },
    {
      "commit": "b91c141b8b7c8e9d7f501983e654a6b71a510112",
      "tree": "88b4dd1ecada01772fb2df3fd3e5589dede6904d",
      "parents": [
        "18ebba70254c6d753c212119c7e64a0be8ffd536"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Oct 10 04:52:20 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Oct 10 04:52:20 2014"
      },
      "message": "clean up a bit\n"
    },
    {
      "commit": "18ebba70254c6d753c212119c7e64a0be8ffd536",
      "tree": "1ad455aa71337cc428f9e8adaffb4db8e9fa4092",
      "parents": [
        "fe8d86f02e7a1a49e9cd31a5c4c3134d0367c536"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Oct 10 00:16:53 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Oct 10 00:16:53 2014"
      },
      "message": "add tests for pool\n"
    },
    {
      "commit": "fe8d86f02e7a1a49e9cd31a5c4c3134d0367c536",
      "tree": "3389b7fb69a4d8b6cf1a4cfb15436941010467d3",
      "parents": [
        "128ba6ca0c4b36db52801da293d443e6d69d8a2f"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Oct 09 23:45:27 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Oct 09 23:45:27 2014"
      },
      "message": "add test for spawn_main\n"
    },
    {
      "commit": "128ba6ca0c4b36db52801da293d443e6d69d8a2f",
      "tree": "f8b20d797c025bed3acdb72ab083c6d92137a13f",
      "parents": [
        "017a2b2d09b4f2491f456b789e5a9300aa5f17be"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Oct 09 23:19:34 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Oct 09 23:19:34 2014"
      },
      "message": "add more tests for Host, FakeHost\n"
    },
    {
      "commit": "017a2b2d09b4f2491f456b789e5a9300aa5f17be",
      "tree": "513456688f04435c14e2e41dc68fd0271147c11a",
      "parents": [
        "9a848289c220f73defbbd7e36525eec323260b96"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Oct 09 23:19:14 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Oct 09 23:19:14 2014"
      },
      "message": "make tools/cov --show imply --show-missing\n"
    },
    {
      "commit": "9a848289c220f73defbbd7e36525eec323260b96",
      "tree": "3948e04e45ecb701766ed92e3f5165008289bb85",
      "parents": [
        "aa66991f15e19d1a9fd6a934160f2c5737425e47"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Oct 09 22:41:20 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Oct 09 22:41:20 2014"
      },
      "message": "add -v, --no3 flags to run\n"
    },
    {
      "commit": "aa66991f15e19d1a9fd6a934160f2c5737425e47",
      "tree": "d158c83c1c0d5f8a50f4c4661a012e7e06d3eed4",
      "parents": [
        "f34bb5ecd57a8d5f857734e175c55fe1fcc3fb56"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Oct 09 22:34:35 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Oct 09 22:36:24 2014"
      },
      "message": "Remove unittest fakes for now, make MainTest use a real loader.\n\nAlso update the \u0027pragma: untested\u0027 blocks to reflect the stuff\nthat is now truly untested due to the interaction between coverage\nand the debugger; coverage is up to 95% otherwise.\n"
    },
    {
      "commit": "f34bb5ecd57a8d5f857734e175c55fe1fcc3fb56",
      "tree": "581ffb5329981caa8a35e600932f6d0ab325da34",
      "parents": [
        "2cb7549d40852df0b9f9e323e0d31ff5bfcbace7"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Oct 09 21:47:47 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Oct 09 21:47:47 2014"
      },
      "message": "bump version to 0.8.2-dev, refactor debugging, make dryrun cover a bit more code.\n"
    },
    {
      "commit": "2cb7549d40852df0b9f9e323e0d31ff5bfcbace7",
      "tree": "01f6932140b01741b54bc77a958e8567e43fb93b",
      "parents": [
        "24c4b0b54213ffc73602b62d8d90b7bfd6d87748"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Oct 09 20:26:51 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Oct 09 20:26:51 2014"
      },
      "message": "Fix --quiet, bump version to 0.8.1.\n\nAlso fix lint error and fix run wrapper to only try to run\nthe Python3 test if Python3.4 is available.\n"
    },
    {
      "commit": "24c4b0b54213ffc73602b62d8d90b7bfd6d87748",
      "tree": "239d63e3cf78561dedadd86ff67977de5fe1eb55",
      "parents": [
        "63d3fb93dc60eb9c54fb0bf344b704e431c22938"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Oct 09 18:36:35 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Oct 09 18:36:35 2014"
      },
      "message": "Make parallel coverage work and bump version to 0.8.0.\n\nThis also adds the --coverage-show-missing flag, and\nadds hooks for getpid() to host. Trace events now\ncontain the actual pid, as well.\n"
    },
    {
      "commit": "63d3fb93dc60eb9c54fb0bf344b704e431c22938",
      "tree": "618d67059949828181d0d3f343d31fb616847a8a",
      "parents": [
        "a92cb3b572420b67f9af20bea8b6c511dff72fd5"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Oct 09 17:20:41 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Oct 09 17:20:41 2014"
      },
      "message": "fix --debugger in Python3\n"
    },
    {
      "commit": "a92cb3b572420b67f9af20bea8b6c511dff72fd5",
      "tree": "c57baba85f02d2e179d1bc33fef38bfabe2e364a",
      "parents": [
        "a060c99e4061b152ad08ad371ad0941ceefd474b"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Oct 09 17:03:25 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Oct 09 17:03:25 2014"
      },
      "message": "add path, source args to tools/cov and run, to make things cwd-independent\n"
    },
    {
      "commit": "a060c99e4061b152ad08ad371ad0941ceefd474b",
      "tree": "6dd96454b5964d10ae71db3b947f88fbf56012f3",
      "parents": [
        "b73f849f758a0515b66b47162f8ccb0af932e06b"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Oct 09 02:34:58 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Thu Oct 09 02:34:58 2014"
      },
      "message": "rework how coverage works, update coverage annotations\n\nThis switches from using stock coverage to using a custom\nwrapper of the coverage api that lets us customize what\npragmas we use. The new wrapper is in tools/cov.py.\n\nWe recognize the following pragmas:\n\n\u0027no cover\u0027: The default coverage pragma, this now means we\n            truly cannot cover it. In typ, this is reserved for\n            Code that can only executes when not running under coverage.\n\u0027python2\u0027:  Code that can only execute when running under Python2.\n\u0027python3\u0027:  Code that execute when running under Python3.\n\u0027untested\u0027: Code that does not yet have tests.\n\u0027win\u0027:      Code that can only execute on Windows.\n\nIf the existing code is now run under stock coverage, we\u0027ll get reports\nof a lot more uncovered code than we will under cov.py.\n\nWe also rework the \u0027run\u0027 wrapper to use argparse-based subcommands,\nto call out to tools/cov.py to run coverage, and to run coverage and\ntests for both python2 and python3 by default (it requires you to\nhave both in your path).\n\nThis patch also fixes a few Python3-specific regressions.\n"
    },
    {
      "commit": "b73f849f758a0515b66b47162f8ccb0af932e06b",
      "tree": "1d8f8dabb0e63dd316f366939fde54ec7969767e",
      "parents": [
        "97cad25d5528950b64410c45fd5d32fc261195ae"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Wed Oct 08 22:55:26 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Wed Oct 08 23:01:59 2014"
      },
      "message": "Rework the run script to use argparse subcommands\n\nAlso support specifying the pragmas to use in coverage.\n"
    },
    {
      "commit": "97cad25d5528950b64410c45fd5d32fc261195ae",
      "tree": "f80f9704712199b3f56404609eb8a67b4a595802",
      "parents": [
        "f44849e1955b9d4c30f30a329036fe04cb9a2bed"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Wed Oct 08 02:24:59 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Wed Oct 08 02:24:59 2014"
      },
      "message": "remove task for needing to test uploads\n"
    },
    {
      "commit": "f44849e1955b9d4c30f30a329036fe04cb9a2bed",
      "tree": "dc2177c4bfb52eab76e02812ac32a435832105d6",
      "parents": [
        "57d4a44456953fd1af87320bb795b12838296504"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Wed Oct 08 01:20:29 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Wed Oct 08 01:20:29 2014"
      },
      "message": "Add tests for uploading json results.\n"
    },
    {
      "commit": "57d4a44456953fd1af87320bb795b12838296504",
      "tree": "753f8b434267b8074ec3b74b5589fa6d50d8f47d",
      "parents": [
        "b64865ab5564499b95696af801ccdc031abaac45"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Oct 07 19:48:07 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Oct 07 19:48:07 2014"
      },
      "message": "add a test for --write-trace-to\n"
    },
    {
      "commit": "b64865ab5564499b95696af801ccdc031abaac45",
      "tree": "e6f29e9084dcd369f8e394ea62414fcd59109493",
      "parents": [
        "466b43114c73d8ec246e188180062cc07b281b72"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Oct 07 03:32:57 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Oct 07 03:32:57 2014"
      },
      "message": "lint, update coverage suppressions\n"
    },
    {
      "commit": "466b43114c73d8ec246e188180062cc07b281b72",
      "tree": "4009ae5bf95f04b6efaad91b2f872fc0f5d5a08e",
      "parents": [
        "0330b6a82a60eaf04f0234c628c2c9d745308d8c"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Oct 07 03:21:31 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Tue Oct 07 03:26:49 2014"
      },
      "message": "Add more tests for module import failures, edit README a bit.\n"
    },
    {
      "commit": "0330b6a82a60eaf04f0234c628c2c9d745308d8c",
      "tree": "b89f49a604e1226fd30a9f3b05ea891f8e614c9f",
      "parents": [
        "74203582ac1ee7ed7a69eb5ec832fe767cd7a31b"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Mon Oct 06 21:42:25 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Mon Oct 06 21:42:25 2014"
      },
      "message": "Change what coverage reporting reports on by default.\n\nWith this change, we change typ -c so that, by default, we only\nmonitor the python files under the --top-level-dir and any additional\n--paths. Note that this will include paths that are *not* imported\nduring the tests, so that you will be told about files that you missed\ncompletely.\n\nWe also add a --coverage-source argument to allow the user to override\nthe default behavior given above.\n"
    },
    {
      "commit": "74203582ac1ee7ed7a69eb5ec832fe767cd7a31b",
      "tree": "b2a5604f391ae5605c52ff3a2a332728b93c689f",
      "parents": [
        "4fc1e3eafa4fe9f4e0be91a4164d1f5a48dbc20a"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Mon Oct 06 00:28:30 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Mon Oct 06 00:28:30 2014"
      },
      "message": "Merge in fixes and cleanup from work on the custom loader testing.\n\nThis adds a bunch of code to host_fake and reworks the tests in\nmain_test to be more friendly to running with a custom module loader\nthat we could use to run the tests against a fake host without needing\na totally fake unittest loader.\n\nThis does not merge in the custom module loader yet because I\u0027m not\nentirely happy with that code, and it doesn\u0027t work in Python 3.\n"
    },
    {
      "commit": "4fc1e3eafa4fe9f4e0be91a4164d1f5a48dbc20a",
      "tree": "134adf8d106b9a7da1efdfa125d82103baa34d15",
      "parents": [
        "de6b77bb02b1709f798cbfc3097d9c72b02983e9"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Oct 05 00:49:45 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Sun Oct 05 00:49:45 2014"
      },
      "message": "make typ work w/ Python3\n"
    },
    {
      "commit": "de6b77bb02b1709f798cbfc3097d9c72b02983e9",
      "tree": "811a68ecbc2a1cdff5e07874365e5c32c61183e6",
      "parents": [
        "23f78dfabd2c8ce8ed8d14230c262a6fd2fefd44"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Oct 03 21:26:36 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Oct 03 21:26:36 2014"
      },
      "message": "fix type conversion in ArgumentParser.optparse_options()\n"
    },
    {
      "commit": "23f78dfabd2c8ce8ed8d14230c262a6fd2fefd44",
      "tree": "8899f9637c436ce0126d1d8170e3938613bdb92a",
      "parents": [
        "d7c06433d89e7a0c7fe0810e84d5c33c157490d7"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Oct 03 20:55:48 2014"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@chromium.org",
        "time": "Fri Oct 03 20:55:48 2014"
      },
      "message": "clean up run, setup.py, but packaging might be broken\n"
    }
  ],
  "next": "d7c06433d89e7a0c7fe0810e84d5c33c157490d7"
}
