diff options
author | Jose Galisteo <ceritium@gmail.com> | 2021-09-01 09:34:21 +0200 |
---|---|---|
committer | Hiroshi SHIBATA <hsbt@ruby-lang.org> | 2021-09-17 20:46:18 +0900 |
commit | b45fe48fbb20e334ef6dd1a85d5b7a37e6701d40 (patch) | |
tree | 6d57180c7b4c7941b10800f30fd341d189422249 | |
parent | fd918d1afa89405c194e90476373f936b3577df0 (diff) |
[rubygems/rubygems] Trigger install command by default on remove
Closes https://github.com/rubygems/rubygems/issues/4889
https://github.com/rubygems/rubygems/commit/2b1754479c
-rw-r--r-- | lib/bundler/cli.rb | 1 | ||||
-rw-r--r-- | lib/bundler/cli/remove.rb | 3 | ||||
-rw-r--r-- | spec/bundler/commands/remove_spec.rb | 3 | ||||
-rw-r--r-- | spec/bundler/other/major_deprecation_spec.rb | 19 | ||||
-rw-r--r-- | spec/bundler/support/builders.rb | 5 |
5 files changed, 28 insertions, 3 deletions
diff --git a/lib/bundler/cli.rb b/lib/bundler/cli.rb index a72f0feaef..d5de72e5d4 100644 --- a/lib/bundler/cli.rb +++ b/lib/bundler/cli.rb @@ -184,6 +184,7 @@ module Bundler method_option "install", :type => :boolean, :banner => "Runs 'bundle install' after removing the gems from the Gemfile" def remove(*gems) + SharedHelpers.major_deprecation(2, "The `--install` flag has been deprecated. `bundle install` is triggered by default.") if ARGV.include?("--install") require_relative "cli/remove" Remove.new(gems, options).run end diff --git a/lib/bundler/cli/remove.rb b/lib/bundler/cli/remove.rb index cd6a2cec28..44a4d891dd 100644 --- a/lib/bundler/cli/remove.rb +++ b/lib/bundler/cli/remove.rb @@ -11,8 +11,7 @@ module Bundler raise InvalidOption, "Please specify gems to remove." if @gems.empty? Injector.remove(@gems, {}) - - Installer.install(Bundler.root, Bundler.definition) if @options["install"] + Installer.install(Bundler.root, Bundler.definition) end end end diff --git a/spec/bundler/commands/remove_spec.rb b/spec/bundler/commands/remove_spec.rb index 170545f80c..9e2586bae6 100644 --- a/spec/bundler/commands/remove_spec.rb +++ b/spec/bundler/commands/remove_spec.rb @@ -13,7 +13,7 @@ RSpec.describe "bundle remove" do end end - context "when --install flag is specified" do + context "when --install flag is specified", :bundler => "< 3" do it "removes gems from .bundle" do gemfile <<-G source "#{file_uri_for(gem_repo1)}" @@ -40,6 +40,7 @@ RSpec.describe "bundle remove" do bundle "remove rack" expect(out).to include("rack was removed.") + expect(the_bundle).to_not include_gems "rack" gemfile_should_be <<-G source "#{file_uri_for(gem_repo1)}" G diff --git a/spec/bundler/other/major_deprecation_spec.rb b/spec/bundler/other/major_deprecation_spec.rb index daebdbe1f2..873366a190 100644 --- a/spec/bundler/other/major_deprecation_spec.rb +++ b/spec/bundler/other/major_deprecation_spec.rb @@ -624,6 +624,25 @@ The :gist git source is deprecated, and will be removed in the future. Add this end end + context "bundle remove" do + before do + gemfile <<-G + source "#{file_uri_for(gem_repo1)}" + gem "rack" + G + end + + context "with --install" do + it "shows a deprecation warning", :bundler => "< 3" do + bundle "remove rack --install" + + expect(err).to include "[DEPRECATED] The `--install` flag has been deprecated. `bundle install` is triggered by default." + end + + pending "fails with a helpful message", :bundler => "3" + end + end + context "bundle console" do before do bundle "console", :raise_on_error => false diff --git a/spec/bundler/support/builders.rb b/spec/bundler/support/builders.rb index 10beba1288..c9ddc2c13e 100644 --- a/spec/bundler/support/builders.rb +++ b/spec/bundler/support/builders.rb @@ -35,6 +35,11 @@ module Spec build_repo gem_repo1 do FileUtils.cp rake_path, "#{gem_repo1}/gems/" + build_gem "coffee-script-source" + build_gem "git" + build_gem "puma" + build_gem "minitest" + build_gem "rack", %w[0.9.1 1.0.0] do |s| s.executables = "rackup" s.post_install_message = "Rack's post install message" |