rubygems-update 3.4.19 → 3.4.21

Sign up to get free protection for your applications and to get access to all the features.
Files changed (200) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +58 -0
  3. data/Manifest.txt +1 -0
  4. data/bundler/CHANGELOG.md +62 -2
  5. data/bundler/lib/bundler/build_metadata.rb +3 -3
  6. data/bundler/lib/bundler/cli/check.rb +1 -1
  7. data/bundler/lib/bundler/cli/gem.rb +1 -3
  8. data/bundler/lib/bundler/cli/info.rb +1 -1
  9. data/bundler/lib/bundler/cli/install.rb +2 -2
  10. data/bundler/lib/bundler/cli/lock.rb +26 -23
  11. data/bundler/lib/bundler/cli/open.rb +5 -7
  12. data/bundler/lib/bundler/cli/update.rb +1 -0
  13. data/bundler/lib/bundler/definition.rb +42 -25
  14. data/bundler/lib/bundler/env.rb +2 -2
  15. data/bundler/lib/bundler/fetcher/base.rb +2 -2
  16. data/bundler/lib/bundler/fetcher/compact_index.rb +1 -5
  17. data/bundler/lib/bundler/fetcher/dependency.rb +1 -1
  18. data/bundler/lib/bundler/fetcher.rb +31 -30
  19. data/bundler/lib/bundler/gem_version_promoter.rb +2 -2
  20. data/bundler/lib/bundler/index.rb +62 -31
  21. data/bundler/lib/bundler/injector.rb +1 -1
  22. data/bundler/lib/bundler/installer/parallel_installer.rb +0 -26
  23. data/bundler/lib/bundler/installer/standalone.rb +15 -1
  24. data/bundler/lib/bundler/lockfile_parser.rb +32 -39
  25. data/bundler/lib/bundler/man/bundle-add.1 +1 -1
  26. data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
  27. data/bundler/lib/bundler/man/bundle-cache.1 +1 -1
  28. data/bundler/lib/bundler/man/bundle-check.1 +1 -1
  29. data/bundler/lib/bundler/man/bundle-clean.1 +1 -1
  30. data/bundler/lib/bundler/man/bundle-config.1 +1 -1
  31. data/bundler/lib/bundler/man/bundle-console.1 +1 -1
  32. data/bundler/lib/bundler/man/bundle-doctor.1 +1 -1
  33. data/bundler/lib/bundler/man/bundle-exec.1 +2 -2
  34. data/bundler/lib/bundler/man/bundle-exec.1.ronn +2 -3
  35. data/bundler/lib/bundler/man/bundle-gem.1 +1 -1
  36. data/bundler/lib/bundler/man/bundle-help.1 +1 -1
  37. data/bundler/lib/bundler/man/bundle-info.1 +1 -1
  38. data/bundler/lib/bundler/man/bundle-init.1 +1 -1
  39. data/bundler/lib/bundler/man/bundle-inject.1 +1 -1
  40. data/bundler/lib/bundler/man/bundle-install.1 +1 -1
  41. data/bundler/lib/bundler/man/bundle-list.1 +1 -1
  42. data/bundler/lib/bundler/man/bundle-lock.1 +1 -1
  43. data/bundler/lib/bundler/man/bundle-open.1 +1 -1
  44. data/bundler/lib/bundler/man/bundle-outdated.1 +1 -1
  45. data/bundler/lib/bundler/man/bundle-platform.1 +1 -1
  46. data/bundler/lib/bundler/man/bundle-plugin.1 +17 -17
  47. data/bundler/lib/bundler/man/bundle-plugin.1.ronn +5 -5
  48. data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
  49. data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
  50. data/bundler/lib/bundler/man/bundle-show.1 +1 -1
  51. data/bundler/lib/bundler/man/bundle-update.1 +1 -1
  52. data/bundler/lib/bundler/man/bundle-version.1 +1 -1
  53. data/bundler/lib/bundler/man/bundle-viz.1 +1 -1
  54. data/bundler/lib/bundler/man/bundle.1 +1 -1
  55. data/bundler/lib/bundler/man/gemfile.5 +12 -1
  56. data/bundler/lib/bundler/man/gemfile.5.ronn +5 -0
  57. data/bundler/lib/bundler/plugin.rb +1 -1
  58. data/bundler/lib/bundler/resolver/package.rb +5 -0
  59. data/bundler/lib/bundler/resolver.rb +45 -10
  60. data/bundler/lib/bundler/retry.rb +1 -1
  61. data/bundler/lib/bundler/ruby_dsl.rb +23 -2
  62. data/bundler/lib/bundler/ruby_version.rb +8 -1
  63. data/bundler/lib/bundler/self_manager.rb +2 -0
  64. data/bundler/lib/bundler/settings.rb +86 -25
  65. data/bundler/lib/bundler/shared_helpers.rb +16 -1
  66. data/bundler/lib/bundler/source/git/git_proxy.rb +27 -6
  67. data/bundler/lib/bundler/source/rubygems.rb +22 -25
  68. data/bundler/lib/bundler/spec_set.rb +2 -2
  69. data/bundler/lib/bundler/stub_specification.rb +4 -2
  70. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +6 -2
  71. data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +1 -1
  72. data/bundler/lib/bundler/version.rb +1 -1
  73. data/bundler/lib/bundler/yaml_serializer.rb +6 -7
  74. data/lib/rubygems/available_set.rb +1 -1
  75. data/lib/rubygems/basic_specification.rb +3 -3
  76. data/lib/rubygems/command.rb +17 -20
  77. data/lib/rubygems/command_manager.rb +1 -1
  78. data/lib/rubygems/commands/cert_command.rb +3 -3
  79. data/lib/rubygems/commands/check_command.rb +5 -1
  80. data/lib/rubygems/commands/cleanup_command.rb +1 -1
  81. data/lib/rubygems/commands/contents_command.rb +1 -1
  82. data/lib/rubygems/commands/dependency_command.rb +3 -4
  83. data/lib/rubygems/commands/help_command.rb +2 -2
  84. data/lib/rubygems/commands/open_command.rb +1 -3
  85. data/lib/rubygems/commands/owner_command.rb +9 -11
  86. data/lib/rubygems/commands/setup_command.rb +8 -8
  87. data/lib/rubygems/commands/specification_command.rb +5 -1
  88. data/lib/rubygems/commands/stale_command.rb +1 -1
  89. data/lib/rubygems/commands/uninstall_command.rb +6 -7
  90. data/lib/rubygems/commands/unpack_command.rb +4 -6
  91. data/lib/rubygems/commands/update_command.rb +3 -3
  92. data/lib/rubygems/commands/yank_command.rb +1 -1
  93. data/lib/rubygems/config_file.rb +60 -13
  94. data/lib/rubygems/core_ext/kernel_gem.rb +2 -2
  95. data/lib/rubygems/core_ext/kernel_require.rb +1 -1
  96. data/lib/rubygems/core_ext/kernel_warn.rb +4 -5
  97. data/lib/rubygems/defaults.rb +6 -2
  98. data/lib/rubygems/dependency_installer.rb +8 -12
  99. data/lib/rubygems/deprecate.rb +4 -3
  100. data/lib/rubygems/doctor.rb +1 -1
  101. data/lib/rubygems/errors.rb +1 -1
  102. data/lib/rubygems/exceptions.rb +1 -1
  103. data/lib/rubygems/ext/builder.rb +5 -4
  104. data/lib/rubygems/ext/cargo_builder.rb +2 -2
  105. data/lib/rubygems/gem_runner.rb +5 -1
  106. data/lib/rubygems/gemcutter_utilities.rb +4 -4
  107. data/lib/rubygems/indexer.rb +1 -1
  108. data/lib/rubygems/install_update_options.rb +1 -1
  109. data/lib/rubygems/installer.rb +17 -19
  110. data/lib/rubygems/name_tuple.rb +1 -1
  111. data/lib/rubygems/package/old.rb +1 -1
  112. data/lib/rubygems/package/tar_reader/entry.rb +18 -20
  113. data/lib/rubygems/package/tar_reader.rb +0 -5
  114. data/lib/rubygems/package/tar_writer.rb +1 -1
  115. data/lib/rubygems/package.rb +18 -12
  116. data/lib/rubygems/platform.rb +6 -2
  117. data/lib/rubygems/query_utils.rb +5 -5
  118. data/lib/rubygems/remote_fetcher.rb +10 -2
  119. data/lib/rubygems/request_set/gem_dependency_api.rb +1 -1
  120. data/lib/rubygems/request_set.rb +2 -1
  121. data/lib/rubygems/requirement.rb +1 -1
  122. data/lib/rubygems/resolver/activation_request.rb +2 -4
  123. data/lib/rubygems/resolver/api_set.rb +2 -1
  124. data/lib/rubygems/resolver/api_specification.rb +1 -1
  125. data/lib/rubygems/resolver/installed_specification.rb +1 -1
  126. data/lib/rubygems/resolver/local_specification.rb +1 -1
  127. data/lib/rubygems/s3_uri_signer.rb +1 -1
  128. data/lib/rubygems/security/signer.rb +10 -2
  129. data/lib/rubygems/security/trust_dir.rb +8 -10
  130. data/lib/rubygems/security.rb +2 -2
  131. data/lib/rubygems/security_option.rb +1 -1
  132. data/lib/rubygems/source/local.rb +34 -37
  133. data/lib/rubygems/source.rb +7 -3
  134. data/lib/rubygems/source_list.rb +2 -2
  135. data/lib/rubygems/spec_fetcher.rb +29 -33
  136. data/lib/rubygems/specification.rb +43 -36
  137. data/lib/rubygems/specification_policy.rb +36 -35
  138. data/lib/rubygems/stub_specification.rb +13 -10
  139. data/lib/rubygems/uninstaller.rb +2 -2
  140. data/lib/rubygems/update_suggestion.rb +1 -1
  141. data/lib/rubygems/user_interaction.rb +2 -2
  142. data/lib/rubygems/util/licenses.rb +115 -0
  143. data/lib/rubygems/util.rb +5 -1
  144. data/lib/rubygems/validator.rb +5 -7
  145. data/lib/rubygems/version.rb +3 -2
  146. data/lib/rubygems/yaml_serializer.rb +88 -0
  147. data/lib/rubygems.rb +8 -10
  148. data/rubygems-update.gemspec +1 -1
  149. data/setup.rb +2 -0
  150. data/test/rubygems/bundler_test_gem.rb +6 -3
  151. data/test/rubygems/helper.rb +38 -32
  152. data/test/rubygems/package/tar_test_case.rb +2 -2
  153. data/test/rubygems/test_gem.rb +55 -30
  154. data/test/rubygems/test_gem_command.rb +3 -1
  155. data/test/rubygems/test_gem_commands_build_command.rb +2 -1
  156. data/test/rubygems/test_gem_commands_cert_command.rb +22 -22
  157. data/test/rubygems/test_gem_commands_cleanup_command.rb +2 -2
  158. data/test/rubygems/test_gem_commands_environment_command.rb +2 -1
  159. data/test/rubygems/test_gem_commands_exec_command.rb +5 -1
  160. data/test/rubygems/test_gem_commands_install_command.rb +3 -3
  161. data/test/rubygems/test_gem_commands_open_command.rb +5 -2
  162. data/test/rubygems/test_gem_commands_pristine_command.rb +2 -2
  163. data/test/rubygems/test_gem_commands_push_command.rb +7 -6
  164. data/test/rubygems/test_gem_commands_signin_command.rb +8 -8
  165. data/test/rubygems/test_gem_commands_stale_command.rb +1 -1
  166. data/test/rubygems/test_gem_commands_uninstall_command.rb +1 -1
  167. data/test/rubygems/test_gem_commands_unpack_command.rb +2 -2
  168. data/test/rubygems/test_gem_config_file.rb +46 -12
  169. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.lock +28 -12
  170. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.toml +1 -1
  171. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +16 -14
  172. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +1 -1
  173. data/test/rubygems/test_gem_ext_cargo_builder.rb +2 -2
  174. data/test/rubygems/test_gem_gemcutter_utilities.rb +8 -5
  175. data/test/rubygems/test_gem_indexer.rb +1 -1
  176. data/test/rubygems/test_gem_install_update_options.rb +3 -3
  177. data/test/rubygems/test_gem_installer.rb +15 -15
  178. data/test/rubygems/test_gem_package.rb +152 -36
  179. data/test/rubygems/test_gem_package_old.rb +1 -1
  180. data/test/rubygems/test_gem_package_tar_header.rb +10 -10
  181. data/test/rubygems/test_gem_package_tar_reader.rb +4 -4
  182. data/test/rubygems/test_gem_package_tar_reader_entry.rb +53 -1
  183. data/test/rubygems/test_gem_package_tar_writer.rb +41 -41
  184. data/test/rubygems/test_gem_rdoc.rb +2 -2
  185. data/test/rubygems/test_gem_remote_fetcher.rb +34 -34
  186. data/test/rubygems/test_gem_request.rb +5 -5
  187. data/test/rubygems/test_gem_request_connection_pools.rb +2 -1
  188. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +14 -7
  189. data/test/rubygems/test_gem_requirement.rb +1 -1
  190. data/test/rubygems/test_gem_security.rb +2 -2
  191. data/test/rubygems/test_gem_security_signer.rb +2 -2
  192. data/test/rubygems/test_gem_security_trust_dir.rb +6 -6
  193. data/test/rubygems/test_gem_spec_fetcher.rb +2 -2
  194. data/test/rubygems/test_gem_specification.rb +71 -35
  195. data/test/rubygems/test_gem_update_suggestion.rb +23 -23
  196. data/test/rubygems/test_gem_util.rb +2 -2
  197. data/test/rubygems/test_gem_version.rb +4 -2
  198. data/test/rubygems/test_require.rb +4 -6
  199. data/test/rubygems/utilities.rb +4 -3
  200. metadata +4 -3
@@ -1092,6 +1092,25 @@ dependencies: []
1092
1092
  assert_equal(yaml_defined, Object.const_defined?("YAML"))
1093
1093
  end
1094
1094
 
1095
+ def test_handles_dependencies_with_other_syck_requirements_argument_error
1096
+ yaml_defined = Object.const_defined?("YAML")
1097
+
1098
+ data = Marshal.dump(Gem::Specification.new do |s|
1099
+ v = Gem::Version.allocate
1100
+ v.instance_variable_set :@version, "YAML::Syck::DefaultKey"
1101
+ s.instance_variable_set :@version, v
1102
+ end)
1103
+
1104
+ assert_raise(ArgumentError) { Marshal.load(data) }
1105
+ out, err = capture_output do
1106
+ assert_raise(ArgumentError) { Marshal.load(data) }
1107
+ end
1108
+ assert_empty out
1109
+ assert_empty err
1110
+
1111
+ assert_equal(yaml_defined, Object.const_defined?("YAML"))
1112
+ end
1113
+
1095
1114
  def test_initialize
1096
1115
  spec = Gem::Specification.new do |s|
1097
1116
  s.name = "blah"
@@ -1453,15 +1472,15 @@ dependencies: []
1453
1472
  end
1454
1473
 
1455
1474
  FileUtils.mkdir_p File.join @ext.base_dir, "extensions"
1456
- FileUtils.chmod 0555, @ext.base_dir
1457
- FileUtils.chmod 0555, File.join(@ext.base_dir, "extensions")
1475
+ FileUtils.chmod 0o555, @ext.base_dir
1476
+ FileUtils.chmod 0o555, File.join(@ext.base_dir, "extensions")
1458
1477
 
1459
1478
  @ext.build_extensions
1460
1479
  assert_path_not_exist @ext.extension_dir
1461
1480
  ensure
1462
1481
  unless ($DEBUG || win_platform? || Process.uid.zero? || Gem.java_platform?)
1463
- FileUtils.chmod 0755, File.join(@ext.base_dir, "extensions")
1464
- FileUtils.chmod 0755, @ext.base_dir
1482
+ FileUtils.chmod 0o755, File.join(@ext.base_dir, "extensions")
1483
+ FileUtils.chmod 0o755, @ext.base_dir
1465
1484
  end
1466
1485
  end
1467
1486
 
@@ -1486,14 +1505,14 @@ dependencies: []
1486
1505
  end
1487
1506
 
1488
1507
  FileUtils.rm_r File.join @gemhome, "extensions"
1489
- FileUtils.chmod 0555, @gemhome
1508
+ FileUtils.chmod 0o555, @gemhome
1490
1509
 
1491
1510
  @ext.build_extensions
1492
1511
 
1493
1512
  gem_make_out = File.join @ext.extension_dir, "gem_make.out"
1494
1513
  assert_path_not_exist gem_make_out
1495
1514
  ensure
1496
- FileUtils.chmod 0755, @gemhome
1515
+ FileUtils.chmod 0o755, @gemhome
1497
1516
  end
1498
1517
 
1499
1518
  def test_build_extensions_none
@@ -1601,12 +1620,12 @@ dependencies: []
1601
1620
 
1602
1621
  def test_date_tolerates_hour_sec_zulu
1603
1622
  @a1.date = "2012-01-12 11:22:33.4444444 Z"
1604
- assert_equal Time.utc(2012,01,12,0,0,0), @a1.date
1623
+ assert_equal Time.utc(2012,0o1,12,0,0,0), @a1.date
1605
1624
  end
1606
1625
 
1607
1626
  def test_date_tolerates_hour_sec_and_timezone
1608
1627
  @a1.date = "2012-01-12 11:22:33.4444444 +02:33"
1609
- assert_equal Time.utc(2012,01,12,0,0,0), @a1.date
1628
+ assert_equal Time.utc(2012,0o1,12,0,0,0), @a1.date
1610
1629
  end
1611
1630
 
1612
1631
  def test_date_use_env_source_date_epoch
@@ -1693,8 +1712,8 @@ dependencies: []
1693
1712
  end
1694
1713
 
1695
1714
  def test_extension_dir
1696
- enable_shared, RbConfig::CONFIG["ENABLE_SHARED"] =
1697
- RbConfig::CONFIG["ENABLE_SHARED"], "no"
1715
+ enable_shared = RbConfig::CONFIG["ENABLE_SHARED"]
1716
+ RbConfig::CONFIG["ENABLE_SHARED"] = "no"
1698
1717
 
1699
1718
  ext_spec
1700
1719
 
@@ -1710,8 +1729,8 @@ dependencies: []
1710
1729
  end
1711
1730
 
1712
1731
  def test_extension_dir_override
1713
- enable_shared, RbConfig::CONFIG["ENABLE_SHARED"] =
1714
- RbConfig::CONFIG["ENABLE_SHARED"], "no"
1732
+ enable_shared = RbConfig::CONFIG["ENABLE_SHARED"]
1733
+ RbConfig::CONFIG["ENABLE_SHARED"] = "no"
1715
1734
 
1716
1735
  class << Gem
1717
1736
  alias orig_default_ext_dir_for default_ext_dir_for
@@ -2272,7 +2291,7 @@ dependencies: []
2272
2291
 
2273
2292
  Gem::Specification.new do |s|
2274
2293
  s.name = "a".freeze
2275
- s.version = "2"
2294
+ s.version = "2".freeze
2276
2295
 
2277
2296
  s.required_rubygems_version = Gem::Requirement.new(\"> 0\".freeze) if s.respond_to? :required_rubygems_version=
2278
2297
  s.require_paths = ["lib".freeze, "other".freeze]
@@ -2287,7 +2306,7 @@ Gem::Specification.new do |s|
2287
2306
 
2288
2307
  s.specification_version = #{Gem::Specification::CURRENT_SPECIFICATION_VERSION}
2289
2308
 
2290
- s.add_runtime_dependency(%q<b>.freeze, [\"= 1\"])
2309
+ s.add_runtime_dependency(%q<b>.freeze, [\"= 1\".freeze])
2291
2310
  end
2292
2311
  SPEC
2293
2312
 
@@ -2312,7 +2331,7 @@ end
2312
2331
 
2313
2332
  Gem::Specification.new do |s|
2314
2333
  s.name = "a".freeze
2315
- s.version = "2"
2334
+ s.version = "2".freeze
2316
2335
 
2317
2336
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
2318
2337
  s.require_paths = ["lib".freeze]
@@ -2345,7 +2364,7 @@ end
2345
2364
 
2346
2365
  Gem::Specification.new do |s|
2347
2366
  s.name = "a".freeze
2348
- s.version = "2"
2367
+ s.version = "2".freeze
2349
2368
 
2350
2369
  s.required_rubygems_version = Gem::Requirement.new(\"> 0\".freeze) if s.respond_to? :required_rubygems_version=
2351
2370
  s.require_paths = ["lib".freeze]
@@ -2357,11 +2376,11 @@ Gem::Specification.new do |s|
2357
2376
  s.rubygems_version = "#{Gem::VERSION}".freeze
2358
2377
  s.summary = "this is a summary".freeze
2359
2378
 
2360
- s.installed_by_version = "#{Gem::VERSION}" if s.respond_to? :installed_by_version
2379
+ s.installed_by_version = "#{Gem::VERSION}".freeze if s.respond_to? :installed_by_version
2361
2380
 
2362
2381
  s.specification_version = #{Gem::Specification::CURRENT_SPECIFICATION_VERSION}
2363
2382
 
2364
- s.add_runtime_dependency(%q<b>.freeze, [\"= 1\"])
2383
+ s.add_runtime_dependency(%q<b>.freeze, ["= 1".freeze])
2365
2384
  end
2366
2385
  SPEC
2367
2386
 
@@ -2381,7 +2400,7 @@ end
2381
2400
  ruby_code = @c1.to_ruby
2382
2401
 
2383
2402
  local = Gem::Platform.local
2384
- expected_platform = "[#{local.cpu.inspect}, #{local.os.inspect}, #{local.version.inspect}]"
2403
+ expected_platform = "[#{local.cpu.inspect}.freeze, #{local.os.inspect}.freeze, #{local.version.inspect}.freeze]"
2385
2404
  stub_require_paths =
2386
2405
  @c1.instance_variable_get(:@require_paths).join "\u0000"
2387
2406
  extensions = @c1.extensions.join "\u0000"
@@ -2393,7 +2412,7 @@ end
2393
2412
 
2394
2413
  Gem::Specification.new do |s|
2395
2414
  s.name = "a".freeze
2396
- s.version = "1"
2415
+ s.version = "1".freeze
2397
2416
  s.platform = Gem::Platform.new(#{expected_platform})
2398
2417
 
2399
2418
  s.required_rubygems_version = Gem::Requirement.new(\">= 0\".freeze) if s.respond_to? :required_rubygems_version=
@@ -2414,9 +2433,9 @@ Gem::Specification.new do |s|
2414
2433
 
2415
2434
  s.specification_version = 4
2416
2435
 
2417
- s.add_runtime_dependency(%q<rake>.freeze, [\"> 0.4\"])
2418
- s.add_runtime_dependency(%q<jabber4r>.freeze, [\"> 0.0.0\"])
2419
- s.add_runtime_dependency(%q<pqa>.freeze, [\"> 0.4\", \"<= 0.6\"])
2436
+ s.add_runtime_dependency(%q<rake>.freeze, [\"> 0.4\".freeze])
2437
+ s.add_runtime_dependency(%q<jabber4r>.freeze, [\"> 0.0.0\".freeze])
2438
+ s.add_runtime_dependency(%q<pqa>.freeze, [\"> 0.4\".freeze, \"<= 0.6\".freeze])
2420
2439
  end
2421
2440
  SPEC
2422
2441
 
@@ -2432,7 +2451,7 @@ end
2432
2451
  s.add_dependency "b", ["~> 1.0", ">= 1.0.0"]
2433
2452
  end
2434
2453
 
2435
- assert_includes spec.to_ruby, '"~> 1.0", ">= 1.0.0"'
2454
+ assert_includes spec.to_ruby, '"~> 1.0".freeze, ">= 1.0.0".freeze'
2436
2455
  end
2437
2456
 
2438
2457
  def test_to_ruby_legacy
@@ -3075,10 +3094,22 @@ Please report a bug if this causes problems.
3075
3094
 
3076
3095
  assert_match <<-WARNING, @ui.error
3077
3096
  WARNING: licenses is empty, but is recommended. Use a license identifier from
3078
- http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
3097
+ http://spdx.org/licenses or 'Nonstandard' for a nonstandard license,
3098
+ or set it to nil if you don't want to specify a license.
3079
3099
  WARNING
3080
3100
  end
3081
3101
 
3102
+ def test_validate_nil_license
3103
+ util_setup_validate
3104
+
3105
+ use_ui @ui do
3106
+ @a1.license = nil
3107
+ @a1.validate
3108
+ end
3109
+
3110
+ assert_empty @ui.error
3111
+ end
3112
+
3082
3113
  def test_validate_license_in_a_non_packaging_context
3083
3114
  util_setup_validate
3084
3115
 
@@ -3115,7 +3146,8 @@ http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
3115
3146
 
3116
3147
  assert_match <<-WARNING, @ui.error
3117
3148
  WARNING: license value 'BSD' is invalid. Use a license identifier from
3118
- http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
3149
+ http://spdx.org/licenses or 'Nonstandard' for a nonstandard license,
3150
+ or set it to nil if you don't want to specify a license.
3119
3151
  WARNING
3120
3152
  end
3121
3153
 
@@ -3173,11 +3205,13 @@ http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
3173
3205
 
3174
3206
  assert_match <<-WARNING, @ui.error
3175
3207
  WARNING: license value 'GPL-2.0+ FOO' is invalid. Use a license identifier from
3176
- http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
3208
+ http://spdx.org/licenses or 'Nonstandard' for a nonstandard license,
3209
+ or set it to nil if you don't want to specify a license.
3177
3210
  WARNING
3178
3211
  assert_match <<-WARNING, @ui.error
3179
3212
  WARNING: license value 'GPL-2.0 FOO' is invalid. Use a license identifier from
3180
- http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
3213
+ http://spdx.org/licenses or 'Nonstandard' for a nonstandard license,
3214
+ or set it to nil if you don't want to specify a license.
3181
3215
  WARNING
3182
3216
  end
3183
3217
 
@@ -3191,7 +3225,8 @@ http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
3191
3225
 
3192
3226
  assert_match <<-WARNING, @ui.error
3193
3227
  WARNING: license value 'GPL-2.0+ WITH Autocofn-exception-2.0' is invalid. Use a license identifier from
3194
- http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
3228
+ http://spdx.org/licenses or 'Nonstandard' for a nonstandard license,
3229
+ or set it to nil if you don't want to specify a license.
3195
3230
  WARNING
3196
3231
  end
3197
3232
 
@@ -3205,7 +3240,8 @@ http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
3205
3240
 
3206
3241
  assert_match <<-WARNING, @ui.error
3207
3242
  WARNING: license value 'ruby' is invalid. Use a license identifier from
3208
- http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
3243
+ http://spdx.org/licenses or 'Nonstandard' for a nonstandard license,
3244
+ or set it to nil if you don't want to specify a license.
3209
3245
  Did you mean 'Ruby'?
3210
3246
  WARNING
3211
3247
  end
@@ -3314,8 +3350,8 @@ Did you mean 'Ruby'?
3314
3350
  util_setup_validate
3315
3351
 
3316
3352
  Dir.chdir @tempdir do
3317
- File.chmod 0640, File.join("lib", "code.rb")
3318
- File.chmod 0640, File.join("bin", "exec")
3353
+ File.chmod 0o640, File.join("lib", "code.rb")
3354
+ File.chmod 0o640, File.join("bin", "exec")
3319
3355
 
3320
3356
  use_ui @ui do
3321
3357
  @a1.validate
@@ -3463,7 +3499,7 @@ Did you mean 'Ruby'?
3463
3499
  capture_output do
3464
3500
  Gem::Specification.load(specfile.path)
3465
3501
  end
3466
- rescue => e
3502
+ rescue StandardError => e
3467
3503
  name_rexp = Regexp.new(Regexp.escape(specfile.path))
3468
3504
  assert e.backtrace.grep(name_rexp).any?
3469
3505
  end
@@ -3618,7 +3654,7 @@ Did you mean 'Ruby'?
3618
3654
 
3619
3655
  Gem::Specification.new do |s|
3620
3656
  s.name = "m".freeze
3621
- s.version = "1"
3657
+ s.version = "1".freeze
3622
3658
 
3623
3659
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
3624
3660
  s.metadata = { "one" => "two", "two" => "three" } if s.respond_to? :metadata=
@@ -3809,7 +3845,7 @@ end
3809
3845
  FileUtils.touch File.join("lib", "code.rb")
3810
3846
  FileUtils.touch File.join("test", "suite.rb")
3811
3847
 
3812
- File.open "bin/exec", "w", 0755 do |fp|
3848
+ File.open "bin/exec", "w", 0o755 do |fp|
3813
3849
  fp.puts "#!#{Gem.ruby}"
3814
3850
  end
3815
3851
  ensure
@@ -29,9 +29,12 @@ class TestUpdateSuggestion < Gem::TestCase
29
29
  reset_last_update_check: true,
30
30
  cmd:
31
31
  )
32
- original_config, Gem.configuration[:prevent_update_suggestion] = Gem.configuration[:prevent_update_suggestion], nil
33
- original_env, ENV["RUBYGEMS_PREVENT_UPDATE_SUGGESTION"] = ENV["RUBYGEMS_PREVENT_UPDATE_SUGGESTION"], nil
34
- original_disable, Gem.disable_system_update_message = Gem.disable_system_update_message, nil
32
+ original_config = Gem.configuration[:prevent_update_suggestion]
33
+ Gem.configuration[:prevent_update_suggestion] = nil
34
+ original_env = ENV["RUBYGEMS_PREVENT_UPDATE_SUGGESTION"]
35
+ ENV["RUBYGEMS_PREVENT_UPDATE_SUGGESTION"] = nil
36
+ original_disable = Gem.disable_system_update_message
37
+ Gem.disable_system_update_message = nil
35
38
  Gem.configuration.last_update_check = 0 if reset_last_update_check
36
39
 
37
40
  Gem.ui.stub :tty?, tty do
@@ -64,9 +67,9 @@ class TestUpdateSuggestion < Gem::TestCase
64
67
 
65
68
  def test_eglible_for_update
66
69
  with_eglible_environment(cmd: @cmd) do
67
- Time.stub :now, 123456789 do
70
+ Time.stub :now, 123_456_789 do
68
71
  assert @cmd.eglible_for_update?
69
- assert_equal Gem.configuration.last_update_check, 123456789
72
+ assert_equal Gem.configuration.last_update_check, 123_456_789
70
73
 
71
74
  # test last check is written to config file
72
75
  assert File.read(Gem.configuration.state_file_name).match("123456789")
@@ -143,23 +146,21 @@ class TestUpdateSuggestion < Gem::TestCase
143
146
 
144
147
  def test_eglible_for_update_prevent_config
145
148
  with_eglible_environment(cmd: @cmd) do
146
- begin
147
- original_config, Gem.configuration[:prevent_update_suggestion] = Gem.configuration[:prevent_update_suggestion], true
148
- refute @cmd.eglible_for_update?
149
- ensure
150
- Gem.configuration[:prevent_update_suggestion] = original_config
151
- end
149
+ original_config = Gem.configuration[:prevent_update_suggestion]
150
+ Gem.configuration[:prevent_update_suggestion] = true
151
+ refute @cmd.eglible_for_update?
152
+ ensure
153
+ Gem.configuration[:prevent_update_suggestion] = original_config
152
154
  end
153
155
  end
154
156
 
155
157
  def test_eglible_for_update_prevent_env
156
158
  with_eglible_environment(cmd: @cmd) do
157
- begin
158
- original_env, ENV["RUBYGEMS_PREVENT_UPDATE_SUGGESTION"] = ENV["RUBYGEMS_PREVENT_UPDATE_SUGGESTION"], "yes"
159
- refute @cmd.eglible_for_update?
160
- ensure
161
- ENV["RUBYGEMS_PREVENT_UPDATE_SUGGESTION"] = original_env
162
- end
159
+ original_env = ENV["RUBYGEMS_PREVENT_UPDATE_SUGGESTION"]
160
+ ENV["RUBYGEMS_PREVENT_UPDATE_SUGGESTION"] = "yes"
161
+ refute @cmd.eglible_for_update?
162
+ ensure
163
+ ENV["RUBYGEMS_PREVENT_UPDATE_SUGGESTION"] = original_env
163
164
  end
164
165
  end
165
166
 
@@ -177,12 +178,11 @@ class TestUpdateSuggestion < Gem::TestCase
177
178
 
178
179
  def test_eglible_for_update_disabled_update
179
180
  with_eglible_environment(cmd: @cmd) do
180
- begin
181
- original_disable, Gem.disable_system_update_message = Gem.disable_system_update_message, "disabled"
182
- refute @cmd.eglible_for_update?
183
- ensure
184
- Gem.disable_system_update_message = original_disable
185
- end
181
+ original_disable = Gem.disable_system_update_message
182
+ Gem.disable_system_update_message = "disabled"
183
+ refute @cmd.eglible_for_update?
184
+ ensure
185
+ Gem.disable_system_update_message = original_disable
186
186
  end
187
187
  end
188
188
 
@@ -41,7 +41,7 @@ class TestGemUtil < Gem::TestCase
41
41
  FileUtils.mkdir_p "d/e/f"
42
42
  # remove 'execute' permission from "e" directory and make it
43
43
  # impossible to cd into it and its children
44
- FileUtils.chmod(0666, "d/e")
44
+ FileUtils.chmod(0o666, "d/e")
45
45
 
46
46
  pend "skipped in root privilege" if Process.uid.zero?
47
47
 
@@ -53,7 +53,7 @@ class TestGemUtil < Gem::TestCase
53
53
  assert_equal File.realpath("../..", @tempdir), paths[3]
54
54
  ensure
55
55
  # restore default permissions, allow the directory to be removed
56
- FileUtils.chmod(0775, "d/e") unless win_platform? || java_platform?
56
+ FileUtils.chmod(0o775, "d/e") unless win_platform? || java_platform?
57
57
  end
58
58
 
59
59
  def test_linked_list_find
@@ -269,7 +269,8 @@ class TestGemVersion < Gem::TestCase
269
269
  # Assert that two versions are eql?. Checks both directions.
270
270
 
271
271
  def assert_version_eql(first, second)
272
- first, second = v(first), v(second)
272
+ first = v(first)
273
+ second = v(second)
273
274
  assert first.eql?(second), "#{first} is eql? #{second}"
274
275
  assert second.eql?(first), "#{second} is eql? #{first}"
275
276
  end
@@ -290,7 +291,8 @@ class TestGemVersion < Gem::TestCase
290
291
  # directions.
291
292
 
292
293
  def refute_version_eql(first, second)
293
- first, second = v(first), v(second)
294
+ first = v(first)
295
+ second = v(second)
294
296
  refute first.eql?(second), "#{first} is NOT eql? #{second}"
295
297
  refute second.eql?(first), "#{second} is NOT eql? #{first}"
296
298
  end
@@ -92,12 +92,10 @@ class TestGemRequire < Gem::TestCase
92
92
 
93
93
  def create_sync_thread
94
94
  Thread.new do
95
- begin
96
- yield
97
- ensure
98
- FILE_ENTERED_LATCH.release
99
- FILE_EXIT_LATCH.await
100
- end
95
+ yield
96
+ ensure
97
+ FILE_ENTERED_LATCH.release
98
+ FILE_EXIT_LATCH.await
101
99
  end
102
100
  end
103
101
 
@@ -55,7 +55,7 @@ class Gem::FakeFetcher
55
55
  raise Gem::RemoteFetcher::FetchError.new("no data for #{path}", path)
56
56
  end
57
57
 
58
- if @data[path].kind_of?(Array)
58
+ if @data[path].is_a?(Array)
59
59
  @data[path].shift
60
60
  else
61
61
  @data[path]
@@ -65,7 +65,7 @@ class Gem::FakeFetcher
65
65
  def create_response(uri)
66
66
  data = find_data(uri)
67
67
  response = data.respond_to?(:call) ? data.call : data
68
- raise TypeError, "#{response.class} is not a type of Net::HTTPResponse" unless response.kind_of?(Net::HTTPResponse)
68
+ raise TypeError, "#{response.class} is not a type of Net::HTTPResponse" unless response.is_a?(Net::HTTPResponse)
69
69
 
70
70
  response
71
71
  end
@@ -366,7 +366,8 @@ class Gem::TestCase::SpecFetcherSetup
366
366
  Gem::Specification.reset
367
367
 
368
368
  begin
369
- gem_repo, @test.gem_repo = @test.gem_repo, @repository
369
+ gem_repo = @test.gem_repo
370
+ @test.gem_repo = @repository
370
371
  @test.uri = URI @repository
371
372
 
372
373
  @test.util_setup_spec_fetcher(*@downloaded)
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.4.19
4
+ version: 3.4.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jim Weirich
@@ -16,7 +16,7 @@ authors:
16
16
  autorequire:
17
17
  bindir: exe
18
18
  cert_chain: []
19
- date: 2023-08-17 00:00:00.000000000 Z
19
+ date: 2023-10-17 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
@@ -627,6 +627,7 @@ files:
627
627
  - lib/rubygems/validator.rb
628
628
  - lib/rubygems/version.rb
629
629
  - lib/rubygems/version_option.rb
630
+ - lib/rubygems/yaml_serializer.rb
630
631
  - rubygems-update.gemspec
631
632
  - setup.rb
632
633
  - test/rubygems/alternate_cert.pem
@@ -872,7 +873,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
872
873
  - !ruby/object:Gem::Version
873
874
  version: '0'
874
875
  requirements: []
875
- rubygems_version: 3.4.19
876
+ rubygems_version: 3.4.21
876
877
  signing_key:
877
878
  specification_version: 4
878
879
  summary: RubyGems is a package management framework for Ruby. This gem is downloaded