)]}'
{
  "log": [
    {
      "commit": "6f339004e6c636d9ce7b114d351e9141edff5c17",
      "tree": "9050ed69e347cfc1c335da0756bbbf3d96615a68",
      "parents": [
        "1e3d90d8fd4160d538b7a4d902169eae5155e08a"
      ],
      "author": {
        "name": "Jiayu Liu",
        "email": "Jimexist@users.noreply.github.com",
        "time": "Thu Apr 20 07:39:35 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 20 07:39:35 2023 +0800"
      },
      "message": "THRIFT-5564: add GitHub action for python 2.x and 3.x (#2787)\n\n* update .github workflow to consolidate config\r\n\r\n* add lib python\r\n\r\n* Update build.yml\r\n\r\nupdate\r\n\r\n* rust \u003d\u003e rs\r\n\r\n* Update build.yml\r\n\r\nupdate\r\n\r\n* update\r\n\r\ninstall openssl\r\n\r\nremove 3.6\r\n\r\nsetup daemon\r\n\r\ntry 3.6\r\n\r\nfix lib path\r\n\r\nadd backports of py\r\n\r\nUpdate build.yml\r\n\r\nuse sudo\r\n\r\nadd install-exec-hook\r\n\r\n* add ssl test skip"
    },
    {
      "commit": "981400757179c784665088daa5ba1a0f3ad7e8c1",
      "tree": "32542e9012280ab6f24054d75d3cddf86e34dddf",
      "parents": [
        "7a5f29d48d6b99f14190d9d7bff0e63170965087"
      ],
      "author": {
        "name": "PikachuHy",
        "email": "pikachuhy@163.com",
        "time": "Sun Jul 31 01:00:43 2022 +0800"
      },
      "committer": {
        "name": "PikachuHy",
        "email": "pikachuhy@163.com",
        "time": "Sun Jul 31 01:00:43 2022 +0800"
      },
      "message": "fix typo\n"
    },
    {
      "commit": "88a45ac77518eafb57db08938ecdf38c5fcf7a31",
      "tree": "8ef05402b7c300a3c4b1c3a2240489cdcc010d9b",
      "parents": [
        "b664cfe2533e4bbf00fd5e7e0211bf7161ee2a04"
      ],
      "author": {
        "name": "Yiyang Zhou",
        "email": "yiyangzhou123@ucla.edu",
        "time": "Wed Aug 04 21:55:04 2021 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Sat Apr 23 10:30:46 2022 +0200"
      },
      "message": "THRIFT-5449: Use poll instead of select in Python TNonblockingServer if available\nClient: Python\n"
    },
    {
      "commit": "b664cfe2533e4bbf00fd5e7e0211bf7161ee2a04",
      "tree": "34d4ee28eca26e9259ef2ab5d17ebb264e54ee26",
      "parents": [
        "0dc52985ca06cb948eae251dce789f7f863fc243"
      ],
      "author": {
        "name": "shangxu",
        "email": "shangxu@domob.cn",
        "time": "Fri Nov 13 18:03:01 2020 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Apr 21 09:13:52 2022 +0200"
      },
      "message": "fix Out Of Memory when use TNonblockingServer\n"
    },
    {
      "commit": "443a03c558fdef6e6908e8fb47f7011c2d7ff9f6",
      "tree": "29afa240ec4e45a60bb3b0e869c665d396d5e094",
      "parents": [
        "50f97135ccc328aeb84b75d5374016abaa269da1"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Nov 15 19:30:13 2021 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Nov 15 19:31:21 2021 +0100"
      },
      "message": "FIX: Python code style / flake8: TProcessPoolServer.py:46:14: E225 missing whitespace around operator\n"
    },
    {
      "commit": "da1e19b72bceb1c5a094613c286c1331ff1a6c1b",
      "tree": "f4aa8be8afcddfde605160e8dda7296e759a5d84",
      "parents": [
        "ea39a14a1fbc8a7683e91ab4bdd23f8b207c8d5d"
      ],
      "author": {
        "name": "Yiyang Zhou",
        "email": "yiyangzhou1@xiaohongshu.com",
        "time": "Fri Aug 13 16:30:58 2021 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Sun Nov 14 00:54:12 2021 +0100"
      },
      "message": "THRIFT-5454: add __setState__ function to TProcessPoolServer to enable correct multiprocessing behavior related to pickling\n\nClient: Python\n"
    },
    {
      "commit": "393f6c93e1a65b7be74d79b5a6b00f878e88a630",
      "tree": "f420f76c8d47d189bcefbd48860f7fe8f34df523",
      "parents": [
        "e53d23c16c806c6da62ebaa7f205328cf710d9a5"
      ],
      "author": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Sat Feb 09 10:35:44 2019 -0500"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Mon Feb 11 17:46:30 2019 -0500"
      },
      "message": "THRIFT-3877: fix py/py3 server, java client with http transport\n\nThe java TestClient asks the server to runa  oneway request that\nsleeps for 3 seconds.  If the java TestClient sees the duration\nof the call exceed one second, it fails the test.  This means the\nserver did not participate in the \"fire and forget\" dynamics of\nONEWAY requests.  In this case the THttpServer was processing the\nRPC before sending the transport response.  The fix was to enhance\nthe TProcessor so that the THttpServer has an opportunity to inspect\nthe message header before processing the RPC.\n\nThis is partly due to the violation of the THttpServer in the\nlayered architecture.  It is essentially implementing a combined\nserver and transport, whereas there should be a distinct server,\nprotocol, and transport separation.  Many languages seem to have\nthis problem where HTTP was introduced.\n"
    },
    {
      "commit": "66a44c5d8d57bd0c2e2afd228a29b5bc679a6770",
      "tree": "b8e114bb322b05217224926c866b21a01a7af27c",
      "parents": [
        "8de3749235db03c1d043c9f31dcbdc4c0fb011ea"
      ],
      "author": {
        "name": "Neil Williams",
        "email": "neil@reddit.com",
        "time": "Mon Aug 13 16:12:24 2018 -0700"
      },
      "committer": {
        "name": "Aki Sukegawa",
        "email": "nsukeg@gmail.com",
        "time": "Sat Sep 01 10:24:43 2018 +0900"
      },
      "message": "THRIFT-4621 Add THeader for Python\n\nClient: py\n"
    },
    {
      "commit": "6f8c99e98170dcd4f311e755b79f7013868c64c5",
      "tree": "0d8a7a41c707815ed86d624bf81be5317a70185b",
      "parents": [
        "a0cf38ed312a5342eb05574719485b725fa52eee"
      ],
      "author": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Sat Mar 24 16:32:02 2018 -0400"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Thu Apr 05 10:25:19 2018 -0400"
      },
      "message": "THRIFT-3118: add http (for non-ssl and for ssl) to the python cross tests\n"
    },
    {
      "commit": "00646bbba7a2101f0ad2938d2e37cb83abbfb3c7",
      "tree": "c7ef84d72c02cf6bd087c703a085d76c96e63efa",
      "parents": [
        "e241265cb2ac7cbab2fd46bda52638da3a989d51"
      ],
      "author": {
        "name": "Yubing Dong (Tom)",
        "email": "tomtung@users.noreply.github.com",
        "time": "Thu Jan 18 23:55:24 2018 -0800"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Wed Jan 24 00:10:42 2018 -0500"
      },
      "message": "THRIFT-4464: Fix typo in TNonblockingServer.py\nClient: py\n\nThis closes #1475\n"
    },
    {
      "commit": "0ad20bdbfe9abcbb0cc5332ff95651b5c975da91",
      "tree": "7e713c9380844afe41019a7c6ebe4e508eba3464",
      "parents": [
        "8b8a8efea13d1c97f856053af0a5c0e6a8a76354"
      ],
      "author": {
        "name": "James E. King, III",
        "email": "jking@apache.org",
        "time": "Sat Sep 30 15:44:16 2017 -0700"
      },
      "committer": {
        "name": "James E. King, III",
        "email": "jking@apache.org",
        "time": "Thu Oct 19 11:29:04 2017 -0400"
      },
      "message": "THRIFT-4351: use travis build stages to optimize build,\navoiding duplicate rebuilds of the same image, and also\nallow personal docker hub repositories for private fork\nbuilds to be optimized. Move ubsan build to artful image\nbecause it catches more stuff and fix what was found.\n\nTHRIFT-4345: solidify docker build strategy for maximum\ncoverage: trusty, xenial, artful as stock as they can be\n\nTHRIFT-4344: add top level language summary markdown and\nupdate readme with a new image on the layered architecture\n\nTHRIFT-3847: remove VERSION macro from config.h which\nwas causing a conflict on artful builds.\n\nTHRIFT-4359: fix haxe map/set decode when key is binary,\nas a missing break statement caused it to use an int\nduring decode\n\nThis closes #1389\n"
    },
    {
      "commit": "4626fd889da53462023d42d99d1d82e13a6e890f",
      "tree": "bce5eda5b1e48eab0f097ee90aa25c91ab5e3d23",
      "parents": [
        "bff044667caf8a8c2b0dd30ed11b328ff2902cf5"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sun Feb 12 21:11:36 2017 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sun Feb 12 21:11:36 2017 +0900"
      },
      "message": "THRIFT-3938 Python TNonblockingServer does not work with SSL\n\nThis closes #1100\n"
    },
    {
      "commit": "10308cb975ac090584068d0470b81e41555b2f35",
      "tree": "bc0bb670626a8a196dc00df6429ae4dcc838b4c4",
      "parents": [
        "d094e79de7e0bd61320f006c83c0de669363bce8"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Wed Feb 03 01:57:03 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Thu Feb 04 14:28:24 2016 +0900"
      },
      "message": "THRIFT-3596 Better conformance to PEP8\n\nThis closes #832\n"
    },
    {
      "commit": "b9c859a07bae89643c0953a14e490cf3db435957",
      "tree": "0e9de4da541ddfa0ac352ed57078cddcce4c665b",
      "parents": [
        "7b8946941e5bcb1217711115fed3f6c77d73b5ef"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Mon Dec 21 01:10:25 2015 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sat Jan 02 22:54:16 2016 +0900"
      },
      "message": "THRIFT-3506 Eliminate old style classes from library code\nClient: Python\nPatch: Nobuaki Sukegawa\n\nThis closes #758\n"
    },
    {
      "commit": "760511f59b349c59982a64e249e6cf24c2b2f8f6",
      "tree": "793e2daab17a717fb2407a60627f65073daa82e5",
      "parents": [
        "49f4dc0cd8c87213a0f80ae1daba2d094a358ea7"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Fri Nov 06 21:24:16 2015 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Fri Nov 06 21:24:16 2015 +0900"
      },
      "message": "THRIFT-1857 Python 3 Support\nClient: Python\nPatch: Thomas Bartelmess, Eevee (Alex Munroe), helgridly, Christian Verkerk, Jeroen Vlek, Nobuaki Sukegawa\n\nThis closes #213 and closes #680\n"
    },
    {
      "commit": "d565e2f496ab894e737b143cf71c2f5e3cee871b",
      "tree": "9f2be84ef51d3c2afc7c18d149d61d6fafd14829",
      "parents": [
        "43ceaf7cf5f414fe03d857aee1f7199036d2f62f"
      ],
      "author": {
        "name": "jfarrell",
        "email": "jfarrell@apache.org",
        "time": "Wed Mar 18 21:02:47 2015 -0400"
      },
      "committer": {
        "name": "jfarrell",
        "email": "jfarrell@apache.org",
        "time": "Wed Mar 18 21:02:47 2015 -0400"
      },
      "message": "Thrift-1784: pep-3110 exception handling\nClient: py\nPatch: jfarrell\n\nUpdates python lib for pep-3110\n"
    },
    {
      "commit": "3b5dacba44e4fa5c07c8b828d2f65215f9c91e34",
      "tree": "56fb134a0cd9cadbdd034af8de6ffdb31ae50ef8",
      "parents": [
        "eab29a0da9eb775bb7e1e7cff6b4eeaecf237151"
      ],
      "author": {
        "name": "Konrad Grochowski",
        "email": "hcorg@apache.org",
        "time": "Mon Nov 24 10:55:31 2014 +0100"
      },
      "committer": {
        "name": "Konrad Grochowski",
        "email": "hcorg@apache.org",
        "time": "Mon Nov 24 10:55:31 2014 +0100"
      },
      "message": "THRIFT-2849: spelling errors fixed using codespell tool\n\nClient: All\nPatch: Anatol Pomozov\n\nThis closes #281\n"
    },
    {
      "commit": "3a724e37d49be1990fe2432c4ee7751653336c65",
      "tree": "c3b2d9bb42161874500b2f86591ad5b80ceb885f",
      "parents": [
        "485d71acd10b543890ea3114fda5be8cb88a2f0e"
      ],
      "author": {
        "name": "Konrad Grochowski",
        "email": "hcorg@apache.org",
        "time": "Tue Aug 12 11:48:29 2014 -0400"
      },
      "committer": {
        "name": "Konrad Grochowski",
        "email": "hcorg@apache.org",
        "time": "Mon Sep 29 23:55:47 2014 +0200"
      },
      "message": "THRIFT-2663: py - per module logger used in python lib\n\nClient: Python-Library\nPatch: Dustin Spicuzza\n\nThis enables per module log message filtering\n\nThis closes #187\n"
    },
    {
      "commit": "ab2793aa966d3a40a89fe4b392d3cc286721f36d",
      "tree": "2951cee34f0d6c8c33d7e6f201fe4763cfd45608",
      "parents": [
        "a131b8f92c2b2386126353d08d2c285e0861e0da"
      ],
      "author": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Mon Apr 21 21:20:00 2014 +0200"
      },
      "committer": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Mon Apr 21 21:20:00 2014 +0200"
      },
      "message": "THRIFT-2466: Improper error handling for SSL/TLS connections that don\u0027t complete a handshake\nClient: Python\nPatch: Benoit Sigoure\n"
    },
    {
      "commit": "2b2560e836fcd07493bee15374f499b3eb77fe47",
      "tree": "9581503b9197b3c8213df72ffb67942fff3f9b24",
      "parents": [
        "0d866d7de28b51d5eabceae16cbbfb4f8f5cfb9b"
      ],
      "author": {
        "name": "Todd Lipcon",
        "email": "todd@cloudera.com",
        "time": "Mon Dec 10 14:29:59 2012 -0800"
      },
      "committer": {
        "name": "Todd Lipcon",
        "email": "todd@cloudera.com",
        "time": "Mon Dec 10 14:29:59 2012 -0800"
      },
      "message": "THRIFT-1773. Revert \"Thrift-1604:Python exxception handeling for changes from PEP3110\"\n\nThis reverts commit 6c5ee6ad2067e245ab5364f9a6019d8b63d7ed52.\n\nThis commit is being reverted since it broke compatibility with\nPython 2.4, which is the latest version included in RHEL5 releases.\n"
    },
    {
      "commit": "6c5ee6ad2067e245ab5364f9a6019d8b63d7ed52",
      "tree": "c699696515dd54bf246bcb7b400b8a0b567ac7c0",
      "parents": [
        "5e022aa6865918d56616b9ef026337bd766ce04a"
      ],
      "author": {
        "name": "Jake Farrell",
        "email": "jfarrell@apache.org",
        "time": "Fri May 18 01:00:39 2012 +0000"
      },
      "committer": {
        "name": "Jake Farrell",
        "email": "jfarrell@apache.org",
        "time": "Fri May 18 01:00:39 2012 +0000"
      },
      "message": "Thrift-1604:Python exxception handeling for changes from PEP3110\nClient: py\nPatch: Jake Farrell\n\nPython PEP 3110 changed exception handling by replacing the \u0027,\u0027 with \u0027as\u0027. This was initially introduced in python 2.6 and in 3.0 the \u0027,\u0027 usage is no longer suppported. Since exception handling through out the py lib uses the \u0027,\u0027 it will need to be converted over to using the \u0027as\u0027 syntax for exceptions\n\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1339941 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "cfff8569bb03a544f8896b5ba8611ccc4dfbb639",
      "tree": "37f9034d7f5d12750abdf21bc9276f9decfd1d15",
      "parents": [
        "3f5a264cd9cfafa478272d5d5d41928dc69ee39b"
      ],
      "author": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Fri Apr 13 14:24:55 2012 +0000"
      },
      "committer": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Fri Apr 13 14:24:55 2012 +0000"
      },
      "message": "THRIFT-1569 thrift: add stop() method to python TNonblockingServer\nPatch: Dave Watson\n\ngit-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1325784 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "6972041392314d526584e733781ca382a960b295",
      "tree": "f68da7e2d3d4187a9c1ce755417c7c735b7365fa",
      "parents": [
        "9704630bab3dc502bbd216380f9bb5e6b13228f0"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Jan 03 17:32:30 2012 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Jan 03 17:32:30 2012 +0000"
      },
      "message": "THRIFT-1480. py: remove tabs, adjust whitespace and address PEP8 warnings\n\nThis patch addresses a host of PEP8 lint problems.\n\nPatch: Will Pierce\n\ngit-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1226890 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a48b7d6e52eb3fcc9a986cde654277ea48a29951",
      "tree": "33e35b614ca3842fde57eb24b1b943800e64f9ab",
      "parents": [
        "0244e9353f01a780ae3d7edd122288c23ce8652c"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Mar 09 18:05:58 2011 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Mar 09 18:05:58 2011 +0000"
      },
      "message": "THRIFT-1083. py: Preforking python process pool server\n\nPatch: Dvir Volk\n\ngit-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1079913 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a9ca25a81ec3d5a82c03ca31e2cfad3c4b87c674",
      "tree": "3fede88f1ee8022217b3fbf19226e24bd69a62a6",
      "parents": [
        "c564fa569289240fb210c245b2b1125d759b93e1"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Sep 02 15:36:03 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Sep 02 15:36:03 2010 +0000"
      },
      "message": "THRIFT-666. python: Allow THttpServer\u0027s responses to be overridden\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991986 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "d6a02ff99bcee734d5335c91f5ada41d7322ecb4",
      "tree": "da4d50582679554e45b64ed0a50e2cffad2da1d6",
      "parents": [
        "f2ef59ffbf7819d7e89e73ba78c5900778cbe293"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Sep 02 15:14:27 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Sep 02 15:14:27 2010 +0000"
      },
      "message": "THRIFT-597. py: Python THttpServer performance improvements\n\nThis enables buffered I/O and ThreadingMixin.\n\nPatch: David Reiss\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991971 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "f2ef59ffbf7819d7e89e73ba78c5900778cbe293",
      "tree": "d460751e0334c1f52dc345a61495c2bcc536a0d8",
      "parents": [
        "472eb3c94ce44b32ed2a6d73bd0d3b2786e928f7"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Sep 02 15:12:06 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Sep 02 15:12:06 2010 +0000"
      },
      "message": "THRIFT-598. py: Allow Python\u0027s threading servers to use daemon threads\n\nPatch: David Reiss\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991969 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "f5dea4c7f31703cdc0c347eb7ec429fc5864afb4",
      "tree": "e8aad41f828fc5ad8674b1c34fd02b1a9dad682c",
      "parents": [
        "9af23d9327277a791c8b22c4323b8e17e2bfc378"
      ],
      "author": {
        "name": "Todd Lipcon",
        "email": "todd@apache.org",
        "time": "Thu Dec 03 01:18:44 2009 +0000"
      },
      "committer": {
        "name": "Todd Lipcon",
        "email": "todd@apache.org",
        "time": "Thu Dec 03 01:18:44 2009 +0000"
      },
      "message": "THRIFT-637. python: Fix mixing of oneway and regular requests in TNonblockingServer\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@886646 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "ea2cba8ba8484a8d4e669c02dd97b3b2445ef322",
      "tree": "6be4a3bf2d069a006c9a15f5ee47a1893a176f4d",
      "parents": [
        "4bc4231040186d9e0c35ff4d8211ce7b7e43aab5"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Mar 30 21:35:00 2009 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Mar 30 21:35:00 2009 +0000"
      },
      "message": "THRIFT-387. Add license headers to a bunch of files\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@760189 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "6ce401dd555cf7928e1129d9ab31aa7be4bc7e9f",
      "tree": "6ee5161e938b5afd1b9b0dac5b4545af3d66e96b",
      "parents": [
        "c51986f43897a64531935653cb4a2462f6cd7e11"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 24 20:01:58 2009 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 24 20:01:58 2009 +0000"
      },
      "message": "THRIFT-136. s/async/oneway/ in misc places\n\nThis is mostly an internal-only change.\nIt affects docstrings, messages, variables, test cases, etc.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@757992 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c51986f43897a64531935653cb4a2462f6cd7e11",
      "tree": "da8728080bf9265c2aa6eb8d72877b384ea94c80",
      "parents": [
        "473292500dc553e537aad0544f9fbb31d0fbf3d0"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 24 20:01:25 2009 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 24 20:01:25 2009 +0000"
      },
      "message": "THRIFT-136. s/async/oneway/ in comments\n\nThis is an internal-only change.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@757990 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "f78ec2bc66d3a9fcfd63b9bdf49fc9bdc68b4cf7",
      "tree": "0dfedf9b5540ac188564c9969ae0b8d2c318ac18",
      "parents": [
        "1fe17774eb1059bc784a5c3be46b208a2fc0a63c"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Sat Jan 31 21:59:32 2009 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Sat Jan 31 21:59:32 2009 +0000"
      },
      "message": "THRIFT-195. python: Add a simple THttpServer\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@739638 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "74421273ad97359402556428f23afacfe31ce978",
      "tree": "66acebd643d6a06acb98f4ce713c4493e169b2da",
      "parents": [
        "762e9bd15f84e8dc45eec60308a0519be3bdda9a"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri Nov 07 23:09:31 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri Nov 07 23:09:31 2008 +0000"
      },
      "message": "THRIFT-67. python: Add TNonblockingServer\n\nThis TNonblockingServer is very similar to the C++ implementation.\nIt assumes the framed transport, but it uses select instead of libevent.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@712306 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "0ee93eaa464d524efcfda4f243d2c456a4dfac5e",
      "tree": "cb53c61e69895b56a0266fc12236a0c358bbd87a",
      "parents": [
        "f4e700883b943775233b75770a12fd7affa9ef31"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Jul 21 19:03:11 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Jul 21 19:03:11 2008 +0000"
      },
      "message": "THRIFT-93. Remove unnecessary shebang lines from Python libraries\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@678529 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "1e0744d7a2daacaf5044427fa614268d1f4fcb2f",
      "tree": "511757054b7336092edcf864e4e97685d129ad19",
      "parents": [
        "1ce8b3d7d502cff253b1ac761d2326763f144101"
      ],
      "author": {
        "name": "Kevin Clark",
        "email": "kclark@apache.org",
        "time": "Tue Jun 24 20:46:32 2008 +0000"
      },
      "committer": {
        "name": "Kevin Clark",
        "email": "kclark@apache.org",
        "time": "Tue Jun 24 20:46:32 2008 +0000"
      },
      "message": "rb: Make TServer.py Python 2.4 compatible [THRIFT-44]\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@671337 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "b04df765b5c9fe1b8fb6ded0ed2750188278fe50",
      "tree": "f17c1607c606385270d72107893a7941fe8fa081",
      "parents": [
        "bcaa2ad0d6799066ed680f53051c469e4f58771b"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:55:38 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:55:38 2008 +0000"
      },
      "message": "Change Python servers to use the standard logging module.\n\nPreviously Thrift was using `print` to report errors.  Thrift is infrastructure\nand should not impose its error logging mechanism on the apps that use it.  For\nexample, [elided] uses the logging module to send logs to a particular file.\n\nI ran the unit test.  That exercises most of the error handling routines.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666364 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "bcaa2ad0d6799066ed680f53051c469e4f58771b",
      "tree": "4ad3270f088b90add3e0566d179f433adf50152c",
      "parents": [
        "c6dab613003c704f072542f39214f7af64fc0412"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:55:26 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:55:26 2008 +0000"
      },
      "message": "Python forking server should close connection in parent.\n\nWhen a function called by the forking python thrift server throws an\nexception the client will hang.  This happens because the parent of the\nforked process does not properly close the socket fd.\n\nUnder normal operation the server operation completes and returns a value to\nthe client.  However, when an exception occurs the \u0027end\u0027 message is never\nsent to the client so the client relies on a connection close to abort the\ncall (this is how the threading server works I believe).\n\nThis fails with the forking server because the parent process never closes\nthe socket fd.  The child has closed the fd at this point, but the\nconnection will not actually be closed until all open instances of the fd\nare closed. Since the client is waiting for a message and the server never\ncloses it the client is forced to wait until a read timeout occurs many\nminutes later.\n\nThis diff closes the parent\u0027s copy of the socket fd immediately after the\nfork occurs.\n\nI modified my load test server to throw an exception.  The client did not hang.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666363 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "665365490f3e14cf3e40205f16d9dc9b5a833f1e",
      "tree": "bc1906ec9842ade416bef56498df5360af96b272",
      "parents": [
        "af296954ea59369129b4129633e263fd65b503de"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:54:49 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Jun 10 22:54:49 2008 +0000"
      },
      "message": "Forking Python server.\n\nThe python threading model does not provide concurrency for CPU-bound\nprocesses.  Process forking is the current recommended way of writing\nscalable Python servers.\n\nHarry Wang ran the [elided] backend with this change for 3 days and observed\nno errors.  The threaded backend caused unexplained lockups under this load\nafter 24 hours.\n\nI also ran a CPU-bound load test against this server with 32 concurrent\nclients.  It completed 5X faster than the threaded implementation.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666359 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "0c90f6f8af1d64ec9272bb2f6092336f3d0b8df8",
      "tree": "15245f459a76acc769d8fe99179176b4965bf66d",
      "parents": [
        "3160971286aea0d5b28d5a7a87acaa8a12209ef8"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Feb 06 22:18:40 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Feb 06 22:18:40 2008 +0000"
      },
      "message": "Thrift: Whitespace cleanup.\n\nSummary:\n- Expanded tabs to spaces where spaces were the norm.\n- Deleted almost all trailing whitespace.\n- Added newlines to the ends of a few files.\n- Ran dos2unix on one file or two.\n\nReviewed By: mcslee\n\nTest Plan: git diff -b\n\nRevert Plan: ok\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665467 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "5299a959e0ac89ce26b6ad4f73b893207f9bae3d",
      "tree": "3315cf30cdcf8c8524bcb49a35f254f130f9eac2",
      "parents": [
        "6fc7be28bb1363adaedee47c34ea0262e3346eb4"
      ],
      "author": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Fri Oct 05 00:13:24 2007 +0000"
      },
      "committer": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Fri Oct 05 00:13:24 2007 +0000"
      },
      "message": "Python automated test patch\n\nSummary: Submitted by Ben Maurer\n\nReviewed By: dreiss\n\nTest Plan: Automated python testing for Thrift, lovely.\n\nRevert: OK\n\nDiffCamp Revision: 737\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665293 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "89e2bb84e2ceb690c1d8abc1b6641e16ee73a19a",
      "tree": "5a5d616629d25cfb78fec49c301cb9181bf42161",
      "parents": [
        "7eb0d635428cc24b8394fcacc2c8d0093e32e5ea"
      ],
      "author": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Thu Mar 01 00:20:36 2007 +0000"
      },
      "committer": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Thu Mar 01 00:20:36 2007 +0000"
      },
      "message": "Applying Thrift software license to Python source\n\nReviewed By: python\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665032 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "0e5283914f19fc1442db9b49cda400d1b28ab164",
      "tree": "217b81b01a8e86ebf029f3e8c2ba47fb6fa70372",
      "parents": [
        "04342d8b632f0f0c0677c630492843530278ac64"
      ],
      "author": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Tue Feb 20 04:23:26 2007 +0000"
      },
      "committer": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Tue Feb 20 04:23:26 2007 +0000"
      },
      "message": "Take out debug print in TServer constructor\n\nReviewed By: aditya\n\nTest Plan: no print on construct\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665000 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "04342d8b632f0f0c0677c630492843530278ac64",
      "tree": "17b8ea37a0dbf3a9ca3ee7484f60f36570724fe7",
      "parents": [
        "fb84b2b264c833a10192374197b08b805739ea49"
      ],
      "author": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Tue Feb 20 03:41:35 2007 +0000"
      },
      "committer": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Tue Feb 20 03:41:35 2007 +0000"
      },
      "message": "another typo i missed\n\nSummary: outut\n\nReviewed By: aditya\n\nTest Plan: blog\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664999 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "fb84b2b264c833a10192374197b08b805739ea49",
      "tree": "feb7f93e3940e7ade1112492c4c8dc8126f39f15",
      "parents": [
        "a0c92417a0eedcb65361d4e8f0d9ae679554c715"
      ],
      "author": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Tue Feb 20 03:37:28 2007 +0000"
      },
      "committer": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Tue Feb 20 03:37:28 2007 +0000"
      },
      "message": "Adityaslop typos in thrift py server\n\nSummary: outut is not output\n\nReviewed By: aditya, cheever\n\nTest Plan: blogfeeds fixin\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664998 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "5c468196dc7a1d6035df83fb656ab3f214657421",
      "tree": "7d54acee76073808baef08819b88df77d1e28f43",
      "parents": [
        "21135c300bd4418365981e930d3aeba6f290fb5b"
      ],
      "author": {
        "name": "Aditya Agarwal",
        "email": "aditya@apache.org",
        "time": "Tue Feb 06 01:14:33 2007 +0000"
      },
      "committer": {
        "name": "Aditya Agarwal",
        "email": "aditya@apache.org",
        "time": "Tue Feb 06 01:14:33 2007 +0000"
      },
      "message": "-- Protocol and transport factories now wrap around a single protocol/transport\n\nSummary:\n- This is an analagous to the C++ change made in r31441\n\nReviewed By: cheever, mcslee\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664975 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "bb31d0ac43b88dbb8b154f9653c5d58011a2e93d",
      "tree": "6212542fa7e1edb4d104b2e3c117ec263e7ac0b3",
      "parents": [
        "1dd819cd2be36b7cf6d2ee0f729f40e676085fe4"
      ],
      "author": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Thu Oct 26 04:56:40 2006 +0000"
      },
      "committer": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Thu Oct 26 04:56:40 2006 +0000"
      },
      "message": "Let Python server take protocolFactory argument\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664853 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "4ac459ff3a447786220d01402756b70eb21329a1",
      "tree": "d272dc5d5081dfeb09e904b47e97aa03571a3163",
      "parents": [
        "5946a185968aeee39a4dc5a1aaea9a9932a4abed"
      ],
      "author": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Wed Oct 25 21:39:01 2006 +0000"
      },
      "committer": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Wed Oct 25 21:39:01 2006 +0000"
      },
      "message": "Fix python server bugs and go to new protocol wraps transport model\n\nReviewed By: ccheever\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664849 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "9a695ba364831de190d7884261178124e74da1b3",
      "tree": "af66d487c6d3372017c590e53de0dfad99ee84f4",
      "parents": [
        "4ce787f238fefb62e3e4aa69eec1de1ad74ef8dd"
      ],
      "author": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Tue Oct 24 18:55:36 2006 +0000"
      },
      "committer": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Tue Oct 24 18:55:36 2006 +0000"
      },
      "message": "self.clients instead of self.client\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664834 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "4ce787f238fefb62e3e4aa69eec1de1ad74ef8dd",
      "tree": "d87adc1f18fe4750bfd7ed83d28bf1f3c5506ecb",
      "parents": [
        "b90aa7c104e01580b64b37521dd2698904744c64"
      ],
      "author": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Tue Oct 24 18:54:06 2006 +0000"
      },
      "committer": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Tue Oct 24 18:54:06 2006 +0000"
      },
      "message": "Missing self argument in server method\n\nReviewed By: ccheever\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664833 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "b90aa7c104e01580b64b37521dd2698904744c64",
      "tree": "cc1a33850feda30f5ff240d512fb75a15c513c34",
      "parents": [
        "9a079272b2defe1a488b93ffe71511ed6bc15808"
      ],
      "author": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Tue Oct 24 18:49:45 2006 +0000"
      },
      "committer": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Tue Oct 24 18:49:45 2006 +0000"
      },
      "message": "Python threadpool server for Thrift\n\nSummary: Fixed number of threads that work from a shared queue\n\nReviewed By: cheever\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664832 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "3c4d7fd053ca07701ac1dba9f0b0f6ef29b181a3",
      "tree": "4884b2adb7355dc430e08637ce7500bd6dde831b",
      "parents": [
        "4f0fed6c760988ecc41c6c30895fef5a5c8cef96"
      ],
      "author": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Mon Oct 02 17:53:20 2006 +0000"
      },
      "committer": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Mon Oct 02 17:53:20 2006 +0000"
      },
      "message": "Thrift missing python threading import\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664813 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "4f0fed6c760988ecc41c6c30895fef5a5c8cef96",
      "tree": "a94124246696bdd706de227aaf52d684056adc8a",
      "parents": [
        "f77ff06a3bad9b05aae5139c51bd85cc8d139e1a"
      ],
      "author": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Mon Oct 02 17:50:08 2006 +0000"
      },
      "committer": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Mon Oct 02 17:50:08 2006 +0000"
      },
      "message": "Python basic threaded server\n\nReviewed By: ccheever-pillar\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664812 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "794993d278930cde40b69b61f0eac679bb5938e4",
      "tree": "0ce3547ec414e3bc5949a31223469bc791d81d66",
      "parents": [
        "dc8a2a2fc716e30ebfe2fa9ce14761ba3dce4ed4"
      ],
      "author": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Wed Sep 20 01:56:10 2006 +0000"
      },
      "committer": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Wed Sep 20 01:56:10 2006 +0000"
      },
      "message": "Change run() to serve() in all Thrift server interfaces\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664799 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "d788b2e046355f7b08f821e68c6b5147b496599a",
      "tree": "8b44799799d6f736e8ab27b01c484b8289b0645d",
      "parents": [
        "ffcddd688aefb42191999d72726ef15de23fd4e3"
      ],
      "author": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Thu Sep 07 01:26:35 2006 +0000"
      },
      "committer": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Thu Sep 07 01:26:35 2006 +0000"
      },
      "message": "Thrift TTransportFactory model for servers\n\nSummary: Servers need to create bufferedtransports etc. around the transports they get in a user-definable way. So use a factory pattern to allow the user to supply an object to the server that defines this behavior.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664792 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c98d050d652d08d8ce99bed5487cd7544b2b25cc",
      "tree": "8e04e0960151ea14d031684a3a8b5fa76b33d15b",
      "parents": [
        "68db166dd44e0df21507498def340be6117be1b0"
      ],
      "author": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Wed Sep 06 02:42:25 2006 +0000"
      },
      "committer": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Wed Sep 06 02:42:25 2006 +0000"
      },
      "message": "Thrift: Added support for double type across all languages\n\nSummary: Just for completeness cause I\u0027m crazy. Let\u0027s never use these!\n\nNotes: Also made thrift grammar support # style comments, so you can do this at the top of your files\n\n#!/usr/local/bin/thrift --cpp\n\n/**\n * This is a thrift def file youc an invoke directly and gen code!\n */\n\nblah\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664789 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c9676569adfba12a1378eec1c75c6036e7912d9e",
      "tree": "bcf8fcd69f5e45b601b3cfa7d4796b79e2f0989f",
      "parents": [
        "4ecbebc09989a5fccb40fcb2d3d0d1b9f540a7d4"
      ],
      "author": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Tue Sep 05 17:34:52 2006 +0000"
      },
      "committer": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Tue Sep 05 17:34:52 2006 +0000"
      },
      "message": "Thrift Python server code generation\n\nSummary: Yep, it\u0027s up and running. We now have full client/server support in all of C++ Java PHP and Python. Well, not quite... there\u0027s no PHP server, but honestly who wants one? Actually, if we do want one the framework will support writing is as a PHP file that can be served in apache like a web service (i.e. restserver.php would be thriftserver.php). But now that\u0027s rambling and nothing to do with this commit.\n\nNotes: cheever, let\u0027s chat about porting your multithreaded Pillar Python server over to Thrift\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664783 13f79535-47bb-0310-9956-ffa450edef68\n"
    }
  ]
}
