Sync with upstream rubygems (#9206)

This commit is contained in:
David Rodríguez 2023-12-12 20:49:25 +01:00 committed by GitHub
parent 0366c424e5
commit 1572322e17
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 3 additions and 43 deletions

View File

@ -179,37 +179,7 @@ module Gem
end
end
# comparison is done order independently since rubygems 3.2.0.rc.2
unless Gem::Requirement.new("> 1", "< 2") == Gem::Requirement.new("< 2", "> 1")
class Requirement
module OrderIndependentComparison
def ==(other)
return unless Gem::Requirement === other
if _requirements_sorted? && other._requirements_sorted?
super
else
_with_sorted_requirements == other._with_sorted_requirements
end
end
protected
def _requirements_sorted?
return @_requirements_sorted if defined?(@_requirements_sorted)
strings = as_list
@_requirements_sorted = strings == strings.sort
end
def _with_sorted_requirements
@_with_sorted_requirements ||= _requirements_sorted? ? self : self.class.new(as_list.sort)
end
end
prepend OrderIndependentComparison
end
end
# Requirements using lambda operator differentiate trailing zeros since rubygems 3.2.6
if Gem::Requirement.new("~> 2.0").hash == Gem::Requirement.new("~> 2.0.0").hash
class Requirement
module CorrectHashForLambdaOperator

View File

@ -626,8 +626,6 @@ RSpec.describe "bundle clean" do
end
it "when using --force, it doesn't remove default gem binaries", :realworld do
skip "does not work on rubygems versions where `--install_dir` doesn't respect --default" unless Gem::Installer.for_spec(loaded_gemspec, install_dir: "/foo").default_spec_file == "/foo/specifications/default/bundler-#{Bundler::VERSION}.gemspec" # Since rubygems 3.2.0.rc.2
default_irb_version = ruby "gem 'irb', '< 999999'; require 'irb'; puts IRB::VERSION", raise_on_error: false
skip "irb isn't a default gem" if default_irb_version.empty?

View File

@ -141,8 +141,6 @@ RSpec.shared_examples "bundle install --standalone" do
describe "with default gems and a lockfile", :ruby_repo do
before do
skip "does not work on rubygems versions where `--install_dir` doesn't respect --default" unless Gem::Installer.for_spec(loaded_gemspec, install_dir: "/foo").default_spec_file == "/foo/specifications/default/bundler-#{Bundler::VERSION}.gemspec" # Since rubygems 3.2.0.rc.2
realworld_system_gems "tsort --version 0.1.0"
necessary_system_gems = ["optparse --version 0.1.1", "psych --version 3.3.2", "logger --version 1.4.3", "etc --version 1.2.0", "stringio --version 3.1.0"]

View File

@ -592,9 +592,6 @@ RSpec.describe "bundler/inline#gemfile" do
end
it "when requiring fileutils after does not show redefinition warnings", :realworld do
dependency_installer_loads_fileutils = ruby "require 'rubygems/dependency_installer'; puts $LOADED_FEATURES.grep(/fileutils/)", raise_on_error: false
skip "does not work if rubygems/dependency_installer loads fileutils, which happens until rubygems 3.2.0" unless dependency_installer_loads_fileutils.empty?
Dir.mkdir tmp("path_without_gemfile")
default_fileutils_version = ruby "gem 'fileutils', '< 999999'; require 'fileutils'; puts FileUtils::VERSION", raise_on_error: false
@ -606,9 +603,6 @@ RSpec.describe "bundler/inline#gemfile" do
realworld_system_gems "timeout uri" # this spec uses net/http which requires these default gems
# on prerelease rubies, a required_rubygems_version constraint is added by RubyGems to the resolution, causing Molinillo to load the `set` gem
realworld_system_gems "set --version 1.0.3" if Gem.ruby_version.prerelease?
script <<-RUBY, dir: tmp("path_without_gemfile"), env: { "BUNDLER_GEM_DEFAULT_DIR" => system_gem_path.to_s }
require "bundler/inline"

View File

@ -3,7 +3,7 @@
source "https://rubygems.org"
gem "test-unit", "~> 3.0"
gem "rake", "~> 13.0"
gem "rake", "~> 13.1"
gem "rb_sys"
gem "webrick", "~> 1.6"

View File

@ -7,7 +7,7 @@ gem "webrick", "1.7.0"
gem "rack-test", "~> 1.1"
gem "compact_index", "~> 0.15.0"
gem "sinatra", "~> 2.0"
gem "rake", "13.0.1"
gem "rake", "~> 13.1"
gem "builder", "~> 3.2"
gem "rb_sys"
gem "rubygems-generate_index", "~> 1.1"