
Issue #19929 has been updated by hsbt (Hiroshi SHIBATA). HEAD version of Bundler didn't install default gems if locked version is same version of default gems. master of Ruby always uses default gems under the `RbConfig::CONFIG['rubylibdir']` because latest version of default gems installed with master of Ruby. We need to refer lockfile for warning feature. I fixed this at https://github.com/ruby/ruby/pull/8693. ---------------------------------------- Bug #19929: Warnings for `mutex_m`, `drb` and `base64` appears while the gem spec has explicit dependencies https://bugs.ruby-lang.org/issues/19929#change-104951 * Author: yahonda (Yasuo Honda) * Status: Assigned * Priority: Normal * Assignee: hsbt (Hiroshi SHIBATA) * ruby -v: ruby 3.3.0dev (2023-10-17T11:07:57Z :detached: 2a8ac8ead5) [x86_64-linux] * Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN ---------------------------------------- Running some of Ruby on Rails unit test raises these warnings while it has explicit add_dependency entries https://github.com/rails/rails/blob/ae6fa7a048d0a0f79b0f8dd8566c7d499fd6f616... ``` warning: mutex_m which will be not part of the default gems since Ruby 3.4.0. Add mutex_m to your Gemfile. warning: drb which will be not part of the default gems since Ruby 3.4.0. Add drb to your Gemfile. warning: base64 which will be not part of the default gems since Ruby 3.4.0. Add base64 to your Gemfile. ``` ### Steps to reproduce ``` git clone https://github.com/rails/rails cd rails rm Gemfile.lock bundle install cd railties RAILS_STRICT_WARNING=1 bin/test test/engine/commands_test.rb test/engine/test_test.rb ``` ### Expected behavior It should finish successfully. ### Actual behavior It raises these warnings. Rails has the `RAILS_STRICT_WARNING` environment variable to fail if any warnings. ``` warning: mutex_m which will be not part of the default gems since Ruby 3.4.0. Add mutex_m to your Gemfile. warning: drb which will be not part of the default gems since Ruby 3.4.0. Add drb to your Gemfile. warning: base64 which will be not part of the default gems since Ruby 3.4.0. Add base64 to your Gemfile. ``` ``` $ ruby -v ruby 3.3.0dev (2023-10-17T11:07:57Z :detached: 2a8ac8ead5) [x86_64-linux] $ RAILS_STRICT_WARNING=1 bin/test test/engine/commands_test.rb test/engine/test_test.rb /home/yahonda/src/github.com/rails/rails/activesupport/lib/active_support/notifications/fanout.rb:3: warning: mutex_m which will be not part of the default gems since Ruby 3.4.0. Add mutex_m to your Gemfile. /home/yahonda/src/github.com/rails/rails/activesupport/lib/active_support/testing/parallelization.rb:3: warning: drb which will be not part of the default gems since Ruby 3.4.0. Add drb to your Gemfile. /home/yahonda/src/github.com/rails/rails/activesupport/lib/active_support/message_encryptor.rb:4: warning: base64 which will be not part of the default gems since Ruby 3.4.0. Add base64 to your Gemfile. /home/yahonda/src/github.com/rails/rails/activesupport/lib/active_support/testing/strict_warnings.rb:33:in `warn': /home/yahonda/src/github.com/rails/rails/activesupport/lib/active_support/message_encryptor.rb:4: warning: base64 which will be not part of the default gems since Ruby 3.4.0. Add base64 to your Gemfile. (RuntimeError) from <internal:warning>:51:in `warn' from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.3.0+0/bundler/rubygems_integration.rb:248:in `block (2 levels) in replace_require' from /home/yahonda/src/github.com/rails/rails/activesupport/lib/active_support/message_encryptor.rb:4:in `<top (required)>' from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.3.0+0/bundler/rubygems_integration.rb:250:in `require' from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.3.0+0/bundler/rubygems_integration.rb:250:in `block (2 levels) in replace_require' from /home/yahonda/src/github.com/rails/rails/activesupport/lib/active_support/encrypted_file.rb:5:in `<top (required)>' from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.3.0+0/bundler/rubygems_integration.rb:250:in `require' from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.3.0+0/bundler/rubygems_integration.rb:250:in `block (2 levels) in replace_require' from /home/yahonda/src/github.com/rails/rails/activesupport/lib/active_support/encrypted_configuration.rb:4:in `<top (required)>' from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.3.0+0/bundler/rubygems_integration.rb:250:in `require' from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.3.0+0/bundler/rubygems_integration.rb:250:in `block (2 levels) in replace_require' from /home/yahonda/src/github.com/rails/rails/railties/lib/rails/application.rb:9:in `<top (required)>' from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.3.0+0/bundler/rubygems_integration.rb:250:in `require' from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.3.0+0/bundler/rubygems_integration.rb:250:in `block (2 levels) in replace_require' from /home/yahonda/src/github.com/rails/rails/railties/lib/rails.rb:15:in `<top (required)>' from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.3.0+0/bundler/rubygems_integration.rb:250:in `require' from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.3.0+0/bundler/rubygems_integration.rb:250:in `block (2 levels) in replace_require' from /home/yahonda/src/github.com/rails/rails/railties/lib/rails/all.rb:5:in `<top (required)>' from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.3.0+0/bundler/rubygems_integration.rb:250:in `require' from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.3.0+0/bundler/rubygems_integration.rb:250:in `block (2 levels) in replace_require' from /home/yahonda/src/github.com/rails/rails/railties/test/abstract_unit.rb:15:in `<top (required)>' from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.3.0+0/bundler/rubygems_integration.rb:250:in `require' from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.3.0+0/bundler/rubygems_integration.rb:250:in `block (2 levels) in replace_require' from /home/yahonda/src/github.com/rails/rails/railties/test/engine/commands_test.rb:3:in `<top (required)>' from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.3.0+0/bundler/rubygems_integration.rb:250:in `require' from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.3.0+0/bundler/rubygems_integration.rb:250:in `block (2 levels) in replace_require' from /home/yahonda/src/github.com/rails/rails/railties/lib/rails/test_unit/runner.rb:51:in `block in load_tests' from /home/yahonda/src/github.com/rails/rails/railties/lib/rails/test_unit/runner.rb:51:in `each' from /home/yahonda/src/github.com/rails/rails/railties/lib/rails/test_unit/runner.rb:51:in `load_tests' from /home/yahonda/src/github.com/rails/rails/railties/lib/rails/test_unit/runner.rb:43:in `run' from /home/yahonda/src/github.com/rails/rails/tools/test.rb:18:in `<top (required)>' from bin/test:5:in `require_relative' from bin/test:5:in `<main>' $ ruby -v ruby 3.3.0dev (2023-10-17T11:07:57Z :detached: 2a8ac8ead5) [x86_64-linux] $ gem -v 3.5.0.dev $ bundle -v Bundler version 2.5.0.dev $ ``` -- https://bugs.ruby-lang.org/