)]}'
{
  "log": [
    {
      "commit": "7da25be7cc4f1529a78f119f911f0fff51659e1f",
      "tree": "b10aa943b94082feaf29313a71c2cb198a8b22fb",
      "parents": [
        "f07609954fb490852984dc2f2a02727532c8b54d"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat May 17 13:33:58 2025 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat May 17 13:33:58 2025 +0200"
      },
      "message": "Markdown fixes (no content changes)\n"
    },
    {
      "commit": "af9ac170f4de895266de4b6f9f3e68a58f113760",
      "tree": "17fef18c0de26dce3ba6470fbeba51169b52623d",
      "parents": [
        "3da784bec37a9080ca2fee2fc2cac19f1c1efa25"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri May 16 22:37:06 2025 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri May 16 22:37:06 2025 +0200"
      },
      "message": "updated CHANGES.md\n"
    },
    {
      "commit": "a58d122b567f3bb5f4f415e08481ab5886e12589",
      "tree": "881d95d50f55ed6877b28ed0b656b542823399ae",
      "parents": [
        "12f2bfaf86d5ca9879e515e4085963590de2d3a1"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed May 14 22:27:02 2025 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu May 15 02:01:29 2025 +0200"
      },
      "message": "updated CHANGES.md\n"
    },
    {
      "commit": "e8cfb1331f91fece921ad20cd3bda8abdaaa6343",
      "tree": "3737b9d1383b9e3ecf072e9b22bc7a6b45674207",
      "parents": [
        "7df39f16b7f7e7271ebbc1d21856eac17512c7ca"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat Sep 07 12:51:04 2024 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat Sep 07 12:51:04 2024 +0200"
      },
      "message": "Updated CHANGES.md\n"
    },
    {
      "commit": "7df39f16b7f7e7271ebbc1d21856eac17512c7ca",
      "tree": "4591c7fd7caa768e1d0a5e27f0752c331a014099",
      "parents": [
        "3867d6832e271adcd3111c3068efc9c11cb9cf63"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed Sep 04 22:15:24 2024 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed Sep 04 22:15:24 2024 +0200"
      },
      "message": "updated CHANGES.md\n"
    },
    {
      "commit": "449442e4d213e0682cc24e1626bd1e4b9f0b2fd8",
      "tree": "3533e6a864c1b67ef8d9a39904f6561bbc367603",
      "parents": [
        "467c6bdcb14f1fcdfb416df92b76ca9e5abbdc90"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue Sep 03 01:54:39 2024 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue Sep 03 01:54:39 2024 +0200"
      },
      "message": "added ticket data for 0.21.0 to CHANGES.md\n"
    },
    {
      "commit": "0d0ac75347267f7c12fc9b5b349bf9ef7f632347",
      "tree": "4761c710c4a0de8e6db4c8b7672523409f25710b",
      "parents": [
        "417eafd480324a596e080be6801da60575350496"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue Mar 12 21:49:28 2024 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue Mar 12 22:33:15 2024 +0100"
      },
      "message": "Preparing 0.20.0\n"
    },
    {
      "commit": "318731b119a491d3a405b235afc4c0606cd3db2a",
      "tree": "331c4f2b72cc1f12241d65182f132499b55211cb",
      "parents": [
        "0c637d7aa553a52b11bf92855448a20914d59817"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Feb 04 14:56:03 2024 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Feb 04 15:05:30 2024 +0100"
      },
      "message": "Updated manual version info and CHANGES\n"
    },
    {
      "commit": "5656208a202ca0be4d4dc44125b5ca0485f91bf0",
      "tree": "c3527a9d3057e54be68cb1d7a883d11257260b2b",
      "parents": [
        "291b560c36f7f1a15ab87b19ceef23b0d92e11c6"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Aug 27 15:45:30 2023 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Aug 27 15:45:30 2023 +0200"
      },
      "message": "release 0.19.0\n"
    },
    {
      "commit": "30b31aaecbfc440e2cdb9cd6a0cdf2d856581519",
      "tree": "f885d50c04f7edd6349d3905d30efa94956fee12",
      "parents": [
        "f5a67528d820d9bf1ba194d9403519f032a31b0a"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat Jul 15 11:48:39 2023 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat Jul 15 11:48:39 2023 +0200"
      },
      "message": "Release 0.19.0\n"
    },
    {
      "commit": "f5a67528d820d9bf1ba194d9403519f032a31b0a",
      "tree": "be4d52ff2df1079c82c09d8c8dbf8fcc9c360b4d",
      "parents": [
        "bccca9301dedd6403062ef6be4c56533f889e5b5"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat Jul 15 11:18:25 2023 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat Jul 15 11:32:12 2023 +0200"
      },
      "message": "Release 0.19.0\n"
    },
    {
      "commit": "1851da53a31b71e7006a48161c1e3d6d9ee5ded5",
      "tree": "53d1e75565d2458a849f0f8e547dffcf1dcbf838",
      "parents": [
        "0972190135060341d65cce521b17d5117bdb5b01"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Feb 23 21:15:15 2023 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Feb 23 21:18:07 2023 +0100"
      },
      "message": "Release 0.18.1\n"
    },
    {
      "commit": "423ab3997d3c3879d95fcd00e816f226b0f396d4",
      "tree": "64030a04071d110cfa194fcdc1891f258c26e377",
      "parents": [
        "c30ee69ef671a9fd4b86f19b38e0b10964c0d4bc"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed Feb 15 22:12:19 2023 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed Feb 15 22:20:10 2023 +0100"
      },
      "message": "bump version\n"
    },
    {
      "commit": "2f2696bdf6aff18138e401b73436fc20023e88e2",
      "tree": "37879a9b5b7465d4e779ea73c73366509479a734",
      "parents": [
        "4eee6815276741a0381063b9e139a4938f808711"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Feb 06 23:55:19 2023 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue Feb 07 00:12:09 2023 +0100"
      },
      "message": "release branch 0.18.0\n"
    },
    {
      "commit": "383e4ad0468d0b28986d7e922d0629d1761aab22",
      "tree": "492974d6c7c41e6001334a57d4ffe0c67155ec3d",
      "parents": [
        "22f6a8a3c879175e18ce95f88a393f34ff8f158c"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue Aug 30 23:55:39 2022 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue Aug 30 23:58:36 2022 +0200"
      },
      "message": "CHANGES.md updated\n"
    },
    {
      "commit": "7ae180bb1eaea8bdfd6d5714aa90b8445165ff1c",
      "tree": "6e1e40ec5f640a46c51358bfc3d966aacf3c9c68",
      "parents": [
        "3f9b7d0da2d6f41b57cd636fa3b6067737befe4c"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Fri Aug 05 15:29:42 2022 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Sat Aug 06 07:45:27 2022 -0700"
      },
      "message": "THRIFT-5609: Make TJSONProtocol safe to be used in deserializer pool\n\nClient: go\n\nAdd Reset to TJSONProtocol, and call it in deserializer and serializer\nto make sure that it\u0027s always safe to be used in the pool version.\n"
    },
    {
      "commit": "892b6731eedcf81e6ba9627327676cddb009fc07",
      "tree": "be0c60f44c0f706bb37cc2b084cb582e9de357ca",
      "parents": [
        "5a1924788a8cb6f495a1b1d50a1c0561d36215ac"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Mon Aug 01 12:47:12 2022 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Tue Aug 02 11:25:51 2022 -0700"
      },
      "message": "THRIFT-5605: Client middleware to extract exceptions\n\nClient: go\n\nProvide ExtractIDLExceptionClientMiddleware client middleware\nimplementation and ExtractExceptionFromResult to extract exceptions\ndefined in thrift IDL into err return so they are accessible from other\nclient middlewares.\n"
    },
    {
      "commit": "dae1437ca03834527b654cf5bc8d7f41c9412a20",
      "tree": "cabf29b8f24514d3b2df851e0070be9868064878",
      "parents": [
        "a24bcd39a50e3472b5f1bf9fb5b8526fccf7911e"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Mon May 09 11:05:11 2022 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Tue May 10 08:57:22 2022 -0700"
      },
      "message": "THRIFT-5583: Add skip_remote arg to go compiler\n\nClient: go\n"
    },
    {
      "commit": "6433994ee794fa4cd0d7dd862f83cedbfb72c23b",
      "tree": "8f3e5d44c3b982d9902420e24ac92828b0738521",
      "parents": [
        "b941b1124834d38daaa0e4355655b4ce63b80d3e"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Tue Mar 15 15:22:15 2022 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Tue Mar 15 21:39:38 2022 -0700"
      },
      "message": "THRIFT-5539: Decouple TDuplicateToProtocol out of TDebugProtocol\n\nClient: go\n\nCurrently go\u0027s TDebugProtocol does two things: log the read/writes, and\nduplicate all the reads/writes to another TProtocol. For people who only\nneed the second feature, even if they use NopLogger for the logging\npart, they still need to pay the price of all the fmt.Sprintf calls used\nby logging, and on some cases those fmt.Sprintf calls alone can cause\nsignificant CPU to be wasted (in one of our services fmt.Sprintf called\nby TDebugProtocol used ~10% of CPU).\n\nCreate a dedicated TDuplicateToProtocol to reduce cpu waste, and mark\nTDebugProtocol.DuplicateTo as deprecated.\n"
    },
    {
      "commit": "2a93df80f27739ccabb5b885cb12a8dc7595ecdf",
      "tree": "55f37b631a195e4199528eed5b24089b8e911256",
      "parents": [
        "a8e3b758af65feefcc55b5d46024a102a3ff494b"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed Feb 09 20:46:41 2022 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed Feb 09 20:46:41 2022 +0100"
      },
      "message": "Update changelog for 0.16.0\n"
    },
    {
      "commit": "f18a8f34e21b09a389e93114ae75375b53724b39",
      "tree": "c6e8c45f70add26d01eb081ba491d23e7872130c",
      "parents": [
        "56a840aa176494c5875cba7faff9dfc16bf8f831"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri Feb 04 22:38:03 2022 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri Feb 04 22:38:03 2022 +0100"
      },
      "message": "Update changelog for 0.16.0\n"
    },
    {
      "commit": "d68f03c0edc539bc1757b2ac358dbd43c44bc651",
      "tree": "3fb9653a068b2bd188057828e779334431523c42",
      "parents": [
        "1ef362cc62a761811294f390e0ead2785e12c9b0"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Jan 24 22:26:21 2022 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Jan 27 08:55:23 2022 +0100"
      },
      "message": "Updated changes.md for 0.16.0\n"
    },
    {
      "commit": "fb87b440cdba9ba53b0db88296c86a92a3ae2503",
      "tree": "3c9b57a9f0fcc6135f8b4b518de6ac1a8d48443e",
      "parents": [
        "fa5c37ab5f4e8196cb353cd4f884dcf362809cc0"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri Jan 21 09:37:30 2022 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri Jan 21 09:39:09 2022 +0100"
      },
      "message": "Updated changes.md for 0.16.0\n"
    },
    {
      "commit": "e3be32112aa8029577b88a9ee431ef67f8a357db",
      "tree": "0025b1cf90f434fde27aba6073f8830d97b40451",
      "parents": [
        "7e07267379cab41ea35acc508c0d417bca479167",
        "8317ec43ea2425b6f8e24e4dc4f5b2360f717eb4"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat Sep 11 23:00:25 2021 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat Sep 11 23:00:25 2021 +0200"
      },
      "message": "Merge branch \u00270.15.0\u0027 into upstream\n"
    },
    {
      "commit": "8317ec43ea2425b6f8e24e4dc4f5b2360f717eb4",
      "tree": "9a867732601309d0835dcb3a65b585c22b21b6ca",
      "parents": [
        "67bf304de18e025a768e21f1c39dd8aede882637"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat Sep 04 20:25:14 2021 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat Sep 04 20:45:55 2021 +0200"
      },
      "message": "Branch 0.15.0\n"
    },
    {
      "commit": "67bf304de18e025a768e21f1c39dd8aede882637",
      "tree": "b43537f3ab341078dcbbbffb2ebc92599aa7238c",
      "parents": [
        "5f829f143c40a125c611d03244b235a6d1a35d47"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Wed Sep 01 14:17:31 2021 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Fri Sep 03 22:25:33 2021 -0700"
      },
      "message": "THRIFT-5459: Fix breaking issue when adding a new exception\n\nClient: go\n\nCurrently in the compiler generated go code, adding a new exception to\nan existing endpoint can cause unexpected behaviors when the client\nisn\u0027t updated. Fix the issue.\n\nWill be cherry-picked into 0.15.0 after merged.\n"
    },
    {
      "commit": "cdbcff99958c024d224de98a0dfc2e98d6d779b6",
      "tree": "08dce8dffe9b9cb7e80af5a35bca72159049dca6",
      "parents": [
        "f83ebeae9d0a7b6c0f1005b430184ba02d9b8d50"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Wed Sep 01 14:17:31 2021 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Fri Sep 03 22:24:25 2021 -0700"
      },
      "message": "THRIFT-5459: Fix breaking issue when adding a new exception\n\nClient: go\n\nCurrently in the compiler generated go code, adding a new exception to\nan existing endpoint can cause unexpected behaviors when the client\nisn\u0027t updated. Fix the issue.\n\nWill be cherry-picked into 0.15.0 after merged.\n"
    },
    {
      "commit": "5f829f143c40a125c611d03244b235a6d1a35d47",
      "tree": "e3bc4f3783fa56dc321f1a11bf82bdffa74109c9",
      "parents": [
        "57b9aa0dd5ef2abd2825c9050783dafc75cc1698"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Thu Aug 26 11:04:27 2021 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Fri Aug 27 09:28:37 2021 -0700"
      },
      "message": "go: Fix things staticcheck complains about\n\nClient: go\n\nStaticcheck is the recommended replacement of the frozen and deprecated\nofficial golint linter [1].\n\nFix the things it complained about (or add lint:ignore directive) in:\n\n- lib/go/thrift\n- lib/go/test/tests\n- tutorial/go/src\n- test/go/src\n- compiler generated code\n\nThe majority of the fixes are in the following categories:\n\n- Use of deprecated function (mainly the TConfiguration related ones)\n- Redundant break in switch cases\n- Unused and unexported variables/fields/functions\n\nAlso in the same spirit as fb539ae, remove the error return from\nNewTSSLSocket as it can never be non-nil.\n\nThis change will be cherry-picked into 0.15.0 branch after merged.\n\n[1]: https://groups.google.com/g/golang-nuts/c/rCP70Aq_tBc\n"
    },
    {
      "commit": "17373a3f357cc81ab03fd02c316ad66b9c5ea260",
      "tree": "4bcbd85f46ce2fc1cf35e93ea7c6d79f3f55074b",
      "parents": [
        "d53f056427a093f782c234d6dff85881cff0f5fb"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Thu Aug 26 11:04:27 2021 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Fri Aug 27 09:28:08 2021 -0700"
      },
      "message": "go: Fix things staticcheck complains about\n\nClient: go\n\nStaticcheck is the recommended replacement of the frozen and deprecated\nofficial golint linter [1].\n\nFix the things it complained about (or add lint:ignore directive) in:\n\n- lib/go/thrift\n- lib/go/test/tests\n- tutorial/go/src\n- test/go/src\n- compiler generated code\n\nThe majority of the fixes are in the following categories:\n\n- Use of deprecated function (mainly the TConfiguration related ones)\n- Redundant break in switch cases\n- Unused and unexported variables/fields/functions\n\nAlso in the same spirit as fb539ae, remove the error return from\nNewTSSLSocket as it can never be non-nil.\n\nThis change will be cherry-picked into 0.15.0 branch after merged.\n\n[1]: https://groups.google.com/g/golang-nuts/c/rCP70Aq_tBc\n"
    },
    {
      "commit": "efff4a26916d1f0fa77bf43fdf57d5944e86f730",
      "tree": "86f3cde582d5f4b514a8af0f7f8e275bd6174019",
      "parents": [
        "9a815fa0a22d39254d41fc2c98e9baffe7f31a4e"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Mon Aug 09 14:27:48 2021 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Wed Aug 11 11:11:54 2021 -0700"
      },
      "message": "THRIFT-5453: Defer DNS from NewTSocketConf to TSocket.Open\n\nClient: go\n\nWe used to do DNS lookups in NewTSocketConf, without any timeout checks.\nStop doing that and do DNS lookups in TSocket.Open instead, which\nalready checks for ConnectTimeout set in TConfiguration.\n\nAlso remove the error return from NewTSocketConf.\n"
    },
    {
      "commit": "fb539ae41297c369439bea6edf39186f92f408dc",
      "tree": "83abd3dfce84e463439d605438976d9115daadb1",
      "parents": [
        "82a9c67405602ff053146a8df6bd566d90a9bf03"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Mon Aug 09 14:27:48 2021 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Wed Aug 11 11:08:49 2021 -0700"
      },
      "message": "THRIFT-5453: Defer DNS from NewTSocketConf to TSocket.Open\n\nClient: go\n\nWe used to do DNS lookups in NewTSocketConf, without any timeout checks.\nStop doing that and do DNS lookups in TSocket.Open instead, which\nalready checks for ConnectTimeout set in TConfiguration.\n\nAlso remove the error return from NewTSocketConf.\n"
    },
    {
      "commit": "9a815fa0a22d39254d41fc2c98e9baffe7f31a4e",
      "tree": "95308135b61c560be4a9763d782a6e302d29db53",
      "parents": [
        "2c78047fcbd2783e88cab0ebc7245598695477ae"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue Aug 03 22:27:26 2021 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue Aug 03 22:58:12 2021 +0200"
      },
      "message": "Version 0.15.0\n"
    },
    {
      "commit": "2c78047fcbd2783e88cab0ebc7245598695477ae",
      "tree": "644890de6b9eb4a633f840d9230e9ad060fa832f",
      "parents": [
        "c8ae621a0969e00febcc80128d29e38d7f277601"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Sat Jul 31 13:44:41 2021 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Sun Aug 01 10:07:45 2021 -0700"
      },
      "message": "THRIFT-4797: Go import improvements\n\nThis change improves two problems in go code imports:\n\n1. Always rename import the thrift package into \"thrift\", as we allow\n   the user to use a different library to replace the official one from\n   the compiler command line, this makes sure that in compiler generated\n   go code we can always blindly use \"thrift.*\".\n\n2. We added auto rename import dedup in d9019fc5a4, but in that change\n   for system packages we always use the full import path as the dedup\n   identifier, so system package \"database/sql/driver\" would not be\n   detected as a conflict against a thrift go namespace of\n   \"foo.bar.driver\". Use the part after the last \"/\" in system packages\n   as the dedup identifier instead.\n"
    },
    {
      "commit": "c19d05eeef493a46557fa56bfa3b5193ef3544a4",
      "tree": "d65a89ebf5c8789037de60e6f60f9b0eb697e323",
      "parents": [
        "43faa2d22b1d200921fe339fb20af167944d257f"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri Jun 11 00:41:22 2021 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue Jun 15 23:48:17 2021 +0200"
      },
      "message": "Version 0.14.2\n"
    },
    {
      "commit": "fe3f8a1279660b2e3a47798fa2c8a7bd6800e4e9",
      "tree": "04a582b268b2ac6d01d128850a42e398dabaff74",
      "parents": [
        "80415f05d621c861aeaa791fa93a1c3bee8b84bc"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Tue Apr 27 19:56:58 2021 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Wed Apr 28 18:49:58 2021 -0700"
      },
      "message": "THRIFT-5404: Allow other types of TTransportException to be timeouts\n\nClient: go\n\nCurrently we only treat TTransportException with typeId \u003d\u003d TIMED_OUT as\ntimeout (return true in Timeout function). When opening a new socket, if\nwe got a connect timeout from net.Dial, we wrap the error as\nTTransportException with typeId \u003d\u003d NOT_OPEN, thus it\u0027s no longer treated\nas a timeout error.\n\nChange the error to be directly wrapping the original error (instead of\nrecreate a new error with the same error message), and change\ntTransportException.Timeout to also return true if the wrapped error\nis a timeout error. This way we don\u0027t have to break anything (if code\nrely on TTransportException.TypeId being NOT_OPEN in this case, that\u0027s\nstill true).\n\nWhile I\u0027m here, also update CHANGES.md from #2359.\n"
    },
    {
      "commit": "430e540ef99b2072125897ff6a666b9ec679926f",
      "tree": "fb4df099445101d5725dafa445d3a43b8167eaab",
      "parents": [
        "2b2ea622b67c9b0be4e6baf09cc604fad887cae4"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat Apr 10 10:19:43 2021 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat Apr 10 10:19:43 2021 +0200"
      },
      "message": "added breaking change notice for THRIFT-5396\n"
    },
    {
      "commit": "6583f4e52345c3b05a76f0b188836599628356e8",
      "tree": "3c67f2198d56be2ea3f17b0dcfd0a21f0401f110",
      "parents": [
        "97fb3c4b2aca0e8de0c5f6f229c535a861456f98"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Thu Mar 25 17:00:31 2021 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Fri Apr 09 11:22:33 2021 -0700"
      },
      "message": "THRIFT-5369: Use MaxMessageSize to check container sizes\n\nClient: go\n"
    },
    {
      "commit": "5bae216dbcb4ccbf8e59f7af38808a04988f7b25",
      "tree": "0b51c94ae3c0fa575cea804633b91a6945226735",
      "parents": [
        "e1eb1dc3e400daf1d654f0d045c6990a5c1ada6e"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat Mar 27 01:01:06 2021 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat Mar 27 01:03:26 2021 +0100"
      },
      "message": "merged 0.14.1 changes into master \u0026 added 0.15.0 breaking changes section\nPatch: Jens Geyer\n"
    },
    {
      "commit": "0be1b7d7580f90cfdc3206f7fd7cf4306dcf5817",
      "tree": "98e53ea8ba761557ae74a8bcdb9482c6ec5590ec",
      "parents": [
        "705f37783343ebc5aaee0e504c31ea4abe149cd5"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Feb 04 22:20:37 2021 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Feb 04 23:36:10 2021 +0100"
      },
      "message": "Version 0.14.0\n"
    },
    {
      "commit": "de523c79b38bfd74aed812532ad6557d704bc945",
      "tree": "e15a95963fd441b9efcaa0526953a586e92ad677",
      "parents": [
        "7ae1ec3f1eb3218f8b623232436bc986e3f1f5c8"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Feb 04 17:41:23 2021 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Feb 04 17:41:23 2021 +0100"
      },
      "message": "Updated CHANGES to reflect Version 0.14.0\n"
    },
    {
      "commit": "c2ddaf0766499ab522cb7c0ca011d579707fcb5f",
      "tree": "c05776669d220308884aa1fde25980035de056ad",
      "parents": [
        "8dd04f4adfaea08699b1745c79f122bf9cbd6f07"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Fri Jan 22 09:37:18 2021 -0800"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Fri Jan 22 20:50:27 2021 -0800"
      },
      "message": "THRIFT-4914: Make TClient.Call to return the response meta\n\nClient: go\n\nMake a breaking change so that TClient.Call returns the response\nmeta, currently only contains headers but could be expanded in the\nfuture, and make a compiler change to compiler generated clients to take\nadvantage of that and provide access to response metadata to users.\n"
    },
    {
      "commit": "d831230929bb332189c9509d07102e4be9e7f681",
      "tree": "c1989efa6dc2dd66f0ba7afdf9682b9e764145c4",
      "parents": [
        "c4d1c0d80067986dbee124887bcb402ee1c6538e"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Tue Dec 22 09:53:58 2020 -0800"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Sun Jan 17 15:19:44 2021 -0800"
      },
      "message": "THRIFT-5326: Expand TException interface in go library\n\nClient: go\n\nAdd TExceptionType enum type, and add\n\n    TExceptionType() TExceptionType\n\nfunction to TException definition.\n\nAlso make TProtocolException unwrap-able.\n"
    },
    {
      "commit": "c4d1c0d80067986dbee124887bcb402ee1c6538e",
      "tree": "60d2edf616dfd2f1ba9906bd10c9321ff349b4ae",
      "parents": [
        "c4e899a6d64aa97430ec9f7608d38db2095f6159"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Wed Dec 16 17:10:48 2020 -0800"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Sun Jan 17 12:24:13 2021 -0800"
      },
      "message": "THRIFT-5322: Implement TConfiguration in Go library\n\nClient: go\n\nDefine TConfiguration following the spec, and also move the following\nconfigurations scattered around different TTransport/TProtocol into it:\n\n- connect and socket timeouts for TSocket and TSSLSocket\n- tls config for TSSLSocket\n- max frame size for TFramedTransport\n- strict read and strict write for TBinaryProtocol\n- proto id for THeaderTransport\n\nAlso add TConfiguration support for the following and their factories:\n\n- THeaderTransport and THeaderProtocol\n- TBinaryProtocol\n- TCompactProtocol\n- TFramedTransport\n- TSocket\n- TSSLSocket\n\nAlso define TConfigurationSetter interface for easier TConfiguration\npropagation between wrapped TTransports/TProtocols , and add\nimplementations to the following for propagation\n(they don\u0027t use anything from TConfiguration themselves):\n\n- StreamTransport\n- TBufferedTransport\n- TDebugProtocol\n- TJSONProtocol\n- TSimpleJSONProtocol\n- TZlibTransport\n\nTConfigurationSetter are not implemented by the factories of the\n\"propagation only\" TTransports/TProtocols, if they have a factory. For\nthose use cases, TTransportFactoryConf and TProtocolFactoryConf are\nprovided to wrap a factory with the ability to propagate TConfiguration.\n\nAlso add simple sanity check for TBinaryProtocol and TCompactProtocol\u0027s\nReadString and ReadBinary functions. Currently it only report error if\nthe header length is larger than MaxMessageSize configured in\nTConfiguration, for simplicity.\n"
    },
    {
      "commit": "47d4a00f51de56d409fe016c5aa78d763128cbca",
      "tree": "9feec995ab65897125c3f281c8e3260de731001d",
      "parents": [
        "b0d14133d5071370905a1b54b37a1a7c86d50e6d"
      ],
      "author": {
        "name": "Mario Emmenlauer",
        "email": "mario@emmenlauer.de",
        "time": "Thu May 21 19:45:48 2020 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat Sep 12 18:52:22 2020 +0200"
      },
      "message": "Deprecated WinXP and Server2003 methods\nClient: cpp\nPatch: Mario Emmenlauer\n\nThis closes #2165\n"
    },
    {
      "commit": "4db7a0af13ac9614e3e9758d42b2791040f4dc7e",
      "tree": "6ea8c8eafb05706125445cb2865540dc1dc84b87",
      "parents": [
        "5dc1d268f5c63b804d0b185943467cfeb47859d5"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Sat Jun 27 10:13:34 2020 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Wed Jul 01 11:50:44 2020 -0700"
      },
      "message": "THRIFT-5240: Do connectivity check in Go server\n\nClient: go\n\nIn compiler generated TProcessorFunction implementations, add a\ngoroutine after read the request to do connectivity check on the input\ntransport. If the transport is no longer open, cancel the context object\npassed into the handler implementation.\n\nAlso define ErrAbandonRequest error, to help TSimpleServer closing\nclient connections that\u0027s already closed on the other end.\n"
    },
    {
      "commit": "5dc1d268f5c63b804d0b185943467cfeb47859d5",
      "tree": "d57f0316bbfea7d7dfb9e86a3ec0f37c01fa7fe8",
      "parents": [
        "0dd1363931ac1f9a531b48ded7f1178194fa4ef6"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Sat Jun 27 08:34:31 2020 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Tue Jun 30 10:07:48 2020 -0700"
      },
      "message": "THRIFT-5152: Separate timeout in TSSLSocket\n\nClient: go\n\nWe separated timeout in go\u0027s TSocket into connect timeout and socket\ntimeout in 81334cd, this change does the same for TSSLSocket to keep\nthem consistent.\n\nAlso rename the arg in NewTSocketFromConnTimeout from connTimeout to\nsocketTimeout, because in that function we already have a connection,\nso connect timeout is never used again. The timeout passed into that\nfunction is really for socket timeout, not connect timeout. The name of\nthat function actually means \"New TSocket From Conn (with) Timeout\", not\n\"New TSocket From ConnTimeout\" (I guess that\u0027s where the original\nconfusion came from).\n\nAlso add the missing change note for the breaking change.\n"
    },
    {
      "commit": "e79f764f09afdfe829a06ca721059d34244d7c20",
      "tree": "9680d1a399fe1e60a7f399a5a80cf3fb6a6a501a",
      "parents": [
        "3f78c70bbba82c733b1545d39eb5b489ac384e4c"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Fri Jun 12 22:22:35 2020 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Mon Jun 15 13:28:38 2020 -0700"
      },
      "message": "THRIFT-5233: Handle I/O timeouts in go library\n\nClient: go\n\nAs discussed in the JIRA ticket, this commit changes how we handle I/O\ntimeouts in the go library.\n\nThis is a breaking change that adds context to all Read*, Write*, and\nSkip functions to TProtocol, along with the compiler change to support\nthat, and also adds context to TStandardClient.Recv, TDeserializer,\nTStruct, and a few others.\n\nAlong with the function signature changes, this commit also implements\ncontext cancellation check in the following TProtocol\u0027s ReadMessageBegin\nimplementations:\n\n- TBinaryProtocol\n- TCompactProtocol\n- THeaderProtocol\n\nIn those ReadMessageBegin implementations, if the passed in context\nobject has a deadline attached, it will keep retrying the I/O timeout\nerrors, until the deadline on the context object passed. They won\u0027t\nretry I/O timeout errors if the passed in context does not have a\ndeadline attached (still return on the first error).\n"
    },
    {
      "commit": "dabfea2f98a9ab605748dea55b1efbb1932b361f",
      "tree": "ac141f9f985ad0aa540b9b6111b8c9ffcfb39728",
      "parents": [
        "cfbb905034c928f073639af00b30d74951744b61"
      ],
      "author": {
        "name": "max ulidtko",
        "email": "ulidtko@gmail.com",
        "time": "Tue May 19 21:44:46 2020 +0300"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue Jun 09 23:09:25 2020 +0200"
      },
      "message": "THRIFT-5186: Rewrite address resolution in T{Nonblocking,}ServerSocket\nClient: cpp\nPatch: Max Ulidtko\n\nThis closes #2151\n"
    },
    {
      "commit": "7de1f5d7f394b49624e7278937d7ff665bfc642a",
      "tree": "b46ed79f92b0a44c12cf37932977b95005f7c82e",
      "parents": [
        "4fd001c878e748a09713235725d8ad41de6ea6a1"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed May 20 00:55:10 2020 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed May 20 00:55:10 2020 +0200"
      },
      "message": "Added breaking change notice for \"THRIFT-5138 Swift keywords may be used as identifiers if escaped\" because it is labelled as such in JIRA\n"
    },
    {
      "commit": "55680af8fa075868abd7830f9e52008585de4adc",
      "tree": "0f4fac076a1a2519eeade4202792c2f9b109170f",
      "parents": [
        "47e9d8f13e5194e0f69cea3942c00b8e3ea6be9f"
      ],
      "author": {
        "name": "Mario Emmenlauer",
        "email": "mario@emmenlauer.de",
        "time": "Mon May 11 22:58:48 2020 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 11 21:58:48 2020 +0100"
      },
      "message": "Update NodeJS to oldest supported version on Ubuntu Xenial\n\n"
    },
    {
      "commit": "0c173bf9e02ee218ee7427aa0521845f674a3dd3",
      "tree": "a0d1b165a5ca116907acf4f224c08b7b1558ba75",
      "parents": [
        "48730688fbf00b03f0dcdf3eb44963ad894bd98e"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Thu Apr 30 23:49:29 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 01 07:49:29 2020 +0100"
      },
      "message": "THRIFT-5164: Small cleanup on example code\n\nClient: go\r\n\r\nGodoc requires at least one other exported type/function to render the\r\nwhole example file in the example, so export\r\nsimpleProcessorLoggingMiddleware to make the example of\r\nProcessorMiddleware more helpful.\r\n\r\nCurrently it\u0027s rendered in a not very helpful way:\r\nhttps://pkg.go.dev/github.com/apache/thrift@v0.13.1-0.20200430141240-5cffef964a08/lib/go/thrift?tab\u003ddoc#example-ProcessorMiddleware\r\n\r\nCompare to the client middleware example rendering:\r\nhttps://pkg.go.dev/github.com/apache/thrift@v0.13.1-0.20200430141240-5cffef964a08/lib/go/thrift?tab\u003ddoc#example-ClientMiddleware\r\n\r\nWhile I\u0027m here, also update CHANGES.md to mention ClientMiddleware.\r\n\r\n[skip ci]"
    },
    {
      "commit": "00c039adeb551b297276fcb88131f1cfe82be1cd",
      "tree": "0c47005559fb05eb2663da67e030c6e45c521ecb",
      "parents": [
        "52655cec793a5f2d276942e79de219e299436535"
      ],
      "author": {
        "name": "Andrew Boyle",
        "email": "pacejackson@users.noreply.github.com",
        "time": "Mon Apr 27 11:32:24 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 27 19:32:24 2020 +0100"
      },
      "message": "THRIFT-5164: Add middleware framework for Go servers\n\nThis commit adds a simple middleware framework for Go servers.\r\n\r\nIt provides:\r\n\r\n * A `ProcessorMiddleware` function interface used to define the actual middleware\r\n * `WrapProcessor`, the function that you use to wrap a `TProcessor` in a list of middleware\r\n * A helper `WrappedTProcessorFunction` struct to help with developing middleware\r\n\r\nThis is a breaking change for any custom implementations of the `TProcessor`\r\ninterface, but does not effect the code generated by compiling Thrift files. It\r\nadds two functions to the interface that are a part of the generated `TProcessor`\r\ncode, but were not defined in the interface explicitly.\r\n"
    },
    {
      "commit": "adf278dae0b1e53baf100b6a7108327698545366",
      "tree": "f9eecb77a05ae5b09887456de1b13ebbd7de8250",
      "parents": [
        "299b68e72334086c4685a5eaef397eb7c6129044"
      ],
      "author": {
        "name": "zeshuai007",
        "email": "51382517@qq.com",
        "time": "Mon Mar 09 19:07:43 2020 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue Mar 10 22:46:59 2020 +0100"
      },
      "message": "fix typos in CHANGES.md\nPatch: zeshuai007\n\nThis closes #2053\n"
    },
    {
      "commit": "56700e469d5d0659994a3963ad5a111740cf8277",
      "tree": "db903818e332aa6887f2efd2797163ffa4268d67",
      "parents": [
        "4903d18fca988871bcedce3b420fef2cd9682ca1"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat Feb 22 16:51:51 2020 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri Feb 28 19:18:34 2020 +0100"
      },
      "message": "THRIFT-4982 Remove deprecated C# bindings from the code base\nClient: csharp\nPatch: Jens Geyer\n\nThis closes #2027\n"
    },
    {
      "commit": "ded326101af3c6c9daad9814ce6404d385f36a1f",
      "tree": "9ed8ccdb0763cccfc4f259e1e0faa329202d9f19",
      "parents": [
        "7d30e2c0b67ef14351d233ac8b29292ae2fbbd90"
      ],
      "author": {
        "name": "Homarechan",
        "email": "tikuwakunn@icloud.com",
        "time": "Tue Jan 07 00:21:45 2020 +0900"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Feb 06 23:21:02 2020 +0100"
      },
      "message": "THRIFT-5072 Fix data type generation.\nClient: hs\nPatch: Homarechan \u003ctikuwakunn@icloud.com\u003e\n\nThis closes #1974\n"
    },
    {
      "commit": "397645ac24874b6f54d88b2700e56be090753825",
      "tree": "fa59900d864e2c15e4a04f3a8857c9166b9f3b36",
      "parents": [
        "a5ec666e1ba76fe7385ed56f484c9dfdd5b6bfc9"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Sat Jan 18 12:55:51 2020 -0800"
      },
      "committer": {
        "name": "Duru Can Celasun",
        "email": "dcelasun@apache.org",
        "time": "Sat Jan 18 20:55:51 2020 +0000"
      },
      "message": "THRIFT-5069: Make TDeserializer resource pool friendly\n\nClient: go\r\n\r\nThis change improves performance when using TDeserializer with a\r\nresource pool. See https://issues.apache.org/jira/browse/THRIFT-5069 for\r\nmore context.\r\n\r\nAlso add TSerializerPool and TDeserializerPool, which are thread-safe\r\nversions of TSerializer and TDeserializer. Benchmark result shows that\r\nthey are both faster and use less memory than the plain version:\r\n\r\n    $ go test -bench Serializer -benchmem\r\n    goos: darwin\r\n    goarch: amd64\r\n    BenchmarkSerializer/baseline-8            577558              1930 ns/op             512 B/op          6 allocs/op\r\n    BenchmarkSerializer/plain-8               452712              2638 ns/op            2976 B/op         16 allocs/op\r\n    BenchmarkSerializer/pool-8                591698              2032 ns/op             512 B/op          6 allocs/op\r\n    PASS"
    },
    {
      "commit": "ffb97e105cbef6afc809a1bdac9cdac1f35d6bab",
      "tree": "c9b2a58f29402781e3a12009e142a19ee851d80f",
      "parents": [
        "e780855d336beb23119cc83d1ca6c3008f842541"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri Dec 06 23:43:08 2019 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat Dec 07 08:47:32 2019 +0100"
      },
      "message": "THRIFT-4990 Upgrade to .NET Core 3.1 (LTS)\nClient: netstd\nPatch: Jens Geyer\n\nThis closes #1961\n"
    },
    {
      "commit": "622937162aeccf2a27d9196937ebf7ead40036f5",
      "tree": "33fcebc6c2ee0fb368d7c71542f788bc50a80732",
      "parents": [
        "5080645cb0ffe52de9d82685b2ab2d6b03aa6f3e"
      ],
      "author": {
        "name": "Andy Seaborne",
        "email": "andy@apache.org",
        "time": "Mon Nov 25 09:58:52 2019 +0000"
      },
      "committer": {
        "name": "Duru Can Celasun",
        "email": "dcelasun@apache.org",
        "time": "Mon Nov 25 09:58:52 2019 +0000"
      },
      "message": "THRIFT-5022: Fix TIOStreamTransport.isOpen for input or output only use\n\nClient: java\r\n\r\nThis closes #1942."
    },
    {
      "commit": "2646bd65b5ba499779e37ab2d19d67a7684cbdb3",
      "tree": "88ef91cbab3cf834c327bbce612aed6919d690f2",
      "parents": [
        "fad7fd3e5a850c0f4bf57e7370fad359d575fdc6"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat Nov 09 23:24:52 2019 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed Nov 13 09:34:58 2019 +0100"
      },
      "message": "THRIFT-5006 Implement DEFAULT_MAX_LENGTH at TFramedTransport\nClient: Delphi\nPatch: Jens Geyer\n"
    },
    {
      "commit": "ec439548c531e5848a4e85684d666745d747926f",
      "tree": "c9d67f60181aeae4d663cd4f0b2c8d86740e7568",
      "parents": [
        "b1d4b3afcccb64a68b846a55c4f8bb1a11aa56cb"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri Nov 01 19:19:44 2019 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat Nov 02 17:34:23 2019 +0100"
      },
      "message": "THRIFT-4990 Switch to .NET core 3.0\nClient: netstsd\nPatch: Jens Geyer\n\nThis closes #1909\n"
    },
    {
      "commit": "a3fa0d928f7647aa6007e16ac81d76a3b5183d2c",
      "tree": "26ef8aafd865f97c3d6b03f89fc206524e79cb0a",
      "parents": [
        "7cb8473bcd019deed508942cd628b606a544852e"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri Oct 11 00:42:29 2019 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Oct 17 00:07:13 2019 +0200"
      },
      "message": "Version 0.13.0\n"
    },
    {
      "commit": "ab89b8b40ee593e344dafb6192fd6ef3b1357c8b",
      "tree": "e8e743c39870f313527919f25291621190cf94ce",
      "parents": [
        "85d8162dcbfd17db3bb8232a2dbb870dd9908cc4"
      ],
      "author": {
        "name": "wineandcheeze",
        "email": "qinghui-xu@users.noreply.github.com",
        "time": "Thu Oct 10 13:50:50 2019 +0200"
      },
      "committer": {
        "name": "Duru Can Celasun",
        "email": "dcelasun@apache.org",
        "time": "Thu Oct 10 12:50:50 2019 +0100"
      },
      "message": "THRIFT-2530: Fix TIOStreamTransport#isOpen\n\nisOpen should return false when close is called.\r\n\r\nClient: java\r\n\r\nThis closes #1878."
    },
    {
      "commit": "178891f7d62adc98d1d1e661a0c26dd6a67ee50b",
      "tree": "9a177ce89be3e3f1c47345833d152ec2f1b3942a",
      "parents": [
        "c35ed736d26a1dfd8965ae197a67904ed9b4fba3"
      ],
      "author": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Mon Jul 08 06:49:15 2019 -0400"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Mon Jul 08 09:56:59 2019 -0400"
      },
      "message": "THRIFT-4805: Fixed readme files\n"
    },
    {
      "commit": "c35ed736d26a1dfd8965ae197a67904ed9b4fba3",
      "tree": "7897dddefd05391bf0ccd2769dca320588f3d998",
      "parents": [
        "08a6eb6e1f21aa15682e414e124d7ee1a51a39c7"
      ],
      "author": {
        "name": "Mithun RK",
        "email": "mithunr@oath.com",
        "time": "Mon Mar 11 14:14:05 2019 -0700"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Mon Jul 08 09:56:59 2019 -0400"
      },
      "message": "THRIFT-4805: Suppress excessive logging of SASL TTransportExceptions in case of END_OF_FILE\n\nTwo fixes here:\n\n1. Additional logic to properly catch and handle TTransportException.\n   Currently, T(SASL)TransportException gets caught and handled in\n   the wrong catch-block.\n2. The fix for THRIFT-3769 mutes _all_ TTransportExceptions in TThreadPoolServer.\n   This might mute legitimate failures. The intent of THRIFT-3769 (and\n   THRIFT-2268) was to mute the noise caused by TTransportException.END_OF_FILE.\n   This commit lets legitimate failures to be bubbled upwards.\n"
    },
    {
      "commit": "181d900a396a199083bf9e06da16214b720aacbc",
      "tree": "3139d901cee86d1c7b2c656352ea1adce907a46e",
      "parents": [
        "0223091b7049cbbddea675931771219de929fd59"
      ],
      "author": {
        "name": "Danny Browning",
        "email": "danny.browning@protectwise.com",
        "time": "Mon Apr 15 09:50:24 2019 -0600"
      },
      "committer": {
        "name": "Danny Browning",
        "email": "danny.browning@protectwise.com",
        "time": "Mon Apr 15 09:55:04 2019 -0600"
      },
      "message": "THRIFT 4536: Rust 1.34.0\n\nUpdate dockerfiles to use rust stable, call out required rust version in\nbreaking changes.\n"
    },
    {
      "commit": "0223091b7049cbbddea675931771219de929fd59",
      "tree": "a3088d6bb60f7618e421566591db1aa6c9123551",
      "parents": [
        "c9b1e29bc9e0702d7441383358d565e1e76ccea7"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed Apr 03 01:12:51 2019 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat Apr 06 09:53:09 2019 +0200"
      },
      "message": "THRIFT-4841 THTTPTransport relies on activeX component\nClient: Delphi\nPatch: Jens Geyer\n\nThis closes #1778\n"
    },
    {
      "commit": "e6fa4aac4923abe7a9749809c8403b0a3e215f94",
      "tree": "85c584397ec843eb8d0806e8d232480b8cf7e6c8",
      "parents": [
        "22c412e42d00d84c687725475f7f935953938e5f",
        "a9b748bb0e02a2b6aaa3f39d09ec7f1fa47a0cf4"
      ],
      "author": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Wed Mar 13 08:50:49 2019 -0400"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Wed Mar 13 08:50:49 2019 -0400"
      },
      "message": "Merge changelog from 0.9.3.1 release to master [ci skip]\n"
    },
    {
      "commit": "f95620d2b17ddd913f8108b39aa8138abe7d6027",
      "tree": "77a639dda4ff34b47feec7680d701819b46e4319",
      "parents": [
        "f6511c904bcac1dd8c7e24aa3432326738865f1b"
      ],
      "author": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Mon Jan 28 18:15:13 2019 -0500"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Fri Feb 01 11:13:49 2019 -0500"
      },
      "message": "THRIFT-4405: sanity tests relating to sequence numbers\n\n- prove all servers return the sequence ID given\n- prove that sequences that wrap around the int32_t space are handled ok\n"
    },
    {
      "commit": "042580f53441efe1bc5c80c89351fcb30740659e",
      "tree": "fb6504554a4dfa07dc4de09394be0f69a2b38cfd",
      "parents": [
        "aa0c8b35d8f78812de1d7803d6277a37d2ed593a"
      ],
      "author": {
        "name": "Sebastian Zenker",
        "email": "sebastian.zenker@gmx.de",
        "time": "Tue Jan 29 15:48:12 2019 +0100"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Tue Jan 29 09:48:12 2019 -0500"
      },
      "message": "THRIFT-4762: Applied some C++11 refactorings to the runtime library and compiler (#1719)\n\n* make use of C++11 override keyword\r\n* added const specifier to TTransport::getOrigin()\r\n* added more const correctness to the compiler\r\n* make use of auto keyword\r\n* replaced usage of NULL with nullptr\r\n* make use of explicitly-defaulted function definition\r\n* extended changelog\r\n"
    },
    {
      "commit": "aa0c8b35d8f78812de1d7803d6277a37d2ed593a",
      "tree": "b71ac06b6da5c135b11aea72bf12207e9cce0c2b",
      "parents": [
        "1231930abd1d72b422deec967559caf3dc02dac7"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Jan 28 23:27:45 2019 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Jan 28 23:12:28 2019 +0100"
      },
      "message": "THRIFT-4723 Consolidate C#/netcore into new netstd language target\nClient: netstd\nPatch: Jens Geyer\n\nThis closes #1710\n"
    },
    {
      "commit": "5e23c4df5b8a2c7f36f807dc07dc897fd8a39763",
      "tree": "33dcc7168435e32973f4b9094bb3ed934566cf1b",
      "parents": [
        "29f7f8f32f6bf88751e0ef3c8e3f2fba1aac5b8f"
      ],
      "author": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Sun Jan 27 00:00:33 2019 -0500"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Sun Jan 27 00:00:33 2019 -0500"
      },
      "message": "Update changes with removal of compiler plugin [ci skip].\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": "f6460fa00b0d9705ad1b88435aebc5aad9f0da7d",
      "tree": "a3a2e4992d4e52b7d85600a571d8b069a7bd1f50",
      "parents": [
        "72a878ebe39c3b4611dc2915dbc2080bafa082b3"
      ],
      "author": {
        "name": "cyy",
        "email": "cyyever@outlook.com",
        "time": "Tue Jan 15 14:30:30 2019 +0800"
      },
      "committer": {
        "name": "cyy",
        "email": "cyyever@outlook.com",
        "time": "Tue Jan 22 10:38:14 2019 +0800"
      },
      "message": "change doc\n"
    },
    {
      "commit": "e20ab3e2371803e69b321f13116e04a926ca39be",
      "tree": "4a7ccb62d6dce54e9fadd31c9fc3807ae8675ef0",
      "parents": [
        "4eac57abcfc5f6fb591d894fe446add243392557"
      ],
      "author": {
        "name": "Beluga Behr",
        "email": "dam6923@gmail.com",
        "time": "Sun Jan 06 15:08:58 2019 -0500"
      },
      "committer": {
        "name": "Beluga Behr",
        "email": "dam6923@gmail.com",
        "time": "Mon Jan 14 11:22:02 2019 -0500"
      },
      "message": "THRIFT-4725: Change Return Type Signature of Process Methods\n"
    },
    {
      "commit": "5c327d7bf629f6c5906759ccc919cf98d27ddf78",
      "tree": "5876f6c77cda5d7a14d332d0726ceba1bafa9971",
      "parents": [
        "234fb47229dad47842e97a599614dbbd81b7c4a2"
      ],
      "author": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Mon Jan 14 08:15:33 2019 -0500"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Mon Jan 14 08:15:33 2019 -0500"
      },
      "message": "update changes.md with cocoa info and fix a typo [ci skip]\n"
    },
    {
      "commit": "17355425429274e7971fff39d7e45279cdf550fa",
      "tree": "b616996ebfa0b8e9e06fb962f39887379ec2f6cc",
      "parents": [
        "278528cf7b1dd5dd977bce882aa126fac8695697"
      ],
      "author": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Fri Jan 11 23:06:08 2019 -0500"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Sun Jan 13 09:01:52 2019 -0500"
      },
      "message": "THRIFT-4735: Remove Qt4 build support\n"
    },
    {
      "commit": "c9ac8d2953a4806cc93aa4ff2e700623ecad980c",
      "tree": "74cb331a75066bc9b13910652a3724606fa65bbe",
      "parents": [
        "a5df39032ca206e2e6a9ec975147e81746d9a255"
      ],
      "author": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Mon Jan 07 16:46:45 2019 -0500"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Wed Jan 09 17:05:34 2019 -0500"
      },
      "message": "THRIFT-4720: documenting breaking changes, minor cleanup\n"
    }
  ]
}
