diff options
author | hsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-12-11 03:07:37 +0000 |
---|---|---|
committer | hsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-12-11 03:07:37 +0000 |
commit | 91533d9ab17a08385381d87991e01e8674e069a1 (patch) | |
tree | d12a91bc6cf5a524712a87e94a99345983f4806b | |
parent | 448e86d796b67d4535c2443f379031ace3388f60 (diff) | |
download | ruby-91533d9ab17a08385381d87991e01e8674e069a1.tar.gz |
Downgrade Bundler 1.17.x from 2.0.0.
We have the platform issue on heroku:
* https://gist.github.com/schneems/26452540f6e2bbbcf2ea144f45f6b305
* https://github.com/heroku/heroku-buildpack-ruby/issues/833
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66323 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
78 files changed, 460 insertions, 478 deletions
diff --git a/lib/bundler.rb b/lib/bundler.rb index cf3a289df2..1cb3b4fb21 100644 --- a/lib/bundler.rb +++ b/lib/bundler.rb @@ -119,7 +119,7 @@ module Bundler end def environment - SharedHelpers.major_deprecation 3, "Bundler.environment has been removed in favor of Bundler.load" + SharedHelpers.major_deprecation 2, "Bundler.environment has been removed in favor of Bundler.load" load end @@ -283,7 +283,7 @@ EOF # @deprecated Use `original_env` instead # @return [Hash] Environment with all bundler-related variables removed def clean_env - Bundler::SharedHelpers.major_deprecation(3, "`Bundler.clean_env` has weird edge cases, use `.original_env` instead") + Bundler::SharedHelpers.major_deprecation(2, "`Bundler.clean_env` has weird edge cases, use `.original_env` instead") env = original_env if env.key?("BUNDLER_ORIG_MANPATH") diff --git a/lib/bundler/capistrano.rb b/lib/bundler/capistrano.rb index 40e2e5dbe8..1b7145b72b 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 3, +Bundler::SharedHelpers.major_deprecation 2, "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 3efe193613..e658ffce72 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(3, "The `--force` option has been renamed to `--redownload`") if ARGV.include?("--force") + SharedHelpers.major_deprecation(2, "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(3, "The `--force` option has been renamed to `--redownload`") if ARGV.include?("--force") + SharedHelpers.major_deprecation(2, "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(3, "use `bundle #{new_argv}` instead of `bundle #{old_argv}`") + Bundler::SharedHelpers.major_deprecation(2, "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 3, "The `viz` command has been moved to the `bundle-viz` gem, see https://github.com/bundler/bundler-viz" + SharedHelpers.major_deprecation 2, "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 3, "The `inject` command has been replaced by the `add` command" + SharedHelpers.major_deprecation 2, "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 d45f30cdcf..853eca8358 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 3, "bundle console will be replaced " \ + Bundler::SharedHelpers.major_deprecation 2, "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 55e90ead0e..b40e5f0e9e 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 3, + Bundler::SharedHelpers.major_deprecation 2, "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 bf300a8437..b088853768 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 3, "Pass --all to `bundle update` to update everything" + SharedHelpers.major_deprecation 2, "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/definition.rb b/lib/bundler/definition.rb index c5e94c7123..8e56d4a9bc 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 && Bundler.feature_flag.lockfile_upgrade_warning? + if @locked_bundler_version 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 4c8f48d405..291e158ca0 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 3, "Bundler no longer integrates with " \ +Bundler::SharedHelpers.major_deprecation 2, "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 90ac073c36..ab59477145 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(3, msg.strip) + SharedHelpers.major_deprecation(2, msg.strip) end source_options = normalize_hash(options).merge( @@ -306,7 +306,7 @@ module Bundler repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/") # TODO: 2.0 upgrade this setting to the default if Bundler.settings["github.https"] - Bundler::SharedHelpers.major_deprecation 3, "The `github.https` setting will be removed" + Bundler::SharedHelpers.major_deprecation 2, "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 3, "The source :#{source} is deprecated because HTTP " \ + Bundler::SharedHelpers.major_deprecation 2, "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_3_mode? + unless Bundler.feature_flag.bundler_2_mode? msg += ". To downgrade this error to a warning, run " \ "`bundle config --delete disable_multisource`" end raise GemfileEvalError, msg else - Bundler::SharedHelpers.major_deprecation 3, "Your Gemfile contains multiple primary sources. " \ + Bundler::SharedHelpers.major_deprecation 2, "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 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: + 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: git_source(:#{name}) #{replacement} diff --git a/lib/bundler/feature_flag.rb b/lib/bundler/feature_flag.rb index e5b4e84063..83e7ff0389 100644 --- a/lib/bundler/feature_flag.rb +++ b/lib/bundler/feature_flag.rb @@ -27,41 +27,38 @@ module Bundler (1..10).each {|v| define_method("bundler_#{v}_mode?") { major_version >= v } } - 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(: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(:error_on_stderr) { 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(: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(:plugins) { @bundler_version >= Gem::Version.new("1.14") } - 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_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_option(:default_cli_command) { bundler_3_mode? ? :cli_help : :install } - - settings_method(:github_https?, "github.https") { bundler_2_mode? } + settings_option(:default_cli_command) { bundler_2_mode? ? :cli_help : :install } def initialize(bundler_version) @bundler_version = Gem::Version.create(bundler_version) diff --git a/lib/bundler/rubygems_integration.rb b/lib/bundler/rubygems_integration.rb index f088c2fdfb..783d106e7b 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 3, + Bundler::SharedHelpers.major_deprecation 2, "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 66af31dab2..fe68d510ff 100644 --- a/lib/bundler/settings.rb +++ b/lib/bundler/settings.rb @@ -40,7 +40,6 @@ module Bundler ignore_messages init_gems_rb list_command - lockfile_upgrade_warning lockfile_uses_separate_rubygems_sources major_deprecations no_install @@ -113,7 +112,7 @@ module Bundler "bundle config #{key} #{Array(value).join(":")}" end - Bundler::SharedHelpers.major_deprecation 3,\ + Bundler::SharedHelpers.major_deprecation 2,\ "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/setup.rb b/lib/bundler/setup.rb index 0ab582c2a2..ac6a5bf861 100644 --- a/lib/bundler/setup.rb +++ b/lib/bundler/setup.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -return unless defined?(Gem) - require "bundler/shared_helpers" if Bundler::SharedHelpers.in_bundle? diff --git a/lib/bundler/shared_helpers.rb b/lib/bundler/shared_helpers.rb index 50214901c5..3e2fe24b7a 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 == 2 - Bundler::SharedHelpers.major_deprecation 3, \ + if multiple_gemfiles && Bundler.bundler_major_version == 1 + Bundler::SharedHelpers.major_deprecation 2, \ "gems.rb and gems.locked will be preferred to Gemfile and Gemfile.lock." end diff --git a/lib/bundler/templates/newgem/Gemfile.tt b/lib/bundler/templates/newgem/Gemfile.tt index 4cd2e40f4f..c114bd6665 100644 --- a/lib/bundler/templates/newgem/Gemfile.tt +++ b/lib/bundler/templates/newgem/Gemfile.tt @@ -1,4 +1,6 @@ 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 da356fe50e..02ec96adc9 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 = "2.0.0" unless defined?(::Bundler::VERSION) + VERSION = "1.17.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 a6b13435c9..68181e7db8 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 3, +Bundler::SharedHelpers.major_deprecation 2, "The Bundler task for Vlad" # Vlad task for Bundler. diff --git a/libexec/bundle_ruby b/libexec/bundle_ruby index 2209c6195f..df6f8cc8a1 100755 --- a/libexec/bundle_ruby +++ b/libexec/bundle_ruby @@ -3,7 +3,7 @@ require "bundler/shared_helpers" -Bundler::SharedHelpers.major_deprecation(3, "the bundle_ruby executable has been removed in favor of `bundle platform --ruby`") +Bundler::SharedHelpers.major_deprecation(2, "the bundle_ruby executable has been removed in favor of `bundle platform --ruby`") Signal.trap("INT") { exit 1 } diff --git a/man/bundle-config.1 b/man/bundle-config.1 index 8c0b3683c6..80ef0c0715 100644 --- a/man/bundle-config.1 +++ b/man/bundle-config.1 @@ -1,7 +1,7 @@ .\" generated with Ronn/v0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3 . -.TH "BUNDLE\-CONFIG" "1" "November 2018" "" "" +.TH "BUNDLE\-CONFIG" "1" "December 2018" "" "" . .SH "NAME" \fBbundle\-config\fR \- Set bundler configuration options @@ -238,7 +238,7 @@ The following is a list of all configuration keys and their purpose\. You can le \fBpath\.system\fR (\fBBUNDLE_PATH__SYSTEM\fR): Whether Bundler will install gems into the default system path (\fBGem\.dir\fR)\. . .IP "\(bu" 4 -\fBpath_relative_to_cwd\fR (\fBBUNDLE_PATH_RELATIVE_TO_CWD\fR) Makes \fB\-\-path\fR relative to the CWD instead of the \fBGemfile\fR\. +\fBpath_relative_to_cwd\fR (\fBPATH_RELATIVE_TO_CWD\fR) Makes \fB\-\-path\fR relative to the CWD instead of the \fBGemfile\fR\. . .IP "\(bu" 4 \fBplugins\fR (\fBBUNDLE_PLUGINS\fR): Enable Bundler\'s experimental plugin system\. diff --git a/man/bundle-config.1.txt b/man/bundle-config.1.txt index 9b07159342..f8f421c3db 100644 --- a/man/bundle-config.1.txt +++ b/man/bundle-config.1.txt @@ -282,8 +282,8 @@ BUNDLE-CONFIG(1) BUNDLE-CONFIG(1) o 1mpath.system 22m(1mBUNDLE_PATH__SYSTEM22m): Whether Bundler will install gems into the default system path (1mGem.dir22m). - o 1mpath_relative_to_cwd 22m(1mBUNDLE_PATH_RELATIVE_TO_CWD22m) Makes 1m--path0m - relative to the CWD instead of the 1mGemfile22m. + o 1mpath_relative_to_cwd 22m(1mPATH_RELATIVE_TO_CWD22m) Makes 1m--path 22mrelative + to the CWD instead of the 1mGemfile22m. o 1mplugins 22m(1mBUNDLE_PLUGINS22m): Enable Bundler's experimental plugin sys- tem. @@ -526,4 +526,4 @@ BUNDLE-CONFIG(1) BUNDLE-CONFIG(1) - November 2018 BUNDLE-CONFIG(1) + December 2018 BUNDLE-CONFIG(1) diff --git a/man/bundle-install.1 b/man/bundle-install.1 index 2549562b76..c70f92eb25 100644 --- a/man/bundle-install.1 +++ b/man/bundle-install.1 @@ -1,13 +1,13 @@ .\" generated with Ronn/v0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3 . -.TH "BUNDLE\-INSTALL" "1" "November 2018" "" "" +.TH "BUNDLE\-INSTALL" "1" "December 2018" "" "" . .SH "NAME" \fBbundle\-install\fR \- Install the dependencies specified in your Gemfile . .SH "SYNOPSIS" -\fBbundle install\fR [\-\-binstubs[=DIRECTORY]] [\-\-clean] [\-\-deployment] [\-\-frozen] [\-\-full\-index] [\-\-gemfile=GEMFILE] [\-\-jobs=NUMBER] [\-\-local] [\-\-no\-cache] [\-\-no\-prune] [\-\-path PATH] [\-\-quiet] [\-\-redownload] [\-\-retry=NUMBER] [\-\-shebang] [\-\-standalone[=GROUP[ GROUP\.\.\.]]] [\-\-system] [\-\-trust\-policy=POLICY] [\-\-with=GROUP[ GROUP\.\.\.]] [\-\-without=GROUP[ GROUP\.\.\.]] +\fBbundle install\fR [\-\-binstubs[=DIRECTORY]] [\-\-clean] [\-\-deployment] [\-\-force] [\-\-frozen] [\-\-full\-index] [\-\-gemfile=GEMFILE] [\-\-jobs=NUMBER] [\-\-local] [\-\-no\-cache] [\-\-no\-prune] [\-\-path PATH] [\-\-quiet] [\-\-retry=NUMBER] [\-\-shebang] [\-\-standalone[=GROUP[ GROUP\.\.\.]]] [\-\-system] [\-\-trust\-policy=POLICY] [\-\-with=GROUP[ GROUP\.\.\.]] [\-\-without=GROUP[ GROUP\.\.\.]] . .SH "DESCRIPTION" Install the gems specified in your Gemfile(5)\. If this is the first time you run bundle install (and a \fBGemfile\.lock\fR does not exist), Bundler will fetch all remote sources, resolve dependencies and install all needed gems\. @@ -23,10 +23,7 @@ To apply any of \fB\-\-binstubs\fR, \fB\-\-deployment\fR, \fB\-\-path\fR, or \fB . .TP \fB\-\-binstubs[=<directory>]\fR -Binstubs are scripts that wrap around executables\. Bundler creates a small Ruby file (a binstub) that loads Bundler, runs the command, and puts it in \fBbin/\fR\. This lets you link the binstub inside of an application to the exact gem version the application needs\. -. -.IP -Creates a directory (defaults to \fB~/bin\fR) and places any executables from the gem there\. These executables run in Bundler\'s context\. If used, you might add this directory to your environment\'s \fBPATH\fR variable\. For instance, if the \fBrails\fR gem comes with a \fBrails\fR executable, this flag will create a \fBbin/rails\fR executable that ensures that all referred dependencies will be resolved using the bundled gems\. +Creates a directory (defaults to \fB~/bin\fR) and place any executables from the gem there\. These executables run in Bundler\'s context\. If used, you might add this directory to your environment\'s \fBPATH\fR variable\. For instance, if the \fBrails\fR gem comes with a \fBrails\fR executable, this flag will create a \fBbin/rails\fR executable that ensures that all referred dependencies will be resolved using the bundled gems\. . .TP \fB\-\-clean\fR @@ -37,8 +34,8 @@ On finishing the installation Bundler is going to remove any gems not present in In \fIdeployment mode\fR, Bundler will \'roll\-out\' the bundle for production or CI use\. Please check carefully if you want to have this option enabled in your development environment\. . .TP -\fB\-\-redownload\fR -Force download every gem, even if the required versions are already available locally\. +\fB\-\-force\fR +Force download every gem, even if the required versions are already available locally\. \fB\-\-redownload\fR is an alias of this option\. . .TP \fB\-\-frozen\fR diff --git a/man/bundle-install.1.txt b/man/bundle-install.1.txt index 004a5224b2..93118629c7 100644 --- a/man/bundle-install.1.txt +++ b/man/bundle-install.1.txt @@ -7,8 +7,8 @@ BUNDLE-INSTALL(1) BUNDLE-INSTALL(1) 1mSYNOPSIS0m 1mbundle install 22m[--binstubs[=DIRECTORY]] [--clean] [--deployment] - [--frozen] [--full-index] [--gemfile=GEMFILE] [--jobs=NUMBER] [--local] - [--no-cache] [--no-prune] [--path PATH] [--quiet] [--redownload] + [--force] [--frozen] [--full-index] [--gemfile=GEMFILE] [--jobs=NUMBER] + [--local] [--no-cache] [--no-prune] [--path PATH] [--quiet] [--retry=NUMBER] [--shebang] [--standalone[=GROUP[ GROUP...]]] [--sys- tem] [--trust-policy=POLICY] [--with=GROUP[ GROUP...]] [--with- out=GROUP[ GROUP...]] @@ -34,13 +34,7 @@ BUNDLE-INSTALL(1) BUNDLE-INSTALL(1) time 1mbundle install 22mis run, use 1mbundle config 22m(see bundle-config(1)). 1m--binstubs[=<directory>]0m - Binstubs are scripts that wrap around executables. Bundler cre- - ates a small Ruby file (a binstub) that loads Bundler, runs the - command, and puts it in 1mbin/22m. This lets you link the binstub - inside of an application to the exact gem version the applica- - tion needs. - - Creates a directory (defaults to 1m~/bin22m) and places any executa- + Creates a directory (defaults to 1m~/bin22m) and place any executa- bles from the gem there. These executables run in Bundler's con- text. If used, you might add this directory to your environ- ment's 1mPATH 22mvariable. For instance, if the 1mrails 22mgem comes with @@ -58,57 +52,58 @@ BUNDLE-INSTALL(1) BUNDLE-INSTALL(1) duction or CI use. Please check carefully if you want to have this option enabled in your development environment. - 1m--redownload0m + 1m--force0m Force download every gem, even if the required versions are - already available locally. + already available locally. 1m--redownload 22mis an alias of this + option. 1m--frozen0m - Do not allow the Gemfile.lock to be updated after this install. - Exits non-zero if there are going to be changes to the Gem- + Do not allow the Gemfile.lock to be updated after this install. + Exits non-zero if there are going to be changes to the Gem- file.lock. 1m--full-index0m Bundler will not call Rubygems' API endpoint (default) but down- load and cache a (currently big) index file of all gems. Perfor- - mance can be improved for large bundles that seldom change by + mance can be improved for large bundles that seldom change by enabling this option. 1m--gemfile=<gemfile>0m - The location of the Gemfile(5) which Bundler should use. This - defaults to a Gemfile(5) in the current working directory. In + The location of the Gemfile(5) which Bundler should use. This + defaults to a Gemfile(5) in the current working directory. In general, Bundler will assume that the location of the Gemfile(5) is also the project's root and will try to find 1mGemfile.lock 22mand 1mvendor/cache 22mrelative to this location. 1m--jobs=[<number>]22m, 1m-j[<number>]0m - The maximum number of parallel download and install jobs. The + The maximum number of parallel download and install jobs. The default is 1m122m. 1m--local0m Do not attempt to connect to 1mrubygems.org22m. Instead, Bundler will - use the gems already present in Rubygems' cache or in 1mven-0m - 1mdor/cache22m. Note that if a appropriate platform-specific gem + use the gems already present in Rubygems' cache or in 1mven-0m + 1mdor/cache22m. Note that if a appropriate platform-specific gem exists on 1mrubygems.org 22mit will not be found. 1m--no-cache0m - Do not update the cache in 1mvendor/cache 22mwith the newly bundled - gems. This does not remove any gems in the cache but keeps the + Do not update the cache in 1mvendor/cache 22mwith the newly bundled + gems. This does not remove any gems in the cache but keeps the newly bundled gems from being cached during the install. 1m--no-prune0m - Don't remove stale gems from the cache when the installation + Don't remove stale gems from the cache when the installation finishes. 1m--path=<path>0m - The location to install the specified gems to. This defaults to - Rubygems' setting. Bundler shares this location with Rubygems, - 1mgem install ... 22mwill have gem installed there, too. Therefore, - gems installed without a 1m--path ... 22msetting will show up by + The location to install the specified gems to. This defaults to + Rubygems' setting. Bundler shares this location with Rubygems, + 1mgem install ... 22mwill have gem installed there, too. Therefore, + gems installed without a 1m--path ... 22msetting will show up by calling 1mgem list22m. Accordingly, gems installed to other locations will not get listed. 1m--quiet0m - Do not print progress information to the standard output. + Do not print progress information to the standard output. Instead, Bundler will exit using a status code (1m$?22m). 1m--retry=[<number>]0m @@ -116,34 +111,34 @@ BUNDLE-INSTALL(1) BUNDLE-INSTALL(1) 1m--shebang=<ruby-executable>0m Uses the specified ruby executable (usually 1mruby22m) to execute the - scripts created with 1m--binstubs22m. In addition, if you use 1m--bin-0m - 1mstubs 22mtogether with 1m--shebang jruby 22mthese executables will be + scripts created with 1m--binstubs22m. In addition, if you use 1m--bin-0m + 1mstubs 22mtogether with 1m--shebang jruby 22mthese executables will be changed to execute 1mjruby 22minstead. 1m--standalone[=<list>]0m - Makes a bundle that can work without depending on Rubygems or - Bundler at runtime. A space separated list of groups to install - has to be specified. Bundler creates a directory named 1mbundle0m + Makes a bundle that can work without depending on Rubygems or + Bundler at runtime. A space separated list of groups to install + has to be specified. Bundler creates a directory named 1mbundle0m and installs the bundle there. It also generates a 1mbun-0m - 1mdle/bundler/setup.rb 22mfile to replace Bundler's own setup in the - manner required. Using this option implicitly sets 1mpath22m, which + 1mdle/bundler/setup.rb 22mfile to replace Bundler's own setup in the + manner required. Using this option implicitly sets 1mpath22m, which is a [remembered option][REMEMBERED OPTIONS]. 1m--system0m - Installs the gems specified in the bundle to the system's - Rubygems location. This overrides any previous configuration of + Installs the gems specified in the bundle to the system's + Rubygems location. This overrides any previous configuration of 1m--path22m. 1m--trust-policy=[<policy>]0m - Apply the Rubygems security policy 4mpolicy24m, where policy is one - of 1mHighSecurity22m, 1mMediumSecurity22m, 1mLowSecurity22m, 1mAlmostNoSecurity22m, + Apply the Rubygems security policy 4mpolicy24m, where policy is one + of 1mHighSecurity22m, 1mMediumSecurity22m, 1mLowSecurity22m, 1mAlmostNoSecurity22m, or 1mNoSecurity22m. For more details, please see the Rubygems signing documentation linked below in 4mSEE24m 4mALSO24m. 1m--with=<list>0m A space-separated list of groups referencing gems to install. If - an optional group is given it is installed. If a group is given - that is in the remembered list of groups given to --without, it + an optional group is given it is installed. If a group is given + that is in the remembered list of groups given to --without, it is removed from that list. 1m--without=<list>0m @@ -153,41 +148,41 @@ BUNDLE-INSTALL(1) BUNDLE-INSTALL(1) 1mDEPLOYMENT MODE0m Bundler's defaults are optimized for development. To switch to defaults - optimized for deployment and for CI, use the 1m--deployment 22mflag. Do not - activate deployment mode on development machines, as it will cause an + optimized for deployment and for CI, use the 1m--deployment 22mflag. Do not + activate deployment mode on development machines, as it will cause an error when the Gemfile(5) is modified. 1. A 1mGemfile.lock 22mis required. To ensure that the same versions of the gems you developed with and - tested with are also used in deployments, a 1mGemfile.lock 22mis + tested with are also used in deployments, a 1mGemfile.lock 22mis required. - This is mainly to ensure that you remember to check your 1mGem-0m + This is mainly to ensure that you remember to check your 1mGem-0m 1mfile.lock 22minto version control. 2. The 1mGemfile.lock 22mmust be up to date - In development, you can modify your Gemfile(5) and re-run 1mbundle0m + In development, you can modify your Gemfile(5) and re-run 1mbundle0m 1minstall 22mto 4mconservatively24m 4mupdate24m your 1mGemfile.lock 22msnapshot. - In deployment, your 1mGemfile.lock 22mshould be up-to-date with changes + In deployment, your 1mGemfile.lock 22mshould be up-to-date with changes made in your Gemfile(5). - 3. Gems are installed to 1mvendor/bundle 22mnot your default system loca- + 3. Gems are installed to 1mvendor/bundle 22mnot your default system loca- tion - In development, it's convenient to share the gems used in your - application with other applications and other scripts that run on + In development, it's convenient to share the gems used in your + application with other applications and other scripts that run on the system. - In deployment, isolation is a more important default. In addition, - the user deploying the application may not have permission to - install gems to the system, or the web server may not have permis- + In deployment, isolation is a more important default. In addition, + the user deploying the application may not have permission to + install gems to the system, or the web server may not have permis- sion to read them. - As a result, 1mbundle install --deployment 22minstalls gems to the 1mven-0m - 1mdor/bundle 22mdirectory in the application. This may be overridden + As a result, 1mbundle install --deployment 22minstalls gems to the 1mven-0m + 1mdor/bundle 22mdirectory in the application. This may be overridden using the 1m--path 22moption. @@ -195,12 +190,12 @@ BUNDLE-INSTALL(1) BUNDLE-INSTALL(1) 1mSUDO USAGE0m By default, Bundler installs gems to the same location as 1mgem install22m. - In some cases, that location may not be writable by your Unix user. In + In some cases, that location may not be writable by your Unix user. In that case, Bundler will stage everything in a temporary directory, then - ask you for your 1msudo 22mpassword in order to copy the gems into their + ask you for your 1msudo 22mpassword in order to copy the gems into their system location. - From your perspective, this is identical to installing the gems + From your perspective, this is identical to installing the gems directly into the system. You should never use 1msudo bundle install22m. This is because several other @@ -214,36 +209,36 @@ BUNDLE-INSTALL(1) BUNDLE-INSTALL(1) - Of these three, the first two could theoretically be performed by - 1mchown22ming the resulting files to 1m$SUDO_USER22m. The third, however, can - only be performed by invoking the 1mgit 22mcommand as the current user. - Therefore, git gems are downloaded and installed into 1m~/.bundle 22mrather + Of these three, the first two could theoretically be performed by + 1mchown22ming the resulting files to 1m$SUDO_USER22m. The third, however, can + only be performed by invoking the 1mgit 22mcommand as the current user. + Therefore, git gems are downloaded and installed into 1m~/.bundle 22mrather than $GEM_HOME or $BUNDLE_PATH. - As a result, you should run 1mbundle install 22mas the current user, and + As a result, you should run 1mbundle install 22mas the current user, and Bundler will ask for your password if it is needed to put the gems into their final location. 1mINSTALLING GROUPS0m - By default, 1mbundle install 22mwill install all gems in all groups in your + By default, 1mbundle install 22mwill install all gems in all groups in your Gemfile(5), except those declared for a different platform. - However, you can explicitly tell Bundler to skip installing certain - groups with the 1m--without 22moption. This option takes a space-separated + However, you can explicitly tell Bundler to skip installing certain + groups with the 1m--without 22moption. This option takes a space-separated list of groups. - While the 1m--without 22moption will skip 4minstalling24m the gems in the speci- - fied groups, it will still 4mdownload24m those gems and use them to resolve + While the 1m--without 22moption will skip 4minstalling24m the gems in the speci- + fied groups, it will still 4mdownload24m those gems and use them to resolve the dependencies of every gem in your Gemfile(5). This is so that installing a different set of groups on another machine - (such as a production server) will not change the gems and versions + (such as a production server) will not change the gems and versions that you have already developed and tested against. 1mBundler offers a rock-solid guarantee that the third-party code you are0m 1mrunning in development and testing is also the third-party code you are0m - 1mrunning in production. You can choose to exclude some of that code in0m - 1mdifferent environments, but you will never be caught flat-footed by0m + 1mrunning in production. You can choose to exclude some of that code in0m + 1mdifferent environments, but you will never be caught flat-footed by0m 1mdifferent versions of third-party code being used in different environ-0m 1mments.0m @@ -261,63 +256,63 @@ BUNDLE-INSTALL(1) BUNDLE-INSTALL(1) - In this case, 1msinatra 22mdepends on any version of Rack (1m>= 1.022m), while + In this case, 1msinatra 22mdepends on any version of Rack (1m>= 1.022m), while 1mrack-perftools-profiler 22mdepends on 1.x (1m~> 1.022m). - When you run 1mbundle install --without production 22min development, we - look at the dependencies of 1mrack-perftools-profiler 22mas well. That way, - you do not spend all your time developing against Rack 2.0, using new - APIs unavailable in Rack 1.x, only to have Bundler switch to Rack 1.2 + When you run 1mbundle install --without production 22min development, we + look at the dependencies of 1mrack-perftools-profiler 22mas well. That way, + you do not spend all your time developing against Rack 2.0, using new + APIs unavailable in Rack 1.x, only to have Bundler switch to Rack 1.2 when the 1mproduction 22mgroup 4mis24m used. - This should not cause any problems in practice, because we do not - attempt to 1minstall 22mthe gems in the excluded groups, and only evaluate + This should not cause any problems in practice, because we do not + attempt to 1minstall 22mthe gems in the excluded groups, and only evaluate as part of the dependency resolution process. - This also means that you cannot include different versions of the same - gem in different groups, because doing so would result in different + This also means that you cannot include different versions of the same + gem in different groups, because doing so would result in different sets of dependencies used in development and production. Because of the - vagaries of the dependency resolution process, this usually affects - more than the gems you list in your Gemfile(5), and can (surprisingly) + vagaries of the dependency resolution process, this usually affects + more than the gems you list in your Gemfile(5), and can (surprisingly) radically change the gems you are using. 1mTHE GEMFILE.LOCK0m - When you run 1mbundle install22m, Bundler will persist the full names and - versions of all gems that you used (including dependencies of the gems + When you run 1mbundle install22m, Bundler will persist the full names and + versions of all gems that you used (including dependencies of the gems specified in the Gemfile(5)) into a file called 1mGemfile.lock22m. Bundler uses this file in all subsequent calls to 1mbundle install22m, which guarantees that you always use the same exact code, even as your appli- cation moves across machines. - Because of the way dependency resolution works, even a seemingly small + Because of the way dependency resolution works, even a seemingly small change (for instance, an update to a point-release of a dependency of a - gem in your Gemfile(5)) can result in radically different gems being + gem in your Gemfile(5)) can result in radically different gems being needed to satisfy all dependencies. - As a result, you 1mSHOULD 22mcheck your 1mGemfile.lock 22minto version control, + As a result, you 1mSHOULD 22mcheck your 1mGemfile.lock 22minto version control, in both applications and gems. If you do not, every machine that checks out your repository (including your production server) will resolve all - dependencies again, which will result in different versions of + dependencies again, which will result in different versions of third-party code being used if 1many 22mof the gems in the Gemfile(5) or any of their dependencies have been updated. - When Bundler first shipped, the 1mGemfile.lock 22mwas included in the 1m.git-0m + When Bundler first shipped, the 1mGemfile.lock 22mwas included in the 1m.git-0m 1mignore 22mfile included with generated gems. Over time, however, it became - clear that this practice forces the pain of broken dependencies onto + clear that this practice forces the pain of broken dependencies onto new contributors, while leaving existing contributors potentially - unaware of the problem. Since 1mbundle install 22mis usually the first step - towards a contribution, the pain of broken dependencies would discour- - age new contributors from contributing. As a result, we have revised - our guidance for gem authors to now recommend checking in the lock for + unaware of the problem. Since 1mbundle install 22mis usually the first step + towards a contribution, the pain of broken dependencies would discour- + age new contributors from contributing. As a result, we have revised + our guidance for gem authors to now recommend checking in the lock for gems. 1mCONSERVATIVE UPDATING0m - When you make a change to the Gemfile(5) and then run 1mbundle install22m, + When you make a change to the Gemfile(5) and then run 1mbundle install22m, Bundler will update only the gems that you modified. - In other words, if a gem that you 1mdid not modify 22mworked before you - called 1mbundle install22m, it will continue to use the exact same versions + In other words, if a gem that you 1mdid not modify 22mworked before you + called 1mbundle install22m, it will continue to use the exact same versions of all dependencies as it used before the update. Let's take a look at an example. Here's your original Gemfile(5): @@ -331,13 +326,13 @@ BUNDLE-INSTALL(1) BUNDLE-INSTALL(1) - In this case, both 1mactionpack 22mand 1mactivemerchant 22mdepend on 1mactivesup-0m - 1mport22m. The 1mactionpack 22mgem depends on 1mactivesupport 2.3.8 22mand 1mrack ~>0m - 1m1.1.022m, while the 1mactivemerchant 22mgem depends on 1mactivesupport >= 2.3.222m, + In this case, both 1mactionpack 22mand 1mactivemerchant 22mdepend on 1mactivesup-0m + 1mport22m. The 1mactionpack 22mgem depends on 1mactivesupport 2.3.8 22mand 1mrack ~>0m + 1m1.1.022m, while the 1mactivemerchant 22mgem depends on 1mactivesupport >= 2.3.222m, 1mbraintree >= 2.0.022m, and 1mbuilder >= 2.0.022m. - When the dependencies are first resolved, Bundler will select - 1mactivesupport 2.3.822m, which satisfies the requirements of both gems in + When the dependencies are first resolved, Bundler will select + 1mactivesupport 2.3.822m, which satisfies the requirements of both gems in your Gemfile(5). Next, you modify your Gemfile(5) to: @@ -351,44 +346,44 @@ BUNDLE-INSTALL(1) BUNDLE-INSTALL(1) - The 1mactionpack 3.0.0.rc 22mgem has a number of new dependencies, and - updates the 1mactivesupport 22mdependency to 1m= 3.0.0.rc 22mand the 1mrack 22mdepen- + The 1mactionpack 3.0.0.rc 22mgem has a number of new dependencies, and + updates the 1mactivesupport 22mdependency to 1m= 3.0.0.rc 22mand the 1mrack 22mdepen- dency to 1m~> 1.2.122m. - When you run 1mbundle install22m, Bundler notices that you changed the - 1mactionpack 22mgem, but not the 1mactivemerchant 22mgem. It evaluates the gems + When you run 1mbundle install22m, Bundler notices that you changed the + 1mactionpack 22mgem, but not the 1mactivemerchant 22mgem. It evaluates the gems currently being used to satisfy its requirements: 1mactivesupport 2.3.80m - also used to satisfy a dependency in 1mactivemerchant22m, which is + also used to satisfy a dependency in 1mactivemerchant22m, which is not being updated 1mrack ~> 1.1.00m not currently being used to satisfy another dependency - Because you did not explicitly ask to update 1mactivemerchant22m, you would - not expect it to suddenly stop working after updating 1mactionpack22m. How- - ever, satisfying the new 1mactivesupport 3.0.0.rc 22mdependency of action- + Because you did not explicitly ask to update 1mactivemerchant22m, you would + not expect it to suddenly stop working after updating 1mactionpack22m. How- + ever, satisfying the new 1mactivesupport 3.0.0.rc 22mdependency of action- pack requires updating one of its dependencies. - Even though 1mactivemerchant 22mdeclares a very loose dependency that theo- - retically matches 1mactivesupport 3.0.0.rc22m, Bundler treats gems in your - Gemfile(5) that have not changed as an atomic unit together with their + Even though 1mactivemerchant 22mdeclares a very loose dependency that theo- + retically matches 1mactivesupport 3.0.0.rc22m, Bundler treats gems in your + Gemfile(5) that have not changed as an atomic unit together with their dependencies. In this case, the 1mactivemerchant 22mdependency is treated as - 1mactivemerchant 1.7.1 + activesupport 2.3.822m, so 1mbundle install 22mwill + 1mactivemerchant 1.7.1 + activesupport 2.3.822m, so 1mbundle install 22mwill report that it cannot update 1mactionpack22m. To explicitly update 1mactionpack22m, including its dependencies which other - gems in the Gemfile(5) still depend on, run 1mbundle update actionpack0m + gems in the Gemfile(5) still depend on, run 1mbundle update actionpack0m (see 1mbundle update(1)22m). - 1mSummary22m: In general, after making a change to the Gemfile(5) , you - should first try to run 1mbundle install22m, which will guarantee that no + 1mSummary22m: In general, after making a change to the Gemfile(5) , you + should first try to run 1mbundle install22m, which will guarantee that no other gem in the Gemfile(5) is impacted by the change. If that does not work, run bundle update(1) 4mbundle-update.1.html24m. 1mSEE ALSO0m - o Gem install docs + o Gem install docs 4mhttp://guides.rubygems.org/rubygems-basics/#installing-gems0m o Rubygems signing docs 4mhttp://guides.rubygems.org/security/0m @@ -398,4 +393,4 @@ BUNDLE-INSTALL(1) BUNDLE-INSTALL(1) - November 2018 BUNDLE-INSTALL(1) + December 2018 BUNDLE-INSTALL(1) diff --git a/man/bundle-update.1 b/man/bundle-update.1 index 3a303b582d..1fe205cff0 100644 --- a/man/bundle-update.1 +++ b/man/bundle-update.1 @@ -1,13 +1,13 @@ .\" generated with Ronn/v0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3 . -.TH "BUNDLE\-UPDATE" "1" "November 2018" "" "" +.TH "BUNDLE\-UPDATE" "1" "December 2018" "" "" . .SH "NAME" \fBbundle\-update\fR \- Update your gems to the latest available versions . .SH "SYNOPSIS" -\fBbundle update\fR \fI*gems\fR [\-\-all] [\-\-group=NAME] [\-\-source=NAME] [\-\-local] [\-\-ruby] [\-\-bundler[=VERSION]] [\-\-full\-index] [\-\-jobs=JOBS] [\-\-quiet] [\-\-patch|\-\-minor|\-\-major] [\-\-redownload] [\-\-strict] [\-\-conservative] +\fBbundle update\fR \fI*gems\fR [\-\-all] [\-\-group=NAME] [\-\-source=NAME] [\-\-local] [\-\-ruby] [\-\-bundler[=VERSION]] [\-\-full\-index] [\-\-jobs=JOBS] [\-\-quiet] [\-\-force] [\-\-patch|\-\-minor|\-\-major] [\-\-strict] [\-\-conservative] . .SH "DESCRIPTION" Update the gems specified (all gems, if \fB\-\-all\fR flag is used), ignoring the previously installed gems specified in the \fBGemfile\.lock\fR\. In general, you should use bundle install(1) \fIbundle\-install\.1\.html\fR to install the same exact gems and versions across machines\. @@ -58,8 +58,8 @@ Retry failed network or git requests for \fInumber\fR times\. Only output warnings and errors\. . .TP -\fB\-\-redownload\fR -Force downloading every gem\. +\fB\-\-force\fR +Force downloading every gem\. \fB\-\-redownload\fR is an alias of this option\. . .TP \fB\-\-patch\fR diff --git a/man/bundle-update.1.txt b/man/bundle-update.1.txt index 573842858d..1a206e2c49 100644 --- a/man/bundle-update.1.txt +++ b/man/bundle-update.1.txt @@ -8,7 +8,7 @@ BUNDLE-UPDATE(1) BUNDLE-UPDATE(1) 1mSYNOPSIS0m 1mbundle update 4m22m*gems24m [--all] [--group=NAME] [--source=NAME] [--local] [--ruby] [--bundler[=VERSION]] [--full-index] [--jobs=JOBS] [--quiet] - [--patch|--minor|--major] [--redownload] [--strict] [--conservative] + [--force] [--patch|--minor|--major] [--strict] [--conservative] 1mDESCRIPTION0m Update the gems specified (all gems, if 1m--all 22mflag is used), ignoring @@ -57,8 +57,9 @@ BUNDLE-UPDATE(1) BUNDLE-UPDATE(1) 1m--quiet0m Only output warnings and errors. - 1m--redownload0m - Force downloading every gem. + 1m--force0m + Force downloading every gem. 1m--redownload 22mis an alias of this + option. 1m--patch0m Prefer updating only to next patch version. @@ -78,8 +79,8 @@ BUNDLE-UPDATE(1) BUNDLE-UPDATE(1) shared dependencies to be updated. 1mUPDATING ALL GEMS0m - If you run 1mbundle update --all22m, bundler will ignore any previously - installed gems and resolve all dependencies again based on the latest + If you run 1mbundle update --all22m, bundler will ignore any previously + installed gems and resolve all dependencies again based on the latest versions of all gems available in the sources. Consider the following Gemfile(5): @@ -93,8 +94,8 @@ BUNDLE-UPDATE(1) BUNDLE-UPDATE(1) - When you run bundle install(1) 4mbundle-install.1.html24m the first time, - bundler will resolve all of the dependencies, all the way down, and + When you run bundle install(1) 4mbundle-install.1.html24m the first time, + bundler will resolve all of the dependencies, all the way down, and install what you need: @@ -133,43 +134,43 @@ BUNDLE-UPDATE(1) BUNDLE-UPDATE(1) - As you can see, even though you have two gems in the Gemfile(5), your - application needs 26 different gems in order to run. Bundler remembers - the exact versions it installed in 1mGemfile.lock22m. The next time you run - bundle install(1) 4mbundle-install.1.html24m, bundler skips the dependency + As you can see, even though you have two gems in the Gemfile(5), your + application needs 26 different gems in order to run. Bundler remembers + the exact versions it installed in 1mGemfile.lock22m. The next time you run + bundle install(1) 4mbundle-install.1.html24m, bundler skips the dependency resolution and installs the same gems as it installed last time. - After checking in the 1mGemfile.lock 22minto version control and cloning it - on another machine, running bundle install(1) 4mbundle-install.1.html0m - will 4mstill24m install the gems that you installed last time. You don't + After checking in the 1mGemfile.lock 22minto version control and cloning it + on another machine, running bundle install(1) 4mbundle-install.1.html0m + will 4mstill24m install the gems that you installed last time. You don't need to worry that a new release of 1merubis 22mor 1mmail 22mchanges the gems you use. - However, from time to time, you might want to update the gems you are - using to the newest versions that still match the gems in your Gem- + However, from time to time, you might want to update the gems you are + using to the newest versions that still match the gems in your Gem- file(5). - To do this, run 1mbundle update --all22m, which will ignore the 1mGem-0m - 1mfile.lock22m, and resolve all the dependencies again. Keep in mind that - this process can result in a significantly different set of the 25 - gems, based on the requirements of new gems that the gem authors + To do this, run 1mbundle update --all22m, which will ignore the 1mGem-0m + 1mfile.lock22m, and resolve all the dependencies again. Keep in mind that + this process can result in a significantly different set of the 25 + gems, based on the requirements of new gems that the gem authors released since the last time you ran 1mbundle update --all22m. 1mUPDATING A LIST OF GEMS0m Sometimes, you want to update a single gem in the Gemfile(5), and leave - the rest of the gems that you specified locked to the versions in the + the rest of the gems that you specified locked to the versions in the 1mGemfile.lock22m. - For instance, in the scenario above, imagine that 1mnokogiri 22mreleases + For instance, in the scenario above, imagine that 1mnokogiri 22mreleases version 1m1.4.422m, and you want to update it 4mwithout24m updating Rails and all of its dependencies. To do this, run 1mbundle update nokogiri22m. - Bundler will update 1mnokogiri 22mand any of its dependencies, but leave + Bundler will update 1mnokogiri 22mand any of its dependencies, but leave alone Rails and its dependencies. 1mOVERLAPPING DEPENDENCIES0m - Sometimes, multiple gems declared in your Gemfile(5) are satisfied by - the same second-level dependency. For instance, consider the case of + Sometimes, multiple gems declared in your Gemfile(5) are satisfied by + the same second-level dependency. For instance, consider the case of 1mthin 22mand 1mrack-perftools-profiler22m. @@ -181,7 +182,7 @@ BUNDLE-UPDATE(1) BUNDLE-UPDATE(1) - The 1mthin 22mgem depends on 1mrack >= 1.022m, while 1mrack-perftools-profiler0m + The 1mthin 22mgem depends on 1mrack >= 1.022m, while 1mrack-perftools-profiler0m depends on 1mrack ~> 1.022m. If you run bundle install, you get: @@ -199,14 +200,14 @@ BUNDLE-UPDATE(1) BUNDLE-UPDATE(1) In this case, the two gems have their own set of dependencies, but they - share 1mrack 22min common. If you run 1mbundle update thin22m, bundler will - update 1mdaemons22m, 1meventmachine 22mand 1mrack22m, which are dependencies of 1mthin22m, - but not 1mopen4 22mor 1mperftools.rb22m, which are dependencies of - 1mrack-perftools_profiler22m. Note that 1mbundle update thin 22mwill update 1mrack0m + share 1mrack 22min common. If you run 1mbundle update thin22m, bundler will + update 1mdaemons22m, 1meventmachine 22mand 1mrack22m, which are dependencies of 1mthin22m, + but not 1mopen4 22mor 1mperftools.rb22m, which are dependencies of + 1mrack-perftools_profiler22m. Note that 1mbundle update thin 22mwill update 1mrack0m even though it's 4malso24m a dependency of 1mrack-perftools_profiler22m. - In short, by default, when you update a gem using 1mbundle update22m, - bundler will update all dependencies of that gem, including those that + In short, by default, when you update a gem using 1mbundle update22m, + bundler will update all dependencies of that gem, including those that are also dependencies of another gem. To prevent updating shared dependencies, prior to version 1.14 the only @@ -214,8 +215,8 @@ BUNDLE-UPDATE(1) BUNDLE-UPDATE(1) 4mdle-install.1.html24m: In this scenario, updating the 1mthin 22mversion manually in the Gemfile(5), - and then running bundle install(1) 4mbundle-install.1.html24m will only - update 1mdaemons 22mand 1meventmachine22m, but not 1mrack22m. For more information, + and then running bundle install(1) 4mbundle-install.1.html24m will only + update 1mdaemons 22mand 1meventmachine22m, but not 1mrack22m. For more information, see the 1mCONSERVATIVE UPDATING 22msection of bundle install(1) 4mbun-0m 4mdle-install.1.html24m. @@ -223,8 +224,8 @@ BUNDLE-UPDATE(1) BUNDLE-UPDATE(1) vent shared dependencies from being updated. 1mPATCH LEVEL OPTIONS0m - Version 1.14 introduced 4 patch-level options that will influence how - gem versions are resolved. One of the following options can be used: + Version 1.14 introduced 4 patch-level options that will influence how + gem versions are resolved. One of the following options can be used: 1m--patch22m, 1m--minor 22mor 1m--major22m. 1m--strict 22mcan be added to further influence resolution. @@ -241,41 +242,41 @@ BUNDLE-UPDATE(1) BUNDLE-UPDATE(1) Do not allow any gem to be updated past latest 1m--patch 22m| 1m--minor0m | 1m--major22m. - When Bundler is resolving what versions to use to satisfy declared - requirements in the Gemfile or in parent gems, it looks up all avail- + When Bundler is resolving what versions to use to satisfy declared + requirements in the Gemfile or in parent gems, it looks up all avail- able versions, filters out any versions that don't satisfy the require- ment, and then, by default, sorts them from newest to oldest, consider- ing them in that order. - Providing one of the patch level options (e.g. 1m--patch22m) changes the - sort order of the satisfying versions, causing Bundler to consider the + Providing one of the patch level options (e.g. 1m--patch22m) changes the + sort order of the satisfying versions, causing Bundler to consider the latest 1m--patch 22mor 1m--minor 22mversion available before other versions. Note that versions outside the stated patch level could still be resolved to if necessary to find a suitable dependency graph. - For example, if gem 'foo' is locked at 1.0.2, with no gem requirement - defined in the Gemfile, and versions 1.0.3, 1.0.4, 1.1.0, 1.1.1, 2.0.0 + For example, if gem 'foo' is locked at 1.0.2, with no gem requirement + defined in the Gemfile, and versions 1.0.3, 1.0.4, 1.1.0, 1.1.1, 2.0.0 all exist, the default order of preference by default (1m--major22m) will be "2.0.0, 1.1.1, 1.1.0, 1.0.4, 1.0.3, 1.0.2". - If the 1m--patch 22moption is used, the order of preference will change to + If the 1m--patch 22moption is used, the order of preference will change to "1.0.4, 1.0.3, 1.0.2, 1.1.1, 1.1.0, 2.0.0". - If the 1m--minor 22moption is used, the order of preference will change to + If the 1m--minor 22moption is used, the order of preference will change to "1.1.1, 1.1.0, 1.0.4, 1.0.3, 1.0.2, 2.0.0". - Combining the 1m--strict 22moption with any of the patch level options will - remove any versions beyond the scope of the patch level option, to + Combining the 1m--strict 22moption with any of the patch level options will + remove any versions beyond the scope of the patch level option, to ensure that no gem is updated that far. - To continue the previous example, if both 1m--patch 22mand 1m--strict 22moptions + To continue the previous example, if both 1m--patch 22mand 1m--strict 22moptions are used, the available versions for resolution would be "1.0.4, 1.0.3, - 1.0.2". If 1m--minor 22mand 1m--strict 22mare used, it would be "1.1.1, 1.1.0, + 1.0.2". If 1m--minor 22mand 1m--strict 22mare used, it would be "1.1.1, 1.1.0, 1.0.4, 1.0.3, 1.0.2". - Gem requirements as defined in the Gemfile will still be the first + Gem requirements as defined in the Gemfile will still be the first determining factor for what versions are available. If the gem require- - ment for 1mfoo 22min the Gemfile is '~> 1.0', that will accomplish the same + ment for 1mfoo 22min the Gemfile is '~> 1.0', that will accomplish the same thing as providing the 1m--minor 22mand 1m--strict 22moptions. 1mPATCH LEVEL EXAMPLES0m @@ -324,26 +325,26 @@ BUNDLE-UPDATE(1) BUNDLE-UPDATE(1) - In case 1, bar is upgraded to 2.1.1, a minor version increase, because + In case 1, bar is upgraded to 2.1.1, a minor version increase, because the dependency from foo 1.4.5 required it. - In case 2, only foo is requested to be unlocked, but bar is also + In case 2, only foo is requested to be unlocked, but bar is also allowed to move because it's not a declared dependency in the Gemfile. - In case 3, bar goes up a whole major release, because a minor increase - is preferred now for foo, and when it goes to 1.5.1, it requires 3.0.0 + In case 3, bar goes up a whole major release, because a minor increase + is preferred now for foo, and when it goes to 1.5.1, it requires 3.0.0 of bar. In case 4, foo is preferred up to a minor version, but 1.5.1 won't work - because the --strict flag removes bar 3.0.0 from consideration since + because the --strict flag removes bar 3.0.0 from consideration since it's a major increment. - In case 5, both foo and bar have any minor or major increments removed - from consideration because of the --strict flag, so the most they can + In case 5, both foo and bar have any minor or major increments removed + from consideration because of the --strict flag, so the most they can move is up to 1.4.4 and 2.0.4. 1mRECOMMENDED WORKFLOW0m - In general, when working with an application managed with bundler, you + In general, when working with an application managed with bundler, you should use the following workflow: o After you create your Gemfile(5) for the first time, run @@ -354,7 +355,7 @@ BUNDLE-UPDATE(1) BUNDLE-UPDATE(1) $ git add Gemfile.lock - o When checking out this repository on another development machine, + o When checking out this repository on another development machine, run $ bundle install @@ -363,7 +364,7 @@ BUNDLE-UPDATE(1) BUNDLE-UPDATE(1) $ bundle install --deployment - o After changing the Gemfile(5) to reflect a new or update depen- + o After changing the Gemfile(5) to reflect a new or update depen- dency, run $ bundle install @@ -377,7 +378,7 @@ BUNDLE-UPDATE(1) BUNDLE-UPDATE(1) $ bundle update rails thin - o If you want to update all the gems to the latest possible versions + o If you want to update all the gems to the latest possible versions that still match the gems listed in the Gemfile(5), run $ bundle update --all @@ -387,4 +388,4 @@ BUNDLE-UPDATE(1) BUNDLE-UPDATE(1) - November 2018 BUNDLE-UPDATE(1) + December 2018 BUNDLE-UPDATE(1) diff --git a/spec/bundler/bundler/cli_spec.rb b/spec/bundler/bundler/cli_spec.rb index 9a2591ac96..c82d46587e 100644 --- a/spec/bundler/bundler/cli_spec.rb +++ b/spec/bundler/bundler/cli_spec.rb @@ -28,7 +28,7 @@ RSpec.describe "bundle executable" do end context "with no arguments" do - it "prints a concise help message", :bundler => "3" do + it "prints a concise help message", :bundler => "2" do bundle! "" expect(last_command.stderr).to be_empty expect(last_command.stdout).to include("Bundler version #{Bundler::VERSION}"). @@ -161,12 +161,12 @@ To install the latest version, run `gem install bundler --pre` end RSpec.describe "bundler executable" do - it "shows the bundler version just as the `bundle` executable does", :bundler => "< 3" do + it "shows the bundler version just as the `bundle` executable does", :bundler => "< 2" do bundler "--version" expect(out).to eq("Bundler version #{Bundler::VERSION}") end - it "shows the bundler version just as the `bundle` executable does", :bundler => "3" do + it "shows the bundler version just as the `bundle` executable does", :bundler => "2" do bundler "--version" expect(out).to eq(Bundler::VERSION) end diff --git a/spec/bundler/bundler/definition_spec.rb b/spec/bundler/bundler/definition_spec.rb index a38c0b05b0..ceb7b4bf05 100644 --- a/spec/bundler/bundler/definition_spec.rb +++ b/spec/bundler/bundler/definition_spec.rb @@ -13,6 +13,7 @@ RSpec.describe Bundler::Definition do subject { Bundler::Definition.new(nil, [], Bundler::SourceList.new, []) } it "raises an PermissionError with explanation" do + allow(File).to receive(:open).and_call_original expect(File).to receive(:open).with("Gemfile.lock", "wb"). and_raise(Errno::EACCES) expect { subject.lock("Gemfile.lock") }. @@ -23,6 +24,7 @@ RSpec.describe Bundler::Definition do subject { Bundler::Definition.new(nil, [], Bundler::SourceList.new, []) } it "raises a TemporaryResourceError with explanation" do + allow(File).to receive(:open).and_call_original expect(File).to receive(:open).with("Gemfile.lock", "wb"). and_raise(Errno::EAGAIN) expect { subject.lock("Gemfile.lock") }. @@ -32,7 +34,7 @@ RSpec.describe Bundler::Definition do end describe "detects changes" do - it "for a path gem with changes", :bundler => "< 3" do + it "for a path gem with changes", :bundler => "< 2" do build_lib "foo", "1.0", :path => lib_path("foo") install_gemfile <<-G @@ -70,7 +72,7 @@ RSpec.describe Bundler::Definition do G end - it "for a path gem with changes", :bundler => "3" do + it "for a path gem with changes", :bundler => "2" do build_lib "foo", "1.0", :path => lib_path("foo") install_gemfile <<-G @@ -108,7 +110,7 @@ RSpec.describe Bundler::Definition do G end - it "for a path gem with deps and no changes", :bundler => "< 3" do + it "for a path gem with deps and no changes", :bundler => "< 2" do build_lib "foo", "1.0", :path => lib_path("foo") do |s| s.add_dependency "rack", "1.0" s.add_development_dependency "net-ssh", "1.0" @@ -145,7 +147,7 @@ RSpec.describe Bundler::Definition do G end - it "for a path gem with deps and no changes", :bundler => "3" do + it "for a path gem with deps and no changes", :bundler => "2" do build_lib "foo", "1.0", :path => lib_path("foo") do |s| s.add_dependency "rack", "1.0" s.add_development_dependency "net-ssh", "1.0" diff --git a/spec/bundler/bundler/dsl_spec.rb b/spec/bundler/bundler/dsl_spec.rb index 94d54ad877..bffe4f1608 100644 --- a/spec/bundler/bundler/dsl_spec.rb +++ b/spec/bundler/bundler/dsl_spec.rb @@ -25,23 +25,7 @@ RSpec.describe Bundler::Dsl do expect { subject.git_source(:example) }.to raise_error(Bundler::InvalidOption) end - context "github_https feature flag" do - it "is true when github.https is true" do - bundle "config github.https true" - expect(Bundler.feature_flag.github_https?).to eq "true" - end - end - - context "default hosts (git, gist)", :bundler => "< 3" do - context "when github.https config is true" do - before { bundle "config github.https true" } - it "converts :github to :git using https" do - subject.gem("sparks", :github => "indirect/sparks") - github_uri = "https://github.com/indirect/sparks.git" - expect(subject.dependencies.first.source.uri).to eq(github_uri) - end - end - + context "default hosts (git, gist)", :bundler => "< 2" do it "converts :github to :git" do subject.gem("sparks", :github => "indirect/sparks") github_uri = "git://github.com/indirect/sparks.git" @@ -79,7 +63,7 @@ RSpec.describe Bundler::Dsl do end end - context "default git sources", :bundler => "3" do + context "default git sources", :bundler => "2" do it "has none" do expect(subject.instance_variable_get(:@git_sources)).to eq({}) end @@ -245,7 +229,7 @@ RSpec.describe Bundler::Dsl do # gem 'spree_api' # gem 'spree_backend' # end - describe "#github", :bundler => "< 3" do + describe "#github", :bundler => "< 2" do it "from github" do spree_gems = %w[spree_core spree_api spree_backend] subject.github "spree" do @@ -258,7 +242,7 @@ RSpec.describe Bundler::Dsl do end end - describe "#github", :bundler => "3" do + describe "#github", :bundler => "2" do it "from github" do expect do spree_gems = %w[spree_core spree_api spree_backend] diff --git a/spec/bundler/bundler/source_list_spec.rb b/spec/bundler/bundler/source_list_spec.rb index 541a46c6d0..ce3353012c 100644 --- a/spec/bundler/bundler/source_list_spec.rb +++ b/spec/bundler/bundler/source_list_spec.rb @@ -115,7 +115,7 @@ RSpec.describe Bundler::SourceList do end end - describe "#add_rubygems_remote", :bundler => "< 3" do + describe "#add_rubygems_remote", :bundler => "< 2" do let!(:returned_source) { source_list.add_rubygems_remote("https://rubygems.org/") } it "returns the aggregate rubygems source" do @@ -372,7 +372,7 @@ RSpec.describe Bundler::SourceList do source_list.add_git_source("uri" => "git://first-git.org/path.git") end - it "combines the rubygems sources into a single instance, removing duplicate remotes from the end", :bundler => "< 3" do + it "combines the rubygems sources into a single instance, removing duplicate remotes from the end", :bundler => "< 2" do expect(source_list.lock_sources).to eq [ Bundler::Source::Git.new("uri" => "git://first-git.org/path.git"), Bundler::Source::Git.new("uri" => "git://second-git.org/path.git"), @@ -391,7 +391,7 @@ RSpec.describe Bundler::SourceList do ] end - it "returns all sources, without combining rubygems sources", :bundler => "3" do + it "returns all sources, without combining rubygems sources", :bundler => "2" do expect(source_list.lock_sources).to eq [ Bundler::Source::Rubygems.new, Bundler::Source::Rubygems.new("remotes" => ["https://duplicate-rubygems.org"]), diff --git a/spec/bundler/cache/path_spec.rb b/spec/bundler/cache/path_spec.rb index 12be2dbcf8..8c6a843476 100644 --- a/spec/bundler/cache/path_spec.rb +++ b/spec/bundler/cache/path_spec.rb @@ -86,7 +86,7 @@ expect(bundled_app("vendor/cache/bar-1.0")).not_to exist end - it "raises a warning without --all", :bundler => "< 3" do + it "raises a warning without --all", :bundler => "< 2" do build_lib "foo" install_gemfile <<-G diff --git a/spec/bundler/commands/binstubs_spec.rb b/spec/bundler/commands/binstubs_spec.rb index 7f2e81c099..6a705d3423 100644 --- a/spec/bundler/commands/binstubs_spec.rb +++ b/spec/bundler/commands/binstubs_spec.rb @@ -134,33 +134,6 @@ RSpec.describe "bundle binstubs <gem>" do if ENV["BUNDLER_SPEC_SUB_VERSION"] let(:system_bundler_version) { Bundler::VERSION } end - - before do - gemfile <<-G - source "file:///Users/colby/Projects/bundler/tmp/gems/remote2" - gem "rack" - gem "prints_loaded_gems" - G - - lockfile <<-G - GEM - remote: file:///Users/colby/Projects/bundler/tmp/gems/remote2/ - specs: - prints_loaded_gems (1.0) - rack (1.2) - - PLATFORMS - ruby - - DEPENDENCIES - prints_loaded_gems - rack - - BUNDLED WITH - #{system_bundler_version} - G - end - it "runs bundler" do sys_exec! "#{bundled_app("bin/bundle")} install" expect(out).to eq %(system bundler #{system_bundler_version}\n["install"]) @@ -340,7 +313,7 @@ RSpec.describe "bundle binstubs <gem>" do expect(bundled_app("exec/rackup")).to exist end - it "setting is saved for bundle install", :bundler => "< 3" do + it "setting is saved for bundle install", :bundler => "< 2" do install_gemfile <<-G source "file://#{gem_repo1}" gem "rack" diff --git a/spec/bundler/commands/check_spec.rb b/spec/bundler/commands/check_spec.rb index 890f4b1356..f2af446fbf 100644 --- a/spec/bundler/commands/check_spec.rb +++ b/spec/bundler/commands/check_spec.rb @@ -92,7 +92,7 @@ RSpec.describe "bundle check" do expect(out).to include("Bundler can't satisfy your Gemfile's dependencies.") end - it "remembers --without option from install", :bundler => "< 3" do + it "remembers --without option from install", :bundler => "< 2" do gemfile <<-G source "file://#{gem_repo1}" group :foo do @@ -238,7 +238,7 @@ RSpec.describe "bundle check" do expect(last_command).to be_failure end - context "--path", :bundler => "< 3" do + context "--path", :bundler => "< 2" do before do gemfile <<-G source "file://#{gem_repo1}" @@ -254,7 +254,7 @@ RSpec.describe "bundle check" do expect(out).to include("The Gemfile's dependencies are satisfied") end - it "should write to .bundle/config", :bundler => "< 3" do + it "should write to .bundle/config", :bundler => "< 2" do bundle "check --path vendor/bundle" bundle! "check" end diff --git a/spec/bundler/commands/clean_spec.rb b/spec/bundler/commands/clean_spec.rb index 158d58d67c..37cbeeb4e7 100644 --- a/spec/bundler/commands/clean_spec.rb +++ b/spec/bundler/commands/clean_spec.rb @@ -142,7 +142,7 @@ RSpec.describe "bundle clean" do bundle :clean digest = Digest(:SHA1).hexdigest(git_path.to_s) - cache_path = Bundler.bundler_major_version < 3 ? vendored_gems("cache/bundler/git/foo-1.0-#{digest}") : home(".bundle/cache/git/foo-1.0-#{digest}") + cache_path = Bundler::VERSION.start_with?("1.") ? vendored_gems("cache/bundler/git/foo-1.0-#{digest}") : home(".bundle/cache/git/foo-1.0-#{digest}") expect(cache_path).to exist end @@ -343,7 +343,7 @@ RSpec.describe "bundle clean" do expect(out).to include("rack (1.0.0)").and include("thin (1.0)") end - it "--clean should override the bundle setting on install", :bundler => "< 3" do + it "--clean should override the bundle setting on install", :bundler => "< 2" do gemfile <<-G source "file://#{gem_repo1}" @@ -363,7 +363,7 @@ RSpec.describe "bundle clean" do should_not_have_gems "thin-1.0" end - it "--clean should override the bundle setting on update", :bundler => "< 3" do + it "--clean should override the bundle setting on update", :bundler => "< 2" do build_repo2 gemfile <<-G @@ -383,7 +383,7 @@ RSpec.describe "bundle clean" do should_not_have_gems "foo-1.0" end - it "automatically cleans when path has not been set", :bundler => "3" do + it "automatically cleans when path has not been set", :bundler => "2" do build_repo2 install_gemfile! <<-G diff --git a/spec/bundler/commands/console_spec.rb b/spec/bundler/commands/console_spec.rb index 05b0a6c1e4..9bf66e8f5b 100644 --- a/spec/bundler/commands/console_spec.rb +++ b/spec/bundler/commands/console_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe "bundle console", :bundler => "< 3" do +RSpec.describe "bundle console", :bundler => "< 2" do before :each do install_gemfile <<-G source "file://#{gem_repo1}" diff --git a/spec/bundler/commands/exec_spec.rb b/spec/bundler/commands/exec_spec.rb index 76841dcff6..6835305d55 100644 --- a/spec/bundler/commands/exec_spec.rb +++ b/spec/bundler/commands/exec_spec.rb @@ -570,7 +570,22 @@ RSpec.describe "bundle exec" do it_behaves_like "it runs" end - context "the executable is empty" do + context "the executable is empty", :bundler => "< 2" do + let(:executable) { "" } + + let(:exit_code) { 0 } + let(:expected) { "#{path} is empty" } + let(:expected_err) { "" } + if LessThanProc.with(RUBY_VERSION).call("1.9") + # Kernel#exec in ruby < 1.9 will raise Errno::ENOEXEC if the command content is empty, + # even if the command is set as an executable. + pending "Kernel#exec is different" + else + it_behaves_like "it runs" + end + end + + context "the executable is empty", :bundler => "2" do let(:executable) { "" } let(:exit_code) { 0 } @@ -579,7 +594,18 @@ RSpec.describe "bundle exec" do it_behaves_like "it runs" end - context "the executable raises" do + context "the executable raises", :bundler => "< 2" do + let(:executable) { super() << "\nraise 'ERROR'" } + let(:exit_code) { 1 } + let(:expected) { super() << "\nbundler: failed to load command: #{path} (#{path})" } + let(:expected_err) do + "RuntimeError: ERROR\n #{path}:10" + + (Bundler.current_ruby.ruby_18? ? "" : ":in `<top (required)>'") + end + it_behaves_like "it runs" + end + + context "the executable raises", :bundler => "2" do let(:executable) { super() << "\nraise 'ERROR'" } let(:exit_code) { 1 } let(:expected_err) do @@ -589,7 +615,16 @@ RSpec.describe "bundle exec" do it_behaves_like "it runs" end - context "the executable raises an error without a backtrace" do + context "the executable raises an error without a backtrace", :bundler => "< 2" do + let(:executable) { super() << "\nclass Err < Exception\ndef backtrace; end;\nend\nraise Err" } + let(:exit_code) { 1 } + let(:expected) { super() << "\nbundler: failed to load command: #{path} (#{path})" } + let(:expected_err) { "Err: Err" } + + it_behaves_like "it runs" + end + + context "the executable raises an error without a backtrace", :bundler => "2" do let(:executable) { super() << "\nclass Err < Exception\ndef backtrace; end;\nend\nraise Err" } let(:exit_code) { 1 } let(:expected_err) { "bundler: failed to load command: #{path} (#{path})\nErr: Err" } @@ -603,7 +638,7 @@ RSpec.describe "bundle exec" do it_behaves_like "it runs" end - context "when Bundler.setup fails", :bundler => "< 3" do + context "when Bundler.setup fails", :bundler => "< 2" do before do gemfile <<-G gem 'rack', '2' @@ -620,7 +655,7 @@ RSpec.describe "bundle exec" do it_behaves_like "it runs" end - context "when Bundler.setup fails", :bundler => "3" do + context "when Bundler.setup fails", :bundler => "2" do before do gemfile <<-G gem 'rack', '2' diff --git a/spec/bundler/commands/init_spec.rb b/spec/bundler/commands/init_spec.rb index 8a8f0effa0..9b5bd95814 100644 --- a/spec/bundler/commands/init_spec.rb +++ b/spec/bundler/commands/init_spec.rb @@ -1,19 +1,19 @@ # frozen_string_literal: true RSpec.describe "bundle init" do - it "generates a Gemfile", :bundler => "< 3" do + it "generates a Gemfile", :bundler => "< 2" do bundle! :init expect(out).to include("Writing new Gemfile") expect(bundled_app("Gemfile")).to be_file end - it "generates a gems.rb", :bundler => "3" do + it "generates a gems.rb", :bundler => "2" do bundle! :init expect(out).to include("Writing new gems.rb") expect(bundled_app("gems.rb")).to be_file end - context "when a Gemfile already exists", :bundler => "< 3" do + context "when a Gemfile already exists", :bundler => "< 2" do before do create_file "Gemfile", <<-G gem "rails" @@ -30,7 +30,7 @@ RSpec.describe "bundle init" do end end - context "when gems.rb already exists", :bundler => ">= 3" do + context "when gems.rb already exists", :bundler => ">= 2" do before do create_file("gems.rb", <<-G) gem "rails" @@ -47,7 +47,7 @@ RSpec.describe "bundle init" do end end - context "when a Gemfile exists in a parent directory", :bundler => "< 3" do + context "when a Gemfile exists in a parent directory", :bundler => "< 2" do let(:subdir) { "child_dir" } it "lets users generate a Gemfile in a child directory" do @@ -82,7 +82,7 @@ RSpec.describe "bundle init" do end end - context "when a gems.rb file exists in a parent directory", :bundler => ">= 3" do + context "when a gems.rb file exists in a parent directory", :bundler => ">= 2" do let(:subdir) { "child_dir" } it "lets users generate a Gemfile in a child directory" do @@ -99,7 +99,7 @@ RSpec.describe "bundle init" do end end - context "given --gemspec option", :bundler => "< 3" do + context "given --gemspec option", :bundler => "< 2" do let(:spec_file) { tmp.join("test.gemspec") } it "should generate from an existing gemspec" do @@ -115,7 +115,7 @@ RSpec.describe "bundle init" do bundle :init, :gemspec => spec_file - gemfile = if Bundler::VERSION[0, 2].to_i < 3 + gemfile = if Bundler::VERSION[0, 2] == "1." bundled_app("Gemfile").read else bundled_app("gems.rb").read @@ -146,7 +146,7 @@ RSpec.describe "bundle init" do context "when init_gems_rb setting is enabled" do before { bundle "config init_gems_rb true" } - context "given --gemspec option", :bundler => "< 3" do + context "given --gemspec option", :bundler => "< 2" do let(:spec_file) { tmp.join("test.gemspec") } before do diff --git a/spec/bundler/commands/inject_spec.rb b/spec/bundler/commands/inject_spec.rb index d091e01380..b7ffc89a34 100644 --- a/spec/bundler/commands/inject_spec.rb +++ b/spec/bundler/commands/inject_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe "bundle inject", :bundler => "< 3" do +RSpec.describe "bundle inject", :bundler => "< 2" do before :each do gemfile <<-G source "file://#{gem_repo1}" @@ -79,7 +79,7 @@ Usage: "bundle inject GEM VERSION" context "when frozen" do before do bundle "install" - if Bundler.feature_flag.bundler_3_mode? + if Bundler.feature_flag.bundler_2_mode? bundle! "config --local deployment true" else bundle! "config --local frozen true" diff --git a/spec/bundler/commands/install_spec.rb b/spec/bundler/commands/install_spec.rb index 326f98161e..394f672fef 100644 --- a/spec/bundler/commands/install_spec.rb +++ b/spec/bundler/commands/install_spec.rb @@ -29,7 +29,7 @@ RSpec.describe "bundle install with gem sources" do expect(bundled_app("Gemfile.lock")).to exist end - it "does not create ./.bundle by default", :bundler => "< 3" do + it "does not create ./.bundle by default", :bundler => "< 2" do gemfile <<-G source "file://#{gem_repo1}" gem "rack" @@ -275,14 +275,14 @@ RSpec.describe "bundle install with gem sources" do expect(the_bundle).to include_gems "rack 1.0" end - it "allows running bundle install --system without deleting foo", :bundler => "< 3" do + it "allows running bundle install --system without deleting foo", :bundler => "< 2" do bundle "install", forgotten_command_line_options(:path => "vendor") bundle "install", forgotten_command_line_options(:system => true) FileUtils.rm_rf(bundled_app("vendor")) expect(the_bundle).to include_gems "rack 1.0" end - it "allows running bundle install --system after deleting foo", :bundler => "< 3" do + it "allows running bundle install --system after deleting foo", :bundler => "< 2" do bundle "install", forgotten_command_line_options(:path => "vendor") FileUtils.rm_rf(bundled_app("vendor")) bundle "install", forgotten_command_line_options(:system => true) @@ -290,7 +290,7 @@ RSpec.describe "bundle install with gem sources" do end end - it "finds gems in multiple sources", :bundler => "< 3" do + it "finds gems in multiple sources", :bundler => "< 2" do build_repo2 update_repo2 diff --git a/spec/bundler/commands/list_spec.rb b/spec/bundler/commands/list_spec.rb index ba4bb9b040..5305176c65 100644 --- a/spec/bundler/commands/list_spec.rb +++ b/spec/bundler/commands/list_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe "bundle list", :bundler => "3" do +RSpec.describe "bundle list", :bundler => "2" do before do install_gemfile <<-G source "file://#{gem_repo1}" diff --git a/spec/bundler/commands/outdated_spec.rb b/spec/bundler/commands/outdated_spec.rb index c9d3ac1de4..fc1f1772e7 100644 --- a/spec/bundler/commands/outdated_spec.rb +++ b/spec/bundler/commands/outdated_spec.rb @@ -407,7 +407,7 @@ RSpec.describe "bundle outdated" do expect(out).to include("Installing foo 1.0") end - context "after bundle install --deployment", :bundler => "< 3" do + context "after bundle install --deployment", :bundler => "< 2" do before do install_gemfile <<-G, forgotten_command_line_options(:deployment => true) source "file://#{gem_repo2}" diff --git a/spec/bundler/commands/package_spec.rb b/spec/bundler/commands/package_spec.rb index a8426e6322..6351909bc7 100644 --- a/spec/bundler/commands/package_spec.rb +++ b/spec/bundler/commands/package_spec.rb @@ -141,7 +141,7 @@ RSpec.describe "bundle package" do end end - context "with --path", :bundler => "< 3" do + context "with --path", :bundler => "< 2" do it "sets root directory for gems" do gemfile <<-D source "file://#{gem_repo1}" diff --git a/spec/bundler/commands/pristine_spec.rb b/spec/bundler/commands/pristine_spec.rb index d8761bba26..0bfc37560a 100644 --- a/spec/bundler/commands/pristine_spec.rb +++ b/spec/bundler/commands/pristine_spec.rb @@ -49,7 +49,7 @@ RSpec.describe "bundle pristine", :ruby_repo do bundle! "pristine", :system_bundler => true bundle! "-v", :system_bundler => true - expected = if Bundler::VERSION < "3.0" + expected = if Bundler::VERSION < "2.0" "Bundler version" else Bundler::VERSION diff --git a/spec/bundler/commands/show_spec.rb b/spec/bundler/commands/show_spec.rb index a5c6beec1a..efbe4b13fb 100644 --- a/spec/bundler/commands/show_spec.rb +++ b/spec/bundler/commands/show_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe "bundle show", :bundler => "< 3", :ruby => ">= 2.0" do +RSpec.describe "bundle show", :bundler => "< 2", :ruby => ">= 2.0" do context "with a standard Gemfile" do before :each do install_gemfile <<-G @@ -36,7 +36,7 @@ RSpec.describe "bundle show", :bundler => "< 3", :ruby => ">= 2.0" do it "prints path if gem exists in bundle" do bundle "show rails" expect(out).to eq( - "[DEPRECATED FOR 3.0] use `bundle info rails` instead of `bundle show rails`\n" + + "[DEPRECATED FOR 2.0] use `bundle info rails` instead of `bundle show rails`\n" + default_bundle_path("gems", "rails-2.3.2").to_s ) end @@ -44,7 +44,7 @@ RSpec.describe "bundle show", :bundler => "< 3", :ruby => ">= 2.0" do it "prints the path to the running bundler" do bundle "show bundler" expect(out).to eq( - "[DEPRECATED FOR 3.0] use `bundle info bundler` instead of `bundle show bundler`\n" + + "[DEPRECATED FOR 2.0] use `bundle info bundler` instead of `bundle show bundler`\n" + root.to_s ) end @@ -52,7 +52,7 @@ RSpec.describe "bundle show", :bundler => "< 3", :ruby => ">= 2.0" do it "prints path if gem exists in bundle (with --paths option)" do bundle "show rails --paths" expect(out).to eq( - "[DEPRECATED FOR 3.0] use `bundle info rails --path` instead of `bundle show rails --paths`\n" + + "[DEPRECATED FOR 2.0] use `bundle info rails --path` instead of `bundle show rails --paths`\n" + default_bundle_path("gems", "rails-2.3.2").to_s ) end @@ -64,7 +64,7 @@ RSpec.describe "bundle show", :bundler => "< 3", :ruby => ">= 2.0" do expect(out).to include(default_bundle_path("gems", "rails-2.3.2").to_s) out_lines = out.split("\n") - expect(out_lines[0]).to eq("[DEPRECATED FOR 3.0] use `bundle list` instead of `bundle show --paths`") + expect(out_lines[0]).to eq("[DEPRECATED FOR 2.0] use `bundle list` instead of `bundle show --paths`") # Gem names are the last component of their path. gem_list = out_lines[1..-1].map {|p| p.split("/").last } diff --git a/spec/bundler/commands/update_spec.rb b/spec/bundler/commands/update_spec.rb index 1effba6526..6eb49d3acd 100644 --- a/spec/bundler/commands/update_spec.rb +++ b/spec/bundler/commands/update_spec.rb @@ -11,7 +11,7 @@ RSpec.describe "bundle update" do G end - describe "with no arguments", :bundler => "< 3" do + describe "with no arguments", :bundler => "< 2" do it "updates the entire bundle" do update_repo2 do build_gem "activesupport", "3.0" @@ -34,7 +34,7 @@ RSpec.describe "bundle update" do end end - describe "with --all", :bundler => "3" do + describe "with --all", :bundler => "2" do it "updates the entire bundle" do update_repo2 do build_gem "activesupport", "3.0" @@ -279,7 +279,7 @@ RSpec.describe "bundle update" do end describe "in a frozen bundle" do - it "should fail loudly", :bundler => "< 3" do + it "should fail loudly", :bundler => "< 2" do bundle! "install --deployment" bundle "update", :all => bundle_update_requires_all? @@ -288,14 +288,14 @@ RSpec.describe "bundle update" do expect(out).to match(/freeze \nby running `bundle install --no-deployment`./m) end - it "should suggest different command when frozen is set globally", :bundler => "< 3" do + it "should suggest different command when frozen is set globally", :bundler => "< 2" do bundle! "config --global frozen 1" bundle "update", :all => bundle_update_requires_all? expect(out).to match(/You are trying to install in deployment mode after changing.your Gemfile/m). and match(/freeze \nby running `bundle config --delete frozen`./m) end - it "should suggest different command when frozen is set globally", :bundler => "3" do + it "should suggest different command when frozen is set globally", :bundler => "2" do bundle! "config --global deployment true" bundle "update", :all => bundle_update_requires_all? expect(out).to match(/You are trying to install in deployment mode after changing.your Gemfile/m). @@ -304,7 +304,7 @@ RSpec.describe "bundle update" do end describe "with --source option" do - it "should not update gems not included in the source that happen to have the same name", :bundler => "< 3" do + it "should not update gems not included in the source that happen to have the same name", :bundler => "< 2" do install_gemfile! <<-G source "file://#{gem_repo2}" gem "activesupport" @@ -315,7 +315,7 @@ RSpec.describe "bundle update" do expect(the_bundle).to include_gem "activesupport 3.0" end - it "should not update gems not included in the source that happen to have the same name", :bundler => "3" do + it "should not update gems not included in the source that happen to have the same name", :bundler => "2" do install_gemfile! <<-G source "file://#{gem_repo2}" gem "activesupport" @@ -358,7 +358,7 @@ RSpec.describe "bundle update" do G end - it "should not update the child dependencies of a gem that has the same name as the source", :bundler => "< 3" do + it "should not update the child dependencies of a gem that has the same name as the source", :bundler => "< 2" do update_repo2 do build_gem "fred", "2.0" build_gem "harry", "2.0" do |s| @@ -371,7 +371,7 @@ RSpec.describe "bundle update" do expect(the_bundle).to include_gems "fred 1.0" end - it "should not update the child dependencies of a gem that has the same name as the source", :bundler => "3" do + it "should not update the child dependencies of a gem that has the same name as the source", :bundler => "2" do update_repo2 do build_gem "fred", "2.0" build_gem "harry", "2.0" do |s| @@ -403,7 +403,7 @@ RSpec.describe "bundle update" do G end - it "should not update the child dependencies of a gem that has the same name as the source", :bundler => "< 3" do + it "should not update the child dependencies of a gem that has the same name as the source", :bundler => "< 2" do update_repo2 do build_gem "george", "2.0" build_gem "harry", "2.0" do |s| @@ -417,7 +417,7 @@ RSpec.describe "bundle update" do expect(the_bundle).to include_gems "george 1.0" end - it "should not update the child dependencies of a gem that has the same name as the source", :bundler => "3" do + it "should not update the child dependencies of a gem that has the same name as the source", :bundler => "2" do update_repo2 do build_gem "george", "2.0" build_gem "harry", "2.0" do |s| @@ -561,14 +561,14 @@ RSpec.describe "bundle update when a gem depends on a newer version of bundler" G end - it "should explain that bundler conflicted", :bundler => "< 3" do + it "should explain that bundler conflicted", :bundler => "< 2" do bundle "update", :all => bundle_update_requires_all? expect(last_command.stdboth).not_to match(/in snapshot/i) expect(last_command.bundler_err).to match(/current Bundler version/i). and match(/perhaps you need to update bundler/i) end - it "should warn that the newer version of Bundler would conflict", :bundler => "3" do + it "should warn that the newer version of Bundler would conflict", :bundler => "2" do bundle! "update", :all => true expect(last_command.bundler_err).to include("rails (3.0.1) has dependency bundler"). and include("so the dependency is being ignored") @@ -577,7 +577,7 @@ RSpec.describe "bundle update when a gem depends on a newer version of bundler" end RSpec.describe "bundle update" do - it "shows the previous version of the gem when updated from rubygems source", :bundler => "< 3" do + it "shows the previous version of the gem when updated from rubygems source", :bundler => "< 2" do build_repo2 install_gemfile <<-G diff --git a/spec/bundler/commands/version_spec.rb b/spec/bundler/commands/version_spec.rb index 66c7930397..b919c25e0f 100644 --- a/spec/bundler/commands/version_spec.rb +++ b/spec/bundler/commands/version_spec.rb @@ -2,36 +2,36 @@ RSpec.describe "bundle version" do context "with -v" do - it "outputs the version", :bundler => "< 3" do + it "outputs the version", :bundler => "< 2" do bundle! "-v" expect(out).to eq("Bundler version #{Bundler::VERSION}") end - it "outputs the version", :bundler => "3" do + it "outputs the version", :bundler => "2" do bundle! "-v" expect(out).to eq(Bundler::VERSION) end end context "with --version" do - it "outputs the version", :bundler => "< 3" do + it "outputs the version", :bundler => "< 2" do bundle! "--version" expect(out).to eq("Bundler version #{Bundler::VERSION}") end - it "outputs the version", :bundler => "3" do + it "outputs the version", :bundler => "2" do bundle! "--version" expect(out).to eq(Bundler::VERSION) end end context "with version" do - it "outputs the version with build metadata", :bundler => "< 3" do + it "outputs the version with build metadata", :bundler => "< 2" do bundle! "version" expect(out).to match(/\ABundler version #{Regexp.escape(Bundler::VERSION)} \(\d{4}-\d{2}-\d{2} commit [a-fA-F0-9]{7,}\)\z/) end - it "outputs the version with build metadata", :bundler => "3" do + it "outputs the version with build metadata", :bundler => "2" do bundle! "version" expect(out).to match(/\A#{Regexp.escape(Bundler::VERSION)} \(\d{4}-\d{2}-\d{2} commit [a-fA-F0-9]{7,}\)\z/) end diff --git a/spec/bundler/commands/viz_spec.rb b/spec/bundler/commands/viz_spec.rb index 61414956a9..3804d3561c 100644 --- a/spec/bundler/commands/viz_spec.rb +++ b/spec/bundler/commands/viz_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe "bundle viz", :ruby => "1.9.3", :bundler => "< 3", :if => Bundler.which("dot") do +RSpec.describe "bundle viz", :ruby => "1.9.3", :bundler => "< 2", :if => Bundler.which("dot") do let(:ruby_graphviz) do graphviz_glob = base_system_gems.join("cache/ruby-graphviz*") Pathname.glob(graphviz_glob).first diff --git a/spec/bundler/install/binstubs_spec.rb b/spec/bundler/install/binstubs_spec.rb index f04d3fe654..23eb691ab8 100644 --- a/spec/bundler/install/binstubs_spec.rb +++ b/spec/bundler/install/binstubs_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe "bundle install", :bundler => "< 3" do +RSpec.describe "bundle install", :bundler => "< 2" do describe "when system_bindir is set" do # On OS X, Gem.bindir defaults to /usr/bin, so system_bindir is useful if # you want to avoid sudo installs for system gems with OS X's default ruby @@ -20,7 +20,7 @@ RSpec.describe "bundle install", :bundler => "< 3" do end end - describe "when multiple gems contain the same exe", :bundler => "< 3" do + describe "when multiple gems contain the same exe", :bundler => "< 2" do before do build_repo2 do build_gem "fake", "14" do |s| diff --git a/spec/bundler/install/deploy_spec.rb b/spec/bundler/install/deploy_spec.rb index ec72ff69fc..3b9d68982a 100644 --- a/spec/bundler/install/deploy_spec.rb +++ b/spec/bundler/install/deploy_spec.rb @@ -8,7 +8,7 @@ RSpec.describe "install with --deployment or --frozen" do G end - context "with CLI flags", :bundler => "< 3" do + context "with CLI flags", :bundler => "< 2" do it "fails without a lockfile and says that --deployment requires a lock" do bundle "install --deployment" expect(out).to include("The --deployment flag requires a Gemfile.lock") @@ -109,11 +109,11 @@ RSpec.describe "install with --deployment or --frozen" do bundle "install" end - it "works with the --deployment flag if you didn't change anything", :bundler => "< 3" do + it "works with the --deployment flag if you didn't change anything", :bundler => "< 2" do bundle! "install --deployment" end - it "works with the --frozen flag if you didn't change anything", :bundler => "< 3" do + it "works with the --frozen flag if you didn't change anything", :bundler => "< 2" do bundle! "install --frozen" end @@ -165,7 +165,7 @@ RSpec.describe "install with --deployment or --frozen" do expect(out).to include("The path `#{lib_path("path_gem-1.0")}` does not exist.") end - it "can have --frozen set via an environment variable", :bundler => "< 3" do + it "can have --frozen set via an environment variable", :bundler => "< 2" do gemfile <<-G source "file://#{gem_repo1}" gem "rack" @@ -297,7 +297,7 @@ RSpec.describe "install with --deployment or --frozen" do context "when replacing a host with the same host with credentials" do let(:success_message) do - if Bundler.bundler_major_version < 3 + if Bundler::VERSION.split(".", 2).first == "1" "Could not reach host localgemserver.test" else "Bundle complete!" diff --git a/spec/bundler/install/gemfile/gemspec_spec.rb b/spec/bundler/install/gemfile/gemspec_spec.rb index bbb56da5a4..7ce037730e 100644 --- a/spec/bundler/install/gemfile/gemspec_spec.rb +++ b/spec/bundler/install/gemfile/gemspec_spec.rb @@ -433,7 +433,7 @@ RSpec.describe "bundle install from an existing gemspec" do end end - context "on ruby", :bundler => "< 3" do + context "on ruby", :bundler => "< 2" do before do simulate_platform("ruby") bundle :install @@ -534,7 +534,7 @@ RSpec.describe "bundle install from an existing gemspec" do end end - context "on ruby", :bundler => "3" do + context "on ruby", :bundler => "2" do before do simulate_platform("ruby") bundle :install diff --git a/spec/bundler/install/gemfile/git_spec.rb b/spec/bundler/install/gemfile/git_spec.rb index fe396c7a0f..57d83a5295 100644 --- a/spec/bundler/install/gemfile/git_spec.rb +++ b/spec/bundler/install/gemfile/git_spec.rb @@ -26,7 +26,7 @@ RSpec.describe "bundle install with git sources" do expect(out).to eq("WIN") end - it "caches the git repo", :bundler => "< 3" do + it "caches the git repo", :bundler => "< 2" do expect(Dir["#{default_bundle_path}/cache/bundler/git/foo-1.0-*"]).to have_attributes :size => 1 end diff --git a/spec/bundler/install/gemfile/groups_spec.rb b/spec/bundler/install/gemfile/groups_spec.rb index 45395e606f..19c379e188 100644 --- a/spec/bundler/install/gemfile/groups_spec.rb +++ b/spec/bundler/install/gemfile/groups_spec.rb @@ -192,19 +192,19 @@ RSpec.describe "bundle install with groups" do expect(the_bundle).not_to include_gems "thin 1.0" end - it "does remove groups from without when passed at --with", :bundler => "< 3" do + it "does remove groups from without when passed at --with", :bundler => "< 2" do bundle :install, forgotten_command_line_options(:without => "emo") bundle :install, forgotten_command_line_options(:with => "emo") expect(the_bundle).to include_gems "activesupport 2.3.5" end - it "does remove groups from with when passed at --without", :bundler => "< 3" do + it "does remove groups from with when passed at --without", :bundler => "< 2" do bundle :install, forgotten_command_line_options(:with => "debugging") bundle :install, forgotten_command_line_options(:without => "debugging") expect(the_bundle).not_to include_gem "thin 1.0" end - it "errors out when passing a group to with and without via CLI flags", :bundler => "< 3" do + it "errors out when passing a group to with and without via CLI flags", :bundler => "< 2" do bundle :install, forgotten_command_line_options(:with => "emo debugging", :without => "emo") expect(last_command).to be_failure expect(out).to include("The offending groups are: emo") diff --git a/spec/bundler/install/gemfile/path_spec.rb b/spec/bundler/install/gemfile/path_spec.rb index a508c971ad..f7789e7ea5 100644 --- a/spec/bundler/install/gemfile/path_spec.rb +++ b/spec/bundler/install/gemfile/path_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true RSpec.describe "bundle install with explicit source paths" do - it "fetches gems with a global path source", :bundler => "< 3" do + it "fetches gems with a global path source", :bundler => "< 2" do build_lib "foo" install_gemfile <<-G diff --git a/spec/bundler/install/gemfile/platform_spec.rb b/spec/bundler/install/gemfile/platform_spec.rb index b5dbc41a33..bfdf9b68c8 100644 --- a/spec/bundler/install/gemfile/platform_spec.rb +++ b/spec/bundler/install/gemfile/platform_spec.rb @@ -230,7 +230,7 @@ RSpec.describe "bundle install across platforms" do expect(the_bundle).to include_gems "nokogiri 1.4.2 JAVA", "weakling 0.0.3" end - it "works with gems that have extra platform-specific runtime dependencies", :bundler => "< 3" do + it "works with gems that have extra platform-specific runtime dependencies", :bundler => "< 2" do simulate_platform x64_mac update_repo2 do diff --git a/spec/bundler/install/gemfile/sources_spec.rb b/spec/bundler/install/gemfile/sources_spec.rb index efe6ccce7f..c814d0de76 100644 --- a/spec/bundler/install/gemfile/sources_spec.rb +++ b/spec/bundler/install/gemfile/sources_spec.rb @@ -28,7 +28,7 @@ RSpec.describe "bundle install with gems on multiple sources" do bundle "config major_deprecations true" end - it "warns about ambiguous gems, but installs anyway, prioritizing sources last to first", :bundler => "< 3" do + it "warns about ambiguous gems, but installs anyway, prioritizing sources last to first", :bundler => "< 2" do bundle :install expect(out).to have_major_deprecation a_string_including("Your Gemfile contains multiple primary sources.") @@ -58,7 +58,7 @@ RSpec.describe "bundle install with gems on multiple sources" do bundle "config major_deprecations true" end - it "warns about ambiguous gems, but installs anyway", :bundler => "< 3" do + it "warns about ambiguous gems, but installs anyway", :bundler => "< 2" do bundle :install expect(out).to have_major_deprecation a_string_including("Your Gemfile contains multiple primary sources.") @@ -248,7 +248,7 @@ RSpec.describe "bundle install with gems on multiple sources" do G end - it "installs from the other source and warns about ambiguous gems", :bundler => "< 3" do + it "installs from the other source and warns about ambiguous gems", :bundler => "< 2" do bundle "config major_deprecations true" bundle :install expect(out).to have_major_deprecation a_string_including("Your Gemfile contains multiple primary sources.") @@ -276,7 +276,7 @@ RSpec.describe "bundle install with gems on multiple sources" do G end - it "installs the dependency from the pinned source without warning", :bundler => "< 3" do + it "installs the dependency from the pinned source without warning", :bundler => "< 2" do bundle :install expect(out).not_to include("Warning: the gem 'rack' was found in multiple sources.") diff --git a/spec/bundler/install/gems/compact_index_spec.rb b/spec/bundler/install/gems/compact_index_spec.rb index 2acade1166..02a37a77d5 100644 --- a/spec/bundler/install/gems/compact_index_spec.rb +++ b/spec/bundler/install/gems/compact_index_spec.rb @@ -269,7 +269,7 @@ The checksum of /versions does not match the checksum provided by the server! So expect(last_command.stdboth).not_to include "Double checking" end - it "fetches again when more dependencies are found in subsequent sources", :bundler => "< 3" do + it "fetches again when more dependencies are found in subsequent sources", :bundler => "< 2" do build_repo2 do build_gem "back_deps" do |s| s.add_dependency "foo" @@ -328,7 +328,7 @@ The checksum of /versions does not match the checksum provided by the server! So expect(the_bundle).to include_gems "rack 1.2" end - it "considers all possible versions of dependencies from all api gem sources", :bundler => "< 3" do + it "considers all possible versions of dependencies from all api gem sources", :bundler => "< 2" do # In this scenario, the gem "somegem" only exists in repo4. It depends on specific version of activesupport that # exists only in repo1. There happens also be a version of activesupport in repo4, but not the one that version 1.0.0 # of somegem wants. This test makes sure that bundler actually finds version 1.2.3 of active support in the other @@ -352,7 +352,7 @@ The checksum of /versions does not match the checksum provided by the server! So expect(the_bundle).to include_gems "activesupport 1.2.3" end - it "considers all possible versions of dependencies from all api gem sources when using blocks", :bundler => "< 3" do + it "considers all possible versions of dependencies from all api gem sources when using blocks", :bundler => "< 2" do # In this scenario, the gem "somegem" only exists in repo4. It depends on specific version of activesupport that # exists only in repo1. There happens also be a version of activesupport in repo4, but not the one that version 1.0.0 # of somegem wants. This test makes sure that bundler actually finds version 1.2.3 of active support in the other @@ -458,7 +458,7 @@ The checksum of /versions does not match the checksum provided by the server! So expect(the_bundle).to include_gems "foo 1.0" end - it "fetches again when more dependencies are found in subsequent sources using --deployment", :bundler => "< 3" do + it "fetches again when more dependencies are found in subsequent sources using --deployment", :bundler => "< 2" do build_repo2 do build_gem "back_deps" do |s| s.add_dependency "foo" @@ -522,7 +522,7 @@ The checksum of /versions does not match the checksum provided by the server! So expect(the_bundle).to include_gems "rails 2.3.2" end - it "installs the binstubs", :bundler => "< 3" do + it "installs the binstubs", :bundler => "< 2" do gemfile <<-G source "#{source_uri}" gem "rack" @@ -534,7 +534,7 @@ The checksum of /versions does not match the checksum provided by the server! So expect(out).to eq("1.0.0") end - it "installs the bins when using --path and uses autoclean", :bundler => "< 3" do + it "installs the bins when using --path and uses autoclean", :bundler => "< 2" do gemfile <<-G source "#{source_uri}" gem "rack" @@ -545,7 +545,7 @@ The checksum of /versions does not match the checksum provided by the server! So expect(vendored_gems("bin/rackup")).to exist end - it "installs the bins when using --path and uses bundle clean", :bundler => "< 3" do + it "installs the bins when using --path and uses bundle clean", :bundler => "< 2" do gemfile <<-G source "#{source_uri}" gem "rack" @@ -620,7 +620,7 @@ The checksum of /versions does not match the checksum provided by the server! So expect(out).not_to include("#{user}:#{password}") end - it "strips http basic auth creds when warning about ambiguous sources", :bundler => "< 3" do + it "strips http basic auth creds when warning about ambiguous sources", :bundler => "< 2" do gemfile <<-G source "#{basic_auth_source_uri}" source "file://#{gem_repo1}" diff --git a/spec/bundler/install/gems/dependency_api_spec.rb b/spec/bundler/install/gems/dependency_api_spec.rb index 3cb98db1eb..2ffe4b62d7 100644 --- a/spec/bundler/install/gems/dependency_api_spec.rb +++ b/spec/bundler/install/gems/dependency_api_spec.rb @@ -243,7 +243,7 @@ RSpec.describe "gemcutter's dependency API" do end end - it "fetches again when more dependencies are found in subsequent sources", :bundler => "< 3" do + it "fetches again when more dependencies are found in subsequent sources", :bundler => "< 2" do build_repo2 do build_gem "back_deps" do |s| s.add_dependency "foo" @@ -302,7 +302,7 @@ RSpec.describe "gemcutter's dependency API" do expect(the_bundle).to include_gems "rack 1.2" end - it "considers all possible versions of dependencies from all api gem sources", :bundler => "< 3" do + it "considers all possible versions of dependencies from all api gem sources", :bundler => "< 2" do # In this scenario, the gem "somegem" only exists in repo4. It depends on specific version of activesupport that # exists only in repo1. There happens also be a version of activesupport in repo4, but not the one that version 1.0.0 # of somegem wants. This test makes sure that bundler actually finds version 1.2.3 of active support in the other @@ -372,7 +372,7 @@ RSpec.describe "gemcutter's dependency API" do expect(out).to include("Fetching source index from http://localgemserver.test/extra") end - it "does not fetch every spec if the index of gems is large when doing back deps", :bundler => "< 3" do + it "does not fetch every spec if the index of gems is large when doing back deps", :bundler => "< 2" do build_repo2 do build_gem "back_deps" do |s| s.add_dependency "foo" @@ -432,7 +432,7 @@ RSpec.describe "gemcutter's dependency API" do expect(the_bundle).to include_gems "foo 1.0" end - it "fetches again when more dependencies are found in subsequent sources using --deployment", :bundler => "< 3" do + it "fetches again when more dependencies are found in subsequent sources using --deployment", :bundler => "< 2" do build_repo2 do build_gem "back_deps" do |s| s.add_dependency "foo" @@ -496,7 +496,7 @@ RSpec.describe "gemcutter's dependency API" do expect(the_bundle).to include_gems "rails 2.3.2" end - it "installs the binstubs", :bundler => "< 3" do + it "installs the binstubs", :bundler => "< 2" do gemfile <<-G source "#{source_uri}" gem "rack" @@ -508,7 +508,7 @@ RSpec.describe "gemcutter's dependency API" do expect(out).to eq("1.0.0") end - it "installs the bins when using --path and uses autoclean", :bundler => "< 3" do + it "installs the bins when using --path and uses autoclean", :bundler => "< 2" do gemfile <<-G source "#{source_uri}" gem "rack" @@ -519,7 +519,7 @@ RSpec.describe "gemcutter's dependency API" do expect(vendored_gems("bin/rackup")).to exist end - it "installs the bins when using --path and uses bundle clean", :bundler => "< 3" do + it "installs the bins when using --path and uses bundle clean", :bundler => "< 2" do gemfile <<-G source "#{source_uri}" gem "rack" @@ -594,7 +594,7 @@ RSpec.describe "gemcutter's dependency API" do expect(out).not_to include("#{user}:#{password}") end - it "strips http basic auth creds when warning about ambiguous sources", :bundler => "< 3" do + it "strips http basic auth creds when warning about ambiguous sources", :bundler => "< 2" do gemfile <<-G source "#{basic_auth_source_uri}" source "file://#{gem_repo1}" diff --git a/spec/bundler/install/gems/flex_spec.rb b/spec/bundler/install/gems/flex_spec.rb index 736f418ec7..37d2e4958a 100644 --- a/spec/bundler/install/gems/flex_spec.rb +++ b/spec/bundler/install/gems/flex_spec.rb @@ -244,7 +244,7 @@ RSpec.describe "bundle flex_install" do end describe "when adding a new source" do - it "updates the lockfile", :bundler => "< 3" do + it "updates the lockfile", :bundler => "< 2" do build_repo2 install_gemfile! <<-G source "file://localhost#{gem_repo1}" @@ -274,7 +274,7 @@ RSpec.describe "bundle flex_install" do L end - it "updates the lockfile", :bundler => "3" do + it "updates the lockfile", :bundler => "2" do build_repo2 install_gemfile! <<-G source "file://localhost#{gem_repo1}" diff --git a/spec/bundler/install/gems/standalone_spec.rb b/spec/bundler/install/gems/standalone_spec.rb index fa7a3bdc27..10ce589eef 100644 --- a/spec/bundler/install/gems/standalone_spec.rb +++ b/spec/bundler/install/gems/standalone_spec.rb @@ -197,7 +197,7 @@ RSpec.shared_examples "bundle install --standalone" do expect(last_command.stderr).to eq("ZOMG LOAD ERROR") end - it "allows --path to change the location of the standalone bundle", :bundler => "< 3" do + it "allows --path to change the location of the standalone bundle", :bundler => "< 2" do bundle! "install", forgotten_command_line_options(:path => "path/to/bundle").merge(:standalone => true) Dir.chdir(bundled_app) do @@ -213,7 +213,7 @@ RSpec.shared_examples "bundle install --standalone" do expect(last_command.stdout).to eq("2.3.2") end - it "allows --path to change the location of the standalone bundle", :bundler => "3" do + it "allows --path to change the location of the standalone bundle", :bundler => "2" do bundle! "install", forgotten_command_line_options(:path => "path/to/bundle").merge(:standalone => true) path = File.expand_path("path/to/bundle") @@ -273,7 +273,7 @@ RSpec.shared_examples "bundle install --standalone" do end end - describe "with --binstubs", :bundler => "< 3" do + describe "with --binstubs", :bundler => "< 2" do before do gemfile <<-G source "file://#{gem_repo1}" diff --git a/spec/bundler/install/git_spec.rb b/spec/bundler/install/git_spec.rb index 48086a86c7..6ae718c2a4 100644 --- a/spec/bundler/install/git_spec.rb +++ b/spec/bundler/install/git_spec.rb @@ -2,7 +2,7 @@ RSpec.describe "bundle install" do context "git sources" do - it "displays the revision hash of the gem repository", :bundler => "< 3" do + it "displays the revision hash of the gem repository", :bundler => "< 2" do build_git "foo", "1.0", :path => lib_path("foo") install_gemfile <<-G @@ -14,7 +14,7 @@ RSpec.describe "bundle install" do expect(the_bundle).to include_gems "foo 1.0", :source => "git@#{lib_path("foo")}" end - it "displays the ref of the gem repository when using branch~num as a ref", :bundler => "< 3" do + it "displays the ref of the gem repository when using branch~num as a ref", :bundler => "< 2" do build_git "foo", "1.0", :path => lib_path("foo") rev = revision_for(lib_path("foo"))[0..6] update_git "foo", "2.0", :path => lib_path("foo"), :gemspec => true diff --git a/spec/bundler/install/path_spec.rb b/spec/bundler/install/path_spec.rb index 94f38c9290..44439c275e 100644 --- a/spec/bundler/install/path_spec.rb +++ b/spec/bundler/install/path_spec.rb @@ -13,7 +13,7 @@ RSpec.describe "bundle install" do G end - it "does not use available system gems with bundle --path vendor/bundle", :bundler => "< 3" do + it "does not use available system gems with bundle --path vendor/bundle", :bundler => "< 2" do bundle! :install, forgotten_command_line_options(:path => "vendor/bundle") expect(the_bundle).to include_gems "rack 1.0.0" end @@ -35,13 +35,13 @@ RSpec.describe "bundle install" do expect(out).to include("gems are installed into `./vendor/bundle`") end - it "disallows --path vendor/bundle --system", :bundler => "< 3" do + it "disallows --path vendor/bundle --system", :bundler => "< 2" do bundle "install --path vendor/bundle --system" expect(out).to include("Please choose only one option.") expect(exitstatus).to eq(15) if exitstatus end - it "remembers to disable system gems after the first time with bundle --path vendor/bundle", :bundler => "< 3" do + it "remembers to disable system gems after the first time with bundle --path vendor/bundle", :bundler => "< 2" do bundle "install --path vendor/bundle" FileUtils.rm_rf bundled_app("vendor") bundle "install" @@ -53,7 +53,7 @@ RSpec.describe "bundle install" do context "with path_relative_to_cwd set to true" do before { bundle! "config path_relative_to_cwd true" } - it "installs the bundle relatively to current working directory", :bundler => "< 3" do + it "installs the bundle relatively to current working directory", :bundler => "< 2" do Dir.chdir(bundled_app.parent) do bundle! "install --gemfile='#{bundled_app}/Gemfile' --path vendor/bundle" expect(out).to include("installed into `./vendor/bundle`") @@ -113,7 +113,7 @@ RSpec.describe "bundle install" do expect(the_bundle).to include_gems "rack 1.0.0" end - context "with global_path_appends_ruby_scope set", :bundler => "3" do + context "with global_path_appends_ruby_scope set", :bundler => "2" do it "installs gems to ." do set_bundle_path(type, ".") bundle! "config --global disable_shared_gems true" @@ -147,7 +147,7 @@ RSpec.describe "bundle install" do end end - context "with global_path_appends_ruby_scope unset", :bundler => "< 3" do + context "with global_path_appends_ruby_scope unset", :bundler => "< 2" do it "installs gems to ." do set_bundle_path(type, ".") bundle! "config --global disable_shared_gems true" diff --git a/spec/bundler/install/post_bundle_message_spec.rb b/spec/bundler/install/post_bundle_message_spec.rb index 394134f523..eadc8a4d85 100644 --- a/spec/bundler/install/post_bundle_message_spec.rb +++ b/spec/bundler/install/post_bundle_message_spec.rb @@ -19,7 +19,7 @@ RSpec.describe "post bundle message" do let(:bundle_complete_message) { "Bundle complete!" } let(:bundle_updated_message) { "Bundle updated!" } let(:installed_gems_stats) { "4 Gemfile dependencies, 5 gems now installed." } - let(:bundle_show_message) { Bundler::VERSION.split(".").first.to_i < 3 ? bundle_show_system_message : bundle_show_path_message } + let(:bundle_show_message) { Bundler::VERSION.split(".").first.to_i < 2 ? bundle_show_system_message : bundle_show_path_message } describe "for fresh bundle install" do it "without any options" do @@ -101,7 +101,7 @@ RSpec.describe "post bundle message" do end describe "with misspelled or non-existent gem name" do - it "should report a helpful error message", :bundler => "< 3" do + it "should report a helpful error message", :bundler => "< 2" do install_gemfile <<-G source "file://localhost#{gem_repo1}" gem "rack" @@ -110,7 +110,7 @@ RSpec.describe "post bundle message" do expect(out).to include("Could not find gem 'not-a-gem' in any of the gem sources listed in your Gemfile.") end - it "should report a helpful error message", :bundler => "3" do + it "should report a helpful error message", :bundler => "2" do install_gemfile <<-G source "file://localhost#{gem_repo1}" gem "rack" diff --git a/spec/bundler/install/redownload_spec.rb b/spec/bundler/install/redownload_spec.rb index f9caeed58a..665c64d49a 100644 --- a/spec/bundler/install/redownload_spec.rb +++ b/spec/bundler/install/redownload_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe "bundle install", :bundler => "< 3", :ruby => ">= 2.0" do +RSpec.describe "bundle install", :bundler => "< 2", :ruby => ">= 2.0" do before :each do gemfile <<-G source "file://#{gem_repo1}" @@ -65,12 +65,12 @@ RSpec.describe "bundle install", :bundler => "< 3", :ruby => ">= 2.0" do it "shows a deprecation when single flag passed" do bundle! "install --force" - expect(out).to include "[DEPRECATED FOR 3.0] The `--force` option has been renamed to `--redownload`" + expect(out).to include "[DEPRECATED FOR 2.0] The `--force` option has been renamed to `--redownload`" end it "shows a deprecation when multiple flags passed" do bundle! "install --no-color --force" - expect(out).to include "[DEPRECATED FOR 3.0] The `--force` option has been renamed to `--redownload`" + expect(out).to include "[DEPRECATED FOR 2.0] The `--force` option has been renamed to `--redownload`" end end diff --git a/spec/bundler/lock/lockfile_bundler_1_spec.rb b/spec/bundler/lock/lockfile_bundler_1_spec.rb index 851fbea99a..fcdf6ebf0d 100644 --- a/spec/bundler/lock/lockfile_bundler_1_spec.rb +++ b/spec/bundler/lock/lockfile_bundler_1_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe "the lockfile format", :bundler => "< 3" do +RSpec.describe "the lockfile format", :bundler => "< 2" do include Bundler::GemHelpers before { ENV["BUNDLER_SPEC_IGNORE_COMPATIBILITY_GUARD"] = "TRUE" } diff --git a/spec/bundler/lock/lockfile_spec.rb b/spec/bundler/lock/lockfile_spec.rb index 9e2fb3b2dd..53c832445f 100644 --- a/spec/bundler/lock/lockfile_spec.rb +++ b/spec/bundler/lock/lockfile_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe "the lockfile format", :bundler => "3" do +RSpec.describe "the lockfile format", :bundler => "2" do include Bundler::GemHelpers before { ENV["BUNDLER_SPEC_IGNORE_COMPATIBILITY_GUARD"] = "TRUE" } @@ -428,7 +428,7 @@ RSpec.describe "the lockfile format", :bundler => "3" do expect(the_bundle).to include_gems "net-sftp 1.1.1", "net-ssh 1.0.0" end - it "generates a simple lockfile for a single pinned source, gem with a version requirement", :bundler => "< 3" do + it "generates a simple lockfile for a single pinned source, gem with a version requirement", :bundler => "< 2" do git = build_git "foo" install_gemfile <<-G diff --git a/spec/bundler/other/bundle_ruby_spec.rb b/spec/bundler/other/bundle_ruby_spec.rb index fbca31d0a0..a7da9cbec9 100644 --- a/spec/bundler/other/bundle_ruby_spec.rb +++ b/spec/bundler/other/bundle_ruby_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe "bundle_ruby", :bundler => "< 3" do +RSpec.describe "bundle_ruby", :bundler => "< 2" do context "without patchlevel" do it "returns the ruby version" do gemfile <<-G diff --git a/spec/bundler/other/major_deprecation_spec.rb b/spec/bundler/other/major_deprecation_spec.rb index 50800dbb0c..fba177b497 100644 --- a/spec/bundler/other/major_deprecation_spec.rb +++ b/spec/bundler/other/major_deprecation_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe "major deprecations", :bundler => "< 3" do +RSpec.describe "major deprecations", :bundler => "< 2" do let(:warnings) { last_command.bundler_err } # change to err in 2.0 let(:warnings_without_version_messages) { warnings.gsub(/#{Spec::Matchers::MAJOR_DEPRECATION}Bundler will only support ruby(gems)? >= .*/, "") } @@ -200,25 +200,25 @@ RSpec.describe "major deprecations", :bundler => "< 3" do context "with github gems" do it "warns about the https change" do msg = <<-EOS -The :github git source is deprecated, and will be removed in Bundler 3.0. Change any "reponame" :github sources to "username/reponame". Add this code to the top of your Gemfile to ensure it continues to work: +The :github git source is deprecated, and will be removed in Bundler 2.0. Change any "reponame" :github sources to "username/reponame". Add this code to the top of your Gemfile to ensure it continues to work: git_source(:github) {|repo_name| "https://github.com/\#{repo_name}.git" } EOS - expect(Bundler::SharedHelpers).to receive(:major_deprecation).with(3, msg) + expect(Bundler::SharedHelpers).to receive(:major_deprecation).with(2, msg) subject.gem("sparks", :github => "indirect/sparks") end it "upgrades to https on request" do Bundler.settings.temporary "github.https" => true msg = <<-EOS -The :github git source is deprecated, and will be removed in Bundler 3.0. Change any "reponame" :github sources to "username/reponame". Add this code to the top of your Gemfile to ensure it continues to work: +The :github git source is deprecated, and will be removed in Bundler 2.0. Change any "reponame" :github sources to "username/reponame". Add this code to the top of your Gemfile to ensure it continues to work: git_source(:github) {|repo_name| "https://github.com/\#{repo_name}.git" } EOS - expect(Bundler::SharedHelpers).to receive(:major_deprecation).with(3, msg) - expect(Bundler::SharedHelpers).to receive(:major_deprecation).with(3, "The `github.https` setting will be removed") + expect(Bundler::SharedHelpers).to receive(:major_deprecation).with(2, msg) + expect(Bundler::SharedHelpers).to receive(:major_deprecation).with(2, "The `github.https` setting will be removed") subject.gem("sparks", :github => "indirect/sparks") github_uri = "https://github.com/indirect/sparks.git" expect(subject.dependencies.first.source.uri).to eq(github_uri) @@ -229,7 +229,7 @@ The :github git source is deprecated, and will be removed in Bundler 3.0. Change it "warns about removal" do allow(Bundler.ui).to receive(:deprecate) msg = <<-EOS -The :bitbucket git source is deprecated, and will be removed in Bundler 3.0. Add this code to the top of your Gemfile to ensure it continues to work: +The :bitbucket git source is deprecated, and will be removed in Bundler 2.0. Add this code to the top of your Gemfile to ensure it continues to work: git_source(:bitbucket) do |repo_name| user_name, repo_name = repo_name.split("/") @@ -238,7 +238,7 @@ The :bitbucket git source is deprecated, and will be removed in Bundler 3.0. Add end EOS - expect(Bundler::SharedHelpers).to receive(:major_deprecation).with(3, msg) + expect(Bundler::SharedHelpers).to receive(:major_deprecation).with(2, msg) subject.gem("not-really-a-gem", :bitbucket => "mcorp/flatlab-rails") end end @@ -247,10 +247,10 @@ The :bitbucket git source is deprecated, and will be removed in Bundler 3.0. Add it "warns about removal" do allow(Bundler.ui).to receive(:deprecate) msg = "The :gist git source is deprecated, and will be removed " \ - "in Bundler 3.0. Add this code to the top of your Gemfile to ensure it " \ + "in Bundler 2.0. Add this code to the top of your Gemfile to ensure it " \ "continues to work:\n\n git_source(:gist) {|repo_name| " \ "\"https://gist.github.com/\#{repo_name}.git\" }\n\n" - expect(Bundler::SharedHelpers).to receive(:major_deprecation).with(3, msg) + expect(Bundler::SharedHelpers).to receive(:major_deprecation).with(2, msg) subject.gem("not-really-a-gem", :gist => "1234") end end diff --git a/spec/bundler/other/platform_spec.rb b/spec/bundler/other/platform_spec.rb index 6c59fd893c..ca74945563 100644 --- a/spec/bundler/other/platform_spec.rb +++ b/spec/bundler/other/platform_spec.rb @@ -4,7 +4,7 @@ RSpec.describe "bundle platform" do context "without flags" do let(:bundle_platform_platforms_string) do platforms = [rb] - platforms.unshift(specific_local_platform) if Bundler.feature_flag.bundler_3_mode? + platforms.unshift(specific_local_platform) if Bundler.feature_flag.bundler_2_mode? platforms.map {|pl| "* #{pl}" }.join("\n") end @@ -633,7 +633,7 @@ G end end - it "fails if ruby version doesn't match", :bundler => "< 3" do + it "fails if ruby version doesn't match", :bundler => "< 2" do gemfile <<-G source "file://#{gem_repo1}" gem "rails" @@ -645,7 +645,7 @@ G should_be_ruby_version_incorrect end - it "fails if engine doesn't match", :bundler => "< 3" do + it "fails if engine doesn't match", :bundler => "< 2" do gemfile <<-G source "file://#{gem_repo1}" gem "rails" @@ -657,7 +657,7 @@ G should_be_engine_incorrect end - it "fails if engine version doesn't match", :bundler => "< 3" do + it "fails if engine version doesn't match", :bundler => "< 2" do simulate_ruby_engine "jruby" do gemfile <<-G source "file://#{gem_repo1}" @@ -671,7 +671,7 @@ G end end - it "fails when patchlevel doesn't match", :bundler => "< 3" do + it "fails when patchlevel doesn't match", :bundler => "< 2" do gemfile <<-G source "file://#{gem_repo1}" gem "rack" @@ -928,7 +928,7 @@ G end end - context "bundle console", :bundler => "< 3" do + context "bundle console", :bundler => "< 2" do before do install_gemfile <<-G source "file://#{gem_repo1}" diff --git a/spec/bundler/plugins/source/example_spec.rb b/spec/bundler/plugins/source/example_spec.rb index d9a3cd2b92..fd30892f63 100644 --- a/spec/bundler/plugins/source/example_spec.rb +++ b/spec/bundler/plugins/source/example_spec.rb @@ -67,7 +67,7 @@ RSpec.describe "real source plugins" do expect(the_bundle).to include_gems("a-path-gem 1.0") end - it "writes to lock file", :bundler => "< 3" do + it "writes to lock file", :bundler => "< 2" do bundle "install" lockfile_should_be <<-G @@ -92,7 +92,7 @@ RSpec.describe "real source plugins" do G end - it "writes to lock file", :bundler => "3" do + it "writes to lock file", :bundler => "2" do bundle "install" lockfile_should_be <<-G @@ -359,7 +359,7 @@ RSpec.describe "real source plugins" do expect(the_bundle).to include_gems("ma-gitp-gem 1.0") end - it "writes to lock file", :bundler => "< 3" do + it "writes to lock file", :bundler => "< 2" do revision = revision_for(lib_path("ma-gitp-gem-1.0")) bundle "install" @@ -386,7 +386,7 @@ RSpec.describe "real source plugins" do G end - it "writes to lock file", :bundler => "3" do + it "writes to lock file", :bundler => "2" do revision = revision_for(lib_path("ma-gitp-gem-1.0")) bundle "install" diff --git a/spec/bundler/quality_spec.rb b/spec/bundler/quality_spec.rb index 812acc344f..14d6bb99b9 100644 --- a/spec/bundler/quality_spec.rb +++ b/spec/bundler/quality_spec.rb @@ -181,7 +181,6 @@ RSpec.describe "The library itself" do gem.coc gem.mit inline - lockfile_upgrade_warning lockfile_uses_separate_rubygems_sources use_gem_version_promoter_for_major_updates viz_command diff --git a/spec/bundler/realworld/edgecases_spec.rb b/spec/bundler/realworld/edgecases_spec.rb index 1db5c0f9d6..aa60e20b8a 100644 --- a/spec/bundler/realworld/edgecases_spec.rb +++ b/spec/bundler/realworld/edgecases_spec.rb @@ -57,7 +57,7 @@ RSpec.describe "real world edgecases", :realworld => true, :sometimes => true do expect(lockfile).to include("activemodel (3.0.5)") end - it "resolves dependencies correctly", :ruby => "<= 1.9.3" do + it "resolves dependencies correctly", :ruby => "1.9.3" do gemfile <<-G source "https://rubygems.org" @@ -70,7 +70,7 @@ RSpec.describe "real world edgecases", :realworld => true, :sometimes => true do expect(lockfile).to include("capybara (2.2.1)") end - it "installs the latest version of gxapi_rails", :ruby => "<= 1.9.3" do + it "installs the latest version of gxapi_rails", :ruby => "1.9.3" do gemfile <<-G source "https://rubygems.org" @@ -188,7 +188,7 @@ RSpec.describe "real world edgecases", :realworld => true, :sometimes => true do activemodel (= 4.2.7.1) activerecord (= 4.2.7.1) activesupport (= 4.2.7.1) - bundler (>= 1.3.0, < 3.0) + bundler (>= 1.3.0, < 2.0) railties (= 4.2.7.1) sprockets-rails rails-deprecated_sanitizer (1.0.3) diff --git a/spec/bundler/runtime/executable_spec.rb b/spec/bundler/runtime/executable_spec.rb index 7ba510a509..dcee234e15 100644 --- a/spec/bundler/runtime/executable_spec.rb +++ b/spec/bundler/runtime/executable_spec.rb @@ -99,7 +99,7 @@ RSpec.describe "Running bin/* commands" do expect(bundled_app("bin/rackup")).not_to exist end - it "allows you to stop installing binstubs", :bundler => "< 3" do + it "allows you to stop installing binstubs", :bundler => "< 2" do bundle! "install --binstubs bin/" bundled_app("bin/rackup").rmtree bundle! "install --binstubs \"\"" @@ -110,7 +110,7 @@ RSpec.describe "Running bin/* commands" do expect(out).to include("You have not configured a value for `bin`") end - it "remembers that the option was specified", :bundler => "< 3" do + it "remembers that the option was specified", :bundler => "< 2" do gemfile <<-G source "file://#{gem_repo1}" gem "activesupport" diff --git a/spec/bundler/runtime/setup_spec.rb b/spec/bundler/runtime/setup_spec.rb index 15dd1fe190..646227d931 100644 --- a/spec/bundler/runtime/setup_spec.rb +++ b/spec/bundler/runtime/setup_spec.rb @@ -1395,7 +1395,7 @@ end end describe "after setup" do - it "allows calling #gem on random objects", :bundler => "< 3" do + it "allows calling #gem on random objects", :bundler => "< 2" do install_gemfile <<-G source "file:#{gem_repo1}" gem "rack" @@ -1410,7 +1410,7 @@ end expect(out).to eq("rack-1.0.0") end - it "keeps Kernel#gem private", :bundler => "3" do + it "keeps Kernel#gem private", :bundler => "2" do install_gemfile! <<-G source "file:#{gem_repo1}" gem "rack" diff --git a/spec/bundler/runtime/with_clean_env_spec.rb b/spec/bundler/runtime/with_clean_env_spec.rb index da8e37b45d..321f5b6415 100644 --- a/spec/bundler/runtime/with_clean_env_spec.rb +++ b/spec/bundler/runtime/with_clean_env_spec.rb @@ -63,7 +63,7 @@ RSpec.describe "Bundler.with_env helpers" do end end - describe "Bundler.clean_env", :bundler => "< 3" do + describe "Bundler.clean_env", :bundler => "< 2" do before do bundle "config path vendor/bundle" gemfile "" @@ -116,7 +116,7 @@ RSpec.describe "Bundler.with_env helpers" do end end - describe "Bundler.with_clean_env", :bundler => "< 3" do + describe "Bundler.with_clean_env", :bundler => "< 2" do it "should set ENV to clean_env in the block" do expected = Bundler.clean_env actual = Bundler.with_clean_env { ENV.to_hash } @@ -132,14 +132,14 @@ RSpec.describe "Bundler.with_env helpers" do end end - describe "Bundler.clean_system", :ruby => ">= 1.9", :bundler => "< 3" do + describe "Bundler.clean_system", :ruby => ">= 1.9", :bundler => "< 2" do it "runs system inside with_clean_env" do Bundler.clean_system(%(echo 'if [ "$BUNDLE_PATH" = "" ]; then exit 42; else exit 1; fi' | /bin/sh)) expect($?.exitstatus).to eq(42) end end - describe "Bundler.clean_exec", :ruby => ">= 1.9", :bundler => "< 3" do + describe "Bundler.clean_exec", :ruby => ">= 1.9", :bundler => "< 2" do it "runs exec inside with_clean_env" do pid = Kernel.fork do Bundler.clean_exec(%(echo 'if [ "$BUNDLE_PATH" = "" ]; then exit 42; else exit 1; fi' | /bin/sh)) diff --git a/spec/bundler/spec_helper.rb b/spec/bundler/spec_helper.rb index c7614e1c43..0646719c4c 100644 --- a/spec/bundler/spec_helper.rb +++ b/spec/bundler/spec_helper.rb @@ -40,7 +40,7 @@ if ENV.select {|k, _v| k =~ /TRAVIS/ }.any? && Gem::Version.new(Gem::VERSION) > end end -if File.expand_path(__FILE__) =~ %r{([^\w/\.:\-])} +if File.expand_path(__FILE__) =~ %r{([^\w/\.-])} abort "The bundler specs cannot be run from a path that contains special characters (particularly #{$1.inspect})" end diff --git a/spec/bundler/support/helpers.rb b/spec/bundler/support/helpers.rb index 181dac3220..b027e7a922 100644 --- a/spec/bundler/support/helpers.rb +++ b/spec/bundler/support/helpers.rb @@ -53,7 +53,7 @@ module Spec end def bundle_update_requires_all? - Bundler::VERSION.start_with?("2.") ? nil : true + Bundler::VERSION.start_with?("1.") ? nil : true end def in_app_root(&blk) @@ -152,7 +152,7 @@ module Spec bang :bundle def forgotten_command_line_options(options) - remembered = Bundler.bundler_major_version < 3 + remembered = Bundler::VERSION.split(".", 2).first == "1" options = options.map do |k, v| k = Array(k)[remembered ? 0 : -1] v = '""' if v && v.to_s.empty? diff --git a/spec/bundler/support/path.rb b/spec/bundler/support/path.rb index 03a96893f3..76fa89d3cc 100644 --- a/spec/bundler/support/path.rb +++ b/spec/bundler/support/path.rb @@ -29,7 +29,7 @@ module Spec end def default_bundle_path(*path) - if Bundler::VERSION.split(".").first.to_i < 3 + if Bundler::VERSION.split(".").first.to_i < 2 system_gem_path(*path) else bundled_app(*[".bundle", ENV.fetch("BUNDLER_SPEC_RUBY_ENGINE", Gem.ruby_engine), Gem::ConfigMap[:ruby_version], *path].compact) diff --git a/spec/bundler/support/platforms.rb b/spec/bundler/support/platforms.rb index 950311d20e..39040a61bd 100644 --- a/spec/bundler/support/platforms.rb +++ b/spec/bundler/support/platforms.rb @@ -106,7 +106,7 @@ module Spec end def local_platforms - if Bundler::VERSION.split(".").first.to_i > 2 + if Bundler::VERSION.split(".").first.to_i > 1 [local, specific_local_platform] else [local] diff --git a/spec/bundler/update/git_spec.rb b/spec/bundler/update/git_spec.rb index d97760e84b..b4cbb79434 100644 --- a/spec/bundler/update/git_spec.rb +++ b/spec/bundler/update/git_spec.rb @@ -299,7 +299,7 @@ RSpec.describe "bundle update" do G end - it "the --source flag updates version of gems that were originally pulled in by the source", :bundler => "> 3" do + it "the --source flag updates version of gems that were originally pulled in by the source", :bundler => "< 2" do spec_lines = lib_path("bar/foo.gemspec").read.split("\n") spec_lines[5] = "s.version = '2.0'" @@ -335,7 +335,7 @@ RSpec.describe "bundle update" do G end - it "the --source flag updates version of gems that were originally pulled in by the source", :bundler => "3" do + it "the --source flag updates version of gems that were originally pulled in by the source", :bundler => "2" do spec_lines = lib_path("bar/foo.gemspec").read.split("\n") spec_lines[5] = "s.version = '2.0'" diff --git a/spec/bundler/update/redownload_spec.rb b/spec/bundler/update/redownload_spec.rb index 1bbc3a66fc..018d3ed2e9 100644 --- a/spec/bundler/update/redownload_spec.rb +++ b/spec/bundler/update/redownload_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe "bundle update", :bundler => "< 3", :ruby => ">= 2.0" do +RSpec.describe "bundle update", :bundler => "< 2", :ruby => ">= 2.0" do before :each do install_gemfile <<-G source "file://#{gem_repo1}" @@ -13,24 +13,24 @@ RSpec.describe "bundle update", :bundler => "< 3", :ruby => ">= 2.0" do describe "with --force" do it "shows a deprecation when single flag passed" do bundle! "update rack --force" - expect(out).to include "[DEPRECATED FOR 3.0] The `--force` option has been renamed to `--redownload`" + expect(out).to include "[DEPRECATED FOR 2.0] The `--force` option has been renamed to `--redownload`" end it "shows a deprecation when multiple flags passed" do bundle! "update rack --no-color --force" - expect(out).to include "[DEPRECATED FOR 3.0] The `--force` option has been renamed to `--redownload`" + expect(out).to include "[DEPRECATED FOR 2.0] The `--force` option has been renamed to `--redownload`" end end describe "with --redownload" do it "does not show a deprecation when single flag passed" do bundle! "update rack --redownload" - expect(out).not_to include "[DEPRECATED FOR 3.0] The `--force` option has been renamed to `--redownload`" + expect(out).not_to include "[DEPRECATED FOR 2.0] The `--force` option has been renamed to `--redownload`" end it "does not show a deprecation when single multiple flags passed" do bundle! "update rack --no-color --redownload" - expect(out).not_to include "[DEPRECATED FOR 3.0] The `--force` option has been renamed to `--redownload`" + expect(out).not_to include "[DEPRECATED FOR 2.0] The `--force` option has been renamed to `--redownload`" end end end |