Skip to content

feat!: Min Ruby Version 3.3#2125

Open
YousefHadder wants to merge 5 commits intoopen-telemetry:mainfrom
YousefHadder:drop-ruby-3.2
Open

feat!: Min Ruby Version 3.3#2125
YousefHadder wants to merge 5 commits intoopen-telemetry:mainfrom
YousefHadder:drop-ruby-3.2

Conversation

@YousefHadder
Copy link
Copy Markdown

Summary

  • Bump minimum Ruby version from >= 3.2 to >= 3.3 across all 64 gems
  • Remove Ruby 3.2 test steps from all CI workflows, move quality gates (yard, rubocop, coverage, build) to the 3.3 step
  • Update TargetRubyVersion in .rubocop.yml from 3.2 to 3.3 (verified zero new offenses)
  • Update README supported Ruby version documentation
  • Clean up dead Ruby version guard in sidekiq Appraisals
  • Update instrumentation generator template and code

Ruby 3.2 reaches EOL on 2026-03-31. Ruby 3.3 is now the oldest actively maintained version.

Closes #2124
Related: open-telemetry/opentelemetry-ruby#2070 (same effort for the core repo)

Changes

Category Files Change
Gemspecs 64 required_ruby_version from '>= 3.2' to '>= 3.3' (via bin/update-ruby-version 3.3)
CI workflows 6 Remove 3.2 test steps, move quality flags to 3.3
Markdown checks 1 ruby-version: "3.2.10""3.3"
RuboCop 1 TargetRubyVersion: 3.23.3
README 1 Update supported version docs, add 3.2 EOL note
Sidekiq Appraisals 1 Remove dead >= 3.2.0 Ruby version guard
Instrumentation generator 2 Update template and inserter to reference 3.3

Test plan

  • CI passes on Ruby 4.0, 3.4, and 3.3
  • JRuby tests still pass
  • Yard docs generate successfully
  • RuboCop passes (verified locally: zero new offenses from TargetRubyVersion bump)
  • Gems build successfully
  • Installation tests pass on 4.0, 3.4, 3.3

Ruby 3.2 reaches EOL on 2026-03-31. Bump minimum required Ruby version
to 3.3, the oldest actively supported release.

Changes:
- Update required_ruby_version from '>= 3.2' to '>= 3.3' in all 64 gemspecs
  (via bin/update-ruby-version 3.3)
- Remove Ruby 3.2 test steps from all CI workflows, move quality gates
  (yard/rubocop/coverage/build) to the Ruby 3.3 step
- Update TargetRubyVersion to 3.3 in .rubocop.yml
- Update README supported Ruby version documentation
- Remove dead Ruby >= 3.2 version guard in sidekiq Appraisals
- Update instrumentation generator template and code to reference 3.3

Closes open-telemetry#2124
@linux-foundation-easycla
Copy link
Copy Markdown

linux-foundation-easycla bot commented Mar 25, 2026

CLA Signed

The committers listed above are authorized under a signed CLA.

Address review feedback: use "3.3.11" instead of "3.3" for
ruby/setup-ruby to match repo convention of 3-digit versioning.
@YousefHadder
Copy link
Copy Markdown
Author

Thanks @thompson-tomo — good catch on the 3-digit versioning. Fixed in 560fdf2, both occurrences now use "3.3.11" to match the repo convention.

Reverts required_ruby_version changes for gems that should not receive
further updates:

- dalli: frozen — Dalli 4.2+ has native OTel instrumentation
- mongo: frozen — Mongo Ruby Driver 2.23+ has native OTel instrumentation
- ruby_kafka: deprecated — upstream no longer maintained
- restclient: deprecated — upstream no longer maintained
@YousefHadder
Copy link
Copy Markdown
Author

@thompson-tomo what is the preferred version in markdown checks workflows ? 3.3.0 or the latest 3.3.10

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Ruby 3.2 EOL 2026-03-31