summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBundlerbot <bot@bundler.io>2019-12-25 06:06:07 +0000
committerDavid Rodríguez <deivid.rodriguez@riseup.net>2020-01-01 20:52:53 +0100
commit078c45e0660cbca8d0e4bbb06bbdb71f0364578c (patch)
treef90dc9136878be033600c831819041e76babbea7
parent4e3ce16575e902e0853dbc1fcd2d42a4dcfb3d74 (diff)
downloadbundler-078c45e0660cbca8d0e4bbb06bbdb71f0364578c.tar.gz
Merge #7520
7520: Do `require "rubygems"` only when needed r=hsbt a=mame ### What was the end-user problem that led to this PR? The require causes circular require. See https://github.com/bundler/bundler/pull/7505#issuecomment-568832933 ``` $ touch empty_file $ RUBYGEMS_GEMDEPS=empty_file ./local/bin/ruby -w -e '' /home/mame/work/ruby/local/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92: warning: /home/mame/work/ruby/local/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92: warning: loading in progress, circular require considered harmful - /home/mame/work/ruby/local/lib/ruby/2.7.0/rubygems.rb from <internal:gem_prelude>:1:in `<internal:gem_prelude>' from <internal:gem_prelude>:1:in `require' from /home/mame/work/ruby/local/lib/ruby/2.7.0/rubygems.rb:1417:in `<top (required)>' from /home/mame/work/ruby/local/lib/ruby/2.7.0/rubygems.rb:1203:in `use_gemdeps' from /home/mame/work/ruby/local/lib/ruby/2.7.0/rubygems/user_interaction.rb:47:in `use_ui' from /home/mame/work/ruby/local/lib/ruby/2.7.0/rubygems.rb:1204:in `block in use_gemdeps' from /home/mame/work/ruby/local/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require' from /home/mame/work/ruby/local/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require' from /home/mame/work/ruby/local/lib/ruby/2.7.0/bundler.rb:11:in `<top (required)>' from /home/mame/work/ruby/local/lib/ruby/2.7.0/bundler.rb:11:in `require_relative' from /home/mame/work/ruby/local/lib/ruby/2.7.0/bundler/rubygems_integration.rb:3:in `<top (required)>' from /home/mame/work/ruby/local/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require' from /home/mame/work/ruby/local/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require' ``` ### What was your diagnosis of the problem? Do not `require "rubygems"` blindly. ### What is your fix for the problem, implemented in this PR? Add `unless defined?(Gem)` to make sure it does `require "rubygems"` only when rubygems is not required. ### Why did you choose this fix out of the possible options? This is needed to release Ruby 2.7.0 so I chose the simplest fix. Co-authored-by: Yusuke Endoh <mame@ruby-lang.org> (cherry picked from commit 415e336035b0d8d49dd64b31d2dad78de84f4da3)
-rw-r--r--lib/bundler/rubygems_integration.rb2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/bundler/rubygems_integration.rb b/lib/bundler/rubygems_integration.rb
index 18da5915a5..d97621cd92 100644
--- a/lib/bundler/rubygems_integration.rb
+++ b/lib/bundler/rubygems_integration.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-require "rubygems"
+require "rubygems" unless defined?(Gem)
module Bundler
class RubygemsIntegration