)]}'
{
  "log": [
    {
      "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": "22ffdc79d004ab22f270870db0c9d407a446e914",
      "tree": "0c4ccc8acbd0706b1f6d2750f1acbb38a44743c0",
      "parents": [
        "e0d99c91a8dd096f798ed1270495f5b65e933c5a"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Jan 01 06:01:58 2026 +0000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Jan 07 22:27:49 2026 +0100"
      },
      "message": "Bump actions/download-artifact from 6 to 7\n\nBumps [actions/download-artifact](https://github.com/actions/download-artifact) from 6 to 7.\n- [Release notes](https://github.com/actions/download-artifact/releases)\n- [Commits](https://github.com/actions/download-artifact/compare/v6...v7)\n\n---\nupdated-dependencies:\n- dependency-name: actions/download-artifact\n  dependency-version: \u00277\u0027\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "e0d99c91a8dd096f798ed1270495f5b65e933c5a",
      "tree": "23c82948e2b2b07df6316f1a6acbbd05f5fb29bb",
      "parents": [
        "b8f24076cd33fdd32df93ee76b1386a00fbd0be8"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Jan 01 06:01:55 2026 +0000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Jan 07 22:24:29 2026 +0100"
      },
      "message": "Bump actions/checkout from 4 to 6\n\nBumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6.\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/actions/checkout/compare/v4...v6)\n\n---\nupdated-dependencies:\n- dependency-name: actions/checkout\n  dependency-version: \u00276\u0027\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "b8f24076cd33fdd32df93ee76b1386a00fbd0be8",
      "tree": "9c48c46a7699545ed11b4838ef46a14978918260",
      "parents": [
        "2097ed7898b039b53f1fc32cb94728c9de72de13"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Jan 01 06:01:45 2026 +0000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Jan 07 22:24:06 2026 +0100"
      },
      "message": "Bump actions/upload-artifact from 4 to 6\n\nBumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 6.\n- [Release notes](https://github.com/actions/upload-artifact/releases)\n- [Commits](https://github.com/actions/upload-artifact/compare/v4...v6)\n\n---\nupdated-dependencies:\n- dependency-name: actions/upload-artifact\n  dependency-version: \u00276\u0027\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "2097ed7898b039b53f1fc32cb94728c9de72de13",
      "tree": "7bcdab9cb58fb86d57b58563d94832a1a4f9b6d8",
      "parents": [
        "09475949b9195c070f428c6c48a77690ff80c3f9"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Wed Dec 17 23:00:37 2025 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Jan 07 22:15:47 2026 +0100"
      },
      "message": "Added auto-labeling configuration to .github/mergeable.yml\n"
    },
    {
      "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": "230d0a96a2757b978545ebc4b2969a987476b846",
      "tree": "e794dd489316111eb5c031523d8e69c378f1019f",
      "parents": [
        "56f9772a2663c4113de006122a1d096afe107ebd"
      ],
      "author": {
        "name": "Shaoyu Zhang",
        "email": "zsy056@users.noreply.github.com",
        "time": "Wed Nov 12 00:08:50 2025 -0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Dec 10 23:46:25 2025 +0100"
      },
      "message": "Refresh windows docker setup\n"
    },
    {
      "commit": "56f9772a2663c4113de006122a1d096afe107ebd",
      "tree": "1fdb97b68c0da235300b459adfce3c284b715c49",
      "parents": [
        "1eaa9a41f0aa1c3ef9d61a3269ac2a00eeae2f0a"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Tue Nov 25 14:49:23 2025 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Dec 10 23:45:49 2025 +0100"
      },
      "message": "Inconsistent UUID constants compilation for aliased types\nFor aliased types, UUID constants retain their curly braces, while\ndirect UUID constants do not:\n\n    typedef uuid myUUID\n    const uuid GEN_UUID \u003d  \u002700000000-4444-CCCC-ffff-0123456789ab\u0027\n    const uuid GEN_GUID \u003d \u0027{00112233-4455-6677-8899-aaBBccDDeeFF}\u0027\n    const myUUID MY_UUID \u003d  \u002700000000-4444-CCCC-ffff-0123456789ab\u0027\n    const myUUID MY_GUID \u003d \u0027{00112233-4455-6677-8899-aaBBccDDeeFF}\u0027\n\nWhen uuid is compiled, it produces a string without curly braces, but\nfor alias myUUID the curly braces stay:\n\n    GEN_UUID \u003d %q\"00000000-4444-CCCC-ffff-0123456789ab\"\n    GEN_GUID \u003d %q\"00112233-4455-6677-8899-aaBBccDDeeFF\"\n    MY_UUID \u003d %q\"00000000-4444-CCCC-ffff-0123456789ab\"\n    MY_GUID \u003d %q\"{00112233-4455-6677-8899-aaBBccDDeeFF}\"\n\nThis change ensures that the type is properly resolved to its true type\nbefore validation, resulting in consistent handling of UUID constants\nregardless of whether they are defined using the base type or an alias.\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": "dee782f410c5d20ceb745d2b840ce447f6d4b7b1",
      "tree": "5d387d19481f4154d2ae0f0304d86d1d844deea3",
      "parents": [
        "c630d8fb043fc45554c18602e97023feda2d12fc"
      ],
      "author": {
        "name": "Carel Combrink",
        "email": "carel.combrink@gmail.com",
        "time": "Mon Nov 10 13:18:53 2025 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed Dec 10 22:53:01 2025 +0100"
      },
      "message": "THRIFT-5885 Fix enum generation\nClient: py\nPatch: Carel Combrink\n\nThis closes #3232\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": "6d04f12df6d4a218410639a46b8d902b93f88244",
      "tree": "53988b2005f8dcfb9b027a2219d2d91d95fa0e9e",
      "parents": [
        "4a21581f78c38ef5077cb8a0d8013727e4d56165"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Sun Nov 30 10:14:54 2025 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Mon Dec 01 22:52:33 2025 +0100"
      },
      "message": "Fix CMake boost linking issue on AppVeyor MINGW\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": "be7a9e50eeea9315ea17b7fd21fa0a2e357fa402",
      "tree": "ff56014fe5f0fcee5f5678f1238bf5b23c777892",
      "parents": [
        "1646c0492bf09a6a4dc7b7b02fd5d11e64007a7a"
      ],
      "author": {
        "name": "Carel Combrink",
        "email": "carel.combrink@gmail.com",
        "time": "Fri Nov 07 09:27:39 2025 +0000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Mon Dec 01 22:30:46 2025 +0100"
      },
      "message": "Put back Windows shared lib building\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": "5b53b554a3ac6faff70081d541680fbcec55fbb7",
      "tree": "5fbbb7a3494f6775c51034ddfda1661c9c90bef1",
      "parents": [
        "3364b4ac563872b40c91d7843f6d0971d84979ec"
      ],
      "author": {
        "name": "Hongxu Jia",
        "email": "hongxu.jia@windriver.com",
        "time": "Thu Nov 20 11:43:45 2025 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Mon Dec 01 22:13:30 2025 +0100"
      },
      "message": "support reproducible builds\n\nIn order to support reproducible builds [1], while using bison to generate\nsource code, add COMPILE_FLAGS --file-prefix-map [2] to remove build path\nprefix and source path prefix in the generated header file.\n\n[1] https://reproducible-builds.org/\n[2] https://cgit.git.savannah.gnu.org/cgit/bison.git/commit/?id\u003ddd878d18519689c7bbcd72de4c9f9e53085a3cbf\n\nSigned-off-by: Hongxu Jia \u003chongxu.jia@windriver.com\u003e\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": "724b038b9fbd81a2f0e7c4b66c5c8546bbd99ce9",
      "tree": "1c3a9fe0067d7f45f6caf846beba23a42304c5a9",
      "parents": [
        "d90f2bb1e87252613c642d632395a65d3e8835f6"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Dec 01 06:29:44 2025 +0000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Mon Dec 01 22:04:10 2025 +0100"
      },
      "message": "Bump actions/setup-python from 3 to 6\n\nBumps [actions/setup-python](https://github.com/actions/setup-python) from 3 to 6.\n- [Release notes](https://github.com/actions/setup-python/releases)\n- [Commits](https://github.com/actions/setup-python/compare/v3...v6)\n\n---\nupdated-dependencies:\n- dependency-name: actions/setup-python\n  dependency-version: \u00276\u0027\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "d90f2bb1e87252613c642d632395a65d3e8835f6",
      "tree": "5e036ffba9b17f274f8afcfead3a5b68b8e5261b",
      "parents": [
        "55bc35f5d581f61f8dac816eb17493911ff8e75a"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Dec 01 06:29:38 2025 +0000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Mon Dec 01 22:03:38 2025 +0100"
      },
      "message": "Bump actions/checkout from 3 to 6\n\nBumps [actions/checkout](https://github.com/actions/checkout) from 3 to 6.\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/actions/checkout/compare/v3...v6)\n\n---\nupdated-dependencies:\n- dependency-name: actions/checkout\n  dependency-version: \u00276\u0027\n  dependency-type: direct:production\n  update-type: version-update:semver-major\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": "ac3feed1b24389efbc0865b742be1854be0406dc",
      "tree": "f9d87c81d249645f42086cf62d261413fd04f995",
      "parents": [
        "10d5a65d1a6c0308145352f31157628b9643c942"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Tue Sep 17 09:53:02 2024 -0700"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Sun Nov 23 14:43:12 2025 +0100"
      },
      "message": "Fix python compiler generated all_structs with type_hints\n\nCurrently with type_hints enabled, we do not explicitly declare the type\nof generated all_structs. It\u0027s meant to be a list of different types,\nbut that will cause problems, as the generated code is usually like\nthis:\n\n    all_structs \u003d []\n    ...\n    all_structs.append(Type1)\n    ...\n    all_structs.append(Type2)\n    ...\n\nThe first append infers the type of all_struct to be list[Type1], so\nmypyc would start complaining from the 2nd append as the type is\nunexpected.\n\nExplicitly declare all_struct to be list[typing.Any] instead, which\nfixes the issue.\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": "5abe53feaf598e40ab84eb259399113a79461791",
      "tree": "ba1bfe81c2004d18b072090ef24816cf306151ba",
      "parents": [
        "f274d9891fc042bac06f28f51ab5901b9077a0da"
      ],
      "author": {
        "name": "Carel Combrink",
        "email": "carel.combrink@gmail.com",
        "time": "Thu Nov 13 06:16:41 2025 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Nov 20 23:12:02 2025 +0100"
      },
      "message": "Thrift-5900: Fix Tests for Python 3.14\nClient: py\nPatch: Carel Combrink\n\nThis closes #3239\n\n- Disclaimer: Claude came up with this\n- Python 3.14 made files explicitly unpicklable for reasons\n- The out can\u0027t be pickled in SummaryReporter\n- stop in TestDispatcher is an instance method that should not be captured\n\nDelay the imports to where they are needed\n\n- Claude believes this is due to the way that the server is called vs the client is called and the server does not have enough time to set up completely\n\nAttempt to fix issue with python 3.14\n\n- Looks like python is getting more strict about scoping\n- Decided to go with a local option instead of global or module variable\n"
    },
    {
      "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": "32b80f6292b591fe2b77d3070dbade91b0fdfd58",
      "tree": "89d72c060457ec36781f7d25b8533fd401f40af1",
      "parents": [
        "1e17c93555b680d4719ba61965c088590a2053dd"
      ],
      "author": {
        "name": "Amos Bird",
        "email": "amosbird@gmail.com",
        "time": "Fri Jun 30 15:30:28 2023 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Nov 20 22:55:25 2025 +0100"
      },
      "message": "THRIFT-5720: Encode binary args in Python remote\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": "5b096a00027582983f1ae141a4bbf4eed806c310",
      "tree": "fd6cb88d32d3f11e099074e1dafe78153a68bd7f",
      "parents": [
        "4f89bfdeeb900e2d64bf5c5f726b78d8591593cc"
      ],
      "author": {
        "name": "Maarten Pronk",
        "email": "git@evetion.nl",
        "time": "Sun Sep 11 17:36:39 2022 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Nov 20 22:44:28 2025 +0100"
      },
      "message": "Lowercased all MinGW headers.\nPatch: Maarten Pronk\n\nThis closes #2649\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": "80279b551a8f86c5085afedd454e26611d5b3cba",
      "tree": "3914dd15a94455e188e2e60e878143ce39cb1209",
      "parents": [
        "2d8546837cb3f55df4c1724cdfe7b42badbb2dbe"
      ],
      "author": {
        "name": "Francisco Ayala Le Brun",
        "email": "frankxlebrun@gmail.com",
        "time": "Sat Apr 23 15:03:30 2022 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Nov 20 22:32:26 2025 +0100"
      },
      "message": "THRIFT-5559: Make handler public in Rust codegen\nClient: rs\nPatch: Francisco Ayala Le Brun\n\nThis closes #2586\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": "f8ce26cd422f743493423da58591dd5ef1142bdb",
      "tree": "ee2252494f0415ffb6f66b60fbebbf46378ed444",
      "parents": [
        "d804bd1c1fc9d790a0b1cf29a4ffdb24ecd8b1ab"
      ],
      "author": {
        "name": "Carel Combrink",
        "email": "carel.combrink@gmail.com",
        "time": "Wed Nov 12 14:24:55 2025 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Nov 20 00:01:57 2025 +0100"
      },
      "message": "Fix issue with deprecated function in test\n\n- assert_   was removed in Python 3 and later removed\n- Fixed the script to error out correctly when the tests fail\n   - The RunClientServer.py test did not fail as expected on this error\n"
    },
    {
      "commit": "d804bd1c1fc9d790a0b1cf29a4ffdb24ecd8b1ab",
      "tree": "fd697c6ca0269dac3469190f2191a5214d336e2b",
      "parents": [
        "20a90bf9ffcbddf9e77dcdefde1182a2d51e986a"
      ],
      "author": {
        "name": "Carel Combrink",
        "email": "carel.combrink@gmail.com",
        "time": "Wed Nov 12 07:16:31 2025 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Nov 20 00:01:57 2025 +0100"
      },
      "message": "Reworked the local_libpath() using the code form _import_local_thrift\n\n- Common problem, common code\n"
    },
    {
      "commit": "20a90bf9ffcbddf9e77dcdefde1182a2d51e986a",
      "tree": "030656903dbdd3892021fc18940be622dc8b1fc3",
      "parents": [
        "9f96b485f78b9d5405c57b354b85e99d222646f9"
      ],
      "author": {
        "name": "Carel Combrink",
        "email": "carel.combrink@gmail.com",
        "time": "Tue Nov 11 13:56:57 2025 +0000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Nov 20 00:01:57 2025 +0100"
      },
      "message": "Also skip the type_hints and enum tests\n"
    },
    {
      "commit": "9f96b485f78b9d5405c57b354b85e99d222646f9",
      "tree": "683469b52845a6401975ed02627d19e7ba620ca6",
      "parents": [
        "f2534ad343d165ec37201f635002bcb007ba16b3"
      ],
      "author": {
        "name": "Carel Combrink",
        "email": "carel.combrink@gmail.com",
        "time": "Tue Nov 11 13:36:06 2025 +0000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Nov 20 00:01:57 2025 +0100"
      },
      "message": "Skip ssl tests\n\n- See https://issues.apache.org/jira/browse/THRIFT-5901\n"
    },
    {
      "commit": "f2534ad343d165ec37201f635002bcb007ba16b3",
      "tree": "74af7b6d76fd6edec40dba562fd71259979ee32b",
      "parents": [
        "eec3fbb10df4e2be89d00f5b5c03b1043bc8bf78"
      ],
      "author": {
        "name": "Carel Combrink",
        "email": "carel.combrink@gmail.com",
        "time": "Tue Nov 11 12:51:21 2025 +0000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Nov 20 00:01:57 2025 +0100"
      },
      "message": "Pin python building also to 3.13\n\n- No need for the check in the step any more since not supporting python 2\n"
    },
    {
      "commit": "eec3fbb10df4e2be89d00f5b5c03b1043bc8bf78",
      "tree": "516d4e02d4c0fda5a84a5129881d07bfa3abdf27",
      "parents": [
        "7770d27499b2e8b6ace652275617a006ee02c829"
      ],
      "author": {
        "name": "Carel Combrink",
        "email": "carel.combrink@gmail.com",
        "time": "Tue Nov 11 12:31:11 2025 +0000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Nov 20 00:01:57 2025 +0100"
      },
      "message": "Also use the 0.16 file for the makefile\n\n- Same as per the cmake side\n"
    },
    {
      "commit": "7770d27499b2e8b6ace652275617a006ee02c829",
      "tree": "7f7e21713a490b853a3d27ca4cd3a76c42884190",
      "parents": [
        "f9449eacfbdbe150640df46c248393c64f17fce4"
      ],
      "author": {
        "name": "Carel Combrink",
        "email": "carel.combrink@gmail.com",
        "time": "Tue Nov 11 14:07:19 2025 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Nov 20 00:01:57 2025 +0100"
      },
      "message": "Put back the actual python tests\n"
    },
    {
      "commit": "f9449eacfbdbe150640df46c248393c64f17fce4",
      "tree": "bf1bced6a6c85c2a84161f5c9ea81328007e9821",
      "parents": [
        "cdd8e3b1e8643812c96e9f0298e62d09cb814d4d"
      ],
      "author": {
        "name": "Carel Combrink",
        "email": "carel.combrink@gmail.com",
        "time": "Tue Nov 11 08:33:41 2025 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Nov 20 00:01:57 2025 +0100"
      },
      "message": "Try to force python version\n\n- The change in find_package favours the latest Python\n- Force cmake to use the one specified\n- Put back the echo again since it is needed\n"
    },
    {
      "commit": "cdd8e3b1e8643812c96e9f0298e62d09cb814d4d",
      "tree": "47a6d19adf04067c83a6291bf780bb393b90b124",
      "parents": [
        "3adca0ecfee7dcb70f1bdf844050b5d02ed61d76"
      ],
      "author": {
        "name": "Carel Combrink",
        "email": "carel.combrink@gmail.com",
        "time": "Mon Nov 10 15:16:18 2025 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Nov 20 00:01:57 2025 +0100"
      },
      "message": "Print Python version\n\n- And add message if interpreter not found\n- Remove the QUIET to get some idea of what cmake is doing\n- Trying to debug issue on Appveyor\n"
    },
    {
      "commit": "3adca0ecfee7dcb70f1bdf844050b5d02ed61d76",
      "tree": "7f020f754140e81a04089da95ff0d21a262ee914",
      "parents": [
        "eae1094d399e6d96a76b87ae98686a06dc11db5b"
      ],
      "author": {
        "name": "Carel Combrink",
        "email": "carel.combrink@gmail.com",
        "time": "Mon Nov 10 14:56:54 2025 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Nov 20 00:01:57 2025 +0100"
      },
      "message": "Missed actually using the new variables from the new calls to get Python\n"
    },
    {
      "commit": "eae1094d399e6d96a76b87ae98686a06dc11db5b",
      "tree": "b6ca3336690369186df0575799ba706cb30bd616",
      "parents": [
        "11c960848c86583c85c22cb5e4c50e23068f0435"
      ],
      "author": {
        "name": "Carel Combrink",
        "email": "carel.combrink@gmail.com",
        "time": "Mon Nov 10 14:19:48 2025 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Nov 20 00:01:57 2025 +0100"
      },
      "message": "Use the v0.16 thrift for type_hints also\n\n- Full UUID support not added and this seems to work for some cases but not all, thus removing until full UUID is added\n"
    },
    {
      "commit": "11c960848c86583c85c22cb5e4c50e23068f0435",
      "tree": "720090ee58d577c438bcc64b6062d15c5b2b9374",
      "parents": [
        "5c22d91b435341324e23dc505fe26850ddf3485e"
      ],
      "author": {
        "name": "Carel Combrink",
        "email": "carel.combrink@gmail.com",
        "time": "Mon Nov 10 14:07:50 2025 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Nov 20 00:01:57 2025 +0100"
      },
      "message": "Add option to search the local lib path\n\n- Locally and in Windows actions the second option is needed\n"
    },
    {
      "commit": "5c22d91b435341324e23dc505fe26850ddf3485e",
      "tree": "f9d4382eb8765eb66b8663238f79810c99f684ec",
      "parents": [
        "9aac8ad7aadd7446309dc6d756158cc54c68fe2d"
      ],
      "author": {
        "name": "Carel Combrink",
        "email": "carel.combrink@gmail.com",
        "time": "Mon Nov 10 14:03:02 2025 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Nov 20 00:01:57 2025 +0100"
      },
      "message": "Fix collection test\n\n- collections.abc was added in 3.3 collections.Hashable removed in 3.10\n"
    },
    {
      "commit": "9aac8ad7aadd7446309dc6d756158cc54c68fe2d",
      "tree": "37e2e91fb060a62263b16d31a863c3b51d42153d",
      "parents": [
        "23e29d67f443e8bc1a04120d8b004e9e7b210066"
      ],
      "author": {
        "name": "Carel Combrink",
        "email": "carel.combrink@gmail.com",
        "time": "Mon Nov 10 14:02:40 2025 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Nov 20 00:01:57 2025 +0100"
      },
      "message": "Fix call to deprecated test methods\n\n- Deprecated in Python 3.2 and removed in 3.11\n"
    },
    {
      "commit": "23e29d67f443e8bc1a04120d8b004e9e7b210066",
      "tree": "d7c4e4431870e5c3b27154a1ab7cf8101b038238",
      "parents": [
        "d6fc79122b7dce9731033b86cc54b2de07e6fa43"
      ],
      "author": {
        "name": "Carel Combrink",
        "email": "carel.combrink@gmail.com",
        "time": "Mon Nov 10 14:00:18 2025 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Nov 20 00:01:57 2025 +0100"
      },
      "message": "FIx cmake warning on CMP0148\n\n- find_package(PythonInterp) and find_package(PythonLibs) were deprecated in 3.12 and removed in 3.27\n- The project minimum is at 3.16 already\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": "90ba80427dd1b65af846717fd5c16fdcb9ab4078",
      "tree": "72af5e1b3d197d88ae5bfd7cbfabf75c7aaa916e",
      "parents": [
        "cfc460213187ed9849c5e56c229668eb80859d50"
      ],
      "author": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Mon Apr 04 13:17:57 2022 -0400"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Nov 19 17:41:42 2025 +0100"
      },
      "message": "THRIFT-5546: automate pypi publishing [ci skip]\n\nWhen a pre-release is created on GitHub for the repo it will publish\nto the TestPyPI service, and if that pre-release is promoted to a\nrelease, it will publish to the PyPI (real) service.\n"
    },
    {
      "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": "f17d36cea582b79d3798c2be9520146d7a3fb0af",
      "tree": "4f18128713c7fa93662f60fe45dca4bfc34cb0db",
      "parents": [
        "52df9d7060387276cf0a5e2af1b4e0660183b38b"
      ],
      "author": {
        "name": "sbrandprog",
        "email": "sbrandprog@gmail.com",
        "time": "Sun Aug 24 17:49:35 2025 +0300"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Nov 19 17:35:26 2025 +0100"
      },
      "message": "Expose thriftnb cmake target\nClient: cpp\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": "c0caee3847eab836b16c347d9ec9895348ceda71",
      "tree": "7c3cff03d062768a54013d8ef2a41ec85c966bad",
      "parents": [
        "17c8b838e1ee1fbcedf8f7b0d16e93380a547b03"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Nov 17 15:22:30 2025 +0000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Nov 19 17:20:37 2025 +0100"
      },
      "message": "Bump js-yaml\n\nBumps  and [js-yaml](https://github.com/nodeca/js-yaml). These dependencies needed to be updated together.\n\nUpdates `js-yaml` from 4.1.0 to 4.1.1\n- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1)\n\nUpdates `js-yaml` from 3.13.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/4.1.0...4.1.1)\n\n---\nupdated-dependencies:\n- dependency-name: js-yaml\n  dependency-version: 4.1.1\n  dependency-type: indirect\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": "17c8b838e1ee1fbcedf8f7b0d16e93380a547b03",
      "tree": "42e9aea26a1ad731cc1b1583dde3a98e4af0d0b6",
      "parents": [
        "0e4abab35a41206b9b7260adbb9c1af1bb3bb434"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sat Nov 01 06:01:40 2025 +0000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Nov 19 17:20:13 2025 +0100"
      },
      "message": "Bump actions/upload-artifact from 4 to 5\n\nBumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 5.\n- [Release notes](https://github.com/actions/upload-artifact/releases)\n- [Commits](https://github.com/actions/upload-artifact/compare/v4...v5)\n\n---\nupdated-dependencies:\n- dependency-name: actions/upload-artifact\n  dependency-version: \u00275\u0027\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "0e4abab35a41206b9b7260adbb9c1af1bb3bb434",
      "tree": "209ecbbd6e8494e9be5d65a6b415094e67a8b3b0",
      "parents": [
        "87079492f8005409b5c985e0b1782841f54fc9fc"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sat Nov 01 06:01:43 2025 +0000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Nov 19 17:19:57 2025 +0100"
      },
      "message": "Bump actions/download-artifact from 5 to 6\n\nBumps [actions/download-artifact](https://github.com/actions/download-artifact) from 5 to 6.\n- [Release notes](https://github.com/actions/download-artifact/releases)\n- [Commits](https://github.com/actions/download-artifact/compare/v5...v6)\n\n---\nupdated-dependencies:\n- dependency-name: actions/download-artifact\n  dependency-version: \u00276\u0027\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "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": "822671218dc7df11d7e1d5b100cb81baba97c757",
      "tree": "3198a7adf888d20a75ce341f93e937a5df5a5dbc",
      "parents": [
        "2f214c28d89a0199a088a3acd0c16b3c6d99fb72"
      ],
      "author": {
        "name": "Carel",
        "email": "Carel.combrink@gmail.com",
        "time": "Sat Nov 15 09:08:21 2025 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Nov 14 23:08:21 2025 -0800"
      },
      "message": "Mark the go-java SSL failures as known (#3237)\n\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": "ed55a18c30cf1ffdf793fcde5afae61f0f4c02cf",
      "tree": "2a3a6eeab694af499381e0a61f7200b2da083223",
      "parents": [
        "b08ae57c318d8188d9b7d5391d6fb9d32aa8f75f"
      ],
      "author": {
        "name": "Carel",
        "email": "Carel.combrink@gmail.com",
        "time": "Fri Nov 14 10:54:52 2025 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Nov 14 16:54:52 2025 +0800"
      },
      "message": "Remove kotlin cross tests (#3236)\n\n- They have been failing for months now without any actions\n- The red builds have already desensitized the project to checking for failures"
    },
    {
      "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"
    }
  ],
  "next": "652915434015ccefd2117774e27896f32a2ce8fa"
}
