diff options
author | Bundlerbot <bot@bundler.io> | 2019-07-12 09:15:52 +0000 |
---|---|---|
committer | Bundlerbot <bot@bundler.io> | 2019-07-12 09:15:52 +0000 |
commit | 53bc81ecdf3e4a94c25a856c3227fb94d76c1769 (patch) | |
tree | 1b309000582de3cb840c31f2b8b4bc2a0a34b8f7 | |
parent | 2eec310f79e0384bad17ba8cb3eedd42d7dc975c (diff) | |
parent | 8ecd722b9fb80efb3c167f77c8ed307c02f1311d (diff) | |
download | bundler-53bc81ecdf3e4a94c25a856c3227fb94d76c1769.tar.gz |
Merge #7247
7247: Drop rubygems 2.5.0 and 2.5.1 support r=hsbt a=deivid-rodriguez
### What was the end-user problem that led to this PR?
The problem was that we have some conditional code in bundler dependent on the rubygems version being used, that could be easily removed if we dropped support for rubygems 2.5.0 and 2.5.1.
### What was your diagnosis of the problem?
My diagnosis was that we could drop support for these versions now, to remove all of those conditionals and simplify the integration.
### What is your fix for the problem, implemented in this PR?
My fix is to drop support for rubygems 2.5.0 and 2.5.1.
### Why did you choose this fix out of the possible options?
I chose this fix because the oldest ruby we currently support, 2.3, ships with rubygems 2.5.2, so it's very unlikely that any user of the next bundler version will be using these old rubygems versions, because they would need to explicitly downgrade rubygems!
Co-authored-by: David RodrÃguez <deivid.rodriguez@riseup.net>
-rw-r--r-- | bundler.gemspec | 2 | ||||
-rw-r--r-- | lib/bundler/rubygems_integration.rb | 14 | ||||
-rw-r--r-- | lib/bundler/source/git.rb | 10 | ||||
-rw-r--r-- | lib/bundler/stub_specification.rb | 6 | ||||
-rw-r--r-- | spec/commands/exec_spec.rb | 2 | ||||
-rw-r--r-- | spec/commands/info_spec.rb | 2 |
6 files changed, 9 insertions, 27 deletions
diff --git a/bundler.gemspec b/bundler.gemspec index 3b515caad9..898ac84a58 100644 --- a/bundler.gemspec +++ b/bundler.gemspec @@ -32,7 +32,7 @@ Gem::Specification.new do |s| end s.required_ruby_version = ">= 2.3.0" - s.required_rubygems_version = ">= 2.5.0" + s.required_rubygems_version = ">= 2.5.2" s.files = Dir.glob("{lib,exe}/**/*", File::FNM_DOTMATCH).reject {|f| File.directory?(f) } diff --git a/lib/bundler/rubygems_integration.rb b/lib/bundler/rubygems_integration.rb index 15771e6c0a..dcf0007ca2 100644 --- a/lib/bundler/rubygems_integration.rb +++ b/lib/bundler/rubygems_integration.rb @@ -314,19 +314,6 @@ module Bundler end end - # RubyGems-generated binstubs call Kernel#gem - def binstubs_call_gem? - !provides?(">= 2.5.2") - end - - # only 2.5.2+ has all of the stub methods we want to use, and since this - # is a performance optimization _only_, - # we'll restrict ourselves to the most - # recent RG versions instead of all versions that have stubs - def stubs_provide_full_functionality? - provides?(">= 2.5.2") - end - def replace_gem(specs, specs_by_name) reverse_rubygems_kernel_mixin @@ -335,7 +322,6 @@ module Bundler kernel = (class << ::Kernel; self; end) [kernel, ::Kernel].each do |kernel_class| redefine_method(kernel_class, :gem) do |dep, *reqs| - executables ||= specs.map(&:executables).flatten if ::Bundler.rubygems.binstubs_call_gem? if executables && executables.include?(File.basename(caller.first.split(":").first)) break end diff --git a/lib/bundler/source/git.rb b/lib/bundler/source/git.rb index ed16f4a4e0..73123622d4 100644 --- a/lib/bundler/source/git.rb +++ b/lib/bundler/source/git.rb @@ -314,12 +314,10 @@ module Bundler # no-op, since we validate when re-serializing the gemspec def validate_spec(_spec); end - if Bundler.rubygems.stubs_provide_full_functionality? - def load_gemspec(file) - stub = Gem::StubSpecification.gemspec_stub(file, install_path.parent, install_path.parent) - stub.full_gem_path = Pathname.new(file).dirname.expand_path(root).to_s.untaint - StubSpecification.from_stub(stub) - end + def load_gemspec(file) + stub = Gem::StubSpecification.gemspec_stub(file, install_path.parent, install_path.parent) + stub.full_gem_path = Pathname.new(file).dirname.expand_path(root).to_s.untaint + StubSpecification.from_stub(stub) end def git_scope diff --git a/lib/bundler/stub_specification.rb b/lib/bundler/stub_specification.rb index bad69c9a14..d45f80a80a 100644 --- a/lib/bundler/stub_specification.rb +++ b/lib/bundler/stub_specification.rb @@ -63,10 +63,8 @@ module Bundler stub.loaded_from end - if Bundler.rubygems.stubs_provide_full_functionality? - def matches_for_glob(glob) - stub.matches_for_glob(glob) - end + def matches_for_glob(glob) + stub.matches_for_glob(glob) end def raw_require_paths diff --git a/spec/commands/exec_spec.rb b/spec/commands/exec_spec.rb index b9be5d7c02..b01a31fb50 100644 --- a/spec/commands/exec_spec.rb +++ b/spec/commands/exec_spec.rb @@ -851,7 +851,7 @@ __FILE__: #{path.to_s.inspect} bundle :install, :system_bundler => true, :path => "vendor/bundler" end - it "overrides disable_shared_gems so bundler can be found", :ruby_repo, :rubygems => ">= 2.6.2" do + it "overrides disable_shared_gems so bundler can be found", :ruby_repo do system_gems :bundler file = bundled_app("file_that_bundle_execs.rb") create_file(file, <<-RB) diff --git a/spec/commands/info_spec.rb b/spec/commands/info_spec.rb index 375ac01986..aa6b237d50 100644 --- a/spec/commands/info_spec.rb +++ b/spec/commands/info_spec.rb @@ -104,7 +104,7 @@ RSpec.describe "bundle info" do expect(out).to include("foo (1.0 #{sha[0..6]})") end - it "handles when a version is a '-' prerelease", :rubygems => "2.1" do + it "handles when a version is a '-' prerelease" do @git = build_git("foo", "1.0.0-beta.1", :path => lib_path("foo")) install_gemfile <<-G gem "foo", "1.0.0-beta.1", :git => "#{lib_path("foo")}" |