)]}'
{
  "log": [
    {
      "commit": "2e3afbe577360ec09f90f24351c860908f0d7a4f",
      "tree": "cca67cb5573188566e294b86283e05627bab8b0b",
      "parents": [
        "be155ae30c44979430858a36ab6e44e7b103d76a"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed Apr 08 00:05:45 2026 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed Apr 08 00:05:45 2026 +0200"
      },
      "message": "branch for release\n"
    },
    {
      "commit": "3f81e22d4a0f61db24d6baadb21ff1c1f2283950",
      "tree": "ee3414326807584099c6f9cdb9a1a5b6a92c3165",
      "parents": [
        "40d3e78144f446341e328d734d86768e97d31480"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Wed Dec 17 10:17:37 2025 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Apr 01 01:38:03 2026 +0200"
      },
      "message": "Updated README.md for Ruby [skip ci]\n"
    },
    {
      "commit": "9ffc337cadc3cd4b77bb1b54bf9fa97b94831e54",
      "tree": "fec1c00b0e2e935dc8d60ba237d8a507eb958a5c",
      "parents": [
        "67b4ec7363680a4831735ab8dc00b0b2059b5961"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Wed Mar 11 21:02:28 2026 -0400"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Sat Mar 21 19:52:46 2026 +0100"
      },
      "message": "Fix Ruby client seqid handling\n"
    },
    {
      "commit": "3b0ab4dfa16ac0dad477db836c60186955f15418",
      "tree": "230b742e3a52b56d09c4e6beaf3ca68621a01a3a",
      "parents": [
        "dfeab8d57f41c8ca52269181a7be0092383d94ab"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Wed Mar 11 17:46:48 2026 -0400"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Tue Mar 17 22:06:26 2026 +0100"
      },
      "message": "Enforce consistent whitespaces around blocks, equal signs, and in parameters in Ruby code\n"
    },
    {
      "commit": "5b5fd3cd62a47338ea46c43655f0c2270fce41ad",
      "tree": "d9f4e3e14417ad694b096b142db62b5c838ce7a5",
      "parents": [
        "0564434e0b85a2d7487f1c6f0b129d9697e1134a"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Wed Mar 11 19:50:50 2026 -0400"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Tue Mar 17 00:18:42 2026 +0100"
      },
      "message": "Fix crashes caused by unchecked memory allocation in Ruby library\n"
    },
    {
      "commit": "604179840b49853201cb8b65997b29d165c4f8b5",
      "tree": "79f3a5331439155b3c6671a75146f116f18d4043",
      "parents": [
        "a715bdffaa805baae5b0b994231556b566ca326c"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Sat Mar 14 02:12:29 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 13 23:12:29 2026 -0700"
      },
      "message": "Implemented Ruby fuzzing (#3339)\n\nThis PR implements fuzzing for Ruby library using https://github.com/trailofbits/ruzzy, a coverage-guided fuzzer for pure Ruby code and Ruby C extensions based on libFuzzer. Implemented binary, compact, and JSON protocol fuzzers.\n\nA separate PR will follow to address OOM and a crash caused by unchecked memory allocation in structs (Edit: #3340)."
    },
    {
      "commit": "f5c80a41d57f46283ee858f445f2e0a84b62f1dd",
      "tree": "f9efe38b47ee8cd9ec430ca6c00d4e457193e585",
      "parents": [
        "df22bb1b1b193c2d9e1ebc2e614b22830dbb7abc"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Sun Mar 08 19:09:43 2026 -0400"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Mar 11 22:21:53 2026 +0100"
      },
      "message": "Enforce consistent emtpy lines and trailing whitespaces in Ruby code\n"
    },
    {
      "commit": "df22bb1b1b193c2d9e1ebc2e614b22830dbb7abc",
      "tree": "f6e11adbd6d1bfdf05f36e12e4b7035463b29652",
      "parents": [
        "45b6935a80859016862080f97678ac415e758bed"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Sat Dec 20 13:41:21 2025 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Mar 11 08:47:12 2026 +0100"
      },
      "message": "Added Rubocop harness to enforce Ruby code style\n"
    },
    {
      "commit": "8a358b8c94bb960fe66c3ad39e6d70fef1ef6439",
      "tree": "9bcef692a80479c6a7ff0c162a00c81ee4f98e51",
      "parents": [
        "5cc10222d0e1268a5a70be8d8627bc03ec2e42ad"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Sun Feb 22 12:11:12 2026 +0530"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Feb 25 22:49:02 2026 +0100"
      },
      "message": "Use read_nonblock instead of readpartial to account for SSL socket buffer\n"
    },
    {
      "commit": "5cc10222d0e1268a5a70be8d8627bc03ec2e42ad",
      "tree": "2fdc001a8eeabc5df0d220a20941492b474fac3d",
      "parents": [
        "d7c06f68aff53a01f28bdf2fb62ac5af32b9b4e3"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Mon Nov 24 18:01:10 2025 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Feb 25 22:48:23 2026 +0100"
      },
      "message": "Constants demo\n"
    },
    {
      "commit": "32776c0f46f5fd79b296391d66236c23b20af072",
      "tree": "07867002f4461ef152060deb8a4e07dd2134102f",
      "parents": [
        "ca0740a0b9cd0a0ddeecdcdaf655f8b336c5ca75"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Tue Feb 10 12:25:07 2026 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Sat Feb 21 10:15:18 2026 +0100"
      },
      "message": "Make sure we always throw ProtocolException(INVALID_DATA) in Ruby\n"
    },
    {
      "commit": "93b1b449d93b747e7b79cfc270ce492f7f4a34e4",
      "tree": "fbc33e7000e7047f5f1e072584abe11b72869e5c",
      "parents": [
        "acbcf10d91cdea4b5d8c855b8f27acd890ffecc8"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Feb 19 22:55:01 2026 +0000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Fri Feb 20 00:38:10 2026 +0100"
      },
      "message": "Bump rack from 2.2.21 to 2.2.22 in /lib/rb\n\nBumps [rack](https://github.com/rack/rack) from 2.2.21 to 2.2.22.\n- [Release notes](https://github.com/rack/rack/releases)\n- [Changelog](https://github.com/rack/rack/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/rack/rack/compare/v2.2.21...v2.2.22)\n\n---\nupdated-dependencies:\n- dependency-name: rack\n  dependency-version: 2.2.22\n  dependency-type: direct:development\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "697910f23fc5b21d21fad20499e2a43dd0496092",
      "tree": "a35e28fe3df6296c57edc01fa2f4fdfcf7d202f5",
      "parents": [
        "d24b8a0240d49ccbbb318ea7562d0894a410dda7"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Fri Feb 13 14:12:43 2026 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Fri Feb 20 00:15:18 2026 +0100"
      },
      "message": "Fixed en error preventing Thrift::NonblockingServer from working with SSL\n"
    },
    {
      "commit": "d24b8a0240d49ccbbb318ea7562d0894a410dda7",
      "tree": "6414282010beaaa4b01c7438f403fb2e5c7c7a5d",
      "parents": [
        "ded241d73207eed94417bb2a457ea03506646480"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Mon Dec 01 18:41:20 2025 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Fri Feb 20 00:14:50 2026 +0100"
      },
      "message": "Cleaned up code supporting Ruby \u003c 2.0\n"
    },
    {
      "commit": "67bfb29af0837eefd32447c186d22aa45b2f1869",
      "tree": "535f17d57dab9d7d73f8db45231374eaa076adda",
      "parents": [
        "84554fa31af2b04a5096546ef43d4f70c6f01506"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Wed Jan 28 11:23:50 2026 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Sun Feb 08 22:09:26 2026 +0100"
      },
      "message": "Implemented header protocol for Ruby client library\n"
    },
    {
      "commit": "75a287728a8f68fb76dacc81cfe8d97b81afc362",
      "tree": "c24734f688c1888cfec90a47509eed428f0c4d37",
      "parents": [
        "e9ac8e3f2603e0cd006c9395e03c03eddfff1aca"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Wed Dec 17 17:07:27 2025 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Jan 28 01:52:06 2026 +0100"
      },
      "message": "Added a special no-extension build to test the code paths without native extensions\n"
    },
    {
      "commit": "e9ac8e3f2603e0cd006c9395e03c03eddfff1aca",
      "tree": "6ad1464b3baa316823e93f8b3c48c9fe85af8ac8",
      "parents": [
        "ab178fbf24e88bba05ae2b8f1f9876d783e934f6"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Wed Nov 19 23:33:23 2025 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Jan 28 01:50:40 2026 +0100"
      },
      "message": "Added UUID support in Ruby library\n"
    },
    {
      "commit": "6e5e18180bfe110921d1b20da31b24200819265f",
      "tree": "410f245db6d2146b1c63747279e9d0627e23e722",
      "parents": [
        "c3ced62289cff9c0c9cd537d902f00fae894b22e"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Wed Nov 19 18:20:45 2025 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Jan 22 01:41:32 2026 +0100"
      },
      "message": "Added Ruby library tests to the GitHub workflow\n"
    },
    {
      "commit": "4413220324d7694f8db128cd989822ff728df030",
      "tree": "503d60c005d3855a566772bff0fea215ada10618",
      "parents": [
        "7eeb1c1665806f08685a6233eddd2cce0eb7ae03"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Tue Dec 16 18:59:18 2025 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Mon Jan 12 00:46:55 2026 +0100"
      },
      "message": "Fixed make check for Ruby library\n"
    },
    {
      "commit": "0d18fb2e97a00fc56997fa059d6819e54cdff64b",
      "tree": "5952e8dc1cdb7355f41cdb6cc4267c43a0b914f6",
      "parents": [
        "098c82722bd8bf021f21eb2fdd80a69a8c4b185b"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Sat Dec 20 12:13:46 2025 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Jan 07 22:40:45 2026 +0100"
      },
      "message": "Only export Init_thrift_native function from the Ruby binary extension\n"
    },
    {
      "commit": "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": "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": "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": "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": "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": "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": "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": "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": "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": "c79d1cc179e5cc0792d012961e32d5acebc6eb5b",
      "tree": "a683fe7bcb26147871cb85bed16ef74c29865a45",
      "parents": [
        "e402bb05e45145db0e78f459e07bde446662b04c"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed May 14 22:08:35 2025 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed May 14 22:08:35 2025 +0200"
      },
      "message": "Branch 0.22.0 created\n"
    },
    {
      "commit": "1e843418baa3e89d16e9f99dc3ba1f5cabde9d65",
      "tree": "daebafb80d2ee9904f00ca40dd5efd8776b3b31b",
      "parents": [
        "df626d768a87fe07fef215b4dde831185e6929d7"
      ],
      "author": {
        "name": "Jean Boussier",
        "email": "jean.boussier@gmail.com",
        "time": "Wed Oct 13 12:36:28 2021 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed May 14 21:16:22 2025 +0200"
      },
      "message": "[ruby] Fix shorten-64-to-32 errors on macOS\n\nSince the extconf.rb pass `-Werror`, the gem won\u0027t compile.\n"
    },
    {
      "commit": "ef199ccbc2a56831bbacc436fff1de49fa7aac16",
      "tree": "ec1b9ec9588c6e1e5f6a4655deacd111f2556448",
      "parents": [
        "467c6bdcb14f1fcdfb416df92b76ca9e5abbdc90"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue Sep 03 01:28:31 2024 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue Sep 03 01:33:19 2024 +0200"
      },
      "message": "bump version number\n"
    },
    {
      "commit": "b429cc9fa197b9da45f98f14efcf03bf84f02307",
      "tree": "31640e64a3c921c94555ec55a921656cd34d3f2b",
      "parents": [
        "4930caca8beb340b6543dd27856d3699dce40e54"
      ],
      "author": {
        "name": "Nicholas La Roux",
        "email": "nicholas.laroux@shopify.com",
        "time": "Fri May 17 11:09:09 2024 +0900"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Fri May 17 22:56:02 2024 +0200"
      },
      "message": "Remove deprecated has_rdoc from gemspec\n"
    },
    {
      "commit": "63f04583e389e7afee330f0341e045a73cdb1979",
      "tree": "58bc0d1ce220eb8e0c12844543a745d23a68eb7f",
      "parents": [
        "f6972f1a29cb3c94929f5eecef816e65bed755ef"
      ],
      "author": {
        "name": "Thomas",
        "email": "thomasbruggink@hotmail.com",
        "time": "Thu Mar 21 22:51:07 2024 +0900"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Tue Apr 02 14:09:27 2024 +0200"
      },
      "message": "Manually remove $(BUILT_SOURCES) since no-dist-built-sources doesnt work\n"
    },
    {
      "commit": "75cf93ed22264fecaa79e82f05fa9f02d49fc58b",
      "tree": "ad7e483b593040fadd747648624c844ceeef3b58",
      "parents": [
        "0c637d7aa553a52b11bf92855448a20914d59817"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Feb 04 14:50:37 2024 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Feb 04 14:50:37 2024 +0100"
      },
      "message": "bump version number\n"
    },
    {
      "commit": "0d5b4f9fa1e9b69c1f8da9a68f2a7eb2c734662b",
      "tree": "31b8d8bbe69b3b4270481467224252f7547b4f46",
      "parents": [
        "bccca9301dedd6403062ef6be4c56533f889e5b5"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat Jul 08 12:49:11 2023 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat Jul 08 12:49:11 2023 +0200"
      },
      "message": "created reöease branch 0.19.0\n"
    },
    {
      "commit": "0335450be47e7998cfc3b8ed3a0ff7fc2c360493",
      "tree": "b35d2d5ed3723e7df348099933c35e22fbb502d1",
      "parents": [
        "4b8bf783ca70b4559aae92babf1606f945265543"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed Jun 21 23:01:30 2023 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Jun 22 22:20:30 2023 +0200"
      },
      "message": "misc dependabot alerts: java, dart, ruby\n"
    },
    {
      "commit": "c6fd86d9f2f15665dd1f3b87e39ed7580d8b25dd",
      "tree": "b60156225f4e8793aee3c225c4ca7554d0da41fb",
      "parents": [
        "4eee6815276741a0381063b9e139a4938f808711"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Feb 06 23:42:52 2023 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Feb 06 23:42:52 2023 +0100"
      },
      "message": "bump version number\n"
    },
    {
      "commit": "5ef174b5c1ab1ddd32f430ccacbad6d94e8dc452",
      "tree": "1c96014046608da926ace02d37fe4b1c9337716f",
      "parents": [
        "22aa3e52860fb7c2248af99715b9235ca4723af0"
      ],
      "author": {
        "name": "zeshuai007",
        "email": "51382517@qq.com",
        "time": "Sat Nov 07 15:45:11 2020 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Tue Oct 25 22:42:09 2022 +0200"
      },
      "message": "Implement Validate message reply seq ids\n"
    },
    {
      "commit": "f066d84ffb7fe2eb0dc3b7e7cd0d0417a1ae7963",
      "tree": "d47baa7d0dea62a354eb0ededf77715d6cf7aa33",
      "parents": [
        "3f4fa2947dc6e049e0f4748bdb6142b0c4673164"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Jun 13 23:37:25 2022 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Sep 05 22:04:22 2022 +0200"
      },
      "message": "Replace ThriftTest.thrift with v0.16/ThriftTest.thrift to allow for merging the partially completed uuid implementation to master\n"
    },
    {
      "commit": "c75646a359e4bb38ff11e4b7255a3ad49ab3319c",
      "tree": "754e37fc0f25d7e96b0d809b83f7e2eb05941445",
      "parents": [
        "22f6a8a3c879175e18ce95f88a393f34ff8f158c"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue Aug 30 22:54:32 2022 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue Aug 30 23:55:34 2022 +0200"
      },
      "message": "version bump\n"
    },
    {
      "commit": "4646a3557b822c3893dc6773882a689118b77611",
      "tree": "e1ab79fd629d25e69ab2a8283a6fcae9ac0002b6",
      "parents": [
        "b90f2bcb8696e2da40aeadf6e6f3eb4904f868e5"
      ],
      "author": {
        "name": "Christopher Tubbs",
        "email": "ctubbsii@apache.org",
        "time": "Tue May 24 05:19:41 2022 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 24 05:19:41 2022 -0400"
      },
      "message": "Remove execute bit from plain text files in git (#2611)\n\nTrivially change file mode from 755 to 644 for files in git that\r\nshouldn\u0027t be marked as executable. These were probably marked as\r\nexecutable due to some contributors developing on Windows using a\r\nfilesystem that doesn\u0027t support POSIX file modes, or aggressively marks\r\neverything as executable."
    },
    {
      "commit": "6868ebbb31cf32dbde018b03831d167565ba51d8",
      "tree": "bb4538c411b8f91e73529979584d0b819b23c16d",
      "parents": [
        "7a6829531f00f7e95f904d5794d632acee62ddf0"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Jan 20 21:02:02 2022 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Jan 20 21:02:02 2022 +0100"
      },
      "message": "Release 0.16.0\n"
    },
    {
      "commit": "f7e6c654bde5d9832bede2b48b460c3e1bbbbb92",
      "tree": "0ea81a3df907866d7b24fde50ca9c439962f8b7d",
      "parents": [
        "2c78047fcbd2783e88cab0ebc7245598695477ae"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue Aug 03 22:21:05 2021 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue Aug 03 22:21:05 2021 +0200"
      },
      "message": "bump version number\n"
    },
    {
      "commit": "cc70b4e89a1579559bc50fb8216c471a5c550926",
      "tree": "874e1ad0c05bed7e723a3426ceaf9425f2531140",
      "parents": [
        "de6f61aed04e4de8e51ae44fa634451e77f17a52"
      ],
      "author": {
        "name": "Stan Hu",
        "email": "stanhu@gmail.com",
        "time": "Thu Mar 11 03:49:57 2021 +0530"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Mar 11 22:41:44 2021 +0100"
      },
      "message": "THIRFT-5367 Fix crashes when using Ruby compaction GC\nClient: rb\nPatch: Stan Hu\n\nThis closes #2347\n"
    },
    {
      "commit": "3fc0b8d061fb1adcae49862e0c63ce94f0a0ee0f",
      "tree": "2373cb9dd0136f0054257eaa10041a20de2a2052",
      "parents": [
        "b5fe1dbc0cac81ab99ec5d71de70f4389b234888"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Feb 11 23:17:45 2021 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Feb 11 23:17:45 2021 +0100"
      },
      "message": "Version number aligned to 0.15.0\n"
    },
    {
      "commit": "45a94594ff50ad51a18f6ad1900209e978e5921b",
      "tree": "1e071e74838edbc6a5ceba2adf8b618af3617c25",
      "parents": [
        "bee4f2fd69db32621addd9353ab0aa2e2ba94349"
      ],
      "author": {
        "name": "Kengo Seki",
        "email": "sekikn@apache.org",
        "time": "Sat Jan 11 17:52:28 2020 +0900"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat Jan 11 12:57:53 2020 +0100"
      },
      "message": "THRIFT-5061: Pin Ruby\u0027s rack version to 2.0.8\nClient: ruby\nPatch: Kengo Seki\n\nThis closes #1980\n"
    },
    {
      "commit": "8ae80a7f8466e5c340388fcb1d797dc3779d9f80",
      "tree": "aa33c18523bf959c928eef3d5043ec2f78489ca1",
      "parents": [
        "261cad3417841a47d3f8caf46f344f0af7d41511"
      ],
      "author": {
        "name": "Grégoire Seux",
        "email": "g.seux@criteo.com",
        "time": "Thu Nov 07 11:33:58 2019 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Nov 21 22:43:21 2019 +0100"
      },
      "message": "THRIFT-4999: Raise proper exception on transport error\nClient: ruby\nPatch: Grégoire Seux\n\nThis closes #1924\n\nBefore this patch, any error on the http layer was ignored and usually\nseen by the user as ProtocolException instead of TransportException\n"
    },
    {
      "commit": "e02559fd46b07035a4a41c9d2604765756e3745b",
      "tree": "ce35eb9b933d8dac1633a62768eeb95cf368abb2",
      "parents": [
        "a3fa0d928f7647aa6007e16ac81d76a3b5183d2c"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Oct 17 00:11:59 2019 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Oct 17 20:31:24 2019 +0200"
      },
      "message": "bump version\n\nThis closes #1899\n"
    },
    {
      "commit": "5a8cd9d1fbb8517915d80b851b4b3434f4ff5ba5",
      "tree": "e5bf7af32291c4dcddfb027647fa664a54cc9ac8",
      "parents": [
        "d1ccd0a08fd82a1c58acd308fe533306362a73be"
      ],
      "author": {
        "name": "Kengo Seki",
        "email": "sekikn@apache.org",
        "time": "Sun Oct 06 00:13:14 2019 +0900"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Oct 06 12:17:19 2019 +0200"
      },
      "message": "THRIFT-4971: Fix lib/rb/spec/union_spec.rb so that CI succeeds\nClient: Ruby\nPatch: Kengo Seki\n\nThis closes #1891\n"
    },
    {
      "commit": "dbc1f8def5018ce5d85d38b9875c6c6b6b424478",
      "tree": "0011127f2edd9221f973eb157438bbd11c0b74d2",
      "parents": [
        "3ca88065dfdb24c5bad6fbd1e3a7e01812628d3b"
      ],
      "author": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Thu Feb 14 16:46:38 2019 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 14 16:46:38 2019 -0500"
      },
      "message": "THRIFT-4024, THRIFT-4783: throw when skipping invalid type (#1742)\n\n* THRIFT-4024: make c_glib throw on unsupported type when skipping\r\n* THRIFT-4783: throw on invalid skip (py)\r\n* THRIFT-4024: make cpp throw on unsupported type when skipping\r\n* THRIFT-4024: uniform skip behavior on unsupported type\r\n"
    },
    {
      "commit": "b96c43892a9e89dfa61834505bb25357e80287da",
      "tree": "02bbf30d80e6f6ef8c76bc67ad20b90331b6de9d",
      "parents": [
        "8935c98046dbbdd36ede73c1525f1be9df8da5cd"
      ],
      "author": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Thu Jan 24 17:45:07 2019 -0500"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Fri Jan 25 23:33:54 2019 -0500"
      },
      "message": "THRIFT-4717: fix up make clean with autoconf\n"
    },
    {
      "commit": "8935c98046dbbdd36ede73c1525f1be9df8da5cd",
      "tree": "478212d599d7d7bdb0404bf4b1a86b75be305ea7",
      "parents": [
        "129bb3e10d7bf1a1965d31cb8f30c7ccd3f96ecb"
      ],
      "author": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Fri Jan 25 00:41:17 2019 -0500"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Fri Jan 25 23:33:54 2019 -0500"
      },
      "message": "THRIFT-4753: re-version master to next release 0.13.0\n"
    },
    {
      "commit": "414f9a5bf6372844274b0adee7263f4d03ed8e70",
      "tree": "67409e9e308a684781aec9cbba374d327d3377ce",
      "parents": [
        "abf3aa5810bc641f566b95b9748dabe2284baafb"
      ],
      "author": {
        "name": "Nephi Allred",
        "email": "nephi.allred@mx.com",
        "time": "Wed Jan 02 16:34:51 2019 -0700"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Fri Jan 04 21:33:31 2019 -0500"
      },
      "message": "Skip native extension for jruby\n"
    },
    {
      "commit": "c3375d9e434b5740808813138b28b70517e82c7d",
      "tree": "db8f0e81129461b1ddc6e7a951cbb5667ca15634",
      "parents": [
        "a139082755369611ed243376ec3c4161452369fc",
        "384647d290e2e4a55a14b1b7ef1b7e66293a2c33"
      ],
      "author": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Sun Dec 30 11:06:00 2018 -0500"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Sun Dec 30 11:06:00 2018 -0500"
      },
      "message": "Merge remote-tracking branch \u0027origin/0.12.0\u0027 into consume-0.12.0\n"
    },
    {
      "commit": "384647d290e2e4a55a14b1b7ef1b7e66293a2c33",
      "tree": "f876c79d4945d64c1eb8fb55291ba96a03af6dae",
      "parents": [
        "9b75e4fe745a9b08e6ccdc0998ec7a69272f5b4c"
      ],
      "author": {
        "name": "jfarrell",
        "email": "jfarrell@apache.org",
        "time": "Tue Oct 16 22:36:46 2018 -0400"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Tue Dec 18 20:24:34 2018 -0500"
      },
      "message": "Version 0.12.0\n"
    },
    {
      "commit": "b5471f63cb4bb8e3b00835a9ca9e48ff76a3bb51",
      "tree": "9d7b878f13c399c80d7ee2e790b225bd2c3aafe4",
      "parents": [
        "d2f6f19bb8b79ecdbe705b5144ff64e91ac16f71"
      ],
      "author": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Sun Jun 10 15:55:12 2018 +0000"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Sun Jun 10 20:43:45 2018 +0000"
      },
      "message": "THRIFT-4289: fix ruby unit test compatibility for 2.4 Fixnum Integer handling\n"
    },
    {
      "commit": "b92ca5f22618fcdcad9a4c24cd1a8fe64418deda",
      "tree": "3c83daf54b43ec67ae10b36c2d85822ec2250c6d",
      "parents": [
        "b03d74992e453f24801e12dbb030ae384ec7e68a"
      ],
      "author": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Sat Jun 09 23:02:12 2018 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 09 23:02:12 2018 -0400"
      },
      "message": "THRIFT-4582: Fix Xenial CI build issues (#1563)\n\n* THRIFT-4582: fix xenial build issues\r\n\r\n* THRIFT-2913: fix Thrift::ThreadPoolServer should serve inside a thread on xenial\r\n\r\n* THRIFT-4478: Move Xenial up to dmd 2.075.1 as that is the new minimum\r\nversion that works since the changes for 2.080.0 went in.\r\n"
    },
    {
      "commit": "272470790ad6db791bd6f9db399b2cd2d5879f74",
      "tree": "dbe3b8e96a336e05b65887962219d30e6ac48a02",
      "parents": [
        "dab4529f730c033e1ac037e820176667f5c422fd"
      ],
      "author": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Thu Mar 22 20:50:23 2018 -0400"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Fri Mar 23 15:16:47 2018 -0400"
      },
      "message": "THRIFT-4342: update ruby tests to use rspec 3, updated all dependencies for ruby\nClient: rb\n"
    },
    {
      "commit": "9aaf295806d32eab5715b4f0681f7da9b64c1fa5",
      "tree": "1cfd4bc12341047a2e21da783e79437365a2ff57",
      "parents": [
        "22bd3450c6e97e348d64fb6a75171e8ced79d1e4"
      ],
      "author": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Tue Mar 20 15:06:08 2018 -0400"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Wed Mar 21 01:02:11 2018 -0400"
      },
      "message": "THRIFT-4358: add unix domain socket option to ruby cross tests\nClient: rb\n\nThis closes #1513\n"
    },
    {
      "commit": "52bf20c0daa0ba902421e6212be367cb294c43b3",
      "tree": "e08ce70c96285c89faa36383cd8b221b46e4bb83",
      "parents": [
        "b636ffb613ab49e0f037fbe696d28a4b17a72c5f"
      ],
      "author": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Tue Jan 23 19:12:03 2018 -0500"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Tue Jan 23 19:12:15 2018 -0500"
      },
      "message": "THRIFT-4472: fix ruby gemspec license declaration\nClient: rb\n"
    },
    {
      "commit": "ad238522946a69ebebb310e2e8e9479a3f6a613c",
      "tree": "15affeb45f6d202ba0f62b429d3b0381ded041a9",
      "parents": [
        "b56fc700d6ff3086c4704c5c4cae3c8ec2a06228"
      ],
      "author": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Sat Jan 13 19:52:31 2018 -0500"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Sun Jan 14 08:42:28 2018 -0500"
      },
      "message": "THRIFT-4344: some docker updates for xenial and for trusty to fix build issues\n"
    },
    {
      "commit": "1ce7a5b459c47d6c960850a8a97eacc53a851452",
      "tree": "276db637204ac0ffa4fbda99fc0d63f724b2f9fc",
      "parents": [
        "35f987d45b2d4e03f3047a923f40fbb54c9e67eb"
      ],
      "author": {
        "name": "James E. King, III",
        "email": "jking@apache.org",
        "time": "Thu Nov 30 08:39:17 2017 -0500"
      },
      "committer": {
        "name": "James E. King, III",
        "email": "jking@apache.org",
        "time": "Thu Nov 30 12:32:17 2017 -0500"
      },
      "message": "THRIFT-2913: fix random CI build failures in lib/rb test\n\u0027Thrift::ThreadPoolServer should serve inside a thread\u0027\nClient: rb\n\nThis closes #1429\n"
    },
    {
      "commit": "9a745aa4a9ac1098f0ea584d0f4e85ca1f04c964",
      "tree": "c361e8f92e51d305689e6f2ccf65473cc573ff47",
      "parents": [
        "5862099f371388b0d1c0cc8beb43efb17e017a99"
      ],
      "author": {
        "name": "Sho Nakatani",
        "email": "lay.sakura@gmail.com",
        "time": "Fri Apr 14 23:08:37 2017 +0900"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat May 13 00:28:32 2017 +0200"
      },
      "message": "THRIFT-4198 Ruby should log Thrift internal errors to global logger\nClient: Ruby\nPatch: Sho Nakatani \u003clay.sakura@gmail.com\u003e\n\nThis closes #1252\n"
    },
    {
      "commit": "117a5cca77c3994a62e0287f703232af44a48d9f",
      "tree": "5ce80bd8fac9417a551bf75b0021fe9315930ec6",
      "parents": [
        "5c3de6d3d28b94650486d8ae337af56c94e9e442"
      ],
      "author": {
        "name": "Jim Apple",
        "email": "jbapple-impala@apache.org",
        "time": "Wed Mar 29 20:39:36 2017 -0700"
      },
      "committer": {
        "name": "James E. King, III",
        "email": "jking@apache.org",
        "time": "Sat Apr 01 10:51:48 2017 -0400"
      },
      "message": "THRIFT-4138: Remove undefined behavior imported from Boost\nClient: C++\n\nThere is undefined behavior in boost::lexical_cast that was fixed in\nhttps://github.com/boostorg/lexical_cast/issues/21, but that fix is\nonly available in recent Boost releases. This patch removes all uses\nof lexical_cast instead.\n\nThat removes the last undefined behavior, so this patch also makes\nubsan.sh unconditionally fail on undefined behavior.\n\nThis closes #1232\n"
    },
    {
      "commit": "eacbd65f1d5aaae6cd2a4cdac89ffbba049f3558",
      "tree": "e394d3022111fa2d2e3ec8da665131338b9db936",
      "parents": [
        "a400c690eb4dc79b0dd89d7f159931487c856dae"
      ],
      "author": {
        "name": "John Thomas",
        "email": "thomas07@vt.edu",
        "time": "Tue Jul 12 08:06:19 2016 -0700"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Mon Sep 26 01:42:02 2016 +0900"
      },
      "message": "Ensuring that HTTP failures will clear the http transport outbuf var\n\nThis closes #1048\n"
    },
    {
      "commit": "04e6f62c8fc68a1e846544c45943aad76934ce56",
      "tree": "de87e5c9682ac231b2b273b8c9e5855f1a403e40",
      "parents": [
        "311c98455a9cb9070e9dad86a28f9c3ecbdf0a01"
      ],
      "author": {
        "name": "jfarrell",
        "email": "jfarrell@apache.org",
        "time": "Tue Sep 20 15:27:54 2016 -0400"
      },
      "committer": {
        "name": "jfarrell",
        "email": "jfarrell@apache.org",
        "time": "Tue Sep 20 15:27:54 2016 -0400"
      },
      "message": "THRIFT-1108: SSL support for the Ruby library\nClient: ruby\nPatch: Mansi Nahar\n\nAdd ssl support to ruby lib.\n"
    },
    {
      "commit": "d4eecda6b2f8b3b27a191605a054aa3bf79a4684",
      "tree": "63b9d85ebb03f1e41e19f8db54c34ff6628d723c",
      "parents": [
        "bf9fa905d22d2714670b5d492a319daf26f5a32c"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sun Sep 04 18:49:22 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sun Sep 04 18:49:22 2016 +0900"
      },
      "message": "THRIFT-3911 Loosen Ruby dev dependency version requirements\n\nThis closes #1074\n"
    },
    {
      "commit": "3fe8b0fe855ec9b7adfa3ac90e6c5dae53d79738",
      "tree": "0fcc8bd6aa86c2f0b74efdf1cf214c0daf18539c",
      "parents": [
        "f2b7a4805f321e53cdf64c7d2c0c9635dee74144"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Wed Mar 09 19:55:48 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Wed Mar 09 19:55:48 2016 +0900"
      },
      "message": "THRIFT-3729 Restrict rake version\n\nThis closes #939\n"
    },
    {
      "commit": "e1e09c7967aa7149ae291de9da744142e67a3806",
      "tree": "d221f213e348677db69e0fa7509355ac7628b8c6",
      "parents": [
        "0433d171f6722c47944caee6b81e8ed8c57be60a"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Thu Feb 18 01:03:07 2016 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Fri Feb 19 01:06:05 2016 +0900"
      },
      "message": "THRIFT-3641 Ruby client should try to connect to every result of getaddrinfo\nClient: Ruby\nPatch: Nobuaki Sukegawa\n\nThis closes #872\n"
    },
    {
      "commit": "051ed3c80da3e26f331e82e5605e81ecf1300f04",
      "tree": "9171a6ac4452b896dba64ce162c497495796664c",
      "parents": [
        "65d8564e908476f191404164c4db29a0a4434da5"
      ],
      "author": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Sun Jan 10 21:08:33 2016 +0100"
      },
      "committer": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Sun Jan 10 21:17:51 2016 +0100"
      },
      "message": "THRIFT-3127 rb: switch -recurse to --recurse\n"
    },
    {
      "commit": "5b15f8c55f8f26644f40a9ccbbf339f6f84dacd0",
      "tree": "e2c06f047af290ddd9681c4dfb6a2681ab4a23ba",
      "parents": [
        "d8ddb775e4330050e04cefa711f60250905978d3"
      ],
      "author": {
        "name": "Joe Ennever",
        "email": "joe@dwnld.me",
        "time": "Mon Aug 31 19:20:36 2015 +0000"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Mon Nov 09 00:02:23 2015 +0900"
      },
      "message": "THRIFT-3307 Raise an error when trying to serialize a union with an incorrect set_field\nClient: Ruby\nPatch: Joe Ennever\n\nThis closes #597\n"
    },
    {
      "commit": "8cd519f7a3b9436ae95049ee4299441306bdeb5c",
      "tree": "1c7ac1b21749e6ad1c8d1e8e1bb28df8527d0cae",
      "parents": [
        "56e5b9b01b5a033306d583cd2aec07a0dda3c9f5"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsukeg@gmail.com",
        "time": "Sat Oct 10 01:52:13 2015 +0900"
      },
      "committer": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Sun Oct 11 00:18:02 2015 +0200"
      },
      "message": "THRIFT-3374 Ruby TJSONProtocol fails to unescape string values\n\nThis closes #640\n"
    },
    {
      "commit": "123258ba60facd8581d868c71a543487b2acff3c",
      "tree": "5470f572ed148f86eff5280e80f17ceaa48ff2be",
      "parents": [
        "96409d9dfecd8213726ee83ff1ac40695f8eeeec"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri Oct 02 00:38:17 2015 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri Oct 02 00:38:17 2015 +0200"
      },
      "message": "THRIFT-3364 Fix ruby binary field encoding in TJSONProtocol\nClient: Ruby\nPatch: Nobuaki Sukegawa \u003cnsukeg@gmail.com\u003e\n\nThis closes #633\n"
    },
    {
      "commit": "b9257395509bc6fbcc2f77e0f9237e39f7ec1a7d",
      "tree": "d3e2947e03e5bc1c0994ea6804a8845f08dfb40a",
      "parents": [
        "ff4a8edd50621fb6aab7dbbf6968d4322700ed7d"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Sep 21 22:36:45 2015 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Sep 21 22:36:45 2015 +0200"
      },
      "message": "THRIFT-3335 Ruby server does not handle processor exception\nClient: Ruby\nPatch: Nobuaki Sukegawa \u003cnsukeg@gmail.com\u003e\n\nThis closes #612\n"
    },
    {
      "commit": "f13e431babd92f08f46cbc1f32da48965e1c5ca8",
      "tree": "56e09f2b648ea8459286971aa6be59a44eff149e",
      "parents": [
        "7860ee727a91d2f7e74a48c2048f7f7fc79a5d10"
      ],
      "author": {
        "name": "jfarrell",
        "email": "jfarrell@apache.org",
        "time": "Tue Aug 25 00:39:29 2015 -0400"
      },
      "committer": {
        "name": "jfarrell",
        "email": "jfarrell@apache.org",
        "time": "Tue Aug 25 00:39:29 2015 -0400"
      },
      "message": "THRIFT-3305: Missing dist files for 0.9.3 release candidate\nClient: build\nPatch: jfarrell\n\nAdds missing files to dist\n"
    },
    {
      "commit": "56d38fb913791f7df476471d3c0294849140964a",
      "tree": "4524eb28f89a84a29e5a7a1f3586e76947cafa2b",
      "parents": [
        "401d399ed0ceefebced795d450c61f5099a18ce1"
      ],
      "author": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Mon Jun 01 22:01:09 2015 +0200"
      },
      "committer": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Mon Jun 01 22:01:09 2015 +0200"
      },
      "message": "THRIFT-3176 ruby: Union incorrectly implements \u003d\u003d\n\nPatch: István Karaszi\n"
    },
    {
      "commit": "401d399ed0ceefebced795d450c61f5099a18ce1",
      "tree": "54340adb53d481a7891cf22d55ba8ca3b29ecd11",
      "parents": [
        "86a51e7eca0c33832b8e0421b18a99f4477dc31a"
      ],
      "author": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Mon Jun 01 21:27:11 2015 +0200"
      },
      "committer": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Mon Jun 01 21:28:42 2015 +0200"
      },
      "message": "THRIFT-3177 Fails to run rake test\n\nPatch: István Karaszi\n"
    },
    {
      "commit": "113b63879010c924b03feb2b43158ab6d9fcbac9",
      "tree": "020145dfef930f86ce0242878bed5e23c3bb0660",
      "parents": [
        "eab9c45bad1d19e5b2a2c94695699fee5325bd82"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsukeg@gmail.com",
        "time": "Thu May 14 02:22:05 2015 +0900"
      },
      "committer": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Wed May 13 21:40:26 2015 +0200"
      },
      "message": "THRIFT-3148 Markdown links to coding_standards are dead\n\nThis closes #491\n"
    },
    {
      "commit": "8ffabb02c2c07aee575149ad3a2043520ef82b85",
      "tree": "88f64abd82ea437c7be5b760e709146ab0fd67ce",
      "parents": [
        "434edf6d5d5f9705c1ebf3f711fd7e1b8efbb40d"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri Apr 03 14:26:10 2015 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri Apr 03 14:31:27 2015 +0200"
      },
      "message": "THRIFT-1125 Multiplexing support for the Ruby Library\nClient: Ruby\nPatch: André Aizim Kelmanson \u003cakelmanson@gmail.com\u003e\n\nThis closes #406\n"
    },
    {
      "commit": "a2d12b6ee3d9aa66f2c16dc6a5ee6eef5f1eba92",
      "tree": "31d6dde9ac89504fddfe23de23ae196158f881bb",
      "parents": [
        "47accfc802d040386c83fcfd1199d60012c47757"
      ],
      "author": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Tue Mar 24 21:15:06 2015 +0100"
      },
      "committer": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Tue Mar 24 21:15:06 2015 +0100"
      },
      "message": "ruby: fix typo\n"
    },
    {
      "commit": "3bc6424c76c1c29da72fe16ad9d3014b09b02b0f",
      "tree": "6daa184c23c2e30df4044c5b2966befdcdb378bf",
      "parents": [
        "2f34da70243675c4d8e04f368522046fe99dcb50"
      ],
      "author": {
        "name": "Konrad Grochowski",
        "email": "hcorg@apache.org",
        "time": "Wed Feb 04 16:43:26 2015 +0100"
      },
      "committer": {
        "name": "Konrad Grochowski",
        "email": "hcorg@apache.org",
        "time": "Thu Feb 05 12:15:19 2015 +0100"
      },
      "message": "THRIFT-2724 - Coding standards template added all over project\n\nClient: All\nPatch: Konrad Grochowski\n\nThis closes #371\n"
    },
    {
      "commit": "8f2596ad546451c50e48425e37eddc9195c5807e",
      "tree": "8f657506c5512fb239b1d85aafe9beede2e5e9a1",
      "parents": [
        "4e16718e998df64e0e3c9a01ddb85af32f344933"
      ],
      "author": {
        "name": "jfarrell",
        "email": "jfarrell@apache.org",
        "time": "Thu Jan 29 23:42:05 2015 -0500"
      },
      "committer": {
        "name": "jfarrell",
        "email": "jfarrell@apache.org",
        "time": "Thu Jan 29 23:42:05 2015 -0500"
      },
      "message": "THRIFT-2961: Service inheritance does not work with namespaced Ruby code\nClient: rb\nPatch: Jan Brauer\n\nThis closes #364\n\ncommit 111c4e77a78c1a82f526923f13534bb0027ef33f\nAuthor: Jan Brauer \u003cjan@jimdo.com\u003e\nDate: 2015-01-29T22:01:26Z\nMake \u0027extends\u0027 work with \u0027rb:namespaced\u0027.\ncommit 34cab3d7c77bd5e8325ac4f30f1091429c35905e\nAuthor: Jan Brauer \u003cjan@jimdo.com\u003e\nDate: 2015-01-29T22:25:03Z\nAdd test for namespaced service extension\n"
    },
    {
      "commit": "4e16718e998df64e0e3c9a01ddb85af32f344933",
      "tree": "0cead9361215a34c5b85b284f0ee97830bfe9767",
      "parents": [
        "176c9261ed4008a90c0e94fb1007c152dec91ac3"
      ],
      "author": {
        "name": "jfarrell",
        "email": "jfarrell@apache.org",
        "time": "Thu Jan 29 23:03:34 2015 -0500"
      },
      "committer": {
        "name": "jfarrell",
        "email": "jfarrell@apache.org",
        "time": "Thu Jan 29 23:03:34 2015 -0500"
      },
      "message": "Thrift-2960: Fix namespace regression for Ruby\nClient: rb\nPatch: Jan Brauer\n\nAdd test that exposes the broken namespacing.\n\nFixes a bug introduced by #140.\n\nThis closes #363\n"
    },
    {
      "commit": "79f988c27ac97b7a89e6c78a64da2f3a2f65d916",
      "tree": "46358895d7630b0fd10590068450bef9ef151320",
      "parents": [
        "aaa8947f3a149d38dd4bfd395573860c2f18ea93"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri Oct 03 20:42:54 2014 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri Oct 03 20:42:54 2014 +0200"
      },
      "message": "THRIFT-2768: Whitespace Fixup\nClient: General (Makefile.am)\nPatch: Jens Geyer\n\nReverted makefile.am - tabs are not optional there\n"
    },
    {
      "commit": "aaa8947f3a149d38dd4bfd395573860c2f18ea93",
      "tree": "af4b000fca7e39c9b5e88b35fbc471b6138749c4",
      "parents": [
        "d5436f5cf7a100d89abb3d125d8f241ca7dc925e"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri Oct 03 20:22:28 2014 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri Oct 03 20:30:38 2014 +0200"
      },
      "message": "THRIFT-2768: Whitespace Fixup\nClient: General (Makefile.am, *.thrift)\nPatch: Jens Geyer\n\nDocTest.thrift has NOT been changed, the trailing whitespaces are part of the test case.\n"
    },
    {
      "commit": "05d64b4e3bcac81b31b89a2db2255edd72b783a8",
      "tree": "00c3288ee210db45ae7f7d1a6ed4ee662b03178a",
      "parents": [
        "1ff4a97a45a78e4afe88660927fb798c18336f7d"
      ],
      "author": {
        "name": "Konrad Grochowski",
        "email": "hcorg@minions.org.pl",
        "time": "Tue Sep 16 19:39:19 2014 +0200"
      },
      "committer": {
        "name": "Konrad Grochowski",
        "email": "hcorg@apache.org",
        "time": "Mon Sep 29 22:08:58 2014 +0200"
      },
      "message": "THRIFT-2707: rb - support for oneway messages fixed\n\nClient: Ruby Library, Ruby Compiler\nPatch: Konrad Grochowski\n\nnow oneway method calls will use proper message type\n\nThis closes #217\n"
    },
    {
      "commit": "a86886e77d355ec7523f0b9041f9f0ac03e4dd33",
      "tree": "0538fd9777d28924b4cccd54919744afeb4355fe",
      "parents": [
        "3e8d9272cecfb6dcfe7a03faafdba295c7d1838e"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed Sep 17 22:25:48 2014 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed Sep 17 22:36:00 2014 +0200"
      },
      "message": "THRIFT-2704 - compiler: T_ONEWAY type used for oneway methods instead of T_CALL\n\nPatch: Konrad Grochowski\n\nThis closes #216\n"
    },
    {
      "commit": "8a2bab3f72e85b8ba6c96d63ab4df708ec211ac0",
      "tree": "33c70486e6748bd567ada5a7b2293fd144081f51",
      "parents": [
        "57e6de46f385a1b220be3134bbe80d9d806d01f6"
      ],
      "author": {
        "name": "henrique",
        "email": "henrique@apache.org",
        "time": "Wed Jul 16 20:10:57 2014 +0200"
      },
      "committer": {
        "name": "henrique",
        "email": "henrique@apache.org",
        "time": "Wed Jul 16 20:10:57 2014 +0200"
      },
      "message": "THRIFT-1766 [Ruby] Provide support for binary types\nPatch: Vanja Bucic\n"
    },
    {
      "commit": "ef7d56c1d6e24cdd0a24d3ee825c499b917d7dda",
      "tree": "ed806cecc0fc8ecd94c0a526b2a0e34cec07cfa4",
      "parents": [
        "750df2ec4c039e504673af2449fa2996138ef767"
      ],
      "author": {
        "name": "jfarrell",
        "email": "jfarrell@apache.org",
        "time": "Thu Jul 10 09:21:25 2014 -0400"
      },
      "committer": {
        "name": "jfarrell",
        "email": "jfarrell@apache.org",
        "time": "Thu Jul 10 09:21:25 2014 -0400"
      },
      "message": "THRIFT-2602:Fix missing dist files\nClient: ruby\nPatch: jfarrell\n\nfix ruby extension to use RBConfig to work with newer versions of ruby\n"
    },
    {
      "commit": "8fd8c6366d99ceeccdbcbbe94e87ae247c8c66f6",
      "tree": "f5b690ffab713fed9cdf1e640a92ca05575fb9fd",
      "parents": [
        "b0350dbc40d3bc442f02bbd5980e2c2b5d83194d"
      ],
      "author": {
        "name": "jfarrell",
        "email": "jfarrell@apache.org",
        "time": "Thu Jul 10 09:14:51 2014 -0400"
      },
      "committer": {
        "name": "jfarrell",
        "email": "jfarrell@apache.org",
        "time": "Thu Jul 10 09:14:51 2014 -0400"
      },
      "message": "THRIFT-2602:Fix missing dist files\nClient: build process\nPatch: jfarrell\n\nAdd all missing files to the dist package.\n"
    },
    {
      "commit": "bf2617ed15f95e22bcf41fd9d08e7ce562464f46",
      "tree": "83c17a7b0234d6bf1174afeb1b23f31d7e4a2b59",
      "parents": [
        "c9bdd50270d2eb60488ef38c56f990b781bbb3d2"
      ],
      "author": {
        "name": "jfarrell",
        "email": "jfarrell@apache.org",
        "time": "Thu Jun 26 22:53:01 2014 -0400"
      },
      "committer": {
        "name": "jfarrell",
        "email": "jfarrell@apache.org",
        "time": "Thu Jun 26 22:53:01 2014 -0400"
      },
      "message": "Thrift-THRIFT-2574: Compiler option to generate namespace directories for Ruby\nClient: rb\nPatch: Andrew Bloomgarden\n\nAdds option to generate namespaced ruby classes.\n\nGithub: closes #140\n"
    },
    {
      "commit": "6d1a83aa485ed9c3644d3200555700070547bf90",
      "tree": "016f0223385b3182ea76e71c14506af97b69d71b",
      "parents": [
        "72e9c375175ff05a9b9cd61c9937db0bd48742ac"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat May 03 00:49:05 2014 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat May 03 00:49:05 2014 +0200"
      },
      "message": "THRIFT-2506 Update TProtocolException error codes to be used consistently throughout the library\n\nPatch: Jens Geyer\n"
    }
  ],
  "next": "16fcad0b25f1200db7ec0add08f827c76bf4dd43"
}
