aboutsummaryrefslogtreecommitdiffstats
path: root/lib/bundler
diff options
context:
space:
mode:
Diffstat (limited to 'lib/bundler')
-rw-r--r--lib/bundler/build_metadata.rb2
-rw-r--r--lib/bundler/capistrano.rb2
-rw-r--r--lib/bundler/cli.rb10
-rw-r--r--lib/bundler/cli/console.rb2
-rw-r--r--lib/bundler/cli/install.rb2
-rw-r--r--lib/bundler/cli/update.rb2
-rw-r--r--lib/bundler/current_ruby.rb1
-rw-r--r--lib/bundler/definition.rb2
-rw-r--r--lib/bundler/deployment.rb2
-rw-r--r--lib/bundler/dsl.rb16
-rw-r--r--lib/bundler/feature_flag.rb59
-rw-r--r--lib/bundler/rubygems_integration.rb2
-rw-r--r--lib/bundler/settings.rb3
-rw-r--r--lib/bundler/shared_helpers.rb4
-rw-r--r--lib/bundler/source/metadata.rb5
-rw-r--r--lib/bundler/spec_set.rb28
-rw-r--r--lib/bundler/templates/newgem/Gemfile.tt2
-rw-r--r--lib/bundler/version.rb2
-rw-r--r--lib/bundler/vlad.rb2
19 files changed, 81 insertions, 67 deletions
diff --git a/lib/bundler/build_metadata.rb b/lib/bundler/build_metadata.rb
index 6146f16cb6..33f91e9162 100644
--- a/lib/bundler/build_metadata.rb
+++ b/lib/bundler/build_metadata.rb
@@ -4,8 +4,6 @@ module Bundler
# Represents metadata from when the Bundler gem was built.
module BuildMetadata
# begin ivars
- @built_at = "2018-12-19".freeze
- @git_commit_sha = "3fc4de72b".freeze
@release = false
# end ivars
diff --git a/lib/bundler/capistrano.rb b/lib/bundler/capistrano.rb
index 1b7145b72b..40e2e5dbe8 100644
--- a/lib/bundler/capistrano.rb
+++ b/lib/bundler/capistrano.rb
@@ -1,7 +1,7 @@
# frozen_string_literal: true
require "bundler/shared_helpers"
-Bundler::SharedHelpers.major_deprecation 2,
+Bundler::SharedHelpers.major_deprecation 3,
"The Bundler task for Capistrano. Please use http://github.com/capistrano/bundler"
# Capistrano task for Bundler.
diff --git a/lib/bundler/cli.rb b/lib/bundler/cli.rb
index e658ffce72..3efe193613 100644
--- a/lib/bundler/cli.rb
+++ b/lib/bundler/cli.rb
@@ -229,7 +229,7 @@ module Bundler
"Include gems that are part of the specified named group."
map "i" => "install"
def install
- SharedHelpers.major_deprecation(2, "The `--force` option has been renamed to `--redownload`") if ARGV.include?("--force")
+ SharedHelpers.major_deprecation(3, "The `--force` option has been renamed to `--redownload`") if ARGV.include?("--force")
require "bundler/cli/install"
Bundler.settings.temporary(:no_install => false) do
Install.new(options.dup).run
@@ -275,7 +275,7 @@ module Bundler
method_option "all", :type => :boolean, :banner =>
"Update everything."
def update(*gems)
- SharedHelpers.major_deprecation(2, "The `--force` option has been renamed to `--redownload`") if ARGV.include?("--force")
+ SharedHelpers.major_deprecation(3, "The `--force` option has been renamed to `--redownload`") if ARGV.include?("--force")
require "bundler/cli/update"
Update.new(options, gems).run
end
@@ -303,7 +303,7 @@ module Bundler
old_argv = ARGV.join(" ")
new_argv = [new_command, *new_arguments.compact].join(" ")
- Bundler::SharedHelpers.major_deprecation(2, "use `bundle #{new_argv}` instead of `bundle #{old_argv}`")
+ Bundler::SharedHelpers.major_deprecation(3, "use `bundle #{new_argv}` instead of `bundle #{old_argv}`")
end
require "bundler/cli/show"
Show.new(options, gem_name).run
@@ -537,7 +537,7 @@ module Bundler
method_option :version, :type => :boolean, :default => false, :aliases => "-v", :desc => "Set to show each gem version."
method_option :without, :type => :array, :default => [], :aliases => "-W", :banner => "GROUP[ GROUP...]", :desc => "Exclude gems that are part of the specified named group."
def viz
- SharedHelpers.major_deprecation 2, "The `viz` command has been moved to the `bundle-viz` gem, see https://github.com/bundler/bundler-viz"
+ SharedHelpers.major_deprecation 3, "The `viz` command has been moved to the `bundle-viz` gem, see https://github.com/bundler/bundler-viz"
require "bundler/cli/viz"
Viz.new(options.dup).run
end
@@ -608,7 +608,7 @@ module Bundler
method_option "group", :type => :string, :banner =>
"Install gem into a bundler group"
def inject(name, version)
- SharedHelpers.major_deprecation 2, "The `inject` command has been replaced by the `add` command"
+ SharedHelpers.major_deprecation 3, "The `inject` command has been replaced by the `add` command"
require "bundler/cli/inject"
Inject.new(options.dup, name, version).run
end
diff --git a/lib/bundler/cli/console.rb b/lib/bundler/cli/console.rb
index 853eca8358..d45f30cdcf 100644
--- a/lib/bundler/cli/console.rb
+++ b/lib/bundler/cli/console.rb
@@ -9,7 +9,7 @@ module Bundler
end
def run
- Bundler::SharedHelpers.major_deprecation 2, "bundle console will be replaced " \
+ Bundler::SharedHelpers.major_deprecation 3, "bundle console will be replaced " \
"by `bin/console` generated by `bundle gem <name>`"
group ? Bundler.require(:default, *(group.split.map!(&:to_sym))) : Bundler.require
diff --git a/lib/bundler/cli/install.rb b/lib/bundler/cli/install.rb
index b40e5f0e9e..55e90ead0e 100644
--- a/lib/bundler/cli/install.rb
+++ b/lib/bundler/cli/install.rb
@@ -53,7 +53,7 @@ module Bundler
Bundler::Fetcher.disable_endpoint = options["full-index"]
if options["binstubs"]
- Bundler::SharedHelpers.major_deprecation 2,
+ Bundler::SharedHelpers.major_deprecation 3,
"The --binstubs option will be removed in favor of `bundle binstubs`"
end
diff --git a/lib/bundler/cli/update.rb b/lib/bundler/cli/update.rb
index b088853768..bf300a8437 100644
--- a/lib/bundler/cli/update.rb
+++ b/lib/bundler/cli/update.rb
@@ -22,7 +22,7 @@ module Bundler
if Bundler.feature_flag.update_requires_all_flag?
raise InvalidOption, "To update everything, pass the `--all` flag."
end
- SharedHelpers.major_deprecation 2, "Pass --all to `bundle update` to update everything"
+ SharedHelpers.major_deprecation 3, "Pass --all to `bundle update` to update everything"
elsif !full_update && options[:all]
raise InvalidOption, "Cannot specify --all along with specific options."
end
diff --git a/lib/bundler/current_ruby.rb b/lib/bundler/current_ruby.rb
index d5efaad6c5..ae5fae841e 100644
--- a/lib/bundler/current_ruby.rb
+++ b/lib/bundler/current_ruby.rb
@@ -19,6 +19,7 @@ module Bundler
2.4
2.5
2.6
+ 2.7
].freeze
KNOWN_MAJOR_VERSIONS = KNOWN_MINOR_VERSIONS.map {|v| v.split(".", 2).first }.uniq.freeze
diff --git a/lib/bundler/definition.rb b/lib/bundler/definition.rb
index 8e56d4a9bc..c5e94c7123 100644
--- a/lib/bundler/definition.rb
+++ b/lib/bundler/definition.rb
@@ -331,7 +331,7 @@ module Bundler
# i.e., Windows with `git config core.autocrlf=true`
contents.gsub!(/\n/, "\r\n") if @lockfile_contents.match("\r\n")
- if @locked_bundler_version
+ if @locked_bundler_version && Bundler.feature_flag.lockfile_upgrade_warning?
locked_major = @locked_bundler_version.segments.first
current_major = Gem::Version.create(Bundler::VERSION).segments.first
diff --git a/lib/bundler/deployment.rb b/lib/bundler/deployment.rb
index 291e158ca0..4c8f48d405 100644
--- a/lib/bundler/deployment.rb
+++ b/lib/bundler/deployment.rb
@@ -1,7 +1,7 @@
# frozen_string_literal: true
require "bundler/shared_helpers"
-Bundler::SharedHelpers.major_deprecation 2, "Bundler no longer integrates with " \
+Bundler::SharedHelpers.major_deprecation 3, "Bundler no longer integrates with " \
"Capistrano, but Capistrano provides its own integration with " \
"Bundler via the capistrano-bundler gem. Use it instead."
diff --git a/lib/bundler/dsl.rb b/lib/bundler/dsl.rb
index 1a2114ed93..90ac073c36 100644
--- a/lib/bundler/dsl.rb
+++ b/lib/bundler/dsl.rb
@@ -194,7 +194,7 @@ module Bundler
" end\n\n"
raise DeprecatedError, msg if Bundler.feature_flag.disable_multisource?
- SharedHelpers.major_deprecation(2, msg.strip)
+ SharedHelpers.major_deprecation(3, msg.strip)
end
source_options = normalize_hash(options).merge(
@@ -305,8 +305,8 @@ module Bundler
# end
repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/")
# TODO: 2.0 upgrade this setting to the default
- if Bundler.feature_flag.github_https?
- Bundler::SharedHelpers.major_deprecation 2, "The `github.https` setting will be removed"
+ if Bundler.settings["github.https"]
+ Bundler::SharedHelpers.major_deprecation 3, "The `github.https` setting will be removed"
"https://github.com/#{repo_name}.git"
else
"git://github.com/#{repo_name}.git"
@@ -456,7 +456,7 @@ repo_name ||= user_name
def normalize_source(source)
case source
when :gemcutter, :rubygems, :rubyforge
- Bundler::SharedHelpers.major_deprecation 2, "The source :#{source} is deprecated because HTTP " \
+ Bundler::SharedHelpers.major_deprecation 3, "The source :#{source} is deprecated because HTTP " \
"requests are insecure.\nPlease change your source to 'https://" \
"rubygems.org' if possible, or 'http://rubygems.org' if not."
"http://rubygems.org"
@@ -474,13 +474,13 @@ repo_name ||= user_name
msg = "This Gemfile contains multiple primary sources. " \
"Each source after the first must include a block to indicate which gems " \
"should come from that source"
- unless Bundler.feature_flag.bundler_2_mode?
+ unless Bundler.feature_flag.bundler_3_mode?
msg += ". To downgrade this error to a warning, run " \
"`bundle config --delete disable_multisource`"
end
raise GemfileEvalError, msg
else
- Bundler::SharedHelpers.major_deprecation 2, "Your Gemfile contains multiple primary sources. " \
+ Bundler::SharedHelpers.major_deprecation 3, "Your Gemfile contains multiple primary sources. " \
"Using `source` more than once without a block is a security risk, and " \
"may result in installing unexpected gems. To resolve this warning, use " \
"a block to indicate which gems should come from the secondary source. " \
@@ -498,8 +498,8 @@ repo_name ||= user_name
"do |repo_name|\n#{replacement.to_s.gsub(/^/, " ")}\n end"
end
- Bundler::SharedHelpers.major_deprecation 2, <<-EOS
-The :#{name} git source is deprecated, and will be removed in Bundler 2.0.#{additional_message} Add this code to the top of your Gemfile to ensure it continues to work:
+ Bundler::SharedHelpers.major_deprecation 3, <<-EOS
+The :#{name} git source is deprecated, and will be removed in Bundler 3.0.#{additional_message} Add this code to the top of your Gemfile to ensure it continues to work:
git_source(:#{name}) #{replacement}
diff --git a/lib/bundler/feature_flag.rb b/lib/bundler/feature_flag.rb
index 249170c4b2..e5b4e84063 100644
--- a/lib/bundler/feature_flag.rb
+++ b/lib/bundler/feature_flag.rb
@@ -27,38 +27,39 @@ module Bundler
(1..10).each {|v| define_method("bundler_#{v}_mode?") { major_version >= v } }
- settings_flag(:allow_bundler_dependency_conflicts) { bundler_2_mode? }
- settings_flag(:allow_offline_install) { bundler_2_mode? }
- settings_flag(:auto_clean_without_path) { bundler_2_mode? }
- settings_flag(:auto_config_jobs) { bundler_2_mode? }
- settings_flag(:cache_all) { bundler_2_mode? }
- settings_flag(:cache_command_is_package) { bundler_2_mode? }
- settings_flag(:console_command) { !bundler_2_mode? }
- settings_flag(:default_install_uses_path) { bundler_2_mode? }
- settings_flag(:deployment_means_frozen) { bundler_2_mode? }
- settings_flag(:disable_multisource) { bundler_2_mode? }
+ settings_flag(:allow_bundler_dependency_conflicts) { bundler_3_mode? }
+ settings_flag(:allow_offline_install) { bundler_3_mode? }
+ settings_flag(:auto_clean_without_path) { bundler_3_mode? }
+ settings_flag(:auto_config_jobs) { bundler_3_mode? }
+ settings_flag(:cache_all) { bundler_3_mode? }
+ settings_flag(:cache_command_is_package) { bundler_3_mode? }
+ settings_flag(:console_command) { !bundler_3_mode? }
+ settings_flag(:default_install_uses_path) { bundler_3_mode? }
+ settings_flag(:deployment_means_frozen) { bundler_3_mode? }
+ settings_flag(:disable_multisource) { bundler_3_mode? }
settings_flag(:error_on_stderr) { bundler_2_mode? }
- settings_flag(:forget_cli_options) { bundler_2_mode? }
- settings_flag(:global_path_appends_ruby_scope) { bundler_2_mode? }
- settings_flag(:global_gem_cache) { bundler_2_mode? }
- settings_flag(:init_gems_rb) { bundler_2_mode? }
- settings_flag(:list_command) { bundler_2_mode? }
- settings_flag(:lockfile_uses_separate_rubygems_sources) { bundler_2_mode? }
- settings_flag(:only_update_to_newer_versions) { bundler_2_mode? }
- settings_flag(:path_relative_to_cwd) { bundler_2_mode? }
+ settings_flag(:forget_cli_options) { bundler_3_mode? }
+ settings_flag(:global_path_appends_ruby_scope) { bundler_3_mode? }
+ settings_flag(:global_gem_cache) { bundler_3_mode? }
+ settings_flag(:init_gems_rb) { bundler_3_mode? }
+ settings_flag(:list_command) { bundler_3_mode? }
+ settings_flag(:lockfile_uses_separate_rubygems_sources) { bundler_3_mode? }
+ settings_flag(:lockfile_upgrade_warning) { bundler_3_mode? }
+ settings_flag(:only_update_to_newer_versions) { bundler_3_mode? }
+ settings_flag(:path_relative_to_cwd) { bundler_3_mode? }
settings_flag(:plugins) { @bundler_version >= Gem::Version.new("1.14") }
- settings_flag(:prefer_gems_rb) { bundler_2_mode? }
- settings_flag(:print_only_version_number) { bundler_2_mode? }
- settings_flag(:setup_makes_kernel_gem_public) { !bundler_2_mode? }
- settings_flag(:skip_default_git_sources) { bundler_2_mode? }
- settings_flag(:specific_platform) { bundler_2_mode? }
- settings_flag(:suppress_install_using_messages) { bundler_2_mode? }
- settings_flag(:unlock_source_unlocks_spec) { !bundler_2_mode? }
- settings_flag(:update_requires_all_flag) { bundler_2_mode? }
- settings_flag(:use_gem_version_promoter_for_major_updates) { bundler_2_mode? }
- settings_flag(:viz_command) { !bundler_2_mode? }
+ settings_flag(:prefer_gems_rb) { bundler_3_mode? }
+ settings_flag(:print_only_version_number) { bundler_3_mode? }
+ settings_flag(:setup_makes_kernel_gem_public) { !bundler_3_mode? }
+ settings_flag(:skip_default_git_sources) { bundler_3_mode? }
+ settings_flag(:specific_platform) { bundler_3_mode? }
+ settings_flag(:suppress_install_using_messages) { bundler_3_mode? }
+ settings_flag(:unlock_source_unlocks_spec) { !bundler_3_mode? }
+ settings_flag(:update_requires_all_flag) { bundler_3_mode? }
+ settings_flag(:use_gem_version_promoter_for_major_updates) { bundler_3_mode? }
+ settings_flag(:viz_command) { !bundler_3_mode? }
- settings_option(:default_cli_command) { bundler_2_mode? ? :cli_help : :install }
+ settings_option(:default_cli_command) { bundler_3_mode? ? :cli_help : :install }
settings_method(:github_https?, "github.https") { bundler_2_mode? }
diff --git a/lib/bundler/rubygems_integration.rb b/lib/bundler/rubygems_integration.rb
index 783d106e7b..f088c2fdfb 100644
--- a/lib/bundler/rubygems_integration.rb
+++ b/lib/bundler/rubygems_integration.rb
@@ -465,7 +465,7 @@ module Bundler
raise Gem::Exception, "no default executable for #{spec.full_name}" unless exec_name ||= spec.default_executable
unless spec.name == gem_name
- Bundler::SharedHelpers.major_deprecation 2,
+ Bundler::SharedHelpers.major_deprecation 3,
"Bundler is using a binstub that was created for a different gem (#{spec.name}).\n" \
"You should run `bundle binstub #{gem_name}` " \
"to work around a system/bundle conflict."
diff --git a/lib/bundler/settings.rb b/lib/bundler/settings.rb
index fe68d510ff..66af31dab2 100644
--- a/lib/bundler/settings.rb
+++ b/lib/bundler/settings.rb
@@ -40,6 +40,7 @@ module Bundler
ignore_messages
init_gems_rb
list_command
+ lockfile_upgrade_warning
lockfile_uses_separate_rubygems_sources
major_deprecations
no_install
@@ -112,7 +113,7 @@ module Bundler
"bundle config #{key} #{Array(value).join(":")}"
end
- Bundler::SharedHelpers.major_deprecation 2,\
+ Bundler::SharedHelpers.major_deprecation 3,\
"flags passed to commands " \
"will no longer be automatically remembered. Instead please set flags " \
"you want remembered between commands using `bundle config " \
diff --git a/lib/bundler/shared_helpers.rb b/lib/bundler/shared_helpers.rb
index 3e2fe24b7a..50214901c5 100644
--- a/lib/bundler/shared_helpers.rb
+++ b/lib/bundler/shared_helpers.rb
@@ -157,8 +157,8 @@ module Bundler
next if gemfiles.empty?
break false if gemfiles.size == 1
end
- if multiple_gemfiles && Bundler.bundler_major_version == 1
- Bundler::SharedHelpers.major_deprecation 2, \
+ if multiple_gemfiles && Bundler.bundler_major_version == 2
+ Bundler::SharedHelpers.major_deprecation 3, \
"gems.rb and gems.locked will be preferred to Gemfile and Gemfile.lock."
end
diff --git a/lib/bundler/source/metadata.rb b/lib/bundler/source/metadata.rb
index 9c5657eef6..d9c93bfb67 100644
--- a/lib/bundler/source/metadata.rb
+++ b/lib/bundler/source/metadata.rb
@@ -19,9 +19,8 @@ module Bundler
# can't point to the actual gemspec or else the require paths will be wrong
s.loaded_from = File.expand_path("..", __FILE__)
end
- if loaded_spec = Bundler.rubygems.loaded_specs("bundler")
- idx << loaded_spec # this has to come after the fake gemspec, to override it
- elsif local_spec = Bundler.rubygems.find_name("bundler").find {|s| s.version.to_s == VERSION }
+
+ if local_spec = Bundler.rubygems.find_name("bundler").find {|s| s.version.to_s == VERSION }
idx << local_spec
end
diff --git a/lib/bundler/spec_set.rb b/lib/bundler/spec_set.rb
index 5003b2cbec..bbdf04a7d6 100644
--- a/lib/bundler/spec_set.rb
+++ b/lib/bundler/spec_set.rb
@@ -1,16 +1,12 @@
# frozen_string_literal: true
require "tsort"
-require "forwardable"
require "set"
module Bundler
class SpecSet
- extend Forwardable
- include TSort, Enumerable
-
- def_delegators :@specs, :<<, :length, :add, :remove, :size, :empty?
- def_delegators :sorted, :each
+ include Enumerable
+ include TSort
def initialize(specs)
@specs = specs
@@ -132,6 +128,26 @@ module Bundler
what_required(req) << spec
end
+ def <<(spec)
+ @specs << spec
+ end
+
+ def length
+ @specs.length
+ end
+
+ def size
+ @specs.size
+ end
+
+ def empty?
+ @specs.empty?
+ end
+
+ def each(&b)
+ sorted.each(&b)
+ end
+
private
def sorted
diff --git a/lib/bundler/templates/newgem/Gemfile.tt b/lib/bundler/templates/newgem/Gemfile.tt
index c114bd6665..4cd2e40f4f 100644
--- a/lib/bundler/templates/newgem/Gemfile.tt
+++ b/lib/bundler/templates/newgem/Gemfile.tt
@@ -1,6 +1,4 @@
source "https://rubygems.org"
-git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
-
# Specify your gem's dependencies in <%= config[:name] %>.gemspec
gemspec
diff --git a/lib/bundler/version.rb b/lib/bundler/version.rb
index 01b28c08eb..401f62447c 100644
--- a/lib/bundler/version.rb
+++ b/lib/bundler/version.rb
@@ -7,7 +7,7 @@ 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 = "1.17.2" unless defined?(::Bundler::VERSION)
+ VERSION = "2.0.1" unless defined?(::Bundler::VERSION)
def self.overwrite_loaded_gem_version
begin
diff --git a/lib/bundler/vlad.rb b/lib/bundler/vlad.rb
index 68181e7db8..a6b13435c9 100644
--- a/lib/bundler/vlad.rb
+++ b/lib/bundler/vlad.rb
@@ -1,7 +1,7 @@
# frozen_string_literal: true
require "bundler/shared_helpers"
-Bundler::SharedHelpers.major_deprecation 2,
+Bundler::SharedHelpers.major_deprecation 3,
"The Bundler task for Vlad"
# Vlad task for Bundler.