Bug #19886
closed"default->bundled gem" warning is not shown under "bundle exec"
Description
$ cat Gemfile
source "https://rubygems.org"
$ cat test.rb
require "base64"
$ bundle exec ruby test.rb
$
In this situation, bundle exec ruby test.rb should print a warning: base64 which will be not part of the default gems since Ruby 3.4.0.
Note that ruby test.rb shows the warning, which is not needed (see #19885).
$ ruby test.rb
test.rb:1: warning: base64 which will be not part of the default gems since Ruby 3.4.0
  
        
          
          Updated by hsbt (Hiroshi SHIBATA) about 2 years ago
          
          
        
        
      
      Thank you for reporting this.
I confirmed it. It caused bundle exec ruby couldn't call Bundler.setup.
It's working with that.
$ cat test.rb
#!/usr/bin/env ruby
require "base64"
$ bundle exec test.rb
test.rb:3: warning: base64 will be not part of the default gems since Ruby 3.4.0. Add base64 to your Gemfile. Also contact author of  to add base64 into its gemspec.
bundle exec will call Bundler.setup only script that has ruby shebang.
I'm considering how call Bundler.setup via bundle exec ruby.
        
          
          Updated by hsbt (Hiroshi SHIBATA) almost 2 years ago
          
          
        
        
      
      - Status changed from Assigned to Closed
 
I investigate this again.
bundle exec ruby called Bundler.setup. But Gem::BUNDLED_GEMS is not loaded because bundle exec ruby ignore to load gem_prelude.rb. I'm not sure why bundle exec t.rb is load gem_prelude.rb yet.
This is fixed by https://github.com/rubygems/rubygems/pull/7224.