)]}'
{
  "log": [
    {
      "commit": "6f339004e6c636d9ce7b114d351e9141edff5c17",
      "tree": "9050ed69e347cfc1c335da0756bbbf3d96615a68",
      "parents": [
        "1e3d90d8fd4160d538b7a4d902169eae5155e08a"
      ],
      "author": {
        "name": "Jiayu Liu",
        "email": "Jimexist@users.noreply.github.com",
        "time": "Thu Apr 20 07:39:35 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 20 07:39:35 2023 +0800"
      },
      "message": "THRIFT-5564: add GitHub action for python 2.x and 3.x (#2787)\n\n* update .github workflow to consolidate config\r\n\r\n* add lib python\r\n\r\n* Update build.yml\r\n\r\nupdate\r\n\r\n* rust \u003d\u003e rs\r\n\r\n* Update build.yml\r\n\r\nupdate\r\n\r\n* update\r\n\r\ninstall openssl\r\n\r\nremove 3.6\r\n\r\nsetup daemon\r\n\r\ntry 3.6\r\n\r\nfix lib path\r\n\r\nadd backports of py\r\n\r\nUpdate build.yml\r\n\r\nuse sudo\r\n\r\nadd install-exec-hook\r\n\r\n* add ssl test skip"
    },
    {
      "commit": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "9b75e4fe745a9b08e6ccdc0998ec7a69272f5b4c",
      "tree": "747d56c669ceafbea6dc5955e8622cc39e6fa1cf",
      "parents": [
        "56ac72e74ae354c286c41f5d5a3c0b8723feb587"
      ],
      "author": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Mon Dec 17 16:21:14 2018 -0500"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Tue Dec 18 10:17:57 2018 -0500"
      },
      "message": "THRIFT-4680: fix up std::min, std::max, and numeric limits min/max on Windows; remove NOMINMAX from cmake build\n"
    },
    {
      "commit": "7af79c83591ddf289abaeacc7f0e97af7397f825",
      "tree": "744586c696aa2adf7f675b8fabf2b0783d4ab059",
      "parents": [
        "5112afcc9732381401435b7134a18aab30d4dec9"
      ],
      "author": {
        "name": "lshgdut",
        "email": "shliu30@vip.qq.com",
        "time": "Wed Nov 21 10:09:42 2018 +0800"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Thu Nov 22 08:30:56 2018 -0500"
      },
      "message": "THRIFT-4668: make socket backlog configurable for python2\nClient: py\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": "f5f430df56871bc937950274b2c86681d3db6e59",
      "tree": "a9f6f1258ea16a51915dd18799af3230d36d1630",
      "parents": [
        "b5471f63cb4bb8e3b00835a9ca9e48ff76a3bb51"
      ],
      "author": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Fri Jun 08 03:37:55 2018 +0000"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Sat Jun 16 19:16:04 2018 +0000"
      },
      "message": "THRIFT-4579: Move up to Ubuntu Bionic for CI builds\nmake dlang library compatible with openssl-1.1 for Ubuntu Bionic\nRequires an upstream deimos update to be compatible.\n"
    },
    {
      "commit": "747158c8daa994b3386f1dcb4fc9e91aed1748ad",
      "tree": "5b24da692e53a6a94897d996a523229b884a100b",
      "parents": [
        "4d10279244838383154003ea733487f7349fa690"
      ],
      "author": {
        "name": "Nicholas Martin",
        "email": "nicholas.martin2@gmail.com",
        "time": "Fri Jun 08 01:30:44 2018 +0100"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Thu Jun 07 20:30:44 2018 -0400"
      },
      "message": "THRIFT-4548: python binary accelerated protocol with multiplexing via decoration (#1547)\n\n* Fix binary accelerated protocol with multiplexing\r\n\r\nTMultiplexedProtocol objects did not inherit from TProtocol, so the\r\ndecorated protocol object passed into the binary accelerated C extension\r\nwas not really a TProtocol object, which caused errors. This\r\nimplementation decorates the protocol object by dynamically creating a\r\nnew class that extends both the class of the protocol being decorated\r\nand TMultiplexedProtocol.\r\n\r\n* THRIFT-4548: remove known failures for py multiplexed client cross tests\r\n\r\n* Call super with args for python2 \u0026 pep8 fixes\r\n\r\n* THRIFT-3877: disable known failures for http cpp tests\r\n\r\nThis closes #1535 "
    },
    {
      "commit": "edf8f0f2511e8eed3bb2129413307665ef4f4b79",
      "tree": "4327e5797b647f942fe4724fd10679fd76640127",
      "parents": [
        "92d80629ac2a39d432ac5bb29f45951be3465f8f"
      ],
      "author": {
        "name": "Josip Sokcevic",
        "email": "jsokcevic@thumbtack.com",
        "time": "Thu Apr 26 19:30:25 2018 -0700"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Mon May 07 19:11:34 2018 -0400"
      },
      "message": "THRIFT-4561: Remove python socket timeout\n\nTimeout is already set in HttpClient. The reason for removal is issue\nwith gunicorn and gevent as described here\nhttps://github.com/benoitc/gunicorn/pull/1616\n"
    },
    {
      "commit": "2068544a09e22d4ca2091bde01bc858a15e5b762",
      "tree": "10f67857d23739e381ff7c69f416819933a5a870",
      "parents": [
        "606f1ef31447526b908244933d5b716397a6bad8"
      ],
      "author": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Tue Apr 10 10:30:51 2018 -0400"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Fri Apr 13 13:20:49 2018 -0400"
      },
      "message": "THRIFT-4548: add python cross test client multiplexed protocol support\nClient: py\n"
    },
    {
      "commit": "6f8c99e98170dcd4f311e755b79f7013868c64c5",
      "tree": "0d8a7a41c707815ed86d624bf81be5317a70185b",
      "parents": [
        "a0cf38ed312a5342eb05574719485b725fa52eee"
      ],
      "author": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Sat Mar 24 16:32:02 2018 -0400"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Thu Apr 05 10:25:19 2018 -0400"
      },
      "message": "THRIFT-3118: add http (for non-ssl and for ssl) to the python cross tests\n"
    },
    {
      "commit": "00646bbba7a2101f0ad2938d2e37cb83abbfb3c7",
      "tree": "c7ef84d72c02cf6bd087c703a085d76c96e63efa",
      "parents": [
        "e241265cb2ac7cbab2fd46bda52638da3a989d51"
      ],
      "author": {
        "name": "Yubing Dong (Tom)",
        "email": "tomtung@users.noreply.github.com",
        "time": "Thu Jan 18 23:55:24 2018 -0800"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Wed Jan 24 00:10:42 2018 -0500"
      },
      "message": "THRIFT-4464: Fix typo in TNonblockingServer.py\nClient: py\n\nThis closes #1475\n"
    },
    {
      "commit": "e7611d0f3ed1704711f58ff45f331db6748dfbb5",
      "tree": "f6d328baa3576e8346a94d36cb585eb338470dbb",
      "parents": [
        "ba5e065aaa0e1f9a3d0174a5c287fff09ad2f3a7"
      ],
      "author": {
        "name": "James E. King, III",
        "email": "jking@apache.org",
        "time": "Mon Oct 23 16:44:45 2017 -0400"
      },
      "committer": {
        "name": "James E. King, III",
        "email": "jking@apache.org",
        "time": "Mon Oct 23 16:44:45 2017 -0400"
      },
      "message": "THRIFT-4367: Fix missing positional argument in python\nTProcessor.process\nClient: py\nPatch: Qyetfu\n\nThis closes #1392\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": "2d1fe88db3f02c0a3a8f9cc2ad2f5f7881a0eae3",
      "tree": "1a94a40592e817cf18cdcc9bf4d9a7d7e4a7f7d9",
      "parents": [
        "48ba736a5800c0abc3b136ec478cf856f856ffcc"
      ],
      "author": {
        "name": "Elvis Pranskevichus",
        "email": "elvispranskevichus@pinterest.com",
        "time": "Tue May 23 11:36:23 2017 -0400"
      },
      "committer": {
        "name": "James E. King, III",
        "email": "jking@apache.org",
        "time": "Mon Sep 25 17:11:33 2017 -0700"
      },
      "message": "THRIFT-4206: Fix decoding of strings in containers with py:dynamic and py:utf8strings\nClient: py\n\n_read_by_ttype and _write_by_ttype must be using the *element* spec\nand not the container spec when determining the correct read/write\nhandler.\n\nThis closes #1273\n"
    },
    {
      "commit": "d7142b7e4fe114c13d8235a7c47f58947f916bff",
      "tree": "d1f6ce9e74787245d69c205238211739974b0b24",
      "parents": [
        "f454369198500a90388a4a6f73970e961949c186"
      ],
      "author": {
        "name": "James E. King, III",
        "email": "jking@apache.org",
        "time": "Fri Sep 01 13:00:36 2017 -0700"
      },
      "committer": {
        "name": "James E. King, III",
        "email": "jking@apache.org",
        "time": "Mon Sep 04 18:09:34 2017 -0700"
      },
      "message": "THRIFT-4295: rework the docker build images, updating them and tuning the travis builds\n\nThis closes #1340\n"
    },
    {
      "commit": "2f03618a6c0a938813ca36e6a2fcd9f517a64ee0",
      "tree": "257314a47148ff89f8c7e7b96bd6837faba5208f",
      "parents": [
        "82ae9575cdc112088771fc7b876f75e1e4d85ebb"
      ],
      "author": {
        "name": "Håkon Hitland",
        "email": "hakon.hitland@zedge.net",
        "time": "Mon Jul 31 12:39:52 2017 +0200"
      },
      "committer": {
        "name": "James E. King, III",
        "email": "jking@apache.org",
        "time": "Thu Aug 10 15:39:09 2017 -0400"
      },
      "message": "THRIFT-4274: Catch OSError in TSSLServerSocket.accept()\nClient: py\n\nThis closes #1321\n\nwrap_socket can raise OSError instead of SSLError when receiving an\ninvalid connection attempt, which if not caught crashes TSimpleServer\nand causes the feature tests to fail.\n"
    },
    {
      "commit": "b56ead31153dae3d0e6a7a3e296dc2ca0c468586",
      "tree": "b56ae94b0a4bb6fe5237f71ecbbd08b34b7d01de",
      "parents": [
        "c34653f75106fbe20293ddfd5b07f74772891a6d"
      ],
      "author": {
        "name": "Eric Conner",
        "email": "eric@pinterest.com",
        "time": "Thu Jul 06 21:38:05 2017 -0700"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri Jul 07 20:51:00 2017 +0200"
      },
      "message": "THRIFT-2642 Recursive structs don\u0027t work in python\nClient: Python\nPatch: Eric Conner \u003ceric@pinterest.com\u003e\n\nFix whitespace for flake8.\n\nThis closes #1305\n"
    },
    {
      "commit": "c34653f75106fbe20293ddfd5b07f74772891a6d",
      "tree": "2a844527515654b65d8f1bfac9c68a2484c535f9",
      "parents": [
        "49e5103920e75a149d02c7d487496c8c79154a6c"
      ],
      "author": {
        "name": "Eric Conner",
        "email": "eric@pinterest.com",
        "time": "Wed Jun 21 03:34:12 2017 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Jul 06 22:59:10 2017 +0200"
      },
      "message": "THRIFT-2642 Recursive structs don\u0027t work in python\nClient: Python\nPatch: Eric Conner \u003ceric@pinterest.com\u003e\n\nThis closes #1293\n"
    },
    {
      "commit": "07f59971bd11df619709444275298061ee69f707",
      "tree": "197adaaede4f594115899dc409a30d2d842195d3",
      "parents": [
        "9b1544dc21f2d952b91c44e4636e1b9da937002c"
      ],
      "author": {
        "name": "James E. King, III",
        "email": "jking@apache.org",
        "time": "Fri Mar 10 06:18:33 2017 -0500"
      },
      "committer": {
        "name": "James E. King, III",
        "email": "jking@apache.org",
        "time": "Fri Mar 10 06:18:33 2017 -0500"
      },
      "message": "THRIFT-4081: appveyor retooling - added mingw64 build as a second job to the CI build process\n\nThis closes #1205\n"
    },
    {
      "commit": "e2bc9727500584e055ce603bf95f00165c657ec2",
      "tree": "3dc8b0c2d7d65be81e0edad6f8735275212b517e",
      "parents": [
        "e66b8fcde3922ab9244908d9ca27d5084536e168"
      ],
      "author": {
        "name": "Yao Jin",
        "email": "yjin@xiaohongshu.com",
        "time": "Thu Feb 23 13:49:45 2017 +0800"
      },
      "committer": {
        "name": "James E. King, III",
        "email": "jking@apache.org",
        "time": "Fri Feb 24 10:28:27 2017 -0500"
      },
      "message": "THRIFT-4102 remove useless code cause performance problem\nClient: python\n\nThis closes #1203\n"
    },
    {
      "commit": "36628a28e975e4d680fff66eec3e66c06ca86bf2",
      "tree": "2f9a1c99bd6212c6db636671c4d6c788cdd20b47",
      "parents": [
        "e8ba7877baec6f9871a88db8d3885361a2260ab2"
      ],
      "author": {
        "name": "James E. King, III",
        "email": "jking@apache.org",
        "time": "Mon Feb 13 15:25:41 2017 -0500"
      },
      "committer": {
        "name": "James E. King, III",
        "email": "jking@apache.org",
        "time": "Mon Feb 13 15:25:41 2017 -0500"
      },
      "message": "THRIFT-3369 Provide SSL/TLS client for c_glib\nClient: c_glib\nPatch: Gonzalo Aguilar Delgado \u003cgaguilar@level2crm.com\u003e\n\nThis closes #1185\n"
    },
    {
      "commit": "e8ba7877baec6f9871a88db8d3885361a2260ab2",
      "tree": "9a2dc1c722241c96359c00829c7149d74f09be0c",
      "parents": [
        "4626fd889da53462023d42d99d1d82e13a6e890f"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sun Feb 12 21:14:48 2017 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sun Feb 12 21:14:48 2017 +0900"
      },
      "message": "THRIFT-4026 TSSLSocket doesn\u0027t work with Python \u003c 2.7.9\n\nThis closes #1166\n"
    },
    {
      "commit": "4626fd889da53462023d42d99d1d82e13a6e890f",
      "tree": "bce5eda5b1e48eab0f097ee90aa25c91ab5e3d23",
      "parents": [
        "bff044667caf8a8c2b0dd30ed11b328ff2902cf5"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sun Feb 12 21:11:36 2017 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sun Feb 12 21:11:36 2017 +0900"
      },
      "message": "THRIFT-3938 Python TNonblockingServer does not work with SSL\n\nThis closes #1100\n"
    },
    {
      "commit": "de9c330b24c9190078eefb68c864d2a41a4dee07",
      "tree": "bce902a6a40e51180cddad24eb83d8706f152615",
      "parents": [
        "2d6060d882069ed3e3d6302aa63ea7eb4bb155ad"
      ],
      "author": {
        "name": "James E. King, III",
        "email": "jking@apache.org",
        "time": "Wed Feb 01 07:16:28 2017 -0500"
      },
      "committer": {
        "name": "James E. King, III",
        "email": "jking@apache.org",
        "time": "Wed Feb 01 07:16:28 2017 -0500"
      },
      "message": "THRIFT-4007: TTransport.py micro-optimization: don\u0027t call len(chunk) twice\nClient: Python\nPatch: Nate Jensen \u003cnathan.jensen@raytheon.com\u003e\n\nThis closes #1121\n"
    },
    {
      "commit": "db3a92ebcffea09fc456bf76754b78fe8466fe59",
      "tree": "c95ec5a4112a59b830d8ade5d8f532ec7696b7fb",
      "parents": [
        "0c27352179e0463bde1f68757f2d77e3c222f530"
      ],
      "author": {
        "name": "ciarancourtney",
        "email": "ciaran.courtney@cylon.com",
        "time": "Tue Dec 20 11:12:15 2016 +0000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed Dec 21 21:08:24 2016 +0100"
      },
      "message": "THRIFT-4009 Use @implementer instead of implements in TTwisted.py\nClient: Python\nPatch: ciarancourtney \u003cciaran.courtney@cylon.com\u003e\n\nThis closes #1142\n"
    },
    {
      "commit": "042ce7e7c894ac99489d2cd1a3d139e8d630bbdb",
      "tree": "227aa85be1f0807a0b27f25925a58ac5d525de4b",
      "parents": [
        "2df9c20dc76c044e502861a2111b90cbdcbbb957"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Wed Sep 28 09:47:05 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Thu Sep 29 02:44:46 2016 +0900"
      },
      "message": "THRIFT-3798 THttpClient does not use proxy from http_proxy, https_proxy environment variables\n\nFix CI failure due to PEP8 violation\n\nThis closes #1097\n"
    },
    {
      "commit": "1ac0a80aa07421a4b7a857d801038b7991833f7f",
      "tree": "7c0d393d9fe0a52042f34c5b4f47c90127804e71",
      "parents": [
        "900569c442742a1cb727111574dff26a7401d8c3"
      ],
      "author": {
        "name": "Martin Wilck",
        "email": "mwilck@arcor.de",
        "time": "Wed Apr 27 09:41:03 2016 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Sep 26 21:20:01 2016 +0200"
      },
      "message": "THRIFT-3798 THttpClient does not use proxy from http_proxy, https_proxy environment variables\nClient: Python\nPatch: Martin Wilck \u003cmwilck@arcor.de\u003e\n"
    },
    {
      "commit": "d2b4f248368be36ff24c5a54fa4f8cfb86b7ab36",
      "tree": "a5ca568e5bd4b6222b9055f88979e63ef173c354",
      "parents": [
        "d4eecda6b2f8b3b27a191605a054aa3bf79a4684"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sun Sep 04 18:49:23 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sun Sep 04 18:49:23 2016 +0900"
      },
      "message": "THRIFT-3917 Check backports.ssl_match_hostname module version\n\nThis closes #1076\n"
    },
    {
      "commit": "bf9fa905d22d2714670b5d492a319daf26f5a32c",
      "tree": "7ebf0130621a5ca0cde3aa7348b6d7033392c74e",
      "parents": [
        "21b6d9295a7f10852810a93679fdaf4c28fe72dd"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sun Sep 04 18:49:21 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sun Sep 04 18:49:21 2016 +0900"
      },
      "message": "THRIFT-3910 Do not invoke pip as part of build process\n\nThis closes #1073\n"
    },
    {
      "commit": "6657b8337d1aedfd2aed22a8cdcf4b96965ece26",
      "tree": "ac6bb5967a9e3baa8afa96a7d3a50698acc2f00e",
      "parents": [
        "4ab9a88496413087df1ee3256472b19c5b4be500"
      ],
      "author": {
        "name": "Chandler May",
        "email": "cjmay4754@gmail.com",
        "time": "Sun Mar 27 22:47:06 2016 -0400"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Tue Mar 29 12:03:34 2016 +0900"
      },
      "message": "THRIFT-3765 fix memory leak in python compact protocol extension\n\nThis closes #970\n"
    },
    {
      "commit": "f2b7a4805f321e53cdf64c7d2c0c9635dee74144",
      "tree": "526a9f66cdc2e4378e575b805839cb5a8365f7c1",
      "parents": [
        "6bb12771452b8c2fc656b0561486a51c31d1449d"
      ],
      "author": {
        "name": "Helgi Kristvin Sigurbjarnarson",
        "email": "helgikrs@gmail.com",
        "time": "Sat Oct 24 22:56:25 2015 -0700"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "sukegawa.nobuaki@ns-sol.co.jp",
        "time": "Wed Mar 09 17:23:48 2016 +0900"
      },
      "message": "THRIFT-3726 Fix incorrect conditional in TMultiplexedProtocol.py\n\nThis closes #661\n"
    },
    {
      "commit": "5bac5ba8bff4bf3ed1b25ccb1d084efa0648c4c3",
      "tree": "fc376bf0cf4843c90cac343a8d7e4309d09e27f4",
      "parents": [
        "d9b4425f68b8a239e6085f2700bfc2f95cdb2f46"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sat Mar 05 14:47:09 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sun Mar 06 09:45:34 2016 +0900"
      },
      "message": "THRIFT-3712 TTornadoServer cannot handle IPv6 address\n\nThis closes #924\n"
    },
    {
      "commit": "d9b4425f68b8a239e6085f2700bfc2f95cdb2f46",
      "tree": "7906b99c52dbefc2bf2e083a420b04c11c5e5a5e",
      "parents": [
        "1ccd81bfbc7dc09dc7a8a5e64f313935b799c833"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Tue Mar 01 02:09:11 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sat Mar 05 22:53:48 2016 +0900"
      },
      "message": "follow-up: THRIFT-3599 Validate client IP address against cert\u0027s SubjectAltName\nClient: Python\nPatch: Nobuaki Sukegawa\n\nFix required version of Python or dependency\n\nThis closes #914\n"
    },
    {
      "commit": "f7a8d946a0b22d0acce1325d2607c38597b36a58",
      "tree": "281b6db3dfea2ec5552198ed8e51dac52ca66415",
      "parents": [
        "3dd4d8eca8c1d20819fb58fa863b83bd348cf411"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Tue Mar 01 01:41:47 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Wed Mar 02 23:44:23 2016 +0900"
      },
      "message": "THRIFT-3699 Fix integer limit symbol includes in Python C extension\n\nThis closes #915\n"
    },
    {
      "commit": "d479e23a1d408ab73e416f547003c4f7d9975081",
      "tree": "9e919c0f372fb01f8029fd06fbe1180b4f5d5bd5",
      "parents": [
        "2c5ed27a25087f541312d35938056890c4784fc6"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sun Feb 28 11:28:19 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sun Feb 28 12:05:14 2016 +0900"
      },
      "message": "THRIFT-3691 Run flake8 Python style check on Travis-CI\nClient: Build (Python)\nPatch: Nobuaki Sukegawa\n\nThis closes #907\n"
    },
    {
      "commit": "f32bae7a89a47047fbed9a47b78d6b69d70a3764",
      "tree": "8f67a894e0a17af54cbe6021e3f2e1d81dfb57c7",
      "parents": [
        "a72ffbea4d05586d39b507e5cd6451086fc4f763"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sat Feb 20 08:51:33 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Mon Feb 22 23:25:32 2016 +0900"
      },
      "message": "THRIFT-3651 Make backports.match_hostname and ipaddress optional\nClient: Python\nPatch: Nobuaki Sukegawa\n\nThis closes #880\n"
    },
    {
      "commit": "a72ffbea4d05586d39b507e5cd6451086fc4f763",
      "tree": "12c3eb630025d13e13e0dcfaea32ad90f81dbb48",
      "parents": [
        "33de26cf658450513ef5731ac55b635addb4d43d"
      ],
      "author": {
        "name": "Tristen Georgiou",
        "email": "tristen.georgiou@gmail.com",
        "time": "Sat Feb 20 07:28:47 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Mon Feb 22 23:24:31 2016 +0900"
      },
      "message": "THRIFT-3649 Python TSaslClientTransport initializes TTransportException incorrectly\nClient: Python\nPatch: Tristen Georgiou modified by Nobuaki Sukegawa\n\nThis closes #879\n"
    },
    {
      "commit": "7efa4fb9b10c9c42dcef1143918e308d9dfd6c58",
      "tree": "d1129523200bd4c40a8962da6d6827b201273f5b",
      "parents": [
        "23ffb312900bbbadf49dfee270391803e194a436"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Fri Feb 19 00:59:57 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sat Feb 20 00:45:35 2016 +0900"
      },
      "message": "THRIFT-3646 Fix Python extension build warnings\nClient: Python\nPatch: Nobuaki Sukegawa\n\nThis closes #877\n"
    },
    {
      "commit": "1c8b5cb1528d91be98c3652baade99e406417e5f",
      "tree": "4229348ea166339964c86ad9f6194a38e162b168",
      "parents": [
        "c295c822917cb594655f61337cc32fe188e9a86f"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sun Feb 14 22:04:38 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Wed Feb 17 23:21:51 2016 +0900"
      },
      "message": "THRIFT-3634 Fix Python TSocket resource leak on connection failure\nClient: Python\nPatch: Nobuaki Sukegawa\n\nThis closes #867\n"
    },
    {
      "commit": "6a0ca7ff2750d45346d6d7faaf931de2b6254321",
      "tree": "78f3caa6bb379bc30b9c96d48e7adc7fac9bd3e3",
      "parents": [
        "7af189a2366383538bb9aae394fd5f735976f1d5"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sat Feb 13 03:11:16 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sat Feb 13 23:12:34 2016 +0900"
      },
      "message": "THRIFT-3618 Python TSSLSocket deprecation message should print caller\u0027s location\nClient: Python\nPatch: Nobuaki Sukegawa\n\nThis closes #852\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": "ce1c8abfa4bab71e519cc6d811cb6e901be00600",
      "tree": "d9fef685f50925a2f08c95d2b9e2781b7816bfeb",
      "parents": [
        "355116eb1d7e903e6aba7b239db49951919e48c5"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Thu Feb 11 18:21:39 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Thu Feb 11 20:07:11 2016 +0900"
      },
      "message": "THRIFT-3615 Fix Python SSL client resource leak on connection failure\nClient: Python\nPatch: Nobuaki Sukegawa\n\nThis closes #847\n"
    },
    {
      "commit": "f39f7dbd26fe090f0fc6566c100ca7adc9ace714",
      "tree": "1c9d7094eeb14b226c8b33027543dd3f4c43aaa3",
      "parents": [
        "25536ad83a85cfda6d5388278e4e378f2d4df73e"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Thu Feb 04 15:09:41 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Thu Feb 04 22:20:00 2016 +0900"
      },
      "message": "THRIFT-3599 Validate client IP address against cert\u0027s SubjectAltName\n"
    },
    {
      "commit": "25536ad83a85cfda6d5388278e4e378f2d4df73e",
      "tree": "ceb7f5bb28cdfdd2273c288d96a04d7c8c1148a8",
      "parents": [
        "5b44612d20e762e0774a19b7ef42a28f7fc0b481"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Thu Feb 04 15:08:55 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Thu Feb 04 22:20:00 2016 +0900"
      },
      "message": "THRIFT-2103 [python] Support for SSL certificates with Subject Alternative Names\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": "a3b88a012e6452b665073b7fb9e211e86093efbf",
      "tree": "d6eecc9f6bff6eb3998ad0afd8d5ac3f91903358",
      "parents": [
        "397bd51af7cfad17a93324f0c43f8d3424627b36"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Wed Jan 06 20:44:17 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsukeg@gmail.com",
        "time": "Mon Jan 11 11:41:14 2016 +0900"
      },
      "message": "THRIFT-3503 Enable py:utf8string by default\n\nThis closes #779\n"
    },
    {
      "commit": "397bd51af7cfad17a93324f0c43f8d3424627b36",
      "tree": "2c541eae3740127f507e4a269525f8add6a9c403",
      "parents": [
        "03565bf467de14a8a229d419164c2b16c34c538e"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Wed Jan 06 14:43:15 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsukeg@gmail.com",
        "time": "Mon Jan 11 11:35:10 2016 +0900"
      },
      "message": "THRIFT-3527 -gen py:dynamic,utf8strings ignores utf8strings option\n\nThis closes #777\n"
    },
    {
      "commit": "299255afbb1f0ba302d3e29a76e20c0f5984f31e",
      "tree": "8adaf787144927ec1395a39be4595e04555c6923",
      "parents": [
        "1b4ebc393d32f954b738e6904d3cc21a84bd1d93"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Wed Jan 06 14:52:50 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsukeg@gmail.com",
        "time": "Mon Jan 11 11:34:20 2016 +0900"
      },
      "message": "THRIFT-3525 py:dynamic fails to handle binary list/set/map element\n\nThis closes #775\n"
    },
    {
      "commit": "65d8564e908476f191404164c4db29a0a4434da5",
      "tree": "48eae6c283b9e30bee9b2ddc5581b44da59e1bbe",
      "parents": [
        "c410494453199720a9482cbde832e4e88082de44"
      ],
      "author": {
        "name": "Thomas Bartelmess",
        "email": "tbartelmess@marketcircle.com",
        "time": "Sun Jan 10 11:34:19 2016 -0500"
      },
      "committer": {
        "name": "Roger Meier",
        "email": "roger@bufferoverflow.ch",
        "time": "Sun Jan 10 20:25:38 2016 +0100"
      },
      "message": "THRIFT-3538 python: Removed UnboundMethodType\n\nThis closes #783\n"
    },
    {
      "commit": "4733db4e151794a7a6e1cbbb5396e5d1146f1f8e",
      "tree": "cbb2dc196323d604ac6afedd30838fcda1677e2a",
      "parents": [
        "796667b29f91682871cec310571e66b1259fffb0"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Tue Jan 05 02:50:57 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Wed Jan 06 04:35:12 2016 +0900"
      },
      "message": "THRIFT-3519 fastbinary does not work with -gen py:utf8strings\nClient:\nPatch: Nobuaki Sukegawa\n\nThis closes #769\n"
    },
    {
      "commit": "33744b0524b7248dda9e9e544420d69c33d3a3aa",
      "tree": "e5d520eaf0f5d90ce2d85204c9014296c692418d",
      "parents": [
        "1d8e745035354e67c794bec9e0b5663ee7cab902"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sun Jan 03 14:24:39 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Tue Jan 05 03:02:35 2016 +0900"
      },
      "message": "THRIFT-3515 Python 2.6 compatibility and test on CI\n\nThis closes #766\n"
    },
    {
      "commit": "ad8358664e6aa2de9094ca68c8b626b953b572c0",
      "tree": "677c369a367b0f451a929b661f84d4c28b9edae1",
      "parents": [
        "b78d781b2e55a066d53577402e42b4d509998978"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Wed Dec 23 23:32:09 2015 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sun Jan 03 02:39:51 2016 +0900"
      },
      "message": "THRIFT-3505 Enhance Python TSSLSocket\n\nThis closes #760\n"
    },
    {
      "commit": "b9c859a07bae89643c0953a14e490cf3db435957",
      "tree": "0e9de4da541ddfa0ac352ed57078cddcce4c665b",
      "parents": [
        "7b8946941e5bcb1217711115fed3f6c77d73b5ef"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Mon Dec 21 01:10:25 2015 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sat Jan 02 22:54:16 2016 +0900"
      },
      "message": "THRIFT-3506 Eliminate old style classes from library code\nClient: Python\nPatch: Nobuaki Sukegawa\n\nThis closes #758\n"
    },
    {
      "commit": "7b8946941e5bcb1217711115fed3f6c77d73b5ef",
      "tree": "081edb145dc156d63ccc0a4df959fa4d71588ffb",
      "parents": [
        "6dde7f19254db71cf27df214a59d7156967237fc"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Wed Dec 23 21:45:06 2015 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sat Jan 02 22:54:16 2016 +0900"
      },
      "message": "THRIFT-3504 Fix FastbinaryTest.py\nClient: Python\nPatch: Nobuaki Sukegawa\n\nThis closes #757\n"
    },
    {
      "commit": "dd02f552835615f566ee811f96515e23d63c352b",
      "tree": "10e0d3044cd1fca82e8edd3aa9e66aac09016b81",
      "parents": [
        "9b35a7c021d06b9322e208e466a0f2aac1e95212"
      ],
      "author": {
        "name": "Robert Thille",
        "email": "robert.thille@cyaninc.com",
        "time": "Thu Jan 08 14:48:53 2015 -0800"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Thu Dec 24 02:11:17 2015 +0900"
      },
      "message": "THRIFT-2883 TTwisted.py, during ConnectionLost processing: exceptions.RuntimeError: dictionary changed size during iteration\n\nThis closes #314\n"
    },
    {
      "commit": "e841b3dac619a5e5d3523d059d48db1a12e41360",
      "tree": "183832cb3b7b9c6cdf10c9f1183a47f8410905ce",
      "parents": [
        "b9641e0949f5de5a3c8079758fdd638889614143"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Tue Nov 17 11:01:17 2015 +0900"
      },
      "committer": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Sat Nov 28 00:08:07 2015 +0100"
      },
      "message": "THRIFT-162 Thrift structures are unhashable, preventing them from being used as set elements\nClient: Python\nPatch: David Reiss, Nobuaki Sukegawa\n\nThis closes #714\n"
    }
  ],
  "next": "8551f3f53dee2a879de0aa511471f0190b1fe71c"
}
