Skip to content

Commit

Permalink
[NO-TICKET] RFC: Add dependency to logger gem
Browse files Browse the repository at this point in the history
**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`.
  • Loading branch information
ivoanjo committed Jan 6, 2025
1 parent ee94c0e commit 1436c75
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions datadog.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,12 @@ Gem::Specification.new do |spec|
# (and yes we have a test for it)
spec.add_dependency 'libdatadog', '~> 14.3.1.1.0'

# Will no longer be a default gem on Ruby 3.5, see
# https://github.com/ruby/ruby/commit/d7e558e3c48c213d0e8bedca4fb547db55613f7c and
# https://stdgems.org/ .
# We support all versions of this gem and don't particularly require any version restriction.
spec.add_dependency 'logger'

spec.extensions = [
'ext/datadog_profiling_native_extension/extconf.rb',
'ext/datadog_profiling_loader/extconf.rb',
Expand Down

0 comments on commit 1436c75

Please sign in to comment.