)]}'
{
  "log": [
    {
      "commit": "a715bdffaa805baae5b0b994231556b566ca326c",
      "tree": "cec57938935b441816402e474c37d1ba1ea25e92",
      "parents": [
        "6f182854d7a5f3cfc110c875d6decd3bafd1689f"
      ],
      "author": {
        "name": "Carel Combrink",
        "email": "carel.combrink@gmail.com",
        "time": "Thu Oct 30 07:44:21 2025 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed Mar 11 22:39:49 2026 +0100"
      },
      "message": "THRIFT-5923: UUID python\nClient: py\nPatch: CJCombrink\n\nThis closes #3330\n"
    },
    {
      "commit": "acbcf10d91cdea4b5d8c855b8f27acd890ffecc8",
      "tree": "64b625cf9730bff5b92659ed4fe32c213d33d2ca",
      "parents": [
        "96d62dd1700e84293b99546bcf0d4ed17c25728a"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Fri Feb 13 18:25:55 2026 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Fri Feb 20 00:17:08 2026 +0100"
      },
      "message": "Fixed Python flake8 offenses\n"
    },
    {
      "commit": "0b6822804eb4fdeefc6143fbe72478c7309be7b7",
      "tree": "345c63f99bc7bb35505c0767d529253831f0ee6a",
      "parents": [
        "697910f23fc5b21d21fad20499e2a43dd0496092"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Wed Feb 04 16:26:46 2026 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Fri Feb 20 00:15:37 2026 +0100"
      },
      "message": "Wire TLS keys in Python for cross-tests\n\nConfigure Python test client/server to use shared test keys and CA for SSL.\nRemove Python SSL entries from known failures to re-enable SSL coverage.\n"
    },
    {
      "commit": "62ec929629bed63d968a25a16085080a227a8abf",
      "tree": "fe1e5f762936622a1d4f322c3fefcb238715f92b",
      "parents": [
        "dbdb429a8ca338d8b9bb082214a246cc61faca90"
      ],
      "author": {
        "name": "Gregg Donovan",
        "email": "gdonovan@etsy.com",
        "time": "Thu Jan 29 16:51:37 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jan 29 13:51:37 2026 -0800"
      },
      "message": "Fix Python 3.12 build issues in thrift Python (#3276)\n\n- Add pyproject.toml with setuptools build requirement for PEP 517 compliance\n- Replace distutils imports with setuptools equivalents\n- Use setuptools error names directly (CompileError, ExecError, PlatformError)\n- Fix macOS header collision with ntohll/htonll macros in endian.h\n- Add a matrix of MacOS versions (macos-15-intel, macos-14, macos-15,\n  macos-26)\n- Add a matrix of non-EOL Python versions for testing\n- Remove MSVC2015 from the test matrix (very old).\n- Support MSVC2022, the latest in AppVeyor.\n- Upgrade tornado, twisted, and zope.interface versions to the first\n  that support Python 3.12.\n- Try to make the test_socket, RunClientServer, and TestServer tests less flaky.\n\nThis fixes the ModuleNotFoundError: No module named \u0027distutils\u0027 error\nwhen building thrift with Python 3.12+."
    },
    {
      "commit": "5abe53feaf598e40ab84eb259399113a79461791",
      "tree": "ba1bfe81c2004d18b072090ef24816cf306151ba",
      "parents": [
        "f274d9891fc042bac06f28f51ab5901b9077a0da"
      ],
      "author": {
        "name": "Carel Combrink",
        "email": "carel.combrink@gmail.com",
        "time": "Thu Nov 13 06:16:41 2025 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Nov 20 23:12:02 2025 +0100"
      },
      "message": "Thrift-5900: Fix Tests for Python 3.14\nClient: py\nPatch: Carel Combrink\n\nThis closes #3239\n\n- Disclaimer: Claude came up with this\n- Python 3.14 made files explicitly unpicklable for reasons\n- The out can\u0027t be pickled in SummaryReporter\n- stop in TestDispatcher is an instance method that should not be captured\n\nDelay the imports to where they are needed\n\n- Claude believes this is due to the way that the server is called vs the client is called and the server does not have enough time to set up completely\n\nAttempt to fix issue with python 3.14\n\n- Looks like python is getting more strict about scoping\n- Decided to go with a local option instead of global or module variable\n"
    },
    {
      "commit": "d078721e44fea7713832ae5d0f5d9ca67317f19e",
      "tree": "2aa232e808ef697980b1cbc6f1c9c198c62d12b6",
      "parents": [
        "da54fc814cb872bf5ae782364760dfbc4fe414d8"
      ],
      "author": {
        "name": "Alexandre Detiste",
        "email": "alexandre.detiste@gmail.com",
        "time": "Thu Dec 26 02:44:13 2024 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Jan 15 22:27:26 2025 +0100"
      },
      "message": "remove more Python2 compatibility\n"
    },
    {
      "commit": "506e311c381677928ab68fd62e441deb24f2f7c3",
      "tree": "c1a11c8d7d5bdcea72be82fe6914056026bdbab2",
      "parents": [
        "1ab096c80af1a2bca73aef78675de914a1834fd9"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun May 17 22:48:51 2020 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue May 19 00:00:29 2020 +0200"
      },
      "message": "FIX: CI error at ./test/py/TestServer.py:178:26: F507 \u0027...\u0027 % ... has 1 placeholder(s) but 6 substitution(s)\nFIX: CI error at ./test/crossrunner/compat.py:11:21: E741 ambiguous variable name \u0027l\u0027\nPatch: Jens Geyer\n\nThis closes #2147\n"
    },
    {
      "commit": "f1c53418a794f3d740b809ece822ce79c0bb62a3",
      "tree": "3cb6ae132f59fedb384c926815e1fac75adf45dd",
      "parents": [
        "cf95fef9b88761ff773257aa0ac0a41e4093820b"
      ],
      "author": {
        "name": "Kengo Seki",
        "email": "sekikn@apache.org",
        "time": "Fri Dec 13 08:09:36 2019 +0900"
      },
      "committer": {
        "name": "Duru Can Celasun",
        "email": "dcelasun@apache.org",
        "time": "Thu Dec 12 23:09:36 2019 +0000"
      },
      "message": "THRIFT-4974: Add cross test for Python\u0027s Unix domain socket transport\n\nClient: Python\r\n\r\nThis closes #1896."
    },
    {
      "commit": "9804ab983a6c43dec56e0dcc4155cc2c21073822",
      "tree": "ba15452e6bb5e0a914d40e2cbb422ef533925cb8",
      "parents": [
        "647501693bd14256df8839c13cb03659bdee4202"
      ],
      "author": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Thu Feb 07 16:59:05 2019 -0500"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Fri Feb 08 17:16:17 2019 -0500"
      },
      "message": "THRIFT-4780: finish the server implementation of multi in python server\n- Add default processor handling to python multi\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": "350fe7531feecf7df5208fa19d25730c6ce0a30d",
      "tree": "89021ac90d92fbcc07ef41f118fc29b7ce80b4a4",
      "parents": [
        "254e86b0103be51c6af9cc50220ee8c144234239"
      ],
      "author": {
        "name": "James E. King, III",
        "email": "jking@apache.org",
        "time": "Wed Oct 25 09:57:18 2017 -0400"
      },
      "committer": {
        "name": "James E. King, III",
        "email": "jking@apache.org",
        "time": "Thu Oct 26 11:37:02 2017 -0400"
      },
      "message": "THRIFT-4370: build generated code before running static code analysis;\nfix E722 flake8 issues identified in python code\n\nThis closes #1399\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": "7af189a2366383538bb9aae394fd5f735976f1d5",
      "tree": "9e9fd94cda9dd673250cc6d6c1b279c83f3ae1c1",
      "parents": [
        "6525f6ae8786a2bcb596e471efb1d76ae74aabee"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Thu Feb 11 16:21:01 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sat Feb 13 23:12:34 2016 +0900"
      },
      "message": "THRIFT-3613 Port Python C extension to Python 3\nClient: Python\nPatch: Nobuaki Sukegawa\n\nThis closes #845\n"
    },
    {
      "commit": "6525f6ae8786a2bcb596e471efb1d76ae74aabee",
      "tree": "80c5a5037d166c8ada55d97d4e98d36bff632155",
      "parents": [
        "41e8cbf6866bf9b8ec6d5bbc157a1fb970d8c3cc"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Thu Feb 11 13:58:39 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sat Feb 13 23:12:34 2016 +0900"
      },
      "message": "THRIFT-3612 Add Python C extension for compact protocol\nClient: Python\nPatch: Nobuaki Sukegawa\n\nThis closes #844\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": "7b545b57200ab960894e873716862cafbf9321f0",
      "tree": "56b13f14a20877edf7f7d33fe05e62e309f877ca",
      "parents": [
        "7e286b0d143be88adbd84f2e1cbfec66196a6a57"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Mon Jan 11 13:46:04 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Wed Jan 13 20:25:23 2016 +0900"
      },
      "message": "THRIFT-3532 Add configurable string and container read size limit to Python protocols\n\nThis closes #787\n"
    },
    {
      "commit": "a185d7e78589a42e076379ae7165857e5e828e5c",
      "tree": "7e14afa0d7b25de7d11fe930ada48767c888f34e",
      "parents": [
        "760511f59b349c59982a64e249e6cf24c2b2f8f6"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Fri Nov 06 21:24:24 2015 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Fri Nov 06 21:24:24 2015 +0900"
      },
      "message": "THRIFT-1857 Python 3 Support\nClient: Python\nPatch: Nobuaki Sukegawa\n\nAdd py3 cross test\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": "983bf7de419dca19dac755970218a7d09bea8553",
      "tree": "f34d57bae8b86e70af01fdc246b872322b01edeb",
      "parents": [
        "f124b55e6d974b97a68b045d4dffc152e00040af"
      ],
      "author": {
        "name": "Randy Abernethy",
        "email": "ra@apache.org",
        "time": "Fri Oct 09 12:28:57 2015 -0700"
      },
      "committer": {
        "name": "Randy Abernethy",
        "email": "ra@apache.org",
        "time": "Fri Oct 09 12:28:57 2015 -0700"
      },
      "message": "THRIFT-3373: cross test cleanup\nClient: build, node, c_glib, cpp, hs, py, rb\nPatch: Nobuaki Sukegawa\n\nGithub Pull Request:\nThis closes #641\ncommit 338f1a502961a4f63b0bd4b3dae4099062d6d17f\nAuthor: Nobuaki Sukegawa \u003cnsukeg@gmail.com\u003e\nDate: 2015-10-09T17:25:18Z\nTHRIFT-3373 Various fixes for cross test servers and clients\n"
    },
    {
      "commit": "d629ea0bb271f625763a4f083602811fc9cf1b61",
      "tree": "8ef70e68fb9b214fa3bde79d74fb91243f8d6701",
      "parents": [
        "68238297100517db0202a7f9698ac637bc8d1c35"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed Sep 23 21:16:50 2015 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed Sep 23 21:20:38 2015 +0200"
      },
      "message": "THRIFT-3347 Improve cross test servers and clients\nClient: TestSuite, C++, Perl, NodeJS, c_glib, Haskell, Python\nPatch: Nobuaki Sukegawa \u003cnsukeg@gmail.com\u003e\n\nThis closes #621\n"
    },
    {
      "commit": "a649e7473bd0229f160332f0c80407ba49765065",
      "tree": "44dea5abd7123a132851b6e1e181bf6caf3d3a44",
      "parents": [
        "245c347b7374182f8142ac07e43473ddd8c4d0de"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsukeg@gmail.com",
        "time": "Mon Sep 21 13:53:25 2015 +0900"
      },
      "committer": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Mon Sep 21 23:07:39 2015 +0200"
      },
      "message": "THRIFT-3337 Add testBool method to cross tests\n\nThis closes #611\n"
    },
    {
      "commit": "f7d327ae96d451ff76b80d7e952f9cc21a1c4464",
      "tree": "9cae9ad90ae0fe5a748c8d9fcc7012f345e2b57f",
      "parents": [
        "e33d16520a483e49e5f73a9ea2091cfc686fb619"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat Jul 25 15:44:20 2015 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat Jul 25 15:44:20 2015 +0200"
      },
      "message": "THRIFT-2918 Race condition in Python TProcessPoolServer test\nClient: Python\nPatch: Jens Geyer\n"
    },
    {
      "commit": "8bcfdd98ae59d840b677a485b74dda3953b4bcc1",
      "tree": "659ef62202eea161ca503d7ab3250238830abc8f",
      "parents": [
        "43e195afcd4cd3db67c7343271920af147e268e6"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Dec 14 03:14:26 2014 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat Jan 03 17:37:54 2015 +0100"
      },
      "message": "THRIFT-2886 Integrate binary type in standard Thrift cross test\nClient: C_glib, C++, D, Erlang, Go, Haskell, Lua, Java/Me, JavaScript, Node, Ocaml, Perl, PHP, Python, Ruby\nPatch: Jens Geyer\n\nThis closes #341\n\nMinimal server-side implementations and TODO stubs for various languages to let \"make check\" succeeed.\nNot contained in this patch and still TODO:\n- client side implementations, i.e. calls to testBinary() and appropriate tests\n- server side hex printout missing for some languages\n"
    },
    {
      "commit": "0d4072b0cf1a03e7b26c5212d1b456a7736b0bdc",
      "tree": "e1b3253f1512613b494c10b54e825ba6074fb724",
      "parents": [
        "5e5eacfefed73d0ad03c94e5e852176bf0849bde"
      ],
      "author": {
        "name": "cdwijayarathna",
        "email": "cdwijayarathna@gmail.com",
        "time": "Sat Aug 09 21:32:21 2014 +0530"
      },
      "committer": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Sun Aug 10 21:45:30 2014 +0200"
      },
      "message": "THRIFT-2578 Moving \u0027make cross\u0027 from test.sh to test.py\n"
    },
    {
      "commit": "dbf2bb5c46ffb519186da4c4f13e288becd42ba2",
      "tree": "c0ce7ccec6ff533184c573dc2168bf6d10d420dd",
      "parents": [
        "3e41ece40cc0cb1aea60bc30d84d8110b469727b"
      ],
      "author": {
        "name": "jfarrell",
        "email": "jfarrell@apache.org",
        "time": "Wed Jul 09 23:37:12 2014 -0400"
      },
      "committer": {
        "name": "jfarrell",
        "email": "jfarrell@apache.org",
        "time": "Wed Jul 09 23:37:12 2014 -0400"
      },
      "message": "Thrift-2601:Fix vagrant to work again for builds again\nClient: build process\nPatch: jfarrell\n\nReverting TMultiplexedProtocol tests in test/py from commit 879cab2c are non functional,\nreverts the portion of the commit that changed test/py/{TestServer.py,TestClient.py}\n\nFollow up to address this issue: THRIFT-2613\n"
    },
    {
      "commit": "76150722af2751768411573b9fbbed163f4f55db",
      "tree": "bae6e8912f7917a9f528b249a48595c45bab097b",
      "parents": [
        "5588a569d5a08c23dca8d770dfe87892f950deb8"
      ],
      "author": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Sat May 31 22:22:07 2014 +0200"
      },
      "committer": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Sat May 31 22:22:07 2014 +0200"
      },
      "message": "THRIFT-847 Test Framework harmonization across all languages\n\nAdded \u0027ssl\u0027 tests for python tests.\nAdded \u0027-transport arg (\u003dbuffered) transport: buffered, framed, http\u0027 to test/py/TestServer.py and test/py/TestClient.py and removed \u0027-framed\u0027 arguement.\nChanged test/py/RunClientServer.py to match above changes.\nAdded tests to compact protocol in python cases.\nAdded tests to test BinaryAccelarated protocol with Binary Protocol.\nChanged py/TestClient.py and py/TestServer.py from --proto to --protocol parameter\n\nPatch: Chamila Dilshan Wijayarathna \u0026 Roger Meier\n"
    },
    {
      "commit": "879cab2cea799625635d861f5beb89039da5f38c",
      "tree": "8e4206b13e87c1b1a76e73c20cffc9a6a6e1a615",
      "parents": [
        "6d1a83aa485ed9c3644d3200555700070547bf90"
      ],
      "author": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Sat May 03 17:51:21 2014 +0200"
      },
      "committer": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Sat May 03 17:51:21 2014 +0200"
      },
      "message": "THRIFT-1914 Python: Support for Multiplexing Services on any\n Transport, Protocol and Server\n\nPatch: smallfish \u0026 djwatson\n \u0026 haijunz \u0026 Roger Meier\n\nThis closes #103 and #82\n\nFrom 7aaea7ef4e6f44097b02543fa2e62597eae9d61e Mon Sep 17 00:00:00 2001\nFrom: smallfish \u003csmallfish.xy@gmail.com\u003e\nDate: Tue, 22 Apr 2014 11:26:52 +0800\nSubject: [PATCH]  THRIFT-1914 Python: Support for Multiplexing Services on any\n Transport\n"
    },
    {
      "commit": "58bbb709a4dad28b58e99a817be8ee3e7c9071ce",
      "tree": "9765823f39e7afdc04f27dd6f08b7afa7d85d468",
      "parents": [
        "161cf42b0948859a9d4f6f5abd7cf0b3d0b73236"
      ],
      "author": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Wed Feb 19 19:59:25 2014 +0100"
      },
      "committer": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Wed Feb 19 19:59:25 2014 +0100"
      },
      "message": "THRIFT-2325 SSL test certificates\nFix: use common test cert within Python unit tests\nPatch: Roger Meier\n"
    },
    {
      "commit": "1f554e1a9c643a717f8687f62596ae9ae3479234",
      "tree": "f6472f97272b17bac6f26949836510f39dc7de93",
      "parents": [
        "945537c1fc88ae27ac8231d423927fb7b40d10a6"
      ],
      "author": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Sat Jan 05 20:38:35 2013 +0100"
      },
      "committer": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Sat Jan 05 20:38:35 2013 +0100"
      },
      "message": "THRIFT-1797 Python implementation of TSimpleJSONProtocol\nImprove Test Suite according to test/ThriftTest.thrift\nPatch: Avi Flamholz\n"
    },
    {
      "commit": "85fb6de7f4c1ea6260f98bc24401593e8c974bc7",
      "tree": "1ca6bc04b6fb022e21f30095b87c093b4b8f2dc6",
      "parents": [
        "c9ce87fb02004b1864bc7e880b79fd411a2a2b9e"
      ],
      "author": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Fri Nov 02 00:05:42 2012 +0000"
      },
      "committer": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Fri Nov 02 00:05:42 2012 +0000"
      },
      "message": "THRIFT-1745 Python JSON protocol \nTJSONProtocol.py: Frederic Delbos\n\nTHRIFT-847 Test Framework harmonization across all languages \nIntegration into py lib and test suite\n\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1404838 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "f4eec7a57b4c6ab08a545033fd3840586510ae8b",
      "tree": "3ebe40518de52c2ea6a615cb5d1a876c95a29d1e",
      "parents": [
        "b288050682c33761a96682c84f4e4edd4301e9d1"
      ],
      "author": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Sun Sep 11 18:16:21 2011 +0000"
      },
      "committer": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Sun Sep 11 18:16:21 2011 +0000"
      },
      "message": "THRIFT-1115 python TBase class for dynamic (de)serialization, and __slots__ option for memory savings\nPatch: Will Pierce\n\ngit-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1169492 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "1606659171d9ee8885d5806d6030ec39399b3b08",
      "tree": "c3692a449db77be87532a07d6ac9575cc698f6d6",
      "parents": [
        "42a6fa4b29d74028ee943b3da17d5eccf7fd897a"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Mar 22 18:06:04 2011 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Mar 22 18:06:04 2011 +0000"
      },
      "message": "THRIFT-1103. py: TZlibTransport for python, a zlib compressed transport\n\nThis patch adds a new TZlibTransport to the Python library and extends the test suite to exercise it.\n\nPatch: Will Pierce\n\ngit-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1084276 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "59d4efda817f73eb195f47ff9f04cb0f4ec47525",
      "tree": "38aba98ac496e4bce5b9ea0bf0e4bdbb3f888f98",
      "parents": [
        "81a13cbd5d2a5fbd9a81cd2b19c9916cb88c942e"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Mon Mar 21 17:38:22 2011 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Mon Mar 21 17:38:22 2011 +0000"
      },
      "message": "THRIFT-1094. py: bug in TCompactProto python readMessageEnd method and updated test cases\n\n\nThis patch fixes a TCompactProtocol bug and expands the test cases to exercise the problem.\n\nPatch: Will Pierce\n\ngit-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1083877 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "4ebaa761cbb06964831cc69f923ba849025e9ff1",
      "tree": "083d779346a32caae0977ed517b4a7880be79916",
      "parents": [
        "0fd37f08716758b283010abfa5162eb2c1aee2ad"
      ],
      "author": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Tue Feb 08 20:44:22 2011 +0000"
      },
      "committer": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Tue Feb 08 20:44:22 2011 +0000"
      },
      "message": "THRIFT-1056 python tests invoked by \u0027make check\u0027 appear broken\nPatch: Chris Morgan\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1068568 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": "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": "cc0c9e98b50b4d5510b485ddd0f44614671616fd",
      "tree": "a9b28a1e4ae9a6286676e76d345abb9173ac7e60",
      "parents": [
        "cb13729795173b2763e0ccec3412c9188bfba6a2"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:16:29 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 01:16:29 2008 +0000"
      },
      "message": "Clean up some bad/missed merges from the alterl merge.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666486 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "abded23ed43bf025d5b78ad7f664ae996024592b",
      "tree": "5f79643370871864e6a70bcd21f72ef76fae6067",
      "parents": [
        "c85a6955882467c97b28c45853af76985e95a1d2"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:57:01 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Jun 11 00:57:01 2008 +0000"
      },
      "message": "Implement testAsync for python tests\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@666412 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": "db893b617f3cd4e7170ced145d75a8a16d7abc97",
      "tree": "7517eb508fbe1c1133b7675fc849d5383831b94f",
      "parents": [
        "2ab6fe88e26b5570bcdb357fdf6c1ee84b37bd44"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Feb 18 02:11:48 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Feb 18 02:11:48 2008 +0000"
      },
      "message": "Implement testAsync for python tests\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665485 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": "57cc25e2a348bd8fe844b39321207226181e62c3",
      "tree": "9c2e7ea4a3ed88b57b015321c4c8a266a9f4c12b",
      "parents": [
        "7a49888fc6990ec7485e3804a1958db7cbe70b07"
      ],
      "author": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Wed Feb 28 21:43:54 2007 +0000"
      },
      "committer": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Wed Feb 28 21:43:54 2007 +0000"
      },
      "message": "Some Thrift documentation cleanups\n\nSummary: Getting ready to hand this over to powerset, just want to have the right licenses in place and such first.\n\nReviewed By: thrift\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665029 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "1dd819cd2be36b7cf6d2ee0f729f40e676085fe4",
      "tree": "28f7cfac1b80aade40c70e0fbc116eac572c4fe0",
      "parents": [
        "35ae1c784ceb8e184e4b3ebc7b0a955f426a8fc8"
      ],
      "author": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Thu Oct 26 04:56:18 2006 +0000"
      },
      "committer": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Thu Oct 26 04:56:18 2006 +0000"
      },
      "message": "Bring Thrift test code up to date\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664852 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": "018b6998d61fa77aa6f7fb9a73c7e6a2360782f2",
      "tree": "d3c46f760d683eff9e4e96a34fabcd4e4d95800c",
      "parents": [
        "aff9f8e3cf6e672066d8bc5db8d1970f72daba37"
      ],
      "author": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Thu Sep 07 21:31:12 2006 +0000"
      },
      "committer": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Thu Sep 07 21:31:12 2006 +0000"
      },
      "message": "Thrift: generate Processors not Servers\n\nSummary: Because the gen\u0027d code isn\u0027t actually a server\n\nReviewed By: aditya\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664794 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"
    }
  ]
}
