summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Rodríguez <deivid.rodriguez@riseup.net>2023-07-04 16:41:43 +0200
committerHiroshi SHIBATA <hsbt@ruby-lang.org>2023-07-24 15:03:15 +0900
commit8c82b3579154f12c19d916bd74c87dbe9818711e (patch)
tree6f3bf21073a3da5a23c69fd98a78f09c2da2c756
parent0e7536bf490cf4b26cf075810e918a5840dbb08b (diff)
[rubygems/rubygems] Exclude Bundler from missing locked dependencies check
Bundler is special since it's not actually locked in the lockfile as a regular gem (only via `BUNDLED WITH`). So exclude it from that check. https://github.com/rubygems/rubygems/commit/9f1756ec47
-rw-r--r--lib/bundler/definition.rb2
-rw-r--r--spec/bundler/runtime/setup_spec.rb10
2 files changed, 11 insertions, 1 deletions
diff --git a/lib/bundler/definition.rb b/lib/bundler/definition.rb
index 1970782d55..e043630c2d 100644
--- a/lib/bundler/definition.rb
+++ b/lib/bundler/definition.rb
@@ -700,7 +700,7 @@ module Bundler
return if @dependency_changes
current_dependencies.find do |d|
- @locked_specs[d.name].empty?
+ @locked_specs[d.name].empty? && d.name != "bundler"
end&.name
end
diff --git a/spec/bundler/runtime/setup_spec.rb b/spec/bundler/runtime/setup_spec.rb
index 713cab2124..75f2a62868 100644
--- a/spec/bundler/runtime/setup_spec.rb
+++ b/spec/bundler/runtime/setup_spec.rb
@@ -639,6 +639,16 @@ RSpec.describe "Bundler.setup" do
expect(err).to be_empty
end
+ it "doesn't fail in frozen mode when bundler is a Gemfile dependency" do
+ install_gemfile <<~G
+ source "#{file_uri_for(gem_repo4)}"
+ gem "bundler"
+ G
+
+ bundle "install --verbose", :env => { "BUNDLE_FROZEN" => "true" }
+ expect(err).to be_empty
+ end
+
it "doesn't re-resolve when deleting dependencies" do
install_gemfile <<-G
source "#{file_uri_for(gem_repo1)}"