)]}'
{
  "log": [
    {
      "commit": "bec0234fd81d1bcbac7379ad893cfec757bae681",
      "tree": "0770aa5b628b8715059e9ceff58ec4245008d264",
      "parents": [
        "10d9272600e3577673c84d43bf0e6c4a64918177"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sat Jan 24 14:41:29 2026 +0000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Jan 28 01:23:58 2026 +0100"
      },
      "message": "Bump lodash from 4.17.21 to 4.17.23 in /lib/ts\n\nBumps [lodash](https://github.com/lodash/lodash) from 4.17.21 to 4.17.23.\n- [Release notes](https://github.com/lodash/lodash/releases)\n- [Commits](https://github.com/lodash/lodash/compare/4.17.21...4.17.23)\n\n---\nupdated-dependencies:\n- dependency-name: lodash\n  dependency-version: 4.17.23\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "10d9272600e3577673c84d43bf0e6c4a64918177",
      "tree": "2559cd4c2daf21a5cd6f4686e49d9d5b00a72d89",
      "parents": [
        "6f76573602ab08c1b7ca9f6f6973cd4f1fbb3869"
      ],
      "author": {
        "name": "Hasnain Lakhani",
        "email": "m.hasnain.lakhani@gmail.com",
        "time": "Mon Jan 26 10:37:03 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 26 07:37:03 2026 -0800"
      },
      "message": "THRIFT-5916: Enforce recursion depth limit in Java for C++ parity (#3287)\n\nJava had TConfiguration.recursionLimit (default 64) and\nTProtocolException.DEPTH_LIMIT defined but the limit was not actually\nenforced during struct deserialization. This brings Java in line with\nC++ which already enforces recursion limits.\n\nChanges:\n- Add recursionDepth_ counter and increment/decrement methods to TProtocol\n- Modify Java code generator to emit try-finally depth tracking in\n  generate_standard_reader() and generate_java_struct_tuple_reader()\n\nStructures exceeding the configured recursion limit now throw\nTProtocolException(DEPTH_LIMIT) during deserialization."
    },
    {
      "commit": "4f76c3305e08aa482252aaeaf8906b6820dca9ce",
      "tree": "a3a3fb5c5aaf6603723b45af33d0788f9224c0ff",
      "parents": [
        "6e5e18180bfe110921d1b20da31b24200819265f"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Jan 21 23:02:37 2026 +0000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Jan 22 01:43:26 2026 +0100"
      },
      "message": "Bump lodash from 4.17.21 to 4.17.23 in /lib/js\n\nBumps [lodash](https://github.com/lodash/lodash) from 4.17.21 to 4.17.23.\n- [Release notes](https://github.com/lodash/lodash/releases)\n- [Commits](https://github.com/lodash/lodash/compare/4.17.21...4.17.23)\n\n---\nupdated-dependencies:\n- dependency-name: lodash\n  dependency-version: 4.17.23\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "6e5e18180bfe110921d1b20da31b24200819265f",
      "tree": "410f245db6d2146b1c63747279e9d0627e23e722",
      "parents": [
        "c3ced62289cff9c0c9cd537d902f00fae894b22e"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Wed Nov 19 18:20:45 2025 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Jan 22 01:41:32 2026 +0100"
      },
      "message": "Added Ruby library tests to the GitHub workflow\n"
    },
    {
      "commit": "4413220324d7694f8db128cd989822ff728df030",
      "tree": "503d60c005d3855a566772bff0fea215ada10618",
      "parents": [
        "7eeb1c1665806f08685a6233eddd2cce0eb7ae03"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Tue Dec 16 18:59:18 2025 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Mon Jan 12 00:46:55 2026 +0100"
      },
      "message": "Fixed make check for Ruby library\n"
    },
    {
      "commit": "0d18fb2e97a00fc56997fa059d6819e54cdff64b",
      "tree": "5952e8dc1cdb7355f41cdb6cc4267c43a0b914f6",
      "parents": [
        "098c82722bd8bf021f21eb2fdd80a69a8c4b185b"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Sat Dec 20 12:13:46 2025 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Jan 07 22:40:45 2026 +0100"
      },
      "message": "Only export Init_thrift_native function from the Ruby binary extension\n"
    },
    {
      "commit": "098c82722bd8bf021f21eb2fdd80a69a8c4b185b",
      "tree": "cf15dc9c74395e56ef6f8c4c69ea0efddfb5dfdd",
      "parents": [
        "d9b4d95a1ff68b7ad3df2b3656e3e1a802dc8334"
      ],
      "author": {
        "name": "HTHou",
        "email": "haonan@apache.org",
        "time": "Mon Jan 05 16:12:52 2026 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Jan 07 22:31:52 2026 +0100"
      },
      "message": "fix cross test error\n"
    },
    {
      "commit": "d9b4d95a1ff68b7ad3df2b3656e3e1a802dc8334",
      "tree": "0e1b8ed101666d12db8321540f7a23d4ef69afb2",
      "parents": [
        "b5919dd8f797829e1aed9276994394bb9de085d5"
      ],
      "author": {
        "name": "HTHou",
        "email": "haonan@apache.org",
        "time": "Mon Jan 05 14:37:48 2026 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Jan 07 22:31:52 2026 +0100"
      },
      "message": "try to fix kotlin cross tests\n"
    },
    {
      "commit": "b5919dd8f797829e1aed9276994394bb9de085d5",
      "tree": "54a0d211010bcc05b49b46380bf77154ac86f742",
      "parents": [
        "dfa0979ebee93588e46d08cd2529e6857ad62f74"
      ],
      "author": {
        "name": "HTHou",
        "email": "haonan@apache.org",
        "time": "Mon Jan 05 12:17:56 2026 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Jan 07 22:31:52 2026 +0100"
      },
      "message": "Add async nonblocking ssl support in java client\n"
    },
    {
      "commit": "dfa0979ebee93588e46d08cd2529e6857ad62f74",
      "tree": "f38405e67fafe05e4f2bd03a889f8613c00dffed",
      "parents": [
        "22ffdc79d004ab22f270870db0c9d407a446e914"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Jan 01 06:02:50 2026 +0000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Jan 07 22:28:08 2026 +0100"
      },
      "message": "Bump jvm from 2.2.21 to 2.3.0 in /lib/kotlin\n\nBumps [jvm](https://github.com/JetBrains/kotlin) from 2.2.21 to 2.3.0.\n- [Release notes](https://github.com/JetBrains/kotlin/releases)\n- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)\n- [Commits](https://github.com/JetBrains/kotlin/compare/v2.2.21...v2.3.0)\n\n---\nupdated-dependencies:\n- dependency-name: jvm\n  dependency-version: 2.3.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "09475949b9195c070f428c6c48a77690ff80c3f9",
      "tree": "943fc07b2afb0ba2b52163894e7357771ff6a956",
      "parents": [
        "bfeb7df761a7d93627b869a77acf811c29849f47"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Wed Nov 19 16:23:42 2025 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Jan 07 22:14:38 2026 +0100"
      },
      "message": "Add TLS support to the benchmark script\n"
    },
    {
      "commit": "bfeb7df761a7d93627b869a77acf811c29849f47",
      "tree": "1515a4b9a5455e10116809529f7f4066923ac3e0",
      "parents": [
        "b8f7e5b3e79b033115ba536b726508f81a237eb8"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Mon Nov 24 20:05:10 2025 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Jan 07 22:10:56 2026 +0100"
      },
      "message": "Addressed discrepancy between accelerated and non-accelerated union implementation\n\nWhen binary extension is not available (for example, in JRuby), Thrift::Union\nthrows an unexpected NoMethodError instead of the intended error:\n\n  1) Union Thrift::Union should raise for wrong set field when hash initialized and type checking is off\n     Failure/Error: expect { Thrift::Serializer.new.serialize(union) }.to raise_error(RuntimeError, \"set_field is not valid for this union!\")\n\n       expected RuntimeError with \"set_field is not valid for this union!\", got #\u003cNoMethodError: undefined method \u0027[]\u0027 for nil\u003e with backtrace:\n         # ./lib/thrift/union.rb:78:in \u0027write\u0027\n         # ./lib/thrift/serializer/serializer.rb:29:in \u0027serialize\u0027\n         # ./spec/union_spec.rb:54:in \u0027block in \u003cmain\u003e\u0027\n         # ./spec/union_spec.rb:54:in \u0027block in \u003cmain\u003e\u0027\n     # ./spec/union_spec.rb:54:in \u0027block in \u003cmain\u003e\u0027\n"
    },
    {
      "commit": "b8f7e5b3e79b033115ba536b726508f81a237eb8",
      "tree": "bd4c63776ba9a19590e92f958451e53ee1bc967a",
      "parents": [
        "f06db1b067ab31e79b13ba7d0a3827c58d6767e1"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Wed Nov 19 19:29:09 2025 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Tue Dec 16 23:40:45 2025 +0100"
      },
      "message": "Fixed \u0027#to_io gives NilClass\u0027 error\n\nIn a race condition in Thrift::NonblockingServer, the following sequence could occur:\n\n1. server transport checked for closure (@server_transport.closed?\n   returns false)\n2. another thread calls server.shutdown\n3. yet another thread, scheduled from #shutdown, calls #close on the\n   server transport, which also sets @handle to nil\n4. back in the first thread, #to_io is called on the server transport,\n   which now returns @handle as nil, causing an error:\n\n  1) NonblockingServer Thrift::NonblockingServer should shut down when asked\n     Failure/Error: rd, \u003d select([@server_transport], nil, nil, 0.1)\n\n     TypeError:\n       can\u0027t convert SpecServerSocket to IO (SpecServerSocket#to_io gives NilClass)\n     # ./lib/thrift/server/nonblocking_server.rb:48:in `select\u0027\n     # ./lib/thrift/server/nonblocking_server.rb:48:in `block in serve\u0027\n     # ./lib/thrift/server/nonblocking_server.rb:45:in `loop\u0027\n     # ./lib/thrift/server/nonblocking_server.rb:45:in `serve\u0027\n     # ./spec/nonblocking_server_spec.rb:116:in `block (4 levels) in \u003ctop (required)\u003e\u0027\n\nThis patch changes Thrift::ServerSocket#to_io to raise IOError if\n@handle is nil, which is the expected behavior for closed streams in Ruby:\n\n  require \u0027socket\u0027\n  server \u003d TCPServer.new(\u0027localhost\u0027, 55554)\n  server.close\n  select([server], nil, nil, 0.1)\n  # \u003d\u003e IOError: closed stream\n"
    },
    {
      "commit": "f06db1b067ab31e79b13ba7d0a3827c58d6767e1",
      "tree": "6bd61bef517a00defadc9f0291027cf429b5340f",
      "parents": [
        "c77cbd263aa998cb110c8cbb1bb0dca55e8cac07"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Thu Nov 20 18:09:21 2025 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Tue Dec 16 23:40:19 2025 +0100"
      },
      "message": "Remove Fixnum references to support modern Ruby versions\n\nFixnum type has been deprecated since Ruby 2.4 and removed in Ruby 3.0,\nwhich makes BaseProtocol incompatible with modern Ruby versions.\n\nThis change removes the Fixnum reference, as well as a monkey-patch that\nintroduces Fixnum#ord() to Ruby versions below 1.8.7.\n\n**This change essentially makes it officially required to use Ruby 2.4 or newer.**\n\nFixes the following test failures:\n\n  1) BaseProtocol Thrift::BaseProtocol should write out the different types (deprecated write_type signature)\n     Failure/Error: if field_info.is_a? Fixnum\n\n     NameError:\n       uninitialized constant Thrift::BaseProtocol::Fixnum\n     # ./lib/thrift/protocol/base_protocol.rb:256:in \u0027Thrift::BaseProtocol#write_type\u0027\n     # ./spec/base_protocol_spec.rb:65:in \u0027block (3 levels) in \u003ctop (required)\u003e\u0027\n\n  2) BaseProtocol Thrift::BaseProtocol should write out the different types\n     Failure/Error: if field_info.is_a? Fixnum\n\n     NameError:\n       uninitialized constant Thrift::BaseProtocol::Fixnum\n     # ./lib/thrift/protocol/base_protocol.rb:256:in \u0027Thrift::BaseProtocol#write_type\u0027\n     # ./spec/base_protocol_spec.rb:90:in \u0027block (3 levels) in \u003ctop (required)\u003e\u0027\n\n  3) BaseProtocol Thrift::BaseProtocol should read the different types (deprecated read_type signature)\n     Failure/Error: if field_info.is_a? Fixnum\n\n     NameError:\n       uninitialized constant Thrift::BaseProtocol::Fixnum\n     # ./lib/thrift/protocol/base_protocol.rb:296:in \u0027Thrift::BaseProtocol#read_type\u0027\n     # ./spec/base_protocol_spec.rb:113:in \u0027block (3 levels) in \u003ctop (required)\u003e\u0027\n\n  4) BaseProtocol Thrift::BaseProtocol should read the different types\n     Failure/Error: if field_info.is_a? Fixnum\n\n     NameError:\n       uninitialized constant Thrift::BaseProtocol::Fixnum\n     # ./lib/thrift/protocol/base_protocol.rb:296:in \u0027Thrift::BaseProtocol#read_type\u0027\n     # ./spec/base_protocol_spec.rb:136:in \u0027block (3 levels) in \u003ctop (required)\u003e\u0027\n"
    },
    {
      "commit": "c77cbd263aa998cb110c8cbb1bb0dca55e8cac07",
      "tree": "0616f13c9a24d72fc9195f29736aaa2634ff712d",
      "parents": [
        "312cef913cb10a91fcb41ff1fd73f8654b7cff9f"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Sat Nov 22 20:20:02 2025 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Tue Dec 16 23:39:48 2025 +0100"
      },
      "message": "Raise an error when nil is sent to binary protocol write operations\n\nCurrently, when accelerated binary protocol is used, and nil is passed to write operations like write_byte, write_i16, write_i32, write_i64, write_double, write_string, or write_binary, the code raises a StandardError with \u0027nil argument not allowed!\u0027 message. Ruby version (non-accelerated) instead raises random exceptions like NoMethodError or TypeError. This behavior is inconsistent with the expectation that a StandardError with the message \u0027nil argument not allowed!\u0027 should be raised.\n\n  1) BinaryProtocol it should behave like a binary protocol should error gracefully when trying to write a nil byte\n     Failure/Error: expect { @prot.write_byte(nil) }.to raise_error(StandardError, \u0027nil argument not allowed!\u0027)\n\n       expected StandardError with \"nil argument not allowed!\", got #\u003cNoMethodError: undefined method \u0027\u003c\u0027 for nil\u003e with backtrace:\n         # ./lib/thrift/protocol/binary_protocol.rb:85:in \u0027Thrift::BinaryProtocol#write_byte\u0027\n         # ./spec/binary_protocol_spec_shared.rb:125:in \u0027block (3 levels) in \u003ctop (required)\u003e\u0027\n         # ./spec/binary_protocol_spec_shared.rb:125:in \u0027block (2 levels) in \u003ctop (required)\u003e\u0027\n     Shared Example Group: \"a binary protocol\" called from ./spec/binary_protocol_spec.rb:25\n     # ./spec/binary_protocol_spec_shared.rb:125:in \u0027block (2 levels) in \u003ctop (required)\u003e\u0027\n\n  2) BinaryProtocol it should behave like a binary protocol should error gracefully when trying to write a nil i16\n     Failure/Error: expect { @prot.write_i16(nil) }.to raise_error(StandardError, \u0027nil argument not allowed!\u0027)\n\n       expected StandardError with \"nil argument not allowed!\", got #\u003cTypeError: no implicit conversion of nil into Integer\u003e with backtrace:\n         # ./lib/thrift/protocol/binary_protocol.rb:90:in \u0027Thrift::BinaryProtocol#write_i16\u0027\n         # ./spec/binary_protocol_spec_shared.rb:144:in \u0027block (3 levels) in \u003ctop (required)\u003e\u0027\n         # ./spec/binary_protocol_spec_shared.rb:144:in \u0027block (2 levels) in \u003ctop (required)\u003e\u0027\n     Shared Example Group: \"a binary protocol\" called from ./spec/binary_protocol_spec.rb:25\n     # ./spec/binary_protocol_spec_shared.rb:144:in \u0027block (2 levels) in \u003ctop (required)\u003e\u0027\n\n  3) BinaryProtocol it should behave like a binary protocol should error gracefully when trying to write a nil i32\n     Failure/Error: expect { @prot.write_i32(nil) }.to raise_error(StandardError, \u0027nil argument not allowed!\u0027)\n\n       expected StandardError with \"nil argument not allowed!\", got #\u003cNoMethodError: undefined method \u0027\u003c\u0027 for nil\u003e with backtrace:\n         # ./lib/thrift/protocol/binary_protocol.rb:94:in \u0027Thrift::BinaryProtocol#write_i32\u0027\n         # ./spec/binary_protocol_spec_shared.rb:161:in \u0027block (3 levels) in \u003ctop (required)\u003e\u0027\n         # ./spec/binary_protocol_spec_shared.rb:161:in \u0027block (2 levels) in \u003ctop (required)\u003e\u0027\n     Shared Example Group: \"a binary protocol\" called from ./spec/binary_protocol_spec.rb:25\n     # ./spec/binary_protocol_spec_shared.rb:161:in \u0027block (2 levels) in \u003ctop (required)\u003e\u0027\n\n  4) BinaryProtocol it should behave like a binary protocol should error gracefully when trying to write a nil i64\n     Failure/Error: expect { @prot.write_i64(nil) }.to raise_error(StandardError, \u0027nil argument not allowed!\u0027)\n\n       expected StandardError with \"nil argument not allowed!\", got #\u003cNoMethodError: undefined method \u0027\u003c\u0027 for nil\u003e with backtrace:\n         # ./lib/thrift/protocol/binary_protocol.rb:99:in \u0027Thrift::BinaryProtocol#write_i64\u0027\n         # ./spec/binary_protocol_spec_shared.rb:184:in \u0027block (3 levels) in \u003ctop (required)\u003e\u0027\n         # ./spec/binary_protocol_spec_shared.rb:184:in \u0027block (2 levels) in \u003ctop (required)\u003e\u0027\n     Shared Example Group: \"a binary protocol\" called from ./spec/binary_protocol_spec.rb:25\n     # ./spec/binary_protocol_spec_shared.rb:184:in \u0027block (2 levels) in \u003ctop (required)\u003e\u0027\n\n  5) BinaryProtocol it should behave like a binary protocol should error gracefully when trying to write a nil double\n     Failure/Error: expect { @prot.write_double(nil) }.to raise_error(StandardError, \u0027nil argument not allowed!\u0027)\n\n       expected StandardError with \"nil argument not allowed!\", got #\u003cTypeError: can\u0027t convert nil into Float\u003e with backtrace:\n         # ./lib/thrift/protocol/binary_protocol.rb:106:in \u0027Thrift::BinaryProtocol#write_double\u0027\n         # ./spec/binary_protocol_spec_shared.rb:197:in \u0027block (3 levels) in \u003ctop (required)\u003e\u0027\n         # ./spec/binary_protocol_spec_shared.rb:197:in \u0027block (2 levels) in \u003ctop (required)\u003e\u0027\n     Shared Example Group: \"a binary protocol\" called from ./spec/binary_protocol_spec.rb:25\n     # ./spec/binary_protocol_spec_shared.rb:197:in \u0027block (2 levels) in \u003ctop (required)\u003e\u0027\n\n  6) BinaryProtocol it should behave like a binary protocol should error gracefully when trying to write a nil string\n     Failure/Error: expect { @prot.write_string(nil) }.to raise_error(StandardError, \u0027nil argument not allowed!\u0027)\n\n       expected StandardError with \"nil argument not allowed!\", got #\u003cNoMethodError: undefined method \u0027encoding\u0027 for nil\u003e with backtrace:\n         # ./lib/thrift/bytes.rb:79:in \u0027Thrift::Bytes.convert_to_utf8_byte_buffer\u0027\n         # ./lib/thrift/protocol/binary_protocol.rb:110:in \u0027Thrift::BinaryProtocol#write_string\u0027\n         # ./spec/binary_protocol_spec_shared.rb:250:in \u0027block (3 levels) in \u003ctop (required)\u003e\u0027\n         # ./spec/binary_protocol_spec_shared.rb:250:in \u0027block (2 levels) in \u003ctop (required)\u003e\u0027\n     Shared Example Group: \"a binary protocol\" called from ./spec/binary_protocol_spec.rb:25\n     # ./spec/binary_protocol_spec_shared.rb:250:in \u0027block (2 levels) in \u003ctop (required)\u003e\u0027\n\n  7) BinaryProtocol it should behave like a binary protocol should error gracefully when trying to write a nil binary\n     Failure/Error: expect { @prot.write_binary(nil) }.to raise_error(StandardError, \u0027nil argument not allowed!\u0027)\n\n       expected StandardError with \"nil argument not allowed!\", got #\u003cNoMethodError: undefined method \u0027bytesize\u0027 for nil\u003e with backtrace:\n         # ./lib/thrift/protocol/binary_protocol.rb:115:in \u0027Thrift::BinaryProtocol#write_binary\u0027\n         # ./spec/binary_protocol_spec_shared.rb:254:in \u0027block (3 levels) in \u003ctop (required)\u003e\u0027\n         # ./spec/binary_protocol_spec_shared.rb:254:in \u0027block (2 levels) in \u003ctop (required)\u003e\u0027\n     Shared Example Group: \"a binary protocol\" called from ./spec/binary_protocol_spec.rb:25\n     # ./spec/binary_protocol_spec_shared.rb:254:in \u0027block (2 levels) in \u003ctop (required)\u003e\u0027\n"
    },
    {
      "commit": "312cef913cb10a91fcb41ff1fd73f8654b7cff9f",
      "tree": "5422e02a52d0f17fa3884cd7e12e73e336ecd4c0",
      "parents": [
        "6e105bf035a0581a977a0558679be802c58982d9"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Sun Nov 23 12:35:09 2025 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Tue Dec 16 23:11:24 2025 +0100"
      },
      "message": "Updated Java keys for cross-platform tests\n\nThe truststore and keystore were regenerated using keys in test/keys:\n\n    # keytool does not support \"replace\" operation:\n    keytool -delete \\\n        -alias localhost \\\n        -keystore lib/java/src/crossTest/resources/.truststore \\\n        -storepass thrift\n    keytool -import \\\n        -alias localhost \\\n        -file test/keys/CA.pem \\\n        -keystore lib/java/src/crossTest/resources/.truststore \\\n        -storepass thrift\n\n    # server keystore\n    keytool -importkeystore \\\n        -srckeystore test/keys/server.p12 \\\n        -srcstoretype PKCS12 \\\n        -srcstorepass thrift \\\n        -destkeystore lib/java/src/crossTest/resources/.serverkeystore \\\n        -deststoretype pkcs12 \\\n        -deststorepass thrift\n\n    # client keystore\n    keytool -importkeystore \\\n        -srckeystore test/keys/client.p12 \\\n        -srcstoretype PKCS12 \\\n        -srcstorepass thrift \\\n        -destkeystore lib/java/src/crossTest/resources/.clientkeystore \\\n        -deststoretype pkcs12 \\\n        -deststorepass thrift\n\nJava tests were updated to use separate keystores for client and server.\n"
    },
    {
      "commit": "6e105bf035a0581a977a0558679be802c58982d9",
      "tree": "4fc9f1d2935ccbd5ccce48de5d64d0de1369ccb6",
      "parents": [
        "a635e68257bb4ddd7b0a4210a0d01d41cae14452"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Thu Dec 04 17:14:59 2025 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Sun Dec 14 23:27:38 2025 +0100"
      },
      "message": "TransportException should be raised when Socket is not open instead of IOError\n"
    },
    {
      "commit": "a635e68257bb4ddd7b0a4210a0d01d41cae14452",
      "tree": "1d1bae8e04f88c563cebb412ea7c1660a303e25b",
      "parents": [
        "eb6eb85c45e823b33a5bb5368f29cebb9db1a8dc"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Wed Nov 19 18:52:54 2025 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Sun Dec 14 23:20:25 2025 +0100"
      },
      "message": "Removed base64 and added logger as an explicit add_dependency\n\nStarting with Ruby 3.4, base64 is no longer a bundled gem, and now Thrift does not load in modern Ruby versions:\n\n    An error occurred while loading ./spec/types_spec.rb.\n\n    Failure/Error: require \u0027base64\u0027\n\n    LoadError:\n      cannot load such file -- base64\n    # ./lib/thrift/protocol/json_protocol.rb:21:in \u0027\u003ctop (required)\u003e\u0027\n    # ./lib/thrift.rb:45:in \u0027\u003ctop (required)\u003e\u0027\n    # ./spec/spec_helper.rb:30:in \u0027\u003ctop (required)\u003e\u0027\n    # ./spec/types_spec.rb:20:in \u0027\u003ctop (required)\u003e\u0027\n\nRuby already has ability to serialize and deserialize base64 without requiring the base64 gem,\nwhich is a thin wrapper for syntactic sugar.\n\nAdditionally, the code throws a warning at the moment, which will become an error in Ruby 3.5:\n\n    /code/lib/thrift/processor.rb:20: warning: logger was loaded from the standard library, but will no longer be part of the default gems starting from Ruby 3.5.0.\n    You can add logger to your Gemfile or gemspec to silence this warning.\n\nAdded logger as an explicit dependency to avoid this warning.\n"
    },
    {
      "commit": "eb6eb85c45e823b33a5bb5368f29cebb9db1a8dc",
      "tree": "c6865ca3a7c61c6c16aa7f44984495803fd7881d",
      "parents": [
        "497c1dd82e8c597927f40e376738981d6582aef1"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Sat Nov 22 20:03:19 2025 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Sun Dec 14 23:17:57 2025 +0100"
      },
      "message": "Fixed Thrift::TypeError exception in specs\n\nAn error occurs while running specs, that changes the behavior of the system under test, leading to false positive:\n\n   NonblockingServer\n   Thrift::NonblockingServer\n   #\u003cThread:0x0000ffff67b9f138 /code/lib/rb/spec/nonblocking_server_spec.rb:147 run\u003e terminated with exception (report_on_exception is true):\n   /code/lib/rb/lib/thrift/types.rb:69:in \u0027Thrift.check_type\u0027: Expected Types::DOUBLE, received Integer for field seconds (Thrift::TypeError)\n          from /code/lib/rb/lib/thrift/struct.rb:157:in \u0027block in SpecNamespace::NonblockingService::Sleep_args#field_accessor\u0027\n          from /code/lib/rb/lib/thrift/client.rb:41:in \u0027block in Thrift::Client#send_message_args\u0027\n          from /code/lib/rb/lib/thrift/client.rb:40:in \u0027Hash#each\u0027\n          from /code/lib/rb/lib/thrift/client.rb:40:in \u0027Thrift::Client#send_message_args\u0027\n          from /code/lib/rb/lib/thrift/client.rb:30:in \u0027Thrift::Client#send_message\u0027\n          from /code/lib/rb/spec/gen-rb/nonblocking_service.rb:75:in \u0027SpecNamespace::NonblockingService::Client#send_sleep\u0027\n          from /code/lib/rb/spec/gen-rb/nonblocking_service.rb:70:in \u0027SpecNamespace::NonblockingService::Client#sleep\u0027\n          from /code/lib/rb/spec/nonblocking_server_spec.rb:160:in \u0027block in RSpec::ExampleGroups::NonblockingServer::ThriftNonblockingServer#setup_client_thread\u0027\n   should kill active messages when they don\u0027t expire while shutting down\n\nWhen an integer 10 is sent to \"sleep\", instead of actually sleeping an error happens, and the method never called, leading to no record of the method execution recorded in the result. Which is the same expectation is if the method call was aborted in the middle.\n"
    },
    {
      "commit": "497c1dd82e8c597927f40e376738981d6582aef1",
      "tree": "df728263c14b37e6c0576a3ba6555e96bc43fcbf",
      "parents": [
        "b940d1229b2bb2faf4307489bbf9e705e57633b9"
      ],
      "author": {
        "name": "Sutou Kouhei",
        "email": "kou@clear-code.com",
        "time": "Fri Aug 08 16:19:10 2025 +0900"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Dec 11 23:10:08 2025 +0100"
      },
      "message": "THRIFT-3268: Suppress gnu-zero-variadic-macro-arguments warnings\n\nClient: cpp\n\nWe can reproduce these warnings by:\n\n    CC\u003dclang CXX\u003dclang++ \\\n      cmake \\\n        -S . \\\n        -B ../thrift.build \\\n        -DWITH_{AS3,JAVA,JAVASCRIPT,NODEJS,PYTHON,C_GLIB}\u003dOFF \\\n        -DCMAKE_CXX_FLAGS\u003d\"-Wgnu-zero-variadic-macro-arguments\"\n    cmake --build ../thrift.build\n\nSample warning:\n\n    lib/cpp/src/thrift/TLogging.h:119:13: warning: token pasting of \u0027,\u0027 and __VA_ARGS__ is a GNU extension [-Wgnu-zero-variadic-macro-arguments]\n      119 |             ##__VA_ARGS__);                                                                        \\\n          |             ^\n"
    },
    {
      "commit": "b940d1229b2bb2faf4307489bbf9e705e57633b9",
      "tree": "991bc3580ad3bb64c1f0b13503c1919c68fc7770",
      "parents": [
        "230d0a96a2757b978545ebc4b2969a987476b846"
      ],
      "author": {
        "name": "dengzh",
        "email": "dengzhhu653@gmail.com",
        "time": "Mon May 26 09:01:02 2025 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Dec 11 23:08:48 2025 +0100"
      },
      "message": "THRIFT-5863: Make TServerTransport able to customize the max message size\n"
    },
    {
      "commit": "1eaa9a41f0aa1c3ef9d61a3269ac2a00eeae2f0a",
      "tree": "2f63f5bdd234136dd14cf0be70588eccd07995e1",
      "parents": [
        "dee782f410c5d20ceb745d2b840ce447f6d4b7b1"
      ],
      "author": {
        "name": "Martin Haimberger",
        "email": "martin.haimberger@gmail.com",
        "time": "Fri Nov 28 23:21:06 2025 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Dec 10 22:57:59 2025 +0100"
      },
      "message": "- THRIFT-5712 - Added Dart 3 Compatibility\n"
    },
    {
      "commit": "c630d8fb043fc45554c18602e97023feda2d12fc",
      "tree": "7fcabef79f6e2a45021b781f0e57a0d751229499",
      "parents": [
        "5cb828f4b1a61357894f58f1dbbe429972c914a6"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Fri Nov 21 21:35:02 2025 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Dec 10 22:04:46 2025 +0100"
      },
      "message": "Updated gemspec to include metadata (repository, changelog), and cleaned deprecated properties\n\nRemoved deprecated rubyforge_project property\n  WARNING:  rubyforge_project\u003d is deprecated and ignored. Please remove this from your gemspec to ensure that your gem continues to build in the future.\n  WARNING:  See https://guides.rubygems.org/specification-reference/ for help\n\nAdded metadata fields, displayed on the RubyGems page. See https://rubygems.org/gems/activeadmin for example:\n  - source_code_uri\n  - changelog_uri\n  - bug_tracker_uri\n  - documentation_uri\n  - mailing_list_uri\n  - homepage_uri\n\n[skip ci]\n"
    },
    {
      "commit": "5cb828f4b1a61357894f58f1dbbe429972c914a6",
      "tree": "f8bb64a8f3b4d8503d12f509eb41a3862dd72211",
      "parents": [
        "5c2183db399fdf72d4aab7eb5a4bdb4c82c2d2a0"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Wed Nov 19 18:40:19 2025 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Tue Dec 02 23:13:18 2025 +0100"
      },
      "message": "Rack response needs to be finished when returned from the Rack application\n\nThis merge request addresses the following test failures:\n\n```\n  1) Thrift::ThinHTTPServer::RackApplication 404 response receives a non-POST\n     Failure/Error: expect(last_response.status).to be 404\n\n       expected #\u003cInteger:809\u003e \u003d\u003e 404\n            got #\u003cInteger:1001\u003e \u003d\u003e 500\n\n       Compared using equal?, which compares object identity,\n       but expected and actual are not the same object. Use\n       `expect(actual).to eq(expected)` if you don\u0027t care about\n       object identity in this example.\n     # ./spec/thin_http_server_spec.rb:102:in \u0027block (3 levels) in \u003ctop (required)\u003e\u0027\n\n  2) Thrift::ThinHTTPServer::RackApplication 404 response receives a header other than application/x-thrift\n     Failure/Error: expect(last_response.status).to be 404\n\n       expected #\u003cInteger:809\u003e \u003d\u003e 404\n            got #\u003cInteger:1001\u003e \u003d\u003e 500\n\n       Compared using equal?, which compares object identity,\n       but expected and actual are not the same object. Use\n       `expect(actual).to eq(expected)` if you don\u0027t care about\n       object identity in this example.\n     # ./spec/thin_http_server_spec.rb:108:in \u0027block (3 levels) in \u003ctop (required)\u003e\u0027\n\n  3) Thrift::ThinHTTPServer::RackApplication 200 response status code 200\n     Failure/Error: expect(last_response.ok?).to be_truthy\n\n       expected: truthy value\n            got: false\n     # ./spec/thin_http_server_spec.rb:135:in \u0027block (3 levels) in \u003ctop (required)\u003e\u0027\n```\n\nFrom the [Rack documentation](https://rack.github.io/rack/2.2/Rack/Response.html),\n\n\u003e Your application’s call should end returning [Response#finish](https://rack.github.io/rack/2.2/Rack/Response.html#method-i-finish).\n\nAdditionally:\n* using identity checks on integers produces weird expectation \"expected #\u003cInteger:809\u003e \u003d\u003e 404\", which is not necessary. Switched to using `eq` matcher\n* `be_truthy` matcher is overly generic and identity matching on `true`/`false` is preferred: \"expected true\" output will be displayed on failure\n"
    },
    {
      "commit": "5c2183db399fdf72d4aab7eb5a4bdb4c82c2d2a0",
      "tree": "3c6b137cbdfb1e28f12920c0965b2715e6b51c31",
      "parents": [
        "9aa75fb5d5e96e8fb0b3afb38bcb057626f9b40b"
      ],
      "author": {
        "name": "Shaoyu Zhang",
        "email": "zsy056@users.noreply.github.com",
        "time": "Thu Nov 13 13:21:07 2025 -0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue Dec 02 22:57:04 2025 +0100"
      },
      "message": "Make generated C++ code compilable with C++/CLI in MSVC\nClient: cpp\nPatch: Shaoyu Zhang\n\nThis closes #3234\n"
    },
    {
      "commit": "9aa75fb5d5e96e8fb0b3afb38bcb057626f9b40b",
      "tree": "4dfcb621a7a2f911e9cf10621018c2d93b48c9d1",
      "parents": [
        "d92b1ae5d53c65d5dc80caa9fe636fd82acb9c72"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Mon Dec 01 17:15:07 2025 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Tue Dec 02 22:41:20 2025 +0100"
      },
      "message": "Commit Gemfile.lock for reproducible tests\n\nAddressed a syntax error in the thrift.gemspec, and committed\nGemfile.lock files for both the gem and tests. Gems source switched\nto https://rubygems.org.\n\nThis is a strongly recommended approach according to the Bundler team:\n\n\u003e As a result, you SHOULD check your Gemfile.lock into version control,\n\u003e in both applications and gems. If you do not, every machine that\n\u003e checks out your repository (including your production server) will\n\u003e resolve all dependencies again, which will result in different\n\u003e versions of third-party code being used if any of the gems in the\n\u003e Gemfile(5) or any of their dependencies have been updated.\nhttps://bundler.io/man/bundle-install.1.html#THE-GEMFILE-LOCK\n\nAlso helps with Dependabot, which will be able to bump the lock file,\nwhile we can relax version requirements in the gemspec.\n"
    },
    {
      "commit": "d92b1ae5d53c65d5dc80caa9fe636fd82acb9c72",
      "tree": "fec1f7f46de4aa7f48833602b2e20eb9a3396360",
      "parents": [
        "4c5a7b047a124b52831c4942c03679c7e20a178f"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Dec 01 23:16:46 2025 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Dec 01 23:16:46 2025 +0100"
      },
      "message": "Fix: Error: thrift/simple_server.go:27:2: \"net\" imported and not used\n"
    },
    {
      "commit": "4c5a7b047a124b52831c4942c03679c7e20a178f",
      "tree": "c8048f9c2e303fd816321cd2077e47c20ee4b2c8",
      "parents": [
        "3aab90213385d2911d9932effd84c7e8f35384cd"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Dec 01 23:11:12 2025 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Dec 01 23:11:12 2025 +0100"
      },
      "message": "Fix Dependabot alert #132\n"
    },
    {
      "commit": "3aab90213385d2911d9932effd84c7e8f35384cd",
      "tree": "bec25d76f57f875cebc12cad1802161f1c62753e",
      "parents": [
        "cadf5117610517dcda71e4b86a6114e78a8d7e0b"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Dec 01 23:09:07 2025 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Dec 01 23:09:07 2025 +0100"
      },
      "message": "Fix Dependabot alert #140\n"
    },
    {
      "commit": "cadf5117610517dcda71e4b86a6114e78a8d7e0b",
      "tree": "11501e148d7137a7189e5ea35fad1e1970baf08f",
      "parents": [
        "010027bbe77e2ad21e2ca58ebaa131b1279483f3"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Dec 01 23:06:42 2025 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Dec 01 23:06:54 2025 +0100"
      },
      "message": "Fix Dependabot alert #132\n"
    },
    {
      "commit": "010027bbe77e2ad21e2ca58ebaa131b1279483f3",
      "tree": "df1c69d6d22d754093542116dc33e6c9a9e323b3",
      "parents": [
        "6d04f12df6d4a218410639a46b8d902b93f88244"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Dec 01 22:57:08 2025 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Dec 01 22:57:33 2025 +0100"
      },
      "message": "Fix for Dependabot alerts #151 and #152\n"
    },
    {
      "commit": "4a21581f78c38ef5077cb8a0d8013727e4d56165",
      "tree": "acff354e4d5dbba406004910a96b36b16b530faf",
      "parents": [
        "d925d34911b49825727f035e47a9db627fd92e7d"
      ],
      "author": {
        "name": "Jun.S.Shen",
        "email": "jun.s.shen@oracle.com",
        "time": "Fri Nov 17 23:28:25 2023 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Dec 01 22:40:03 2025 +0100"
      },
      "message": "enforce to close accepted connection after processing\nClient: go\nPatch: Jun.S.Shen \u003cjun.s.shen@oracle.com\n\nThis closes #2883\n"
    },
    {
      "commit": "d925d34911b49825727f035e47a9db627fd92e7d",
      "tree": "eefecbe740c47a5590a3282547c7be7248c4f307",
      "parents": [
        "be7a9e50eeea9315ea17b7fd21fa0a2e357fa402"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Sun Nov 30 17:29:12 2025 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Mon Dec 01 22:33:35 2025 +0100"
      },
      "message": "Fix spurious wakeups in ThreadManager test sleep\n\nThe ThreadManager load test used Monitor::wait() to sleep, which can return early on spurious wakeups. That occasionally produced zero-duration tasks and tripped the `delta \u003e 0` assertion in CI. Switching the test helper to `std::this_thread::sleep_for` makes the sleep deterministic and stops the intermittent assertion failure.\n"
    },
    {
      "commit": "1646c0492bf09a6a4dc7b7b02fd5d11e64007a7a",
      "tree": "d9fa10d114ffc974819ca64e2ef4f010896a3645",
      "parents": [
        "0835277ec274c300bf8935649132d623a93ab172"
      ],
      "author": {
        "name": "Carel Combrink",
        "email": "carel.combrink@gmail.com",
        "time": "Mon Nov 03 12:59:21 2025 +0000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Mon Dec 01 22:30:46 2025 +0100"
      },
      "message": "Moving the body of setManualOpenSSLInitialization() to the cpp file\n\nSee the comment made in here where it was suggested but never done: https://github.com/apache/thrift/pull/1714#issuecomment-2459192022\n"
    },
    {
      "commit": "0835277ec274c300bf8935649132d623a93ab172",
      "tree": "44c34d58946db49ba2b0d1f08b7a37375c9f3456",
      "parents": [
        "58d385eee256e5bd59ed1bc9e5e85aaf3e748cef"
      ],
      "author": {
        "name": "Carel Combrink",
        "email": "carel.combrink@gmail.com",
        "time": "Mon Nov 03 12:15:06 2025 +0000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Mon Dec 01 22:30:46 2025 +0100"
      },
      "message": "THRIFT-5898: Replace global variable with a singleton getter\nClient: cpp\n"
    },
    {
      "commit": "58d385eee256e5bd59ed1bc9e5e85aaf3e748cef",
      "tree": "136adeb16aa3dc6dd0f3d3da738f793de9a3d829",
      "parents": [
        "5b53b554a3ac6faff70081d541680fbcec55fbb7"
      ],
      "author": {
        "name": "zeshuai007",
        "email": "51382517@qq.com",
        "time": "Sat Aug 29 11:13:41 2020 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Dec 01 22:17:49 2025 +0100"
      },
      "message": "Supplement Jsonprotocol module testcase\nClient: rb\nPatch: Zezeng Wang\n\nThis closes #2223\n"
    },
    {
      "commit": "3364b4ac563872b40c91d7843f6d0971d84979ec",
      "tree": "3f7957bdb5a6b01a501e8789853f4ae865621044",
      "parents": [
        "724b038b9fbd81a2f0e7c4b66c5c8546bbd99ce9"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Dec 01 06:43:18 2025 +0000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Mon Dec 01 22:04:33 2025 +0100"
      },
      "message": "Bump com.diffplug.spotless from 8.0.0 to 8.1.0 in /lib/kotlin\n\nBumps com.diffplug.spotless from 8.0.0 to 8.1.0.\n\n---\nupdated-dependencies:\n- dependency-name: com.diffplug.spotless\n  dependency-version: 8.1.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "55bc35f5d581f61f8dac816eb17493911ff8e75a",
      "tree": "fea3daf5c7500bd7d99051e11f95609cbb739e86",
      "parents": [
        "a6ee3c0b1d0e7fcbaa439c573e370fa129e3c7b5"
      ],
      "author": {
        "name": "Shaoyu Zhang",
        "email": "zsy056@users.noreply.github.com",
        "time": "Tue Nov 25 13:59:16 2025 -0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Fri Nov 28 22:59:13 2025 +0100"
      },
      "message": "fix py ext windows build\n"
    },
    {
      "commit": "a6ee3c0b1d0e7fcbaa439c573e370fa129e3c7b5",
      "tree": "af234013bdc9a2575d9b7dbfe156e1f62c0d105e",
      "parents": [
        "c5a371280cc89a927e7278486233b16b189c6e9e"
      ],
      "author": {
        "name": "David Heejong Park",
        "email": "hee.jong.park@dnv.com",
        "time": "Tue Nov 04 07:20:28 2025 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Sun Nov 23 14:56:06 2025 +0100"
      },
      "message": "Reset consumed message size after reading from buffer\n"
    },
    {
      "commit": "c5a371280cc89a927e7278486233b16b189c6e9e",
      "tree": "de3393932b6d7b57eae7283923c700aafe8b6588",
      "parents": [
        "ac3feed1b24389efbc0865b742be1854be0406dc"
      ],
      "author": {
        "name": "Lysandros Nikolaou",
        "email": "lisandrosnik@gmail.com",
        "time": "Fri Jul 25 15:11:44 2025 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Nov 23 14:52:12 2025 +0100"
      },
      "message": "THRIFT-5888 Do not dynamically enable the GIL under free-threaded Python\nClient: py\nPatch: Lysandros Nikolaou\n\nThis closes #3180\n"
    },
    {
      "commit": "10d5a65d1a6c0308145352f31157628b9643c942",
      "tree": "5f4a890b2ed09b7e82fa739d1bcd8ae2cf5819c3",
      "parents": [
        "120d496dbdb8aa6bd2cbc9586af81946b5b2e057"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Wed Nov 19 15:24:32 2025 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Fri Nov 21 17:42:52 2025 +0100"
      },
      "message": "ruby: Set TCP_NODELAY on accepted sockets\n"
    },
    {
      "commit": "120d496dbdb8aa6bd2cbc9586af81946b5b2e057",
      "tree": "2b7183f0054ca05c37808573d577155f59d4e245",
      "parents": [
        "5abe53feaf598e40ab84eb259399113a79461791"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Nov 20 22:13:24 2025 +0000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Nov 20 23:17:42 2025 +0100"
      },
      "message": "Bump js-yaml from 3.14.1 to 3.14.2 in /lib/ts\n\nBumps [js-yaml](https://github.com/nodeca/js-yaml) from 3.14.1 to 3.14.2.\n- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/nodeca/js-yaml/compare/3.14.1...3.14.2)\n\n---\nupdated-dependencies:\n- dependency-name: js-yaml\n  dependency-version: 3.14.2\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "f274d9891fc042bac06f28f51ab5901b9077a0da",
      "tree": "9452b3a480a762ea8a0dfabd88318f24dd3d74cd",
      "parents": [
        "32b80f6292b591fe2b77d3070dbade91b0fdfd58"
      ],
      "author": {
        "name": "Tdxdxoz",
        "email": "tdxdxoz@gmail.com",
        "time": "Tue Sep 26 12:52:05 2023 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Nov 20 22:56:34 2025 +0100"
      },
      "message": "enable TCP_NODELAY for rust client channel\n"
    },
    {
      "commit": "1e17c93555b680d4719ba61965c088590a2053dd",
      "tree": "1964a9a00a8c0fa87cf886dbd9aae8fcde92ed82",
      "parents": [
        "5b096a00027582983f1ae141a4bbf4eed806c310"
      ],
      "author": {
        "name": "George Koehler",
        "email": "kernigh@gmail.com",
        "time": "Mon Feb 06 18:08:05 2023 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Nov 20 22:52:36 2025 +0100"
      },
      "message": "rewrite the endian conversion to fix a big-endian host\nClient: py\n\nChange htolell(dub) to htolell(transfer.t) in compact.h, because the\nconversion takes a long long, not a double.  This matters on a\nbig-endian host, where the conversion must swap bytes.\n\nThe big-endian letohll(n) failed because ntohl(n) is just n, doesn\u0027t\nswap n.  Rewrite ntohll(n) and letohll(n) to use the same code with\nboth big-endian and little-endian hosts.  Expect the compiler to\noptimize away one of ntohll(n) or letohll(n) when it doesn\u0027t swap n.\n"
    },
    {
      "commit": "4f89bfdeeb900e2d64bf5c5f726b78d8591593cc",
      "tree": "0c5ac7dc955658cf7bad5536c73613ee392a84af",
      "parents": [
        "80279b551a8f86c5085afedd454e26611d5b3cba"
      ],
      "author": {
        "name": "pspeter",
        "email": "peter.schmidbauer@oebb.at",
        "time": "Wed Apr 13 14:44:30 2022 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Nov 20 22:34:53 2025 +0100"
      },
      "message": "Fix bug in Python\u0027s THttpClient proxy handling\nClient: py\nPatch: Peter Schmidbauer\n\nThis closes #2565\n\nFix conversion to str without including quotes\n\nEnsure return type is str in Py2 and 3\n\nIn Python2, str(cr) returns a cr unchanged, since it is already a str. In Python3, \u0027cr\u0027 is a binary array (like str in Python2), but we cannot concat a str with a bin in Py3. Therefore, we convert it to str using str(cr), before concatenating it with \u0027Basic \u0027.\nFix bug in THttpClient proxy handling\n"
    },
    {
      "commit": "2d8546837cb3f55df4c1724cdfe7b42badbb2dbe",
      "tree": "ee2252494f0415ffb6f66b60fbebbf46378ed444",
      "parents": [
        "0c7833caaa38b0baaf305c047d724dd5b878c93e"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Nov 20 22:20:57 2025 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Nov 20 22:20:57 2025 +0100"
      },
      "message": "Reverted, breaks CI\n\nRevert \"use ok_or_else\"\nThis reverts commit 0c7833caaa38b0baaf305c047d724dd5b878c93e.\n\nRevert \"check overflow on reading field id\"\nThis reverts commit 49fe0e2a7c13417719409e90f65c92ac5ed88ebd.\n"
    },
    {
      "commit": "0c7833caaa38b0baaf305c047d724dd5b878c93e",
      "tree": "f67e93594d1d0a0172cfea89ffab5f28ead37c4e",
      "parents": [
        "49fe0e2a7c13417719409e90f65c92ac5ed88ebd"
      ],
      "author": {
        "name": "Jinpeng",
        "email": "zjpzlz@163.com",
        "time": "Wed Nov 19 23:59:22 2025 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Nov 20 22:16:20 2025 +0100"
      },
      "message": "use ok_or_else"
    },
    {
      "commit": "49fe0e2a7c13417719409e90f65c92ac5ed88ebd",
      "tree": "448f5ae3845c5735ee1125f11b2f40d933481890",
      "parents": [
        "f8ce26cd422f743493423da58591dd5ef1142bdb"
      ],
      "author": {
        "name": "Jinpeng",
        "email": "zjpzlz@163.com",
        "time": "Thu Dec 12 17:31:29 2024 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Nov 20 22:16:20 2025 +0100"
      },
      "message": "check overflow on reading field id"
    },
    {
      "commit": "3adca0ecfee7dcb70f1bdf844050b5d02ed61d76",
      "tree": "7f020f754140e81a04089da95ff0d21a262ee914",
      "parents": [
        "eae1094d399e6d96a76b87ae98686a06dc11db5b"
      ],
      "author": {
        "name": "Carel Combrink",
        "email": "carel.combrink@gmail.com",
        "time": "Mon Nov 10 14:56:54 2025 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Nov 20 00:01:57 2025 +0100"
      },
      "message": "Missed actually using the new variables from the new calls to get Python\n"
    },
    {
      "commit": "d6fc79122b7dce9731033b86cc54b2de07e6fa43",
      "tree": "c1364e987692f2889319f4613e09ea25b53f1c02",
      "parents": [
        "ead302baf8c1cd231f10354b8f75a51499d2283a"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed Nov 19 22:04:39 2025 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Nov 19 23:56:40 2025 +0100"
      },
      "message": "bump nuget packages\n"
    },
    {
      "commit": "ead302baf8c1cd231f10354b8f75a51499d2283a",
      "tree": "cacada6068293014ee2c1aec616a7279c2cdff1c",
      "parents": [
        "d0531c412f12cc1dd71e24650f6f7a408dbdcab6"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed Nov 19 23:50:18 2025 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed Nov 19 23:50:18 2025 +0100"
      },
      "message": "Revert \"lib: py: remove distutils in favor of setuptools\"\n\nThis reverts commit b4432b8f57aae67ef9ec23e539e973a5e486a48c.\n"
    },
    {
      "commit": "d0531c412f12cc1dd71e24650f6f7a408dbdcab6",
      "tree": "7c1170acf9559aff2d89da629035dbc080dc90ea",
      "parents": [
        "90ba80427dd1b65af846717fd5c16fdcb9ab4078"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Nov 19 16:21:25 2025 +0000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Nov 19 17:46:46 2025 +0100"
      },
      "message": "Bump js-yaml from 3.14.1 to 3.14.2 in /lib/js\n\nBumps [js-yaml](https://github.com/nodeca/js-yaml) from 3.14.1 to 3.14.2.\n- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/nodeca/js-yaml/compare/3.14.1...3.14.2)\n\n---\nupdated-dependencies:\n- dependency-name: js-yaml\n  dependency-version: 3.14.2\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "cfc460213187ed9849c5e56c229668eb80859d50",
      "tree": "3695f332ea303e98ee8861ccb25b22d3e0719499",
      "parents": [
        "b4432b8f57aae67ef9ec23e539e973a5e486a48c"
      ],
      "author": {
        "name": "Stan Hu",
        "email": "stanhu@gmail.com",
        "time": "Mon Nov 28 11:29:50 2022 -0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Nov 19 17:38:44 2025 +0100"
      },
      "message": "ruby: fix failing tests with Ruby 3.0\n\nThe tests were previously failing due to keyword argument changes in\nRuby 3.0.\n"
    },
    {
      "commit": "b4432b8f57aae67ef9ec23e539e973a5e486a48c",
      "tree": "b9a344259440506d78ec643f44e6c22467378ec2",
      "parents": [
        "d66ce925513fb3424deaa0ea4bb1a2491970d1dd"
      ],
      "author": {
        "name": "Pyrox",
        "email": "pyrox@pyrox.dev",
        "time": "Fri Jul 19 14:19:04 2024 -0400"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Nov 19 17:37:01 2025 +0100"
      },
      "message": "lib: py: remove distutils in favor of setuptools\n\nAs distutils is removed in python 3.12, and setuptools provides the same\ninterface, it can be switched in place with minor changes. This allows\nusing the thrift bindings on versions of Python 3.12 or greater.\n"
    },
    {
      "commit": "d66ce925513fb3424deaa0ea4bb1a2491970d1dd",
      "tree": "0d8cef615b069ee5de119ff845703703b6b2e24d",
      "parents": [
        "f17d36cea582b79d3798c2be9520146d7a3fb0af"
      ],
      "author": {
        "name": "bwangelme",
        "email": "bwangel.me@gmail.com",
        "time": "Tue Jul 02 10:40:58 2024 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Nov 19 17:36:20 2025 +0100"
      },
      "message": "fix: make timeout error more future\n\nClient: [\"python\"]\n"
    },
    {
      "commit": "52df9d7060387276cf0a5e2af1b4e0660183b38b",
      "tree": "fd5ee49719d8ada60f6d73123176a786eeb2c440",
      "parents": [
        "c0caee3847eab836b16c347d9ec9895348ceda71"
      ],
      "author": {
        "name": "Gabe Jones",
        "email": "gabe.jones@emerson.com",
        "time": "Thu Oct 16 22:03:22 2025 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Nov 19 17:31:40 2025 +0100"
      },
      "message": "tOutput: Mark args unused when THRIFT_SQUELCH_CONSOLE_OUTPUT\nClient: cpp\n"
    },
    {
      "commit": "87079492f8005409b5c985e0b1782841f54fc9fc",
      "tree": "3c17dcf1fd1704f095a39ae91258f07d043abaf9",
      "parents": [
        "822671218dc7df11d7e1d5b100cb81baba97c757"
      ],
      "author": {
        "name": "Michael Smith",
        "email": "michael.smith@cloudera.com",
        "time": "Fri Nov 14 13:47:42 2025 -0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Sun Nov 16 12:41:45 2025 +0100"
      },
      "message": "THRIFT-792: Preserve last connect exception\n\nPreserves the last exception when TSocket connect fails to provide more\ncontext to callers. The exceptions are already logged at info level, but\ncallers may suppress that or want to view details in the exception, so\nattach the last as an inner layer of TTransportException, similar to\ngaierror above.\n"
    },
    {
      "commit": "2f214c28d89a0199a088a3acd0c16b3c6d99fb72",
      "tree": "9af049cb5d8c29ba299c9de312346f518897e928",
      "parents": [
        "ed55a18c30cf1ffdf793fcde5afae61f0f4c02cf"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Nov 13 23:24:45 2025 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Fri Nov 14 21:17:28 2025 +0100"
      },
      "message": "THRIFT-5902 Add net10 support\nClient: netstd\nPatch: Jens Geyer\n"
    },
    {
      "commit": "b08ae57c318d8188d9b7d5391d6fb9d32aa8f75f",
      "tree": "fc6a35a00bafa4703c8fc1aacce5fd0257c47cd9",
      "parents": [
        "12e86dd3ec6640108d1f03842fa9bf86d91cdd8f"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Nov 13 21:02:40 2025 +0000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Nov 13 22:34:32 2025 +0100"
      },
      "message": "Bump com.ncorti.ktfmt.gradle from 0.24.0 to 0.25.0 in /lib/kotlin\n\nBumps com.ncorti.ktfmt.gradle from 0.24.0 to 0.25.0.\n\n---\nupdated-dependencies:\n- dependency-name: com.ncorti.ktfmt.gradle\n  dependency-version: 0.25.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "12e86dd3ec6640108d1f03842fa9bf86d91cdd8f",
      "tree": "eae329f0c877c01a83f890fd13022fc6c9c5e8a6",
      "parents": [
        "7089a3a0b45ecf07f26b4c90175d498583950b9f"
      ],
      "author": {
        "name": "Ben Gemmill",
        "email": "bgemmill@users.noreply.github.com",
        "time": "Thu Nov 06 10:13:58 2025 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Nov 13 22:06:52 2025 +0100"
      },
      "message": "Update TBinaryProtocol.tcc\n\nOne last strlen"
    },
    {
      "commit": "7089a3a0b45ecf07f26b4c90175d498583950b9f",
      "tree": "ebc8926c4341757d17d1c4102a03d7adcb36e390",
      "parents": [
        "0039f8799210017a6432d818b899ca3c0c450c17"
      ],
      "author": {
        "name": "Ben Gemmill",
        "email": "bgemmill@users.noreply.github.com",
        "time": "Thu Nov 06 10:11:12 2025 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Nov 13 22:06:52 2025 +0100"
      },
      "message": "Update TCompactProtocol.tcc\n\nSkip the strlen() calls here too for speed"
    },
    {
      "commit": "0039f8799210017a6432d818b899ca3c0c450c17",
      "tree": "4b6b66ec826f4c4bba0a3de4948014aa8e1456d1",
      "parents": [
        "e720e6fecb75f1242154d1847b3b2954ae9d0965"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sat Nov 01 06:02:53 2025 +0000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Nov 13 22:00:39 2025 +0100"
      },
      "message": "Bump jvm from 2.2.20 to 2.2.21 in /lib/kotlin\n\nBumps [jvm](https://github.com/JetBrains/kotlin) from 2.2.20 to 2.2.21.\n- [Release notes](https://github.com/JetBrains/kotlin/releases)\n- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)\n- [Commits](https://github.com/JetBrains/kotlin/compare/v2.2.20...v2.2.21)\n\n---\nupdated-dependencies:\n- dependency-name: jvm\n  dependency-version: 2.2.21\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "e720e6fecb75f1242154d1847b3b2954ae9d0965",
      "tree": "aeebd2655eac72bef9e21cc4f1c33b442fe2dd8b",
      "parents": [
        "e7ab34eccb272584441f5462104d87f08b217ea7"
      ],
      "author": {
        "name": "Carel",
        "email": "Carel.combrink@gmail.com",
        "time": "Fri Nov 07 10:48:27 2025 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Nov 07 08:48:27 2025 +0000"
      },
      "message": "THRIFT-5899: Python tests fail for the Appveyor MSVC builds (#3229)\n\n* Temporarily switch off shared build\n\n- See THRIFT-5898\n\n* Skip type_hints tests for python lower than 3.7\n\n- PR#2929 called out that the changes breaks Python 3.5 since types came in in 3.6\n- Python 3.6 errors out with \u0027from __future__ import annotations\u0027 since it looks like it was only added in 3.7\n\n* More appveyer issues on Windows due to old python\n\n* Remove enum tests for old python versions\n\n- Getting `raise TApplicationException(TApplicationException.MISSING_RESULT, \"testEnum failed: unknown result\"` error\n- PR#2825 state it is a breaking change, not sure why and for what version of Python\n\n* Disable SSL tests for old Python\n\n- Appveyor error: ` AttributeError: module \u0027ssl\u0027 has no attribute \u0027PROTOCOL_TLS_CLIENT\u0027`\n\n* Can\u0027t get the test to skip so revert the change that broke it\n\n- See PR#3050\n\n* THRIFT-5900: Pin the cross test stage to python 3.13\n\n- See https://issues.apache.org/jira/browse/THRIFT-5900"
    },
    {
      "commit": "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": "3b21bc9fb4b4fe191f2c5b94ccaa1e3e99193c58",
      "tree": "b7237ba18c7c94ed4f6a198ed36e713934c05919",
      "parents": [
        "06bc1958f2b42a5e07fd78d203feebecbdd4f8a4"
      ],
      "author": {
        "name": "Federico Giovanardi",
        "email": "federico.giovanardi@cnhind.com",
        "time": "Fri Aug 22 15:29:24 2025 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri Oct 24 00:55:30 2025 +0200"
      },
      "message": "Support socket activation by fd passing\nClient: cpp\nPatch: Federico Giovanardi\n\nThis closes #3211\n"
    },
    {
      "commit": "06bc1958f2b42a5e07fd78d203feebecbdd4f8a4",
      "tree": "4385e6abddcfa7d0e9b14bb72d893ce759e9e850",
      "parents": [
        "2620a12bfa92dfb808fb9668b3d84a2c56526fc3"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Aug 22 20:14:25 2025 +0000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Sat Oct 18 22:16:13 2025 +0200"
      },
      "message": "Bump cipher-base from 1.0.4 to 1.0.6 in /lib/ts\n\nBumps [cipher-base](https://github.com/crypto-browserify/cipher-base) from 1.0.4 to 1.0.6.\n- [Changelog](https://github.com/browserify/cipher-base/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/crypto-browserify/cipher-base/compare/v1.0.4...v1.0.6)\n\n---\nupdated-dependencies:\n- dependency-name: cipher-base\n  dependency-version: 1.0.6\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "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": "d9a97c1610372eeb6db9f1a54e590a0a89067aea",
      "tree": "64a325b95d0f72c68d2f8220d64d9c0bc0cd75e6",
      "parents": [
        "9bfed8bd82e9ff30f9563aa33644f510a7807578"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Oct 01 15:26:25 2025 +0000"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Wed Oct 01 08:41:08 2025 -0700"
      },
      "message": "Bump com.ncorti.ktfmt.gradle from 0.23.0 to 0.24.0 in /lib/kotlin\n\nBumps com.ncorti.ktfmt.gradle from 0.23.0 to 0.24.0.\n\n---\nupdated-dependencies:\n- dependency-name: com.ncorti.ktfmt.gradle\n  dependency-version: 0.24.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "9bfed8bd82e9ff30f9563aa33644f510a7807578",
      "tree": "37988ed663f8a3332f2a087fdd5a4395af52b561",
      "parents": [
        "652915434015ccefd2117774e27896f32a2ce8fa"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Oct 01 14:49:59 2025 +0000"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Wed Oct 01 08:20:56 2025 -0700"
      },
      "message": "Bump jvm from 2.2.10 to 2.2.20 in /lib/kotlin\n\nBumps [jvm](https://github.com/JetBrains/kotlin) from 2.2.10 to 2.2.20.\n- [Release notes](https://github.com/JetBrains/kotlin/releases)\n- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)\n- [Commits](https://github.com/JetBrains/kotlin/compare/v2.2.10...v2.2.20)\n\n---\nupdated-dependencies:\n- dependency-name: jvm\n  dependency-version: 2.2.20\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "652915434015ccefd2117774e27896f32a2ce8fa",
      "tree": "09cab6f1b9d8dc644cc33c20b5c0c2ce19889b26",
      "parents": [
        "1a5b7fc85bbf6ff48d869e74ca675900a46d3750"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Oct 01 06:02:02 2025 +0000"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Wed Oct 01 07:47:44 2025 -0700"
      },
      "message": "Bump com.diffplug.spotless from 7.2.1 to 8.0.0 in /lib/java\n\nBumps com.diffplug.spotless from 7.2.1 to 8.0.0.\n\n---\nupdated-dependencies:\n- dependency-name: com.diffplug.spotless\n  dependency-version: 8.0.0\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "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": "86268584f64690dae9dd08ef9fd113827fad884a",
      "tree": "b7a105b4800dcd008c3c5afe35bffbc07e8a5942",
      "parents": [
        "37c7910072de4bf282f95f7c64f91155d6f2ce7e"
      ],
      "author": {
        "name": "Jonathan Haapala",
        "email": "jhaapala@newrelic.com",
        "time": "Mon Jun 30 14:50:49 2025 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Sun Sep 21 12:28:01 2025 -0700"
      },
      "message": "Add various/minor changes to some TProtocols for consistency and convenience\nClients: \"java\"\n"
    },
    {
      "commit": "37c7910072de4bf282f95f7c64f91155d6f2ce7e",
      "tree": "538255b51699481f3a3ea092c882c7c048b758d2",
      "parents": [
        "5501e8f84b7e735f1592b86492ab785a2f401bcf"
      ],
      "author": {
        "name": "Csaba Ringhofer",
        "email": "csringhofer@cloudera.com",
        "time": "Mon Sep 15 14:40:17 2025 +0200"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Tue Sep 16 18:23:18 2025 -0700"
      },
      "message": "THRIFT-5892: Always define PY_SSIZE_T_CLEAN before including Python.h\n\nThe error THRIFT-5488 tried to solve resurfaced in a spefic\nenvironment: Python3.11.13, chainguard based docker image, GCC 15\n\nDefining PY_SSIZE_T_CLEAN in module.cpp fixed the issue in that\nenvironment. Also defined it in types.cpp to consistently define\nit before including Python.h, which seems to be the recommended way:\nhttps://docs.python.org/3.11/c-api/intro.html#include-files\n\nIt is not clear to me why this was a problem in some environments\nand not in others. My guess is that including Python.h with different\ndefines leads to different behavior based on GCC version and options.\n"
    },
    {
      "commit": "5501e8f84b7e735f1592b86492ab785a2f401bcf",
      "tree": "a7d65ef3c3f5c5400ab78d02b16f9974fedc2d59",
      "parents": [
        "95245246390f2fa44d4ce1f11fe5052e30391dfc"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Sep 05 16:37:40 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 05 16:37:40 2025 -0400"
      },
      "message": "Bump com.ncorti.ktfmt.gradle from 0.20.1 to 0.23.0 in /lib/kotlin (#3174)\n\n* Bump com.ncorti.ktfmt.gradle from 0.20.1 to 0.23.0 in /lib/kotlin\n\nBumps com.ncorti.ktfmt.gradle from 0.20.1 to 0.23.0.\n\n---\nupdated-dependencies:\n- dependency-name: com.ncorti.ktfmt.gradle\n  dependency-version: 0.23.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\n\n* Apply ktmftFormat changes for new ktfmt version\n\n---------\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: Christopher Tubbs \u003cctubbsii@apache.org\u003e"
    },
    {
      "commit": "95245246390f2fa44d4ce1f11fe5052e30391dfc",
      "tree": "78ef60f4deba7bd3692ca878c5d9ccc29efac3c2",
      "parents": [
        "eaec898df1c2e541a72a91135bb572b4450519aa"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Sep 05 15:53:41 2025 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 05 15:53:41 2025 -0400"
      },
      "message": "Bump jvm from 2.2.0 to 2.2.10 in /lib/kotlin (#3209)\n\nBumps [jvm](https://github.com/JetBrains/kotlin) from 2.2.0 to 2.2.10.\n- [Release notes](https://github.com/JetBrains/kotlin/releases)\n- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)\n- [Commits](https://github.com/JetBrains/kotlin/compare/v2.2.0...v2.2.10)\n\n---\nupdated-dependencies:\n- dependency-name: jvm\n  dependency-version: 2.2.10\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "922cd0e2c4652df3f4ac4a83d9c8a6c771063f7f",
      "tree": "0fcf5ec1c85eaf81679c03365b6d74cb0020152a",
      "parents": [
        "860b1e539c74b9664bb83e568cf1ed1b4bf26ae0"
      ],
      "author": {
        "name": "Guillaume Maudoux",
        "email": "layus.on@gmail.com",
        "time": "Thu Oct 24 00:54:37 2024 -0700"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Aug 28 00:43:59 2025 +0200"
      },
      "message": "Add support for boringssl\n\nCo-authored-by: Dev-iL \u003c6509619+Dev-iL@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "860b1e539c74b9664bb83e568cf1ed1b4bf26ae0",
      "tree": "cf4139d3f18506cf7739b07efe2a4ce53bf59b71",
      "parents": [
        "fbe685aae10a02054e247bd79857009104563324"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Aug 26 15:00:56 2025 +0000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Aug 28 00:40:11 2025 +0200"
      },
      "message": "Bump sha.js from 2.4.11 to 2.4.12 in /lib/ts\n\nBumps [sha.js](https://github.com/crypto-browserify/sha.js) from 2.4.11 to 2.4.12.\n- [Changelog](https://github.com/browserify/sha.js/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/crypto-browserify/sha.js/compare/v2.4.11...v2.4.12)\n\n---\nupdated-dependencies:\n- dependency-name: sha.js\n  dependency-version: 2.4.12\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "fbe685aae10a02054e247bd79857009104563324",
      "tree": "871a2b31f85305ef824d4ff011ff856f466c05ab",
      "parents": [
        "0a760ff35ab8f348001aeaf85d00dd43ab3fc1a7"
      ],
      "author": {
        "name": "Carel Combrink",
        "email": "carel.combrink@gmail.com",
        "time": "Thu Jun 05 08:38:07 2025 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Aug 28 00:36:39 2025 +0200"
      },
      "message": "Add cpp cross tests to the build workflow\n\n- Remove usage of v0.16 thrift files for C++ since UUID support was added\n- Need to install the locals for some of the unit tests\n- Fix UUID support for THeaderProtocol\n    - Without this the protocol went into an infinite loop due to virtual function calls that recursed to itself\n    - Best case was a crash, worst case was process got stuck\n- Fix UUID support for TProtocolTap\n- Sorted the known failures\n- Mark cpp and java ssl tests as known failures\n"
    },
    {
      "commit": "0a760ff35ab8f348001aeaf85d00dd43ab3fc1a7",
      "tree": "7074be78e4db1fe759912486a1ddf90036691fc4",
      "parents": [
        "72a714ee5176a2c62e4a0b99c92036f30f0c09be"
      ],
      "author": {
        "name": "Hasnain Lakhani",
        "email": "m.hasnain.lakhani@gmail.com",
        "time": "Tue Aug 26 18:02:09 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 26 18:02:09 2025 -0700"
      },
      "message": "Fix python tests\n\nFix a Python test issue exposed by OSS-fuzz integration in https://github.com/google/oss-fuzz/pull/13874\n\nI can reproduce this with the oss-fuzz build (by setting UBSan flags locally). I do not know why the issue only shows up then, but this fix is correct - the method signatures are the same as the Compact protocol factory. The factory is supposed to not be passed any argument, or the arguments that are passed should be the limits. This manifested as the below failure:\n\n```\n2025-08-26T18:20:18.9632418Z /usr/local/bin/python test/thrift_TSerializer.py\n2025-08-26T18:20:19.0144330Z .E..\n2025-08-26T18:20:19.0145197Z \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n2025-08-26T18:20:19.0146549Z ERROR: test_TBinaryProtocolAccelerated (__main__.TestSerializer.test_TBinaryProtocolAccelerated)\n2025-08-26T18:20:19.0148344Z ----------------------------------------------------------------------\n2025-08-26T18:20:19.0149187Z Traceback (most recent call last):\n2025-08-26T18:20:19.0158543Z   File \"/src/thrift/lib/py/test/thrift_TSerializer.py\", line 68, in test_TBinaryProtocolAccelerated\n2025-08-26T18:20:19.0159474Z     self.verify(self.binary_serialized, factory)\n2025-08-26T18:20:19.0160254Z   File \"/src/thrift/lib/py/test/thrift_TSerializer.py\", line 50, in verify\n2025-08-26T18:20:19.0160914Z     deserialize(Message(), serialized, factory).body,\n2025-08-26T18:20:19.0161739Z     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n2025-08-26T18:20:19.0162428Z   File \"/src/thrift/lib/py/build/lib.linux-x86_64-cpython-311/thrift/TSerialization.py\", line 37, in deserialize\n2025-08-26T18:20:19.0163082Z     base.read(protocol)\n2025-08-26T18:20:19.0163513Z   File \"/src/thrift/lib/py/gen-py/TestServer/ttypes.py\", line 45, in read\n2025-08-26T18:20:19.0164259Z     self.body \u003d iprot.readString().decode(\u0027utf-8\u0027, errors\u003d\u0027replace\u0027) if sys.version_info[0] \u003d\u003d 2 else iprot.readString()\n2025-08-26T18:20:19.0164897Z                                                                                                       ^^^^^^^^^^^^^^^^^^\n2025-08-26T18:20:19.0165620Z   File \"/src/thrift/lib/py/build/lib.linux-x86_64-cpython-311/thrift/protocol/TProtocol.py\", line 179, in readString\n2025-08-26T18:20:19.0166301Z     return self.readBinary().decode(\u0027utf-8\u0027)\n2025-08-26T18:20:19.0166624Z            ^^^^^^^^^^^^^^^^^\n2025-08-26T18:20:19.0167302Z   File \"/src/thrift/lib/py/build/lib.linux-x86_64-cpython-311/thrift/protocol/TBinaryProtocol.py\", line 234, in readBinary\n2025-08-26T18:20:19.0167990Z     self._check_string_length(size)\n2025-08-26T18:20:19.0168745Z   File \"/src/thrift/lib/py/build/lib.linux-x86_64-cpython-311/thrift/protocol/TBinaryProtocol.py\", line 48, in _check_string_length\n2025-08-26T18:20:19.0169531Z     self._check_length(self.string_length_limit, length)\n2025-08-26T18:20:19.0170268Z   File \"/src/thrift/lib/py/build/lib.linux-x86_64-cpython-311/thrift/protocol/TProtocol.py\", line 57, in _check_length\n2025-08-26T18:20:19.0170906Z     if limit is not None and length \u003e limit:\n2025-08-26T18:20:19.0171360Z                              ^^^^^^^^^^^^^^\n2025-08-26T18:20:19.0171764Z TypeError: \u0027\u003e\u0027 not supported between instances of \u0027int\u0027 and \u0027TBufferedTransport\u0027\n2025-08-26T18:20:19.0172088Z \n2025-08-26T18:20:19.0172231Z ----------------------------------------------------------------------\n```"
    },
    {
      "commit": "72a714ee5176a2c62e4a0b99c92036f30f0c09be",
      "tree": "25a3c6627ceac9c205d5d6af66ecb2f8f3dd5ce2",
      "parents": [
        "4afb7d9ebeb0b6110cb6223e1c05c5e0ff9ee35b"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue Aug 26 22:12:07 2025 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue Aug 26 22:12:07 2025 +0200"
      },
      "message": "Fixed a ton of missing ASF headers ... again.\n"
    },
    {
      "commit": "4afb7d9ebeb0b6110cb6223e1c05c5e0ff9ee35b",
      "tree": "3403f0d7199856cc96ab995e36c27985d3d6216d",
      "parents": [
        "7ac79abbe488fc0e162ab6bbcbdfb51dee7ff325"
      ],
      "author": {
        "name": "Hasnain Lakhani",
        "email": "m.hasnain.lakhani@gmail.com",
        "time": "Mon Aug 25 16:09:41 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 25 16:09:41 2025 -0700"
      },
      "message": "THRIFT-5855: Add swift fuzzers\n\nAdd fuzzers for Swift support, to improve the reliability/robustness of the implementation"
    },
    {
      "commit": "7ac79abbe488fc0e162ab6bbcbdfb51dee7ff325",
      "tree": "8a816249e1f81315805ac3c7c51e03a0e9541f39",
      "parents": [
        "d2743005dab9ec95764af32075b4705089140d25"
      ],
      "author": {
        "name": "Hasnain Lakhani",
        "email": "m.hasnain.lakhani@gmail.com",
        "time": "Mon Aug 25 14:40:43 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 25 14:40:43 2025 -0700"
      },
      "message": "THRIFT-5855: Add rust fuzzers\n\nAdd fuzzers for Rust support, to improve the reliability/robustness of the implementation"
    },
    {
      "commit": "d2743005dab9ec95764af32075b4705089140d25",
      "tree": "dc41a7e6703f7e4f9daf0179a606103d51a1b086",
      "parents": [
        "aa18332cb03f61ccde38394e7186894f72bc1a09"
      ],
      "author": {
        "name": "Hasnain Lakhani",
        "email": "m.hasnain.lakhani@gmail.com",
        "time": "Mon Aug 25 14:22:15 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 25 14:22:15 2025 -0700"
      },
      "message": "THRIFT-5855: Add py fuzzers\n\nAdd fuzzers for py support, to improve the reliability/robustness of the implementation"
    },
    {
      "commit": "aa18332cb03f61ccde38394e7186894f72bc1a09",
      "tree": "eca7b9cb34410da4171da0b6288f138142794fdb",
      "parents": [
        "4f877ca2d48938430d7a79c4cdde15f31b6f38ce"
      ],
      "author": {
        "name": "Hasnain Lakhani",
        "email": "m.hasnain.lakhani@gmail.com",
        "time": "Mon Aug 25 13:54:33 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 25 13:54:33 2025 -0700"
      },
      "message": "THRIFT-5855: Add nodejs fuzzers\n\nAdd fuzzers for nodejs support, to improve the reliability/robustness of the implementation"
    },
    {
      "commit": "4f877ca2d48938430d7a79c4cdde15f31b6f38ce",
      "tree": "933653289579829ebe451085656bd9b9f0743f5e",
      "parents": [
        "9b13668bbb4e88af573b9d085150825d56c9f773"
      ],
      "author": {
        "name": "Hasnain Lakhani",
        "email": "m.hasnain.lakhani@gmail.com",
        "time": "Mon Aug 25 13:24:26 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 25 13:24:26 2025 -0700"
      },
      "message": "THRIFT-5855: Add java fuzzers\n\nAdd fuzzers for java support, to improve the reliability/robustness of the implementation"
    },
    {
      "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": "37f4e0d946124620cc56954320356662919e6943",
      "tree": "d6132e57d3f342c539d9e6029e78735a192fd166",
      "parents": [
        "cf41a1c1e163cd27f8efc19ec84f1e7ae1ba3254"
      ],
      "author": {
        "name": "Hasnain Lakhani",
        "email": "m.hasnain.lakhani@gmail.com",
        "time": "Mon Aug 25 11:21:33 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 25 11:21:33 2025 -0700"
      },
      "message": "THRIFT-5855: cpp fuzzers\n\nAdd fuzzers for cpp support, to improve the reliability/robustness of the implementation"
    },
    {
      "commit": "cf41a1c1e163cd27f8efc19ec84f1e7ae1ba3254",
      "tree": "551b37a9f41fa2b9269ee1add79e747474a31cb9",
      "parents": [
        "c51ab5f70821104cd1fd22371d006997ebc0554b"
      ],
      "author": {
        "name": "Hasnain Lakhani",
        "email": "m.hasnain.lakhani@gmail.com",
        "time": "Mon Aug 25 10:55:35 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 25 10:55:35 2025 -0700"
      },
      "message": "THRIFT-5855: Add c_glib fuzzers\n\nAdd fuzzers for c_glib support, to improve the reliability/robustness of the implementation"
    },
    {
      "commit": "28553fab40f6485edbb86fcfb8285a66e823e1db",
      "tree": "eb95a7fb41dc1b115a614f0ab8fee39c137f15ce",
      "parents": [
        "f141a4103be29aa2d7d60ac00f67e47988c3187a"
      ],
      "author": {
        "name": "Raihan M",
        "email": "muhamedraihan@gmail.com",
        "time": "Tue Jul 15 13:28:35 2025 +0000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Fri Aug 22 22:14:56 2025 +0200"
      },
      "message": "Update commons-lang3 to 3.18.0\nClient: Java\n"
    },
    {
      "commit": "f141a4103be29aa2d7d60ac00f67e47988c3187a",
      "tree": "9536533eea30ebb7cacf80b705a251a94854be78",
      "parents": [
        "71ebed42fd7f1e36d6d065fb345c356e592896ce"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Aug 21 15:04:52 2025 +0000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Fri Aug 22 22:13:48 2025 +0200"
      },
      "message": "Bump sha.js from 2.4.11 to 2.4.12 in /lib/js\n\nBumps [sha.js](https://github.com/crypto-browserify/sha.js) from 2.4.11 to 2.4.12.\n- [Changelog](https://github.com/browserify/sha.js/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/crypto-browserify/sha.js/compare/v2.4.11...v2.4.12)\n\n---\nupdated-dependencies:\n- dependency-name: sha.js\n  dependency-version: 2.4.12\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "71ebed42fd7f1e36d6d065fb345c356e592896ce",
      "tree": "73b4bdf7b00e23c70f4f16a5dcc1d19fb8f4f3f0",
      "parents": [
        "ce664ea58c6b0e7712899f24e1de9e5c7cc85ca2"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Aug 21 15:33:43 2025 +0000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Fri Aug 22 22:13:18 2025 +0200"
      },
      "message": "Bump cipher-base from 1.0.4 to 1.0.6 in /lib/js\n\nBumps [cipher-base](https://github.com/crypto-browserify/cipher-base) from 1.0.4 to 1.0.6.\n- [Changelog](https://github.com/browserify/cipher-base/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/crypto-browserify/cipher-base/compare/v1.0.4...v1.0.6)\n\n---\nupdated-dependencies:\n- dependency-name: cipher-base\n  dependency-version: 1.0.6\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "ce664ea58c6b0e7712899f24e1de9e5c7cc85ca2",
      "tree": "0a4d43a35a18b6578bf772e661613982a44e45b9",
      "parents": [
        "82a5f168a51f5d33273acf6dc237bc5bc8855412"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Aug 01 06:56:58 2025 +0000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Aug 20 23:02:04 2025 +0200"
      },
      "message": "Bump com.diffplug.spotless from 7.0.4 to 7.2.1 in /lib/kotlin\n\nBumps com.diffplug.spotless from 7.0.4 to 7.2.1.\n\n---\nupdated-dependencies:\n- dependency-name: com.diffplug.spotless\n  dependency-version: 7.2.1\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "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": "57c5fc1f79229cd2ca9eba68568ade66fda03df5",
      "tree": "1fef71da9b4c970a88fb32906314c63889d3ec60",
      "parents": [
        "b0f2423e17fbd1028f918af6b26bf6cc6331d66c"
      ],
      "author": {
        "name": "Hasnain Lakhani",
        "email": "m.hasnain.lakhani@gmail.com",
        "time": "Sat Aug 02 21:12:07 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 02 21:12:07 2025 -0700"
      },
      "message": "Fix UUID handling in Rust Thrift compact protocol (#3179)\n\nThis commit fixes two bugs in the Rust Thrift implementation that prevented\nUUID fields from working correctly with the compact protocol:\n\n1. Missing UUID case in skip_till_depth function\n   - The skip function in lib/rs/src/protocol/mod.rs did not handle TType::Uuid\n   - This caused \"cannot skip field type Uuid\" errors when trying to skip UUID fields\n   - Fixed by adding: TType::Uuid \u003d\u003e self.read_uuid().map(|_| ())\n\n2. Incorrect UUID serialization in compact protocol\n   - The compact protocol was using read_bytes()/write_bytes() for UUIDs\n   - These methods include a length prefix, but UUIDs should be transmitted as\n     raw 16-byte values per the Thrift specification\n   - This caused \"don\u0027t know what type: 15\" errors during cross-language tests\n   - Fixed by reading/writing UUID bytes directly without length prefix\n   - Implementation now matches the binary protocol\u0027s approach for consistency\n\nThe bug manifested as failures in cross-language tests between Go and Rust\nwhen using compact protocol. The error occurred because Go correctly expected\nraw 16-byte UUID values while Rust was incorrectly adding a length prefix.\n\nTesting:\n- Verified all go-rs and rs-go cross tests now pass with compact protocol\n- Tests confirm UUID values are correctly serialized and deserialized\n- Both buffered and framed transports work correctly"
    },
    {
      "commit": "b0f2423e17fbd1028f918af6b26bf6cc6331d66c",
      "tree": "0e437f72050f769ebd9877da42b8ac9a2b091e52",
      "parents": [
        "52fea29d496838da1ef11d83f110ac100720e37b"
      ],
      "author": {
        "name": "Hasnain Lakhani",
        "email": "m.hasnain.lakhani@gmail.com",
        "time": "Fri Aug 01 20:20:13 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 01 20:20:13 2025 -0700"
      },
      "message": "Fix C++ build\n\nPR #3165 broke the build with c++11.\n\nI split out the compile time fix from https://github.com/apache/thrift/pull/3167/files#diff-d8d7400cdf01511c2ad2df7caf958173c2e96e8633271709c9b0b5cd8e89215c to ensure we have a clean trunk (so I can have other changes on top). I can\u0027t take credit for the fixes.\n\nI verified this compiles with gcc, clang (on c++11) and also on clang with c++1z"
    },
    {
      "commit": "42d0b717746a748a50a19e7e7842373488048dc3",
      "tree": "2e4d0cec3f30de71fb7e0e3863c016fcc4e94a5d",
      "parents": [
        "9cff8b9f5b217c143c75299939c32573ccd4c9c3"
      ],
      "author": {
        "name": "Hasnain Lakhani",
        "email": "m.hasnain.lakhani@gmail.com",
        "time": "Thu Jul 17 19:57:05 2025 -0700"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Mon Jul 21 23:37:25 2025 +0200"
      },
      "message": "[THRIFT-5871] Add message / container size checking for Rust\n\nBring the Rust implementation somewhat up to par with the other implementations.\nI tried 4-5 different ways to get the \"perfect\" check but since trait specialization is not yet stable,\nI was not able to arrive at a solution I\u0027m happy with (code was either ugly, or had runtime overhead).\n\nSo for now, we avoid full message size tracking / more precise limit checking, but this is a strong step\nin the right direction.\n"
    },
    {
      "commit": "9cff8b9f5b217c143c75299939c32573ccd4c9c3",
      "tree": "13de729da800e3ab06a8d750d6c8cd8cbdd23c4c",
      "parents": [
        "3330e432e6b67587c6c930fa0ceb8f4cbdcb03a3"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Jun 24 05:22:37 2025 +0000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Sat Jul 05 10:33:43 2025 +0200"
      },
      "message": "Bump pbkdf2 from 3.0.17 to 3.1.3 in /lib/js\n\nBumps [pbkdf2](https://github.com/crypto-browserify/pbkdf2) from 3.0.17 to 3.1.3.\n- [Changelog](https://github.com/browserify/pbkdf2/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/crypto-browserify/pbkdf2/compare/v3.0.17...v3.1.3)\n\n---\nupdated-dependencies:\n- dependency-name: pbkdf2\n  dependency-version: 3.1.3\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "3330e432e6b67587c6c930fa0ceb8f4cbdcb03a3",
      "tree": "186f5a04dfe10b1c602cb592e955091d7caf287a",
      "parents": [
        "44bb07f8f0bfe81e2975daaae1d238df4644af0f"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Jun 24 05:23:19 2025 +0000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Sat Jul 05 10:33:35 2025 +0200"
      },
      "message": "Bump pbkdf2 from 3.0.17 to 3.1.3 in /lib/ts\n\n---\nupdated-dependencies:\n- dependency-name: pbkdf2\n  dependency-version: 3.1.3\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "44bb07f8f0bfe81e2975daaae1d238df4644af0f",
      "tree": "b7c32d3d52de9ab71f7a18b84366128df9584e80",
      "parents": [
        "67f828012710d05495ec240467c3750f99ddfe27"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Jul 01 08:22:29 2025 +0000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Sat Jul 05 10:32:17 2025 +0200"
      },
      "message": "Bump jvm from 2.1.21 to 2.2.0 in /lib/kotlin\n\nBumps [jvm](https://github.com/JetBrains/kotlin) from 2.1.21 to 2.2.0.\n- [Release notes](https://github.com/JetBrains/kotlin/releases)\n- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)\n- [Commits](https://github.com/JetBrains/kotlin/compare/v2.1.21...v2.2.0)\n\n---\nupdated-dependencies:\n- dependency-name: jvm\n  dependency-version: 2.2.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "67f828012710d05495ec240467c3750f99ddfe27",
      "tree": "da3c4313d31462ca16204dd7c443892a48c39621",
      "parents": [
        "25202e1b02dc2d2eaf263f5d78619261f2ea2910"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat Jun 21 01:30:43 2025 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Sat Jun 21 01:43:47 2025 +0200"
      },
      "message": "nuget package update\n"
    }
  ],
  "next": "25202e1b02dc2d2eaf263f5d78619261f2ea2910"
}
