Project

General

Profile

Actions

Bug #19929

closed

Warnings for `mutex_m`, `drb` and `base64` appears while the gem spec has explicit dependencies

Added by yahonda (Yasuo Honda) 7 months ago. Updated 6 months ago.

Status:
Closed
Target version:
-
ruby -v:
ruby 3.3.0dev (2023-10-17T11:07:57Z :detached: 2a8ac8ead5) [x86_64-linux]
[ruby-core:115068]

Description

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/activesupport/activesupport.gemspec#L42-L45

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
$

Updated by hsbt (Hiroshi SHIBATA) 7 months ago

  • Status changed from Open to Assigned
  • Assignee set to hsbt (Hiroshi SHIBATA)

Updated by hsbt (Hiroshi SHIBATA) 7 months ago

Thanks always. I could reproduce that.

$ RAILS_STRICT_WARNING=1 bin/test test/engine/test_test.rb
/Users/hsbt/Documents/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.
/Users/hsbt/Documents/github.com/rails/rails/activesupport/lib/active_support/core_ext/object/json.rb:5: warning: bigdecimal which will be not part of the default gems since Ruby 3.4.0. Add bigdecimal to your Gemfile.
Run options: --seed 10928

# Running:

/Users/hsbt/Documents/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.
/Users/hsbt/Documents/github.com/rails/rails/activesupport/lib/active_support/core_ext/object/json.rb:5: warning: bigdecimal which will be not part of the default gems since Ruby 3.4.0. Add bigdecimal to your Gemfile.
/Users/hsbt/.local/share/gem/gems/mail-2.8.1/lib/mail/parsers/date_time_parser.rb:837: warning: statement not reached
/Users/hsbt/.local/share/gem/gems/mail-2.8.1/lib/mail/parsers/date_time_parser.rb:691: warning: assigned but unused variable - testEof
(snip)

These warnings should be suppressed. I will investigate this.

Updated by hsbt (Hiroshi SHIBATA) 7 months ago

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.

Updated by hsbt (Hiroshi SHIBATA) 7 months ago

  • Status changed from Closed to Assigned

The redundant warnings still happened.

$ RAILS_STRICT_WARNING=1 bin/test test/engine/test_test.rb
/Users/hsbt/.local/share/rbenv/versions/master/lib/ruby/gems/3.3.0+0/gems/minitest-5.20.0/lib/minitest.rb:3: warning: mutex_m which will no longer be part of the default gems since Ruby 3.4.0. Add mutex_m to your Gemfile or gemspec.
Run options: --seed 58917

# Running:
(snip)

We should ignore RubyGems's paths under the RbConfig::CONFIG['rubylibdir'].

Updated by hsbt (Hiroshi SHIBATA) 7 months ago

  • Status changed from Assigned to Closed

Ah, this warning is correct. mutex_m is removed from rails/rails.

https://github.com/rails/rails/commit/bcdeea5da7657375df21a856135ae7a66a8c3812

Updated by hsbt (Hiroshi SHIBATA) 6 months ago

I removed mutex_m dependency from minitest at https://github.com/minitest/minitest/pull/973

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0