-
Notifications
You must be signed in to change notification settings - Fork 369
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ruby 3.0 preview2 support #1281
Conversation
@@ -53,13 +53,8 @@ Gem::Specification.new do |spec| | |||
spec.add_development_dependency 'pimpmychangelog', '>= 0.1.2' | |||
spec.add_development_dependency 'appraisal', '~> 2.2' | |||
spec.add_development_dependency 'yard', '~> 0.9' | |||
spec.add_development_dependency 'webmock', '~> 2.0' | |||
spec.add_development_dependency 'webmock', '>= 3.10.0' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We need webmock >= 3 for Ruby 3.0 support. Thankfully it works correctly with all our supported Rubies.
if RUBY_PLATFORM != 'java' | ||
spec.add_development_dependency 'sqlite3', '~> 1.3.6' | ||
else | ||
spec.add_development_dependency 'jdbc-sqlite3', '~> 3' | ||
end |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I did the overdue work of moving sqlite3
to our Appraisal file: we cannot run all our test scenarios with version ~> 1.3.6
anymore. The version of sqlite3
is now correctly handled in each Appraisal scenario.
- &job_parameters | ||
parameters: | ||
ruby_version: | ||
description: Ruby version | ||
type: string | ||
image: | ||
description: Docker image location | ||
type: string | ||
jit: | ||
description: Jit enabled? | ||
type: boolean | ||
default: false |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Because I had to add a new variant 3.0 with jit
, I found it easier to extract the parameters:
block into a shared snippet.
With this I noticed a few more copy/paste patterns in this configuration and extracted the ones that were trivial (docker
and environment
).
Codecov Report
@@ Coverage Diff @@
## master #1281 +/- ##
=======================================
Coverage 97.80% 97.80%
=======================================
Files 751 751
Lines 35668 35670 +2
=======================================
+ Hits 34885 34887 +2
Misses 783 783
Continue to review full report at Codecov.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is good and fine to merge, i do think we should have something in gettingstarted.md about ruby3. Whether or not we have it, people are going to ask, so we'll need to have language prepared for it anyway.
Thank you, @ericmustin! I'll merge this PR to get 3.0 support going, and I'll ensure there's documentation changes in our GettingStarted.md before we release it. |
This PR adds support Ruby the latest Ruby 3.0 build (preview2). Given the close proximity of the final release, we don't foresee any major compatibility issues with the stable release.
We added two variants of Ruby 3.0 to CI:
3.0
and3.0-jit
, to allow us to test if the new JIT affects the tracer correctness and performance.Overall, there was only one change in the Sinatra integration necessary for the tracer to support Ruby 3.0.
Temporarily disabled features for Ruby 3.0
rdkafka
, does not install. We put a fix up for it, pending merge and release: Support Ruby 3.0 karafka/rdkafka-ruby#144protobuf
, does not install. Pending: Add ruby 3.0.0 support protocolbuffers/protobuf#7922Given we don't currently have full support for Rails 6.1, we don't officially support Rails in Ruby 3.0.
Thus, supporting Rails 6.1 should be a priority follow up task for us.
I'm holding off updating our GettingStarted.md, given the lack of support for Rails and the fact that full Ruby 3.0 is not here yet. I tried to update our docs while mentioning the lack of Rails support, but I don't believe it reads very clearly.