Skip to content
This repository has been archived by the owner on Apr 14, 2021. It is now read-only.

Commit

Permalink
Remove version overriding stuff
Browse files Browse the repository at this point in the history
By doing this we avoid circular requires (`rubygems` requires `bundler` via
`USE_GEMDEPS`, `bundler` requires `rubygems` when loading its own version), and
also redefinition warnings when the `bundler.gemspec` is evaluated with
`rubygems` already loaded (for example, when running `ruby setup.rb`
from `rubygems` repo).

But most importantly, we avoid leaking from a bundler installation to a
different one, something quite common since bundler is a default gem.
The previous hack meant acting like that didn't happen, but seems
actually quite dangerous.

We can do this due to the previous work of making all of bundler
internal requires not rely on the LOAD_PATH, and thus making it
impossible to leak to another copy of bundler.
  • Loading branch information
deivid-rodriguez committed May 8, 2019
1 parent 8e6f59b commit 7911450
Showing 1 changed file with 1 addition and 17 deletions.
18 changes: 1 addition & 17 deletions lib/bundler/version.rb
@@ -1,23 +1,7 @@
# frozen_string_literal: false

module Bundler
# We're doing this because we might write tests that deal
# with other versions of bundler and we are unsure how to
# handle this better.
VERSION = "2.1.0.pre.1".freeze unless defined?(::Bundler::VERSION)

def self.overwrite_loaded_gem_version
begin
require "rubygems"
rescue LoadError
return
end
return unless bundler_spec = Gem.loaded_specs["bundler"]
return if bundler_spec.version == VERSION
bundler_spec.version = Bundler::VERSION
end
private_class_method :overwrite_loaded_gem_version
overwrite_loaded_gem_version
VERSION = "2.1.0.pre.1".freeze

def self.bundler_major_version
@bundler_major_version ||= VERSION.split(".").first.to_i
Expand Down

0 comments on commit 7911450

Please sign in to comment.