)]}'
{
  "log": [
    {
      "commit": "24180eac5085ba7eda1bbe2fb1ed264cb6ed6df1",
      "tree": "dd5bbaf84e201b42cfe86769e19ba26ede6cf506",
      "parents": [
        "b83968e022229385ef5fe3ddae6c2e521dbe80e6"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Fri Nov 04 08:08:26 2016 -0700"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Fri Nov 04 08:08:26 2016 -0700"
      },
      "message": "Fix typo!\n\nThis typo would cause the error message to be lost, which is suboptimal\n"
    },
    {
      "commit": "b83968e022229385ef5fe3ddae6c2e521dbe80e6",
      "tree": "11b898455cdafab7a1189768754557bc4c4dc6aa",
      "parents": [
        "f2b265e1e3bdca990dae441ba81db0a1bde1df10"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Thu Nov 03 09:45:31 2016 -0700"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Thu Nov 03 09:45:31 2016 -0700"
      },
      "message": "Cleaner error message for unable to bind-- instead of trying to start something which doesn\u0027t exist\n"
    },
    {
      "commit": "f2b265e1e3bdca990dae441ba81db0a1bde1df10",
      "tree": "56de1eccc877578e1a0c40ec07544d3ee334135b",
      "parents": [
        "7e99eb3802d052d7eca87b3b9fb94f9008dc940b"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Thu Nov 03 09:39:50 2016 -0700"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Thu Nov 03 09:41:41 2016 -0700"
      },
      "message": "Add error to startup of DynamicHTTPEndpointCase\n"
    },
    {
      "commit": "7e99eb3802d052d7eca87b3b9fb94f9008dc940b",
      "tree": "f1e4584eefbd690eee4af1a8324187e5ba168a25",
      "parents": [
        "4da5042ee25a0a5033b1418ae46cb3d3dbf1ed65"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Nov 01 08:39:46 2016 -0700"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Wed Nov 02 09:44:35 2016 -0700"
      },
      "message": "Add example case using feature_requirements\n"
    },
    {
      "commit": "4da5042ee25a0a5033b1418ae46cb3d3dbf1ed65",
      "tree": "6e1a2027fd70304a7b0e92a122c625c15a0ae013",
      "parents": [
        "28770e1a9865458489a1fad9d4f5b9f1429cd703"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Nov 01 08:31:47 2016 -0700"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Wed Nov 02 09:44:35 2016 -0700"
      },
      "message": "Refactor of test_cases to split EnvironmentFactory out of the base class\n\nNow that we have the pieces in place to support introspection into ATS there is no need to build ATS for each test run (which is a HUGE perf gain). So instead of breaking compatability I\u0027m refactoring the test_cases to have a shared base class and then one for EnvironmentFactory (for backwards compat) and one for CloneEnvironmentCase (which will be the new default)\n"
    },
    {
      "commit": "28770e1a9865458489a1fad9d4f5b9f1429cd703",
      "tree": "ad30014f89a2fa914a887852a6b442c4ecf65fdf",
      "parents": [
        "0ee56836edbcc7e7f8d4ce70b5c91b5158768338"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Nov 01 08:34:54 2016 -0700"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Wed Nov 02 09:44:35 2016 -0700"
      },
      "message": "Add support for `features` within traffic_layout\n\ntraffic_layout now supports returning the features it was built with as a\nJSON string. We can now expose that as a method on the environment so\nusers can check against the capabilities of the build before testing\n"
    },
    {
      "commit": "0ee56836edbcc7e7f8d4ce70b5c91b5158768338",
      "tree": "d359a01d047a373822daf761609602ab159174ba",
      "parents": [
        "ba4179b871f168f9727914b3788c0aff0345bfa5"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Mon Oct 31 21:13:21 2016 -0700"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Wed Nov 02 09:44:35 2016 -0700"
      },
      "message": "Code formatting (for ease of reading)\n"
    },
    {
      "commit": "ba4179b871f168f9727914b3788c0aff0345bfa5",
      "tree": "c19fd7425138d9df0f7b0476320b8392bdaf026a",
      "parents": [
        "f3e71b162b99493d0123eb1872e2bdfe1e541904"
      ],
      "author": {
        "name": "James Peach",
        "email": "jpeach@apache.org",
        "time": "Mon Apr 18 20:26:52 2016 -0700"
      },
      "committer": {
        "name": "James Peach",
        "email": "jpeach@apache.org",
        "time": "Mon Apr 18 20:26:52 2016 -0700"
      },
      "message": "Remove whitespace.\n"
    },
    {
      "commit": "f3e71b162b99493d0123eb1872e2bdfe1e541904",
      "tree": "35168be01a41671c665691fb9af7e98ef510fecb",
      "parents": [
        "e9e451a1b591af1c8bf8b3b86861fb9e9fe6f2c8"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj@apache.org",
        "time": "Mon Apr 11 22:07:53 2016 -0700"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj@apache.org",
        "time": "Mon Apr 11 22:07:53 2016 -0700"
      },
      "message": "add `build_dir` parameter to EnvironmentFactory\n\nThis allows us to use a build_dir more than once, to leverage previously compiled files. This is immensely helpful for iterating on builds locally-- so we don\u0027t have to rebuild the world\n"
    },
    {
      "commit": "e9e451a1b591af1c8bf8b3b86861fb9e9fe6f2c8",
      "tree": "3f3517f4d335fdf565b7c379ff0236be29268971",
      "parents": [
        "4b71a0cab92e1483895b08b1c2208fac68613c7f"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj@apache.org",
        "time": "Thu Oct 22 17:38:01 2015 -0700"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj@apache.org",
        "time": "Thu Oct 22 17:38:01 2015 -0700"
      },
      "message": "Correct environment variable documentation\n"
    },
    {
      "commit": "4b71a0cab92e1483895b08b1c2208fac68613c7f",
      "tree": "04ed2df15a61cb285b97925b3aafd94c40e6d119",
      "parents": [
        "508bd475e8adc2ecebf2bf222ac9ce708c1c7ead"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj@apache.org",
        "time": "Thu Oct 22 17:36:50 2015 -0700"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj@apache.org",
        "time": "Thu Oct 22 17:36:50 2015 -0700"
      },
      "message": "Fix typo\n"
    },
    {
      "commit": "508bd475e8adc2ecebf2bf222ac9ce708c1c7ead",
      "tree": "cd2ce67a0cd439f97836b63a93cfe7879e1a63b0",
      "parents": [
        "8acbcafed8f361228de6f09f819e311823c988af"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Sat Aug 01 10:30:33 2015 -0700"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Sat Aug 01 10:30:33 2015 -0700"
      },
      "message": "Add backwards compatibility to rename of autoconf_port in tsqa\n"
    },
    {
      "commit": "8acbcafed8f361228de6f09f819e311823c988af",
      "tree": "e8c0f48614b7cdb40848f3fee8df4c44a681f2ba",
      "parents": [
        "c9de8b8c675bf71f281bb4324b95a8c91210cf6e"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj@apache.org",
        "time": "Wed Jun 24 13:06:50 2015 -0700"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj@apache.org",
        "time": "Wed Jun 24 13:06:50 2015 -0700"
      },
      "message": "Rename synthetic port due to @zwoop\u0027s change of the option name\n"
    },
    {
      "commit": "c9de8b8c675bf71f281bb4324b95a8c91210cf6e",
      "tree": "d087a18ebb083e102fca409f61bdef76eb62e685",
      "parents": [
        "5aee948228f36bf05a5a6b39e5df0fd26f96c693"
      ],
      "author": {
        "name": "Feifei Cai",
        "email": "ffcai@yahoo-inc.com",
        "time": "Fri Jun 05 08:05:57 2015 +0000"
      },
      "committer": {
        "name": "Feifei Cai",
        "email": "ffcai@yahoo-inc.com",
        "time": "Fri Jun 05 08:05:57 2015 +0000"
      },
      "message": "fix the env setting of LD_LIBRARY_PATH/DYLD_LIBRARY_PATH\n"
    },
    {
      "commit": "5aee948228f36bf05a5a6b39e5df0fd26f96c693",
      "tree": "52322a8fdff17ce0934792573717726d519db42c",
      "parents": [
        "c4cc4186684a4f997e775dc747618f65b2753d02"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj@apache.org",
        "time": "Wed May 13 14:45:10 2015 -0700"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj@apache.org",
        "time": "Wed May 13 14:45:28 2015 -0700"
      },
      "message": "Add support for symlinks in the top level skeleton directory\n"
    },
    {
      "commit": "c4cc4186684a4f997e775dc747618f65b2753d02",
      "tree": "0cd9e19630c5b81c946522f52294351923ec5bea",
      "parents": [
        "9ba51c9a2f0c64abf2cd617cb69963626c1e4835"
      ],
      "author": {
        "name": "James Peach",
        "email": "jpeach@apache.org",
        "time": "Mon May 11 10:03:05 2015 -0700"
      },
      "committer": {
        "name": "James Peach",
        "email": "jpeach@apache.org",
        "time": "Mon May 11 10:03:05 2015 -0700"
      },
      "message": "Make the ./run script executable\n"
    },
    {
      "commit": "9ba51c9a2f0c64abf2cd617cb69963626c1e4835",
      "tree": "7095b297973a08d049d9f18c77aa23759fc07c2f",
      "parents": [
        "4baa3a0aaddc502960a6c1f69b16eae67037e1a9"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj@apache.org",
        "time": "Thu Apr 30 16:31:49 2015 -0700"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj@apache.org",
        "time": "Thu Apr 30 16:31:49 2015 -0700"
      },
      "message": "Add info messages for build start/complete\n"
    },
    {
      "commit": "4baa3a0aaddc502960a6c1f69b16eae67037e1a9",
      "tree": "3e8bb7552bcc6d03b86a2ea66be83bd0acba0ce9",
      "parents": [
        "12e3fa62b05b0e354cc69ff6259db75f4bc07dae"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj@apache.org",
        "time": "Thu Apr 30 16:26:06 2015 -0700"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj@apache.org",
        "time": "Thu Apr 30 16:26:06 2015 -0700"
      },
      "message": "Correct debug output of builds\n"
    },
    {
      "commit": "12e3fa62b05b0e354cc69ff6259db75f4bc07dae",
      "tree": "6eb5f28fca584d52c4aa4ff1876a434f409f6629",
      "parents": [
        "37f87d70bdea70385bbf0c923e88128cb343bc87"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj@apache.org",
        "time": "Thu Apr 30 15:58:02 2015 -0700"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj@apache.org",
        "time": "Thu Apr 30 15:58:02 2015 -0700"
      },
      "message": "Stop doing distclean between builds. This will significantly reduce build times\n"
    },
    {
      "commit": "37f87d70bdea70385bbf0c923e88128cb343bc87",
      "tree": "9e1dbf9f909ae515b11e5330e4ca4bdf7b96e337",
      "parents": [
        "3ed1bcd90455b90450f9e1c40c65cafdce8e09cf"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj@apache.org",
        "time": "Thu Apr 30 13:25:21 2015 -0700"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj@apache.org",
        "time": "Thu Apr 30 13:25:21 2015 -0700"
      },
      "message": "Allow for directory overrides\n"
    },
    {
      "commit": "3ed1bcd90455b90450f9e1c40c65cafdce8e09cf",
      "tree": "7c458f51f1237abb83376807b327b1d21b467e7f",
      "parents": [
        "0529e05d232e35bf99f76b23787b1b1e43046cab"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj@apache.org",
        "time": "Fri Apr 10 17:02:43 2015 -0700"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj@apache.org",
        "time": "Fri Apr 10 17:02:43 2015 -0700"
      },
      "message": "If debug level, leave the output to go through stdout and stderr instead of capturing it\n"
    },
    {
      "commit": "0529e05d232e35bf99f76b23787b1b1e43046cab",
      "tree": "3d7383455a8e23fa4a7b13e6f0c93ef924a2a01a",
      "parents": [
        "6b2d7bbe6b6b0d77024165bc5254b205a9e8f8bd"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj@apache.org",
        "time": "Fri Apr 10 17:02:31 2015 -0700"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj@apache.org",
        "time": "Fri Apr 10 17:02:31 2015 -0700"
      },
      "message": "Deprecate the old endpoint_url method\n"
    },
    {
      "commit": "6b2d7bbe6b6b0d77024165bc5254b205a9e8f8bd",
      "tree": "a895c1ab423cceedc6778759277a7276a7e797f8",
      "parents": [
        "0e32055538545bfe58ab83b7c0f57cba46ac9ed3"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj@apache.org",
        "time": "Fri Apr 10 16:24:22 2015 -0700"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj@apache.org",
        "time": "Fri Apr 10 16:24:22 2015 -0700"
      },
      "message": "Refactor endpoint and add tests\n"
    },
    {
      "commit": "0e32055538545bfe58ab83b7c0f57cba46ac9ed3",
      "tree": "1388ca8a425add3f30f3494f21f65e12ec20bae2",
      "parents": [
        "1e7b648b3ed9210c0ac1f4310cfc1677b154bbfb"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj@apache.org",
        "time": "Fri Apr 10 14:53:08 2015 -0700"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj@apache.org",
        "time": "Fri Apr 10 14:53:08 2015 -0700"
      },
      "message": "Cleanup of DynamicHTTPEndpoint\n\nThis makes the tracking data a private variable, in addition this moves the \"url\" method down into the endpoint-- instead of in the test case class\n"
    },
    {
      "commit": "1e7b648b3ed9210c0ac1f4310cfc1677b154bbfb",
      "tree": "0fd2d945cb1bdedf2bef7d41485b05ef290498b0",
      "parents": [
        "ed2281264d1cc7dbb468e60fbd8ebb289ec5a242"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj@apache.org",
        "time": "Thu Apr 09 12:23:07 2015 -0700"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj@apache.org",
        "time": "Thu Apr 09 12:23:07 2015 -0700"
      },
      "message": "Fix syntax and missing imports\n"
    },
    {
      "commit": "ed2281264d1cc7dbb468e60fbd8ebb289ec5a242",
      "tree": "9da694316bb1e458423938577f7aa3df28eefa3e",
      "parents": [
        "9e99c096d7147b4253f3ba210b079d3ea265573b"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj@apache.org",
        "time": "Wed Apr 08 13:14:46 2015 -0700"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj@apache.org",
        "time": "Wed Apr 08 13:14:46 2015 -0700"
      },
      "message": "Normalize the path to an absolute path.\n\nSince we are doing symlinking of the items in bindir we need to know the absolute path\n"
    },
    {
      "commit": "9e99c096d7147b4253f3ba210b079d3ea265573b",
      "tree": "6f5c16f6d626ca6702c83a958c6bc0e4a454a0ea",
      "parents": [
        "5a74e467c48e6570683990422ed2866d1ec73522"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj@apache.org",
        "time": "Tue Apr 07 16:55:32 2015 -0700"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj@apache.org",
        "time": "Tue Apr 07 16:58:23 2015 -0700"
      },
      "message": "Add HTTPBinCase (http://httpbin.org/)\n\nThis embeds the httpbin wsgi app into the tracking information that we have for the DynamicHTTPEndpoint. For most cases this will be preferable-- since it requires less setup.\n"
    },
    {
      "commit": "5a74e467c48e6570683990422ed2866d1ec73522",
      "tree": "ca59c2df499992cf591e080d6371c4c0f38ff2a3",
      "parents": [
        "c04800889b24435d2e5d07d9894fa33381d97cdd"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj@apache.org",
        "time": "Mon Apr 06 14:27:49 2015 -0700"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj@apache.org",
        "time": "Mon Apr 06 14:27:49 2015 -0700"
      },
      "message": "Fix log level setting\n\nOther misc cleanup.\n"
    },
    {
      "commit": "c04800889b24435d2e5d07d9894fa33381d97cdd",
      "tree": "b9ed0967dc50241472096235255ac5cac5046383",
      "parents": [
        "127fb83b0f96f451049547da1a99d3c2c2180397"
      ],
      "author": {
        "name": "James Peach",
        "email": "jpeach@apache.org",
        "time": "Tue Mar 03 20:53:02 2015 -0800"
      },
      "committer": {
        "name": "James Peach",
        "email": "jpeach@apache.org",
        "time": "Tue Mar 03 20:54:54 2015 -0800"
      },
      "message": "Add the config to the environment index for debugging\n"
    },
    {
      "commit": "127fb83b0f96f451049547da1a99d3c2c2180397",
      "tree": "6d37d6fe17a550a085509d12ff74f8543f8cf897",
      "parents": [
        "02f9b070f29c5bc1414394a7ebcfc5f732683a56"
      ],
      "author": {
        "name": "James Peach",
        "email": "jpeach@apache.org",
        "time": "Tue Mar 03 20:52:23 2015 -0800"
      },
      "committer": {
        "name": "James Peach",
        "email": "jpeach@apache.org",
        "time": "Tue Mar 03 20:54:49 2015 -0800"
      },
      "message": "Use MD5 hash to ID an environment\n"
    },
    {
      "commit": "02f9b070f29c5bc1414394a7ebcfc5f732683a56",
      "tree": "d1bbb0f90fcdbab96ccdc5342d7c2507932a2d98",
      "parents": [
        "1eb2e71eb6f7810cf1b68859b4750faeba7b1ece"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj@apache.org",
        "time": "Thu Feb 19 16:37:01 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj@apache.org",
        "time": "Thu Feb 19 16:37:01 2015 -0800"
      },
      "message": "Fix failed tests not leaving the environment around\n"
    },
    {
      "commit": "1eb2e71eb6f7810cf1b68859b4750faeba7b1ece",
      "tree": "b897c12f6a8c5425395dc0342c555cbabaef7574",
      "parents": [
        "80581888dc5b94dd50f442d983202e0d13d54ccc"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Fri Feb 06 17:16:42 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Feb 10 13:54:08 2015 -0800"
      },
      "message": "Cleanup of the basic tests that exist.\n\nChange assert() to assertEqual\n"
    },
    {
      "commit": "80581888dc5b94dd50f442d983202e0d13d54ccc",
      "tree": "52902660fc5c7e61ffb87d77e9441a30064128d8",
      "parents": [
        "c5b0498032adf866f548ae8db2a699ba7113a187"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Fri Feb 06 17:03:15 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Feb 10 13:54:08 2015 -0800"
      },
      "message": "Add examples to document various test classes\n"
    },
    {
      "commit": "c5b0498032adf866f548ae8db2a699ba7113a187",
      "tree": "07a6cdff5a6b4187bb7d104d70e111690bf53e99",
      "parents": [
        "ee89895d4a37125769534db86733729421289299"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Fri Feb 06 16:02:53 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Feb 10 13:54:08 2015 -0800"
      },
      "message": "Cleanup/add documentation to the main classes in the python source\n"
    },
    {
      "commit": "ee89895d4a37125769534db86733729421289299",
      "tree": "dbda047ac0abeec772283135461478a5191966d4",
      "parents": [
        "1bfad94b7066d0f794fb23d8b504fe9fdd547c8b"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Fri Feb 06 15:31:39 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Fri Feb 06 15:31:39 2015 -0800"
      },
      "message": "Apache license for all the files\n"
    },
    {
      "commit": "1bfad94b7066d0f794fb23d8b504fe9fdd547c8b",
      "tree": "8e831e2c5ab7ea81f59ededdaf7f040c74e58a1c",
      "parents": [
        "5f3f5fb2a1615fa7eec34b22bd6b481ce256bec2"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Fri Feb 06 15:27:22 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Fri Feb 06 15:27:22 2015 -0800"
      },
      "message": "Restructure docs\n"
    },
    {
      "commit": "5f3f5fb2a1615fa7eec34b22bd6b481ce256bec2",
      "tree": "92441b55901387795f11ea50ef3495b37531aa77",
      "parents": [
        "4a6eac15fc31ec7e0b17914450673b88d53d7db9"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Wed Jan 28 20:04:42 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Wed Jan 28 20:04:42 2015 -0800"
      },
      "message": "Add negative cachine to EnvironmentFactory\n\nPreviously if there was a failed build requested N times we would attempt to build N times, instead of remembering that it failed. This adds a negative cache that is in memory only\n"
    },
    {
      "commit": "4a6eac15fc31ec7e0b17914450673b88d53d7db9",
      "tree": "c39e6d511468148989a58e8623d4f140596a2dc8",
      "parents": [
        "615ccb2fe0165c127f200411ff76a82c12ee6d94"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Jan 27 15:51:06 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Jan 27 15:51:06 2015 -0800"
      },
      "message": "Re-enable full check\n"
    },
    {
      "commit": "615ccb2fe0165c127f200411ff76a82c12ee6d94",
      "tree": "c09780425878ab3c954c6ad1647ffd6b202193b4",
      "parents": [
        "b9d980e1b1e56248950d011b259fbaad8a0320bb"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Jan 27 15:50:24 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Jan 27 15:50:24 2015 -0800"
      },
      "message": "Add some more debugging options\n"
    },
    {
      "commit": "b9d980e1b1e56248950d011b259fbaad8a0320bb",
      "tree": "58062c582200da5b06fe94d437f1fe439d4b3f7b",
      "parents": [
        "67dc45a2b2b1cb36f31a578c41178351b7bf5757"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Jan 27 15:43:30 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Jan 27 15:43:30 2015 -0800"
      },
      "message": "re-enable no change uid\n"
    },
    {
      "commit": "67dc45a2b2b1cb36f31a578c41178351b7bf5757",
      "tree": "8b3cd346785f3758abbe13d85a6a994cdd6d9a8c",
      "parents": [
        "692d1d83d1eb731ef144d9072f6732fc78427b99"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Jan 27 15:39:09 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Jan 27 15:39:09 2015 -0800"
      },
      "message": "Switch back to traffic_cop\n"
    },
    {
      "commit": "692d1d83d1eb731ef144d9072f6732fc78427b99",
      "tree": "d65605d64523adb716dcdd5c6823ad2283827a8d",
      "parents": [
        "7339d9e68a56e520c9dcdcb8eb71f085e2530e6b"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Jan 27 15:26:11 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Jan 27 15:26:11 2015 -0800"
      },
      "message": "Add Mac support to shell_env()\n"
    },
    {
      "commit": "7339d9e68a56e520c9dcdcb8eb71f085e2530e6b",
      "tree": "b7e7a0ac6a3350d93f0c1d93d75c94b6e952ba2c",
      "parents": [
        "2c0bfaf4cca2b0ee5a2dab73366f0d1fa933e944"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Jan 27 15:20:33 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Jan 27 15:20:33 2015 -0800"
      },
      "message": "Limit make -j to num CPUs\n"
    },
    {
      "commit": "2c0bfaf4cca2b0ee5a2dab73366f0d1fa933e944",
      "tree": "5596df758e34f102a4ff0caef52ed0e2c296666e",
      "parents": [
        "9bc0c2ffe6530653008739fd412dd4aae1197aa1"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Mon Jan 26 15:11:45 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Mon Jan 26 15:12:51 2015 -0800"
      },
      "message": "Cleanup readme\n"
    },
    {
      "commit": "9bc0c2ffe6530653008739fd412dd4aae1197aa1",
      "tree": "fd97b4a6188a2b30e474a1a4bfe25c1119672c7d",
      "parents": [
        "6c5e66c41736a2c0259bd705d417513e8a4089f8"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Fri Jan 23 15:49:44 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Fri Jan 23 15:49:44 2015 -0800"
      },
      "message": "More careful about traffic_cop stopping\n"
    },
    {
      "commit": "6c5e66c41736a2c0259bd705d417513e8a4089f8",
      "tree": "38967962c0035fb1a2b29e58e0774bfc50929402",
      "parents": [
        "8987fca2d748ce534ac279347d43a7f7ed965a12"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Fri Jan 23 15:43:57 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Fri Jan 23 15:43:57 2015 -0800"
      },
      "message": "Switch back to traffic_server for now\n"
    },
    {
      "commit": "8987fca2d748ce534ac279347d43a7f7ed965a12",
      "tree": "4c2e9c4ee9e071c8bf4c13e2e476f59785ae2af9",
      "parents": [
        "015ef82f06b179ca85c4f018140243a0da57edf8"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Fri Jan 23 15:26:45 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Fri Jan 23 15:26:45 2015 -0800"
      },
      "message": "Allow HTTPEndpoint cases to set the port #\n"
    },
    {
      "commit": "015ef82f06b179ca85c4f018140243a0da57edf8",
      "tree": "e194fbb7ccddba3ce198c8af6891e2eb3c42c54d",
      "parents": [
        "b7fd08b24b5f5ecce653f94614a4fa0bc2346d2e"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Fri Jan 23 15:08:51 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Fri Jan 23 15:08:51 2015 -0800"
      },
      "message": "Cleanup logging\n"
    },
    {
      "commit": "b7fd08b24b5f5ecce653f94614a4fa0bc2346d2e",
      "tree": "43394d958f1c3fe2ef6b5d3e1a7725290ea0beba",
      "parents": [
        "fca61380f2a82874b2686c151b3ad94b49fe99dd"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Fri Jan 23 14:38:12 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Fri Jan 23 14:38:12 2015 -0800"
      },
      "message": "Add some misc fixes\n"
    },
    {
      "commit": "fca61380f2a82874b2686c151b3ad94b49fe99dd",
      "tree": "f85f5b736b47ae62ce29817c084ac335a9dd5561",
      "parents": [
        "936281403c38c6c3d502d8e57c684fd9f96c219f"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Thu Jan 22 17:11:08 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Thu Jan 22 17:14:05 2015 -0800"
      },
      "message": "Add nicer defaults to run_sync_command\n"
    },
    {
      "commit": "936281403c38c6c3d502d8e57c684fd9f96c219f",
      "tree": "0b3a110a01f33b5f0993ba214efce0d72deeaf9b",
      "parents": [
        "9e8a082ad1ddecfaf535f17e821256924467c9ee"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Thu Jan 22 17:10:56 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Thu Jan 22 17:10:56 2015 -0800"
      },
      "message": "Clean up open() to be more pythonic\n"
    },
    {
      "commit": "9e8a082ad1ddecfaf535f17e821256924467c9ee",
      "tree": "7b7d703f131a57d7142873ef9530fe5e7733750a",
      "parents": [
        "80b147a92c9ff8a28f559cfaed0af30f40aaa704"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Thu Jan 22 17:07:05 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Thu Jan 22 17:07:05 2015 -0800"
      },
      "message": "Fix timeout problems with traffic_manager\n"
    },
    {
      "commit": "80b147a92c9ff8a28f559cfaed0af30f40aaa704",
      "tree": "ab270f9c3b4b3656e48b37aba3bc73b0ae9ccd46",
      "parents": [
        "358c86b03fdb9db305d823078dd4751aaadec586"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Thu Jan 22 15:10:17 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Thu Jan 22 15:11:48 2015 -0800"
      },
      "message": "Symlink in the binaries from the bindir.\n\nThis will speed up environment cloning and save a lot of disk space. In addition it leaves the test environment with a directory that looks like it should\n"
    },
    {
      "commit": "358c86b03fdb9db305d823078dd4751aaadec586",
      "tree": "293e87ba1d6ef975ce4b4cc5cb35865fca36ede8",
      "parents": [
        "498fdda5b3155d8d9a7c7d2d9c850d22826d942b"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Thu Jan 22 14:48:35 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Thu Jan 22 14:48:35 2015 -0800"
      },
      "message": "Switch to traffic_cop\n"
    },
    {
      "commit": "498fdda5b3155d8d9a7c7d2d9c850d22826d942b",
      "tree": "3710e50ff115f9cb2d4ed543cbcf5aa6badbe0eb",
      "parents": [
        "1ceb4382d3709c872a37fa411cd56b496240376c"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Wed Jan 21 18:54:50 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Wed Jan 21 18:54:50 2015 -0800"
      },
      "message": "Add TCP socket servers\n"
    },
    {
      "commit": "1ceb4382d3709c872a37fa411cd56b496240376c",
      "tree": "ab34fabd8098bbf87594d80aba73fb712b7c22f8",
      "parents": [
        "01f56d5aab45cc3df91eea7c2276503391b01088"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Fri Jan 16 19:17:12 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Fri Jan 16 19:17:12 2015 -0800"
      },
      "message": "Add \u0027_\u0027 to blacklisted env vars\n"
    },
    {
      "commit": "01f56d5aab45cc3df91eea7c2276503391b01088",
      "tree": "90b889651c288074de5735d345b0ee744f331192",
      "parents": [
        "bf84255a6c2c78cf228a83e3e730be1b4fa2a3df",
        "9def2fb97b17b88357c2969d9aaf3242008a8cd4"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Thu Jan 15 08:09:13 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Thu Jan 15 08:09:13 2015 -0800"
      },
      "message": "Merge pull request #3 from bellofreedom/kangli_fix_typo\n\nfix typo"
    },
    {
      "commit": "9def2fb97b17b88357c2969d9aaf3242008a8cd4",
      "tree": "90b889651c288074de5735d345b0ee744f331192",
      "parents": [
        "bf84255a6c2c78cf228a83e3e730be1b4fa2a3df"
      ],
      "author": {
        "name": "kangli",
        "email": "kangli@yahoo-inc.com",
        "time": "Thu Jan 15 08:49:14 2015 +0000"
      },
      "committer": {
        "name": "kangli",
        "email": "kangli@yahoo-inc.com",
        "time": "Thu Jan 15 08:49:14 2015 +0000"
      },
      "message": "fix typo\n"
    },
    {
      "commit": "bf84255a6c2c78cf228a83e3e730be1b4fa2a3df",
      "tree": "3213bb8355f0e4f39144bdd54eee4b6d012f61d5",
      "parents": [
        "43abdb0708654ab4dc634a2a11b54517a2c42406"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Wed Jan 14 16:31:29 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Wed Jan 14 16:46:57 2015 -0800"
      },
      "message": "Add a distclean on each reconfigure\n"
    },
    {
      "commit": "43abdb0708654ab4dc634a2a11b54517a2c42406",
      "tree": "79bb7cb4c85f496333d309d1722a0c51b456359f",
      "parents": [
        "84280a83cbfa449e9c53c9fdbf21f6f6b302b20f"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Wed Jan 14 16:29:26 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Wed Jan 14 16:29:26 2015 -0800"
      },
      "message": "Fix bug, negative logic :(\n"
    },
    {
      "commit": "84280a83cbfa449e9c53c9fdbf21f6f6b302b20f",
      "tree": "c70c93fc5ecb9f090216d3de54a92d3aa5ff5d68",
      "parents": [
        "5044dd418a70788caa7d704017f18258578ce567"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Wed Jan 14 15:57:32 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Wed Jan 14 15:57:32 2015 -0800"
      },
      "message": "Actually call the environment.running() func\n"
    },
    {
      "commit": "5044dd418a70788caa7d704017f18258578ce567",
      "tree": "aae28fe9589241d5158a5ed58d2919c4f1ee6f9d",
      "parents": [
        "733ed1b7a3c23033530211d63073d9fcffe59599"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Mon Jan 12 10:52:18 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Mon Jan 12 10:52:18 2015 -0800"
      },
      "message": "For all paths that are added in the default endpoint\n"
    },
    {
      "commit": "733ed1b7a3c23033530211d63073d9fcffe59599",
      "tree": "86dcf9650150c7be6020ca431778d164ce5f1b56",
      "parents": [
        "f4d146dbcc20364ba02038fc11c73a62df2ea872"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Fri Jan 09 14:53:47 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Fri Jan 09 14:53:47 2015 -0800"
      },
      "message": "Make endpoint handle all http methods\n"
    },
    {
      "commit": "f4d146dbcc20364ba02038fc11c73a62df2ea872",
      "tree": "c15e73abcadc27fbf00d827be7a82a7ed1dbf6dc",
      "parents": [
        "9193ee6b12c372ca8cf4a62c4c4aa70a47e3629c"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Fri Jan 09 13:02:08 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Fri Jan 09 13:02:08 2015 -0800"
      },
      "message": "Don\u0027t tear down test env on object deletion\n"
    },
    {
      "commit": "9193ee6b12c372ca8cf4a62c4c4aa70a47e3629c",
      "tree": "84094d69d89dca991c59661310990bf82754449c",
      "parents": [
        "4e51f73a33dd91591f172d2335364d53c8d86fd3"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Fri Jan 09 10:14:54 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Fri Jan 09 10:14:54 2015 -0800"
      },
      "message": "Fix typo\n"
    },
    {
      "commit": "4e51f73a33dd91591f172d2335364d53c8d86fd3",
      "tree": "feaa9489f165fee22019040c2fdfecd05bb317a5",
      "parents": [
        "3047c3c4a40aa69df7b7e00b8d9debb79abb88d2"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Thu Jan 08 19:14:18 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Thu Jan 08 19:14:18 2015 -0800"
      },
      "message": "Don\u0027t destroy env on test failure\n\nAnd add some docs and misc cleanup\n"
    },
    {
      "commit": "3047c3c4a40aa69df7b7e00b8d9debb79abb88d2",
      "tree": "51e4289a38d453c9b9217c87daf9f8d401fe60be",
      "parents": [
        "aa999b5494af1f295b0bfb5b7d51543994497dc3"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Jan 06 18:15:49 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Jan 06 18:15:49 2015 -0800"
      },
      "message": "Remove unused var\n"
    },
    {
      "commit": "aa999b5494af1f295b0bfb5b7d51543994497dc3",
      "tree": "cfb4340929b88863801d8e476856678fe541beb6",
      "parents": [
        "b1272f3fa0382c8c5140e11eae921e56a4a4ff64"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Jan 06 18:15:36 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Jan 06 18:15:36 2015 -0800"
      },
      "message": "Support files in the layout root\n"
    },
    {
      "commit": "b1272f3fa0382c8c5140e11eae921e56a4a4ff64",
      "tree": "5bbd736a1a27bcff7a46e7510b658be12694866d",
      "parents": [
        "adc6aab343ea2432d47b902ae6fdd60d5babbf05"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Jan 06 18:15:22 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Jan 06 18:15:22 2015 -0800"
      },
      "message": "Add log\n"
    },
    {
      "commit": "adc6aab343ea2432d47b902ae6fdd60d5babbf05",
      "tree": "e53a807cbe8b80f96081e7eefb22ea0bf0a8d5f4",
      "parents": [
        "04c3ab6ec8b61165b54c7d0a8da67593740f1a1c"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Jan 06 14:57:19 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Jan 06 14:57:19 2015 -0800"
      },
      "message": "Cleanup\n"
    },
    {
      "commit": "04c3ab6ec8b61165b54c7d0a8da67593740f1a1c",
      "tree": "2b161eccf4a750202d7fb2adf9c776b73501dc90",
      "parents": [
        "71fa4c145fdf6a06e895033dd16b888ea711019c"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Jan 06 13:30:23 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Jan 06 13:30:23 2015 -0800"
      },
      "message": "Cleanup config interfaces\n\n    - Add \"add_line\" and \"add_lines\" to config classes\n    - auto-load all configs in layout.sysconfigdir for all environment cases\n    - auto-save all configs in environment case after setUpEnv()\n"
    },
    {
      "commit": "71fa4c145fdf6a06e895033dd16b888ea711019c",
      "tree": "b728ad7b57ad82f3c657242fd17833f0b29f1529",
      "parents": [
        "673d4df968a428cf7c4f65d8659910d456b1307b"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Mon Jan 05 19:02:49 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Mon Jan 05 19:02:49 2015 -0800"
      },
      "message": "Misc logging cleanup\n"
    },
    {
      "commit": "673d4df968a428cf7c4f65d8659910d456b1307b",
      "tree": "810b04bd401a894a145ec071a8c7949dd04ef2a0",
      "parents": [
        "32fc37c16d6b3cf1a3aefa5231803e3d8a868d78",
        "a502d378bd9eca7df0c9b1107d5d789bdbd5da81"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Mon Jan 05 18:18:49 2015 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Mon Jan 05 18:18:49 2015 -0800"
      },
      "message": "Merge pull request #2 from duderino/master\n\nAdded logging (python logging module) and replace sleeps with port polling"
    },
    {
      "commit": "a502d378bd9eca7df0c9b1107d5d789bdbd5da81",
      "tree": "810b04bd401a894a145ec071a8c7949dd04ef2a0",
      "parents": [
        "32fc37c16d6b3cf1a3aefa5231803e3d8a868d78"
      ],
      "author": {
        "name": "Joshua Blatt",
        "email": "blattj@yahoo-inc.com",
        "time": "Mon Dec 29 11:04:51 2014 -0800"
      },
      "committer": {
        "name": "Joshua Blatt",
        "email": "blattj@yahoo-inc.com",
        "time": "Mon Dec 29 11:04:51 2014 -0800"
      },
      "message": "Replaced sleeps with port polling.\n"
    },
    {
      "commit": "32fc37c16d6b3cf1a3aefa5231803e3d8a868d78",
      "tree": "d07a9219c00b3e3e633e316dc50e74fb3aeca03b",
      "parents": [
        "8ec663035c0fd413e86a92ad9715cc204e9f89d0"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Dec 23 16:50:43 2014 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Dec 23 16:50:43 2014 -0800"
      },
      "message": "Add mechanism to set configure flags from test case\n"
    },
    {
      "commit": "8ec663035c0fd413e86a92ad9715cc204e9f89d0",
      "tree": "64c37709bb274d5c5dff4c07a7124388c11a36d9",
      "parents": [
        "09431178146d618bfb251dee7b0acf9d92f72dff"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Dec 23 16:33:22 2014 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Dec 23 16:33:22 2014 -0800"
      },
      "message": "Fix plugin dir (to be the correct one)\n"
    },
    {
      "commit": "09431178146d618bfb251dee7b0acf9d92f72dff",
      "tree": "8c006fe4ef9036ad108a051fbe0548c34b5cace4",
      "parents": [
        "b9006c23725d087aa31dbc48dee1d8007b7bb67d"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Dec 23 16:19:27 2014 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Dec 23 16:20:09 2014 -0800"
      },
      "message": "Remove layouts on shutdown\n"
    },
    {
      "commit": "b9006c23725d087aa31dbc48dee1d8007b7bb67d",
      "tree": "4579073babedab5016d144549175d71dce174b0d",
      "parents": [
        "82b0fd2ddd9f3808fee578545b85c16bde11603d"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Dec 23 16:04:52 2014 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Dec 23 16:04:52 2014 -0800"
      },
      "message": "More fixes for making base tsqa tests work\n"
    },
    {
      "commit": "82b0fd2ddd9f3808fee578545b85c16bde11603d",
      "tree": "b345817a031e76a23156b4982e64c265a6100e43",
      "parents": [
        "03de0c423b6d754748845f05e4980bd93c2324fb"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Dec 23 14:22:15 2014 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Dec 23 14:22:15 2014 -0800"
      },
      "message": "Cleanup of cfg_dir and add \"proxies\" attribute\n"
    },
    {
      "commit": "03de0c423b6d754748845f05e4980bd93c2324fb",
      "tree": "0dac3e76ebca1a89d4f27e6a9e8f61903b8b18f7",
      "parents": [
        "fcbbd789f29189c14a73a867dd5f711c1b52aa99"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Dec 23 13:57:20 2014 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Dec 23 13:57:20 2014 -0800"
      },
      "message": "Clean up interface to configs\n"
    },
    {
      "commit": "fcbbd789f29189c14a73a867dd5f711c1b52aa99",
      "tree": "51553598691ce15bb7e0aa42ed28a1f9d4bdbcb3",
      "parents": [
        "50bd9ff907623cc85a95722bd2f1c2aa7cf80622"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Dec 23 13:54:13 2014 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Dec 23 13:54:13 2014 -0800"
      },
      "message": "Use records config object for overwriting values, in addition clean up imports\n"
    },
    {
      "commit": "50bd9ff907623cc85a95722bd2f1c2aa7cf80622",
      "tree": "d8565221f1978da671cb80928a4156899aac2f85",
      "parents": [
        "ccda9f0df3e8b87ce94babe6ca7441e50ec8f7cb"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Dec 23 13:54:01 2014 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Dec 23 13:54:01 2014 -0800"
      },
      "message": "Add records_config property (might not keep)\n"
    },
    {
      "commit": "ccda9f0df3e8b87ce94babe6ca7441e50ec8f7cb",
      "tree": "2da5962d219b1c5a92f289be16c698decd3d36ac",
      "parents": [
        "f16c79a8d3f08b8b59581ace841fe3e1fa0e1eaf"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Dec 23 11:13:06 2014 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Dec 23 11:13:23 2014 -0800"
      },
      "message": "Revamp records config object, need support for multiple top_kinds\n"
    },
    {
      "commit": "f16c79a8d3f08b8b59581ace841fe3e1fa0e1eaf",
      "tree": "c0bbb1857beeb3717a8bbbdee20897817d862b21",
      "parents": [
        "1cec7ac9f5aaf3170ea52b75569ef638f9a0b307"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Dec 23 10:50:13 2014 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Dec 23 10:50:13 2014 -0800"
      },
      "message": "Add configs for records.config\n"
    },
    {
      "commit": "1cec7ac9f5aaf3170ea52b75569ef638f9a0b307",
      "tree": "108cc229d1b4d7e62e3949e0e1b3dff299b38bed",
      "parents": [
        "83e515d81269ce76784e098a1335d32357aa3253"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Dec 23 10:27:19 2014 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Tue Dec 23 10:27:19 2014 -0800"
      },
      "message": "Comment addition\n"
    },
    {
      "commit": "83e515d81269ce76784e098a1335d32357aa3253",
      "tree": "c39c781f053039bf54c9e89381c4aa64b464f4bb",
      "parents": [
        "e0a0c9f08cbfd53fb8e032c604606c61d14395eb"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Mon Dec 22 18:22:29 2014 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Mon Dec 22 18:22:29 2014 -0800"
      },
      "message": "Add LD_LIBRARY_PATH and TS_ROOT to env blacklistedkey\n"
    },
    {
      "commit": "e0a0c9f08cbfd53fb8e032c604606c61d14395eb",
      "tree": "e6f1b3ffbe4211db5441bc1c690508f24e0e7142",
      "parents": [
        "103e70b3e9344f3d45d812bf366ad0fd35ea6e2e"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Mon Dec 22 18:21:56 2014 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Mon Dec 22 18:21:56 2014 -0800"
      },
      "message": "Cleanup setUpEnv interface (pass env)\n"
    },
    {
      "commit": "103e70b3e9344f3d45d812bf366ad0fd35ea6e2e",
      "tree": "d97bf2ab44d6c2232c0333068ab8d257a1b6004e",
      "parents": [
        "6545cc177b23d31ef8080d7718a66586bac40473"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Mon Dec 22 18:02:03 2014 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Mon Dec 22 18:02:03 2014 -0800"
      },
      "message": "misc fixes\n\n- De-dupe some env keys for build cache\n- make sure all layout dirs exist on creation/clone\n- use traffic_server instead of traffic_cop (for now)\n"
    },
    {
      "commit": "6545cc177b23d31ef8080d7718a66586bac40473",
      "tree": "38dd2c693d60805ede3d63fd9e6e4e416c54e9ed",
      "parents": [
        "9d29420c1227c7b765bab4f58b54e2e54d45a4ee"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Mon Dec 22 18:01:35 2014 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Mon Dec 22 18:01:35 2014 -0800"
      },
      "message": "Cleanup interface for default environment case\n"
    },
    {
      "commit": "9d29420c1227c7b765bab4f58b54e2e54d45a4ee",
      "tree": "c64aae121dd8380b0db27bf8f182b069af0bb2ac",
      "parents": [
        "53973b3227d8b878a4dab6c1881d0284440ce151",
        "a765f0287edc804fc28a6f46c9ab8b9d2b5b945f"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Mon Dec 22 17:25:05 2014 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Mon Dec 22 17:25:05 2014 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of github.com:jacksontj/tsqa\n"
    },
    {
      "commit": "53973b3227d8b878a4dab6c1881d0284440ce151",
      "tree": "8215816e4aca422d1539d523ad02ad269d1d4760",
      "parents": [
        "25e5eee3765c7f036a5e4dd14741c11d2d016773"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Mon Dec 22 17:24:59 2014 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Mon Dec 22 17:24:59 2014 -0800"
      },
      "message": "Misc cleanup\n"
    },
    {
      "commit": "a765f0287edc804fc28a6f46c9ab8b9d2b5b945f",
      "tree": "3a4a70608073da989fab2c2ebd6c6851a506e73f",
      "parents": [
        "25e5eee3765c7f036a5e4dd14741c11d2d016773",
        "d848f0252f96f5171b4a428fb16e5276e1eecff2"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Mon Dec 22 17:23:58 2014 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Mon Dec 22 17:23:58 2014 -0800"
      },
      "message": "Merge pull request #1 from duderino/master\n\nGeneralize to other dev environments"
    },
    {
      "commit": "d848f0252f96f5171b4a428fb16e5276e1eecff2",
      "tree": "3a4a70608073da989fab2c2ebd6c6851a506e73f",
      "parents": [
        "b1d988fb2dddc46323887b36066e51aa95fb2c40",
        "25e5eee3765c7f036a5e4dd14741c11d2d016773"
      ],
      "author": {
        "name": "Joshua Blatt",
        "email": "blattj@yahoo-inc.com",
        "time": "Mon Dec 22 16:20:39 2014 -0800"
      },
      "committer": {
        "name": "Joshua Blatt",
        "email": "blattj@yahoo-inc.com",
        "time": "Mon Dec 22 16:20:39 2014 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of github.com:duderino/tsqa\n\nConflicts:\n\ttsqa/environment.py\n"
    },
    {
      "commit": "b1d988fb2dddc46323887b36066e51aa95fb2c40",
      "tree": "78a32def06fa082c979c8c04d121a28c50405e36",
      "parents": [
        "eb0b40291f8a655a88eeed81461571d15e919e52"
      ],
      "author": {
        "name": "Joshua Blatt",
        "email": "blattj@yahoo-inc.com",
        "time": "Mon Dec 22 16:13:51 2014 -0800"
      },
      "committer": {
        "name": "Joshua Blatt",
        "email": "blattj@yahoo-inc.com",
        "time": "Mon Dec 22 16:13:51 2014 -0800"
      },
      "message": "Changes to work in other envs:\n\n1) added a few missing dependencies to the setup.py\n2) replaced hardcoded SOURCE_DIR and TMP_DIR with env vars TSQA_SRC_DIR and TSQA_TMP_DIR\n3) commented out the \"# TODO: remove, this is a hack for local dev\" block in Environment\n4) changed Layout.suffixes.bindir from \u0027usr/bin\u0027 to \u0027bin\u0027.\n5) added Layout.suffixes.libdir to LD_LIBRARY_PATH\n"
    },
    {
      "commit": "25e5eee3765c7f036a5e4dd14741c11d2d016773",
      "tree": "7c2bb129bb3681733572f821ee15f295990c18f6",
      "parents": [
        "f08f900b5e2f8593417105842324244ace72ae5a"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Mon Dec 22 15:49:03 2014 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Mon Dec 22 15:49:03 2014 -0800"
      },
      "message": "Add \u0027-if\u0027 to autoreconf, according to ATS README, thats what we should do\n"
    },
    {
      "commit": "f08f900b5e2f8593417105842324244ace72ae5a",
      "tree": "81799e289f0b6b09cfc3fd0b76e74fd5c89df1e9",
      "parents": [
        "eb0b40291f8a655a88eeed81461571d15e919e52"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Mon Dec 22 14:00:02 2014 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Mon Dec 22 14:00:02 2014 -0800"
      },
      "message": "Add bind_unused_port, helper to bind to unused ports on a given interface\n"
    },
    {
      "commit": "eb0b40291f8a655a88eeed81461571d15e919e52",
      "tree": "1ed131c646a4339f1353c576af91822873c1bc4d",
      "parents": [
        "8c2d709d39dbcbdb63441f6a1efe405735ea3cad"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Fri Dec 19 11:26:03 2014 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Fri Dec 19 11:26:03 2014 -0800"
      },
      "message": "Misc cleanup/fixes\n"
    },
    {
      "commit": "8c2d709d39dbcbdb63441f6a1efe405735ea3cad",
      "tree": "c3cd1d67c13b21b47c746e64dde3edc514ff0927",
      "parents": [
        "03d423eb3c78c09a07c09112bdd113486fb5cd4e"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Fri Dec 05 14:25:41 2014 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Fri Dec 05 14:25:41 2014 -0800"
      },
      "message": "Remove TODO marker, it was done :)\n"
    },
    {
      "commit": "03d423eb3c78c09a07c09112bdd113486fb5cd4e",
      "tree": "2a3c0626e8a77caf78682552a4059a901d148180",
      "parents": [
        "677f7920abcadae9416b84e5653b48dd91f5e824"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Fri Dec 05 14:24:35 2014 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Fri Dec 05 14:24:35 2014 -0800"
      },
      "message": "Initial README\n"
    },
    {
      "commit": "677f7920abcadae9416b84e5653b48dd91f5e824",
      "tree": "ed67b4cb6623686d6647895a50d5ed6202c9f688",
      "parents": [
        "d1fada5b4d3a16dbd46a9073aeb61f3f8eac4195"
      ],
      "author": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Fri Dec 05 14:23:55 2014 -0800"
      },
      "committer": {
        "name": "Thomas Jackson",
        "email": "jacksontj.89@gmail.com",
        "time": "Fri Dec 05 14:23:55 2014 -0800"
      },
      "message": "Add test helpers\n"
    }
  ],
  "next": "d1fada5b4d3a16dbd46a9073aeb61f3f8eac4195"
}
