Merge RubyGems-3.4.15 and Bundler-2.4.15

This commit is contained in:
Hiroshi SHIBATA 2023-07-19 14:14:12 +09:00 committed by nagachika
parent a36c836433
commit e44e42c303
25 changed files with 190 additions and 106 deletions

View file

@ -76,8 +76,11 @@ module Bundler
@lockfile = lockfile
@lockfile_contents = String.new
@locked_bundler_version = nil
@locked_ruby_version = nil
@resolved_bundler_version = nil
@locked_ruby_version = nil
@new_platform = nil
@removed_platform = nil
@ -146,7 +149,7 @@ module Bundler
@dependency_changes = converge_dependencies
@local_changes = converge_locals
@incomplete_lockfile = check_missing_lockfile_specs
@missing_lockfile_dep = check_missing_lockfile_dep
end
def gem_version_promoter
@ -234,6 +237,14 @@ module Bundler
end
def current_dependencies
filter_relevant(dependencies)
end
def current_locked_dependencies
filter_relevant(locked_dependencies)
end
def filter_relevant(dependencies)
dependencies.select do |d|
d.should_include? && !d.gem_platforms([generic_local_platform]).empty?
end
@ -273,7 +284,7 @@ module Bundler
@resolve ||= if Bundler.frozen_bundle?
Bundler.ui.debug "Frozen, using resolution from the lockfile"
@locked_specs
elsif !unlocking? && nothing_changed?
elsif no_resolve_needed?
if deleted_deps.any?
Bundler.ui.debug "Some dependencies were deleted, using a subset of the resolution from the lockfile"
SpecSet.new(filter_specs(@locked_specs, @dependencies - deleted_deps))
@ -310,7 +321,7 @@ module Bundler
if @locked_bundler_version
locked_major = @locked_bundler_version.segments.first
current_major = Bundler.gem_version.segments.first
current_major = bundler_version_to_lock.segments.first
updating_major = locked_major < current_major
end
@ -350,25 +361,16 @@ module Bundler
end
end
def bundler_version_to_lock
@resolved_bundler_version || Bundler.gem_version
end
def to_lock
require_relative "lockfile_generator"
LockfileGenerator.generate(self)
end
def ensure_equivalent_gemfile_and_lockfile(explicit_flag = false)
msg = String.new
msg << "You are trying to install in deployment mode after changing\n" \
"your Gemfile. Run `bundle install` elsewhere and add the\n" \
"updated #{Bundler.default_lockfile.relative_path_from(SharedHelpers.pwd)} to version control."
unless explicit_flag
suggested_command = unless Bundler.settings.locations("frozen").keys.include?(:env)
"bundle config set frozen false"
end
msg << "\n\nIf this is a development machine, remove the #{Bundler.default_gemfile} " \
"freeze \nby running `#{suggested_command}`." if suggested_command
end
added = []
deleted = []
changed = []
@ -382,13 +384,8 @@ module Bundler
deleted.concat deleted_deps.map {|d| "* #{pretty_dep(d)}" } if deleted_deps.any?
both_sources = Hash.new {|h, k| h[k] = [] }
@dependencies.each {|d| both_sources[d.name][0] = d }
locked_dependencies.each do |d|
next if !Bundler.feature_flag.bundler_3_mode? && @locked_specs[d.name].empty?
both_sources[d.name][1] = d
end
current_dependencies.each {|d| both_sources[d.name][0] = d }
current_locked_dependencies.each {|d| both_sources[d.name][1] = d }
both_sources.each do |name, (dep, lock_dep)|
next if dep.nil? || lock_dep.nil?
@ -403,11 +400,20 @@ module Bundler
end
reason = change_reason
msg << "\n\n#{reason.split(", ").map(&:capitalize).join("\n")}" unless reason.strip.empty?
msg = String.new
msg << "#{reason.capitalize.strip}, but the lockfile can't be updated because frozen mode is set"
msg << "\n\nYou have added to the Gemfile:\n" << added.join("\n") if added.any?
msg << "\n\nYou have deleted from the Gemfile:\n" << deleted.join("\n") if deleted.any?
msg << "\n\nYou have changed in the Gemfile:\n" << changed.join("\n") if changed.any?
msg << "\n"
msg << "\n\nRun `bundle install` elsewhere and add the updated #{Bundler.default_lockfile.relative_path_from(SharedHelpers.pwd)} to version control.\n"
unless explicit_flag
suggested_command = unless Bundler.settings.locations("frozen").keys.include?(:env)
"bundle config set frozen false"
end
msg << "If this is a development machine, remove the #{Bundler.default_gemfile.relative_path_from(SharedHelpers.pwd)} " \
"freeze by running `#{suggested_command}`." if suggested_command
end
raise ProductionError, msg if added.any? || deleted.any? || changed.any? || !nothing_changed?
end
@ -472,7 +478,11 @@ module Bundler
private :sources
def nothing_changed?
!@source_changes && !@dependency_changes && !@new_platform && !@path_changes && !@local_changes && !@incomplete_lockfile
!@source_changes && !@dependency_changes && !@new_platform && !@path_changes && !@local_changes && !@missing_lockfile_dep && !@unlocking_bundler
end
def no_resolve_needed?
!unlocking? && nothing_changed?
end
def unlocking?
@ -486,7 +496,14 @@ module Bundler
end
def expanded_dependencies
dependencies + metadata_dependencies
dependencies_with_bundler + metadata_dependencies
end
def dependencies_with_bundler
return dependencies unless @unlocking_bundler
return dependencies if dependencies.map(&:name).include?("bundler")
[Dependency.new("bundler", @unlocking_bundler)] + dependencies
end
def resolution_packages
@ -552,6 +569,8 @@ module Bundler
def start_resolution
result = resolver.start
@resolved_bundler_version = result.find {|spec| spec.name == "bundler" }&.version
SpecSet.new(SpecSet.new(result).for(dependencies, false, @platforms))
end
@ -609,7 +628,8 @@ module Bundler
[@new_platform, "you added a new platform to your gemfile"],
[@path_changes, "the gemspecs for path gems changed"],
[@local_changes, "the gemspecs for git local gems changed"],
[@incomplete_lockfile, "your lock file is missing some gems"],
[@missing_lockfile_dep, "your lock file is missing \"#{@missing_lockfile_dep}\""],
[@unlocking_bundler, "an update to the version of Bundler itself was requested"],
].select(&:first).map(&:last).join(", ")
end
@ -664,7 +684,7 @@ module Bundler
!sources_with_changes.each {|source| @unlock[:sources] << source.name }.empty?
end
def check_missing_lockfile_specs
def check_missing_lockfile_dep
all_locked_specs = @locked_specs.map(&:name) << "bundler"
missing = @locked_specs.select do |s|
@ -674,10 +694,14 @@ module Bundler
if missing.any?
@locked_specs.delete(missing)
true
else
false
return missing.first.name
end
return if @dependency_changes
current_dependencies.find do |d|
@locked_specs[d.name].empty?
end&.name
end
def converge_paths
@ -861,8 +885,16 @@ module Bundler
metadata_dependencies.each do |dep|
source_requirements[dep.name] = sources.metadata_source
end
source_requirements[:default_bundler] = source_requirements["bundler"] || sources.default_source
source_requirements["bundler"] = sources.metadata_source # needs to come last to override
default_bundler_source = source_requirements["bundler"] || sources.default_source
if @unlocking_bundler
default_bundler_source.add_dependency_names("bundler")
else
source_requirements[:default_bundler] = default_bundler_source
source_requirements["bundler"] = sources.metadata_source # needs to come last to override
end
verify_changed_sources!
source_requirements
end

View file

@ -71,7 +71,7 @@ module Bundler
end
def add_bundled_with
add_section("BUNDLED WITH", Bundler::VERSION)
add_section("BUNDLED WITH", definition.bundler_version_to_lock.to_s)
end
def add_section(name, value)

View file

@ -160,7 +160,7 @@ module Bundler
constraint_string = constraint.constraint_string
requirements = constraint_string.split(" OR ").map {|req| Gem::Requirement.new(req.split(",")) }
if name == "bundler"
if name == "bundler" && bundler_pinned_to_current_version?
custom_explanation = "the current Bundler version (#{Bundler::VERSION}) does not satisfy #{constraint}"
extended_explanation = bundler_not_found_message(requirements)
else
@ -230,6 +230,12 @@ module Bundler
def all_versions_for(package)
name = package.name
results = (@base[name] + filter_prereleases(@all_specs[name], package)).uniq {|spec| [spec.version.hash, spec.platform] }
if name == "bundler" && !bundler_pinned_to_current_version?
bundler_spec = Gem.loaded_specs["bundler"]
results << bundler_spec if bundler_spec
end
locked_requirement = base_requirements[name]
results = filter_matching_specs(results, locked_requirement) if locked_requirement
@ -254,6 +260,14 @@ module Bundler
@source_requirements[name] || @source_requirements[:default]
end
def default_bundler_source
@source_requirements[:default_bundler]
end
def bundler_pinned_to_current_version?
!default_bundler_source.nil?
end
def name_for_explicit_dependency_source
Bundler.default_gemfile.basename.to_s
rescue StandardError
@ -398,7 +412,7 @@ module Bundler
end
def bundler_not_found_message(conflict_dependencies)
candidate_specs = filter_matching_specs(source_for(:default_bundler).specs.search("bundler"), conflict_dependencies)
candidate_specs = filter_matching_specs(default_bundler_source.specs.search("bundler"), conflict_dependencies)
if candidate_specs.any?
target_version = candidate_specs.last.version

View file

@ -94,7 +94,7 @@ module Bundler
definition_method :requires
def lock(opts = {})
return if @definition.nothing_changed? && !@definition.unlocking?
return if @definition.no_resolve_needed?
@definition.lock(Bundler.default_lockfile, opts[:preserve_unknown_sections])
end

View file

@ -381,7 +381,6 @@ module Bundler
idx = @allow_local ? installed_specs.dup : Index.new
Dir["#{cache_path}/*.gem"].each do |gemfile|
next if /^bundler\-[\d\.]+?\.gem/.match?(gemfile)
s ||= Bundler.rubygems.spec_from_gem(gemfile)
s.source = self
idx << s

View file

@ -1,7 +1,7 @@
# frozen_string_literal: false
module Bundler
VERSION = "2.4.14".freeze
VERSION = "2.4.15".freeze
def self.bundler_major_version
@bundler_major_version ||= VERSION.split(".").first.to_i

View file

@ -8,7 +8,7 @@
require "rbconfig"
module Gem
VERSION = "3.4.14"
VERSION = "3.4.15"
end
# Must be first since it unloads the prelude from 1.9.2

View file

@ -6,6 +6,7 @@
#++
require_relative "../user_interaction"
require_relative "../shellwords"
class Gem::Ext::Builder
include Gem::UserInteraction
@ -56,9 +57,8 @@ class Gem::Ext::Builder
end
def self.ruby
require "shellwords"
# Gem.ruby is quoted if it contains whitespace
cmd = Gem.ruby.shellsplit
cmd = Shellwords.split(Gem.ruby)
# This load_path is only needed when running rubygems test without a proper installation.
# Prepending it in a normal installation will cause problem with order of $LOAD_PATH.
@ -82,8 +82,7 @@ class Gem::Ext::Builder
p(command)
end
results << "current directory: #{dir}"
require "shellwords"
results << command.shelljoin
results << Shellwords.join(command)
require "open3"
# Set $SOURCE_DATE_EPOCH for the subprocess.

View file

@ -1,5 +1,7 @@
# frozen_string_literal: true
require_relative "../shellwords"
# This class is used by rubygems to build Rust extensions. It is a thin-wrapper
# over the `cargo rustc` command which takes care of building Rust code in a way
# that Ruby can use.
@ -73,8 +75,6 @@ class Gem::Ext::CargoBuilder < Gem::Ext::Builder
end
def cargo_command(cargo_toml, dest_path, args = [], crate_name = nil)
require "shellwords"
cmd = []
cmd += [cargo, "rustc"]
cmd += ["--crate-type", "cdylib"]

View file

@ -1,4 +1,7 @@
# frozen_string_literal: true
require_relative "../shellwords"
#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
@ -14,8 +17,7 @@ class Gem::Ext::RakeBuilder < Gem::Ext::Builder
rake = ENV["rake"]
if rake
require "shellwords"
rake = rake.shellsplit
rake = Shellwords.split(rake)
else
begin
rake = ruby << "-rrubygems" << Gem.bin_path("rake", "rake")

View file

@ -0,0 +1,3 @@
# frozen_string_literal: true
autoload :Shellwords, "shellwords"

View file

@ -291,7 +291,7 @@ RSpec.describe "bundle cache" do
G
subject
expect(exitstatus).to eq(16)
expect(err).to include("deployment mode")
expect(err).to include("frozen mode")
expect(err).to include("You have added to the Gemfile")
expect(err).to include("* rack-obama")
bundle "env"

View file

@ -109,7 +109,7 @@ Usage: "bundle inject GEM VERSION"
gem "rack-obama"
G
bundle "inject 'rack' '> 0'", :raise_on_error => false
expect(err).to match(/trying to install in deployment mode after changing/)
expect(err).to match(/the lockfile can't be updated because frozen mode is set/)
expect(bundled_app_lock.read).not_to match(/rack-obama/)
end

View file

@ -297,24 +297,27 @@ RSpec.describe "bundle lock" do
end
end
it "updates the bundler version in the lockfile without re-resolving", :rubygems => ">= 3.3.0.dev" do
it "updates the bundler version in the lockfile to the latest bundler version" do
build_repo4 do
build_gem "rack", "1.0"
build_gem "bundler", "55"
end
install_gemfile <<-G
source "#{file_uri_for(gem_repo4)}"
gem "rack"
system_gems "bundler-55", :gem_repo => gem_repo4
install_gemfile <<-G, :artifice => "compact_index", :env => { "BUNDLER_SPEC_GEM_REPO" => gem_repo4.to_s }
source "https://gems.repo4"
G
lockfile lockfile.sub(/(^\s*)#{Bundler::VERSION}($)/, '\11.0.0\2')
FileUtils.rm_r gem_repo4
bundle "lock --update --bundler --verbose", :artifice => "compact_index", :env => { "BUNDLER_SPEC_GEM_REPO" => gem_repo4.to_s }
expect(lockfile).to end_with("BUNDLED WITH\n 55\n")
bundle "lock --update --bundler"
expect(the_bundle).to include_gem "rack 1.0"
update_repo4 do
build_gem "bundler", "99"
end
allow(Bundler::SharedHelpers).to receive(:find_gemfile).and_return(bundled_app_gemfile)
expect(the_bundle.locked_gems.bundler_version).to eq v(Bundler::VERSION)
bundle "lock --update --bundler --verbose", :artifice => "compact_index", :env => { "BUNDLER_SPEC_GEM_REPO" => gem_repo4.to_s }
expect(lockfile).to end_with("BUNDLED WITH\n 99\n")
end
it "supports adding new platforms" do

View file

@ -658,27 +658,27 @@ RSpec.describe "bundle update" do
bundle "update", :all => true, :raise_on_error => false
expect(last_command).to be_failure
expect(err).to match(/You are trying to install in deployment mode after changing.your Gemfile/m)
expect(err).to match(/freeze \nby running `bundle config set frozen false`./m)
expect(err).to match(/Bundler is unlocking, but the lockfile can't be updated because frozen mode is set/)
expect(err).to match(/freeze by running `bundle config set frozen false`./)
end
it "should fail loudly when frozen is set globally" do
bundle "config set --global frozen 1"
bundle "update", :all => true, :raise_on_error => false
expect(err).to match(/You are trying to install in deployment mode after changing.your Gemfile/m).
and match(/freeze \nby running `bundle config set frozen false`./m)
expect(err).to match(/Bundler is unlocking, but the lockfile can't be updated because frozen mode is set/).
and match(/freeze by running `bundle config set frozen false`./)
end
it "should fail loudly when deployment is set globally" do
bundle "config set --global deployment true"
bundle "update", :all => true, :raise_on_error => false
expect(err).to match(/You are trying to install in deployment mode after changing.your Gemfile/m).
and match(/freeze \nby running `bundle config set frozen false`./m)
expect(err).to match(/Bundler is unlocking, but the lockfile can't be updated because frozen mode is set/).
and match(/freeze by running `bundle config set frozen false`./)
end
it "should not suggest any command to unfreeze bundler if frozen is set through ENV" do
bundle "update", :all => true, :raise_on_error => false, :env => { "BUNDLE_FROZEN" => "true" }
expect(err).to match(/You are trying to install in deployment mode after changing.your Gemfile/m)
expect(err).to match(/Bundler is unlocking, but the lockfile can't be updated because frozen mode is set/)
expect(err).not_to match(/by running/)
end
end
@ -1239,7 +1239,7 @@ RSpec.describe "bundle update --ruby" do
end
RSpec.describe "bundle update --bundler" do
it "updates the bundler version in the lockfile without re-resolving" do
it "updates the bundler version in the lockfile" do
build_repo4 do
build_gem "rack", "1.0"
end
@ -1250,8 +1250,6 @@ RSpec.describe "bundle update --bundler" do
G
lockfile lockfile.sub(/(^\s*)#{Bundler::VERSION}($)/, '\11.0.0\2')
FileUtils.rm_r gem_repo4
bundle :update, :bundler => true, :artifice => "compact_index", :verbose => true
expect(out).to include("Using bundler #{Bundler::VERSION}")
@ -1473,8 +1471,8 @@ RSpec.describe "bundle update --bundler" do
2.1.4
L
bundle "update --bundler=2.3.9", :env => { "BUNDLE_FROZEN" => "true" }
expect(err).to include("Cannot write a changed lockfile while frozen")
bundle "update --bundler=2.3.9", :env => { "BUNDLE_FROZEN" => "true" }, :raise_on_error => false
expect(err).to include("An update to the version of bundler itself was requested, but the lockfile can't be updated because frozen mode is set")
end
end

View file

@ -66,7 +66,7 @@ RSpec.describe "install in deployment or frozen mode" do
G
bundle "install --deployment", :raise_on_error => false
expect(err).to include("deployment mode")
expect(err).to include("frozen mode")
expect(err).to include("You have added to the Gemfile")
expect(err).to include("* rack-obama")
expect(err).not_to include("You have deleted from the Gemfile")
@ -272,7 +272,7 @@ RSpec.describe "install in deployment or frozen mode" do
bundle "config set --local deployment true"
bundle :install, :raise_on_error => false
expect(err).to include("deployment mode")
expect(err).to include("frozen mode")
expect(err).to include("You have added to the Gemfile")
expect(err).to include("* rack-obama")
expect(err).not_to include("You have deleted from the Gemfile")
@ -297,8 +297,12 @@ RSpec.describe "install in deployment or frozen mode" do
expect(out).to eq("WIN")
end
it "works if a gem is missing, but it's on a different platform, and the Gemfile has no global source", :bundler => "< 3" do
it "works if a gem is missing, but it's on a different platform" do
build_repo2
install_gemfile <<-G
source "#{file_uri_for(gem_repo2)}"
source "#{file_uri_for(gem_repo1)}" do
gem "rake", platform: :#{not_local_tag}
end
@ -308,6 +312,40 @@ RSpec.describe "install in deployment or frozen mode" do
expect(last_command).to be_success
end
it "shows a good error if a gem is missing from the lockfile" do
build_repo4 do
build_gem "foo"
build_gem "bar"
end
gemfile <<-G
source "https://gem.repo4"
gem "foo"
gem "bar"
G
lockfile <<~L
GEM
remote: https://gem.repo4/
specs:
foo (1.0)
PLATFORMS
#{lockfile_platforms}
DEPENDENCIES
foo
bar
BUNDLED WITH
#{Bundler::VERSION}
L
bundle :install, :env => { "BUNDLE_FROZEN" => "true" }, :raise_on_error => false, :artifice => "compact_index"
expect(err).to include("Your lock file is missing \"bar\", but the lockfile can't be updated because frozen mode is set")
end
it "explodes if a path gem is missing" do
build_lib "path_gem"
install_gemfile <<-G
@ -333,7 +371,7 @@ RSpec.describe "install in deployment or frozen mode" do
ENV["BUNDLE_FROZEN"] = "1"
bundle "install", :raise_on_error => false
expect(err).to include("deployment mode")
expect(err).to include("frozen mode")
expect(err).to include("You have added to the Gemfile")
expect(err).to include("* rack-obama")
expect(err).not_to include("You have deleted from the Gemfile")
@ -349,7 +387,7 @@ RSpec.describe "install in deployment or frozen mode" do
ENV["BUNDLE_DEPLOYMENT"] = "true"
bundle "install", :raise_on_error => false
expect(err).to include("deployment mode")
expect(err).to include("frozen mode")
expect(err).to include("You have added to the Gemfile")
expect(err).to include("* rack-obama")
expect(err).not_to include("You have deleted from the Gemfile")
@ -379,7 +417,7 @@ RSpec.describe "install in deployment or frozen mode" do
ENV["BUNDLE_FROZEN"] = "false"
ENV["BUNDLE_DEPLOYMENT"] = "false"
bundle "install"
expect(out).not_to include("deployment mode")
expect(out).not_to include("frozen mode")
expect(out).not_to include("You have added to the Gemfile")
expect(out).not_to include("* rack-obama")
end
@ -392,7 +430,7 @@ RSpec.describe "install in deployment or frozen mode" do
bundle "config set --local deployment true"
bundle :install, :raise_on_error => false
expect(err).to include("deployment mode")
expect(err).to include("frozen mode")
expect(err).to include("You have added to the Gemfile:\n* activesupport\n\n")
expect(err).to include("You have deleted from the Gemfile:\n* rack")
expect(err).not_to include("You have changed in the Gemfile")
@ -406,7 +444,7 @@ RSpec.describe "install in deployment or frozen mode" do
bundle "config set --local deployment true"
bundle :install, :raise_on_error => false
expect(err).to include("deployment mode")
expect(err).to include("frozen mode")
expect(err).not_to include("You have added to the Gemfile")
expect(err).to include("You have changed in the Gemfile:\n* rack from `no specified source` to `git://hubz.com`")
end
@ -426,7 +464,7 @@ RSpec.describe "install in deployment or frozen mode" do
bundle "config set --local deployment true"
bundle :install, :raise_on_error => false
expect(err).to include("deployment mode")
expect(err).to include("frozen mode")
expect(err).not_to include("You have deleted from the Gemfile")
expect(err).not_to include("You have added to the Gemfile")
expect(err).to include("You have changed in the Gemfile:\n* rack from `#{lib_path("rack-1.0")}` to `no specified source`")
@ -450,7 +488,7 @@ RSpec.describe "install in deployment or frozen mode" do
bundle "config set --local deployment true"
bundle :install, :raise_on_error => false
expect(err).to include("deployment mode")
expect(err).to include("frozen mode")
expect(err).to include("You have changed in the Gemfile:\n* rack from `#{lib_path("rack")}` to `no specified source`")
expect(err).not_to include("You have added to the Gemfile")
expect(err).not_to include("You have deleted from the Gemfile")
@ -469,7 +507,7 @@ RSpec.describe "install in deployment or frozen mode" do
run "require 'rack'", :raise_on_error => false
expect(err).to include strip_whitespace(<<-E).strip
The dependencies in your gemfile changed
The dependencies in your gemfile changed, but the lockfile can't be updated because frozen mode is set (Bundler::ProductionError)
You have added to the Gemfile:
* rack (= 1.0.0)
@ -502,7 +540,7 @@ You have deleted from the Gemfile:
simulate_new_machine
bundle "config set --local deployment true"
bundle "install --verbose"
expect(out).not_to include("You are trying to install in deployment mode after changing your Gemfile")
expect(out).not_to include("but the lockfile can't be updated because frozen mode is set")
expect(out).not_to include("You have added to the Gemfile")
expect(out).not_to include("You have deleted from the Gemfile")
expect(out).to include("vendor/cache/foo")

View file

@ -150,7 +150,7 @@ RSpec.describe "bundle install from an existing gemspec" do
output = bundle("install", :dir => tmp.join("foo"))
expect(output).not_to match(/You have added to the Gemfile/)
expect(output).not_to match(/You have deleted from the Gemfile/)
expect(output).not_to match(/install in deployment mode after changing/)
expect(output).not_to match(/the lockfile can't be updated because frozen mode is set/)
end
it "should match a lockfile without needing to re-resolve" do

View file

@ -115,8 +115,6 @@ RSpec.describe "bundle install with specific platforms" do
s.platform = "arm64-darwin"
s.required_ruby_version = "< #{Gem.ruby_version}"
end
build_gem "bundler", "2.1.4"
end
gemfile <<~G
@ -137,22 +135,21 @@ RSpec.describe "bundle install with specific platforms" do
DEPENDENCIES
nokogiri
RUBY VERSION
2.5.3p105
BUNDLED WITH
2.1.4
#{Bundler::VERSION}
L
simulate_platform "arm64-darwin-22", &example
end
it "still installs the generic RUBY variant if necessary" do
bundle "update --bundler", :artifice => "compact_index", :env => { "BUNDLER_SPEC_GEM_REPO" => gem_repo4.to_s }
bundle "install --verbose", :artifice => "compact_index", :env => { "BUNDLER_SPEC_GEM_REPO" => gem_repo4.to_s }
expect(out).to include("Installing nokogiri 1.3.10")
end
it "still installs the generic RUBY variant if necessary, even in frozen mode" do
bundle "update --bundler", :artifice => "compact_index", :env => { "BUNDLER_SPEC_GEM_REPO" => gem_repo4.to_s, "BUNDLE_FROZEN" => "true" }
bundle "install --verbose", :artifice => "compact_index", :env => { "BUNDLER_SPEC_GEM_REPO" => gem_repo4.to_s, "BUNDLE_FROZEN" => "true" }
expect(out).to include("Installing nokogiri 1.3.10")
end
end

View file

@ -1371,7 +1371,7 @@ RSpec.describe "the lockfile format" do
L
bundle "install --verbose"
expect(out).to include("re-resolving dependencies because your lock file is missing some gems")
expect(out).to include("re-resolving dependencies because your lock file is missing \"minitest-bisect\"")
expect(lockfile).to eq <<~L
GEM

View file

@ -208,10 +208,8 @@ module Spec
update_repo(gem_repo4, &blk)
end
def update_repo2
update_repo gem_repo2 do
yield if block_given?
end
def update_repo2(&blk)
update_repo(gem_repo2, &blk)
end
def build_security_repo

View file

@ -213,8 +213,9 @@ class Gem::MockBrowser
end
end
def self.post(uri)
post = Net::HTTP::Post.new(uri)
def self.post(uri, content_type: "application/x-www-form-urlencoded")
headers = { "content-type" => content_type } if content_type
post = Net::HTTP::Post.new(uri, headers)
Net::HTTP.start(uri.hostname, uri.port) do |http|
http.request(post)
end

View file

@ -54,4 +54,4 @@ DEPENDENCIES
webrick (~> 1.6)
BUNDLED WITH
2.4.14
2.4.15

View file

@ -70,4 +70,4 @@ DEPENDENCIES
test-unit
BUNDLED WITH
2.4.14
2.4.15

View file

@ -78,4 +78,4 @@ DEPENDENCIES
test-unit
BUNDLED WITH
2.4.14
2.4.15

View file

@ -42,4 +42,4 @@ DEPENDENCIES
webrick (= 1.7.0)
BUNDLED WITH
2.4.14
2.4.15