зеркало из https://github.com/github/ruby.git
[rubygems/rubygems] Fix `bundle remove` by invalidating cached `Bundle.defintion`.
Prior to this commit, `bundle add GEM_NAME` updated the lockfile, but `bundle remove GEM_NAME` left GEM_NAME in the lockfile. By invalidating the cached `Bundle.definition`, the existing code handles that without a problem. https://github.com/rubygems/rubygems/commit/aa0794d6a9
This commit is contained in:
Родитель
0a6b9924bd
Коммит
1177665e62
|
@ -72,6 +72,10 @@ module Bundler
|
|||
|
||||
deps.each {|dep| Bundler.ui.confirm "#{SharedHelpers.pretty_dependency(dep, false)} was removed." }
|
||||
end
|
||||
|
||||
# Invalidate the cached Bundler.definition.
|
||||
# This prevents e.g. `bundle remove ...` from using outdated information.
|
||||
Bundler.reset_paths!
|
||||
end
|
||||
|
||||
private
|
||||
|
|
|
@ -13,6 +13,36 @@ RSpec.describe "bundle remove" do
|
|||
end
|
||||
end
|
||||
|
||||
context "after 'bundle install' is run" do
|
||||
describe "running 'bundle remove GEM_NAME'" do
|
||||
it "removes it from the lockfile" do
|
||||
rack_dep = <<~L
|
||||
|
||||
DEPENDENCIES
|
||||
rack
|
||||
|
||||
L
|
||||
|
||||
gemfile <<-G
|
||||
source "#{file_uri_for(gem_repo1)}"
|
||||
|
||||
gem "rack"
|
||||
G
|
||||
|
||||
bundle "install"
|
||||
|
||||
expect(lockfile).to include(rack_dep)
|
||||
|
||||
bundle "remove rack"
|
||||
|
||||
expect(gemfile).to eq <<~G
|
||||
source "#{file_uri_for(gem_repo1)}"
|
||||
G
|
||||
expect(lockfile).to_not include(rack_dep)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context "when --install flag is specified", :bundler => "< 3" do
|
||||
it "removes gems from .bundle" do
|
||||
gemfile <<-G
|
||||
|
|
Загрузка…
Ссылка в новой задаче