)]}'
{
  "log": [
    {
      "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": "55bc35f5d581f61f8dac816eb17493911ff8e75a",
      "tree": "fea3daf5c7500bd7d99051e11f95609cbb739e86",
      "parents": [
        "a6ee3c0b1d0e7fcbaa439c573e370fa129e3c7b5"
      ],
      "author": {
        "name": "Shaoyu Zhang",
        "email": "zsy056@users.noreply.github.com",
        "time": "Tue Nov 25 13:59:16 2025 -0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Fri Nov 28 22:59:13 2025 +0100"
      },
      "message": "fix py ext windows build\n"
    },
    {
      "commit": "c5a371280cc89a927e7278486233b16b189c6e9e",
      "tree": "de3393932b6d7b57eae7283923c700aafe8b6588",
      "parents": [
        "ac3feed1b24389efbc0865b742be1854be0406dc"
      ],
      "author": {
        "name": "Lysandros Nikolaou",
        "email": "lisandrosnik@gmail.com",
        "time": "Fri Jul 25 15:11:44 2025 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Nov 23 14:52:12 2025 +0100"
      },
      "message": "THRIFT-5888 Do not dynamically enable the GIL under free-threaded Python\nClient: py\nPatch: Lysandros Nikolaou\n\nThis closes #3180\n"
    },
    {
      "commit": "1e17c93555b680d4719ba61965c088590a2053dd",
      "tree": "1964a9a00a8c0fa87cf886dbd9aae8fcde92ed82",
      "parents": [
        "5b096a00027582983f1ae141a4bbf4eed806c310"
      ],
      "author": {
        "name": "George Koehler",
        "email": "kernigh@gmail.com",
        "time": "Mon Feb 06 18:08:05 2023 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Nov 20 22:52:36 2025 +0100"
      },
      "message": "rewrite the endian conversion to fix a big-endian host\nClient: py\n\nChange htolell(dub) to htolell(transfer.t) in compact.h, because the\nconversion takes a long long, not a double.  This matters on a\nbig-endian host, where the conversion must swap bytes.\n\nThe big-endian letohll(n) failed because ntohl(n) is just n, doesn\u0027t\nswap n.  Rewrite ntohll(n) and letohll(n) to use the same code with\nboth big-endian and little-endian hosts.  Expect the compiler to\noptimize away one of ntohll(n) or letohll(n) when it doesn\u0027t swap n.\n"
    },
    {
      "commit": "4f89bfdeeb900e2d64bf5c5f726b78d8591593cc",
      "tree": "0c5ac7dc955658cf7bad5536c73613ee392a84af",
      "parents": [
        "80279b551a8f86c5085afedd454e26611d5b3cba"
      ],
      "author": {
        "name": "pspeter",
        "email": "peter.schmidbauer@oebb.at",
        "time": "Wed Apr 13 14:44:30 2022 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Nov 20 22:34:53 2025 +0100"
      },
      "message": "Fix bug in Python\u0027s THttpClient proxy handling\nClient: py\nPatch: Peter Schmidbauer\n\nThis closes #2565\n\nFix conversion to str without including quotes\n\nEnsure return type is str in Py2 and 3\n\nIn Python2, str(cr) returns a cr unchanged, since it is already a str. In Python3, \u0027cr\u0027 is a binary array (like str in Python2), but we cannot concat a str with a bin in Py3. Therefore, we convert it to str using str(cr), before concatenating it with \u0027Basic \u0027.\nFix bug in THttpClient proxy handling\n"
    },
    {
      "commit": "3adca0ecfee7dcb70f1bdf844050b5d02ed61d76",
      "tree": "7f020f754140e81a04089da95ff0d21a262ee914",
      "parents": [
        "eae1094d399e6d96a76b87ae98686a06dc11db5b"
      ],
      "author": {
        "name": "Carel Combrink",
        "email": "carel.combrink@gmail.com",
        "time": "Mon Nov 10 14:56:54 2025 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Nov 20 00:01:57 2025 +0100"
      },
      "message": "Missed actually using the new variables from the new calls to get Python\n"
    },
    {
      "commit": "ead302baf8c1cd231f10354b8f75a51499d2283a",
      "tree": "cacada6068293014ee2c1aec616a7279c2cdff1c",
      "parents": [
        "d0531c412f12cc1dd71e24650f6f7a408dbdcab6"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed Nov 19 23:50:18 2025 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed Nov 19 23:50:18 2025 +0100"
      },
      "message": "Revert \"lib: py: remove distutils in favor of setuptools\"\n\nThis reverts commit b4432b8f57aae67ef9ec23e539e973a5e486a48c.\n"
    },
    {
      "commit": "b4432b8f57aae67ef9ec23e539e973a5e486a48c",
      "tree": "b9a344259440506d78ec643f44e6c22467378ec2",
      "parents": [
        "d66ce925513fb3424deaa0ea4bb1a2491970d1dd"
      ],
      "author": {
        "name": "Pyrox",
        "email": "pyrox@pyrox.dev",
        "time": "Fri Jul 19 14:19:04 2024 -0400"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Nov 19 17:37:01 2025 +0100"
      },
      "message": "lib: py: remove distutils in favor of setuptools\n\nAs distutils is removed in python 3.12, and setuptools provides the same\ninterface, it can be switched in place with minor changes. This allows\nusing the thrift bindings on versions of Python 3.12 or greater.\n"
    },
    {
      "commit": "d66ce925513fb3424deaa0ea4bb1a2491970d1dd",
      "tree": "0d8cef615b069ee5de119ff845703703b6b2e24d",
      "parents": [
        "f17d36cea582b79d3798c2be9520146d7a3fb0af"
      ],
      "author": {
        "name": "bwangelme",
        "email": "bwangel.me@gmail.com",
        "time": "Tue Jul 02 10:40:58 2024 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Nov 19 17:36:20 2025 +0100"
      },
      "message": "fix: make timeout error more future\n\nClient: [\"python\"]\n"
    },
    {
      "commit": "87079492f8005409b5c985e0b1782841f54fc9fc",
      "tree": "3c17dcf1fd1704f095a39ae91258f07d043abaf9",
      "parents": [
        "822671218dc7df11d7e1d5b100cb81baba97c757"
      ],
      "author": {
        "name": "Michael Smith",
        "email": "michael.smith@cloudera.com",
        "time": "Fri Nov 14 13:47:42 2025 -0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Sun Nov 16 12:41:45 2025 +0100"
      },
      "message": "THRIFT-792: Preserve last connect exception\n\nPreserves the last exception when TSocket connect fails to provide more\ncontext to callers. The exceptions are already logged at info level, but\ncallers may suppress that or want to view details in the exception, so\nattach the last as an inner layer of TTransportException, similar to\ngaierror above.\n"
    },
    {
      "commit": "e720e6fecb75f1242154d1847b3b2954ae9d0965",
      "tree": "aeebd2655eac72bef9e21cc4f1c33b442fe2dd8b",
      "parents": [
        "e7ab34eccb272584441f5462104d87f08b217ea7"
      ],
      "author": {
        "name": "Carel",
        "email": "Carel.combrink@gmail.com",
        "time": "Fri Nov 07 10:48:27 2025 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Nov 07 08:48:27 2025 +0000"
      },
      "message": "THRIFT-5899: Python tests fail for the Appveyor MSVC builds (#3229)\n\n* Temporarily switch off shared build\n\n- See THRIFT-5898\n\n* Skip type_hints tests for python lower than 3.7\n\n- PR#2929 called out that the changes breaks Python 3.5 since types came in in 3.6\n- Python 3.6 errors out with \u0027from __future__ import annotations\u0027 since it looks like it was only added in 3.7\n\n* More appveyer issues on Windows due to old python\n\n* Remove enum tests for old python versions\n\n- Getting `raise TApplicationException(TApplicationException.MISSING_RESULT, \"testEnum failed: unknown result\"` error\n- PR#2825 state it is a breaking change, not sure why and for what version of Python\n\n* Disable SSL tests for old Python\n\n- Appveyor error: ` AttributeError: module \u0027ssl\u0027 has no attribute \u0027PROTOCOL_TLS_CLIENT\u0027`\n\n* Can\u0027t get the test to skip so revert the change that broke it\n\n- See PR#3050\n\n* THRIFT-5900: Pin the cross test stage to python 3.13\n\n- See https://issues.apache.org/jira/browse/THRIFT-5900"
    },
    {
      "commit": "37c7910072de4bf282f95f7c64f91155d6f2ce7e",
      "tree": "538255b51699481f3a3ea092c882c7c048b758d2",
      "parents": [
        "5501e8f84b7e735f1592b86492ab785a2f401bcf"
      ],
      "author": {
        "name": "Csaba Ringhofer",
        "email": "csringhofer@cloudera.com",
        "time": "Mon Sep 15 14:40:17 2025 +0200"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Tue Sep 16 18:23:18 2025 -0700"
      },
      "message": "THRIFT-5892: Always define PY_SSIZE_T_CLEAN before including Python.h\n\nThe error THRIFT-5488 tried to solve resurfaced in a spefic\nenvironment: Python3.11.13, chainguard based docker image, GCC 15\n\nDefining PY_SSIZE_T_CLEAN in module.cpp fixed the issue in that\nenvironment. Also defined it in types.cpp to consistently define\nit before including Python.h, which seems to be the recommended way:\nhttps://docs.python.org/3.11/c-api/intro.html#include-files\n\nIt is not clear to me why this was a problem in some environments\nand not in others. My guess is that including Python.h with different\ndefines leads to different behavior based on GCC version and options.\n"
    },
    {
      "commit": "0a760ff35ab8f348001aeaf85d00dd43ab3fc1a7",
      "tree": "7074be78e4db1fe759912486a1ddf90036691fc4",
      "parents": [
        "72a714ee5176a2c62e4a0b99c92036f30f0c09be"
      ],
      "author": {
        "name": "Hasnain Lakhani",
        "email": "m.hasnain.lakhani@gmail.com",
        "time": "Tue Aug 26 18:02:09 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 26 18:02:09 2025 -0700"
      },
      "message": "Fix python tests\n\nFix a Python test issue exposed by OSS-fuzz integration in https://github.com/google/oss-fuzz/pull/13874\n\nI can reproduce this with the oss-fuzz build (by setting UBSan flags locally). I do not know why the issue only shows up then, but this fix is correct - the method signatures are the same as the Compact protocol factory. The factory is supposed to not be passed any argument, or the arguments that are passed should be the limits. This manifested as the below failure:\n\n```\n2025-08-26T18:20:18.9632418Z /usr/local/bin/python test/thrift_TSerializer.py\n2025-08-26T18:20:19.0144330Z .E..\n2025-08-26T18:20:19.0145197Z \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n2025-08-26T18:20:19.0146549Z ERROR: test_TBinaryProtocolAccelerated (__main__.TestSerializer.test_TBinaryProtocolAccelerated)\n2025-08-26T18:20:19.0148344Z ----------------------------------------------------------------------\n2025-08-26T18:20:19.0149187Z Traceback (most recent call last):\n2025-08-26T18:20:19.0158543Z   File \"/src/thrift/lib/py/test/thrift_TSerializer.py\", line 68, in test_TBinaryProtocolAccelerated\n2025-08-26T18:20:19.0159474Z     self.verify(self.binary_serialized, factory)\n2025-08-26T18:20:19.0160254Z   File \"/src/thrift/lib/py/test/thrift_TSerializer.py\", line 50, in verify\n2025-08-26T18:20:19.0160914Z     deserialize(Message(), serialized, factory).body,\n2025-08-26T18:20:19.0161739Z     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n2025-08-26T18:20:19.0162428Z   File \"/src/thrift/lib/py/build/lib.linux-x86_64-cpython-311/thrift/TSerialization.py\", line 37, in deserialize\n2025-08-26T18:20:19.0163082Z     base.read(protocol)\n2025-08-26T18:20:19.0163513Z   File \"/src/thrift/lib/py/gen-py/TestServer/ttypes.py\", line 45, in read\n2025-08-26T18:20:19.0164259Z     self.body \u003d iprot.readString().decode(\u0027utf-8\u0027, errors\u003d\u0027replace\u0027) if sys.version_info[0] \u003d\u003d 2 else iprot.readString()\n2025-08-26T18:20:19.0164897Z                                                                                                       ^^^^^^^^^^^^^^^^^^\n2025-08-26T18:20:19.0165620Z   File \"/src/thrift/lib/py/build/lib.linux-x86_64-cpython-311/thrift/protocol/TProtocol.py\", line 179, in readString\n2025-08-26T18:20:19.0166301Z     return self.readBinary().decode(\u0027utf-8\u0027)\n2025-08-26T18:20:19.0166624Z            ^^^^^^^^^^^^^^^^^\n2025-08-26T18:20:19.0167302Z   File \"/src/thrift/lib/py/build/lib.linux-x86_64-cpython-311/thrift/protocol/TBinaryProtocol.py\", line 234, in readBinary\n2025-08-26T18:20:19.0167990Z     self._check_string_length(size)\n2025-08-26T18:20:19.0168745Z   File \"/src/thrift/lib/py/build/lib.linux-x86_64-cpython-311/thrift/protocol/TBinaryProtocol.py\", line 48, in _check_string_length\n2025-08-26T18:20:19.0169531Z     self._check_length(self.string_length_limit, length)\n2025-08-26T18:20:19.0170268Z   File \"/src/thrift/lib/py/build/lib.linux-x86_64-cpython-311/thrift/protocol/TProtocol.py\", line 57, in _check_length\n2025-08-26T18:20:19.0170906Z     if limit is not None and length \u003e limit:\n2025-08-26T18:20:19.0171360Z                              ^^^^^^^^^^^^^^\n2025-08-26T18:20:19.0171764Z TypeError: \u0027\u003e\u0027 not supported between instances of \u0027int\u0027 and \u0027TBufferedTransport\u0027\n2025-08-26T18:20:19.0172088Z \n2025-08-26T18:20:19.0172231Z ----------------------------------------------------------------------\n```"
    },
    {
      "commit": "72a714ee5176a2c62e4a0b99c92036f30f0c09be",
      "tree": "25a3c6627ceac9c205d5d6af66ecb2f8f3dd5ce2",
      "parents": [
        "4afb7d9ebeb0b6110cb6223e1c05c5e0ff9ee35b"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue Aug 26 22:12:07 2025 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue Aug 26 22:12:07 2025 +0200"
      },
      "message": "Fixed a ton of missing ASF headers ... again.\n"
    },
    {
      "commit": "d2743005dab9ec95764af32075b4705089140d25",
      "tree": "dc41a7e6703f7e4f9daf0179a606103d51a1b086",
      "parents": [
        "aa18332cb03f61ccde38394e7186894f72bc1a09"
      ],
      "author": {
        "name": "Hasnain Lakhani",
        "email": "m.hasnain.lakhani@gmail.com",
        "time": "Mon Aug 25 14:22:15 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 25 14:22:15 2025 -0700"
      },
      "message": "THRIFT-5855: Add py fuzzers\n\nAdd fuzzers for py support, to improve the reliability/robustness of the implementation"
    },
    {
      "commit": "7aea524e13d2a6fbeb942716f4224cd51bfda0ea",
      "tree": "67a38151e73361026b44bf5773179aa33e0b0dfa",
      "parents": [
        "270696c9bea3b8cdbf464f8b4da5a157123a29e7"
      ],
      "author": {
        "name": "Jeffrey Tolar",
        "email": "tolar@yahooinc.com",
        "time": "Fri May 30 11:20:05 2025 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Mon Jun 02 23:17:53 2025 +0200"
      },
      "message": "THRIFT-5873: py: fix client auth support for THttpClient\n"
    },
    {
      "commit": "c79d1cc179e5cc0792d012961e32d5acebc6eb5b",
      "tree": "a683fe7bcb26147871cb85bed16ef74c29865a45",
      "parents": [
        "e402bb05e45145db0e78f459e07bde446662b04c"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed May 14 22:08:35 2025 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed May 14 22:08:35 2025 +0200"
      },
      "message": "Branch 0.22.0 created\n"
    },
    {
      "commit": "4bacc1a8df30b2c4fd55bbca0d2fa07c749b0d0a",
      "tree": "50d118c7d22b7880831863514d6119d359a9a9ee",
      "parents": [
        "7e45f58ad7b6553ecd64c7472d392c31a6e0e2ac"
      ],
      "author": {
        "name": "Vlad",
        "email": "vzhd1701@gmail.com",
        "time": "Thu Apr 17 16:32:06 2025 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 17 09:32:06 2025 -0700"
      },
      "message": "remove unused writeUtf8 and readUtf8 from TProtocol.py (#3123)\n\ncleanup after https://github.com/apache/thrift/pull/3105"
    },
    {
      "commit": "0414755b6080e53c9de087912bafce264c07da9a",
      "tree": "04f65d67156163bee2e09d4c1c220e50a8236cb8",
      "parents": [
        "c5c0e6effed33b076b558f42c52ec5fcb26a208e"
      ],
      "author": {
        "name": "Asjad Syed",
        "email": "syedasjadsyed@gmail.com",
        "time": "Tue Apr 08 14:51:30 2025 -0400"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Apr 09 22:41:55 2025 +0200"
      },
      "message": "THRIFT-5861: Add isOpen method to TTornadoStreamTransport\n"
    },
    {
      "commit": "135b79e3f8cc058642a6c3ec05262dda79fd5392",
      "tree": "278077367c82085239ddc41a99fc1f70f1a8c4db",
      "parents": [
        "b28a4c48cd03d3e637a409f7f980d372a3251907"
      ],
      "author": {
        "name": "Asjad Syed",
        "email": "syedasjadsyed@gmail.com",
        "time": "Thu Mar 13 00:38:06 2025 -0400"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Mar 30 23:04:37 2025 +0200"
      },
      "message": "THRIFT-5857: Remove deprecated Tornado io_loop usage\nClient: py\nPatch: Asjad Syed\n\nThis closes #3117\n"
    },
    {
      "commit": "3494e1cd087f1d89848275445d92274a8734dbbf",
      "tree": "1828999aa358e4754c995abf371125c48ac57c40",
      "parents": [
        "21ed4a2f690fb8547593c64df376b97a877b1675"
      ],
      "author": {
        "name": "Alexandre Detiste",
        "email": "alexandre.detiste@gmail.com",
        "time": "Wed Feb 19 21:53:40 2025 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat Mar 08 10:29:18 2025 +0100"
      },
      "message": "replace \"utf8\" alias by canonical \"utf-8\" locale code + remove the second Python2 vs Py3 compat.py\nClient: py\nPatch: Alexandre Detiste\n\nThis closes #3105\n"
    },
    {
      "commit": "6e380306ef48af4050a61f2f91b3c8380d8e78fb",
      "tree": "f17754bc37b6f8e914ef6382e79ab54894a7228f",
      "parents": [
        "1075010915ee9638e22b33a11ea37b55699e267b"
      ],
      "author": {
        "name": "Vitaly Zdanevich",
        "email": "zdanevich.vitaly@ya.ru",
        "time": "Sat Mar 01 09:29:48 2025 +0400"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Tue Mar 04 01:06:37 2025 +0100"
      },
      "message": "http.client.HTTPSConnection: drop key_file, cert_file\n\nBecause remove in Python 3.12 https://docs.python.org/3/whatsnew/3.12.html#others\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": "23e0e5ce75300451f49727ee438edbc76fcbb372",
      "tree": "a8b9e5a928a5c68d056867864944366aa21ac212",
      "parents": [
        "0f027530d7d46ae25f3ed6d6ee453ca18ca43eb6"
      ],
      "author": {
        "name": "Susanne Lindgren",
        "email": "susanne.lindgren@foi.se",
        "time": "Tue Nov 19 09:44:37 2024 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Nov 20 22:31:06 2024 +0100"
      },
      "message": "Don\u0027t use legacy ssl hostname validation for python \u003e\u003d 3.12\n"
    },
    {
      "commit": "8f9fba8a94b088ea274bd8c544ff997ffee74c9c",
      "tree": "be5229c173761d7133d882e8b42aa75b3b11c9b2",
      "parents": [
        "607cd54e1d68174a7e0351a4b2eafdeb375093d5"
      ],
      "author": {
        "name": "Alexandre Detiste",
        "email": "alexandre.detiste@gmail.com",
        "time": "Wed Aug 28 14:28:39 2024 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Fri Nov 01 18:49:00 2024 +0100"
      },
      "message": "remove dependency on Six\n"
    },
    {
      "commit": "7ec41775f2f244741c7c1ef1236a96d71648c498",
      "tree": "05670e2b85cbba6012c7edb49d45d5d60540edca",
      "parents": [
        "0f0243e1f0d4a97ad1abf05fa516acf2952811ac"
      ],
      "author": {
        "name": "Susanne Lindgren",
        "email": "susanne.lindgren@foi.se",
        "time": "Tue Oct 08 08:12:27 2024 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Mon Oct 21 22:40:03 2024 +0200"
      },
      "message": "Make ssl work with python 3.12\n\nIn python 3.12, ssl.match_hostname has been removed.\n\nssl.PROTOCOL_SSSLV23 has been deprecated since python 3.6.\n"
    },
    {
      "commit": "ef199ccbc2a56831bbacc436fff1de49fa7aac16",
      "tree": "ec1b9ec9588c6e1e5f6a4655deacd111f2556448",
      "parents": [
        "467c6bdcb14f1fcdfb416df92b76ca9e5abbdc90"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue Sep 03 01:28:31 2024 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue Sep 03 01:33:19 2024 +0200"
      },
      "message": "bump version number\n"
    },
    {
      "commit": "efe5e027355318c9b12993c829a80c68735e199b",
      "tree": "b667582e0b941f929ac998c55d846ef8c44d8881",
      "parents": [
        "cb9ceada554f47aa5ebbedfe3984de0983cf0226"
      ],
      "author": {
        "name": "Csaba Ringhofer",
        "email": "csringhofer@cloudera.com",
        "time": "Fri Aug 23 14:08:35 2024 +0200"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Fri Aug 23 08:32:35 2024 -0700"
      },
      "message": "THRIFT-5813: Close the socket in TSocket.isOpen() when peek() fails\nClient: py\n"
    },
    {
      "commit": "0bc2cb98d22d87a7af9ec3ccfa41383441a09629",
      "tree": "5ceb6ad31d299a5935e1a3d2b56b18b8ade67e82",
      "parents": [
        "0f0e11fbcee4f9230fdba6c7020c9f10fd09684a"
      ],
      "author": {
        "name": "Alexander Shadchin",
        "email": "shadchin@yandex-team.com",
        "time": "Sun Jul 21 23:27:26 2024 +0300"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Jul 24 22:07:07 2024 +0200"
      },
      "message": "Switch from `logger.warn` to `logger.warning`\n"
    },
    {
      "commit": "1405831722ac0e1e1ba100801bf21073a0d17940",
      "tree": "0b479a3c232e65c44ab1742aeb2e7568bffbcb04",
      "parents": [
        "0ed4a1deb441d71d928cf7fc58701ce1da6574dd"
      ],
      "author": {
        "name": "Charles Coulombe",
        "email": "charles.coulombe@calculquebec.ca",
        "time": "Mon Apr 15 20:29:50 2024 -0400"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Sat Jun 29 11:41:47 2024 +0200"
      },
      "message": "Use pip install instead of deprecated python setup.py install command\n"
    },
    {
      "commit": "0ed4a1deb441d71d928cf7fc58701ce1da6574dd",
      "tree": "00497c3c2e092b8519127c2bc8a3b1aaf19e0c8c",
      "parents": [
        "98a1ba250f4dd904d0d01388259baa147c7e3146"
      ],
      "author": {
        "name": "bwangelme",
        "email": "bwangel.me@gmail.com",
        "time": "Mon Apr 15 12:17:40 2024 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Sat Jun 29 11:38:21 2024 +0200"
      },
      "message": "THRIFT-5777: python fix mismatched timeout exceptions\n\nClient: [\"python\"]\n"
    },
    {
      "commit": "63f04583e389e7afee330f0341e045a73cdb1979",
      "tree": "58bc0d1ce220eb8e0c12844543a745d23a68eb7f",
      "parents": [
        "f6972f1a29cb3c94929f5eecef816e65bed755ef"
      ],
      "author": {
        "name": "Thomas",
        "email": "thomasbruggink@hotmail.com",
        "time": "Thu Mar 21 22:51:07 2024 +0900"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Tue Apr 02 14:09:27 2024 +0200"
      },
      "message": "Manually remove $(BUILT_SOURCES) since no-dist-built-sources doesnt work\n"
    },
    {
      "commit": "58000ccb185d504a03375ebac10a69bf2789440f",
      "tree": "28c47b1af58cdc5691bad05c33215684ff27c2c1",
      "parents": [
        "ac52d8dac15425f65f6e7ad4ecf776bfea1a3b18"
      ],
      "author": {
        "name": "bwangelme",
        "email": "bwangel.me@gmail.com",
        "time": "Mon Nov 06 12:21:38 2023 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Sun Feb 25 12:37:12 2024 +0100"
      },
      "message": "Fix: fix readMessageBegin name type error\nClient: [\"python\"]\n"
    },
    {
      "commit": "75cf93ed22264fecaa79e82f05fa9f02d49fc58b",
      "tree": "ad7e483b593040fadd747648624c844ceeef3b58",
      "parents": [
        "0c637d7aa553a52b11bf92855448a20914d59817"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Feb 04 14:50:37 2024 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Feb 04 14:50:37 2024 +0100"
      },
      "message": "bump version number\n"
    },
    {
      "commit": "be1c8fd836132fe9d7d6058db05fd9aacd3b3002",
      "tree": "5018a69f46de6801544541ce869e0a8f291bca4a",
      "parents": [
        "5cf71b2beec3c67a4c8452ddabbbc6ae43fff16f"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Tue Jan 02 09:04:19 2024 -0800"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Wed Jan 03 08:57:52 2024 -0800"
      },
      "message": "Fix github actions for python3 tests\n\nAdd a dummy test in test_sslsocket.py to workaround an issue in Python\n3.12.\n"
    },
    {
      "commit": "0d5b4f9fa1e9b69c1f8da9a68f2a7eb2c734662b",
      "tree": "31b8d8bbe69b3b4270481467224252f7547b4f46",
      "parents": [
        "bccca9301dedd6403062ef6be4c56533f889e5b5"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat Jul 08 12:49:11 2023 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat Jul 08 12:49:11 2023 +0200"
      },
      "message": "created reöease branch 0.19.0\n"
    },
    {
      "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": "ae3e96bd33777e75e92f8947d51240fae5beeaa8",
      "tree": "663a30c4ae599dcac0d8571e120dc6670b353bdc",
      "parents": [
        "f377dd3445362b5d5f051f549a12424663801894"
      ],
      "author": {
        "name": "Ling Li",
        "email": "liling@gmail.com",
        "time": "Thu Mar 16 17:34:51 2023 -0700"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Fri Mar 17 23:57:54 2023 +0100"
      },
      "message": "py TSocket: Only disable socket.IPV6_V6ONLY when the family is AF_INET6\n"
    },
    {
      "commit": "c6fd86d9f2f15665dd1f3b87e39ed7580d8b25dd",
      "tree": "b60156225f4e8793aee3c225c4ca7554d0da41fb",
      "parents": [
        "4eee6815276741a0381063b9e139a4938f808711"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Feb 06 23:42:52 2023 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Feb 06 23:42:52 2023 +0100"
      },
      "message": "bump version number\n"
    },
    {
      "commit": "916ae8b8134630f49d32e47c3f0f3218f855a24c",
      "tree": "e9bfcb171c2491f5a58eee0be055eba5ca14a2a3",
      "parents": [
        "277feceaedbf5cd6bfdb9c91c4e50832923aa15c"
      ],
      "author": {
        "name": "dejank-isystem",
        "email": "119041215+dejank-isystem@users.noreply.github.com",
        "time": "Tue Dec 20 18:57:53 2022 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Sun Jan 01 11:55:31 2023 +0100"
      },
      "message": "py server: Listen also on IPv4"
    },
    {
      "commit": "e0ee2c7514b812b5a18bfe9aab9594c5879dc34f",
      "tree": "120e01b66d1d0a82755dfedf150d9b721d5663cc",
      "parents": [
        "ec5e17714a1f9da34173749fc01eea33c7f6af62"
      ],
      "author": {
        "name": "Nick Withers",
        "email": "nwithers@sypaq.com.au",
        "time": "Wed Aug 31 16:22:27 2022 +1000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Fri Sep 02 22:40:13 2022 +0200"
      },
      "message": "THRIFT-5617: T(SSL)Socket TCP keep-alive incorrectly applies SO_KEEPALIVE to IPPROTO_TCP\n\nApply socket.SO_KEEPALIVE at the socket.SOL_SOCKET, not socket.IPPROTO_TCP, level\n"
    },
    {
      "commit": "c75646a359e4bb38ff11e4b7255a3ad49ab3319c",
      "tree": "754e37fc0f25d7e96b0d809b83f7e2eb05941445",
      "parents": [
        "22f6a8a3c879175e18ce95f88a393f34ff8f158c"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue Aug 30 22:54:32 2022 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue Aug 30 23:55:34 2022 +0200"
      },
      "message": "version bump\n"
    },
    {
      "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": "e3eb9afb20a0535d44c203a4195db9822f8861fc",
      "tree": "22449e217b4ca184342dbc6e562cdd3db2fea45b",
      "parents": [
        "4959a92385e2a6d7a4b8419784f85e5762c714cf"
      ],
      "author": {
        "name": "Michael Smith",
        "email": "michael.smith@cloudera.com",
        "time": "Wed Jun 08 17:23:27 2022 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Fri Jun 10 08:41:25 2022 -0700"
      },
      "message": "THRIFT-5595: Handle peek request error with SSLSocket\n\nThe update to TSocket in 01d53f483a7531ad4899b522060e8913dca309fb errors\nfor TSSLSocket with\n```\nValueError: non-zero flags not allowed in calls to recv() on \u003cclass \u0027ssl.SSLSocket\u0027\u003e\n```\nHandles ValueError from ssl.SSLSocket to fix isOpen when using\nTSSLSocket.\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": "103a11c9c28ac963a3b2591ecac641db3cbaa113",
      "tree": "e8b187fabc92540991a31ffc7848ee72290fb53d",
      "parents": [
        "ff746966584816988a3babf25debc8a87c50581d"
      ],
      "author": {
        "name": "Márton Csordás",
        "email": "csordasmarton92@gmail.com",
        "time": "Thu Dec 16 10:08:11 2021 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Mon Feb 21 19:19:42 2022 +0100"
      },
      "message": "THRIFT-5467 Python: fix CannotSendHeader exception\n\nBased on the python source for `http.client`, `HTTPConnection.putheader`\ncan only be called after a request has been started, and before it\u0027s\nbeen sent. Otherwise it will throw a `http.client.CannotSendHeader`\nexception.\n\nIf the server returns a `Set-Cookie` header, the client will always\nfail with the `CannotSendHeader` exception because `HTTPConnection.putheader`\nis called after reading the response.\n\nWith this patch we will call this method before the request has been sent.\n"
    },
    {
      "commit": "50819ce8ef72ad7ccf79c6c3fb3b77a91ab8e540",
      "tree": "90f099118ebed5c25ef0d66fd01db1bc5b4c6f1c",
      "parents": [
        "3cac3204519bbdfe02beb9d863e9b873cdaf9d07"
      ],
      "author": {
        "name": "Jeremiah",
        "email": "4462211+jeremiahpslewis@users.noreply.github.com",
        "time": "Tue Feb 08 12:46:45 2022 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Tue Feb 08 20:33:32 2022 +0100"
      },
      "message": "Fix winsock capitalization for case sensitive cross-compilation"
    },
    {
      "commit": "bf0967537bdf189a8806fe05a2710e1011370956",
      "tree": "916ad520d2d52334802a6a34c7c6975065c5e897",
      "parents": [
        "5f16344311a57ac016190984dd1aaa44e19a6487"
      ],
      "author": {
        "name": "くらげ",
        "email": "73342826+kurages@users.noreply.github.com",
        "time": "Sun Jul 25 23:46:42 2021 +0900"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Jan 26 23:00:04 2022 +0100"
      },
      "message": "Fixed proxy related bugs"
    },
    {
      "commit": "6868ebbb31cf32dbde018b03831d167565ba51d8",
      "tree": "bb4538c411b8f91e73529979584d0b819b23c16d",
      "parents": [
        "7a6829531f00f7e95f904d5794d632acee62ddf0"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Jan 20 21:02:02 2022 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Jan 20 21:02:02 2022 +0100"
      },
      "message": "Release 0.16.0\n"
    },
    {
      "commit": "9d7d627b518f84d6f7bfee76f1d7410e63c4fe7c",
      "tree": "adb901ad54077aa99dad3606006d684c18f907b2",
      "parents": [
        "e12fbe88e2f734cbcb010f0f820a6e43e94c8ec2"
      ],
      "author": {
        "name": "Ali-Akber Saifee",
        "email": "ali@indydevs.org",
        "time": "Fri Jan 07 07:58:13 2022 -0800"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Sat Jan 08 00:17:27 2022 -0800"
      },
      "message": "Remove excess assertions\n\nAsserting on trying to deserialize None, or an invalid serialized\nbuffer result in different exceptions being raised in python2/3.\n"
    },
    {
      "commit": "b724787d373de99fee2222ab0eb2e052f8c8d3ed",
      "tree": "fe886e30b4d74d6f2595243c0d90b7cd892ecba4",
      "parents": [
        "c6c5a0596ffc441e6cd1ad60130cdcdcb2e319e4"
      ],
      "author": {
        "name": "Ali-Akber Saifee",
        "email": "ali@indydevs.org",
        "time": "Sat Dec 11 08:39:24 2021 -0800"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Thu Dec 16 13:12:44 2021 -0800"
      },
      "message": "Define PY_SSIZE_T_CLEAN to use PyObject_CallFunction\n\nWhen using the building functions for the fallback scenario\nin readBytes, a SystemError is raised in python 3.10 (raised\nas a warning till python 3.9) due to the use of \"#yi\" for the output\nbuffer argument.\n\nExtra test cases are added to cover serialization/deserialization\nboth with compact \u0026 binary protocol both with and without the\nc-extension\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": "50f97135ccc328aeb84b75d5374016abaa269da1",
      "tree": "eb1085d7776db38965dc11da476594182b48b6f8",
      "parents": [
        "ea1e8ff1407112342ed17cb95087bbda4e9b2cc0"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Nov 14 12:33:50 2021 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Nov 14 12:35:52 2021 +0100"
      },
      "message": "FIX Python code style TTransport.py:400:5: E301 expected 1 blank line, found 0\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": "7ecc9ef02110b66e6a734ff5c11e103c4b9fbc1e",
      "tree": "fac9808d78eb81a6fccf5ff878d6745ca8d768a1",
      "parents": [
        "ab2f23a2a9cd8d170e6d45ae6ad0e693052e3599"
      ],
      "author": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Sat Sep 25 16:47:05 2021 -0400"
      },
      "committer": {
        "name": "Jim King",
        "email": "jking@apache.org",
        "time": "Sat Sep 25 22:09:31 2021 -0400"
      },
      "message": "minor changes to make pypi distribution look better (long desc)\n"
    },
    {
      "commit": "f7e6c654bde5d9832bede2b48b460c3e1bbbbb92",
      "tree": "0ea81a3df907866d7b24fde50ca9c439962f8b7d",
      "parents": [
        "2c78047fcbd2783e88cab0ebc7245598695477ae"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue Aug 03 22:21:05 2021 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue Aug 03 22:21:05 2021 +0200"
      },
      "message": "bump version number\n"
    },
    {
      "commit": "d8c4345ecfcbf506d9e973ae19ee857e6d5378dd",
      "tree": "8a9ab681974d8319102492dfe739bafd4c714a70",
      "parents": [
        "44e8a431a3bb45fd46e2959b308ea96b1ee3c702"
      ],
      "author": {
        "name": "geehanlin",
        "email": "geehanlin@tencent.com",
        "time": "Fri Jun 04 19:28:00 2021 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Fri Jul 09 21:56:46 2021 +0200"
      },
      "message": "fix isOpen return None, to be consistent with other transport\nClient: python\n"
    },
    {
      "commit": "055fe67ec1856d25f7ad3b98b5cd172fdf8e2c70",
      "tree": "062bf11a4e4dff23d87121e68022eb6e393699f7",
      "parents": [
        "526a1acf3b870d3b292423e19b9bb9bb0d18c0c3"
      ],
      "author": {
        "name": "Neil Williams",
        "email": "neil@reddit.com",
        "time": "Tue Feb 16 15:12:15 2021 -0800"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Tue Feb 16 16:31:00 2021 -0800"
      },
      "message": "THRIFT-5352: Fix construction of Py exceptions with no fields\n\nClient: py\n\nWhen no fields are present, we don\u0027t get the special constructor that\nuses __setattr__ to avoid these checks. So the default constructor sets\nmessage normally and triggers the anti-mutation tripwires.\n"
    },
    {
      "commit": "3fc0b8d061fb1adcae49862e0c63ce94f0a0ee0f",
      "tree": "2373cb9dd0136f0054257eaa10041a20de2a2052",
      "parents": [
        "b5fe1dbc0cac81ab99ec5d71de70f4389b234888"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Feb 11 23:17:45 2021 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Feb 11 23:17:45 2021 +0100"
      },
      "message": "Version number aligned to 0.15.0\n"
    },
    {
      "commit": "1c35d6ba954bc441e9e603599965e0121eb5132d",
      "tree": "09a9e94393edf88461c72f3c49ac4843594ea5cf",
      "parents": [
        "13662dd7be9aa3ffdbbc49bd1c3b77c4549569bd"
      ],
      "author": {
        "name": "Neil Williams",
        "email": "spladug@users.noreply.github.com",
        "time": "Mon Jan 04 11:27:01 2021 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 04 11:27:01 2021 -0800"
      },
      "message": "THRIFT-5331: Py: make THeader subprotocol configurable (#2302)\n\nClient: py\r\n\r\nThis allows clients to choose which subprotocol (TBinary/TCompact) to frame with headers. The server will already accept either protocol and reply correctly."
    },
    {
      "commit": "05bb55148608b4324a8c91c21cf9a6a0dff282fa",
      "tree": "187c6dcc7e81638746d9e15850ce441adaf290b7",
      "parents": [
        "196254ba393a7e70e91fcf3c35026c82fb64f7fa"
      ],
      "author": {
        "name": "stiga-huang",
        "email": "huangquanlong@gmail.com",
        "time": "Fri Oct 30 20:07:31 2020 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Nov 01 18:17:18 2020 +0100"
      },
      "message": "THRIFT-5303 Fix missing error handling in using PyUnicode_DecodeUTF8\nClient: py\nPatch: stiga-huang\n\nThis closes #2269\n"
    },
    {
      "commit": "e6d97c0f66118c43f43bb71644c18d330a3ae522",
      "tree": "89ba0b08df62eba0edd4f0e5727ed8a1a4dc3e07",
      "parents": [
        "c80b8bbe703f593d1aa47941bd6b61f7726068bd"
      ],
      "author": {
        "name": "zeshuai007",
        "email": "51382517@qq.com",
        "time": "Tue Aug 25 09:53:39 2020 +0800"
      },
      "committer": {
        "name": "zeshuai007",
        "email": "51382517@qq.com",
        "time": "Sat Sep 19 09:23:58 2020 +0800"
      },
      "message": "test ci fix\n"
    },
    {
      "commit": "01d53f483a7531ad4899b522060e8913dca309fb",
      "tree": "5e0defc327b49ed329aa9022cb6ea884052239a7",
      "parents": [
        "68c1506715d834c5ab274a622a67bab207936ac7"
      ],
      "author": {
        "name": "Neil Williams",
        "email": "neil@reddit.com",
        "time": "Tue Jul 07 07:27:29 2020 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Thu Aug 06 08:27:55 2020 -0700"
      },
      "message": "THRIFT-5248: Python: Make TSocket.isOpen check if server still connected\n\nClient: py\n\nThis is inspired by changes to the Go library (THRIFT-5214) and, by\nproxy, this blog post[1]. The idea is that if the other end of the\nsocket has closed their end of the connection, we can figure that out by\ndoing a non-blocking read on our socket before we waste time serializing\nand sending a message just to find out the socket is closed when we try\nto read the response.\n\n[1]: https://github.blog/2020-05-20-three-bugs-in-the-go-mysql-driver/\n"
    },
    {
      "commit": "26681fbdb77f6dfaf2f2613d4ad860a224e84b71",
      "tree": "b742ea0959bd5e90e1748323a870291ef8ad8e9f",
      "parents": [
        "3f78c70bbba82c733b1545d39eb5b489ac384e4c"
      ],
      "author": {
        "name": "zeshuai007",
        "email": "51382517@qq.com",
        "time": "Wed Jun 03 17:24:38 2020 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Jun 14 14:17:11 2020 +0200"
      },
      "message": "THRIFT-5225: Use nullptr instead of NULL\nPatch: Zezeng Wang\n\nThis closes #2168\n"
    },
    {
      "commit": "797fe252e0df18a24aa025d00d1d53c288ef2d4f",
      "tree": "ed80962526773a1a4392253dedc3465a3a605040",
      "parents": [
        "e6d7d13c35f5c9fe57889d7e77b0ba63910b1052"
      ],
      "author": {
        "name": "zeshuai007",
        "email": "51382517@qq.com",
        "time": "Wed May 20 15:20:07 2020 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue May 26 21:46:16 2020 +0200"
      },
      "message": "Supplement TNonblockingServer.py testcase\nClient: py\nPatch: Zezeng Wang\n\nThis closes #2150\n"
    },
    {
      "commit": "26e6c84cde490a22d39c43ba3903dd94bbb8497f",
      "tree": "7e0c022937406cdedd6ab75100cba3a7d51b99a3",
      "parents": [
        "64ac65ea7e0763c32d6dca988a2c779f89bece84"
      ],
      "author": {
        "name": "zeshuai007",
        "email": "51382517@qq.com",
        "time": "Wed May 06 14:37:43 2020 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed May 13 23:56:08 2020 +0200"
      },
      "message": "Add testcase for compactprotocol(python)\nClient: py\nPatch: zeshuai007 \u003c51382517@qq.com\u003e\n\nThis closes #2129\n"
    },
    {
      "commit": "9b9567b23378c821b460cfe54b70b9d189bf194d",
      "tree": "f5403a348992e88e8d5240b4fbb88f77dc281f08",
      "parents": [
        "bbc5e06a2e36d788b095fb37a52c90fc4d54b211"
      ],
      "author": {
        "name": "max ulidtko",
        "email": "ulidtko@gmail.com",
        "time": "Mon Apr 27 16:04:27 2020 +0300"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri May 08 09:23:47 2020 +0200"
      },
      "message": "THRIFT-5186: Don\u0027t pass AI_ADDRCONFIG to getaddrinfo()\nClient: cpp,pas,py\nPatch: Max Ulidtko\n\nThis closes #2124\n\nIf a host doesn\u0027t have assigned IPv4 or IPv6 addresses, thrift communication\nover localhost-only is impossible due to thrift library bug. It happens\nwhen making getaddrinfo syscall with AI_ADDRCONFIG flag.\n\nFrom man getaddrinfo(3):\nIf  hints.ai_flags  includes  the  AI_ADDRCONFIG  flag,  then  IPv4  addresses\nare returned in the list pointed to by res only if the local system has at least\none IPv4 address configured, and IPv6 addresses are returned only if the local\nsystem has at least one IPv6 address configured.  The loopback address is not\nconsidered for this case as valid as a configured address.\n\nUpstream bug with AI_ADDRCONFIG ai_flags was fixed for cpp library and win32\nplatform only. See https://issues.apache.org/jira/browse/THRIFT-2539\n\nPatch based on Thrift 0.13.0, commit cecee50308fc7e6f77f55b3fd906c1c6c471fa2f.\n"
    },
    {
      "commit": "bbc5e06a2e36d788b095fb37a52c90fc4d54b211",
      "tree": "844251f7c5958b6629e48d9b3298934fcc70d628",
      "parents": [
        "abc2ec60964538558fd99f72a4d4c16820e8bfb4"
      ],
      "author": {
        "name": "zeshuai007",
        "email": "51382517@qq.com",
        "time": "Thu May 07 17:10:32 2020 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri May 08 09:18:46 2020 +0200"
      },
      "message": "Supplement TZlibTransport.py testcase\nClient: py\nPatch: zeshuai007 \u003c51382517@qq.com\u003e\n\nThis closes #2132\n"
    },
    {
      "commit": "39381695eb456349b02e68d9167181ae41656b73",
      "tree": "4dd236706cf4e65468cedf3ee3bb144fa6a4abec",
      "parents": [
        "371d92f159d4e518f1de81519b3a9de629ba8970"
      ],
      "author": {
        "name": "Zezeng Wang",
        "email": "51382517@qq.com",
        "time": "Tue Apr 28 14:24:58 2020 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 28 07:24:58 2020 +0100"
      },
      "message": "Add file and memory buffer tests for Python\n\nClient: py"
    },
    {
      "commit": "c3728122d2ddb2e0236b1e08bdb5e24b8baae9dd",
      "tree": "d24ac1387ab21c6cccd1b1163d1e5b01b539abb0",
      "parents": [
        "b416ffa72dbcab8ed8a156c95cb8e480ed46a438"
      ],
      "author": {
        "name": "Zezeng Wang",
        "email": "51382517@qq.com",
        "time": "Mon Apr 27 15:48:19 2020 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 27 08:48:19 2020 +0100"
      },
      "message": "Supplement TBinaryprotocol module testcase\n\nClient: py"
    },
    {
      "commit": "b83ae2cedf8a345142c3b96e9b529a65fe41bc16",
      "tree": "5d9b9bdb1a94ac978abe7efc9da6dc9bb043b6c0",
      "parents": [
        "b94c16638555c4efa191092bf0f14ce45c3621b8"
      ],
      "author": {
        "name": "zeshuai007",
        "email": "51382517@qq.com",
        "time": "Fri Apr 24 11:35:55 2020 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Apr 26 13:29:48 2020 +0200"
      },
      "message": "supplementary testcase for TJSONProtocol\nClient: py\nPatch: zeshuai007 \u003c51382517@qq.com\u003e\n\nThis closes #2113\n"
    },
    {
      "commit": "69642f389a06f5ba1b374de52c6b0e29892035d8",
      "tree": "9d06931572c79d9fc370fab464b0c124698beaec",
      "parents": [
        "daa7669a7665539a484815a7d5200651ba74df9a"
      ],
      "author": {
        "name": "Joao Antonio",
        "email": "joao.p.antonio@gmail.com",
        "time": "Sat Apr 04 15:39:03 2020 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Apr 13 18:06:56 2020 +0200"
      },
      "message": "THRIFT-5165: THttpClient saves session cookie.\nClient: py\nPatch: Joao Antonio\n\nThis closes #2086\n"
    },
    {
      "commit": "9c43962da8e4b530014619e3703a279053cf2182",
      "tree": "9b862189ed6e5fbdd9819a964c7f2efe69aa9bb4",
      "parents": [
        "9320f891d7d972fc2cc4f9569b66767c5dfc4242"
      ],
      "author": {
        "name": "Elvis Pranskevichus",
        "email": "elvispranskevichus@pinterest.com",
        "time": "Wed Dec 11 16:47:52 2019 -0500"
      },
      "committer": {
        "name": "Duru Can Celasun",
        "email": "can@dcc.im",
        "time": "Thu Dec 12 13:50:42 2019 +0000"
      },
      "message": "Revert \"Revert \"THRIFT-4002: Make generated exception classes immutable by default\"\"\n\nThis reverts commit 1234ddf8a5c98d5d700c82e087f04725170ad581.\n"
    },
    {
      "commit": "9320f891d7d972fc2cc4f9569b66767c5dfc4242",
      "tree": "5b3a502bcd271eff99c6ab5eed576674943e79a1",
      "parents": [
        "6e023df1ded255dda00eb4c041c201e66c8d1fbc"
      ],
      "author": {
        "name": "Elvis Pranskevichus",
        "email": "elvispranskevichus@pinterest.com",
        "time": "Wed Dec 11 16:51:12 2019 -0500"
      },
      "committer": {
        "name": "Duru Can Celasun",
        "email": "can@dcc.im",
        "time": "Thu Dec 12 13:50:42 2019 +0000"
      },
      "message": "Revert \"Revert \"Remove unnecessary TException.message hack\"\"\n\nThis reverts commit 3d9f50d61728d377951f9b6df5f19196f6b3af46.\n"
    },
    {
      "commit": "3d9f50d61728d377951f9b6df5f19196f6b3af46",
      "tree": "c9b2a58f29402781e3a12009e142a19ee851d80f",
      "parents": [
        "1234ddf8a5c98d5d700c82e087f04725170ad581"
      ],
      "author": {
        "name": "D. Can Celasun",
        "email": "can@dcc.im",
        "time": "Tue Dec 10 22:13:19 2019 +0000"
      },
      "committer": {
        "name": "D. Can Celasun",
        "email": "can@dcc.im",
        "time": "Tue Dec 10 22:13:19 2019 +0000"
      },
      "message": "Revert \"Remove unnecessary TException.message hack\"\n\nThis reverts commit 45a9827f0f455d377ae87d9a35349c10181d6893.\n"
    },
    {
      "commit": "1234ddf8a5c98d5d700c82e087f04725170ad581",
      "tree": "38cfceb980bf08948c575c4091b8e17fbbb47ab6",
      "parents": [
        "b40f5c227f8db61be523f23ca017519167589d97"
      ],
      "author": {
        "name": "D. Can Celasun",
        "email": "can@dcc.im",
        "time": "Tue Dec 10 22:13:06 2019 +0000"
      },
      "committer": {
        "name": "D. Can Celasun",
        "email": "can@dcc.im",
        "time": "Tue Dec 10 22:13:06 2019 +0000"
      },
      "message": "Revert \"THRIFT-4002: Make generated exception classes immutable by default\"\n\nThis reverts commit b40f5c227f8db61be523f23ca017519167589d97.\n"
    },
    {
      "commit": "b40f5c227f8db61be523f23ca017519167589d97",
      "tree": "78b38c45fc8cf8104c912e2415eefb6b63103c01",
      "parents": [
        "45a9827f0f455d377ae87d9a35349c10181d6893"
      ],
      "author": {
        "name": "Elvis Pranskevichus",
        "email": "elvispranskevichus@pinterest.com",
        "time": "Thu Mar 07 11:00:34 2019 -0500"
      },
      "committer": {
        "name": "D. Can Celasun",
        "email": "can@dcc.im",
        "time": "Tue Dec 10 20:44:24 2019 +0000"
      },
      "message": "THRIFT-4002: Make generated exception classes immutable by default\n\nCurrently, the generated exception classes are not hashable under\nPython 3 because of the generated `__eq__` method.  Exception objects\nare generally expected to be hashable by the Python standard library.\nPost-construction mutation of an exception object seems like a very\nunlikely case, so enable hashing for all exceptions by making them\nimmutable by default.  This also adds a way to opt-out of immutability\nby setting the `python.immutable` annotation to `\"false\"`.\n"
    },
    {
      "commit": "45a9827f0f455d377ae87d9a35349c10181d6893",
      "tree": "38cfceb980bf08948c575c4091b8e17fbbb47ab6",
      "parents": [
        "ffb97e105cbef6afc809a1bdac9cdac1f35d6bab"
      ],
      "author": {
        "name": "Elvis Pranskevichus",
        "email": "elvispranskevichus@pinterest.com",
        "time": "Thu Mar 07 12:18:59 2019 -0500"
      },
      "committer": {
        "name": "D. Can Celasun",
        "email": "can@dcc.im",
        "time": "Tue Dec 10 20:44:22 2019 +0000"
      },
      "message": "Remove unnecessary TException.message hack\n\nThrift attempts to work-around the Python 2.7 DeprecationWarning\naround `BaseException.message` by using a property.  This hack is\nunnecessary since `message` is _also_ written as a regular attribute in\nthe `TException` constructor (and would be in any of its children),\nhence the `BaseException_get_message()` wouldn\u0027t even be called.\n\nThis hack also stands in the way of making exception instances\nimmutable (which is a prerequisute to fixing THRIFT-4002).\n"
    },
    {
      "commit": "cf73b66cd83e2e883d00dff518d3c0250bb839cc",
      "tree": "2af7cc603c0fd3b53a3280fcd117414925f9e2e4",
      "parents": [
        "bc75467e4426c76d201c83621f08fa211660b6c3"
      ],
      "author": {
        "name": "Kevin Wojniak",
        "email": "kainjow@users.noreply.github.com",
        "time": "Sat Nov 02 22:01:56 2019 -0700"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Nov 03 18:42:11 2019 +0100"
      },
      "message": "Remove unused exception variable\nClient: Python\nPatch: Kevin Wojniak\n\nThis closes #1912\n\nFixes MSVC warning seen in logs:\n\u003e [00:11:03] src\\ext/protocol.tcc(177): warning C4101: \u0027ex\u0027: unreferenced\n\u003e local variable [C:\\projects\\build\\MSVC2015\\x86\\lib\\py\\python_build.vcxproj]\n"
    },
    {
      "commit": "616df98f00a594f133466aa7f94930c1bf85b24a",
      "tree": "71d80086665a13d2cf5d6aedbe6f600aea91e06c",
      "parents": [
        "6701dbb8e89f6550c7843e9b75b118998df471c3"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat Oct 19 22:08:13 2019 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Oct 20 00:12:14 2019 +0200"
      },
      "message": "fix veralign.sh and bump version (again)\n"
    },
    {
      "commit": "3131fe975ce2efd2887e41f86e73f7205a02a2a4",
      "tree": "990eb27ed20aedcaa942790b30cbd5f0d64d1409",
      "parents": [
        "93ff9b00531682ece08a1a43883e55fd2aa83a15"
      ],
      "author": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Tue Jul 02 14:21:05 2019 -0400"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Sun Jul 07 12:16:52 2019 -0400"
      },
      "message": "THRIFT-4904: Fix python unit test errors and exception escapes\n\nDue to the way SSL layers on top of sockets, it was possible\nto complete a connection and then have the server close it.\nThis would happen if the client is not checking certificates\nbut the server is.  The TSSLSocket unit test was enhanced to\ndo a read and a write as well as just connecting to ensure a\nmore complete test.\n\nThe TSocket read() and write() calls were leaking OSError,\nsocker.error, and ssl.Error exceptions.  These cases are now\nwrapped into a TTransportException of the appropriate type,\nand the original exception is added as an argument named inner.\n"
    },
    {
      "commit": "95870f06cdee04b9ec8a263f8c71597a3b95678a",
      "tree": "ec66c96b181290e1568e5cbb4050ad72420356da",
      "parents": [
        "a85d532bb397ecfab59afa079da1fe776548af08"
      ],
      "author": {
        "name": "antbofh",
        "email": "antbofh@gmail.com",
        "time": "Fri Jun 21 22:33:55 2019 +0300"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Fri Jun 21 15:33:55 2019 -0400"
      },
      "message": "THRIFT-4892: fixed data type conflict with simultaneous usage of bytes and str (#1804)\n\n"
    },
    {
      "commit": "6b3f7d92f9dc231cb7ae1606dd15d8faad38be1a",
      "tree": "31abece4b6ce1a414c0adf040e2abe545cf70f7a",
      "parents": [
        "b000bc02df16a16a21d0fe3467227c3bc6d62a0c"
      ],
      "author": {
        "name": "Tim Armstrong",
        "email": "tarmstrong@cloudera.com",
        "time": "Thu Feb 14 14:59:22 2019 -0800"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Thu Feb 14 19:17:01 2019 -0500"
      },
      "message": "Fix spelling errors in TSSLSocket.py\n"
    },
    {
      "commit": "dbc1f8def5018ce5d85d38b9875c6c6b6b424478",
      "tree": "0011127f2edd9221f973eb157438bbd11c0b74d2",
      "parents": [
        "3ca88065dfdb24c5bad6fbd1e3a7e01812628d3b"
      ],
      "author": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Thu Feb 14 16:46:38 2019 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 14 16:46:38 2019 -0500"
      },
      "message": "THRIFT-4024, THRIFT-4783: throw when skipping invalid type (#1742)\n\n* THRIFT-4024: make c_glib throw on unsupported type when skipping\r\n* THRIFT-4783: throw on invalid skip (py)\r\n* THRIFT-4024: make cpp throw on unsupported type when skipping\r\n* THRIFT-4024: uniform skip behavior on unsupported type\r\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": "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": "74a3e0923d9425fd0c3c854b770782148f91ec19",
      "tree": "29bc9e3186841e5fb76fd42554a981952fcb96d0",
      "parents": [
        "e44f6a9e06aa0ae42463a791357c0e5c18020c59"
      ],
      "author": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Thu Feb 07 19:33:52 2019 -0500"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Fri Feb 08 00:34:01 2019 -0500"
      },
      "message": "THRIFT-4779: fix exception type in TMultiplexedProcessor\n"
    },
    {
      "commit": "e44f6a9e06aa0ae42463a791357c0e5c18020c59",
      "tree": "5c99b0c84837103bed6e51dff7571a9530731e60",
      "parents": [
        "fc6c15c83de4f9d34e570c1f1465e7a1f6abc798"
      ],
      "author": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Thu Feb 07 17:11:21 2019 -0500"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Thu Feb 07 20:00:16 2019 -0500"
      },
      "message": "THRIFT-4778: fix inheritance for protocol factories\n"
    },
    {
      "commit": "53bd0e6295547e76ab00913cfd62f8d040bd996c",
      "tree": "b6415302e64a3a275a3e6484bd2e3968c8d1ba19",
      "parents": [
        "2be45e566dd490aabf7a45ec3474545a0817024e"
      ],
      "author": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Thu Jan 31 17:11:04 2019 -0500"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Fri Feb 01 11:13:49 2019 -0500"
      },
      "message": "THRIFT-4745: fixes compiler warnings\n"
    },
    {
      "commit": "f15b4152b9ea8e73a24e37e3f54a999060ea68bf",
      "tree": "09960f6a5cb124417c0c86b4871aea8a81caa927",
      "parents": [
        "84d9cd27f9a7a5062c9cc270583a001a7aaec196"
      ],
      "author": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Thu Jan 31 13:01:56 2019 -0500"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Fri Feb 01 11:13:49 2019 -0500"
      },
      "message": "THRIFT-4405: fix negative sequence id handling in python TCompactProtocol\n"
    },
    {
      "commit": "f6511c904bcac1dd8c7e24aa3432326738865f1b",
      "tree": "4fd5178eab2ecf88282db1d197e2df6baa74f51d",
      "parents": [
        "2ec93c8a2da2531755078ab6d5a65a96e26cf4c2"
      ],
      "author": {
        "name": "Jun",
        "email": "Junnplus@users.noreply.github.com",
        "time": "Fri Feb 01 12:07:58 2019 +0800"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Thu Jan 31 23:07:58 2019 -0500"
      },
      "message": "THRIFT-4767: Added TSocket/TSSLSocket support tcp keep-alive in python (#1725)\n\n* THRIFT-4767: Added TSocket support tcp keep-alive in python\r\n* TSSLSocket support tcp keep-alive\r\n"
    },
    {
      "commit": "638c91f6be6e4417f0d5d8d57886c9b74afabfbd",
      "tree": "2ceeb35214e91e3df510777068cfa290f2285281",
      "parents": [
        "5e23c4df5b8a2c7f36f807dc07dc897fd8a39763"
      ],
      "author": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Sat Jan 26 10:33:04 2019 -0500"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Sun Jan 27 08:21:40 2019 -0500"
      },
      "message": "THRIFT-1549: properly unwrap and close TSSLSocket in python\n"
    },
    {
      "commit": "b96c43892a9e89dfa61834505bb25357e80287da",
      "tree": "02bbf30d80e6f6ef8c76bc67ad20b90331b6de9d",
      "parents": [
        "8935c98046dbbdd36ede73c1525f1be9df8da5cd"
      ],
      "author": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Thu Jan 24 17:45:07 2019 -0500"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Fri Jan 25 23:33:54 2019 -0500"
      },
      "message": "THRIFT-4717: fix up make clean with autoconf\n"
    },
    {
      "commit": "8935c98046dbbdd36ede73c1525f1be9df8da5cd",
      "tree": "478212d599d7d7bdb0404bf4b1a86b75be305ea7",
      "parents": [
        "129bb3e10d7bf1a1965d31cb8f30c7ccd3f96ecb"
      ],
      "author": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Fri Jan 25 00:41:17 2019 -0500"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Fri Jan 25 23:33:54 2019 -0500"
      },
      "message": "THRIFT-4753: re-version master to next release 0.13.0\n"
    },
    {
      "commit": "fe11c48ee185c9aead78d0c67c644c575df255a8",
      "tree": "1ab58eef8ffabba6ddf48edf712556857a19f99f",
      "parents": [
        "4eac57abcfc5f6fb591d894fe446add243392557"
      ],
      "author": {
        "name": "junnplus",
        "email": "junnplus@gmail.com",
        "time": "Sat Jan 12 02:15:05 2019 +0800"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Mon Jan 14 12:10:24 2019 -0500"
      },
      "message": "THRIFT-4733: Fix test unix socket address already in use\n"
    },
    {
      "commit": "0f43f95b89db01a8c68225824f8aa7fd4522007e",
      "tree": "3a08b4fc6b567a7aa8fde17c2e3ddf72e78e4365",
      "parents": [
        "8cb3b6854818bf63d3208afaf4dc9e70c6137500"
      ],
      "author": {
        "name": "cyy",
        "email": "cyyever@outlook.com",
        "time": "Sat Jan 05 19:27:00 2019 +0800"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Mon Jan 07 08:11:37 2019 -0500"
      },
      "message": "revert noexcept changings\n"
    },
    {
      "commit": "316723add4c368ffd144dd5beb55245832e073fa",
      "tree": "4dc5c86e776e4818ba5fb102e33eb62cfeb8382f",
      "parents": [
        "52637b33aba090851436b2031476529423ea3281"
      ],
      "author": {
        "name": "cyy",
        "email": "cyyever@outlook.com",
        "time": "Sat Jan 05 16:35:14 2019 +0800"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Mon Jan 07 08:11:37 2019 -0500"
      },
      "message": "remove stdcxx namespace and use std directly\n"
    },
    {
      "commit": "c3375d9e434b5740808813138b28b70517e82c7d",
      "tree": "db8f0e81129461b1ddc6e7a951cbb5667ca15634",
      "parents": [
        "a139082755369611ed243376ec3c4161452369fc",
        "384647d290e2e4a55a14b1b7ef1b7e66293a2c33"
      ],
      "author": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Sun Dec 30 11:06:00 2018 -0500"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Sun Dec 30 11:06:00 2018 -0500"
      },
      "message": "Merge remote-tracking branch \u0027origin/0.12.0\u0027 into consume-0.12.0\n"
    },
    {
      "commit": "384647d290e2e4a55a14b1b7ef1b7e66293a2c33",
      "tree": "f876c79d4945d64c1eb8fb55291ba96a03af6dae",
      "parents": [
        "9b75e4fe745a9b08e6ccdc0998ec7a69272f5b4c"
      ],
      "author": {
        "name": "jfarrell",
        "email": "jfarrell@apache.org",
        "time": "Tue Oct 16 22:36:46 2018 -0400"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Tue Dec 18 20:24:34 2018 -0500"
      },
      "message": "Version 0.12.0\n"
    }
  ],
  "next": "9b75e4fe745a9b08e6ccdc0998ec7a69272f5b4c"
}
