-
Notifications
You must be signed in to change notification settings - Fork 377
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
[NO-TICKET] RFC: Add logger
gem as dependency to prepare for future Ruby versions
#4257
base: master
Are you sure you want to change the base?
Conversation
… Ruby versions **What does this PR do?** This PR declares a dependency from the `datadog` gem to the `logger` gem. While every PR is an RFC, I explicitly marked this one as such since adding a new dependency should never be done lightly. **Motivation:** This is needed to avoid a warning: > lib/datadog/core/configuration/settings.rb:3: warning: logger was > loaded from the standard library, but will no longer be part of the > default gems starting from Ruby 3.5.0. > You can add logger to your Gemfile or gemspec to silence this warning. **Additional Notes:** `logger` is just the latest in a long line of gems that have been refactored out in this way. See ruby/ruby@d7e558e and https://stdgems.org/ (not yet updated for 3.5 as of this writing). While in the past we've avoided adding extra dependencies due to this extraction work, I think this one does make sense to add: 1. It's supported on every Ruby version we currently support (>= 2.5) 2. It's not a small amount of code to shed/rewrite. And on the other side, I don't see a strong reason for embedding instead of depending on it. We're getting warnings for two more gems: `ostruct` and `benchmark`. From our internal discussions, we can probably get rid of our usage of them, rather than promote them to a dependency, so that's why I did not touch those warnings in this PR. **How to test the change?** The following script can be used (on Ruby 3.4 and above) to trigger the warning, and to confirm it's gone once `logger` is added as a dependency: ```ruby require 'bundler/inline' gemfile do source 'https://rubygems.org' gem 'datadog', path: '.' end puts RUBY_DESCRIPTION require 'datadog' puts Datadog::VERSION::STRING ``` Make sure to run with just `ruby example.rb` and not with `bundle exec`.
Datadog ReportBranch report: ✅ 0 Failed, 22129 Passed, 1476 Skipped, 5m 53.46s Total Time |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #4257 +/- ##
==========================================
- Coverage 97.74% 97.74% -0.01%
==========================================
Files 1353 1353
Lines 82392 82392
Branches 4224 4224
==========================================
- Hits 80533 80532 -1
- Misses 1859 1860 +1 ☔ View full report in Codecov by Sentry. |
While I don't expect this to have any fallback, changing dependencies always makes me a bit nervous so I'll mark this as do-not-merge until we put the 2.9.0 release out. This way we can merge it in early during the 2.10 cycle and have a bit longer baking time. |
What does this PR do?
This PR declares a dependency from the
datadog
gem to thelogger
gem.While every PR is an RFC, I explicitly marked this one as such since adding a new dependency should never be done lightly.
Motivation:
This is needed to avoid a warning:
Change log entry
Yes. Add
logger
gem as dependency to prepare for future Ruby versionsAdditional Notes:
logger
is just the latest in a long line of gems that have been refactored out in this way. Seeruby/ruby@d7e558e and https://stdgems.org/ (not yet updated for 3.5 as of this writing).
While in the past we've avoided adding extra dependencies due to this extraction work, I think this one does make sense to add:
We're getting warnings for two more gems:
ostruct
andbenchmark
.From our internal discussions, we can probably get rid of our usage of them, rather than promote them to a dependency, so that's why I did not touch those warnings in this PR.
How to test the change?
The following script can be used (on Ruby 3.4 and above) to trigger the warning, and to confirm it's gone once
logger
is added as a dependency:Make sure to run with just
ruby example.rb
and not withbundle exec
.