mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
[bundler/bundler] Remove unnecessary rubygems monkeypatch
Instead, make sure we always load the local copy of bundler during
specs, and never end up using the default copy.
ac655ffeda
This commit is contained in:
parent
5a69a23afc
commit
4756c5f7e7
11 changed files with 48 additions and 48 deletions
|
@ -42,8 +42,7 @@ RSpec.describe "bundle pristine", :ruby_repo do
|
|||
expect(changes_txt).to_not be_file
|
||||
end
|
||||
|
||||
it "does not delete the bundler gem", :rubygems => ">= 2.6.2" do
|
||||
ENV["BUNDLER_SPEC_KEEP_DEFAULT_BUNDLER_GEM"] = "true"
|
||||
it "does not delete the bundler gem" do
|
||||
system_gems :bundler
|
||||
bundle! "install"
|
||||
bundle! "pristine", :system_bundler => true
|
||||
|
|
|
@ -333,7 +333,7 @@ RSpec.describe "bundle install with groups" do
|
|||
G
|
||||
|
||||
ruby <<-R
|
||||
require "bundler"
|
||||
require "#{lib}/bundler"
|
||||
Bundler.setup :default
|
||||
Bundler.require :default
|
||||
puts RACK
|
||||
|
|
|
@ -25,9 +25,9 @@ RSpec.describe "double checking sources", :realworld => true, :sometimes => true
|
|||
RUBY
|
||||
|
||||
cmd = <<-RUBY
|
||||
require "bundler"
|
||||
require "#{lib}/bundler"
|
||||
require #{File.expand_path("../../support/artifice/vcr.rb", __FILE__).dump}
|
||||
require "bundler/inline"
|
||||
require "#{lib}/bundler/inline"
|
||||
gemfile(true) do
|
||||
source "https://rubygems.org"
|
||||
gem "rails", path: "."
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
RSpec.describe "bundler/inline#gemfile" do
|
||||
def script(code, options = {})
|
||||
requires = ["bundler/inline"]
|
||||
requires = ["#{lib}/bundler/inline"]
|
||||
requires.unshift File.expand_path("../../support/artifice/" + options.delete(:artifice) + ".rb", __FILE__) if options.key?(:artifice)
|
||||
requires = requires.map {|r| "require '#{r}'" }.join("\n")
|
||||
@out = ruby("#{requires}\n\n" + code, options)
|
||||
|
@ -96,7 +96,7 @@ RSpec.describe "bundler/inline#gemfile" do
|
|||
|
||||
it "lets me use my own ui object" do
|
||||
script <<-RUBY, :artifice => "endpoint"
|
||||
require 'bundler'
|
||||
require '#{lib}/bundler'
|
||||
class MyBundlerUI < Bundler::UI::Silent
|
||||
def confirm(msg, newline = nil)
|
||||
puts "CONFIRMED!"
|
||||
|
@ -140,7 +140,7 @@ RSpec.describe "bundler/inline#gemfile" do
|
|||
|
||||
it "does not mutate the option argument" do
|
||||
script <<-RUBY
|
||||
require 'bundler'
|
||||
require '#{lib}/bundler'
|
||||
options = { :ui => Bundler::UI::Shell.new }
|
||||
gemfile(false, options) do
|
||||
path "#{lib_path}" do
|
||||
|
|
|
@ -80,7 +80,7 @@ RSpec.describe "Bundler.load" do
|
|||
G
|
||||
|
||||
ruby! <<-RUBY
|
||||
require "bundler"
|
||||
require "#{lib}/bundler"
|
||||
Bundler.setup :default
|
||||
Bundler.require :default
|
||||
puts RACK
|
||||
|
|
|
@ -193,7 +193,7 @@ RSpec.describe "Bundler.require" do
|
|||
G
|
||||
|
||||
cmd = <<-RUBY
|
||||
require 'bundler'
|
||||
require '#{lib}/bundler'
|
||||
Bundler.require
|
||||
RUBY
|
||||
ruby(cmd)
|
||||
|
|
|
@ -12,7 +12,7 @@ RSpec.describe "Bundler.setup" do
|
|||
G
|
||||
|
||||
ruby <<-RUBY
|
||||
require 'bundler'
|
||||
require '#{lib}/bundler'
|
||||
Bundler.setup
|
||||
|
||||
require 'rack'
|
||||
|
@ -34,7 +34,7 @@ RSpec.describe "Bundler.setup" do
|
|||
|
||||
it "doesn't make all groups available" do
|
||||
ruby <<-RUBY
|
||||
require 'bundler'
|
||||
require '#{lib}/bundler'
|
||||
Bundler.setup(:default)
|
||||
|
||||
begin
|
||||
|
@ -49,7 +49,7 @@ RSpec.describe "Bundler.setup" do
|
|||
|
||||
it "accepts string for group name" do
|
||||
ruby <<-RUBY
|
||||
require 'bundler'
|
||||
require '#{lib}/bundler'
|
||||
Bundler.setup(:default, 'test')
|
||||
|
||||
require 'rack'
|
||||
|
@ -61,7 +61,7 @@ RSpec.describe "Bundler.setup" do
|
|||
|
||||
it "leaves all groups available if they were already" do
|
||||
ruby <<-RUBY
|
||||
require 'bundler'
|
||||
require '#{lib}/bundler'
|
||||
Bundler.setup
|
||||
Bundler.setup(:default)
|
||||
|
||||
|
@ -74,7 +74,7 @@ RSpec.describe "Bundler.setup" do
|
|||
|
||||
it "leaves :default available if setup is called twice" do
|
||||
ruby <<-RUBY
|
||||
require 'bundler'
|
||||
require '#{lib}/bundler'
|
||||
Bundler.setup(:default)
|
||||
Bundler.setup(:default, :test)
|
||||
|
||||
|
@ -91,7 +91,7 @@ RSpec.describe "Bundler.setup" do
|
|||
|
||||
it "handles multiple non-additive invocations" do
|
||||
ruby <<-RUBY
|
||||
require 'bundler'
|
||||
require '#{lib}/bundler'
|
||||
Bundler.setup(:default, :test)
|
||||
Bundler.setup(:default)
|
||||
require 'rack'
|
||||
|
@ -122,7 +122,7 @@ RSpec.describe "Bundler.setup" do
|
|||
ENV["RUBYLIB"] = "rubylib_dir"
|
||||
|
||||
ruby <<-RUBY
|
||||
require 'bundler'
|
||||
require '#{lib}/bundler'
|
||||
Bundler.setup
|
||||
puts $LOAD_PATH
|
||||
RUBY
|
||||
|
@ -144,7 +144,7 @@ RSpec.describe "Bundler.setup" do
|
|||
G
|
||||
|
||||
ruby! <<-RUBY
|
||||
require 'bundler'
|
||||
require '#{lib}/bundler'
|
||||
Bundler.setup
|
||||
puts $LOAD_PATH
|
||||
RUBY
|
||||
|
@ -172,7 +172,7 @@ RSpec.describe "Bundler.setup" do
|
|||
G
|
||||
|
||||
ruby! <<-RUBY
|
||||
require 'bundler/setup'
|
||||
require '#{lib}/bundler/setup'
|
||||
puts $LOAD_PATH
|
||||
RUBY
|
||||
|
||||
|
@ -193,7 +193,7 @@ RSpec.describe "Bundler.setup" do
|
|||
G
|
||||
|
||||
ruby <<-R
|
||||
require 'bundler'
|
||||
require '#{lib}/bundler'
|
||||
|
||||
begin
|
||||
Bundler.setup
|
||||
|
@ -213,7 +213,7 @@ RSpec.describe "Bundler.setup" do
|
|||
G
|
||||
|
||||
ruby <<-R
|
||||
require 'bundler'
|
||||
require '#{lib}/bundler'
|
||||
|
||||
Bundler.setup
|
||||
R
|
||||
|
@ -236,7 +236,7 @@ RSpec.describe "Bundler.setup" do
|
|||
G
|
||||
|
||||
ruby <<-R
|
||||
require 'bundler'
|
||||
require '#{lib}/bundler'
|
||||
|
||||
Bundler.setup
|
||||
R
|
||||
|
@ -289,7 +289,7 @@ RSpec.describe "Bundler.setup" do
|
|||
|
||||
ENV["BUNDLE_GEMFILE"] = "Gemfile"
|
||||
ruby <<-R
|
||||
require 'bundler'
|
||||
require '#{lib}/bundler'
|
||||
|
||||
begin
|
||||
Bundler.setup
|
||||
|
@ -444,7 +444,7 @@ RSpec.describe "Bundler.setup" do
|
|||
break_git!
|
||||
|
||||
ruby <<-R
|
||||
require 'bundler'
|
||||
require '#{lib}/bundler'
|
||||
|
||||
begin
|
||||
Bundler.setup
|
||||
|
@ -465,7 +465,7 @@ RSpec.describe "Bundler.setup" do
|
|||
break_git!
|
||||
|
||||
ruby <<-R
|
||||
require "bundler"
|
||||
require "#{lib}/bundler"
|
||||
|
||||
begin
|
||||
Bundler.setup
|
||||
|
@ -774,7 +774,7 @@ end
|
|||
s.class.send(:define_method, :build_extensions) { nil }
|
||||
end
|
||||
|
||||
require 'bundler'
|
||||
require '#{lib}/bundler'
|
||||
gem '#{gem_name}'
|
||||
|
||||
puts $LOAD_PATH.count {|path| path =~ /#{gem_name}/} >= 2
|
||||
|
@ -1028,7 +1028,7 @@ end
|
|||
bundle "install"
|
||||
|
||||
ruby <<-RUBY
|
||||
require 'bundler'
|
||||
require '#{lib}/bundler'
|
||||
def Bundler.require(path)
|
||||
raise "LOSE"
|
||||
end
|
||||
|
@ -1083,7 +1083,7 @@ end
|
|||
context "is not present" do
|
||||
it "does not change the lock" do
|
||||
lockfile lock_with(nil)
|
||||
ruby "require 'bundler/setup'"
|
||||
ruby "require '#{lib}/bundler/setup'"
|
||||
lockfile_should_be lock_with(nil)
|
||||
end
|
||||
end
|
||||
|
@ -1091,7 +1091,7 @@ end
|
|||
context "is newer" do
|
||||
it "does not change the lock or warn" do
|
||||
lockfile lock_with(Bundler::VERSION.succ)
|
||||
ruby "require 'bundler/setup'"
|
||||
ruby "require '#{lib}/bundler/setup'"
|
||||
expect(out).to eq("")
|
||||
expect(err).to eq("")
|
||||
lockfile_should_be lock_with(Bundler::VERSION.succ)
|
||||
|
@ -1101,7 +1101,7 @@ end
|
|||
context "is older" do
|
||||
it "does not change the lock" do
|
||||
lockfile lock_with("1.10.1")
|
||||
ruby "require 'bundler/setup'"
|
||||
ruby "require '#{lib}/bundler/setup'"
|
||||
lockfile_should_be lock_with("1.10.1")
|
||||
end
|
||||
end
|
||||
|
@ -1148,14 +1148,14 @@ end
|
|||
|
||||
context "is not present" do
|
||||
it "does not change the lock" do
|
||||
expect { ruby! "require 'bundler/setup'" }.not_to change { lockfile }
|
||||
expect { ruby! "require '#{lib}/bundler/setup'" }.not_to change { lockfile }
|
||||
end
|
||||
end
|
||||
|
||||
context "is newer" do
|
||||
let(:ruby_version) { "5.5.5" }
|
||||
it "does not change the lock or warn" do
|
||||
expect { ruby! "require 'bundler/setup'" }.not_to change { lockfile }
|
||||
expect { ruby! "require '#{lib}/bundler/setup'" }.not_to change { lockfile }
|
||||
expect(out).to eq("")
|
||||
expect(err).to eq("")
|
||||
end
|
||||
|
@ -1164,7 +1164,7 @@ end
|
|||
context "is older" do
|
||||
let(:ruby_version) { "1.0.0" }
|
||||
it "does not change the lock" do
|
||||
expect { ruby! "require 'bundler/setup'" }.not_to change { lockfile }
|
||||
expect { ruby! "require '#{lib}/bundler/setup'" }.not_to change { lockfile }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -1173,7 +1173,7 @@ end
|
|||
it "does not load Psych" do
|
||||
gemfile ""
|
||||
ruby <<-RUBY
|
||||
require 'bundler/setup'
|
||||
require '#{lib}/bundler/setup'
|
||||
puts defined?(Psych::VERSION) ? Psych::VERSION : "undefined"
|
||||
require 'psych'
|
||||
puts Psych::VERSION
|
||||
|
@ -1186,7 +1186,7 @@ end
|
|||
it "does not load openssl" do
|
||||
install_gemfile! ""
|
||||
ruby! <<-RUBY
|
||||
require "bundler/setup"
|
||||
require "#{lib}/bundler/setup"
|
||||
puts defined?(OpenSSL) || "undefined"
|
||||
require "openssl"
|
||||
puts defined?(OpenSSL) || "undefined"
|
||||
|
@ -1240,7 +1240,7 @@ end
|
|||
|
||||
it "activates no gems with -rbundler/setup" do
|
||||
install_gemfile! ""
|
||||
ruby! code, :env => { :RUBYOPT => activation_warning_hack_rubyopt + " -rbundler/setup" }
|
||||
ruby! code, :env => { :RUBYOPT => activation_warning_hack_rubyopt + " -r#{lib}/bundler/setup" }
|
||||
expect(out).to eq("{}")
|
||||
end
|
||||
|
||||
|
@ -1315,7 +1315,7 @@ end
|
|||
G
|
||||
|
||||
ruby! <<-RUBY
|
||||
require "bundler/setup"
|
||||
require "#{lib}/bundler/setup"
|
||||
Object.new.gem "rack"
|
||||
puts Gem.loaded_specs["rack"].full_name
|
||||
RUBY
|
||||
|
@ -1330,7 +1330,7 @@ end
|
|||
G
|
||||
|
||||
ruby <<-RUBY
|
||||
require "bundler/setup"
|
||||
require "#{lib}/bundler/setup"
|
||||
Object.new.gem "rack"
|
||||
puts "FAIL"
|
||||
RUBY
|
||||
|
@ -1346,7 +1346,7 @@ end
|
|||
G
|
||||
|
||||
ruby <<-RUBY
|
||||
require "bundler/setup"
|
||||
require "#{lib}/bundler/setup"
|
||||
Object.new.require "rack"
|
||||
puts "FAIL"
|
||||
RUBY
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
RSpec.describe "Bundler.with_env helpers" do
|
||||
def bundle_exec_ruby!(code)
|
||||
build_bundler_context
|
||||
bundle! "exec '#{Gem.ruby}' -e #{code}"
|
||||
def bundle_exec_ruby!(code, options = {})
|
||||
build_bundler_context options
|
||||
bundle! "exec '#{Gem.ruby}' -e #{code}", options
|
||||
end
|
||||
|
||||
def build_bundler_context
|
||||
def build_bundler_context(options = {})
|
||||
bundle "config set path vendor/bundle"
|
||||
gemfile ""
|
||||
bundle "install"
|
||||
bundle "install", options
|
||||
end
|
||||
|
||||
describe "Bundler.original_env" do
|
||||
|
@ -75,7 +75,7 @@ RSpec.describe "Bundler.with_env helpers" do
|
|||
it "should remove '-rbundler/setup' from RUBYOPT" do
|
||||
code = "print #{modified_env}['RUBYOPT']"
|
||||
ENV["RUBYOPT"] = "-W2 -rbundler/setup #{ENV["RUBYOPT"]}"
|
||||
bundle_exec_ruby! code.dump
|
||||
bundle_exec_ruby! code.dump, :env => { "BUNDLER_SPEC_DISABLE_DEFAULT_BUNDLER_GEM" => "true" }
|
||||
expect(last_command.stdboth).not_to include("-rbundler/setup")
|
||||
end
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@ class Endpoint < Sinatra::Base
|
|||
def dependencies_for(gem_names, gem_repo = GEM_REPO)
|
||||
return [] if gem_names.nil? || gem_names.empty?
|
||||
|
||||
require "bundler"
|
||||
require "#{Spec::Path.lib}/bundler"
|
||||
Bundler::Deprecate.skip_during do
|
||||
all_specs = %w[specs.4.8 prerelease_specs.4.8].map do |filename|
|
||||
Marshal.load(File.open(gem_repo.join(filename)).read)
|
||||
|
|
|
@ -11,7 +11,8 @@ module Gem
|
|||
end
|
||||
@platforms = [Gem::Platform::RUBY, Gem::Platform.local]
|
||||
|
||||
if defined?(@path_to_default_spec_map) && !ENV["BUNDLER_SPEC_KEEP_DEFAULT_BUNDLER_GEM"]
|
||||
# We only need this hack for rubygems versions without the BundlerVersionFinder
|
||||
if Gem::Version.new(Gem::VERSION) < Gem::Version.new("2.7.0") || ENV["BUNDLER_SPEC_DISABLE_DEFAULT_BUNDLER_GEM"]
|
||||
@path_to_default_spec_map.delete_if do |_path, spec|
|
||||
spec.name == "bundler"
|
||||
end
|
||||
|
|
|
@ -77,7 +77,7 @@ module Spec
|
|||
def run(cmd, *args)
|
||||
opts = args.last.is_a?(Hash) ? args.pop : {}
|
||||
groups = args.map(&:inspect).join(", ")
|
||||
setup = "require 'bundler' ; Bundler.setup(#{groups})\n"
|
||||
setup = "require '#{lib}/bundler' ; Bundler.setup(#{groups})\n"
|
||||
ruby(setup + cmd, opts)
|
||||
end
|
||||
bang :run
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue