)]}'
{
  "log": [
    {
      "commit": "e7ab34eccb272584441f5462104d87f08b217ea7",
      "tree": "62a545d02ffa332ed71a6ccf08e14130bfcfd059",
      "parents": [
        "3b21bc9fb4b4fe191f2c5b94ccaa1e3e99193c58"
      ],
      "author": {
        "name": "Atharva Chiplunkar",
        "email": "73574922+AtharvaChiplunkar12@users.noreply.github.com",
        "time": "Thu Oct 30 07:40:33 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 30 14:40:33 2025 +0000"
      },
      "message": "THRIFT-5897: Use Read Lock for Listener in TServerSocket.Accept()\n\nProblem:\nAccept() previously used two separate lock acquisitions:\nRLock() to read interrupted field\nLock() (write lock) to read listener field\nWrite lock was unnecessary since listener is only being read, not modified\nWrite locks block all other goroutines (both readers and writers)\n\nSolution:\nConsolidate both field reads under a single RLock()/RUnlock() pair\nBoth interrupted and listener are read-only operations, so read lock is sufficient"
    },
    {
      "commit": "2620a12bfa92dfb808fb9668b3d84a2c56526fc3",
      "tree": "b16ea601f668e6d1203513394a8552f84419864a",
      "parents": [
        "d9a97c1610372eeb6db9f1a54e590a0a89067aea"
      ],
      "author": {
        "name": "Atharva Chiplunkar",
        "email": "atharvamchiplunkar12@gmail.com",
        "time": "Thu Oct 16 13:50:09 2025 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Fri Oct 17 12:59:39 2025 -0700"
      },
      "message": "THRIFT-5896: Fix race condition in TServerSocket.Addr()\nClient: go\n"
    },
    {
      "commit": "81723d0f3f0ed2199167d9b21c7baf98d3e61927",
      "tree": "fa56ef18cbf6e544dffb52c50d72a896fc15fc52",
      "parents": [
        "86268584f64690dae9dd08ef9fd113827fad884a"
      ],
      "author": {
        "name": "James Guthrie",
        "email": "JamesGuthrie@users.noreply.github.com",
        "time": "Fri Sep 26 16:35:51 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 26 08:35:51 2025 -0700"
      },
      "message": "go: reduce memory consumption of small fields (#3212)\n\nIn the context of THRIFT-5322 commit 37c2ceb7 introduced the\nsafeReadBytes method, which prevents allocating very large buffers on\nmalformed input by using a bytes.Buffer as the backing buffer to contain\ndata.\n\nDue to how io.CopyN and bytes.Buffer interact, and bytes.Buffer\u0027s grow\nbehaviour, the smallest buffer size is 512 bytes, but typically buffer\nsizes are at least 1024 bytes. In degenerate cases (reading many small\nfields) this can cause significant bloat, e.g. a value of 8 bytes in\nlength sits in a buffer of 1024 bytes.\n\nThis change eliminates bloat by allocating an array of exactly the\ndesired size, when the desired size is below bytes.Buffer\u0027s minimum\nbuffer size.\n"
    },
    {
      "commit": "9b13668bbb4e88af573b9d085150825d56c9f773",
      "tree": "8f970b125a78d71286abd6e5d66bb32a697aaefd",
      "parents": [
        "37f4e0d946124620cc56954320356662919e6943"
      ],
      "author": {
        "name": "Hasnain Lakhani",
        "email": "m.hasnain.lakhani@gmail.com",
        "time": "Mon Aug 25 11:54:23 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 25 11:54:23 2025 -0700"
      },
      "message": "THRIFT-5855: go fuzzers\n\nAdd fuzzers for go support, to improve the reliability/robustness of the implementation"
    },
    {
      "commit": "3b86252e05bae4f9885affe66c025c9062836f2c",
      "tree": "628be113427e27c9246013070ab44a26ebf3f6b2",
      "parents": [
        "57c5fc1f79229cd2ca9eba68568ade66fda03df5"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Wed Aug 13 09:02:51 2025 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Wed Aug 13 13:32:53 2025 -0700"
      },
      "message": "Update supported go versions to 1.24+1.25\n\nDrop support for go 1.23 as it\u0027s no longer supported by upstream.\n"
    },
    {
      "commit": "845a87a8158e29ca4b3f176ab8b335a9302db300",
      "tree": "35685858fb2f7529706805fa56e1c41892c2dabf",
      "parents": [
        "2f8347c0a59e9c4ee3276c1618a6130bf3c5d15b"
      ],
      "author": {
        "name": "Hasnain Lakhani",
        "email": "m.hasnain.lakhani@gmail.com",
        "time": "Tue May 27 22:31:42 2025 -0700"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Fri Jun 06 21:37:35 2025 +0200"
      },
      "message": "[THRIFT-5871] Improve MAX_MESSAGE_SIZE_CHECK and friends\n"
    },
    {
      "commit": "270696c9bea3b8cdbf464f8b4da5a157123a29e7",
      "tree": "b02f33bc281365f1afd31e573c40f072dea40d1c",
      "parents": [
        "716835fa76bdfe8020179f30d1d5dbadc65bf5fb"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Wed May 28 10:54:04 2025 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Thu May 29 08:57:45 2025 -0700"
      },
      "message": "go: Add a zlib reader pool\n\nWe implemented a zlib writer pool for default level when implementing\nTHeader, this change also add a zlib reader pool to help speed up things\nwhen zlib is used.\n\nAlso make TZlibTransport to use the zlib writer pool when it\u0027s using the\ndefault compression level.\n"
    },
    {
      "commit": "b4d2d919ad1d4c2e6611917e4c529673a49c6628",
      "tree": "346ce8a760a90f0ed3a863e2608d8bcbad299fd5",
      "parents": [
        "58d68c6bdb8dcbf655e79d9a26c521400f038e3e"
      ],
      "author": {
        "name": "Will Milton",
        "email": "wa.milton@gmail.com",
        "time": "Mon Apr 21 14:52:45 2025 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 21 12:52:45 2025 -0700"
      },
      "message": "Fix field stop read in duplicate_protocol.go (#3125)\n\nWhen generated code reads a struct, it runs a `for` loop calling\n`ReadFieldBegin` at the top, but breaks if the field type ID is\n`thrift.STOP`.\n\nWith TDuplicateToProtocol naively writing everything read, this results\nin extra writes, which breaks just about any protocol in the\n`DuplicateTo` struct field.\n\nThe proposed fix is to simply add special handling for `thrift.STOP` to\n`ReadFieldBegin`.\n\nI\u0027m no thrift expert, so I have no idea how other libraries handle this\nconcern.  Ideally, it seems like each protocol should understand and\nenforce the invariant that an attempt to call `WriteFieldBegin` with\ntype ID 0 either isn\u0027t valid or is a misguided attempt to call\n`WriteFieldStop`.\n\nCo-authored-by: Yuxuan \u0027fishy\u0027 Wang \u003cfishywang@gmail.com\u003e"
    },
    {
      "commit": "b28a4c48cd03d3e637a409f7f980d372a3251907",
      "tree": "cceffdddaaf79ac20373909a0ce371c0cdb46ceb",
      "parents": [
        "cd0dabbed7ed0517d97e0a4e1b373306f61b71a8"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Wed Mar 26 12:02:12 2025 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Wed Mar 26 14:22:49 2025 -0700"
      },
      "message": "THRIFT-5859: Generate a values iterator for enum types for go\n\nClient: go\n\nThe generated code looks like this:\n\n    type Foo int64\n\n    const (\n    \tFoo_One Foo \u003d 1\n    \tFoo_Two Foo \u003d 2\n    )\n\n    var knownFooValues \u003d []Foo{\n    \tFoo_One,\n    \tFoo_Two,\n    }\n\n    func FooValues() iter.Seq[Foo] {\n    \treturn func(yield func(Foo) bool) {\n    \t\tfor _, v :\u003d range knownFooValues {\n    \t\t\tif !yield(v) {\n    \t\t\t\treturn\n    \t\t\t}\n    \t\t}\n    \t}\n    }\n"
    },
    {
      "commit": "624118f61f8d43dd719749894b9c5b756c7b67d8",
      "tree": "27b5c46d24a00baae648b202de0219464e67c833",
      "parents": [
        "8a5538a9a1f0e2329cea564b038796b01bf1f0ec"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Tue Feb 11 12:52:42 2025 -0800"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Tue Feb 11 15:11:10 2025 -0800"
      },
      "message": "Update supported go versions\n\nWith the release of go 1.24.0, go 1.22.x is no longer supported. Update\nsupported go versions to go 1.23 and go 1.24.\n"
    },
    {
      "commit": "e10109c65c25c10e1641a539fe0e0ac6b3a72a75",
      "tree": "dbedf3ccee0cfd4eee9c3a40f4acc787f9014371",
      "parents": [
        "947ad66940cfbadd9b24ba31d892dfc1142dd330"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Thu Jan 09 09:39:37 2025 -0800"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Fri Jan 10 09:18:23 2025 -0800"
      },
      "message": "THRIFT-5845: Return TException for union check in Write\n\nClient: go\n\nIn compiler generated Write method for union types, return a TException\n(TProtocolException) when the number of fields set is not exactly 1, to\nhelp customer logic to decide whether to reuse a connection after an\nerror.\n\nWhile I\u0027m here, also do the same thing for the uniqueness check failure\nfor set fields in Write as well.\n"
    },
    {
      "commit": "c8cf304919f31c2132e1aa64fea4dfa08fe1bed9",
      "tree": "9511cef51f233249905f226a2ce0db7d93ca99b0",
      "parents": [
        "a085b0ecee74cf2102496264fe51a0dfe026f6f5"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Thu Nov 14 15:25:18 2024 -0800"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Fri Nov 15 10:08:56 2024 -0800"
      },
      "message": "THRIFT-5833: Add ProcessorError\n\nClient: go\n\nProvide ProcessorError as the combined error of write i/o error and\noriginal error returned by the endpoint implementation, and update\ncompiler to use that in Process functions.\n"
    },
    {
      "commit": "8b6d29d3ee7fb1bece7be1eb728e2e88e867cc2b",
      "tree": "2d37674ca8d44d5038651fea4c1336083f47e360",
      "parents": [
        "a4d458fdf3668acb6823d42d97dcba62b48bd6af"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri Oct 11 01:47:42 2024 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Oct 14 23:03:57 2024 +0200"
      },
      "message": "THRIFT-5823 Fix illegal uses of exceptions as normal struct type\nPatch: Jens Geyer\n\nThis closes #1928\n"
    },
    {
      "commit": "90af876c67be3973064c44eb967b0d7169c9987f",
      "tree": "38e5e8e158b0b077017c3c52d4fe9ed78e05e240",
      "parents": [
        "de7e6ad681c357e5812e369d9b89d572f24689c3"
      ],
      "author": {
        "name": "John Troy",
        "email": "jtroy@galileosuite.com",
        "time": "Mon Sep 16 09:33:40 2024 -0400"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Thu Sep 26 10:13:05 2024 -0700"
      },
      "message": "THRIFT-5818: Add AIX support\nClient: go\n\nSplits recvfrom() into AIX and non-AIX variants because AIX\u0027s non-blocking\nflag doesn\u0027t match other platforms.\n"
    },
    {
      "commit": "91565d490e98306ac6797dd6ed4f72c0e8222e78",
      "tree": "6fce5eef466c2c0fab1eec35d610c97494f5cfcc",
      "parents": [
        "a4ebb75faa3652d9d01f11d715f242305014eb4e"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Wed Aug 14 09:01:15 2024 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Wed Aug 14 10:39:41 2024 -0700"
      },
      "message": "Update supported go versions\n\nClient: go\n\nWith the release of go 1.23, update supported go versions to 1.22+1.23\naccording to our go support policy.\n\nAlso update the code to use the new range loop feature introduced in go\n1.22 when appropriate.\n\nAlso fix a bug in TSSLServerSocket.Addr that it does not return the\nlistener address.\n"
    },
    {
      "commit": "aeae628b49e397e5885fd221a282680979af9033",
      "tree": "51eaef9c5af1d80541d9ea4ea134677bb660a94f",
      "parents": [
        "b709b0bc09e424ac71b5389bca606c1161a8d8fd"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Mon Jun 10 11:39:23 2024 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Fri Jun 14 08:24:22 2024 -0700"
      },
      "message": "go: Improve efficiency with zlib in THeaderTransport\n\nWhen enabled zlib in THeaderTransport we observed very high cpu\noverhead, use a pool for zlib writers to improve efficiency.\n"
    },
    {
      "commit": "b20f675af7ef0103a880889447a166e0e4261926",
      "tree": "a8c45d19986510302979e2394e10076fd4af7f76",
      "parents": [
        "fa9af0ab69affaefaf80ecf60a9a0392a4ac8609"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Thu May 02 16:50:08 2024 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Fri May 10 10:25:01 2024 -0700"
      },
      "message": "THRIFT-5784: Add THeaderTransforms to TConfiguration\n\nClient: go\n\nWhile I\u0027m here, also auto add compression transforms read (currently\nonly zlib is supported) to writeTransforms so that a server will auto\nuse the same compression on the responses as the client chose to use in\nthe requests.\n"
    },
    {
      "commit": "fa9af0ab69affaefaf80ecf60a9a0392a4ac8609",
      "tree": "75996f27d5010b7206f63cc95914d0c5325404f2",
      "parents": [
        "42dbefb023369747bf6135588599bbeeae9e8ef2"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Thu May 09 17:58:43 2024 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Fri May 10 07:36:58 2024 -0700"
      },
      "message": "go: Use errors.Is over \u003d\u003d\n\nClient: go\n\nFix 2 instances we are using \u003d\u003d to check on error but should have used\nerrors.Is instead.\n"
    },
    {
      "commit": "91d37026c3cd746a70d59bc9881d1a2cd94cf890",
      "tree": "a1cf4cf3bd68367e57a43f103fba403dc2efc683",
      "parents": [
        "344498b67f42af38118cc250b0b1ec212f09d927"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Wed May 01 09:17:09 2024 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Wed May 01 09:34:06 2024 -0700"
      },
      "message": "Revert \"go: Define a bytePool for TRichTransport\"\n\nThis reverts commit 344498b67f42af38118cc250b0b1ec212f09d927.\n\nIn our extreme case this actually made things worse. On 30s cpu\nprofiles, although mallocgc reduced from 27.13s to 26.30s, the byte pool\nitself costed 11.9s. Looking at writeByte and readByte, writeByte\nincreased from 3.69s to 5.89s, and readByte increased from 11.36s to\n16.09s.\n"
    },
    {
      "commit": "344498b67f42af38118cc250b0b1ec212f09d927",
      "tree": "08513ae4f9a9e16e2786b542d444acfba449c4da",
      "parents": [
        "c3d8a4ef61b439464cd2d5c417a6ceb03e6cafb1"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Mon Apr 29 15:16:39 2024 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Tue Apr 30 10:54:50 2024 -0700"
      },
      "message": "go: Define a bytePool for TRichTransport\n\nClient: go\n\nTBinaryProtocol and TCompactProtocol (and as an extension,\nTHeaderProtocol) use TRichTransport\u0027s ReadByte/WriteByte functions a lot\nunder the hood, and in some extreme cases those ReadByte/WriteByte calls\ncan generate a lot of allocations for the byte they used.\n\nUse a resource pool to help reduce the allocations.\n"
    },
    {
      "commit": "63f04583e389e7afee330f0341e045a73cdb1979",
      "tree": "58bc0d1ce220eb8e0c12844543a745d23a68eb7f",
      "parents": [
        "f6972f1a29cb3c94929f5eecef816e65bed755ef"
      ],
      "author": {
        "name": "Thomas",
        "email": "thomasbruggink@hotmail.com",
        "time": "Thu Mar 21 22:51:07 2024 +0900"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Tue Apr 02 14:09:27 2024 +0200"
      },
      "message": "Manually remove $(BUILT_SOURCES) since no-dist-built-sources doesnt work\n"
    },
    {
      "commit": "f5396ed9dd8186fb73e13b911859b056c810c5c0",
      "tree": "73a173106b6cbe5ed843038315af2d3f995be61d",
      "parents": [
        "28260982599cf3de90bb34af6589d8ddbf7bedce",
        "0d0ac75347267f7c12fc9b5b349bf9ef7f632347"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri Mar 22 23:54:45 2024 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri Mar 22 23:54:45 2024 +0100"
      },
      "message": "Merge branch \u00270.20.0\u0027\n"
    },
    {
      "commit": "a9b14634991cb50dbe90bbeb27b16e2d2f7ddcc6",
      "tree": "13f3f68d7168970b59e54a248a823ebaeb6b376d",
      "parents": [
        "b60b8feb5f0ff8e439069132e9081d89cf7cbf6c"
      ],
      "author": {
        "name": "k-walton",
        "email": "113375522+k-walton@users.noreply.github.com",
        "time": "Mon Mar 18 18:26:27 2024 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 18 15:26:27 2024 -0700"
      },
      "message": "THRIFT-5767: use string builder to parse strings with escaped quotes (#2946)\n\nClient: Go"
    },
    {
      "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": "dd1217fc9a201e1db86f2c2669c6f5a93d7fcf89",
      "tree": "7c09675ca490403445ffa0855858076533e55120",
      "parents": [
        "ab6f3ef1f439e0706ed39c7e741cda80ff355f9a"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Tue Nov 21 16:42:00 2023 -0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Feb 07 22:30:19 2024 +0100"
      },
      "message": "THRIFT-5745: Implement slog.LogValuer on go TStructs\n\nClient: go\n\nImplement slog.LogValuer for all TStruct and TException generated by the\ncompiler for go code. Also add SlogTStructWrapper in the library so we\ndon\u0027t have to repeat it in the compiler generated go code.\n"
    },
    {
      "commit": "ab6f3ef1f439e0706ed39c7e741cda80ff355f9a",
      "tree": "e54a7d349f8c5c5ee3134f04a286c1e8d93ff2bb",
      "parents": [
        "318731b119a491d3a405b235afc4c0606cd3db2a"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Fri Nov 17 12:36:31 2023 -0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Feb 07 22:30:19 2024 +0100"
      },
      "message": "THRIFT-5744: Switch to slog for go library\n\nClient: go\n"
    },
    {
      "commit": "51e541eae3850889f9d698b14dc0cd8b5de1b6f0",
      "tree": "3278b344a9976f6eae85f64cb8f25a9afcd0ada0",
      "parents": [
        "875178c0ab11c9463936b95980397087530b8cb8"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Tue Nov 21 16:42:00 2023 -0800"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Tue Feb 06 16:02:56 2024 -0800"
      },
      "message": "THRIFT-5745: Implement slog.LogValuer on go TStructs\n\nClient: go\n\nImplement slog.LogValuer for all TStruct and TException generated by the\ncompiler for go code. Also add SlogTStructWrapper in the library so we\ndon\u0027t have to repeat it in the compiler generated go code.\n"
    },
    {
      "commit": "875178c0ab11c9463936b95980397087530b8cb8",
      "tree": "2a5c86e2f65dfc20714044ae36e850c0b3763eea",
      "parents": [
        "75cf93ed22264fecaa79e82f05fa9f02d49fc58b"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Fri Nov 17 12:36:31 2023 -0800"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Tue Feb 06 15:46:57 2024 -0800"
      },
      "message": "THRIFT-5744: Switch to slog for go library\n\nClient: go\n"
    },
    {
      "commit": "022d0278ebdbc049f77fbda6b97a3d835fdd3ad3",
      "tree": "58ce3639dd92e36296ea06ddfdaf2584bbab5fc7",
      "parents": [
        "697c08badc95d1b29a39080df5e04efcb3e2b8ff"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Wed Nov 22 09:09:57 2023 -0800"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Mon Dec 04 06:57:25 2023 -0800"
      },
      "message": "Github Actions: Remove --disable-tests\n\nWith --disable-tests, for example for Go the `make check` under `lib/go`\nwould only run unit tests under `lib/go/thrift` but not the unit tests\nunder `lib/go/test`.\n\nAlso some changes in lib/go/test/fuzz/Makefile.am so it works in both go\n1.20 and 1.21 (The current state breaks in 1.21 but because of\n`--disable-tests` we never noticed that).\n"
    },
    {
      "commit": "407630f28089be2580809332e9f15078fce4be7e",
      "tree": "386f009a9f6cb1cadf8c4f5da66c5bb1b69fbf18",
      "parents": [
        "0ca6e888fc4acfd4f30c56e1e006ce61b8314efa"
      ],
      "author": {
        "name": "bwangelme",
        "email": "bwangel.me@gmail.com",
        "time": "Mon Sep 04 19:32:36 2023 +0800"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Wed Sep 20 09:24:31 2023 -0700"
      },
      "message": "fix: fix NewTSocketConf comment error\n\nClient: [\"go\"]\n\n[skip ci]\n"
    },
    {
      "commit": "0e872c84aaa49fe9ce72123827f666c0064f0c97",
      "tree": "296e6159ad904138e807cc96abbb4a6b5d90d9a1",
      "parents": [
        "166a2136ca62b21b813f55c84fc7f0afc32dad9c"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Wed Aug 09 15:06:37 2023 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Wed Aug 09 16:03:22 2023 -0700"
      },
      "message": "THRIFT-5731: Handle ErrAbandonRequest automatically\n\nAlso add a test to verify the behavior.\n\nThe test helped me to found a bug in TSimpleServer that didn\u0027t handle\nthe ErrAbandonRequest case correctly, so fix the bug as well.\n\nclient: go\n"
    },
    {
      "commit": "dc733faff4c1b1783042afdb782e974f17d01253",
      "tree": "dc13602257b0d9b7fc556b60307d89394f690474",
      "parents": [
        "055ceecebf23d910f69e9555a46a8a8c457d1b12"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Fri Jun 23 09:29:25 2023 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Tue Aug 08 11:33:22 2023 -0700"
      },
      "message": "Update supported go versions to 1.20 and 1.21\n"
    },
    {
      "commit": "2c927b529761cb7540b226b33ea4ac47b368ce61",
      "tree": "d58ed61eccfb77ed593ad19f33a1d9755f31266b",
      "parents": [
        "b5a8a883a1c5227967093c45a6bc8e36932f2711"
      ],
      "author": {
        "name": "Robert Pająk",
        "email": "pellared@hotmail.com",
        "time": "Mon May 15 14:33:54 2023 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Mon May 15 21:52:15 2023 +0200"
      },
      "message": "Fix NewTZlibTransportFactoryWithFactory comment"
    },
    {
      "commit": "dca42ab4b521bd4b0ffda67ae47a75b47045af24",
      "tree": "d4344dac3e68e35f0a1696c9b1d1528139b8df06",
      "parents": [
        "bb80ef4e7db152eb744b0bf47cb196059021266f"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Wed Feb 15 12:19:44 2023 -0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed Mar 01 22:58:55 2023 +0100"
      },
      "message": "THRIFT-5685: Revert \"THRIFT-5601: Fix forward typedef in go compiler\"\n\nThis reverts commit b39370ec3bc96d201bbc82fbde136f98ae605ed1, and also\nadds a test case for THRIFT-5685.\n"
    },
    {
      "commit": "14489341ce2f2a6a2769069d6091f8f14713fff8",
      "tree": "d7a33fe44b08e6d0c5ea93c1d11c0e1fd84f8927",
      "parents": [
        "d21188a627bd48c82ea5c3c67ac639e9e256593d"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Thu Feb 02 10:43:36 2023 -0800"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Thu Feb 02 16:00:26 2023 -0800"
      },
      "message": "go: Use new atomic types introduced in go1.19\n\nThose come with nocopy protection, so they can prevent bugs like people\npassing the types by value instead of by pointer from the compiler.\n"
    },
    {
      "commit": "b94eac7ca0875fb2364cd672ae1adc0b70f8f11a",
      "tree": "878b15349c6bfc04bde0e106f243313590369b78",
      "parents": [
        "f223bd3b54d04c21289d806c7f51b115757703e7"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Thu Feb 02 09:41:31 2023 -0800"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Thu Feb 02 12:59:53 2023 -0800"
      },
      "message": "Update supported go versions\n\nFollowing our policy regarding supported go releases, change the\nsupported go versions to 1.19.* and 1.20.* with the release of go 1.20.\n"
    },
    {
      "commit": "b39370ec3bc96d201bbc82fbde136f98ae605ed1",
      "tree": "342d3430fbb2f3550922d5cfcca70b608980ff0d",
      "parents": [
        "916ae8b8134630f49d32e47c3f0f3218f855a24c"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Thu Dec 29 15:31:38 2022 -0800"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Tue Jan 03 10:49:04 2023 -0800"
      },
      "message": "THRIFT-5601: Fix forward typedef in go compiler\n\nClient: go\n\nWhile https://github.com/apache/thrift/pull/951 fixed the bug with\nforward typedef used in container values, it also introduced a bug that\nbroke forward typedef used in other cases in go code. Limit the fix of\nit to only the container key and value types to fix other cases.\n"
    },
    {
      "commit": "e8353cb46e9f5e71f9b76f55d6bf59530b7f98ef",
      "tree": "0a115e7b4edaf865c497a01196f9fc60acd8d734",
      "parents": [
        "2acfe0fc7a1747c327da66c8a693840ba0c5a016"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Fri Oct 28 10:29:25 2022 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Wed Nov 02 15:44:07 2022 -0700"
      },
      "message": "Use multi-module to cleanup top level go.mod\n\nClient: go\n\nThe go library itself does not have any third-party dependencies. We\nhave one third party dependency from the test code, which kind of\npolluted from top-level go.mod file to the users of thrift go library.\n\nWe previous tried to clean that up by creating go.mod file at\nlib/go/thrift, which caused issues to the release process and thus\nreverted.\n\nUse multi-module to separate tests requiring mock to their own modules\nso that we can keep the top-level go.mod file clean.\n\nAlso some minor fixes on the github actions go workflow.\n"
    },
    {
      "commit": "2acfe0fc7a1747c327da66c8a693840ba0c5a016",
      "tree": "f07b250964c0295a9d9908bb20e8e2028c9fed1f",
      "parents": [
        "cea5559ecf458ccbb251594dba571f01bf0a2402"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Fri Oct 21 10:27:40 2022 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Wed Oct 26 14:40:10 2022 -0700"
      },
      "message": "THRIFT-5650: Implement UUID in Go compiler\n\nClient: go\n"
    },
    {
      "commit": "19c13b4cc697410b586b243123522c43e68e2f0c",
      "tree": "12a77be60cdcc08cb6ec2d8714b4530e9306aff8",
      "parents": [
        "baa0daa478c3b16876ccc0778f068fb72932dda6"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Wed Oct 12 14:13:15 2022 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Fri Oct 21 10:36:06 2022 -0700"
      },
      "message": "THRIFT-5650: Implement UUID in Go library\n\nClient: go\n\nThis is only the library part of THRIFT-5650. I still have some open\nquestions for the compiler part so that will be done later.\n\nWhile I\u0027m here, also made some changes to go CI process:\n\n* Update ubuntu-bionic to use go 1.18 for travis\n* Update ubuntu-jammy to use the latest go 1.19.x for travis\n* Run both go 1.18 and 1.19 for github actions\n* Also run test/go tests for github actions\n"
    },
    {
      "commit": "d5927a96019154fa590c38f3a7ca70275af11b3c",
      "tree": "4c0a412c9d0bd333e24f21cc6d13bedadc487268",
      "parents": [
        "944b8e68a099392d80153ebcf26f32ff7f1d893a"
      ],
      "author": {
        "name": "Simon Wang",
        "email": "jellalleonhardt4869@gmail.com",
        "time": "Mon Sep 13 19:50:45 2021 +0800"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Sun Sep 11 08:25:32 2022 -0700"
      },
      "message": "THRIFT-5423: IDL parameter validation for Go\n\nCloses https://github.com/apache/thrift/pull/2469.\n"
    },
    {
      "commit": "944b8e68a099392d80153ebcf26f32ff7f1d893a",
      "tree": "c74bc3544883d05214735a0168c24dd48cf9f093",
      "parents": [
        "154d1548a8e75df49f9958845dd98b13aa2258ec"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Sep 11 12:30:35 2022 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Sep 11 12:31:26 2022 +0200"
      },
      "message": "fixed a ton of missing ASF headers in *.thrift files\n"
    },
    {
      "commit": "f066d84ffb7fe2eb0dc3b7e7cd0d0417a1ae7963",
      "tree": "d47baa7d0dea62a354eb0ededf77715d6cf7aa33",
      "parents": [
        "3f4fa2947dc6e049e0f4748bdb6142b0c4673164"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Jun 13 23:37:25 2022 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Sep 05 22:04:22 2022 +0200"
      },
      "message": "Replace ThriftTest.thrift with v0.16/ThriftTest.thrift to allow for merging the partially completed uuid implementation to master\n"
    },
    {
      "commit": "bdfde857a802e443a2cab1717744dee8e56cbe76",
      "tree": "71f2686e775c35667f3fdae4eb83b814ecb77ed1",
      "parents": [
        "7ae180bb1eaea8bdfd6d5714aa90b8445165ff1c"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Mon Aug 08 22:12:40 2022 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Tue Aug 09 17:41:45 2022 -0700"
      },
      "message": "Add a generic sync.Pool wrapper to go library\n\nSince we dropped support of Go 1.18-, use generic to avoid dealing with\ntype assertions with interface{}/any.\n\nWhile I\u0027m here, also remove the usages of ioutil, as that\u0027s officially\nmarked as deprecated in Go 1.19.\n\nClient: go\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": "3f9b7d0da2d6f41b57cd636fa3b6067737befe4c",
      "tree": "7775b5f5eb0e2711331eeb340eeb6b4e6378bec7",
      "parents": [
        "892b6731eedcf81e6ba9627327676cddb009fc07"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Tue Aug 02 11:31:14 2022 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Tue Aug 02 22:19:43 2022 -0700"
      },
      "message": "Update supported go version to 1.18.* and 1.19.*\n\nClient: go\n\nAlso provide generic version of Pointer helper function.\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": "162cbb4894548ac4d016f8e63a15f994b17c4dba",
      "tree": "f28429e31a2fd9c6c40be4790170a9f2d3bf1565",
      "parents": [
        "c4e96c75758d94a79dae925b1daae0c950823057"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Thu May 19 11:09:01 2022 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Sat May 21 10:08:32 2022 -0700"
      },
      "message": "Minor tweak to ErrAbandonRequest in go library\n\nClient: go\n\nMake it unwrap to context.Canceled, since the main use case of it is to\nbe returned in lieu of context.Canceled to avoid extra writing to the\nclient, so that if user has any processor middleware that checks for\ncontext.Canceled error those would still work.\n"
    },
    {
      "commit": "71ba05ba2dd50aff11f1e88df0712aa9f6df8c9d",
      "tree": "5a301ebf3ebfb66809298555ac866865d112d1f7",
      "parents": [
        "5b158389b01d028e98e59f0ea41c01d625a84242"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Tue May 10 13:18:51 2022 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Thu May 12 13:28:14 2022 -0700"
      },
      "message": "THRIFT-5569: Fix size check in TCompactProtocol.ReadListBegin\n\nClient: go\n\nThis was a copy-paste error in the original implementation in\n6583f4e52345c3b05a76f0b188836599628356e8.\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": "8045d82f0d5359cbdc196414f0c1aa4679c4124f",
      "tree": "29782b3cd2b3d27a4704dad3b57f47f6cf22bd8f",
      "parents": [
        "88a45ac77518eafb57db08938ecdf38c5fcf7a31"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Tue Apr 19 14:31:39 2022 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Mon Apr 25 16:00:53 2022 -0700"
      },
      "message": "Update Go versions used in travis and LANGUAGES.md\n\nPer our support policy, drop support of go 1.16 and add support of go\n1.18.\n\nAlso enable go vet in make check, and fix issues reported by go vet.\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": "9bee877e663f11f4cbdd3a4f02938c8ab9fe8976",
      "tree": "151cdff0268536208f0eb1cebfdf1f2ec968e869",
      "parents": [
        "103a11c9c28ac963a3b2591ecac641db3cbaa113"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Tue Feb 22 18:48:17 2022 -0800"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Wed Feb 23 09:17:50 2022 -0800"
      },
      "message": "THRIFT-5527: Don\u0027t swallow idl exceptions in Process function\n\nClient: go\n\nThis allows ProcessorMiddlewares to access such exceptions, unless\nthere\u0027s a network error writing the response (which takes priority).\n\nWhile I\u0027m here, also make the indentation of Process function more\nconsistent, and make it consistent on returning false and an error when\nthe reading/writing fails.\n"
    },
    {
      "commit": "2fa907e84b5bf29c263c4cde657e99c2e894562f",
      "tree": "9ade21a35e74b56ca0dbcf8942937ffad874a9fb",
      "parents": [
        "6266dc0777e54b169e5c2a41541d586078633195"
      ],
      "author": {
        "name": "郑桐",
        "email": "yuesen.xys@alibaba-inc.com",
        "time": "Tue Jan 04 18:20:24 2022 +0800"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Wed Feb 16 14:14:40 2022 -1000"
      },
      "message": "THRIFT-5495: close client when shutdown server in go lib\nClient: go\n"
    },
    {
      "commit": "303139410616ab3e580aa6aead1001118adee243",
      "tree": "e764420e454d01d1da8018d29d075fe32d9f2fdc",
      "parents": [
        "f18a8f34e21b09a389e93114ae75375b53724b39"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Tue Feb 08 15:07:31 2022 -0800"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Tue Feb 08 16:40:47 2022 -0800"
      },
      "message": "THRIFT-5509: Suppress noisy log from go\u0027s TSimpleServer\n\nClient: go\n\nThis is a follow up of 6f33b0470. After we proactively closed the client\nconnection, processor.Process could return NOT_OPEN as a result, and\nthose errors being logged will cause the log to be very noisy.\n\nThis will also be cherry-picked into 0.16.0 branch.\n"
    },
    {
      "commit": "56a840aa176494c5875cba7faff9dfc16bf8f831",
      "tree": "1b1b496ae2acb5408bcb9db3c10af206d6b73cf0",
      "parents": [
        "b9fe9c2417f26fa6e1d9383b8fa9d50ff9a96d65"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Thu Feb 03 10:44:53 2022 -0800"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Thu Feb 03 16:12:06 2022 -0800"
      },
      "message": "THRIFT-5509: Close connection in IsOpen\n\nClient: go\n\nWhen the connectivity check failed in IsOpen, close the connection\nexplicitly to avoid connection leaks.\n\nThis is Path 2 of THRIFT-5509.\n"
    },
    {
      "commit": "a10d401996690d3e5387341c1248b7d1028d9ac7",
      "tree": "e1309067b06e96f043c70878664906a8b363f5c8",
      "parents": [
        "f99375ef87a0540e7af6cf167522ba0cbb1a0b21"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed Feb 02 22:57:46 2022 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed Feb 02 22:58:16 2022 +0100"
      },
      "message": "FIX: missing EXTRA_DIST entries\n"
    },
    {
      "commit": "39d7278ddffce27d45380c483a84d013f6db4d7b",
      "tree": "43055cd706cb6237e61b4e74e53a112801049dd2",
      "parents": [
        "9d7d627b518f84d6f7bfee76f1d7410e63c4fe7c"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Sat Jan 08 01:03:57 2022 -0800"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Sat Jan 08 23:10:21 2022 -0800"
      },
      "message": "go: Make socketConn.Close thread-safe\n\nClient: go\n\nWe used to rely on setting the connection inside TSocket/TSSLSocket as\nnil after Close is called to mark the connection as closed, but that is\nnot thread safe and causing TSocket.Close/TSSLSocket.Close cannot be\ncalled concurrently. Use an atomic int to mark closure instead.\n"
    },
    {
      "commit": "e12fbe88e2f734cbcb010f0f820a6e43e94c8ec2",
      "tree": "20a90aa37f540197b97cdab8b9531886a488bc82",
      "parents": [
        "999e6e3bce217acb35b44440fd656cf169d47ed8"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Thu Jan 06 09:36:08 2022 -0800"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Thu Jan 06 22:06:41 2022 -0800"
      },
      "message": "Use iotest.OneByteReader instead of self implemented one\n\nClient: go\n\nThis is a trivial unit test improvement from the last commit. Of course\nI only discovered the existence of testing/iotest package after I\nre-invented the wheel.\n"
    },
    {
      "commit": "999e6e3bce217acb35b44440fd656cf169d47ed8",
      "tree": "dfc4563ceda1b9cccb77a7d4ef71f4ea4c055620",
      "parents": [
        "d582a861426c43c869e71d8d6ce598a33cbab316"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Fri Dec 17 10:39:07 2021 -0800"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Wed Jan 05 14:21:58 2022 -0800"
      },
      "message": "THRIFT-5490: Use pooled buffer for TFramedTransport\n\nClient: go\n\nFollow up on d582a8614, do the same thing on TFramedTransport.\n\nAlso update the test on the implementation of THeaderTransport to make\nsure that small reads are not broken.\n"
    },
    {
      "commit": "d582a861426c43c869e71d8d6ce598a33cbab316",
      "tree": "008a7d7b357761f1d8c19a3913cae16029ea3e69",
      "parents": [
        "b724787d373de99fee2222ab0eb2e052f8c8d3ed"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Thu Dec 16 14:44:47 2021 -0800"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Fri Dec 17 10:24:19 2021 -0800"
      },
      "message": "THRIFT-5490: Use pooled buffer for THeaderTransport\n\nClient: go\n\nInstead of binding 2 buffers (read/write) to each THeaderTransport, grab\none from the pool to be used for the whole read/write, and return it\nback to the pool after the read/write is done. This would help reduce\nthe memory footprint from idle connections.\n"
    },
    {
      "commit": "0f760537c3f17502e7694c61417dafc02fc3aa3a",
      "tree": "7a8861bd74cc760bbb27906acc6a099b0d143a0e",
      "parents": [
        "6a7278b9db78777f146b09fdfe42eb342faec171"
      ],
      "author": {
        "name": "郑桐",
        "email": "yuesen.xys@alibaba-inc.com",
        "time": "Sat Oct 09 16:01:28 2021 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Mon Oct 18 23:00:55 2021 +0200"
      },
      "message": "skip map value with depth limit\n"
    },
    {
      "commit": "ab2f23a2a9cd8d170e6d45ae6ad0e693052e3599",
      "tree": "e4f3437946f6f2b05de46ca43140c71d13040176",
      "parents": [
        "e3be32112aa8029577b88a9ee431ef67f8a357db"
      ],
      "author": {
        "name": "Balázs Grill",
        "email": "balazs.grill@incquerylabs.com",
        "time": "Sun Sep 19 08:00:20 2021 +0200"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Mon Sep 20 13:43:30 2021 -0700"
      },
      "message": "Modified build tags to allow js/wasm target\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": "a265236febefca37d3aa74b544112a2f724b3ea8",
      "tree": "b61defe9815e93ae473322b0dd66db4a65a9da87",
      "parents": [
        "a142709baeda76c2a76b21e0ae2b4aa0dff5132a"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Wed Aug 04 09:07:53 2021 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Thu Aug 19 14:09:24 2021 -0700"
      },
      "message": "THRIFT-5447: Update supported Go versions\n\nClient: go\n\nUpdate go versions used in travis to 1.16.7 and 1.17, update\nLANGUAGES.md, and update go\u0027s README to clarify on support policy.\n\nThis change will be cherry-picked into 0.15.0 branch after merged.\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": "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": "f6955351222f51e5662ce41de43c75b7c3e640e1",
      "tree": "75bd4608863e18904e3faea9a6fe0c08a8f26acf",
      "parents": [
        "68c0272a0af55f8a50296f5fa3ba672c08937d98"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Thu Jul 29 15:59:10 2021 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Fri Jul 30 08:47:45 2021 -0700"
      },
      "message": "THRIFT-5389: Fix const generation for optional fields\n\nClient: go\n\nThe current compiler will generate uncompilable code when we use\noptional enum and/or typedef\u0027d types in a thrift constant.\n\nThis fixes the issue, also adds a test for that.\n"
    },
    {
      "commit": "68c0272a0af55f8a50296f5fa3ba672c08937d98",
      "tree": "c45ef1aa4dc9929961eaceaf80ad085a20a97c7e",
      "parents": [
        "47bf0e46e72b3f4d64ed13c8a03a878df17ab046"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Mon Jul 26 08:59:01 2021 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Mon Jul 26 10:15:42 2021 -0700"
      },
      "message": "Update README for go library\n\nBecause we briefly had go.mod file under lib/go/thrift in e27e82c46b\n(it was later removed in d9fcdd3dba), using\n\n    go get github.com/apache/thrift/lib/go/thrift/...\n\n(as suggested by the current README) will get that particular version\ninstead of the latest released version. So update README to use\n\n    go get github.com/apache/thrift\n\ninstead.\n\nAlso instead of saying we support Go 1.7+, say we support the officially\nsupported Go releases, as that\u0027s our new support policy.\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": "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": "3761f0048d0dcf901b683329b4b29cdbd47708fb",
      "tree": "49abfd1a7bd46119de50807742bbe97c2509df2c",
      "parents": [
        "b87873222a509f5c6ba07e9d7c78d7b20909f805"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Thu Mar 25 15:41:53 2021 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Fri Mar 26 07:57:09 2021 -0700"
      },
      "message": "Fix lib/go/test/fuzz for oss-fuzz project\n"
    },
    {
      "commit": "b71f11e251a711604cea8caad7d493ea57fe8a8f",
      "tree": "a560d3adce03767cd5c9c3ad0ec6fb5879b85ff1",
      "parents": [
        "65ea75279aa8c4678075d29063e3d5b0658ef155"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Mon Mar 22 15:01:00 2021 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Wed Mar 24 13:32:14 2021 -0700"
      },
      "message": "THRIFT-5358: Add go.mod file to root directory\n\nClient: go\n\nThis unblocks the development under go 1.16+, which starts to complain\nwhen there\u0027s no go.mod file in any of the directories.\n\nThe current approach is certainly not the best solution ever, for\nexample it does not run the tests under lib/go/test/tests but copy them\ninto lib/go/test/gopath/src/sometest and run them there instead, but\nthose improvements can be done in the future in follow up PRs and this\nshould be a good enough first step to unblock developments.\n"
    },
    {
      "commit": "65ea75279aa8c4678075d29063e3d5b0658ef155",
      "tree": "5c9705afa89e4155d848e4c0b1b06652a94ff665",
      "parents": [
        "66d897667c451ef6560d89b979b7001c57a3eda6"
      ],
      "author": {
        "name": "Philippe Antoine",
        "email": "contact@catenacyber.fr",
        "time": "Mon Mar 15 09:34:58 2021 +0100"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Wed Mar 24 10:03:20 2021 -0700"
      },
      "message": "Adds fuzz target for oss-fuzz integration\n"
    },
    {
      "commit": "62beb6751d3c70f8db8fed4a3bb76e4ff3765c22",
      "tree": "311e1de5451218414a510bfabe5056eed1e45151",
      "parents": [
        "cc70b4e89a1579559bc50fb8216c471a5c550926"
      ],
      "author": {
        "name": "Philippe Antoine",
        "email": "contact@catenacyber.fr",
        "time": "Mon Mar 15 09:26:39 2021 +0100"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Mon Mar 15 09:28:27 2021 -0700"
      },
      "message": "Early error check in golang struct reading\n\navoids a timeout on malformed input found by fuzzing\n"
    },
    {
      "commit": "b0b353191aeaa1b427d105892efa7facea6d4f1f",
      "tree": "08a523fcec62a405eba32b7ef51068f85b35f90c",
      "parents": [
        "6813b1914bf32b8d37d10207f10a092064ba36d7"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Thu Feb 18 09:09:20 2021 -0800"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Mon Feb 22 10:02:48 2021 -0800"
      },
      "message": "Move ConflictingNamesTest to lib/go/test\n\nClient: go\n\nAlso add missing copyright header for files added in\nhttps://github.com/apache/thrift/pull/2307.\n"
    },
    {
      "commit": "2ef0113d69527cf2b8b6d6df0ecd2650d6f7bf38",
      "tree": "3af52fbb6447f4af19286dfb843d049dde5d7eb5",
      "parents": [
        "ebfa771a26e406da947f72ae8d87602c892435cc"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Feb 04 22:41:50 2021 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri Feb 05 12:58:49 2021 +0100"
      },
      "message": "Consolidated gitignore \u0026 added missing EXTRA_DISTs\n"
    },
    {
      "commit": "4aaef75819aea3f79ec812393dbe13bb62bd6c45",
      "tree": "01b30b368276430fa01763df92e6eb2f6cc945cb",
      "parents": [
        "93d20993f911795b4bcfbcb8143397dad77267bc"
      ],
      "author": {
        "name": "wangtieju",
        "email": "wangtieju@bytedance.com",
        "time": "Thu Feb 04 11:26:44 2021 +0800"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Wed Feb 03 21:05:22 2021 -0800"
      },
      "message": "THRIFT-5337 Go set fields write improvement\n\nClient: go\n\nThere is a duplicate elements check for set in writeFields* function,\nand it compares elements using reflect.DeepEqual which is expensive.\n\nIt\u0027s much faster that generates a *Equals* function for set elements and\ncall it in duplicate elements check, especially for nested struct\nelement.\n\nCloses #2307.\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": "8dd04f4adfaea08699b1745c79f122bf9cbd6f07",
      "tree": "8edc3a6eb3ff75b1eab7809429ab12aa39d59c2c",
      "parents": [
        "d9fcdd3dbafbe1a8296018d0d6c55d972f607a42"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Fri Jan 22 15:41:41 2021 -0800"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Fri Jan 22 20:49:57 2021 -0800"
      },
      "message": "THRIFT-5322: THeaderTransport protocol id fix\n\nClient: go\n\nThis fixes a bug introduced in\nhttps://github.com/apache/thrift/pull/2296, that we mixed the preferred\nproto id and the detected proto id, which was a bad idea.\n\nThis change separates them, so when we propagate TConfiguration, we only\nchange the preferred one, which will only be used for new connections,\nand leave the detected one from existing connections untouched.\n\nAlso add a test for it.\n"
    },
    {
      "commit": "d9fcdd3dbafbe1a8296018d0d6c55d972f607a42",
      "tree": "e361ade98c00d9084a25603374b9919ebed6c0c5",
      "parents": [
        "e27e82c46ba4d46c2c3267701191cdc26614f739"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Wed Jan 20 09:17:04 2021 -0800"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Wed Jan 20 11:49:24 2021 -0800"
      },
      "message": "THRIFT-5338: Remove lib/go/thrift/go.mod\n\nClient: go\n\nHaving it under a subdirectory has some unexpected consequences, so\nremove it for now. Another PR will be open up later to add it back to\nthe root directory.\n"
    },
    {
      "commit": "e27e82c46ba4d46c2c3267701191cdc26614f739",
      "tree": "e2e8dbeb43f706360b2ccd77ae00aeeebdc9ae02",
      "parents": [
        "0e68e8c51b2924d211a47978c80c6753f45e8af3"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Tue Jan 19 11:07:58 2021 -0800"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Wed Jan 20 09:11:02 2021 -0800"
      },
      "message": "THRIFT-5338: Raise minimal supported go version to 1.14.14\n\nClient: go\n\n- Update Dockerfiles used by travis\n- Add go.mod file\n- Modify error handling code to take advantage of errors package updates\n  in go1.13\n"
    },
    {
      "commit": "0e68e8c51b2924d211a47978c80c6753f45e8af3",
      "tree": "e8f76271ef82adb794f56446ab397ec7c8b07f2b",
      "parents": [
        "7f9abb1cc0f4b2793a48f45ddfcf0d2b287cc50c"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Tue Jan 19 09:14:36 2021 -0800"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Tue Jan 19 10:46:29 2021 -0800"
      },
      "message": "THRIFT-5326: Make PrependError more unwrap-able\n\nClient: go\n\nAs a follow up to https://github.com/apache/thrift/pull/2298, make the\nerror returned by PrependError unwrap-able in certain cases.\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": "37c2ceb737cb40377346c63a05f407da1c119ba0",
      "tree": "69efd7065e81348fd22f8fbc07ec475846e8a111",
      "parents": [
        "dda80547b10d698784713eb62a04f6f42eae107b"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Thu Dec 10 14:42:37 2020 -0800"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Wed Dec 16 09:31:18 2020 -0800"
      },
      "message": "THRIFT-5322: Guard against large string/binary lengths in Go\n\nClient: go\n\nIn TBinaryProtocol.ReadString, TBinaryProtocol.ReadBinary,\nTCompactProtocol.ReadString, and TCompactProtocol.ReadBinary, use\nsafeReadBytes to prevent from large allocation on malformed sizes.\n\n    $ go test -bench\u003dSafeReadBytes -benchmem\n    BenchmarkSafeReadBytes/normal-12                  625057              1789 ns/op            2176 B/op          5 allocs/op\n    BenchmarkSafeReadBytes/max-askedSize-12           545271              2236 ns/op           14464 B/op          7 allocs/op\n    PASS\n"
    },
    {
      "commit": "dda80547b10d698784713eb62a04f6f42eae107b",
      "tree": "26d8684bbd15944fbf41e3c89c67436611952477",
      "parents": [
        "1e243a76b186142f551a3cb8419131a468ff54ff"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Tue Dec 15 17:56:15 2020 -0800"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Wed Dec 16 09:27:25 2020 -0800"
      },
      "message": "THRIFT-5324: Create new req buffer for every http request\n\nClient: go\n\nThe fix in https://github.com/apache/thrift/pull/2293 doesn\u0027t work for\ngo1.10.8 due to the possibility of data races. This exposes a bigger,\nunderlying issue regarding the ownership of the request buffer in\nTHttpClient between THttpClient itself and the http request it creates.\nInstead of reset and reuse the same buffer, always give up the ownership\nof it and create a new buffer after each Flush call.\n"
    },
    {
      "commit": "4461728f18542eba5d211f9fc412557aab61c491",
      "tree": "7b37ce33ae85dd4a16e215e5a098bd2603bee421",
      "parents": [
        "70792f2191e5e7345bf08f766638e166d5937f32"
      ],
      "author": {
        "name": "Morozov",
        "email": "weugek@gmail.com",
        "time": "Tue Dec 15 10:35:57 2020 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 15 07:35:57 2020 +0000"
      },
      "message": "THRIFT-5324: reset http client buffer after flush\n\nTHttpClient did not reset its internal buffer when HTTP client returned\r\nan error, leaving the whole or partially read message in the buffer.\r\nNow we reset the buffer in defer.\r\n\r\nClient: go"
    },
    {
      "commit": "2676327f6ea7851459081047c21138e192b0de65",
      "tree": "df548a884cb831a4020b7fa57f5fe35261d0f115",
      "parents": [
        "64c2a4b87ab356e05033045492e51f1ad73a795b"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Wed Oct 14 11:16:09 2020 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Mon Oct 19 14:21:44 2020 -0700"
      },
      "message": "Add DuplicateTo protocol to go\u0027s TDebugProtocol\n\nThis also comes from the discussion of\nhttps://github.com/apache/thrift/pull/1992#issuecomment-705903922.\nI think TDebugProtocol is a better fit for this feature than creating a\nnew TProtocol implementation.\n\nThe DuplicateTo field is not added to TDebugProtocolFactory because I\ndon\u0027t think it makes sense from the factory setup. In vast majority\ncases users would need direct access to the underlying TMemoryBuffer to\nmake it useful, which is easier this way than an additional\nTTransportFactory plus TProtocolFactory to make TDebugProtocolFactory\nway too complicated.\n"
    },
    {
      "commit": "64c2a4b87ab356e05033045492e51f1ad73a795b",
      "tree": "926e9f08771156659c8cf3aa2c086d7592241300",
      "parents": [
        "daf620915714b76fce517b376b963440d1f34089"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Sat Oct 10 18:39:32 2020 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Wed Oct 14 10:14:03 2020 -0700"
      },
      "message": "THRIFT-5294: Fix panic in go TSimpleJSONProtocol\n\nClient: go\n\nIn go library\u0027s TSimpleJSONProtocol and TJSONProtocol implementations,\nwe use slices as stacks for context info, but didn\u0027t do proper boundary\ncheck when peeking/popping, result in it might panic with using -1 as\nslice index in certain cases of calling Write*End without matching\nWrite*Begin before.\n\nRefactor the code to properly implement the stack, and return a\nTProtocolException instead on those cases.\n\nAlso add unit tests for all protocols. The unit tests shown that\nTCompactProtocol.[Read|Write]StructEnd would also panic with unmatched\nBegin calls, so fix them as well.\n"
    },
    {
      "commit": "daf620915714b76fce517b376b963440d1f34089",
      "tree": "ac053a27de9d04da48c6dd2093945c6cb1931cbd",
      "parents": [
        "6d570260caa550741f4da9615cae1b14f328a553"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Wed Oct 07 16:28:38 2020 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Wed Oct 07 22:25:19 2020 -0700"
      },
      "message": "THRIFT-5240: Tweak the default go server connectivity check interval\n\nClient: go\n\nThis is a follow up to 4db7a0af13ac9614e3e9758d42b2791040f4dc7e.\n\nBecause of the Go runtime bug [1], the previous default value of 1ms is\nnot a great default as it could cause excessive cpu usage. Use 5ms\ninstead as a balance between being useful and not causing too much cpu\noverhead.\n\nIt\u0027s still configurable.\n\n[1]: https://github.com/golang/go/issues/27707\n"
    },
    {
      "commit": "077b5fce825e79d84592fff893639b92b637eec7",
      "tree": "71b623e3085c1d77d53a6189a0658f86a9b5e7ed",
      "parents": [
        "062521f3b6f578d2b78f0ba189cf5d7968074cb1"
      ],
      "author": {
        "name": "Duru Can Celasun",
        "email": "dcelasun@apache.org",
        "time": "Wed Sep 30 07:25:51 2020 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 30 07:25:51 2020 +0100"
      },
      "message": "go: Use sync.Pool for gzip in HTTP transport\n\nb67cad4 introduced transparent gzip support for the HTTP transport but\r\ncalling gzip.NewWriter() with every request causes a large number of\r\nmemory allocations [1] and can create GC pressure.\r\n\r\nAvoid this by using a sync.Pool for gzip writers.\r\n\r\n[1] https://old.reddit.com/r/golang/comments/9uejp4/usage_of_syncpool_for_gzipwriter_in_http_handlers/e94jh8c/"
    },
    {
      "commit": "6dcd64ee5c0886697b38278956335ae4e945341b",
      "tree": "38986b372d8a2d806d11ec6c0f96593c8e3f0e8c",
      "parents": [
        "a2c44665b416522477cffa6752c2f323768d0507"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Tue Sep 22 15:03:57 2020 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Wed Sep 23 09:16:42 2020 -0700"
      },
      "message": "THRIFT-5279: Go serializer/deserializer cleanups\n\nClient: go\n\nCleanup the default NewTSerializer and NewTDeserializer implementations\nto save an unnecessary allocation, and provide\nNewTSerializerPoolSizeFactory and NewTDeserializerPoolSizeFactory for\neasier non-default pool usages.\n"
    },
    {
      "commit": "a2c44665b416522477cffa6752c2f323768d0507",
      "tree": "9942f7d24637c0ee3b4e51b8c8e26e6b3f56c640",
      "parents": [
        "03f4729f7c19abb206fae439e27c1dda7250fdcd"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Mon Sep 21 12:33:26 2020 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Tue Sep 22 16:48:38 2020 -0700"
      },
      "message": "THRIFT-5278: Allow set protoID in go THeader transport/protocol\n\nClient: go\n\nIn Go library code, allow setting the underlying protoID to a\nnon-default (TCompactProtocol) one for THeaderTransport/THeaderProtocol.\n"
    },
    {
      "commit": "22b6c0c8bbc7089ce714f782366c2914c5e9eac5",
      "tree": "c663ad84228397462b114aeb761d399ba5d63f51",
      "parents": [
        "0503fc0112728bd17d9b5163716265c2a879404f"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Fri Aug 28 17:20:31 2020 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Sat Aug 29 09:38:13 2020 -0700"
      },
      "message": "THRIFT-5270: Fix wrong int to string conversions\n\nClient: go\n\nStarting from go 1.15, go test starts to complain about wrongly used int\nto string conversions:\n\n    ./field.go:58:83: conversion from int to string yields a string of one rune, not a string of digits (did you mean fmt.Sprint(x)?)\n    ./numeric.go:72:12: conversion from int64 to string yields a string of one rune, not a string of digits (did you mean fmt.Sprint(x)?)\n    ./json_protocol_test.go:612:92: conversion from int to string yields a string of one rune, not a string of digits (did you mean fmt.Sprint(x)?)\n    ./simple_json_protocol_test.go:685:96: conversion from int to string yields a string of one rune, not a string of digits (did you mean fmt.Sprint(x)?)\n\njson_protocol_test and simple_json_protocol_test usages are actually\nalready in format arg so just remove the conversion is good enough.\nfield is no longer used anywhere so just removed it (there\u0027s one line of\ncommented out code in compact_protocol so remove that line as well). The\none in numeric.go is actually a bug. We didn\u0027t set sValue correctly in\nNewNumericFromI64 and NewNumericFromI32 functions.\n"
    },
    {
      "commit": "b93fafd327f6de0f4c7496da5dfd5e8c5d8fe499",
      "tree": "77f824ac4fb6ae2aed8276465e9d6959cbac1de9",
      "parents": [
        "64f419b5ad40df233d34cc3715c68b8d85712699"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Sun Aug 02 13:36:54 2020 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Mon Aug 03 10:48:24 2020 -0700"
      },
      "message": "THRIFT-5214: Use peek to implement socket connectivity check\n\nClient: go\n\nIn previous implementation of socket connectivity check, we try to read\n1 byte and put it into buffer when succeeded. The buffer complicates\nthe implementation of Read function. Change to use syscall.Recvfrom with\nMSG_PEEK flag instead so that the buffer is no longer needed.\n"
    },
    {
      "commit": "64f419b5ad40df233d34cc3715c68b8d85712699",
      "tree": "223de55598275d97826316e2600fa57100ede006",
      "parents": [
        "86352b4821085d63861deab59c46ef1042fbfe81"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Wed Jul 29 10:12:53 2020 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Wed Jul 29 12:42:37 2020 -0700"
      },
      "message": "THRIFT-5257: Fix Go THeaderTransport endOfFrame handling\n\nClient: go\n\nIn the current implementation, we only call endOfFrame when we hit EOF\nwhen reading from the frameReader. The problem is in go stdlib the Read\ncall finished reading the remaining data from frameReader will not\nreturn EOF, the next Read will. This caused us in most cases only call\nendOfFrame at the beginning of the next frame, which could cause\ntroubles because we didn\u0027t read the beginning of the frame properly.\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"
    }
  ],
  "next": "cfbb905034c928f073639af00b30d74951744b61"
}
