Skip to content

feat!: Min Ruby Version 3.3#2070

Merged
kaylareopelle merged 5 commits intoopen-telemetry:mainfrom
YousefHadder:drop-ruby-3.1-3.2
Apr 7, 2026
Merged

feat!: Min Ruby Version 3.3#2070
kaylareopelle merged 5 commits intoopen-telemetry:mainfrom
YousefHadder:drop-ruby-3.1-3.2

Conversation

@YousefHadder
Copy link
Copy Markdown
Contributor

Summary

  • Bump minimum Ruby version from >= 3.1 to >= 3.3 across all 20 gems
  • Remove Ruby 3.2 and 3.1 test steps from CI, move quality gates (yard, rubocop, build) to the 3.3 step
  • Update TargetRubyVersion in rubocop config from 3.1 to 3.3 (verified zero new offenses)
  • Update bug report template example Ruby version

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

The deprecated Jaeger exporter (pinned to < 3.2) is intentionally left untouched.

Closes #2069
Related: open-telemetry/opentelemetry-ruby-contrib#2124

Changes

Category Files Change
Gemspecs 20 required_ruby_version from '>= 3.1' to '>= 3.3'
CI 1 Remove 3.2 + 3.1 test steps, move quality flags to 3.3
RuboCop 1 TargetRubyVersion: "3.1""3.3"
Bug report template 1 Update example Ruby version

Test plan

  • CI passes on Ruby 3.3 and 3.4 across all 3 OS matrices (ubuntu, macos, windows)
  • JRuby and TruffleRuby tests still pass on ubuntu
  • Yard docs generate successfully
  • RuboCop passes (verified locally: zero new offenses from TargetRubyVersion bump)
  • Gem builds successfully

Ruby 3.1 (EOL 2025-03-31) and Ruby 3.2 (EOL 2026-03-31) are no longer
maintained. Bump minimum required Ruby version to 3.3, the oldest
actively supported release.

Changes:
- Update required_ruby_version from '>= 3.1' to '>= 3.3' in 20 gemspecs
- Remove Ruby 3.2 and 3.1 test steps from CI workflow
- Move yard/rubocop/build quality gates to the Ruby 3.3 step
- Update TargetRubyVersion to 3.3 in rubocop config
- Update bug report template example Ruby version

The deprecated Jaeger exporter (pinned to < 3.2) is intentionally
left untouched.

Closes open-telemetry#2069
@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.

@YousefHadder YousefHadder changed the title feat!: drop support for EOL Ruby 3.1 and 3.2 feat!: Min Ruby Version 3.3 Mar 25, 2026
@robbkidd
Copy link
Copy Markdown
Member

robbkidd commented Mar 25, 2026

👀 Generating semantic-conventions gem and then Rubocoping on Windows:

lib/opentelemetry/semconv/[many]: C: Layout/EndOfLine: Carriage return character missing.

Oooh, Windows and your line endings.

🤔 I'm pondering how to address this problem that is totally not your fault, @YousefHadder. We don't ship the built semconv gem from a Windows build, so I think the line-endings kinda don't matter.

I'm open to setting Rubocop config for Layout/EndOfLine from default (native) to lf. Maybe for all or maybe for only the semconv gem.

Moving rubocop from the Ruby 3.1 step (ubuntu-only) to the 3.3 step
(all OSes) exposed a pre-existing issue: generated semantic_conventions
files on Windows use CRLF, causing Layout/EndOfLine failures.

Setting EnforcedStyle: lf fixes this since all committed files use LF.
@YousefHadder
Copy link
Copy Markdown
Contributor Author

@robbkidd seems like the latest commit made it worse right ?

@thompson-tomo
Copy link
Copy Markdown
Contributor

thompson-tomo commented Mar 28, 2026

@YousefHadder i have found the issue and have a fix for it in #2071. Can you revert your last change. You will notice in https://github.com/open-telemetry/opentelemetry-ruby/actions/runs/23678217086/job/68985482770?pr=2071 there is 2 less violations compared to here and that is because I fixed 2 occurances of them as a POC.

@robbkidd the issue is the jinja/weaver template missing the new line at the end. 🤣

Copy link
Copy Markdown
Contributor

@kaylareopelle kaylareopelle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is fantastic! Thank you @YousefHadder!

I noticed one other spot where Ruby 3.1 is hanging around. The Dockerfile has ARG RUBY_VERSION set to 3.1.6. Would you mind updating it?

I'm going to hold off on approving this one until we can merge main into this branch after #2071 is merged to make sure the semconv Rubocop issues are resolved for Windows.

Copy link
Copy Markdown
Contributor

@kaylareopelle kaylareopelle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you! Welcome to the project! 🌟

@kaylareopelle kaylareopelle merged commit 56c223a into open-telemetry:main Apr 7, 2026
64 checks passed
@otelbot-ruby otelbot-ruby Bot mentioned this pull request Apr 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Ruby 3.1 and 3.2 EOL — drop support, bump minimum to 3.3

4 participants