rubygems-update 3.2.31 → 3.2.32
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -0
- data/bundler/CHANGELOG.md +13 -0
- data/bundler/lib/bundler/build_metadata.rb +2 -2
- data/bundler/lib/bundler/cli.rb +1 -1
- data/bundler/lib/bundler/definition.rb +35 -69
- data/bundler/lib/bundler/gem_helper.rb +2 -2
- data/bundler/lib/bundler/templates/newgem/standard.yml.tt +0 -2
- data/bundler/lib/bundler/version.rb +1 -1
- data/lib/rubygems/installer.rb +2 -10
- data/lib/rubygems/specification.rb +27 -33
- data/lib/rubygems.rb +17 -17
- data/rubygems-update.gemspec +1 -1
- data/test/rubygems/helper.rb +6 -14
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +7 -3
- data/test/rubygems/test_require.rb +6 -4
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 87e453bd13f69a120fdadd84b3a57e16527b54f7283a5077d742eb218b634bfa
|
4
|
+
data.tar.gz: ce3cfe1c1c8a515e4904fdcddae871c2012b374aea224ce66ffdd92dfd007d8f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 57fe0ccc4919643d63c6bf2016458924af17d3ec8aab9ddca552781aceebe44bfc8ac350a20e8323265ef6d3e943c4399bf0ccd280cdc000fbe4be9acdfa1a0a
|
7
|
+
data.tar.gz: c354269b3a4e084d76ada0c3547cf2890aaa989554a4011f51654cea114677ccf76c5944ea669c93b9ad7dc09d9b533d51ade69f96f167aadd372311bc208bac
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
# 3.2.32 / 2021-11-23
|
2
|
+
|
3
|
+
## Enhancements:
|
4
|
+
|
5
|
+
* Refactor installer thread safety protections. Pull request #5050 by
|
6
|
+
deivid-rodriguez
|
7
|
+
* Allow gem activation from `operating_system.rb`. Pull request #5044 by
|
8
|
+
deivid-rodriguez
|
9
|
+
* Installs bundler 2.2.32 as a default gem.
|
10
|
+
|
1
11
|
# 3.2.31 / 2021-11-08
|
2
12
|
|
3
13
|
## Enhancements:
|
data/bundler/CHANGELOG.md
CHANGED
@@ -1,3 +1,16 @@
|
|
1
|
+
# 2.2.32 (November 23, 2021)
|
2
|
+
|
3
|
+
## Enhancements:
|
4
|
+
|
5
|
+
- Clarify `bundle viz` deprecation [#5083](https://github.com/rubygems/rubygems/pull/5083)
|
6
|
+
- Unlock dependencies that no longer match lockfile [#5068](https://github.com/rubygems/rubygems/pull/5068)
|
7
|
+
- Use `shellsplit` instead of array of strings for git push [#5062](https://github.com/rubygems/rubygems/pull/5062)
|
8
|
+
- Re-enable `default_ignores` option for standard [#5003](https://github.com/rubygems/rubygems/pull/5003)
|
9
|
+
|
10
|
+
## Bug fixes:
|
11
|
+
|
12
|
+
- Fix downgrading dependencies by changing the `Gemfile` and running `bundle update` [#5078](https://github.com/rubygems/rubygems/pull/5078)
|
13
|
+
|
1
14
|
# 2.2.31 (November 8, 2021)
|
2
15
|
|
3
16
|
## Enhancements:
|
@@ -4,8 +4,8 @@ module Bundler
|
|
4
4
|
# Represents metadata from when the Bundler gem was built.
|
5
5
|
module BuildMetadata
|
6
6
|
# begin ivars
|
7
|
-
@built_at = "2021-11-
|
8
|
-
@git_commit_sha = "
|
7
|
+
@built_at = "2021-11-23".freeze
|
8
|
+
@git_commit_sha = "20d4957649".freeze
|
9
9
|
@release = true
|
10
10
|
# end ivars
|
11
11
|
|
data/bundler/lib/bundler/cli.rb
CHANGED
@@ -552,7 +552,7 @@ module Bundler
|
|
552
552
|
method_option :version, :type => :boolean, :default => false, :aliases => "-v", :desc => "Set to show each gem version."
|
553
553
|
method_option :without, :type => :array, :default => [], :aliases => "-W", :banner => "GROUP[ GROUP...]", :desc => "Exclude gems that are part of the specified named group."
|
554
554
|
def viz
|
555
|
-
SharedHelpers.major_deprecation 2, "The `viz` command has been
|
555
|
+
SharedHelpers.major_deprecation 2, "The `viz` command has been renamed to `graph` and moved to a plugin. See https://github.com/rubygems/bundler-graph"
|
556
556
|
require_relative "cli/viz"
|
557
557
|
Viz.new(options.dup).run
|
558
558
|
end
|
@@ -649,25 +649,16 @@ module Bundler
|
|
649
649
|
end
|
650
650
|
|
651
651
|
def converge_dependencies
|
652
|
-
frozen = Bundler.frozen_bundle?
|
653
652
|
(@dependencies + locked_dependencies).each do |dep|
|
654
|
-
|
655
|
-
# This is to make sure that if bundler is installing in deployment mode and
|
656
|
-
# after locked_source and sources don't match, we still use locked_source.
|
657
|
-
if frozen && !locked_source.nil? &&
|
658
|
-
locked_source.respond_to?(:source) && locked_source.source.instance_of?(Source::Path) && locked_source.source.path.exist?
|
659
|
-
dep.source = locked_source.source
|
660
|
-
elsif dep.source
|
653
|
+
if dep.source
|
661
654
|
dep.source = sources.get(dep.source)
|
662
655
|
end
|
663
656
|
end
|
664
657
|
|
665
658
|
changes = false
|
666
|
-
|
667
|
-
|
668
|
-
|
669
|
-
@dependencies.each do |dependency|
|
670
|
-
unless locked_dep = @locked_deps[dependency.name]
|
659
|
+
|
660
|
+
@dependencies.each do |dep|
|
661
|
+
unless locked_dep = @locked_deps[dep.name]
|
671
662
|
changes = true
|
672
663
|
next
|
673
664
|
end
|
@@ -678,11 +669,11 @@ module Bundler
|
|
678
669
|
# directive, the lockfile dependencies and resolved dependencies end up
|
679
670
|
# with a mismatch on #type. Work around that by setting the type on the
|
680
671
|
# dep from the lockfile.
|
681
|
-
locked_dep.instance_variable_set(:@type,
|
672
|
+
locked_dep.instance_variable_set(:@type, dep.type)
|
682
673
|
|
683
674
|
# We already know the name matches from the hash lookup
|
684
675
|
# so we only need to check the requirement now
|
685
|
-
changes ||=
|
676
|
+
changes ||= dep.requirement != locked_dep.requirement
|
686
677
|
end
|
687
678
|
|
688
679
|
changes
|
@@ -692,34 +683,34 @@ module Bundler
|
|
692
683
|
# commonly happen if the Gemfile has changed since the lockfile was last
|
693
684
|
# generated
|
694
685
|
def converge_locked_specs
|
695
|
-
|
696
|
-
|
697
|
-
# Build a list of dependencies that are the same in the Gemfile
|
698
|
-
# and Gemfile.lock. If the Gemfile modified a dependency, but
|
699
|
-
# the gem in the Gemfile.lock still satisfies it, this is fine
|
700
|
-
# too.
|
701
|
-
@dependencies.each do |dep|
|
702
|
-
locked_dep = @locked_deps[dep.name]
|
686
|
+
resolve = converge_specs(@locked_specs)
|
703
687
|
|
704
|
-
|
705
|
-
locked_dep = nil unless locked_dep == dep
|
688
|
+
diff = nil
|
706
689
|
|
707
|
-
|
708
|
-
|
709
|
-
|
710
|
-
@locked_specs.each do |s|
|
711
|
-
@unlock[:gems] << s.name if s.source == dep.source
|
712
|
-
end
|
690
|
+
# Now, we unlock any sources that do not have anymore gems pinned to it
|
691
|
+
sources.all_sources.each do |source|
|
692
|
+
next unless source.respond_to?(:unlock!)
|
713
693
|
|
714
|
-
|
715
|
-
|
694
|
+
unless resolve.any? {|s| s.source == source }
|
695
|
+
diff ||= @locked_specs.to_a - resolve.to_a
|
696
|
+
source.unlock! if diff.any? {|s| s.source == source }
|
716
697
|
end
|
717
698
|
end
|
718
699
|
|
700
|
+
resolve
|
701
|
+
end
|
702
|
+
|
703
|
+
def converge_specs(specs)
|
704
|
+
deps = []
|
719
705
|
converged = []
|
720
|
-
|
706
|
+
specs.each do |s|
|
721
707
|
# Replace the locked dependency's source with the equivalent source from the Gemfile
|
722
708
|
dep = @dependencies.find {|d| s.satisfies?(d) }
|
709
|
+
|
710
|
+
if dep && (!dep.source || s.source.include?(dep.source))
|
711
|
+
deps << dep
|
712
|
+
end
|
713
|
+
|
723
714
|
s.source = (dep && dep.source) || sources.get(s.source) unless multisource_allowed?
|
724
715
|
|
725
716
|
# Don't add a spec to the list if its source is expired. For example,
|
@@ -737,7 +728,7 @@ module Bundler
|
|
737
728
|
rescue PathError, GitError
|
738
729
|
# if we won't need the source (according to the lockfile),
|
739
730
|
# don't error if the path/git source isn't available
|
740
|
-
next if
|
731
|
+
next if specs.
|
741
732
|
for(requested_dependencies, false, true).
|
742
733
|
none? {|locked_spec| locked_spec.source == s.source }
|
743
734
|
|
@@ -753,35 +744,15 @@ module Bundler
|
|
753
744
|
s.dependencies.replace(new_spec.dependencies)
|
754
745
|
end
|
755
746
|
|
756
|
-
|
757
|
-
|
758
|
-
|
759
|
-
|
760
|
-
resolve = SpecSet.new(resolve.for(expand_dependencies(deps, true), false, false).reject{|s| @unlock[:gems].include?(s.name) })
|
761
|
-
diff = nil
|
762
|
-
|
763
|
-
# Now, we unlock any sources that do not have anymore gems pinned to it
|
764
|
-
sources.all_sources.each do |source|
|
765
|
-
next unless source.respond_to?(:unlock!)
|
766
|
-
|
767
|
-
unless resolve.any? {|s| s.source == source }
|
768
|
-
diff ||= @locked_specs.to_a - resolve.to_a
|
769
|
-
source.unlock! if diff.any? {|s| s.source == source }
|
747
|
+
if dep.nil? && @dependencies.find {|d| s.name == d.name }
|
748
|
+
@unlock[:gems] << s.name
|
749
|
+
else
|
750
|
+
converged << s
|
770
751
|
end
|
771
752
|
end
|
772
753
|
|
773
|
-
resolve
|
774
|
-
|
775
|
-
|
776
|
-
def in_locked_deps?(dep, locked_dep)
|
777
|
-
# Because the lockfile can't link a dep to a specific remote, we need to
|
778
|
-
# treat sources as equivalent anytime the locked dep has all the remotes
|
779
|
-
# that the Gemfile dep does.
|
780
|
-
locked_dep && locked_dep.source && dep.source && locked_dep.source.include?(dep.source)
|
781
|
-
end
|
782
|
-
|
783
|
-
def satisfies_locked_spec?(dep)
|
784
|
-
@locked_specs[dep].any? {|s| s.satisfies?(dep) && (!dep.source || s.source.include?(dep.source)) }
|
754
|
+
resolve = SpecSet.new(converged)
|
755
|
+
SpecSet.new(resolve.for(expand_dependencies(deps, true), false, false).reject{|s| @unlock[:gems].include?(s.name) })
|
785
756
|
end
|
786
757
|
|
787
758
|
def metadata_dependencies
|
@@ -874,16 +845,11 @@ module Bundler
|
|
874
845
|
|
875
846
|
def additional_base_requirements_for_resolve
|
876
847
|
return [] unless @locked_gems && unlocking? && !sources.expired_sources?(@locked_gems.sources)
|
877
|
-
|
878
|
-
@locked_gems.specs.reduce({}) do |requirements, locked_spec|
|
848
|
+
converge_specs(@locked_gems.specs).map do |locked_spec|
|
879
849
|
name = locked_spec.name
|
880
|
-
dependency = dependencies_by_name[name]
|
881
|
-
next requirements if @locked_gems.dependencies[name] != dependency
|
882
|
-
next requirements if dependency && dependency.source.is_a?(Source::Path)
|
883
850
|
dep = Gem::Dependency.new(name, ">= #{locked_spec.version}")
|
884
|
-
|
885
|
-
|
886
|
-
end.values
|
851
|
+
DepProxy.get_proxy(dep, locked_spec.platform)
|
852
|
+
end
|
887
853
|
end
|
888
854
|
|
889
855
|
def equivalent_rubygems_remotes?(source)
|
@@ -129,8 +129,8 @@ module Bundler
|
|
129
129
|
|
130
130
|
def git_push(remote = nil)
|
131
131
|
remote ||= default_remote
|
132
|
-
sh(
|
133
|
-
sh(
|
132
|
+
sh("git push #{remote} refs/heads/#{current_branch}".shellsplit)
|
133
|
+
sh("git push #{remote} refs/tags/#{version_tag}".shellsplit)
|
134
134
|
Bundler.ui.confirm "Pushed git commits and release tag."
|
135
135
|
end
|
136
136
|
|
data/lib/rubygems/installer.rb
CHANGED
@@ -67,8 +67,6 @@ class Gem::Installer
|
|
67
67
|
|
68
68
|
@path_warning = false
|
69
69
|
|
70
|
-
@install_lock = Thread::Mutex.new
|
71
|
-
|
72
70
|
class << self
|
73
71
|
#
|
74
72
|
# Changes in rubygems to lazily loading `rubygems/command` (in order to
|
@@ -92,12 +90,6 @@ class Gem::Installer
|
|
92
90
|
|
93
91
|
attr_accessor :path_warning
|
94
92
|
|
95
|
-
##
|
96
|
-
# Certain aspects of the install process are not thread-safe. This lock is
|
97
|
-
# used to allow multiple threads to install Gems at the same time.
|
98
|
-
|
99
|
-
attr_reader :install_lock
|
100
|
-
|
101
93
|
##
|
102
94
|
# Overrides the executable format.
|
103
95
|
#
|
@@ -342,7 +334,7 @@ class Gem::Installer
|
|
342
334
|
|
343
335
|
say spec.post_install_message if options[:post_install_message] && !spec.post_install_message.nil?
|
344
336
|
|
345
|
-
Gem::
|
337
|
+
Gem::Specification.reset
|
346
338
|
|
347
339
|
run_post_install_hooks
|
348
340
|
|
@@ -527,7 +519,7 @@ class Gem::Installer
|
|
527
519
|
end
|
528
520
|
|
529
521
|
def generate_plugins # :nodoc:
|
530
|
-
latest = Gem::
|
522
|
+
latest = Gem::Specification.latest_spec_for(spec.name)
|
531
523
|
return if latest && latest.version > spec.version
|
532
524
|
|
533
525
|
ensure_writable_dir @plugins_dir
|
@@ -102,12 +102,8 @@ class Gem::Specification < Gem::BasicSpecification
|
|
102
102
|
today = Time.now.utc
|
103
103
|
TODAY = Time.utc(today.year, today.month, today.day) # :nodoc:
|
104
104
|
|
105
|
-
#
|
106
|
-
|
107
|
-
# rubocop:enable Style/MutableConstant
|
108
|
-
LOAD_CACHE_MUTEX = Thread::Mutex.new
|
109
|
-
|
110
|
-
private_constant :LOAD_CACHE if defined? private_constant
|
105
|
+
@load_cache = {} # :nodoc:
|
106
|
+
@load_cache_mutex = Thread::Mutex.new
|
111
107
|
|
112
108
|
VALID_NAME_PATTERN = /\A[a-zA-Z0-9\.\-\_]+\z/.freeze # :nodoc:
|
113
109
|
|
@@ -182,13 +178,23 @@ class Gem::Specification < Gem::BasicSpecification
|
|
182
178
|
@@default_value[k].nil?
|
183
179
|
end
|
184
180
|
|
185
|
-
|
186
|
-
|
181
|
+
def self.clear_specs # :nodoc:
|
182
|
+
@@all_specs_mutex.synchronize do
|
183
|
+
@@all = nil
|
184
|
+
@@stubs = nil
|
185
|
+
@@stubs_by_name = {}
|
186
|
+
@@spec_with_requirable_file = {}
|
187
|
+
@@active_stub_with_requirable_file = {}
|
188
|
+
end
|
189
|
+
end
|
190
|
+
private_class_method :clear_specs
|
191
|
+
|
192
|
+
@@all_specs_mutex = Thread::Mutex.new
|
193
|
+
|
194
|
+
clear_specs
|
187
195
|
|
188
196
|
# Sentinel object to represent "not found" stubs
|
189
197
|
NOT_FOUND = Struct.new(:to_spec, :this).new # :nodoc:
|
190
|
-
@@spec_with_requirable_file = {}
|
191
|
-
@@active_stub_with_requirable_file = {}
|
192
198
|
|
193
199
|
# Tracking removed method calls to warn users during build time.
|
194
200
|
REMOVED_METHODS = [:rubyforge_project=].freeze # :nodoc:
|
@@ -748,23 +754,15 @@ class Gem::Specification < Gem::BasicSpecification
|
|
748
754
|
attr_accessor :specification_version
|
749
755
|
|
750
756
|
def self._all # :nodoc:
|
751
|
-
|
752
|
-
@@all = stubs.map(&:to_spec)
|
753
|
-
|
754
|
-
# After a reset, make sure already loaded specs
|
755
|
-
# are still marked as activated.
|
756
|
-
specs = {}
|
757
|
-
Gem.loaded_specs.each_value{|s| specs[s] = true }
|
758
|
-
@@all.each{|s| s.activated = true if specs[s] }
|
759
|
-
end
|
760
|
-
@@all
|
757
|
+
@@all_specs_mutex.synchronize { @@all ||= Gem.loaded_specs.values | stubs.map(&:to_spec) }
|
761
758
|
end
|
762
759
|
|
763
|
-
def self.
|
764
|
-
|
765
|
-
|
760
|
+
def self.clear_load_cache # :nodoc:
|
761
|
+
@load_cache_mutex.synchronize do
|
762
|
+
@load_cache.clear
|
766
763
|
end
|
767
764
|
end
|
765
|
+
private_class_method :clear_load_cache
|
768
766
|
|
769
767
|
def self.each_gemspec(dirs) # :nodoc:
|
770
768
|
dirs.each do |dir|
|
@@ -1112,7 +1110,7 @@ class Gem::Specification < Gem::BasicSpecification
|
|
1112
1110
|
def self.load(file)
|
1113
1111
|
return unless file
|
1114
1112
|
|
1115
|
-
_spec =
|
1113
|
+
_spec = @load_cache_mutex.synchronize { @load_cache[file] }
|
1116
1114
|
return _spec if _spec
|
1117
1115
|
|
1118
1116
|
file = file.dup.tap(&Gem::UNTAINT)
|
@@ -1127,12 +1125,12 @@ class Gem::Specification < Gem::BasicSpecification
|
|
1127
1125
|
|
1128
1126
|
if Gem::Specification === _spec
|
1129
1127
|
_spec.loaded_from = File.expand_path file.to_s
|
1130
|
-
|
1131
|
-
prev =
|
1128
|
+
@load_cache_mutex.synchronize do
|
1129
|
+
prev = @load_cache[file]
|
1132
1130
|
if prev
|
1133
1131
|
_spec = prev
|
1134
1132
|
else
|
1135
|
-
|
1133
|
+
@load_cache[file] = _spec
|
1136
1134
|
end
|
1137
1135
|
end
|
1138
1136
|
return _spec
|
@@ -1230,12 +1228,8 @@ class Gem::Specification < Gem::BasicSpecification
|
|
1230
1228
|
def self.reset
|
1231
1229
|
@@dirs = nil
|
1232
1230
|
Gem.pre_reset_hooks.each {|hook| hook.call }
|
1233
|
-
|
1234
|
-
|
1235
|
-
@@stubs_by_name = {}
|
1236
|
-
@@spec_with_requirable_file = {}
|
1237
|
-
@@active_stub_with_requirable_file = {}
|
1238
|
-
_clear_load_cache
|
1231
|
+
clear_specs
|
1232
|
+
clear_load_cache
|
1239
1233
|
unresolved = unresolved_deps
|
1240
1234
|
unless unresolved.empty?
|
1241
1235
|
w = "W" + "ARN"
|
data/lib/rubygems.rb
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
require 'rbconfig'
|
9
9
|
|
10
10
|
module Gem
|
11
|
-
VERSION = "3.2.
|
11
|
+
VERSION = "3.2.32".freeze
|
12
12
|
end
|
13
13
|
|
14
14
|
# Must be first since it unloads the prelude from 1.9.2
|
@@ -1325,22 +1325,6 @@ end
|
|
1325
1325
|
require_relative 'rubygems/exceptions'
|
1326
1326
|
|
1327
1327
|
# REFACTOR: This should be pulled out into some kind of hacks file.
|
1328
|
-
begin
|
1329
|
-
##
|
1330
|
-
# Defaults the operating system (or packager) wants to provide for RubyGems.
|
1331
|
-
|
1332
|
-
require 'rubygems/defaults/operating_system'
|
1333
|
-
rescue LoadError
|
1334
|
-
# Ignored
|
1335
|
-
rescue StandardError => e
|
1336
|
-
msg = "#{e.message}\n" \
|
1337
|
-
"Loading the rubygems/defaults/operating_system.rb file caused an error. " \
|
1338
|
-
"This file is owned by your OS, not by rubygems upstream. " \
|
1339
|
-
"Please find out which OS package this file belongs to and follow the guidelines from your OS to report " \
|
1340
|
-
"the problem and ask for help."
|
1341
|
-
raise e.class, msg
|
1342
|
-
end
|
1343
|
-
|
1344
1328
|
begin
|
1345
1329
|
##
|
1346
1330
|
# Defaults the Ruby implementation wants to provide for RubyGems
|
@@ -1356,3 +1340,19 @@ Gem::Specification.load_defaults
|
|
1356
1340
|
require_relative 'rubygems/core_ext/kernel_gem'
|
1357
1341
|
require_relative 'rubygems/core_ext/kernel_require'
|
1358
1342
|
require_relative 'rubygems/core_ext/kernel_warn'
|
1343
|
+
|
1344
|
+
begin
|
1345
|
+
##
|
1346
|
+
# Defaults the operating system (or packager) wants to provide for RubyGems.
|
1347
|
+
|
1348
|
+
require 'rubygems/defaults/operating_system'
|
1349
|
+
rescue LoadError
|
1350
|
+
# Ignored
|
1351
|
+
rescue StandardError => e
|
1352
|
+
msg = "#{e.message}\n" \
|
1353
|
+
"Loading the rubygems/defaults/operating_system.rb file caused an error. " \
|
1354
|
+
"This file is owned by your OS, not by rubygems upstream. " \
|
1355
|
+
"Please find out which OS package this file belongs to and follow the guidelines from your OS to report " \
|
1356
|
+
"the problem and ask for help."
|
1357
|
+
raise e.class, msg
|
1358
|
+
end
|
data/rubygems-update.gemspec
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = "rubygems-update"
|
5
|
-
s.version = "3.2.
|
5
|
+
s.version = "3.2.32"
|
6
6
|
s.authors = ["Jim Weirich", "Chad Fowler", "Eric Hodel", "Luis Lavena", "Aaron Patterson", "Samuel Giddins", "André Arko", "Evan Phoenix", "Hiroshi SHIBATA"]
|
7
7
|
s.email = ["", "", "drbrain@segment7.net", "luislavena@gmail.com", "aaron@tenderlovemaking.com", "segiddins@segiddins.me", "andre@arko.net", "evan@phx.io", "hsbt@ruby-lang.org"]
|
8
8
|
|
data/test/rubygems/helper.rb
CHANGED
@@ -247,16 +247,14 @@ class Gem::TestCase < Test::Unit::TestCase
|
|
247
247
|
output.scan(/^#{Regexp.escape make_command}(?:[[:blank:]].*)?$/)
|
248
248
|
end
|
249
249
|
|
250
|
-
def
|
251
|
-
|
250
|
+
def parse_make_command_line_targets(line)
|
251
|
+
args = line.sub(/^#{Regexp.escape make_command}/, "").shellsplit
|
252
252
|
|
253
253
|
targets = []
|
254
|
-
macros = {}
|
255
254
|
|
256
255
|
args.each do |arg|
|
257
256
|
case arg
|
258
257
|
when /\A(\w+)=/
|
259
|
-
macros[$1] = $'
|
260
258
|
else
|
261
259
|
targets << arg
|
262
260
|
end
|
@@ -264,11 +262,7 @@ class Gem::TestCase < Test::Unit::TestCase
|
|
264
262
|
|
265
263
|
targets << '' if targets.empty?
|
266
264
|
|
267
|
-
|
268
|
-
:command => command,
|
269
|
-
:targets => targets,
|
270
|
-
:macros => macros,
|
271
|
-
}
|
265
|
+
targets
|
272
266
|
end
|
273
267
|
|
274
268
|
def assert_contains_make_command(target, output, msg = nil)
|
@@ -281,7 +275,7 @@ class Gem::TestCase < Test::Unit::TestCase
|
|
281
275
|
)
|
282
276
|
else
|
283
277
|
msg = build_message(msg,
|
284
|
-
'Expected make command "%s"
|
278
|
+
'Expected make command "%s", but was "%s"' % [
|
285
279
|
('%s %s' % [make_command, target]).rstrip,
|
286
280
|
output,
|
287
281
|
]
|
@@ -289,10 +283,9 @@ class Gem::TestCase < Test::Unit::TestCase
|
|
289
283
|
end
|
290
284
|
|
291
285
|
assert scan_make_command_lines(output).any? {|line|
|
292
|
-
|
286
|
+
targets = parse_make_command_line_targets(line)
|
293
287
|
|
294
|
-
if
|
295
|
-
yield make, line if block_given?
|
288
|
+
if targets.include?(target)
|
296
289
|
true
|
297
290
|
else
|
298
291
|
false
|
@@ -489,7 +482,6 @@ class Gem::TestCase < Test::Unit::TestCase
|
|
489
482
|
Gem.instance_variable_set :@default_dir, nil
|
490
483
|
end
|
491
484
|
|
492
|
-
Gem::Specification._clear_load_cache
|
493
485
|
Gem::Specification.unresolved_deps.clear
|
494
486
|
Gem::refresh
|
495
487
|
|
@@ -66,8 +66,11 @@ class TestGemExtExtConfBuilder < Gem::TestCase
|
|
66
66
|
end
|
67
67
|
end
|
68
68
|
|
69
|
-
def
|
70
|
-
env_make = ENV.delete '
|
69
|
+
def test_class_build_env_MAKE
|
70
|
+
env_make = ENV.delete 'make'
|
71
|
+
ENV['make'] = nil
|
72
|
+
|
73
|
+
env_MAKE = ENV.delete 'MAKE'
|
71
74
|
ENV['MAKE'] = 'anothermake'
|
72
75
|
|
73
76
|
if java_platform?
|
@@ -89,7 +92,8 @@ class TestGemExtExtConfBuilder < Gem::TestCase
|
|
89
92
|
assert_contains_make_command 'clean', output[4]
|
90
93
|
end
|
91
94
|
ensure
|
92
|
-
ENV['MAKE'] =
|
95
|
+
ENV['MAKE'] = env_MAKE
|
96
|
+
ENV['make'] = env_make
|
93
97
|
end
|
94
98
|
|
95
99
|
def test_class_build_extconf_fail
|
@@ -466,8 +466,7 @@ class TestGemRequire < Gem::TestCase
|
|
466
466
|
end
|
467
467
|
|
468
468
|
def test_realworld_default_gem
|
469
|
-
|
470
|
-
pend "this test can't work under ruby-core setup" if testing_ruby_repo || java_platform?
|
469
|
+
omit "this test can't work under ruby-core setup" if testing_ruby_repo?
|
471
470
|
|
472
471
|
cmd = <<-RUBY
|
473
472
|
$stderr = $stdout
|
@@ -480,8 +479,7 @@ class TestGemRequire < Gem::TestCase
|
|
480
479
|
end
|
481
480
|
|
482
481
|
def test_realworld_upgraded_default_gem
|
483
|
-
|
484
|
-
pend "this test can't work under ruby-core setup" if testing_ruby_repo
|
482
|
+
omit "this test can't work under ruby-core setup" if testing_ruby_repo?
|
485
483
|
|
486
484
|
newer_json = util_spec("json", "999.99.9", nil, ["lib/json.rb"])
|
487
485
|
install_gem newer_json
|
@@ -720,6 +718,10 @@ class TestGemRequire < Gem::TestCase
|
|
720
718
|
|
721
719
|
private
|
722
720
|
|
721
|
+
def testing_ruby_repo?
|
722
|
+
!ENV["GEM_COMMAND"].nil?
|
723
|
+
end
|
724
|
+
|
723
725
|
def silence_warnings
|
724
726
|
old_verbose, $VERBOSE = $VERBOSE, false
|
725
727
|
yield
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubygems-update
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.2.
|
4
|
+
version: 3.2.32
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jim Weirich
|
@@ -16,7 +16,7 @@ authors:
|
|
16
16
|
autorequire:
|
17
17
|
bindir: bin
|
18
18
|
cert_chain: []
|
19
|
-
date: 2021-11-
|
19
|
+
date: 2021-11-23 00:00:00.000000000 Z
|
20
20
|
dependencies: []
|
21
21
|
description: |-
|
22
22
|
A package (also known as a library) contains a set of functionality
|
@@ -798,7 +798,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
798
798
|
- !ruby/object:Gem::Version
|
799
799
|
version: '0'
|
800
800
|
requirements: []
|
801
|
-
rubygems_version: 3.2.
|
801
|
+
rubygems_version: 3.2.32
|
802
802
|
signing_key:
|
803
803
|
specification_version: 4
|
804
804
|
summary: RubyGems is a package management framework for Ruby.
|