rubygems-update 3.2.0.rc.2 → 3.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (234) hide show
  1. checksums.yaml +4 -4
  2. data/History.txt +54 -51
  3. data/Manifest.txt +32 -29
  4. data/Rakefile +3 -1
  5. data/bundler/CHANGELOG.md +35 -1
  6. data/bundler/UPGRADING.md +1 -1
  7. data/bundler/lib/bundler.rb +4 -0
  8. data/bundler/lib/bundler/build_metadata.rb +2 -2
  9. data/bundler/lib/bundler/cli.rb +5 -2
  10. data/bundler/lib/bundler/cli/binstubs.rb +6 -2
  11. data/bundler/lib/bundler/cli/exec.rb +3 -3
  12. data/bundler/lib/bundler/cli/outdated.rb +2 -4
  13. data/bundler/lib/bundler/compact_index_client/updater.rb +5 -5
  14. data/bundler/lib/bundler/definition.rb +4 -9
  15. data/bundler/lib/bundler/env.rb +1 -1
  16. data/bundler/lib/bundler/feature_flag.rb +0 -1
  17. data/bundler/lib/bundler/fetcher/index.rb +2 -3
  18. data/bundler/lib/bundler/friendly_errors.rb +15 -0
  19. data/bundler/lib/bundler/index.rb +5 -1
  20. data/bundler/lib/bundler/injector.rb +9 -2
  21. data/bundler/lib/bundler/installer.rb +7 -5
  22. data/bundler/lib/bundler/lazy_specification.rb +5 -7
  23. data/bundler/lib/bundler/man/.document +1 -0
  24. data/bundler/{man → lib/bundler/man}/bundle-add.1.ronn +0 -0
  25. data/bundler/{man → lib/bundler/man}/bundle-binstubs.1.ronn +0 -0
  26. data/bundler/{man → lib/bundler/man}/bundle-cache.1.ronn +0 -0
  27. data/bundler/{man → lib/bundler/man}/bundle-check.1.ronn +0 -0
  28. data/bundler/{man → lib/bundler/man}/bundle-clean.1.ronn +0 -0
  29. data/bundler/{man → lib/bundler/man}/bundle-config.1.ronn +1 -9
  30. data/bundler/{man → lib/bundler/man}/bundle-doctor.1.ronn +0 -0
  31. data/bundler/{man → lib/bundler/man}/bundle-exec.1.ronn +0 -0
  32. data/bundler/{man → lib/bundler/man}/bundle-gem.1.ronn +0 -0
  33. data/bundler/{man → lib/bundler/man}/bundle-info.1.ronn +0 -0
  34. data/bundler/{man → lib/bundler/man}/bundle-init.1.ronn +0 -0
  35. data/bundler/{man → lib/bundler/man}/bundle-inject.1.ronn +0 -0
  36. data/bundler/{man → lib/bundler/man}/bundle-install.1.ronn +1 -1
  37. data/bundler/{man → lib/bundler/man}/bundle-list.1.ronn +0 -0
  38. data/bundler/{man → lib/bundler/man}/bundle-lock.1.ronn +0 -0
  39. data/bundler/{man → lib/bundler/man}/bundle-open.1.ronn +0 -0
  40. data/bundler/{man → lib/bundler/man}/bundle-outdated.1.ronn +0 -0
  41. data/bundler/{man → lib/bundler/man}/bundle-platform.1.ronn +0 -0
  42. data/bundler/{man → lib/bundler/man}/bundle-pristine.1.ronn +0 -0
  43. data/bundler/{man → lib/bundler/man}/bundle-remove.1.ronn +0 -0
  44. data/bundler/{man → lib/bundler/man}/bundle-show.1.ronn +0 -0
  45. data/bundler/{man → lib/bundler/man}/bundle-update.1.ronn +0 -0
  46. data/bundler/{man → lib/bundler/man}/bundle-viz.1.ronn +0 -0
  47. data/bundler/{man → lib/bundler/man}/bundle.1.ronn +0 -0
  48. data/bundler/{man → lib/bundler/man}/gemfile.5.ronn +0 -0
  49. data/bundler/lib/bundler/plugin/api/source.rb +1 -1
  50. data/bundler/lib/bundler/plugin/dsl.rb +1 -1
  51. data/bundler/lib/bundler/resolver.rb +2 -3
  52. data/bundler/lib/bundler/rubygems_integration.rb +4 -0
  53. data/bundler/lib/bundler/settings.rb +0 -1
  54. data/bundler/lib/bundler/source/git/git_proxy.rb +1 -1
  55. data/bundler/lib/bundler/spec_set.rb +1 -0
  56. data/bundler/lib/bundler/templates/newgem/README.md.tt +0 -1
  57. data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +2 -2
  58. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +6 -0
  59. data/bundler/lib/bundler/uri_credentials_filter.rb +2 -0
  60. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -1
  61. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +34 -1
  62. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +2 -2
  63. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +1 -1
  64. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +1 -1
  65. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +38 -40
  66. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +4 -7
  67. data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +154 -0
  68. data/bundler/lib/bundler/vendored_tmpdir.rb +4 -0
  69. data/bundler/lib/bundler/version.rb +1 -1
  70. data/bundler/man/bundle-add.1 +1 -1
  71. data/bundler/man/bundle-binstubs.1 +1 -1
  72. data/bundler/man/bundle-cache.1 +1 -1
  73. data/bundler/man/bundle-check.1 +1 -1
  74. data/bundler/man/bundle-clean.1 +1 -1
  75. data/bundler/man/bundle-config.1 +2 -5
  76. data/bundler/man/bundle-doctor.1 +1 -1
  77. data/bundler/man/bundle-exec.1 +1 -1
  78. data/bundler/man/bundle-gem.1 +1 -1
  79. data/bundler/man/bundle-info.1 +1 -1
  80. data/bundler/man/bundle-init.1 +1 -1
  81. data/bundler/man/bundle-inject.1 +1 -1
  82. data/bundler/man/bundle-install.1 +2 -2
  83. data/bundler/man/bundle-list.1 +1 -1
  84. data/bundler/man/bundle-lock.1 +1 -1
  85. data/bundler/man/bundle-open.1 +1 -1
  86. data/bundler/man/bundle-outdated.1 +1 -1
  87. data/bundler/man/bundle-platform.1 +1 -1
  88. data/bundler/man/bundle-pristine.1 +1 -1
  89. data/bundler/man/bundle-remove.1 +1 -1
  90. data/bundler/man/bundle-show.1 +1 -1
  91. data/bundler/man/bundle-update.1 +1 -1
  92. data/bundler/man/bundle-viz.1 +1 -1
  93. data/bundler/man/bundle.1 +1 -1
  94. data/bundler/man/gemfile.5 +1 -1
  95. data/bundler/man/index.txt +25 -0
  96. data/lib/rubygems.rb +6 -2
  97. data/lib/rubygems/available_set.rb +1 -1
  98. data/lib/rubygems/command_manager.rb +2 -2
  99. data/lib/rubygems/commands/build_command.rb +37 -20
  100. data/lib/rubygems/commands/cert_command.rb +1 -1
  101. data/lib/rubygems/commands/help_command.rb +2 -0
  102. data/lib/rubygems/commands/owner_command.rb +10 -2
  103. data/lib/rubygems/commands/pristine_command.rb +1 -1
  104. data/lib/rubygems/commands/push_command.rb +7 -3
  105. data/lib/rubygems/commands/query_command.rb +17 -0
  106. data/lib/rubygems/commands/server_command.rb +4 -0
  107. data/lib/rubygems/commands/setup_command.rb +25 -45
  108. data/lib/rubygems/commands/sources_command.rb +6 -2
  109. data/lib/rubygems/commands/specification_command.rb +6 -0
  110. data/lib/rubygems/commands/yank_command.rb +4 -4
  111. data/lib/rubygems/core_ext/kernel_require.rb +3 -0
  112. data/lib/rubygems/core_ext/kernel_warn.rb +6 -7
  113. data/lib/rubygems/defaults.rb +2 -2
  114. data/lib/rubygems/dependency.rb +1 -1
  115. data/lib/rubygems/dependency_installer.rb +4 -3
  116. data/lib/rubygems/ext/builder.rb +13 -32
  117. data/lib/rubygems/ext/cmake_builder.rb +4 -4
  118. data/lib/rubygems/ext/configure_builder.rb +4 -4
  119. data/lib/rubygems/ext/ext_conf_builder.rb +19 -14
  120. data/lib/rubygems/ext/rake_builder.rb +3 -3
  121. data/lib/rubygems/gemcutter_utilities.rb +90 -14
  122. data/lib/rubygems/indexer.rb +0 -1
  123. data/lib/rubygems/install_update_options.rb +2 -2
  124. data/lib/rubygems/installer.rb +12 -9
  125. data/lib/rubygems/installer_test_case.rb +7 -6
  126. data/lib/rubygems/name_tuple.rb +1 -1
  127. data/lib/rubygems/openssl.rb +4 -4
  128. data/lib/rubygems/package.rb +3 -2
  129. data/lib/rubygems/package/tar_header.rb +1 -1
  130. data/lib/rubygems/package/tar_test_case.rb +1 -1
  131. data/lib/rubygems/platform.rb +18 -7
  132. data/lib/rubygems/query_utils.rb +0 -9
  133. data/lib/rubygems/remote_fetcher.rb +1 -2
  134. data/lib/rubygems/request.rb +4 -3
  135. data/lib/rubygems/request_set/gem_dependency_api.rb +4 -4
  136. data/lib/rubygems/requirement.rb +1 -1
  137. data/lib/rubygems/resolver.rb +1 -1
  138. data/lib/rubygems/resolver/activation_request.rb +9 -1
  139. data/lib/rubygems/resolver/api_specification.rb +5 -1
  140. data/lib/rubygems/resolver/conflict.rb +1 -1
  141. data/lib/rubygems/resolver/dependency_request.rb +1 -1
  142. data/lib/rubygems/resolver/index_specification.rb +11 -0
  143. data/lib/rubygems/resolver/installer_set.rb +1 -2
  144. data/lib/rubygems/resolver/lock_set.rb +1 -1
  145. data/lib/rubygems/resolver/molinillo/lib/molinillo.rb +6 -5
  146. data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb +7 -0
  147. data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb +1 -0
  148. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +39 -5
  149. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/action.rb +1 -0
  150. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +2 -1
  151. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +2 -1
  152. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +2 -1
  153. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +2 -1
  154. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb +7 -6
  155. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/set_payload.rb +2 -1
  156. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/tag.rb +4 -3
  157. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb +43 -10
  158. data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +75 -7
  159. data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +2 -1
  160. data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb +1 -0
  161. data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb +3 -1
  162. data/lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb +506 -165
  163. data/lib/rubygems/resolver/molinillo/lib/molinillo/resolver.rb +3 -2
  164. data/lib/rubygems/resolver/molinillo/lib/molinillo/state.rb +8 -4
  165. data/lib/rubygems/resolver/specification.rb +1 -1
  166. data/lib/rubygems/s3_uri_signer.rb +1 -1
  167. data/lib/rubygems/security.rb +1 -2
  168. data/lib/rubygems/security/policy.rb +1 -1
  169. data/lib/rubygems/security/signer.rb +1 -1
  170. data/lib/rubygems/server.rb +1 -1
  171. data/lib/rubygems/source.rb +10 -4
  172. data/lib/rubygems/spec_fetcher.rb +1 -1
  173. data/lib/rubygems/specification.rb +8 -8
  174. data/lib/rubygems/ssl_certs/{index.rubygems.org → rubygems.org}/GlobalSignRootCA.pem +0 -0
  175. data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem +21 -0
  176. data/lib/rubygems/stub_specification.rb +1 -1
  177. data/lib/rubygems/test_case.rb +13 -26
  178. data/lib/rubygems/uri_formatter.rb +2 -1
  179. data/lib/rubygems/version_option.rb +6 -0
  180. data/rubygems-update.gemspec +1 -1
  181. data/test/rubygems/test_bundled_ca.rb +9 -5
  182. data/test/rubygems/test_gem.rb +3 -3
  183. data/test/rubygems/test_gem_commands_build_command.rb +197 -5
  184. data/test/rubygems/test_gem_commands_cert_command.rb +2 -2
  185. data/test/rubygems/test_gem_commands_cleanup_command.rb +1 -1
  186. data/test/rubygems/test_gem_commands_contents_command.rb +2 -2
  187. data/test/rubygems/test_gem_commands_help_command.rb +15 -2
  188. data/test/rubygems/test_gem_commands_install_command.rb +1 -1
  189. data/test/rubygems/test_gem_commands_owner_command.rb +49 -1
  190. data/test/rubygems/test_gem_commands_pristine_command.rb +2 -2
  191. data/test/rubygems/test_gem_commands_push_command.rb +31 -5
  192. data/test/rubygems/test_gem_commands_query_command.rb +3 -3
  193. data/test/rubygems/test_gem_commands_setup_command.rb +13 -18
  194. data/test/rubygems/test_gem_commands_signin_command.rb +27 -3
  195. data/test/rubygems/test_gem_commands_sources_command.rb +60 -0
  196. data/test/rubygems/test_gem_commands_specification_command.rb +28 -0
  197. data/test/rubygems/test_gem_commands_update_command.rb +2 -2
  198. data/test/rubygems/test_gem_commands_yank_command.rb +31 -1
  199. data/test/rubygems/test_gem_dependency_installer.rb +36 -2
  200. data/test/rubygems/test_gem_dependency_list.rb +2 -2
  201. data/test/rubygems/test_gem_ext_builder.rb +10 -14
  202. data/test/rubygems/test_gem_ext_cmake_builder.rb +3 -9
  203. data/test/rubygems/test_gem_ext_configure_builder.rb +3 -9
  204. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +9 -26
  205. data/test/rubygems/test_gem_ext_rake_builder.rb +5 -13
  206. data/test/rubygems/test_gem_gem_runner.rb +5 -4
  207. data/test/rubygems/test_gem_gemcutter_utilities.rb +3 -3
  208. data/test/rubygems/test_gem_install_update_options.rb +15 -3
  209. data/test/rubygems/test_gem_installer.rb +74 -11
  210. data/test/rubygems/test_gem_package.rb +8 -8
  211. data/test/rubygems/test_gem_package_old.rb +4 -4
  212. data/test/rubygems/test_gem_package_tar_writer.rb +1 -1
  213. data/test/rubygems/test_gem_platform.rb +63 -4
  214. data/test/rubygems/test_gem_remote_fetcher.rb +14 -18
  215. data/test/rubygems/test_gem_request.rb +2 -2
  216. data/test/rubygems/test_gem_request_set_lockfile.rb +4 -4
  217. data/test/rubygems/test_gem_resolver_api_set.rb +8 -8
  218. data/test/rubygems/test_gem_resolver_conflict.rb +1 -1
  219. data/test/rubygems/test_gem_resolver_vendor_set.rb +1 -1
  220. data/test/rubygems/test_gem_security.rb +2 -2
  221. data/test/rubygems/test_gem_security_policy.rb +2 -2
  222. data/test/rubygems/test_gem_security_signer.rb +2 -2
  223. data/test/rubygems/test_gem_security_trust_dir.rb +2 -2
  224. data/test/rubygems/test_gem_source.rb +5 -0
  225. data/test/rubygems/test_gem_source_subpath_problem.rb +49 -0
  226. data/test/rubygems/test_gem_specification.rb +5 -4
  227. data/test/rubygems/test_gem_uninstaller.rb +7 -7
  228. data/test/rubygems/test_gem_validator.rb +1 -1
  229. data/test/rubygems/test_gem_version_option.rb +1 -1
  230. data/test/rubygems/test_require.rb +50 -9
  231. metadata +35 -32
  232. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +0 -26
  233. data/lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -23
  234. data/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -25
@@ -2,7 +2,7 @@
2
2
 
3
3
  require 'rubygems/test_case'
4
4
 
5
- unless defined?(OpenSSL::SSL)
5
+ unless Gem::HAVE_OPENSSL
6
6
  warn 'Skipping Gem::Security::Policy tests. openssl not found.'
7
7
  end
8
8
 
@@ -532,4 +532,4 @@ class TestGemSecurityPolicy < Gem::TestCase
532
532
 
533
533
  return digests, signatures
534
534
  end
535
- end if defined?(OpenSSL::SSL)
535
+ end if Gem::HAVE_OPENSSL
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
  require 'rubygems/test_case'
3
3
 
4
- unless defined?(OpenSSL::SSL)
4
+ unless Gem::HAVE_OPENSSL
5
5
  warn 'Skipping Gem::Security::Signer tests. openssl not found.'
6
6
  end
7
7
 
@@ -214,4 +214,4 @@ toqvglr0kdbknSRRjBVLK6tsgr07aLT9gNP7mTW2PA==
214
214
  signer.sign 'hello'
215
215
  end
216
216
  end
217
- end if defined?(OpenSSL::SSL)
217
+ end if Gem::HAVE_OPENSSL
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
  require 'rubygems/test_case'
3
3
 
4
- unless defined?(OpenSSL::SSL)
4
+ unless Gem::HAVE_OPENSSL
5
5
  warn 'Skipping Gem::Security::TrustDir tests. openssl not found.'
6
6
  end
7
7
 
@@ -95,4 +95,4 @@ class TestGemSecurityTrustDir < Gem::TestCase
95
95
 
96
96
  assert_equal mask, File.stat(@dest_dir).mode unless win_platform?
97
97
  end
98
- end if defined?(OpenSSL::SSL)
98
+ end if Gem::HAVE_OPENSSL
@@ -240,6 +240,11 @@ class TestGemSource < Gem::TestCase
240
240
  refute rubygems_source.typo_squatting?("rubysertgems.org")
241
241
  end
242
242
 
243
+ def test_typo_squatting_false_positive
244
+ rubygems_source = Gem::Source.new("https://rubygems.org")
245
+ refute rubygems_source.typo_squatting?("rubygems.org")
246
+ end
247
+
243
248
  def test_typo_squatting_custom_distance_threshold
244
249
  rubygems_source = Gem::Source.new("https://rubgems.org")
245
250
  distance_threshold = 5
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+ require 'rubygems/test_case'
3
+ require 'rubygems/source'
4
+
5
+ class TestGemSourceSubpathProblem < Gem::TestCase
6
+ def tuple(*args)
7
+ Gem::NameTuple.new(*args)
8
+ end
9
+
10
+ def setup
11
+ super
12
+
13
+ @gem_repo = "http://gems.example.com/private"
14
+
15
+ spec_fetcher
16
+
17
+ @source = Gem::Source.new(@gem_repo)
18
+
19
+ util_make_gems
20
+ end
21
+
22
+ def test_dependency_resolver_set
23
+ response = Net::HTTPResponse.new '1.1', 200, 'OK'
24
+ response.uri = URI('http://example') if response.respond_to? :uri
25
+
26
+ @fetcher.data["#{@gem_repo}/api/v1/dependencies"] = response
27
+
28
+ set = @source.dependency_resolver_set
29
+
30
+ assert_kind_of Gem::Resolver::APISet, set
31
+ end
32
+
33
+ def test_fetch_spec
34
+ @fetcher.data["#{@gem_repo}/#{Gem::MARSHAL_SPEC_DIR}#{@a1.spec_name}.rz"] = Zlib::Deflate.deflate(Marshal.dump(@a1))
35
+
36
+ spec = @source.fetch_spec tuple('a', Gem::Version.new(1), 'ruby')
37
+ assert_equal @a1.full_name, spec.full_name
38
+ end
39
+
40
+ def test_load_specs
41
+ @fetcher.data["#{@gem_repo}/latest_specs.#{Gem.marshal_version}.gz"] = util_gzip(Marshal.dump([
42
+ Gem::NameTuple.new(@a1.name, @a1.version, 'ruby'),
43
+ Gem::NameTuple.new(@b2.name, @b2.version, 'ruby'),
44
+ ]))
45
+
46
+ released = @source.load_specs(:latest).map {|spec| spec.full_name }
47
+ assert_equal %W[a-1 b-2], released
48
+ end
49
+ end
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
  require 'benchmark'
3
3
  require 'rubygems/test_case'
4
+ require 'date'
4
5
  require 'pathname'
5
6
  require 'stringio'
6
7
  require 'rubygems/ext'
@@ -1999,7 +2000,7 @@ dependencies: []
1999
2000
  test_cases = {
2000
2001
  'i386-mswin32' => 'a-1-x86-mswin32-60',
2001
2002
  'i386-mswin32_80' => 'a-1-x86-mswin32-80',
2002
- 'i386-mingw32' => 'a-1-x86-mingw32'
2003
+ 'i386-mingw32' => 'a-1-x86-mingw32',
2003
2004
  }
2004
2005
 
2005
2006
  test_cases.each do |arch, expected|
@@ -3035,7 +3036,7 @@ Please report a bug if this causes problems.
3035
3036
  specification.define_singleton_method(:find_all_by_name) do |dep_name|
3036
3037
  [
3037
3038
  specification.new {|s| s.name = "z", s.version = Gem::Version.new("1") },
3038
- specification.new {|s| s.name = "z", s.version = Gem::Version.new("2") }
3039
+ specification.new {|s| s.name = "z", s.version = Gem::Version.new("2") },
3039
3040
  ]
3040
3041
  end
3041
3042
 
@@ -3578,7 +3579,7 @@ Did you mean 'Ruby'?
3578
3579
  "one" => "two",
3579
3580
  "home" => "three",
3580
3581
  "homepage_uri" => "https://example.com/user/repo",
3581
- "funding_uri" => "https://example.com/donate"
3582
+ "funding_uri" => "https://example.com/donate",
3582
3583
  }
3583
3584
  end
3584
3585
 
@@ -3838,7 +3839,7 @@ end
3838
3839
 
3839
3840
  default_gem_spec = new_default_spec("default", "2.0.0.0",
3840
3841
  nil, "default/gem.rb")
3841
- spec_path = File.join(@default_spec_dir, default_gem_spec.spec_name)
3842
+ spec_path = File.join(@gemhome, "specifications", "default", default_gem_spec.spec_name)
3842
3843
  write_file(spec_path) do |file|
3843
3844
  file.print(default_gem_spec.to_ruby)
3844
3845
  end
@@ -177,7 +177,7 @@ class TestGemUninstaller < Gem::InstallerTestCase
177
177
 
178
178
  @spec.files += %w[lib/rubygems_plugin.rb]
179
179
 
180
- Gem::Installer.at(Gem::Package.build(@spec)).install
180
+ Gem::Installer.at(Gem::Package.build(@spec), :force => true).install
181
181
 
182
182
  plugin_path = File.join Gem.plugindir, 'a_plugin.rb'
183
183
  assert File.exist?(plugin_path), 'plugin not written'
@@ -194,7 +194,7 @@ class TestGemUninstaller < Gem::InstallerTestCase
194
194
 
195
195
  @spec.files += %w[lib/rubygems_plugin.rb]
196
196
 
197
- Gem::Installer.at(Gem::Package.build(@spec)).install
197
+ Gem::Installer.at(Gem::Package.build(@spec), :force => true).install
198
198
 
199
199
  plugin_path = File.join Gem.plugindir, 'a_plugin.rb'
200
200
  assert File.exist?(plugin_path), 'plugin not written'
@@ -212,7 +212,7 @@ class TestGemUninstaller < Gem::InstallerTestCase
212
212
 
213
213
  @spec.files += %w[lib/rubygems_plugin.rb]
214
214
 
215
- Gem::Installer.at(Gem::Package.build(@spec)).install
215
+ Gem::Installer.at(Gem::Package.build(@spec), :force => true).install
216
216
 
217
217
  plugin_path = File.join Gem.plugindir, 'a_plugin.rb'
218
218
  assert File.exist?(plugin_path), 'plugin not written'
@@ -314,7 +314,7 @@ create_makefile '#{@spec.name}'
314
314
  use_ui @ui do
315
315
  path = Gem::Package.build @spec
316
316
 
317
- installer = Gem::Installer.at path
317
+ installer = Gem::Installer.at path, :force => true
318
318
  installer.install
319
319
  end
320
320
 
@@ -633,19 +633,19 @@ create_makefile '#{@spec.name}'
633
633
  plugin_path = File.join Gem.plugindir, 'a_plugin.rb'
634
634
 
635
635
  @spec.version = '1'
636
- Gem::Installer.at(Gem::Package.build(@spec)).install
636
+ Gem::Installer.at(Gem::Package.build(@spec), :force => true).install
637
637
 
638
638
  refute File.exist?(plugin_path), 'version without plugin installed, but plugin written'
639
639
 
640
640
  @spec.files += %w[lib/rubygems_plugin.rb]
641
641
  @spec.version = '2'
642
- Gem::Installer.at(Gem::Package.build(@spec)).install
642
+ Gem::Installer.at(Gem::Package.build(@spec), :force => true).install
643
643
 
644
644
  assert File.exist?(plugin_path), 'version with plugin installed, but plugin not written'
645
645
  assert_match %r{\Arequire.*a-2/lib/rubygems_plugin\.rb}, File.read(plugin_path), 'written plugin has incorrect content'
646
646
 
647
647
  @spec.version = '3'
648
- Gem::Installer.at(Gem::Package.build(@spec)).install
648
+ Gem::Installer.at(Gem::Package.build(@spec), :force => true).install
649
649
 
650
650
  assert File.exist?(plugin_path), 'version with plugin installed, but plugin removed'
651
651
  assert_match %r{\Arequire.*a-3/lib/rubygems_plugin\.rb}, File.read(plugin_path), 'old version installed, but plugin updated'
@@ -26,7 +26,7 @@ class TestGemValidator < Gem::TestCase
26
26
  @spec.file_name => [
27
27
  Gem::Validator::ErrorData.new('lib/b.rb', 'Missing file'),
28
28
  Gem::Validator::ErrorData.new('lib/c.rb', 'Extra file'),
29
- ]
29
+ ],
30
30
  }
31
31
 
32
32
  assert_equal expected, alien
@@ -56,7 +56,7 @@ class TestGemVersionOption < Gem::TestCase
56
56
  @cmd.handle_options %w[--platform ruby]
57
57
 
58
58
  expected = [
59
- Gem::Platform::RUBY
59
+ Gem::Platform::RUBY,
60
60
  ]
61
61
 
62
62
  assert_equal expected, Gem.platforms
@@ -120,7 +120,7 @@ class TestGemRequire < Gem::TestCase
120
120
  c1 = new_default_spec "c", "1", nil, "c/c.rb"
121
121
  c2 = new_default_spec "c", "2", nil, "c/c.rb"
122
122
 
123
- install_default_specs c1, c2, b1, a1
123
+ install_default_gems c1, c2, b1, a1
124
124
 
125
125
  dir = Dir.mktmpdir("test_require", @tempdir)
126
126
  dash_i_arg = File.join dir, 'lib'
@@ -405,8 +405,8 @@ class TestGemRequire < Gem::TestCase
405
405
 
406
406
  # Remove an old default gem version directly from disk as if someone ran
407
407
  # gem cleanup.
408
- FileUtils.rm_rf(File.join @default_dir, "#{b1.full_name}")
409
- FileUtils.rm_rf(File.join @default_spec_dir, "#{b1.full_name}.gemspec")
408
+ FileUtils.rm_rf(File.join @gemhome, "#{b1.full_name}")
409
+ FileUtils.rm_rf(File.join @gemhome, "specifications", "default", "#{b1.full_name}.gemspec")
410
410
 
411
411
  # Require gems that have not been removed.
412
412
  assert_require 'a/b'
@@ -433,7 +433,7 @@ class TestGemRequire < Gem::TestCase
433
433
  def test_default_gem_only
434
434
  default_gem_spec = new_default_spec("default", "2.0.0.0",
435
435
  nil, "default/gem.rb")
436
- install_default_specs(default_gem_spec)
436
+ install_default_gems(default_gem_spec)
437
437
  assert_require "default/gem"
438
438
  assert_equal %w[default-2.0.0.0], loaded_spec_names
439
439
  end
@@ -441,7 +441,7 @@ class TestGemRequire < Gem::TestCase
441
441
  def test_default_gem_require_activates_just_once
442
442
  default_gem_spec = new_default_spec("default", "2.0.0.0",
443
443
  nil, "default/gem.rb")
444
- install_default_specs(default_gem_spec)
444
+ install_default_gems(default_gem_spec)
445
445
 
446
446
  assert_require "default/gem"
447
447
 
@@ -506,7 +506,7 @@ class TestGemRequire < Gem::TestCase
506
506
  def test_default_gem_and_normal_gem
507
507
  default_gem_spec = new_default_spec("default", "2.0.0.0",
508
508
  nil, "default/gem.rb")
509
- install_default_specs(default_gem_spec)
509
+ install_default_gems(default_gem_spec)
510
510
  normal_gem_spec = util_spec("default", "3.0", nil,
511
511
  "lib/default/gem.rb")
512
512
  install_specs(normal_gem_spec)
@@ -544,11 +544,11 @@ class TestGemRequire < Gem::TestCase
544
544
  def test_default_gem_prerelease
545
545
  default_gem_spec = new_default_spec("default", "2.0.0",
546
546
  nil, "default/gem.rb")
547
- install_default_specs(default_gem_spec)
547
+ install_default_gems(default_gem_spec)
548
548
 
549
549
  normal_gem_higher_prerelease_spec = util_spec("default", "3.0.0.rc2", nil,
550
550
  "lib/default/gem.rb")
551
- install_default_specs(normal_gem_higher_prerelease_spec)
551
+ install_default_gems(normal_gem_higher_prerelease_spec)
552
552
 
553
553
  assert_require "default/gem"
554
554
  assert_equal %w[default-3.0.0.rc2], loaded_spec_names
@@ -586,7 +586,7 @@ class TestGemRequire < Gem::TestCase
586
586
  def test_require_when_gem_defined
587
587
  default_gem_spec = new_default_spec("default", "2.0.0.0",
588
588
  nil, "default/gem.rb")
589
- install_default_specs(default_gem_spec)
589
+ install_default_gems(default_gem_spec)
590
590
  c = Class.new do
591
591
  def self.gem(*args)
592
592
  raise "received #gem with #{args.inspect}"
@@ -677,6 +677,47 @@ class TestGemRequire < Gem::TestCase
677
677
  end
678
678
  end
679
679
  end
680
+
681
+ def test_no_crash_when_overriding_warn_with_warning_module
682
+ skip "https://github.com/oracle/truffleruby/issues/2109" if RUBY_ENGINE == "truffleruby"
683
+
684
+ Dir.mktmpdir("warn_test") do |dir|
685
+ File.write(dir + "/main.rb", "module Warning; def warn(str); super; end; end; warn 'Foo Bar'")
686
+ _, err = capture_subprocess_io do
687
+ system(*ruby_with_rubygems_in_load_path, "-w", "--disable=gems", "-C", dir, "main.rb")
688
+ end
689
+ assert_match(/Foo Bar\n$/, err)
690
+ _, err = capture_subprocess_io do
691
+ system(*ruby_with_rubygems_in_load_path, "-w", "--enable=gems", "-C", dir, "main.rb")
692
+ end
693
+ assert_match(/Foo Bar\n$/, err)
694
+ end
695
+ end
696
+
697
+ def test_expected_backtrace_location_when_inheriting_from_basic_object_and_including_kernel
698
+ Dir.mktmpdir("warn_test") do |dir|
699
+ File.write(dir + "/main.rb", "\nrequire 'sub'\n")
700
+ File.write(dir + "/sub.rb", <<-'RUBY')
701
+ require 'rubygems'
702
+ class C < BasicObject
703
+ include ::Kernel
704
+ def deprecated
705
+ warn "This is a deprecated method", uplevel: 2
706
+ end
707
+ end
708
+ C.new.deprecated
709
+ RUBY
710
+
711
+ _, err = capture_subprocess_io do
712
+ system(*ruby_with_rubygems_in_load_path, "-w", "--disable=gems", "-C", dir, "-I", dir, "main.rb")
713
+ end
714
+ assert_match(/main\.rb:2: warning: This is a deprecated method$/, err)
715
+ _, err = capture_subprocess_io do
716
+ system(*ruby_with_rubygems_in_load_path, "-w", "--enable=gems", "-C", dir, "-I", dir, "main.rb")
717
+ end
718
+ assert_match(/main\.rb:2: warning: This is a deprecated method$/, err)
719
+ end
720
+ end
680
721
  end
681
722
 
682
723
  private
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.0.rc.2
4
+ version: 3.2.0
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-10-08 00:00:00.000000000 Z
19
+ date: 2020-12-10 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
@@ -169,6 +169,32 @@ files:
169
169
  - bundler/lib/bundler/lazy_specification.rb
170
170
  - bundler/lib/bundler/lockfile_generator.rb
171
171
  - bundler/lib/bundler/lockfile_parser.rb
172
+ - bundler/lib/bundler/man/.document
173
+ - bundler/lib/bundler/man/bundle-add.1.ronn
174
+ - bundler/lib/bundler/man/bundle-binstubs.1.ronn
175
+ - bundler/lib/bundler/man/bundle-cache.1.ronn
176
+ - bundler/lib/bundler/man/bundle-check.1.ronn
177
+ - bundler/lib/bundler/man/bundle-clean.1.ronn
178
+ - bundler/lib/bundler/man/bundle-config.1.ronn
179
+ - bundler/lib/bundler/man/bundle-doctor.1.ronn
180
+ - bundler/lib/bundler/man/bundle-exec.1.ronn
181
+ - bundler/lib/bundler/man/bundle-gem.1.ronn
182
+ - bundler/lib/bundler/man/bundle-info.1.ronn
183
+ - bundler/lib/bundler/man/bundle-init.1.ronn
184
+ - bundler/lib/bundler/man/bundle-inject.1.ronn
185
+ - bundler/lib/bundler/man/bundle-install.1.ronn
186
+ - bundler/lib/bundler/man/bundle-list.1.ronn
187
+ - bundler/lib/bundler/man/bundle-lock.1.ronn
188
+ - bundler/lib/bundler/man/bundle-open.1.ronn
189
+ - bundler/lib/bundler/man/bundle-outdated.1.ronn
190
+ - bundler/lib/bundler/man/bundle-platform.1.ronn
191
+ - bundler/lib/bundler/man/bundle-pristine.1.ronn
192
+ - bundler/lib/bundler/man/bundle-remove.1.ronn
193
+ - bundler/lib/bundler/man/bundle-show.1.ronn
194
+ - bundler/lib/bundler/man/bundle-update.1.ronn
195
+ - bundler/lib/bundler/man/bundle-viz.1.ronn
196
+ - bundler/lib/bundler/man/bundle.1.ronn
197
+ - bundler/lib/bundler/man/gemfile.5.ronn
172
198
  - bundler/lib/bundler/match_platform.rb
173
199
  - bundler/lib/bundler/mirror.rb
174
200
  - bundler/lib/bundler/plugin.rb
@@ -254,7 +280,6 @@ files:
254
280
  - bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb
255
281
  - bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb
256
282
  - bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb
257
- - bundler/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb
258
283
  - bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb
259
284
  - bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb
260
285
  - bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb
@@ -309,6 +334,7 @@ files:
309
334
  - bundler/lib/bundler/vendor/thor/lib/thor/shell/html.rb
310
335
  - bundler/lib/bundler/vendor/thor/lib/thor/util.rb
311
336
  - bundler/lib/bundler/vendor/thor/lib/thor/version.rb
337
+ - bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb
312
338
  - bundler/lib/bundler/vendor/uri/lib/uri.rb
313
339
  - bundler/lib/bundler/vendor/uri/lib/uri/common.rb
314
340
  - bundler/lib/bundler/vendor/uri/lib/uri/file.rb
@@ -326,6 +352,7 @@ files:
326
352
  - bundler/lib/bundler/vendored_molinillo.rb
327
353
  - bundler/lib/bundler/vendored_persistent.rb
328
354
  - bundler/lib/bundler/vendored_thor.rb
355
+ - bundler/lib/bundler/vendored_tmpdir.rb
329
356
  - bundler/lib/bundler/vendored_uri.rb
330
357
  - bundler/lib/bundler/version.rb
331
358
  - bundler/lib/bundler/version_ranges.rb
@@ -333,55 +360,31 @@ files:
333
360
  - bundler/lib/bundler/worker.rb
334
361
  - bundler/lib/bundler/yaml_serializer.rb
335
362
  - bundler/man/bundle-add.1
336
- - bundler/man/bundle-add.1.ronn
337
363
  - bundler/man/bundle-binstubs.1
338
- - bundler/man/bundle-binstubs.1.ronn
339
364
  - bundler/man/bundle-cache.1
340
- - bundler/man/bundle-cache.1.ronn
341
365
  - bundler/man/bundle-check.1
342
- - bundler/man/bundle-check.1.ronn
343
366
  - bundler/man/bundle-clean.1
344
- - bundler/man/bundle-clean.1.ronn
345
367
  - bundler/man/bundle-config.1
346
- - bundler/man/bundle-config.1.ronn
347
368
  - bundler/man/bundle-doctor.1
348
- - bundler/man/bundle-doctor.1.ronn
349
369
  - bundler/man/bundle-exec.1
350
- - bundler/man/bundle-exec.1.ronn
351
370
  - bundler/man/bundle-gem.1
352
- - bundler/man/bundle-gem.1.ronn
353
371
  - bundler/man/bundle-info.1
354
- - bundler/man/bundle-info.1.ronn
355
372
  - bundler/man/bundle-init.1
356
- - bundler/man/bundle-init.1.ronn
357
373
  - bundler/man/bundle-inject.1
358
- - bundler/man/bundle-inject.1.ronn
359
374
  - bundler/man/bundle-install.1
360
- - bundler/man/bundle-install.1.ronn
361
375
  - bundler/man/bundle-list.1
362
- - bundler/man/bundle-list.1.ronn
363
376
  - bundler/man/bundle-lock.1
364
- - bundler/man/bundle-lock.1.ronn
365
377
  - bundler/man/bundle-open.1
366
- - bundler/man/bundle-open.1.ronn
367
378
  - bundler/man/bundle-outdated.1
368
- - bundler/man/bundle-outdated.1.ronn
369
379
  - bundler/man/bundle-platform.1
370
- - bundler/man/bundle-platform.1.ronn
371
380
  - bundler/man/bundle-pristine.1
372
- - bundler/man/bundle-pristine.1.ronn
373
381
  - bundler/man/bundle-remove.1
374
- - bundler/man/bundle-remove.1.ronn
375
382
  - bundler/man/bundle-show.1
376
- - bundler/man/bundle-show.1.ronn
377
383
  - bundler/man/bundle-update.1
378
- - bundler/man/bundle-update.1.ronn
379
384
  - bundler/man/bundle-viz.1
380
- - bundler/man/bundle-viz.1.ronn
381
385
  - bundler/man/bundle.1
382
- - bundler/man/bundle.1.ronn
383
386
  - bundler/man/gemfile.5
384
- - bundler/man/gemfile.5.ronn
387
+ - bundler/man/index.txt
385
388
  - hide_lib_for_update/note.txt
386
389
  - lib/rubygems.rb
387
390
  - lib/rubygems/available_set.rb
@@ -554,9 +557,8 @@ files:
554
557
  - lib/rubygems/specification.rb
555
558
  - lib/rubygems/specification_policy.rb
556
559
  - lib/rubygems/ssl_certs/.document
557
- - lib/rubygems/ssl_certs/index.rubygems.org/GlobalSignRootCA.pem
558
- - lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem
559
- - lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem
560
+ - lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA.pem
561
+ - lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem
560
562
  - lib/rubygems/stub_specification.rb
561
563
  - lib/rubygems/syck_hack.rb
562
564
  - lib/rubygems/test_case.rb
@@ -740,6 +742,7 @@ files:
740
742
  - test/rubygems/test_gem_source_local.rb
741
743
  - test/rubygems/test_gem_source_lock.rb
742
744
  - test/rubygems/test_gem_source_specific_file.rb
745
+ - test/rubygems/test_gem_source_subpath_problem.rb
743
746
  - test/rubygems/test_gem_source_vendor.rb
744
747
  - test/rubygems/test_gem_spec_fetcher.rb
745
748
  - test/rubygems/test_gem_specification.rb
@@ -782,7 +785,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
782
785
  - !ruby/object:Gem::Version
783
786
  version: '0'
784
787
  requirements: []
785
- rubygems_version: 3.2.0.rc.1
788
+ rubygems_version: 3.2.0
786
789
  signing_key:
787
790
  specification_version: 4
788
791
  summary: RubyGems is a package management framework for Ruby.