-
Notifications
You must be signed in to change notification settings - Fork 375
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
Add lib injection support for Ruby 3.3 #4001
base: master
Are you sure you want to change the base?
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #4001 +/- ##
==========================================
- Coverage 97.86% 97.85% -0.01%
==========================================
Files 1319 1319
Lines 79144 79144
Branches 3927 3927
==========================================
- Hits 77451 77446 -5
- Misses 1693 1698 +5 ☔ View full report in Codecov by Sentry. |
Support for Ruby 3.3 is present in the gem, the only thing needed for injection is to change the installation script to allow it to run with that version of Ruby. Because the Ruby API does not change in incompatible ways in between patch versions, we declare our compatibility with the API version "3.3.0", thus supporting all 3.3.x versions. Signed-off-by: Marco Costa <[email protected]>
eefd02f
to
ca09601
Compare
BenchmarksBenchmark execution time: 2024-10-22 17:23:00 Comparing candidate commit 0c22662 in PR branch Found 0 performance improvements and 1 performance regressions! Performance is the same for 23 metrics, 2 unstable metrics. scenario:profiler - sample timeline=false
|
def runtime_supported? | ||
major, minor, = RUBY_VERSION.split('.') | ||
major, minor, = RUBY_VERSION.split('.') # {MAJOR}_{MINOR}_{TEENY} | ||
ruby_api_version = "#{major}.#{minor}.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.
What is the purpose of .0
here? If only two components are used by the logic why not just have two components here?
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.
What is blocking?
- Need a custom Ruby 3.3 image to build gems in a static way
- We are currently dealing with package size constraint, which is a prerequisite of this PR.
Where are these images stored? |
Afaik the dockerfiles are those in https://github.com/DataDog/dd-trace-rb/tree/master/.gitlab . I'm not sure how the rest of the pipeline is set up. It may be worth documenting this somewhere? E.g. so it's clear how we can every year add new Ruby versions for the injection. |
Support for Ruby 3.3 is present in the gem, the only thing needed for injection is to change the installation script to allow it to run with that version of Ruby.
Because the Ruby API does not change in incompatible ways in between patch versions, we declare our compatibility with the API version "3.3.0", thus supporting all 3.3.x versions.
How to test the change?
Unsure? Have a question? Request a review!