diff options
-rw-r--r-- | lib/bundler/cli.rb | 7 | ||||
-rw-r--r-- | man/bundle-install.ronn | 4 | ||||
-rw-r--r-- | man/bundle-update.ronn | 4 | ||||
-rw-r--r-- | spec/install/force_spec.rb | 62 | ||||
-rw-r--r-- | spec/install/redownload_spec.rb | 90 | ||||
-rw-r--r-- | spec/update/redownload_spec.rb | 34 |
6 files changed, 132 insertions, 69 deletions
diff --git a/lib/bundler/cli.rb b/lib/bundler/cli.rb index f692ae5f13..53241b15f6 100644 --- a/lib/bundler/cli.rb +++ b/lib/bundler/cli.rb @@ -206,8 +206,7 @@ module Bundler "Do not attempt to fetch gems remotely and use the gem cache instead" deprecated_option "no-cache", :type => :boolean, :banner => "Don't update the existing gem cache." - method_option "redownload", :type => :boolean, :aliases => - [Bundler.feature_flag.forget_cli_options? ? nil : "--force"].compact, :banner => + method_option "redownload", :type => :boolean, :aliases => "--force", :banner => "Force downloading every gem." deprecated_option "no-prune", :type => :boolean, :banner => "Don't remove stale gems from the cache." @@ -230,6 +229,7 @@ module Bundler "Include gems that are part of the specified named group." map "i" => "install" def install + SharedHelpers.major_deprecation(2, "The `--force` option has been renamed to `--redownload`") if ARGV.include?("--force") require "bundler/cli/install" Bundler.settings.temporary(:no_install => false) do Install.new(options.dup).run @@ -256,7 +256,7 @@ module Bundler "Only output warnings and errors." method_option "source", :type => :array, :banner => "Update a specific source (and all gems associated with it)" - method_option "force", :type => :boolean, :banner => + method_option "redownload", :type => :boolean, :aliases => "--force", :banner => "Force downloading every gem." method_option "ruby", :type => :boolean, :banner => "Update ruby specified in Gemfile.lock" @@ -275,6 +275,7 @@ module Bundler method_option "all", :type => :boolean, :banner => "Update everything." def update(*gems) + SharedHelpers.major_deprecation(2, "The `--force` option has been renamed to `--redownload`") if ARGV.include?("--force") require "bundler/cli/update" Update.new(options, gems).run end diff --git a/man/bundle-install.ronn b/man/bundle-install.ronn index 0bfd29234a..2ba82f27a5 100644 --- a/man/bundle-install.ronn +++ b/man/bundle-install.ronn @@ -6,7 +6,6 @@ bundle-install(1) -- Install the dependencies specified in your Gemfile `bundle install` [--binstubs[=DIRECTORY]] [--clean] [--deployment] - [--force] [--frozen] [--full-index] [--gemfile=GEMFILE] @@ -16,6 +15,7 @@ bundle-install(1) -- Install the dependencies specified in your Gemfile [--no-prune] [--path PATH] [--quiet] + [--redownload] [--retry=NUMBER] [--shebang] [--standalone[=GROUP[ GROUP...]]] @@ -69,7 +69,7 @@ time `bundle install` is run, use `bundle config` (see bundle-config(1)). production or CI use. Please check carefully if you want to have this option enabled in your development environment. -* `--force`: +* `--redownload`: Force download every gem, even if the required versions are already available locally. diff --git a/man/bundle-update.ronn b/man/bundle-update.ronn index 2ad678f424..397fecadcb 100644 --- a/man/bundle-update.ronn +++ b/man/bundle-update.ronn @@ -12,8 +12,8 @@ bundle-update(1) -- Update your gems to the latest available versions [--full-index] [--jobs=JOBS] [--quiet] - [--force] [--patch|--minor|--major] + [--redownload] [--strict] [--conservative] @@ -64,7 +64,7 @@ gem. * `--quiet`: Only output warnings and errors. -* `--force`: +* `--redownload`: Force downloading every gem. * `--patch`: diff --git a/spec/install/force_spec.rb b/spec/install/force_spec.rb deleted file mode 100644 index 52fa4f0d61..0000000000 --- a/spec/install/force_spec.rb +++ /dev/null @@ -1,62 +0,0 @@ -# frozen_string_literal: true - -RSpec.describe "bundle install" do - %w[force redownload].each do |flag| - describe_opts = {} - describe_opts[:bundler] = "< 2" if flag == "force" - describe "with --#{flag}", describe_opts do - before :each do - gemfile <<-G - source "file://#{gem_repo1}" - gem "rack" - G - end - - it "re-installs installed gems" do - rack_lib = default_bundle_path("gems/rack-1.0.0/lib/rack.rb") - - bundle! :install - rack_lib.open("w") {|f| f.write("blah blah blah") } - bundle! :install, flag => true - - expect(out).to include "Installing rack 1.0.0" - expect(rack_lib.open(&:read)).to eq("RACK = '1.0.0'\n") - expect(the_bundle).to include_gems "rack 1.0.0" - end - - it "works on first bundle install" do - bundle! :install, flag => true - - expect(out).to include "Installing rack 1.0.0" - expect(the_bundle).to include_gems "rack 1.0.0" - end - - context "with a git gem" do - let!(:ref) { build_git("foo", "1.0").ref_for("HEAD", 11) } - - before do - gemfile <<-G - gem "foo", :git => "#{lib_path("foo-1.0")}" - G - end - - it "re-installs installed gems" do - foo_lib = default_bundle_path("bundler/gems/foo-1.0-#{ref}/lib/foo.rb") - - bundle! :install - foo_lib.open("w") {|f| f.write("blah blah blah") } - bundle! :install, flag => true - - expect(foo_lib.open(&:read)).to eq("FOO = '1.0'\n") - expect(the_bundle).to include_gems "foo 1.0" - end - - it "works on first bundle install" do - bundle! :install, flag => true - - expect(the_bundle).to include_gems "foo 1.0" - end - end - end - end -end diff --git a/spec/install/redownload_spec.rb b/spec/install/redownload_spec.rb new file mode 100644 index 0000000000..229a3f21e0 --- /dev/null +++ b/spec/install/redownload_spec.rb @@ -0,0 +1,90 @@ +# frozen_string_literal: true + +RSpec.describe "bundle install" do + before :each do + gemfile <<-G + source "file://#{gem_repo1}" + gem "rack" + G + end + + shared_examples_for "an option to force redownloading gems" do + it "re-installs installed gems" do + rack_lib = default_bundle_path("gems/rack-1.0.0/lib/rack.rb") + + bundle! :install + rack_lib.open("w") {|f| f.write("blah blah blah") } + bundle! :install, flag => true + + expect(out).to include "Installing rack 1.0.0" + expect(rack_lib.open(&:read)).to eq("RACK = '1.0.0'\n") + expect(the_bundle).to include_gems "rack 1.0.0" + end + + it "works on first bundle install" do + bundle! :install, flag => true + + expect(out).to include "Installing rack 1.0.0" + expect(the_bundle).to include_gems "rack 1.0.0" + end + + context "with a git gem" do + let!(:ref) { build_git("foo", "1.0").ref_for("HEAD", 11) } + + before do + gemfile <<-G + gem "foo", :git => "#{lib_path("foo-1.0")}" + G + end + + it "re-installs installed gems" do + foo_lib = default_bundle_path("bundler/gems/foo-1.0-#{ref}/lib/foo.rb") + + bundle! :install + foo_lib.open("w") {|f| f.write("blah blah blah") } + bundle! :install, flag => true + + expect(foo_lib.open(&:read)).to eq("FOO = '1.0'\n") + expect(the_bundle).to include_gems "foo 1.0" + end + + it "works on first bundle install" do + bundle! :install, flag => true + + expect(the_bundle).to include_gems "foo 1.0" + end + end + end + + describe "with --force" do + it_behaves_like "an option to force redownloading gems" do + let(:flag) { "force" } + end + + it "shows a deprecation when single flag passed" do + bundle! "install --force" + 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 2.0] The `--force` option has been renamed to `--redownload`" + end + end + + describe "with --redownload" do + it_behaves_like "an option to force redownloading gems" do + let(:flag) { "redownload" } + end + + it "does not show a deprecation when single flag passed" do + bundle! "install --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! "install --no-color --redownload" + expect(out).not_to include "[DEPRECATED FOR 2.0] The `--force` option has been renamed to `--redownload`" + end + end +end diff --git a/spec/update/redownload_spec.rb b/spec/update/redownload_spec.rb new file mode 100644 index 0000000000..02da654069 --- /dev/null +++ b/spec/update/redownload_spec.rb @@ -0,0 +1,34 @@ +# frozen_string_literal: true + +RSpec.describe "bundle update" do + before :each do + install_gemfile <<-G + source "file://#{gem_repo1}" + gem "rack" + G + end + + describe "with --force" do + it "shows a deprecation when single flag passed" do + bundle! "update rack --force" + 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 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 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 2.0] The `--force` option has been renamed to `--redownload`" + end + end +end |