summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJose Galisteo <ceritium@gmail.com>2021-09-01 09:34:21 +0200
committerHiroshi SHIBATA <hsbt@ruby-lang.org>2021-09-17 20:46:18 +0900
commitb45fe48fbb20e334ef6dd1a85d5b7a37e6701d40 (patch)
tree6d57180c7b4c7941b10800f30fd341d189422249
parentfd918d1afa89405c194e90476373f936b3577df0 (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.rb1
-rw-r--r--lib/bundler/cli/remove.rb3
-rw-r--r--spec/bundler/commands/remove_spec.rb3
-rw-r--r--spec/bundler/other/major_deprecation_spec.rb19
-rw-r--r--spec/bundler/support/builders.rb5
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"