mirror of
https://github.com/ruby/ruby.git
synced 2025-09-21 11:33:58 +02:00
Merge RubyGems-3.3.13 and Bundler-2.3.13
This commit is contained in:
parent
14e4055ab1
commit
c7bbed2994
17 changed files with 155 additions and 50 deletions
|
@ -87,10 +87,11 @@ module Bundler
|
||||||
@platforms = @locked_platforms.dup
|
@platforms = @locked_platforms.dup
|
||||||
@locked_bundler_version = @locked_gems.bundler_version
|
@locked_bundler_version = @locked_gems.bundler_version
|
||||||
@locked_ruby_version = @locked_gems.ruby_version
|
@locked_ruby_version = @locked_gems.ruby_version
|
||||||
|
@originally_locked_specs = SpecSet.new(@locked_gems.specs)
|
||||||
|
|
||||||
if unlock != true
|
if unlock != true
|
||||||
@locked_deps = @locked_gems.dependencies
|
@locked_deps = @locked_gems.dependencies
|
||||||
@locked_specs = SpecSet.new(@locked_gems.specs)
|
@locked_specs = @originally_locked_specs
|
||||||
@locked_sources = @locked_gems.sources
|
@locked_sources = @locked_gems.sources
|
||||||
else
|
else
|
||||||
@unlock = {}
|
@unlock = {}
|
||||||
|
@ -255,14 +256,14 @@ module Bundler
|
||||||
# @return [SpecSet] resolved dependencies
|
# @return [SpecSet] resolved dependencies
|
||||||
def resolve
|
def resolve
|
||||||
@resolve ||= begin
|
@resolve ||= begin
|
||||||
last_resolve = converge_locked_specs
|
|
||||||
if Bundler.frozen_bundle?
|
if Bundler.frozen_bundle?
|
||||||
Bundler.ui.debug "Frozen, using resolution from the lockfile"
|
Bundler.ui.debug "Frozen, using resolution from the lockfile"
|
||||||
last_resolve
|
@locked_specs
|
||||||
elsif !unlocking? && nothing_changed?
|
elsif !unlocking? && nothing_changed?
|
||||||
Bundler.ui.debug("Found no changes, using resolution from the lockfile")
|
Bundler.ui.debug("Found no changes, using resolution from the lockfile")
|
||||||
last_resolve
|
SpecSet.new(filter_specs(@locked_specs, @dependencies.select{|dep| @locked_specs[dep].any? }))
|
||||||
else
|
else
|
||||||
|
last_resolve = converge_locked_specs
|
||||||
# Run a resolve against the locally available gems
|
# Run a resolve against the locally available gems
|
||||||
Bundler.ui.debug("Found changes from the lockfile, re-resolving dependencies because #{change_reason}")
|
Bundler.ui.debug("Found changes from the lockfile, re-resolving dependencies because #{change_reason}")
|
||||||
expanded_dependencies = expand_dependencies(dependencies + metadata_dependencies, true)
|
expanded_dependencies = expand_dependencies(dependencies + metadata_dependencies, true)
|
||||||
|
@ -464,6 +465,10 @@ module Bundler
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
def filter_specs(specs, deps)
|
||||||
|
SpecSet.new(specs).for(expand_dependencies(deps, true), false, false)
|
||||||
|
end
|
||||||
|
|
||||||
def materialize(dependencies)
|
def materialize(dependencies)
|
||||||
specs = resolve.materialize(dependencies)
|
specs = resolve.materialize(dependencies)
|
||||||
missing_specs = specs.missing_specs
|
missing_specs = specs.missing_specs
|
||||||
|
@ -679,17 +684,17 @@ module Bundler
|
||||||
end
|
end
|
||||||
|
|
||||||
def converge_specs(specs)
|
def converge_specs(specs)
|
||||||
deps = []
|
|
||||||
converged = []
|
converged = []
|
||||||
|
|
||||||
|
deps = @dependencies.select do |dep|
|
||||||
|
specs[dep].any? {|s| s.satisfies?(dep) && (!dep.source || s.source.include?(dep.source)) }
|
||||||
|
end
|
||||||
|
|
||||||
specs.each do |s|
|
specs.each do |s|
|
||||||
# Replace the locked dependency's source with the equivalent source from the Gemfile
|
# Replace the locked dependency's source with the equivalent source from the Gemfile
|
||||||
dep = @dependencies.find {|d| s.satisfies?(d) }
|
dep = @dependencies.find {|d| s.satisfies?(d) }
|
||||||
|
|
||||||
if dep && (!dep.source || s.source.include?(dep.source))
|
s.source = (dep && dep.source) || sources.get(s.source) || sources.default_source
|
||||||
deps << dep
|
|
||||||
end
|
|
||||||
|
|
||||||
s.source = (dep && dep.source) || sources.get(s.source) || sources.default_source unless Bundler.frozen_bundle?
|
|
||||||
|
|
||||||
next if @unlock[:sources].include?(s.source.name)
|
next if @unlock[:sources].include?(s.source.name)
|
||||||
|
|
||||||
|
@ -726,8 +731,7 @@ module Bundler
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
resolve = SpecSet.new(converged)
|
SpecSet.new(filter_specs(converged, deps).reject{|s| @unlock[:gems].include?(s.name) })
|
||||||
SpecSet.new(resolve.for(expand_dependencies(deps, true), false, false).reject{|s| @unlock[:gems].include?(s.name) })
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def metadata_dependencies
|
def metadata_dependencies
|
||||||
|
@ -804,7 +808,7 @@ module Bundler
|
||||||
|
|
||||||
def additional_base_requirements_for_resolve
|
def additional_base_requirements_for_resolve
|
||||||
return [] unless @locked_gems && unlocking? && !sources.expired_sources?(@locked_gems.sources)
|
return [] unless @locked_gems && unlocking? && !sources.expired_sources?(@locked_gems.sources)
|
||||||
converge_specs(@locked_gems.specs).map do |locked_spec|
|
converge_specs(@originally_locked_specs).map do |locked_spec|
|
||||||
name = locked_spec.name
|
name = locked_spec.name
|
||||||
dep = Gem::Dependency.new(name, ">= #{locked_spec.version}")
|
dep = Gem::Dependency.new(name, ">= #{locked_spec.version}")
|
||||||
DepProxy.get_proxy(dep, locked_spec.platform)
|
DepProxy.get_proxy(dep, locked_spec.platform)
|
||||||
|
|
|
@ -26,8 +26,11 @@ module Bundler
|
||||||
@required_ruby_version ||= _remote_specification.required_ruby_version
|
@required_ruby_version ||= _remote_specification.required_ruby_version
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# A fallback is included because the original version of the specification
|
||||||
|
# API didn't include that field, so some marshalled specs in the index have it
|
||||||
|
# set to +nil+.
|
||||||
def required_rubygems_version
|
def required_rubygems_version
|
||||||
@required_rubygems_version ||= _remote_specification.required_rubygems_version
|
@required_rubygems_version ||= _remote_specification.required_rubygems_version || Gem::Requirement.default
|
||||||
end
|
end
|
||||||
|
|
||||||
def fetch_platform
|
def fetch_platform
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
# frozen_string_literal: false
|
# frozen_string_literal: false
|
||||||
|
|
||||||
module Bundler
|
module Bundler
|
||||||
VERSION = "2.3.12".freeze
|
VERSION = "2.3.13".freeze
|
||||||
|
|
||||||
def self.bundler_major_version
|
def self.bundler_major_version
|
||||||
@bundler_major_version ||= VERSION.split(".").first.to_i
|
@bundler_major_version ||= VERSION.split(".").first.to_i
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
require 'rbconfig'
|
require 'rbconfig'
|
||||||
|
|
||||||
module Gem
|
module Gem
|
||||||
VERSION = "3.3.12".freeze
|
VERSION = "3.3.13".freeze
|
||||||
end
|
end
|
||||||
|
|
||||||
# Must be first since it unloads the prelude from 1.9.2
|
# Must be first since it unloads the prelude from 1.9.2
|
||||||
|
@ -864,7 +864,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
||||||
return @ruby_version if defined? @ruby_version
|
return @ruby_version if defined? @ruby_version
|
||||||
version = RUBY_VERSION.dup
|
version = RUBY_VERSION.dup
|
||||||
|
|
||||||
if defined?(RUBY_DESCRIPTION)
|
unless defined?(RUBY_PATCHLEVEL) && RUBY_PATCHLEVEL != -1
|
||||||
if RUBY_ENGINE == "ruby"
|
if RUBY_ENGINE == "ruby"
|
||||||
desc = RUBY_DESCRIPTION[/\Aruby #{Regexp.quote(RUBY_VERSION)}([^ ]+) /, 1]
|
desc = RUBY_DESCRIPTION[/\Aruby #{Regexp.quote(RUBY_VERSION)}([^ ]+) /, 1]
|
||||||
else
|
else
|
||||||
|
|
|
@ -12,7 +12,12 @@ class Gem::Commands::OwnerCommand < Gem::Command
|
||||||
def description # :nodoc:
|
def description # :nodoc:
|
||||||
<<-EOF
|
<<-EOF
|
||||||
The owner command lets you add and remove owners of a gem on a push
|
The owner command lets you add and remove owners of a gem on a push
|
||||||
server (the default is https://rubygems.org).
|
server (the default is https://rubygems.org). Multiple owners can be
|
||||||
|
added or removed at the same time, if the flag is given multiple times.
|
||||||
|
|
||||||
|
The supported user identifiers are dependant on the push server.
|
||||||
|
For rubygems.org, both e-mail and handle are supported, even though the
|
||||||
|
user identifier field is called "email".
|
||||||
|
|
||||||
The owner of a gem has the permission to push new versions, yank existing
|
The owner of a gem has the permission to push new versions, yank existing
|
||||||
versions or edit the HTML page of the gem. Be careful of who you give push
|
versions or edit the HTML page of the gem. Be careful of who you give push
|
||||||
|
@ -35,11 +40,11 @@ permission to.
|
||||||
add_otp_option
|
add_otp_option
|
||||||
defaults.merge! :add => [], :remove => []
|
defaults.merge! :add => [], :remove => []
|
||||||
|
|
||||||
add_option '-a', '--add EMAIL', 'Add an owner' do |value, options|
|
add_option '-a', '--add NEW_OWNER', 'Add an owner by user identifier' do |value, options|
|
||||||
options[:add] << value
|
options[:add] << value
|
||||||
end
|
end
|
||||||
|
|
||||||
add_option '-r', '--remove EMAIL', 'Remove an owner' do |value, options|
|
add_option '-r', '--remove OLD_OWNER', 'Remove an owner by user identifier' do |value, options|
|
||||||
options[:remove] << value
|
options[:remove] << value
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -364,7 +364,9 @@ RSpec.describe "bundle install with gem sources" do
|
||||||
end
|
end
|
||||||
|
|
||||||
it "throws a warning if a gem is added twice in Gemfile without version requirements" do
|
it "throws a warning if a gem is added twice in Gemfile without version requirements" do
|
||||||
install_gemfile <<-G, :raise_on_error => false
|
build_repo2
|
||||||
|
|
||||||
|
install_gemfile <<-G
|
||||||
source "#{file_uri_for(gem_repo2)}"
|
source "#{file_uri_for(gem_repo2)}"
|
||||||
gem "rack"
|
gem "rack"
|
||||||
gem "rack"
|
gem "rack"
|
||||||
|
@ -376,7 +378,9 @@ RSpec.describe "bundle install with gem sources" do
|
||||||
end
|
end
|
||||||
|
|
||||||
it "throws a warning if a gem is added twice in Gemfile with same versions" do
|
it "throws a warning if a gem is added twice in Gemfile with same versions" do
|
||||||
install_gemfile <<-G, :raise_on_error => false
|
build_repo2
|
||||||
|
|
||||||
|
install_gemfile <<-G
|
||||||
source "#{file_uri_for(gem_repo2)}"
|
source "#{file_uri_for(gem_repo2)}"
|
||||||
gem "rack", "1.0"
|
gem "rack", "1.0"
|
||||||
gem "rack", "1.0"
|
gem "rack", "1.0"
|
||||||
|
@ -387,6 +391,22 @@ RSpec.describe "bundle install with gem sources" do
|
||||||
expect(err).to include("While it's not a problem now, it could cause errors if you change the version of one of them later.")
|
expect(err).to include("While it's not a problem now, it could cause errors if you change the version of one of them later.")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "throws a warning if a gem is added twice under different platforms and does not crash when using the generated lockfile" do
|
||||||
|
build_repo2
|
||||||
|
|
||||||
|
install_gemfile <<-G
|
||||||
|
source "#{file_uri_for(gem_repo2)}"
|
||||||
|
gem "rack", :platform => :jruby
|
||||||
|
gem "rack"
|
||||||
|
G
|
||||||
|
|
||||||
|
bundle "install"
|
||||||
|
|
||||||
|
expect(err).to include("Your Gemfile lists the gem rack (>= 0) more than once.")
|
||||||
|
expect(err).to include("Remove any duplicate entries and specify the gem only once.")
|
||||||
|
expect(err).to include("While it's not a problem now, it could cause errors if you change the version of one of them later.")
|
||||||
|
end
|
||||||
|
|
||||||
it "does not throw a warning if a gem is added once in Gemfile and also inside a gemspec as a development dependency" do
|
it "does not throw a warning if a gem is added once in Gemfile and also inside a gemspec as a development dependency" do
|
||||||
build_lib "my-gem", :path => bundled_app do |s|
|
build_lib "my-gem", :path => bundled_app do |s|
|
||||||
s.add_development_dependency "my-private-gem"
|
s.add_development_dependency "my-private-gem"
|
||||||
|
|
|
@ -542,6 +542,40 @@ RSpec.describe "bundle lock" do
|
||||||
bundle "lock --add-platform x86_64-linux", :artifice => "compact_index", :env => { "BUNDLER_SPEC_GEM_REPO" => gem_repo4.to_s }
|
bundle "lock --add-platform x86_64-linux", :artifice => "compact_index", :env => { "BUNDLER_SPEC_GEM_REPO" => gem_repo4.to_s }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "respects lower bound ruby requirements" do
|
||||||
|
skip "this spec does not work with prereleases because their version is actually lower than their reported `RUBY_VERSION`" if RUBY_PATCHLEVEL == -1
|
||||||
|
|
||||||
|
build_repo4 do
|
||||||
|
build_gem "our_private_gem", "0.1.0" do |s|
|
||||||
|
s.required_ruby_version = ">= #{RUBY_VERSION}"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
gemfile <<-G
|
||||||
|
source "https://localgemserver.test"
|
||||||
|
|
||||||
|
gem "our_private_gem"
|
||||||
|
G
|
||||||
|
|
||||||
|
lockfile <<-L
|
||||||
|
GEM
|
||||||
|
remote: https://localgemserver.test/
|
||||||
|
specs:
|
||||||
|
our_private_gem (0.1.0)
|
||||||
|
|
||||||
|
PLATFORMS
|
||||||
|
#{lockfile_platforms}
|
||||||
|
|
||||||
|
DEPENDENCIES
|
||||||
|
our_private_gem
|
||||||
|
|
||||||
|
BUNDLED WITH
|
||||||
|
#{Bundler::VERSION}
|
||||||
|
L
|
||||||
|
|
||||||
|
bundle "install", :artifice => "compact_index", :env => { "BUNDLER_SPEC_GEM_REPO" => gem_repo4.to_s }
|
||||||
|
end
|
||||||
|
|
||||||
context "when an update is available" do
|
context "when an update is available" do
|
||||||
let(:repo) { gem_repo2 }
|
let(:repo) { gem_repo2 }
|
||||||
|
|
||||||
|
|
|
@ -1182,6 +1182,8 @@ RSpec.describe "bundle update --bundler" do
|
||||||
end
|
end
|
||||||
|
|
||||||
it "updates the bundler version in the lockfile even if the latest version is not installed", :ruby_repo, :realworld do
|
it "updates the bundler version in the lockfile even if the latest version is not installed", :ruby_repo, :realworld do
|
||||||
|
skip "ruby-head has a default Bundler version too high for this spec to work" if RUBY_PATCHLEVEL == -1
|
||||||
|
|
||||||
pristine_system_gems "bundler-2.3.9"
|
pristine_system_gems "bundler-2.3.9"
|
||||||
|
|
||||||
build_repo4 do
|
build_repo4 do
|
||||||
|
@ -1226,6 +1228,8 @@ RSpec.describe "bundle update --bundler" do
|
||||||
end
|
end
|
||||||
|
|
||||||
it "errors if the explicit target version does not exist", :realworld do
|
it "errors if the explicit target version does not exist", :realworld do
|
||||||
|
skip "ruby-head has a default Bundler version too high for this spec to work" if RUBY_PATCHLEVEL == -1
|
||||||
|
|
||||||
pristine_system_gems "bundler-2.3.9"
|
pristine_system_gems "bundler-2.3.9"
|
||||||
|
|
||||||
build_repo4 do
|
build_repo4 do
|
||||||
|
|
|
@ -216,7 +216,7 @@ RSpec.describe "bundle install across platforms" do
|
||||||
pry
|
pry
|
||||||
|
|
||||||
BUNDLED WITH
|
BUNDLED WITH
|
||||||
#{Bundler::VERSION}
|
#{Bundler::VERSION}
|
||||||
L
|
L
|
||||||
|
|
||||||
aggregate_failures do
|
aggregate_failures do
|
||||||
|
|
|
@ -1496,4 +1496,45 @@ RSpec.describe "bundle install with gems on multiple sources" do
|
||||||
L
|
L
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "when default source uses the old API and includes old gems with nil required_rubygems_version" do
|
||||||
|
before do
|
||||||
|
build_repo4 do
|
||||||
|
build_gem "pdf-writer", "1.1.8"
|
||||||
|
end
|
||||||
|
|
||||||
|
path = "#{gem_repo4}/#{Gem::MARSHAL_SPEC_DIR}/pdf-writer-1.1.8.gemspec.rz"
|
||||||
|
spec = Marshal.load(Bundler.rubygems.inflate(File.binread(path)))
|
||||||
|
spec.instance_variable_set(:@required_rubygems_version, nil)
|
||||||
|
File.open(path, "wb") do |f|
|
||||||
|
f.write Gem.deflate(Marshal.dump(spec))
|
||||||
|
end
|
||||||
|
|
||||||
|
gemfile <<~G
|
||||||
|
source "https://localgemserver.test"
|
||||||
|
|
||||||
|
gem "pdf-writer", "= 1.1.8"
|
||||||
|
G
|
||||||
|
end
|
||||||
|
|
||||||
|
it "handles that fine" do
|
||||||
|
bundle "install --verbose", :artifice => "endpoint", :env => { "BUNDLER_SPEC_GEM_REPO" => gem_repo4.to_s }
|
||||||
|
|
||||||
|
expect(lockfile).to eq <<~L
|
||||||
|
GEM
|
||||||
|
remote: https://localgemserver.test/
|
||||||
|
specs:
|
||||||
|
pdf-writer (1.1.8)
|
||||||
|
|
||||||
|
PLATFORMS
|
||||||
|
#{specific_local_platform}
|
||||||
|
|
||||||
|
DEPENDENCIES
|
||||||
|
pdf-writer (= 1.1.8)
|
||||||
|
|
||||||
|
BUNDLED WITH
|
||||||
|
#{Bundler::VERSION}
|
||||||
|
L
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -120,7 +120,7 @@ RSpec.shared_examples "bundle install --standalone" do
|
||||||
|
|
||||||
realworld_system_gems "tsort --version 0.1.0"
|
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.0.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.0.1"]
|
||||||
necessary_system_gems += ["shellwords --version 0.1.0", "base64 --version 0.1.0", "resolv --version 0.2.1"] if Gem.rubygems_version < Gem::Version.new("3.3.a")
|
necessary_system_gems += ["shellwords --version 0.1.0", "base64 --version 0.1.0", "resolv --version 0.2.1"] if Gem.rubygems_version < Gem::Version.new("3.3.a")
|
||||||
necessary_system_gems += ["yaml --version 0.1.1"] if Gem.rubygems_version < Gem::Version.new("3.4.a")
|
necessary_system_gems += ["yaml --version 0.1.1"] if Gem.rubygems_version < Gem::Version.new("3.4.a")
|
||||||
realworld_system_gems(*necessary_system_gems, :path => scoped_gem_path(bundled_app("bundle")))
|
realworld_system_gems(*necessary_system_gems, :path => scoped_gem_path(bundled_app("bundle")))
|
||||||
|
|
|
@ -1098,22 +1098,24 @@ Also, a list:
|
||||||
Zlib::Deflate.deflate data
|
Zlib::Deflate.deflate data
|
||||||
end
|
end
|
||||||
|
|
||||||
def util_set_RUBY_VERSION(version, revision = nil, description = nil, engine = "ruby", engine_version = nil)
|
def util_set_RUBY_VERSION(version, patchlevel, revision, description, engine = "ruby", engine_version = nil)
|
||||||
if Gem.instance_variables.include? :@ruby_version
|
if Gem.instance_variables.include? :@ruby_version
|
||||||
Gem.send :remove_instance_variable, :@ruby_version
|
Gem.send :remove_instance_variable, :@ruby_version
|
||||||
end
|
end
|
||||||
|
|
||||||
@RUBY_VERSION = RUBY_VERSION
|
@RUBY_VERSION = RUBY_VERSION
|
||||||
|
@RUBY_PATCHLEVEL = RUBY_PATCHLEVEL if defined?(RUBY_PATCHLEVEL)
|
||||||
@RUBY_REVISION = RUBY_REVISION if defined?(RUBY_REVISION)
|
@RUBY_REVISION = RUBY_REVISION if defined?(RUBY_REVISION)
|
||||||
@RUBY_DESCRIPTION = RUBY_DESCRIPTION if defined?(RUBY_DESCRIPTION)
|
@RUBY_DESCRIPTION = RUBY_DESCRIPTION
|
||||||
@RUBY_ENGINE = RUBY_ENGINE
|
@RUBY_ENGINE = RUBY_ENGINE
|
||||||
@RUBY_ENGINE_VERSION = RUBY_ENGINE_VERSION if defined?(RUBY_ENGINE_VERSION)
|
@RUBY_ENGINE_VERSION = RUBY_ENGINE_VERSION if defined?(RUBY_ENGINE_VERSION)
|
||||||
|
|
||||||
util_clear_RUBY_VERSION
|
util_clear_RUBY_VERSION
|
||||||
|
|
||||||
Object.const_set :RUBY_VERSION, version
|
Object.const_set :RUBY_VERSION, version
|
||||||
Object.const_set :RUBY_REVISION, revision if revision
|
Object.const_set :RUBY_PATCHLEVEL, patchlevel
|
||||||
Object.const_set :RUBY_DESCRIPTION, description if description
|
Object.const_set :RUBY_REVISION, revision
|
||||||
|
Object.const_set :RUBY_DESCRIPTION, description
|
||||||
Object.const_set :RUBY_ENGINE, engine
|
Object.const_set :RUBY_ENGINE, engine
|
||||||
Object.const_set :RUBY_ENGINE_VERSION, engine_version if engine_version
|
Object.const_set :RUBY_ENGINE_VERSION, engine_version if engine_version
|
||||||
end
|
end
|
||||||
|
@ -1122,10 +1124,11 @@ Also, a list:
|
||||||
util_clear_RUBY_VERSION
|
util_clear_RUBY_VERSION
|
||||||
|
|
||||||
Object.const_set :RUBY_VERSION, @RUBY_VERSION
|
Object.const_set :RUBY_VERSION, @RUBY_VERSION
|
||||||
|
Object.const_set :RUBY_PATCHLEVEL, @RUBY_PATCHLEVEL if
|
||||||
|
defined?(@RUBY_PATCHLEVEL)
|
||||||
Object.const_set :RUBY_REVISION, @RUBY_REVISION if
|
Object.const_set :RUBY_REVISION, @RUBY_REVISION if
|
||||||
defined?(@RUBY_REVISION)
|
defined?(@RUBY_REVISION)
|
||||||
Object.const_set :RUBY_DESCRIPTION, @RUBY_DESCRIPTION if
|
Object.const_set :RUBY_DESCRIPTION, @RUBY_DESCRIPTION
|
||||||
defined?(@RUBY_DESCRIPTION)
|
|
||||||
Object.const_set :RUBY_ENGINE, @RUBY_ENGINE
|
Object.const_set :RUBY_ENGINE, @RUBY_ENGINE
|
||||||
Object.const_set :RUBY_ENGINE_VERSION, @RUBY_ENGINE_VERSION if
|
Object.const_set :RUBY_ENGINE_VERSION, @RUBY_ENGINE_VERSION if
|
||||||
defined?(@RUBY_ENGINE_VERSION)
|
defined?(@RUBY_ENGINE_VERSION)
|
||||||
|
@ -1133,6 +1136,7 @@ Also, a list:
|
||||||
|
|
||||||
def util_clear_RUBY_VERSION
|
def util_clear_RUBY_VERSION
|
||||||
Object.send :remove_const, :RUBY_VERSION
|
Object.send :remove_const, :RUBY_VERSION
|
||||||
|
Object.send :remove_const, :RUBY_PATCHLEVEL if defined?(RUBY_PATCHLEVEL)
|
||||||
Object.send :remove_const, :RUBY_REVISION if defined?(RUBY_REVISION)
|
Object.send :remove_const, :RUBY_REVISION if defined?(RUBY_REVISION)
|
||||||
Object.send :remove_const, :RUBY_DESCRIPTION if defined?(RUBY_DESCRIPTION)
|
Object.send :remove_const, :RUBY_DESCRIPTION if defined?(RUBY_DESCRIPTION)
|
||||||
Object.send :remove_const, :RUBY_ENGINE
|
Object.send :remove_const, :RUBY_ENGINE
|
||||||
|
|
|
@ -1106,16 +1106,8 @@ class TestGem < Gem::TestCase
|
||||||
assert_equal Gem::Requirement.default, Gem.env_requirement('qux')
|
assert_equal Gem::Requirement.default, Gem.env_requirement('qux')
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_self_ruby_version_with_patchlevel_less_ancient_rubies
|
|
||||||
util_set_RUBY_VERSION '1.8.5'
|
|
||||||
|
|
||||||
assert_equal Gem::Version.new('1.8.5'), Gem.ruby_version
|
|
||||||
ensure
|
|
||||||
util_restore_RUBY_VERSION
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_self_ruby_version_with_non_mri_implementations
|
def test_self_ruby_version_with_non_mri_implementations
|
||||||
util_set_RUBY_VERSION '2.5.0', 60928, 'jruby 9.2.0.0 (2.5.0) 2018-05-24 81156a8 OpenJDK 64-Bit Server VM 25.171-b11 on 1.8.0_171-8u171-b11-0ubuntu0.16.04.1-b11 [linux-x86_64]'
|
util_set_RUBY_VERSION '2.5.0', 0, 60928, 'jruby 9.2.0.0 (2.5.0) 2018-05-24 81156a8 OpenJDK 64-Bit Server VM 25.171-b11 on 1.8.0_171-8u171-b11-0ubuntu0.16.04.1-b11 [linux-x86_64]'
|
||||||
|
|
||||||
assert_equal Gem::Version.new('2.5.0'), Gem.ruby_version
|
assert_equal Gem::Version.new('2.5.0'), Gem.ruby_version
|
||||||
ensure
|
ensure
|
||||||
|
@ -1123,7 +1115,7 @@ class TestGem < Gem::TestCase
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_self_ruby_version_with_svn_prerelease
|
def test_self_ruby_version_with_svn_prerelease
|
||||||
util_set_RUBY_VERSION '2.6.0', 63539, 'ruby 2.6.0preview2 (2018-05-31 trunk 63539) [x86_64-linux]'
|
util_set_RUBY_VERSION '2.6.0', -1, 63539, 'ruby 2.6.0preview2 (2018-05-31 trunk 63539) [x86_64-linux]'
|
||||||
|
|
||||||
assert_equal Gem::Version.new('2.6.0.preview2'), Gem.ruby_version
|
assert_equal Gem::Version.new('2.6.0.preview2'), Gem.ruby_version
|
||||||
ensure
|
ensure
|
||||||
|
@ -1131,7 +1123,7 @@ class TestGem < Gem::TestCase
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_self_ruby_version_with_git_prerelease
|
def test_self_ruby_version_with_git_prerelease
|
||||||
util_set_RUBY_VERSION '2.7.0', 'b563439274a402e33541f5695b1bfd4ac1085638', 'ruby 2.7.0preview3 (2019-11-23 master b563439274) [x86_64-linux]'
|
util_set_RUBY_VERSION '2.7.0', -1, 'b563439274a402e33541f5695b1bfd4ac1085638', 'ruby 2.7.0preview3 (2019-11-23 master b563439274) [x86_64-linux]'
|
||||||
|
|
||||||
assert_equal Gem::Version.new('2.7.0.preview3'), Gem.ruby_version
|
assert_equal Gem::Version.new('2.7.0.preview3'), Gem.ruby_version
|
||||||
ensure
|
ensure
|
||||||
|
@ -1139,7 +1131,7 @@ class TestGem < Gem::TestCase
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_self_ruby_version_with_non_mri_implementations_with_mri_prerelase_compatibility
|
def test_self_ruby_version_with_non_mri_implementations_with_mri_prerelase_compatibility
|
||||||
util_set_RUBY_VERSION '2.6.0', 63539, 'weirdjruby 9.2.0.0 (2.6.0preview2) 2018-05-24 81156a8 OpenJDK 64-Bit Server VM 25.171-b11 on 1.8.0_171-8u171-b11-0ubuntu0.16.04.1-b11 [linux-x86_64]', 'weirdjruby', '9.2.0.0'
|
util_set_RUBY_VERSION '2.6.0', -1, 63539, 'weirdjruby 9.2.0.0 (2.6.0preview2) 2018-05-24 81156a8 OpenJDK 64-Bit Server VM 25.171-b11 on 1.8.0_171-8u171-b11-0ubuntu0.16.04.1-b11 [linux-x86_64]', 'weirdjruby', '9.2.0.0'
|
||||||
|
|
||||||
assert_equal Gem::Version.new('2.6.0.preview2'), Gem.ruby_version
|
assert_equal Gem::Version.new('2.6.0.preview2'), Gem.ruby_version
|
||||||
ensure
|
ensure
|
||||||
|
@ -1147,7 +1139,7 @@ class TestGem < Gem::TestCase
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_self_ruby_version_with_svn_trunk
|
def test_self_ruby_version_with_svn_trunk
|
||||||
util_set_RUBY_VERSION '1.9.2', 23493, 'ruby 1.9.2dev (2009-05-20 trunk 23493) [x86_64-linux]'
|
util_set_RUBY_VERSION '1.9.2', -1, 23493, 'ruby 1.9.2dev (2009-05-20 trunk 23493) [x86_64-linux]'
|
||||||
|
|
||||||
assert_equal Gem::Version.new('1.9.2.dev'), Gem.ruby_version
|
assert_equal Gem::Version.new('1.9.2.dev'), Gem.ruby_version
|
||||||
ensure
|
ensure
|
||||||
|
@ -1155,7 +1147,7 @@ class TestGem < Gem::TestCase
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_self_ruby_version_with_git_master
|
def test_self_ruby_version_with_git_master
|
||||||
util_set_RUBY_VERSION '2.7.0', '5de284ec78220e75643f89b454ce999da0c1c195', 'ruby 2.7.0dev (2019-12-23T01:37:30Z master 5de284ec78) [x86_64-linux]'
|
util_set_RUBY_VERSION '2.7.0', -1, '5de284ec78220e75643f89b454ce999da0c1c195', 'ruby 2.7.0dev (2019-12-23T01:37:30Z master 5de284ec78) [x86_64-linux]'
|
||||||
|
|
||||||
assert_equal Gem::Version.new('2.7.0.dev'), Gem.ruby_version
|
assert_equal Gem::Version.new('2.7.0.dev'), Gem.ruby_version
|
||||||
ensure
|
ensure
|
||||||
|
|
|
@ -72,4 +72,4 @@ DEPENDENCIES
|
||||||
webrick (~> 1.6)
|
webrick (~> 1.6)
|
||||||
|
|
||||||
BUNDLED WITH
|
BUNDLED WITH
|
||||||
2.3.12
|
2.3.13
|
||||||
|
|
|
@ -49,7 +49,6 @@ PLATFORMS
|
||||||
universal-java-11
|
universal-java-11
|
||||||
x86_64-darwin-19
|
x86_64-darwin-19
|
||||||
x86_64-darwin-20
|
x86_64-darwin-20
|
||||||
x86_64-darwin-21
|
|
||||||
x86_64-linux
|
x86_64-linux
|
||||||
|
|
||||||
DEPENDENCIES
|
DEPENDENCIES
|
||||||
|
@ -61,4 +60,4 @@ DEPENDENCIES
|
||||||
test-unit
|
test-unit
|
||||||
|
|
||||||
BUNDLED WITH
|
BUNDLED WITH
|
||||||
2.3.12
|
2.3.13
|
||||||
|
|
|
@ -55,7 +55,6 @@ PLATFORMS
|
||||||
universal-java-11
|
universal-java-11
|
||||||
x86_64-darwin-19
|
x86_64-darwin-19
|
||||||
x86_64-darwin-20
|
x86_64-darwin-20
|
||||||
x86_64-darwin-21
|
|
||||||
x86_64-linux
|
x86_64-linux
|
||||||
|
|
||||||
DEPENDENCIES
|
DEPENDENCIES
|
||||||
|
@ -67,4 +66,4 @@ DEPENDENCIES
|
||||||
test-unit
|
test-unit
|
||||||
|
|
||||||
BUNDLED WITH
|
BUNDLED WITH
|
||||||
2.3.12
|
2.3.13
|
||||||
|
|
|
@ -41,4 +41,4 @@ DEPENDENCIES
|
||||||
webrick (= 1.7.0)
|
webrick (= 1.7.0)
|
||||||
|
|
||||||
BUNDLED WITH
|
BUNDLED WITH
|
||||||
2.3.12
|
2.3.13
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue