rubygems-update 3.2.2 → 3.2.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (118) hide show
  1. checksums.yaml +4 -4
  2. data/{History.txt → CHANGELOG.md} +482 -424
  3. data/Manifest.txt +30 -27
  4. data/Rakefile +11 -15
  5. data/bundler/CHANGELOG.md +67 -2
  6. data/bundler/bundler.gemspec +1 -1
  7. data/bundler/lib/bundler.rb +3 -7
  8. data/bundler/lib/bundler/build_metadata.rb +2 -2
  9. data/bundler/lib/bundler/cli.rb +2 -5
  10. data/bundler/lib/bundler/cli/cache.rb +1 -0
  11. data/bundler/lib/bundler/cli/gem.rb +2 -0
  12. data/bundler/lib/bundler/cli/update.rb +1 -1
  13. data/bundler/lib/bundler/compact_index_client/cache.rb +5 -13
  14. data/bundler/lib/bundler/compact_index_client/gem_parser.rb +28 -0
  15. data/bundler/lib/bundler/compact_index_client/updater.rb +0 -8
  16. data/bundler/lib/bundler/definition.rb +29 -21
  17. data/bundler/lib/bundler/dep_proxy.rb +15 -8
  18. data/bundler/lib/bundler/feature_flag.rb +0 -1
  19. data/bundler/lib/bundler/fetcher.rb +0 -1
  20. data/bundler/lib/bundler/gem_helper.rb +9 -7
  21. data/bundler/lib/bundler/gem_helpers.rb +30 -24
  22. data/bundler/lib/bundler/gem_version_promoter.rb +2 -2
  23. data/bundler/lib/bundler/installer.rb +0 -17
  24. data/bundler/lib/bundler/installer/standalone.rb +14 -0
  25. data/bundler/lib/bundler/lazy_specification.rb +10 -11
  26. data/bundler/{man → lib/bundler/man}/bundle-add.1 +1 -1
  27. data/bundler/{man → lib/bundler/man}/bundle-binstubs.1 +1 -1
  28. data/bundler/{man → lib/bundler/man}/bundle-cache.1 +1 -1
  29. data/bundler/{man → lib/bundler/man}/bundle-check.1 +1 -1
  30. data/bundler/{man → lib/bundler/man}/bundle-clean.1 +1 -1
  31. data/bundler/{man → lib/bundler/man}/bundle-config.1 +4 -4
  32. data/bundler/lib/bundler/man/bundle-config.1.ronn +3 -3
  33. data/bundler/{man → lib/bundler/man}/bundle-doctor.1 +1 -1
  34. data/bundler/{man → lib/bundler/man}/bundle-exec.1 +1 -1
  35. data/bundler/{man → lib/bundler/man}/bundle-gem.1 +1 -1
  36. data/bundler/{man → lib/bundler/man}/bundle-info.1 +1 -1
  37. data/bundler/{man → lib/bundler/man}/bundle-init.1 +1 -1
  38. data/bundler/{man → lib/bundler/man}/bundle-inject.1 +1 -1
  39. data/bundler/{man → lib/bundler/man}/bundle-install.1 +1 -1
  40. data/bundler/{man → lib/bundler/man}/bundle-list.1 +1 -1
  41. data/bundler/{man → lib/bundler/man}/bundle-lock.1 +1 -1
  42. data/bundler/{man → lib/bundler/man}/bundle-open.1 +1 -1
  43. data/bundler/{man → lib/bundler/man}/bundle-outdated.1 +1 -1
  44. data/bundler/{man → lib/bundler/man}/bundle-platform.1 +1 -1
  45. data/bundler/{man → lib/bundler/man}/bundle-pristine.1 +1 -1
  46. data/bundler/{man → lib/bundler/man}/bundle-remove.1 +1 -1
  47. data/bundler/{man → lib/bundler/man}/bundle-show.1 +1 -1
  48. data/bundler/{man → lib/bundler/man}/bundle-update.1 +1 -1
  49. data/bundler/{man → lib/bundler/man}/bundle-viz.1 +1 -1
  50. data/bundler/{man → lib/bundler/man}/bundle.1 +1 -1
  51. data/bundler/{man → lib/bundler/man}/gemfile.5 +1 -1
  52. data/bundler/{man → lib/bundler/man}/index.txt +0 -0
  53. data/bundler/lib/bundler/resolver.rb +36 -16
  54. data/bundler/lib/bundler/resolver/spec_group.rb +18 -23
  55. data/bundler/lib/bundler/rubygems_ext.rb +16 -0
  56. data/bundler/lib/bundler/rubygems_integration.rb +0 -5
  57. data/bundler/lib/bundler/settings.rb +1 -1
  58. data/bundler/lib/bundler/source/git.rb +19 -17
  59. data/bundler/lib/bundler/source/git/git_proxy.rb +54 -49
  60. data/bundler/lib/bundler/source/path/installer.rb +2 -0
  61. data/bundler/lib/bundler/source/rubygems.rb +10 -2
  62. data/bundler/lib/bundler/spec_set.rb +6 -9
  63. data/bundler/lib/bundler/templates/newgem/Gemfile.tt +1 -1
  64. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +1 -1
  65. data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +3 -0
  66. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +7 -0
  67. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +1 -1
  68. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +11 -0
  69. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +11 -7
  70. data/bundler/lib/bundler/version.rb +1 -1
  71. data/lib/rubygems.rb +2 -2
  72. data/lib/rubygems/commands/setup_command.rb +16 -62
  73. data/lib/rubygems/dependency_installer.rb +1 -0
  74. data/lib/rubygems/ext/builder.rb +5 -4
  75. data/lib/rubygems/ext/cmake_builder.rb +1 -2
  76. data/lib/rubygems/ext/configure_builder.rb +1 -2
  77. data/lib/rubygems/gemcutter_utilities.rb +2 -2
  78. data/lib/rubygems/installer.rb +0 -23
  79. data/lib/rubygems/installer_uninstaller_utils.rb +6 -1
  80. data/lib/rubygems/platform.rb +0 -4
  81. data/lib/rubygems/remote_fetcher.rb +4 -2
  82. data/lib/rubygems/request_set.rb +2 -13
  83. data/lib/rubygems/requirement.rb +1 -1
  84. data/lib/rubygems/resolver.rb +6 -1
  85. data/lib/rubygems/resolver/api_set.rb +28 -19
  86. data/lib/rubygems/resolver/api_set/gem_parser.rb +20 -0
  87. data/lib/rubygems/resolver/api_specification.rb +4 -3
  88. data/lib/rubygems/resolver/best_set.rb +2 -2
  89. data/lib/rubygems/resolver/index_specification.rb +18 -0
  90. data/lib/rubygems/resolver/installer_set.rb +57 -7
  91. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb +1 -1
  92. data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +1 -1
  93. data/lib/rubygems/resolver/spec_specification.rb +14 -0
  94. data/lib/rubygems/resolver/specification.rb +12 -0
  95. data/lib/rubygems/source.rb +10 -6
  96. data/lib/rubygems/specification.rb +18 -14
  97. data/lib/rubygems/test_case.rb +17 -4
  98. data/rubygems-update.gemspec +2 -2
  99. data/test/rubygems/data/null-required-rubygems-version.gemspec.rz +0 -0
  100. data/test/rubygems/test_gem.rb +5 -0
  101. data/test/rubygems/test_gem_commands_install_command.rb +131 -0
  102. data/test/rubygems/test_gem_commands_setup_command.rb +21 -37
  103. data/test/rubygems/test_gem_dependency_installer.rb +27 -47
  104. data/test/rubygems/test_gem_ext_builder.rb +30 -6
  105. data/test/rubygems/test_gem_ext_cmake_builder.rb +2 -4
  106. data/test/rubygems/test_gem_ext_configure_builder.rb +2 -2
  107. data/test/rubygems/test_gem_installer.rb +8 -60
  108. data/test/rubygems/test_gem_platform.rb +8 -0
  109. data/test/rubygems/test_gem_remote_fetcher.rb +1 -1
  110. data/test/rubygems/test_gem_requirement.rb +34 -0
  111. data/test/rubygems/test_gem_resolver_api_set.rb +26 -52
  112. data/test/rubygems/test_gem_resolver_api_specification.rb +3 -3
  113. data/test/rubygems/test_gem_resolver_best_set.rb +26 -3
  114. data/test/rubygems/test_gem_source.rb +2 -2
  115. data/test/rubygems/test_gem_source_subpath_problem.rb +2 -2
  116. data/test/rubygems/test_gem_specification.rb +9 -3
  117. data/test/rubygems/test_gem_stream_ui.rb +1 -1
  118. metadata +34 -55
@@ -205,7 +205,7 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg==
205
205
  @test_data
206
206
  end
207
207
 
208
- raise Gem::RemoteFetcher::FetchError.new("haha!", nil)
208
+ raise Gem::RemoteFetcher::FetchError.new("haha!", '')
209
209
  end
210
210
  end
211
211
 
@@ -402,6 +402,27 @@ class TestGemRequirement < Gem::TestCase
402
402
  assert_equal r1.hash, r2.hash
403
403
  end
404
404
 
405
+ def test_hash_returns_equal_hashes_for_equivalent_requirements
406
+ refute_requirement_hash_equal "= 1.2", "= 1.3"
407
+ refute_requirement_hash_equal "= 1.3", "= 1.2"
408
+
409
+ refute_requirement_hash_equal "~> 1.3", "~> 1.3.0"
410
+ refute_requirement_hash_equal "~> 1.3.0", "~> 1.3"
411
+
412
+ assert_requirement_hash_equal ["> 2", "~> 1.3", "~> 1.3.1"], ["~> 1.3.1", "~> 1.3", "> 2"]
413
+
414
+ assert_requirement_hash_equal ["> 2", "~> 1.3"], ["> 2.0", "~> 1.3"]
415
+ assert_requirement_hash_equal ["> 2.0", "~> 1.3"], ["> 2", "~> 1.3"]
416
+
417
+ assert_requirement_hash_equal "= 1.0", "= 1.0.0"
418
+ assert_requirement_hash_equal "= 1.1", "= 1.1.0"
419
+ assert_requirement_hash_equal "= 1", "= 1.0.0"
420
+
421
+ assert_requirement_hash_equal "1.0", "1.0.0"
422
+ assert_requirement_hash_equal "1.1", "1.1.0"
423
+ assert_requirement_hash_equal "1", "1.0.0"
424
+ end
425
+
405
426
  # Assert that two requirements are equal. Handles Gem::Requirements,
406
427
  # strings, arrays, numbers, and versions.
407
428
 
@@ -416,6 +437,13 @@ class TestGemRequirement < Gem::TestCase
416
437
  "#{requirement} is satisfied by #{version}"
417
438
  end
418
439
 
440
+ # Assert that two requirement hashes are equal. Handles Gem::Requirements,
441
+ # strings, arrays, numbers, and versions.
442
+
443
+ def assert_requirement_hash_equal(expected, actual)
444
+ assert_equal req(expected).hash, req(actual).hash
445
+ end
446
+
419
447
  # Refute the assumption that two requirements are equal.
420
448
 
421
449
  def refute_requirement_equal(unexpected, actual)
@@ -428,4 +456,10 @@ class TestGemRequirement < Gem::TestCase
428
456
  refute req(requirement).satisfied_by?(v(version)),
429
457
  "#{requirement} is not satisfied by #{version}"
430
458
  end
459
+
460
+ # Refute the assumption that two requirements hashes are equal.
461
+
462
+ def refute_requirement_hash_equal(unexpected, actual)
463
+ refute_equal req(unexpected).hash, req(actual).hash
464
+ end
431
465
  end
@@ -6,29 +6,29 @@ class TestGemResolverAPISet < Gem::TestCase
6
6
  super
7
7
 
8
8
  @DR = Gem::Resolver
9
- @dep_uri = URI "#{@gem_repo}api/v1/dependencies"
9
+ @dep_uri = URI "#{@gem_repo}info/"
10
10
  end
11
11
 
12
12
  def test_initialize
13
13
  set = @DR::APISet.new
14
14
 
15
- assert_equal URI('https://rubygems.org/api/v1/dependencies'), set.dep_uri
16
- assert_equal URI('https://rubygems.org'), set.uri
17
- assert_equal Gem::Source.new(URI('https://rubygems.org')), set.source
15
+ assert_equal URI('https://index.rubygems.org/info/'), set.dep_uri
16
+ assert_equal URI('https://index.rubygems.org/'), set.uri
17
+ assert_equal Gem::Source.new(URI('https://index.rubygems.org')), set.source
18
18
  end
19
19
 
20
20
  def test_initialize_deeper_uri
21
- set = @DR::APISet.new 'https://rubygemsserver.com/mygems/api/v1/dependencies'
21
+ set = @DR::APISet.new 'https://rubygemsserver.com/mygems/info'
22
22
 
23
- assert_equal URI('https://rubygemsserver.com/mygems/api/v1/dependencies'), set.dep_uri
24
- assert_equal URI('https://rubygemsserver.com/mygems/'), set.uri
25
- assert_equal Gem::Source.new(URI('https://rubygemsserver.com/mygems/')), set.source
23
+ assert_equal URI('https://rubygemsserver.com/mygems/info'), set.dep_uri
24
+ assert_equal URI('https://rubygemsserver.com/'), set.uri
25
+ assert_equal Gem::Source.new(URI('https://rubygemsserver.com/')), set.source
26
26
  end
27
27
 
28
28
  def test_initialize_uri
29
29
  set = @DR::APISet.new @dep_uri
30
30
 
31
- assert_equal URI("#{@gem_repo}api/v1/dependencies"), set.dep_uri
31
+ assert_equal URI("#{@gem_repo}info/"), set.dep_uri
32
32
  assert_equal URI("#{@gem_repo}"), set.uri
33
33
  end
34
34
 
@@ -42,7 +42,7 @@ class TestGemResolverAPISet < Gem::TestCase
42
42
  :dependencies => [] },
43
43
  ]
44
44
 
45
- @fetcher.data["#{@dep_uri}?gems=a"] = Marshal.dump data
45
+ @fetcher.data["#{@dep_uri}a"] = "---\n1 "
46
46
 
47
47
  set = @DR::APISet.new @dep_uri
48
48
 
@@ -69,7 +69,7 @@ class TestGemResolverAPISet < Gem::TestCase
69
69
  :dependencies => [] },
70
70
  ]
71
71
 
72
- @fetcher.data["#{@dep_uri}?gems=a"] = Marshal.dump data
72
+ @fetcher.data["#{@dep_uri}a"] = "---\n1\n2.a"
73
73
 
74
74
  set = @DR::APISet.new @dep_uri
75
75
  set.prerelease = true
@@ -94,7 +94,7 @@ class TestGemResolverAPISet < Gem::TestCase
94
94
  :dependencies => [] },
95
95
  ]
96
96
 
97
- @fetcher.data["#{@dep_uri}?gems=a"] = Marshal.dump data
97
+ @fetcher.data["#{@dep_uri}a"] = "---\n1 "
98
98
 
99
99
  set = @DR::APISet.new @dep_uri
100
100
 
@@ -108,7 +108,7 @@ class TestGemResolverAPISet < Gem::TestCase
108
108
 
109
109
  assert_equal expected, set.find_all(a_dep)
110
110
 
111
- @fetcher.data.delete "#{@dep_uri}?gems=a"
111
+ @fetcher.data.delete "#{@dep_uri}a"
112
112
  end
113
113
 
114
114
  def test_find_all_local
@@ -123,7 +123,7 @@ class TestGemResolverAPISet < Gem::TestCase
123
123
  def test_find_all_missing
124
124
  spec_fetcher
125
125
 
126
- @fetcher.data["#{@dep_uri}?gems=a"] = Marshal.dump []
126
+ @fetcher.data["#{@dep_uri}a"] = "---"
127
127
 
128
128
  set = @DR::APISet.new @dep_uri
129
129
 
@@ -131,7 +131,7 @@ class TestGemResolverAPISet < Gem::TestCase
131
131
 
132
132
  assert_empty set.find_all(a_dep)
133
133
 
134
- @fetcher.data.delete "#{@dep_uri}?gems=a"
134
+ @fetcher.data.delete "#{@dep_uri}a"
135
135
 
136
136
  assert_empty set.find_all(a_dep)
137
137
  end
@@ -139,15 +139,8 @@ class TestGemResolverAPISet < Gem::TestCase
139
139
  def test_prefetch
140
140
  spec_fetcher
141
141
 
142
- data = [
143
- { :name => 'a',
144
- :number => '1',
145
- :platform => 'ruby',
146
- :dependencies => [] },
147
- ]
148
-
149
- @fetcher.data["#{@dep_uri}?gems=a,b"] = Marshal.dump data
150
- @fetcher.data["#{@dep_uri}?gems=b"] = Marshal.dump []
142
+ @fetcher.data["#{@dep_uri}a"] = "---\n1 \n"
143
+ @fetcher.data["#{@dep_uri}b"] = "---"
151
144
 
152
145
  set = @DR::APISet.new @dep_uri
153
146
 
@@ -163,14 +156,7 @@ class TestGemResolverAPISet < Gem::TestCase
163
156
  def test_prefetch_cache
164
157
  spec_fetcher
165
158
 
166
- data = [
167
- { :name => 'a',
168
- :number => '1',
169
- :platform => 'ruby',
170
- :dependencies => [] },
171
- ]
172
-
173
- @fetcher.data["#{@dep_uri}?gems=a"] = Marshal.dump data
159
+ @fetcher.data["#{@dep_uri}a"] = "---\n1 \n"
174
160
 
175
161
  set = @DR::APISet.new @dep_uri
176
162
 
@@ -179,8 +165,8 @@ class TestGemResolverAPISet < Gem::TestCase
179
165
 
180
166
  set.prefetch [a_dep]
181
167
 
182
- @fetcher.data.delete "#{@dep_uri}?gems=a"
183
- @fetcher.data["#{@dep_uri}?gems=b"] = Marshal.dump []
168
+ @fetcher.data.delete "#{@dep_uri}a"
169
+ @fetcher.data["#{@dep_uri}?b"] = "---"
184
170
 
185
171
  set.prefetch [a_dep, b_dep]
186
172
  end
@@ -188,14 +174,8 @@ class TestGemResolverAPISet < Gem::TestCase
188
174
  def test_prefetch_cache_missing
189
175
  spec_fetcher
190
176
 
191
- data = [
192
- { :name => 'a',
193
- :number => '1',
194
- :platform => 'ruby',
195
- :dependencies => [] },
196
- ]
197
-
198
- @fetcher.data["#{@dep_uri}?gems=a,b"] = Marshal.dump data
177
+ @fetcher.data["#{@dep_uri}a"] = "---\n1 \n"
178
+ @fetcher.data["#{@dep_uri}b"] = "---"
199
179
 
200
180
  set = @DR::APISet.new @dep_uri
201
181
 
@@ -204,7 +184,8 @@ class TestGemResolverAPISet < Gem::TestCase
204
184
 
205
185
  set.prefetch [a_dep, b_dep]
206
186
 
207
- @fetcher.data.delete "#{@dep_uri}?gems=a,b"
187
+ @fetcher.data.delete "#{@dep_uri}a"
188
+ @fetcher.data.delete "#{@dep_uri}b"
208
189
 
209
190
  set.prefetch [a_dep, b_dep]
210
191
  end
@@ -212,15 +193,8 @@ class TestGemResolverAPISet < Gem::TestCase
212
193
  def test_prefetch_local
213
194
  spec_fetcher
214
195
 
215
- data = [
216
- { :name => 'a',
217
- :number => '1',
218
- :platform => 'ruby',
219
- :dependencies => [] },
220
- ]
221
-
222
- @fetcher.data["#{@dep_uri}?gems=a,b"] = Marshal.dump data
223
- @fetcher.data["#{@dep_uri}?gems=b"] = Marshal.dump []
196
+ @fetcher.data["#{@dep_uri}a"] = "---\n1 \n"
197
+ @fetcher.data["#{@dep_uri}b"] = "---"
224
198
 
225
199
  set = @DR::APISet.new @dep_uri
226
200
  set.remote = false
@@ -39,7 +39,7 @@ class TestGemResolverAPISpecification < Gem::TestCase
39
39
 
40
40
  rails = specs['rails-3.0.3']
41
41
 
42
- repo = @gem_repo + 'api/v1/dependencies'
42
+ repo = @gem_repo + 'info'
43
43
 
44
44
  set = Gem::Resolver::APISet.new repo
45
45
 
@@ -123,7 +123,7 @@ class TestGemResolverAPISpecification < Gem::TestCase
123
123
  fetcher.spec 'a', 1
124
124
  end
125
125
 
126
- dep_uri = URI(@gem_repo) + 'api/v1/dependencies'
126
+ dep_uri = URI(@gem_repo) + 'info'
127
127
  set = Gem::Resolver::APISet.new dep_uri
128
128
  data = {
129
129
  :name => 'a',
@@ -147,7 +147,7 @@ class TestGemResolverAPISpecification < Gem::TestCase
147
147
  end
148
148
  end
149
149
 
150
- dep_uri = URI(@gem_repo) + 'api/v1/dependencies'
150
+ dep_uri = URI(@gem_repo) + 'info'
151
151
  set = Gem::Resolver::APISet.new dep_uri
152
152
  data = {
153
153
  :name => 'j',
@@ -39,7 +39,7 @@ class TestGemResolverBestSet < Gem::TestCase
39
39
 
40
40
  set = @DR::BestSet.new
41
41
 
42
- api_uri = URI(@gem_repo) + './api/v1/dependencies'
42
+ api_uri = URI(@gem_repo)
43
43
 
44
44
  set.sets << Gem::Resolver::APISet.new(api_uri)
45
45
 
@@ -99,12 +99,12 @@ class TestGemResolverBestSet < Gem::TestCase
99
99
  def test_replace_failed_api_set
100
100
  set = @DR::BestSet.new
101
101
 
102
- api_uri = URI(@gem_repo) + './api/v1/dependencies'
102
+ api_uri = URI(@gem_repo) + './info/'
103
103
  api_set = Gem::Resolver::APISet.new api_uri
104
104
 
105
105
  set.sets << api_set
106
106
 
107
- error_uri = api_uri + '?gems=a'
107
+ error_uri = api_uri + 'a'
108
108
 
109
109
  error = Gem::RemoteFetcher::FetchError.new 'bogus', error_uri
110
110
 
@@ -132,4 +132,27 @@ class TestGemResolverBestSet < Gem::TestCase
132
132
 
133
133
  assert_equal error, e
134
134
  end
135
+
136
+ def test_replace_failed_api_set_uri_with_credentials
137
+ set = @DR::BestSet.new
138
+
139
+ api_uri = URI(@gem_repo) + './info/'
140
+ api_uri.user = 'user'
141
+ api_uri.password = 'pass'
142
+ api_set = Gem::Resolver::APISet.new api_uri
143
+
144
+ set.sets << api_set
145
+
146
+ error_uri = api_uri + 'a'
147
+
148
+ error = Gem::RemoteFetcher::FetchError.new 'bogus', error_uri
149
+
150
+ set.replace_failed_api_set error
151
+
152
+ assert_equal 1, set.sets.size
153
+
154
+ refute_includes set.sets, api_set
155
+
156
+ assert_kind_of Gem::Resolver::IndexSet, set.sets.first
157
+ end
135
158
  end
@@ -44,9 +44,9 @@ class TestGemSource < Gem::TestCase
44
44
 
45
45
  def test_dependency_resolver_set_bundler_api
46
46
  response = Net::HTTPResponse.new '1.1', 200, 'OK'
47
- response.uri = URI('http://example') if response.respond_to? :uri
47
+ response.uri = URI('http://example')
48
48
 
49
- @fetcher.data["#{@gem_repo}api/v1/dependencies"] = response
49
+ @fetcher.data[@gem_repo] = response
50
50
 
51
51
  set = @source.dependency_resolver_set
52
52
 
@@ -21,9 +21,9 @@ class TestGemSourceSubpathProblem < Gem::TestCase
21
21
 
22
22
  def test_dependency_resolver_set
23
23
  response = Net::HTTPResponse.new '1.1', 200, 'OK'
24
- response.uri = URI('http://example') if response.respond_to? :uri
24
+ response.uri = URI('http://example')
25
25
 
26
- @fetcher.data["#{@gem_repo}/api/v1/dependencies"] = response
26
+ @fetcher.data["#{@gem_repo}/"] = response
27
27
 
28
28
  set = @source.dependency_resolver_set
29
29
 
@@ -1161,6 +1161,14 @@ dependencies: []
1161
1161
  Gem::Specification.class_variable_set(:@@stubs, nil)
1162
1162
  end
1163
1163
 
1164
+ def test_self_stubs_for_no_lazy_loading_after_all_specs_setup
1165
+ Gem::Specification.all = [util_spec('a', '1')]
1166
+
1167
+ save_gemspec('b-1', '1', File.join(Gem.dir, 'specifications')){|s| s.name = 'b' }
1168
+
1169
+ assert_equal [], Gem::Specification.stubs_for('b').map {|s| s.full_name }
1170
+ end
1171
+
1164
1172
  def test_self_stubs_for_mult_platforms
1165
1173
  # gems for two different platforms are installed with --user-install
1166
1174
  # the correct one should be returned in the array
@@ -1200,10 +1208,8 @@ dependencies: []
1200
1208
  Gem.platforms = orig_platform
1201
1209
  end
1202
1210
 
1203
- DATA_PATH = File.expand_path "../data", __FILE__
1204
-
1205
1211
  def test_handles_private_null_type
1206
- path = File.join DATA_PATH, "null-type.gemspec.rz"
1212
+ path = File.expand_path "../data/null-type.gemspec.rz", __FILE__
1207
1213
 
1208
1214
  data = Marshal.load Gem::Util.inflate(Gem.read_binary(path))
1209
1215
 
@@ -5,7 +5,7 @@ require 'timeout'
5
5
 
6
6
  class TestGemStreamUI < Gem::TestCase
7
7
  # increase timeout with MJIT for --jit-wait testing
8
- mjit_enabled = defined?(RubyVM::MJIT) && RubyVM::MJIT.enabled?
8
+ mjit_enabled = defined?(RubyVM::JIT) ? RubyVM::JIT.enabled? : defined?(RubyVM::MJIT) && RubyVM::MJIT.enabled?
9
9
  SHORT_TIMEOUT = (RUBY_ENGINE == "ruby" && !mjit_enabled) ? 0.1 : 1.0
10
10
 
11
11
  module IsTty
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.2
4
+ version: 3.2.7
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: 2020-12-17 00:00:00.000000000 Z
19
+ date: 2021-01-27 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
@@ -39,7 +39,7 @@ executables:
39
39
  - update_rubygems
40
40
  extensions: []
41
41
  extra_rdoc_files:
42
- - History.txt
42
+ - CHANGELOG.md
43
43
  - LICENSE.txt
44
44
  - MAINTAINERS.txt
45
45
  - MIT.txt
@@ -53,34 +53,10 @@ extra_rdoc_files:
53
53
  - bundler/LICENSE.md
54
54
  - bundler/README.md
55
55
  - hide_lib_for_update/note.txt
56
- - bundler/man/bundle-init.1
57
- - bundler/man/bundle-add.1
58
- - bundler/man/bundle-remove.1
59
- - bundler/man/bundle-info.1
60
- - bundler/man/bundle.1
61
- - bundler/man/bundle-check.1
62
- - bundler/man/bundle-exec.1
63
- - bundler/man/bundle-show.1
64
- - bundler/man/bundle-outdated.1
65
- - bundler/man/bundle-platform.1
66
- - bundler/man/bundle-gem.1
67
- - bundler/man/bundle-inject.1
68
- - bundler/man/bundle-binstubs.1
69
- - bundler/man/bundle-doctor.1
70
- - bundler/man/bundle-lock.1
71
- - bundler/man/bundle-viz.1
72
- - bundler/man/bundle-config.1
73
- - bundler/man/bundle-list.1
74
- - bundler/man/bundle-clean.1
75
- - bundler/man/bundle-update.1
76
- - bundler/man/bundle-pristine.1
77
- - bundler/man/bundle-open.1
78
- - bundler/man/bundle-cache.1
79
- - bundler/man/bundle-install.1
80
56
  files:
57
+ - CHANGELOG.md
81
58
  - CODE_OF_CONDUCT.md
82
59
  - CONTRIBUTING.md
83
- - History.txt
84
60
  - LICENSE.txt
85
61
  - MAINTAINERS.txt
86
62
  - MIT.txt
@@ -132,6 +108,7 @@ files:
132
108
  - bundler/lib/bundler/cli/viz.rb
133
109
  - bundler/lib/bundler/compact_index_client.rb
134
110
  - bundler/lib/bundler/compact_index_client/cache.rb
111
+ - bundler/lib/bundler/compact_index_client/gem_parser.rb
135
112
  - bundler/lib/bundler/compact_index_client/updater.rb
136
113
  - bundler/lib/bundler/constants.rb
137
114
  - bundler/lib/bundler/current_ruby.rb
@@ -170,31 +147,57 @@ files:
170
147
  - bundler/lib/bundler/lockfile_generator.rb
171
148
  - bundler/lib/bundler/lockfile_parser.rb
172
149
  - bundler/lib/bundler/man/.document
150
+ - bundler/lib/bundler/man/bundle-add.1
173
151
  - bundler/lib/bundler/man/bundle-add.1.ronn
152
+ - bundler/lib/bundler/man/bundle-binstubs.1
174
153
  - bundler/lib/bundler/man/bundle-binstubs.1.ronn
154
+ - bundler/lib/bundler/man/bundle-cache.1
175
155
  - bundler/lib/bundler/man/bundle-cache.1.ronn
156
+ - bundler/lib/bundler/man/bundle-check.1
176
157
  - bundler/lib/bundler/man/bundle-check.1.ronn
158
+ - bundler/lib/bundler/man/bundle-clean.1
177
159
  - bundler/lib/bundler/man/bundle-clean.1.ronn
160
+ - bundler/lib/bundler/man/bundle-config.1
178
161
  - bundler/lib/bundler/man/bundle-config.1.ronn
162
+ - bundler/lib/bundler/man/bundle-doctor.1
179
163
  - bundler/lib/bundler/man/bundle-doctor.1.ronn
164
+ - bundler/lib/bundler/man/bundle-exec.1
180
165
  - bundler/lib/bundler/man/bundle-exec.1.ronn
166
+ - bundler/lib/bundler/man/bundle-gem.1
181
167
  - bundler/lib/bundler/man/bundle-gem.1.ronn
168
+ - bundler/lib/bundler/man/bundle-info.1
182
169
  - bundler/lib/bundler/man/bundle-info.1.ronn
170
+ - bundler/lib/bundler/man/bundle-init.1
183
171
  - bundler/lib/bundler/man/bundle-init.1.ronn
172
+ - bundler/lib/bundler/man/bundle-inject.1
184
173
  - bundler/lib/bundler/man/bundle-inject.1.ronn
174
+ - bundler/lib/bundler/man/bundle-install.1
185
175
  - bundler/lib/bundler/man/bundle-install.1.ronn
176
+ - bundler/lib/bundler/man/bundle-list.1
186
177
  - bundler/lib/bundler/man/bundle-list.1.ronn
178
+ - bundler/lib/bundler/man/bundle-lock.1
187
179
  - bundler/lib/bundler/man/bundle-lock.1.ronn
180
+ - bundler/lib/bundler/man/bundle-open.1
188
181
  - bundler/lib/bundler/man/bundle-open.1.ronn
182
+ - bundler/lib/bundler/man/bundle-outdated.1
189
183
  - bundler/lib/bundler/man/bundle-outdated.1.ronn
184
+ - bundler/lib/bundler/man/bundle-platform.1
190
185
  - bundler/lib/bundler/man/bundle-platform.1.ronn
186
+ - bundler/lib/bundler/man/bundle-pristine.1
191
187
  - bundler/lib/bundler/man/bundle-pristine.1.ronn
188
+ - bundler/lib/bundler/man/bundle-remove.1
192
189
  - bundler/lib/bundler/man/bundle-remove.1.ronn
190
+ - bundler/lib/bundler/man/bundle-show.1
193
191
  - bundler/lib/bundler/man/bundle-show.1.ronn
192
+ - bundler/lib/bundler/man/bundle-update.1
194
193
  - bundler/lib/bundler/man/bundle-update.1.ronn
194
+ - bundler/lib/bundler/man/bundle-viz.1
195
195
  - bundler/lib/bundler/man/bundle-viz.1.ronn
196
+ - bundler/lib/bundler/man/bundle.1
196
197
  - bundler/lib/bundler/man/bundle.1.ronn
198
+ - bundler/lib/bundler/man/gemfile.5
197
199
  - bundler/lib/bundler/man/gemfile.5.ronn
200
+ - bundler/lib/bundler/man/index.txt
198
201
  - bundler/lib/bundler/match_platform.rb
199
202
  - bundler/lib/bundler/mirror.rb
200
203
  - bundler/lib/bundler/plugin.rb
@@ -359,32 +362,6 @@ files:
359
362
  - bundler/lib/bundler/vlad.rb
360
363
  - bundler/lib/bundler/worker.rb
361
364
  - bundler/lib/bundler/yaml_serializer.rb
362
- - bundler/man/bundle-add.1
363
- - bundler/man/bundle-binstubs.1
364
- - bundler/man/bundle-cache.1
365
- - bundler/man/bundle-check.1
366
- - bundler/man/bundle-clean.1
367
- - bundler/man/bundle-config.1
368
- - bundler/man/bundle-doctor.1
369
- - bundler/man/bundle-exec.1
370
- - bundler/man/bundle-gem.1
371
- - bundler/man/bundle-info.1
372
- - bundler/man/bundle-init.1
373
- - bundler/man/bundle-inject.1
374
- - bundler/man/bundle-install.1
375
- - bundler/man/bundle-list.1
376
- - bundler/man/bundle-lock.1
377
- - bundler/man/bundle-open.1
378
- - bundler/man/bundle-outdated.1
379
- - bundler/man/bundle-platform.1
380
- - bundler/man/bundle-pristine.1
381
- - bundler/man/bundle-remove.1
382
- - bundler/man/bundle-show.1
383
- - bundler/man/bundle-update.1
384
- - bundler/man/bundle-viz.1
385
- - bundler/man/bundle.1
386
- - bundler/man/gemfile.5
387
- - bundler/man/index.txt
388
365
  - hide_lib_for_update/note.txt
389
366
  - lib/rubygems.rb
390
367
  - lib/rubygems/available_set.rb
@@ -492,6 +469,7 @@ files:
492
469
  - lib/rubygems/resolver.rb
493
470
  - lib/rubygems/resolver/activation_request.rb
494
471
  - lib/rubygems/resolver/api_set.rb
472
+ - lib/rubygems/resolver/api_set/gem_parser.rb
495
473
  - lib/rubygems/resolver/api_specification.rb
496
474
  - lib/rubygems/resolver/best_set.rb
497
475
  - lib/rubygems/resolver/composed_set.rb
@@ -589,6 +567,7 @@ files:
589
567
  - test/rubygems/client.pem
590
568
  - test/rubygems/data/gem-private_key.pem
591
569
  - test/rubygems/data/gem-public_cert.pem
570
+ - test/rubygems/data/null-required-rubygems-version.gemspec.rz
592
571
  - test/rubygems/data/null-type.gemspec.rz
593
572
  - test/rubygems/encrypted_private_key.pem
594
573
  - test/rubygems/expired_cert.pem
@@ -786,7 +765,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
786
765
  - !ruby/object:Gem::Version
787
766
  version: '0'
788
767
  requirements: []
789
- rubygems_version: 3.2.1
768
+ rubygems_version: 3.2.7
790
769
  signing_key:
791
770
  specification_version: 4
792
771
  summary: RubyGems is a package management framework for Ruby.