Skip to content

Commit 945d691

Browse files
committed
Add as development dependencies gems extracted from Ruby stdlib
Specs are currently failing on `master` on my local machine when I try to run specs with `BUNDLE_GEMFILE=/home/david/code/paper_trail/gemfiles/rails_6.1.gemfile bundle exec rspec`. This isn't yet reflected in any CI builds on `master`, but I believe that it would be, if a build were to be triggered on `master`. The same error is also occurring in recent PRs that have been put up (e.g. [this PR][1] with [this failed build][2] and [this PR][3] with [this failed build][4]). [1]: paper-trail-gem#1509 [2]: https://github.com/paper-trail-gem/paper_trail/actions/runs/13835939334/job/38733099092?pr=1509 [3]: paper-trail-gem#1511 [4]: https://github.com/paper-trail-gem/paper_trail/actions/runs/13916744592/job/38941085149?pr=1511 I'm not sure why these errors have started occurring now, without any changes in `master` since [the last commit on `master`][5] that passed all checks. Maybe `bundler` changed its behavior, and we are pulling in a new/recent version of `bundler` with some relevant behavior change? [5]: paper-trail-gem@94e9c0d But, anyway, the errors seem to be caused by the extraction of various gems from the Ruby standard library into standalone gems, specifically: 1. `bigdecimal` 1. `drb` 1. `mutex_m` This change adds those gems as development dependencies of `paper_trail`. Although they are not yet causing errors, the following gems were causing a warning for me when I ran specs using Ruby 3.4.2 with `BUNDLE_GEMFILE=/home/david/code/paper_trail/gemfiles/rails_6.1.gemfile bundle exec rspec`: 1. `benchmark` 1. `logger` These are the warnings: > /home/david/code/paper_trail/spec/spec_helper.rb:64: 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. > /home/david/.rbenv/versions/3.4.2/lib/ruby/gems/3.4.0/gems/activesupport-6.1.7.10/lib/active_support/dependencies.rb:299: warning: benchmark 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 benchmark to your Gemfile or gemspec to silence this warning. > Also please contact the author of activesupport-6.1.7.10 to request adding benchmark into its gemspec. To avoid these warnings, I am also adding these two gems as development dependencies. Additionally, this change adds a `require "logger"` statement to `spec/spec_helper.rb`. This isn't needed for the other gems (I'm guessing because `activerecord` and/or `actionpack` have `require` statements for `bigdecimal`, `drb`, and `mutex_m`?), but it seems to be needed for `logger`; without it, we get an error when trying to boot specs about `NameError: uninitialized constant ActiveSupport::LoggerThreadSafeLevel::Logger`.
1 parent 94e9c0d commit 945d691

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

paper_trail.gemspec

+8
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,14 @@ has been destroyed.
5656
# PT supports request_store versions for 3 years.
5757
s.add_dependency "request_store", "~> 1.4"
5858

59+
# The following gems have been extracted from the Ruby stdlib to gems, and we
60+
# must manually include them here in order for specs to run.
61+
s.add_development_dependency "benchmark", "~> 0.4.0"
62+
s.add_development_dependency "bigdecimal", "~> 3.1"
63+
s.add_development_dependency "drb", "~> 2.2"
64+
s.add_development_dependency "logger", "~> 1.6"
65+
s.add_development_dependency "mutex_m", "~> 0.3.0"
66+
5967
s.add_development_dependency "appraisal", "~> 2.5"
6068
s.add_development_dependency "byebug", "~> 11.1"
6169
s.add_development_dependency "ffaker", "~> 2.20"

spec/spec_helper.rb

+2-1
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,8 @@
6060
Bundler.setup
6161

6262
# Then, the chosen components of Rails would be loaded. In our case, we only
63-
# test with AR and AC.
63+
# test with AR and AC. We require `logger` because `active_record` needs it.
64+
require "logger"
6465
require "active_record/railtie"
6566
require "action_controller/railtie"
6667

0 commit comments

Comments
 (0)