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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +58 -0
- data/Manifest.txt +1 -0
- data/bundler/CHANGELOG.md +62 -2
- data/bundler/lib/bundler/build_metadata.rb +3 -3
- data/bundler/lib/bundler/cli/check.rb +1 -1
- data/bundler/lib/bundler/cli/gem.rb +1 -3
- data/bundler/lib/bundler/cli/info.rb +1 -1
- data/bundler/lib/bundler/cli/install.rb +2 -2
- data/bundler/lib/bundler/cli/lock.rb +26 -23
- data/bundler/lib/bundler/cli/open.rb +5 -7
- data/bundler/lib/bundler/cli/update.rb +1 -0
- data/bundler/lib/bundler/definition.rb +42 -25
- data/bundler/lib/bundler/env.rb +2 -2
- data/bundler/lib/bundler/fetcher/base.rb +2 -2
- data/bundler/lib/bundler/fetcher/compact_index.rb +1 -5
- data/bundler/lib/bundler/fetcher/dependency.rb +1 -1
- data/bundler/lib/bundler/fetcher.rb +31 -30
- data/bundler/lib/bundler/gem_version_promoter.rb +2 -2
- data/bundler/lib/bundler/index.rb +62 -31
- data/bundler/lib/bundler/injector.rb +1 -1
- data/bundler/lib/bundler/installer/parallel_installer.rb +0 -26
- data/bundler/lib/bundler/installer/standalone.rb +15 -1
- data/bundler/lib/bundler/lockfile_parser.rb +32 -39
- data/bundler/lib/bundler/man/bundle-add.1 +1 -1
- data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
- data/bundler/lib/bundler/man/bundle-cache.1 +1 -1
- data/bundler/lib/bundler/man/bundle-check.1 +1 -1
- data/bundler/lib/bundler/man/bundle-clean.1 +1 -1
- data/bundler/lib/bundler/man/bundle-config.1 +1 -1
- data/bundler/lib/bundler/man/bundle-console.1 +1 -1
- data/bundler/lib/bundler/man/bundle-doctor.1 +1 -1
- data/bundler/lib/bundler/man/bundle-exec.1 +2 -2
- data/bundler/lib/bundler/man/bundle-exec.1.ronn +2 -3
- data/bundler/lib/bundler/man/bundle-gem.1 +1 -1
- data/bundler/lib/bundler/man/bundle-help.1 +1 -1
- data/bundler/lib/bundler/man/bundle-info.1 +1 -1
- data/bundler/lib/bundler/man/bundle-init.1 +1 -1
- data/bundler/lib/bundler/man/bundle-inject.1 +1 -1
- data/bundler/lib/bundler/man/bundle-install.1 +1 -1
- data/bundler/lib/bundler/man/bundle-list.1 +1 -1
- data/bundler/lib/bundler/man/bundle-lock.1 +1 -1
- data/bundler/lib/bundler/man/bundle-open.1 +1 -1
- data/bundler/lib/bundler/man/bundle-outdated.1 +1 -1
- data/bundler/lib/bundler/man/bundle-platform.1 +1 -1
- data/bundler/lib/bundler/man/bundle-plugin.1 +17 -17
- data/bundler/lib/bundler/man/bundle-plugin.1.ronn +5 -5
- data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
- data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
- data/bundler/lib/bundler/man/bundle-show.1 +1 -1
- data/bundler/lib/bundler/man/bundle-update.1 +1 -1
- data/bundler/lib/bundler/man/bundle-version.1 +1 -1
- data/bundler/lib/bundler/man/bundle-viz.1 +1 -1
- data/bundler/lib/bundler/man/bundle.1 +1 -1
- data/bundler/lib/bundler/man/gemfile.5 +12 -1
- data/bundler/lib/bundler/man/gemfile.5.ronn +5 -0
- data/bundler/lib/bundler/plugin.rb +1 -1
- data/bundler/lib/bundler/resolver/package.rb +5 -0
- data/bundler/lib/bundler/resolver.rb +45 -10
- data/bundler/lib/bundler/retry.rb +1 -1
- data/bundler/lib/bundler/ruby_dsl.rb +23 -2
- data/bundler/lib/bundler/ruby_version.rb +8 -1
- data/bundler/lib/bundler/self_manager.rb +2 -0
- data/bundler/lib/bundler/settings.rb +86 -25
- data/bundler/lib/bundler/shared_helpers.rb +16 -1
- data/bundler/lib/bundler/source/git/git_proxy.rb +27 -6
- data/bundler/lib/bundler/source/rubygems.rb +22 -25
- data/bundler/lib/bundler/spec_set.rb +2 -2
- data/bundler/lib/bundler/stub_specification.rb +4 -2
- data/bundler/lib/bundler/templates/newgem/Rakefile.tt +6 -2
- data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +1 -1
- data/bundler/lib/bundler/version.rb +1 -1
- data/bundler/lib/bundler/yaml_serializer.rb +6 -7
- data/lib/rubygems/available_set.rb +1 -1
- data/lib/rubygems/basic_specification.rb +3 -3
- data/lib/rubygems/command.rb +17 -20
- data/lib/rubygems/command_manager.rb +1 -1
- data/lib/rubygems/commands/cert_command.rb +3 -3
- data/lib/rubygems/commands/check_command.rb +5 -1
- data/lib/rubygems/commands/cleanup_command.rb +1 -1
- data/lib/rubygems/commands/contents_command.rb +1 -1
- data/lib/rubygems/commands/dependency_command.rb +3 -4
- data/lib/rubygems/commands/help_command.rb +2 -2
- data/lib/rubygems/commands/open_command.rb +1 -3
- data/lib/rubygems/commands/owner_command.rb +9 -11
- data/lib/rubygems/commands/setup_command.rb +8 -8
- data/lib/rubygems/commands/specification_command.rb +5 -1
- data/lib/rubygems/commands/stale_command.rb +1 -1
- data/lib/rubygems/commands/uninstall_command.rb +6 -7
- data/lib/rubygems/commands/unpack_command.rb +4 -6
- data/lib/rubygems/commands/update_command.rb +3 -3
- data/lib/rubygems/commands/yank_command.rb +1 -1
- data/lib/rubygems/config_file.rb +60 -13
- data/lib/rubygems/core_ext/kernel_gem.rb +2 -2
- data/lib/rubygems/core_ext/kernel_require.rb +1 -1
- data/lib/rubygems/core_ext/kernel_warn.rb +4 -5
- data/lib/rubygems/defaults.rb +6 -2
- data/lib/rubygems/dependency_installer.rb +8 -12
- data/lib/rubygems/deprecate.rb +4 -3
- data/lib/rubygems/doctor.rb +1 -1
- data/lib/rubygems/errors.rb +1 -1
- data/lib/rubygems/exceptions.rb +1 -1
- data/lib/rubygems/ext/builder.rb +5 -4
- data/lib/rubygems/ext/cargo_builder.rb +2 -2
- data/lib/rubygems/gem_runner.rb +5 -1
- data/lib/rubygems/gemcutter_utilities.rb +4 -4
- data/lib/rubygems/indexer.rb +1 -1
- data/lib/rubygems/install_update_options.rb +1 -1
- data/lib/rubygems/installer.rb +17 -19
- data/lib/rubygems/name_tuple.rb +1 -1
- data/lib/rubygems/package/old.rb +1 -1
- data/lib/rubygems/package/tar_reader/entry.rb +18 -20
- data/lib/rubygems/package/tar_reader.rb +0 -5
- data/lib/rubygems/package/tar_writer.rb +1 -1
- data/lib/rubygems/package.rb +18 -12
- data/lib/rubygems/platform.rb +6 -2
- data/lib/rubygems/query_utils.rb +5 -5
- data/lib/rubygems/remote_fetcher.rb +10 -2
- data/lib/rubygems/request_set/gem_dependency_api.rb +1 -1
- data/lib/rubygems/request_set.rb +2 -1
- data/lib/rubygems/requirement.rb +1 -1
- data/lib/rubygems/resolver/activation_request.rb +2 -4
- data/lib/rubygems/resolver/api_set.rb +2 -1
- data/lib/rubygems/resolver/api_specification.rb +1 -1
- data/lib/rubygems/resolver/installed_specification.rb +1 -1
- data/lib/rubygems/resolver/local_specification.rb +1 -1
- data/lib/rubygems/s3_uri_signer.rb +1 -1
- data/lib/rubygems/security/signer.rb +10 -2
- data/lib/rubygems/security/trust_dir.rb +8 -10
- data/lib/rubygems/security.rb +2 -2
- data/lib/rubygems/security_option.rb +1 -1
- data/lib/rubygems/source/local.rb +34 -37
- data/lib/rubygems/source.rb +7 -3
- data/lib/rubygems/source_list.rb +2 -2
- data/lib/rubygems/spec_fetcher.rb +29 -33
- data/lib/rubygems/specification.rb +43 -36
- data/lib/rubygems/specification_policy.rb +36 -35
- data/lib/rubygems/stub_specification.rb +13 -10
- data/lib/rubygems/uninstaller.rb +2 -2
- data/lib/rubygems/update_suggestion.rb +1 -1
- data/lib/rubygems/user_interaction.rb +2 -2
- data/lib/rubygems/util/licenses.rb +115 -0
- data/lib/rubygems/util.rb +5 -1
- data/lib/rubygems/validator.rb +5 -7
- data/lib/rubygems/version.rb +3 -2
- data/lib/rubygems/yaml_serializer.rb +88 -0
- data/lib/rubygems.rb +8 -10
- data/rubygems-update.gemspec +1 -1
- data/setup.rb +2 -0
- data/test/rubygems/bundler_test_gem.rb +6 -3
- data/test/rubygems/helper.rb +38 -32
- data/test/rubygems/package/tar_test_case.rb +2 -2
- data/test/rubygems/test_gem.rb +55 -30
- data/test/rubygems/test_gem_command.rb +3 -1
- data/test/rubygems/test_gem_commands_build_command.rb +2 -1
- data/test/rubygems/test_gem_commands_cert_command.rb +22 -22
- data/test/rubygems/test_gem_commands_cleanup_command.rb +2 -2
- data/test/rubygems/test_gem_commands_environment_command.rb +2 -1
- data/test/rubygems/test_gem_commands_exec_command.rb +5 -1
- data/test/rubygems/test_gem_commands_install_command.rb +3 -3
- data/test/rubygems/test_gem_commands_open_command.rb +5 -2
- data/test/rubygems/test_gem_commands_pristine_command.rb +2 -2
- data/test/rubygems/test_gem_commands_push_command.rb +7 -6
- data/test/rubygems/test_gem_commands_signin_command.rb +8 -8
- data/test/rubygems/test_gem_commands_stale_command.rb +1 -1
- data/test/rubygems/test_gem_commands_uninstall_command.rb +1 -1
- data/test/rubygems/test_gem_commands_unpack_command.rb +2 -2
- data/test/rubygems/test_gem_config_file.rb +46 -12
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.lock +28 -12
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.toml +1 -1
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +16 -14
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +1 -1
- data/test/rubygems/test_gem_ext_cargo_builder.rb +2 -2
- data/test/rubygems/test_gem_gemcutter_utilities.rb +8 -5
- data/test/rubygems/test_gem_indexer.rb +1 -1
- data/test/rubygems/test_gem_install_update_options.rb +3 -3
- data/test/rubygems/test_gem_installer.rb +15 -15
- data/test/rubygems/test_gem_package.rb +152 -36
- data/test/rubygems/test_gem_package_old.rb +1 -1
- data/test/rubygems/test_gem_package_tar_header.rb +10 -10
- data/test/rubygems/test_gem_package_tar_reader.rb +4 -4
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +53 -1
- data/test/rubygems/test_gem_package_tar_writer.rb +41 -41
- data/test/rubygems/test_gem_rdoc.rb +2 -2
- data/test/rubygems/test_gem_remote_fetcher.rb +34 -34
- data/test/rubygems/test_gem_request.rb +5 -5
- data/test/rubygems/test_gem_request_connection_pools.rb +2 -1
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +14 -7
- data/test/rubygems/test_gem_requirement.rb +1 -1
- data/test/rubygems/test_gem_security.rb +2 -2
- data/test/rubygems/test_gem_security_signer.rb +2 -2
- data/test/rubygems/test_gem_security_trust_dir.rb +6 -6
- data/test/rubygems/test_gem_spec_fetcher.rb +2 -2
- data/test/rubygems/test_gem_specification.rb +71 -35
- data/test/rubygems/test_gem_update_suggestion.rb +23 -23
- data/test/rubygems/test_gem_util.rb +2 -2
- data/test/rubygems/test_gem_version.rb +4 -2
- data/test/rubygems/test_require.rb +4 -6
- data/test/rubygems/utilities.rb +4 -3
- 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
|
1457
|
-
FileUtils.chmod
|
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
|
1464
|
-
FileUtils.chmod
|
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
|
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
|
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,
|
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,
|
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
|
1697
|
-
|
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
|
1714
|
-
|
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, [
|
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
|
3318
|
-
File.chmod
|
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",
|
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
|
33
|
-
|
34
|
-
|
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,
|
70
|
+
Time.stub :now, 123_456_789 do
|
68
71
|
assert @cmd.eglible_for_update?
|
69
|
-
assert_equal Gem.configuration.last_update_check,
|
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
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
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
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
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
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
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(
|
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(
|
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
|
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
|
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
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
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
|
|
data/test/rubygems/utilities.rb
CHANGED
@@ -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].
|
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.
|
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
|
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.
|
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-
|
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.
|
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
|