[rubygems/rubygems] require bundler/setup only when Bundler is not defined
... to prevent "circular require" when `--disable-gems` is used. This is a simplified case ofe5a0abc5de
``` $ bundle exec ruby -we 'system("ruby", "-w", "--disable-gems", "-e", "")' <internal:/home/mame/work/ruby/local/lib/ruby/3.2.0+3/rubygems/core_ext/kernel_require.rb>:85: warning: <internal:/home/mame/work/ruby/local/lib/ruby/3.2.0+3/rubygems/core_ext/kernel_require.rb>:85: warning: loading in progress, circular require considered harmful - /home/mame/work/ruby/local/lib/ruby/3.2.0+3/bundler/setup.rb ``` When bundler/setup is require'ed under --disable-gems mode, it loads rubygems by `require "rubygems" unless defined?(Gem)` in0b1f682a6d/bundler/lib/bundler/rubygems_integration.rb (L3)
In this case, require'ing bundler/setup from rubygems.rb is circular. This change makes rubygems.rb to require "bundler/setup" only when `Bundler` is not defined. https://github.com/rubygems/rubygems/commit/b4608dee5e
This commit is contained in:
parent
b6c66ead9d
commit
bc3ac86795
@ -1349,4 +1349,4 @@ require_relative "rubygems/core_ext/kernel_gem"
|
||||
require_relative "rubygems/core_ext/kernel_require"
|
||||
require_relative "rubygems/core_ext/kernel_warn"
|
||||
|
||||
require ENV["BUNDLER_SETUP"] if ENV["BUNDLER_SETUP"]
|
||||
require ENV["BUNDLER_SETUP"] if ENV["BUNDLER_SETUP"] && !defined?(Bundler)
|
||||
|
Loading…
x
Reference in New Issue
Block a user