THRIFT-6154: Drop Ruby 2.7 support - #3742
Merged
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates the Apache Thrift Ruby library and CI configuration to drop Ruby 2.7 support (EOL) and set Ruby 3.0 as the minimum supported Ruby version, aligning documentation, linting, and GitHub Actions matrices accordingly.
Changes:
- Raise the Ruby gem minimum required Ruby from
>= 2.7.0to>= 3.0.0. - Update Ruby-facing documentation and repo support-matrix references to Ruby 3.0+.
- Update RuboCop and GitHub Actions workflows to remove Ruby 2.7 and use Ruby 3.0 for the minimum/pure-Ruby CI variant; includes small Ruby 3.0+ idiomatic cleanups.
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| lib/rb/thrift.gemspec | Bumps required_ruby_version to >= 3.0.0 and removes obsolete gemspec boilerplate. |
| lib/rb/README.md | Updates documented Ruby compatibility/requirements to Ruby 3.0+. |
| lib/rb/lib/thrift/uuid.rb | Removes redundant regexp .freeze under the new Ruby baseline. |
| lib/rb/lib/thrift/transport/socket.rb | Uses Ruby 3.0+ endless range slicing in partial-write loop. |
| lib/rb/lib/thrift/struct_union.rb | Uses map for collection formatting (behavior-preserving cleanup). |
| lib/rb/.rubocop.yml | Raises RuboCop TargetRubyVersion to 3.0. |
| LANGUAGES.md | Updates Ruby language-level entry to reflect the new supported baseline. |
| .github/workflows/sca.yml | Runs Ruby SCA job on Ruby 3.0 instead of 2.7. |
| .github/workflows/build.yml | Removes Ruby 2.7 from the Ruby CI matrix and moves the no-extension job to Ruby 3.0. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Client: rb Co-Authored-By: OpenAI Codex (GPT-5.6) <codex@openai.com>
kpumuk
force-pushed
the
rb-drop-ruby-2-7
branch
from
August 24, 2026 00:56
abb4c0c to
8facc92
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ruby 2.7 was released on December 25, 2019 and reached end of life on March 31, 2023, but the Thrift Ruby gem still declares and tests Ruby 2.7 support.
This raises the gem's minimum Ruby version to 3.0 and aligns the language matrix, Ruby documentation, RuboCop target, build matrix, and static-analysis workflow. The pure-Ruby CI variant moves to the new minimum instead of being removed.
The updated lint target also exposes a few behavior-preserving idiomatic cleanups: direct collection mapping, an endless range for partial socket writes, removal of a redundant regexp freeze, and removal of obsolete gemspec boilerplate.
This is a breaking support-policy change. Applications still running Ruby 2.7 must remain on an earlier Thrift gem until they upgrade Ruby.
[skip ci]anywhere in the commit message to free up build resources.