rubygems-update 2.7.6 → 2.7.11
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +2 -23
- data/History.txt +116 -0
- data/Manifest.txt +3 -3
- data/Rakefile +12 -2
- data/bundler/CHANGELOG.md +130 -0
- data/bundler/README.md +5 -1
- data/bundler/bundler.gemspec +2 -1
- data/bundler/lib/bundler.rb +12 -8
- data/bundler/lib/bundler/build_metadata.rb +19 -2
- data/bundler/lib/bundler/cli.rb +3 -1
- data/bundler/lib/bundler/cli/check.rb +1 -1
- data/bundler/lib/bundler/cli/exec.rb +4 -4
- data/bundler/lib/bundler/cli/gem.rb +5 -2
- data/bundler/lib/bundler/cli/init.rb +5 -0
- data/bundler/lib/bundler/cli/install.rb +2 -2
- data/bundler/lib/bundler/cli/outdated.rb +1 -1
- data/bundler/lib/bundler/cli/update.rb +3 -3
- data/bundler/lib/bundler/compact_index_client/updater.rb +10 -1
- data/bundler/lib/bundler/current_ruby.rb +8 -1
- data/bundler/lib/bundler/definition.rb +33 -23
- data/bundler/lib/bundler/dep_proxy.rb +2 -2
- data/bundler/lib/bundler/dependency.rb +1 -0
- data/bundler/lib/bundler/deprecate.rb +2 -1
- data/bundler/lib/bundler/endpoint_specification.rb +1 -1
- data/bundler/lib/bundler/env.rb +10 -8
- data/bundler/lib/bundler/fetcher.rb +3 -3
- data/bundler/lib/bundler/fetcher/downloader.rb +10 -5
- data/bundler/lib/bundler/fetcher/index.rb +2 -2
- data/bundler/lib/bundler/friendly_errors.rb +2 -0
- data/bundler/lib/bundler/gem_helper.rb +1 -1
- data/bundler/lib/bundler/gem_version_promoter.rb +12 -0
- data/bundler/lib/bundler/injector.rb +5 -5
- data/bundler/lib/bundler/installer.rb +12 -4
- data/bundler/lib/bundler/installer/gem_installer.rb +9 -2
- data/bundler/lib/bundler/installer/parallel_installer.rb +1 -1
- data/bundler/lib/bundler/lazy_specification.rb +1 -1
- data/bundler/lib/bundler/mirror.rb +2 -2
- data/bundler/lib/bundler/plugin.rb +2 -2
- data/bundler/lib/bundler/plugin/index.rb +7 -2
- data/bundler/lib/bundler/process_lock.rb +1 -1
- data/bundler/lib/bundler/resolver.rb +10 -9
- data/bundler/lib/bundler/resolver/spec_group.rb +0 -5
- data/bundler/lib/bundler/ruby_version.rb +1 -1
- data/bundler/lib/bundler/rubygems_integration.rb +9 -3
- data/bundler/lib/bundler/runtime.rb +2 -2
- data/bundler/lib/bundler/shared_helpers.rb +15 -3
- data/bundler/lib/bundler/source/git.rb +2 -1
- data/bundler/lib/bundler/source/git/git_proxy.rb +6 -1
- data/bundler/lib/bundler/source/metadata.rb +1 -1
- data/bundler/lib/bundler/source/rubygems.rb +11 -2
- data/bundler/lib/bundler/source/rubygems/remote.rb +4 -1
- data/bundler/lib/bundler/spec_set.rb +4 -1
- data/bundler/lib/bundler/templates/Executable +1 -1
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +8 -2
- data/bundler/lib/bundler/templates/newgem/travis.yml.tt +2 -0
- data/bundler/lib/bundler/ui/shell.rb +3 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +11 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +7 -2
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +1 -1
- data/bundler/lib/bundler/version.rb +1 -1
- data/bundler/man/bundle-binstubs.ronn +3 -3
- data/bundler/man/bundle-check.ronn +3 -3
- data/bundler/man/bundle-config.ronn +13 -9
- data/bundler/man/bundle-doctor.ronn +33 -0
- data/bundler/man/bundle-exec.ronn +3 -3
- data/bundler/man/bundle-gem.ronn +1 -1
- data/bundler/man/bundle-init.ronn +15 -4
- data/bundler/man/bundle-inject.ronn +3 -3
- data/bundler/man/bundle-install.ronn +12 -3
- data/bundler/man/bundle-lock.ronn +1 -1
- data/bundler/man/bundle-outdated.ronn +1 -1
- data/bundler/man/bundle-package.ronn +3 -3
- data/bundler/man/bundle-show.ronn +3 -2
- data/bundler/man/bundle-update.ronn +18 -14
- data/bundler/man/bundle-viz.ronn +1 -1
- data/bundler/man/bundle.ronn +27 -27
- data/bundler/man/gemfile.5.ronn +24 -9
- data/lib/rubygems.rb +24 -11
- data/lib/rubygems/bundler_version_finder.rb +9 -22
- data/lib/rubygems/command_manager.rb +6 -4
- data/lib/rubygems/commands/install_command.rb +7 -0
- data/lib/rubygems/commands/owner_command.rb +4 -1
- data/lib/rubygems/commands/push_command.rb +37 -4
- data/lib/rubygems/commands/setup_command.rb +3 -3
- data/lib/rubygems/commands/uninstall_command.rb +1 -1
- data/lib/rubygems/commands/unpack_command.rb +1 -1
- data/lib/rubygems/core_ext/kernel_require.rb +2 -7
- data/lib/rubygems/dependency.rb +1 -0
- data/lib/rubygems/dependency_installer.rb +4 -2
- data/lib/rubygems/exceptions.rb +5 -1
- data/lib/rubygems/gemcutter_utilities.rb +5 -2
- data/lib/rubygems/indexer.rb +1 -1
- data/lib/rubygems/install_update_options.rb +1 -1
- data/lib/rubygems/installer.rb +29 -6
- data/lib/rubygems/package.rb +20 -2
- data/lib/rubygems/package/tar_header.rb +3 -1
- data/lib/rubygems/package/tar_writer.rb +2 -3
- data/lib/rubygems/remote_fetcher.rb +1 -1
- data/lib/rubygems/request_set.rb +28 -17
- data/lib/rubygems/requirement.rb +14 -3
- data/lib/rubygems/resolver/api_specification.rb +5 -0
- data/lib/rubygems/security.rb +6 -1
- data/lib/rubygems/server.rb +3 -3
- data/lib/rubygems/source.rb +1 -1
- data/lib/rubygems/specification.rb +7 -10
- data/lib/rubygems/ssl_certs/{index.rubygems.org → rubygems.org}/GlobalSignRootCA.pem +0 -0
- data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem +21 -0
- data/lib/rubygems/test_case.rb +22 -4
- data/lib/rubygems/test_utilities.rb +1 -1
- data/lib/rubygems/user_interaction.rb +9 -2
- data/lib/rubygems/util/licenses.rb +35 -4
- data/lib/rubygems/version.rb +7 -1
- data/lib/ubygems.rb +3 -0
- data/test/rubygems/test_bundled_ca.rb +7 -4
- data/test/rubygems/test_gem.rb +45 -10
- data/test/rubygems/test_gem_bundler_version_finder.rb +8 -7
- data/test/rubygems/test_gem_command_manager.rb +2 -2
- data/test/rubygems/test_gem_commands_build_command.rb +2 -0
- data/test/rubygems/test_gem_commands_install_command.rb +37 -0
- data/test/rubygems/test_gem_commands_push_command.rb +20 -0
- data/test/rubygems/test_gem_commands_setup_command.rb +6 -1
- data/test/rubygems/test_gem_commands_signin_command.rb +1 -1
- data/test/rubygems/test_gem_commands_uninstall_command.rb +1 -1
- data/test/rubygems/test_gem_dependency.rb +1 -1
- data/test/rubygems/test_gem_ext_rake_builder.rb +0 -4
- data/test/rubygems/test_gem_install_update_options.rb +2 -0
- data/test/rubygems/test_gem_installer.rb +109 -3
- data/test/rubygems/test_gem_package.rb +90 -5
- data/test/rubygems/test_gem_package_tar_header.rb +2 -1
- data/test/rubygems/test_gem_remote_fetcher.rb +6 -2
- data/test/rubygems/test_gem_request.rb +5 -2
- data/test/rubygems/test_gem_requirement.rb +6 -0
- data/test/rubygems/test_gem_resolver_api_specification.rb +24 -0
- data/test/rubygems/test_gem_resolver_installer_set.rb +1 -1
- data/test/rubygems/test_gem_security_policy.rb +3 -3
- data/test/rubygems/test_gem_server.rb +12 -12
- data/test/rubygems/test_gem_specification.rb +27 -13
- data/test/rubygems/test_gem_stream_ui.rb +2 -2
- data/test/rubygems/test_gem_text.rb +5 -0
- data/test/rubygems/test_gem_util.rb +4 -2
- data/test/rubygems/test_gem_version.rb +29 -2
- data/util/ci +1 -0
- data/util/generate_spdx_license_list.rb +15 -6
- data/util/update_bundled_ca_certificates.rb +1 -3
- metadata +12 -12
- data/lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -23
- data/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -25
@@ -450,7 +450,7 @@ class TestGemSecurityPolicy < Gem::TestCase
|
|
450
450
|
|
451
451
|
@spec.cert_chain = [PUBLIC_CERT.to_s]
|
452
452
|
|
453
|
-
metadata_gz = Gem.gzip @spec.to_yaml
|
453
|
+
metadata_gz = Gem::Util.gzip @spec.to_yaml
|
454
454
|
|
455
455
|
package = Gem::Package.new 'nonexistent.gem'
|
456
456
|
package.checksums[Gem::Security::DIGEST_NAME] = {}
|
@@ -473,7 +473,7 @@ class TestGemSecurityPolicy < Gem::TestCase
|
|
473
473
|
|
474
474
|
@spec.cert_chain = [PUBLIC_CERT.to_s]
|
475
475
|
|
476
|
-
metadata_gz = Gem.gzip @spec.to_yaml
|
476
|
+
metadata_gz = Gem::Util.gzip @spec.to_yaml
|
477
477
|
|
478
478
|
package = Gem::Package.new 'nonexistent.gem'
|
479
479
|
package.checksums[Gem::Security::DIGEST_NAME] = {}
|
@@ -502,7 +502,7 @@ class TestGemSecurityPolicy < Gem::TestCase
|
|
502
502
|
|
503
503
|
@spec.cert_chain = [PUBLIC_CERT.to_s]
|
504
504
|
|
505
|
-
metadata_gz = Gem.gzip @spec.to_yaml
|
505
|
+
metadata_gz = Gem::Util.gzip @spec.to_yaml
|
506
506
|
|
507
507
|
package = Gem::Package.new 'nonexistent.gem'
|
508
508
|
package.checksums[Gem::Security::DIGEST_NAME] = {}
|
@@ -127,7 +127,7 @@ class TestGemServer < Gem::TestCase
|
|
127
127
|
assert_match %r| \d\d:\d\d:\d\d |, @res['date']
|
128
128
|
assert_equal 'application/x-gzip', @res['content-type']
|
129
129
|
assert_equal [['a', Gem::Version.new(2), Gem::Platform::RUBY]],
|
130
|
-
Marshal.load(Gem.gunzip(@res.body))
|
130
|
+
Marshal.load(Gem::Util.gunzip(@res.body))
|
131
131
|
end
|
132
132
|
|
133
133
|
def test_listen
|
@@ -177,7 +177,7 @@ class TestGemServer < Gem::TestCase
|
|
177
177
|
assert_match %r| \d\d:\d\d:\d\d |, @res['date']
|
178
178
|
assert_equal 'application/x-gzip', @res['content-type']
|
179
179
|
assert_equal [['a', v('3.a'), Gem::Platform::RUBY]],
|
180
|
-
Marshal.load(Gem.gunzip(@res.body))
|
180
|
+
Marshal.load(Gem::Util.gunzip(@res.body))
|
181
181
|
end
|
182
182
|
|
183
183
|
def test_quick_gemdirs
|
@@ -236,7 +236,7 @@ class TestGemServer < Gem::TestCase
|
|
236
236
|
assert @res['date']
|
237
237
|
assert_equal 'application/x-deflate', @res['content-type']
|
238
238
|
|
239
|
-
spec = Marshal.load Gem.inflate(@res.body)
|
239
|
+
spec = Marshal.load Gem::Util.inflate(@res.body)
|
240
240
|
assert_equal 'a', spec.name
|
241
241
|
assert_equal Gem::Version.new(1), spec.version
|
242
242
|
end
|
@@ -253,7 +253,7 @@ class TestGemServer < Gem::TestCase
|
|
253
253
|
assert @res['date']
|
254
254
|
assert_equal 'application/x-deflate', @res['content-type']
|
255
255
|
|
256
|
-
spec = Marshal.load Gem.inflate(@res.body)
|
256
|
+
spec = Marshal.load Gem::Util.inflate(@res.body)
|
257
257
|
assert_equal 'a', spec.name
|
258
258
|
assert_equal Gem::Version.new(1), spec.version
|
259
259
|
assert_equal Gem::Platform.local, spec.platform
|
@@ -269,7 +269,7 @@ class TestGemServer < Gem::TestCase
|
|
269
269
|
assert @res['date']
|
270
270
|
assert_equal 'application/x-deflate', @res['content-type']
|
271
271
|
|
272
|
-
spec = Marshal.load Gem.inflate(@res.body)
|
272
|
+
spec = Marshal.load Gem::Util.inflate(@res.body)
|
273
273
|
assert_equal 'a', spec.name
|
274
274
|
assert_equal v('3.a'), spec.version
|
275
275
|
end
|
@@ -286,7 +286,7 @@ class TestGemServer < Gem::TestCase
|
|
286
286
|
assert @res['date']
|
287
287
|
assert_equal 'application/x-deflate', @res['content-type']
|
288
288
|
|
289
|
-
spec = Marshal.load Gem.inflate(@res.body)
|
289
|
+
spec = Marshal.load Gem::Util.inflate(@res.body)
|
290
290
|
assert_equal 'a-b', spec.name
|
291
291
|
assert_equal v('3.a'), spec.version
|
292
292
|
end
|
@@ -303,7 +303,7 @@ class TestGemServer < Gem::TestCase
|
|
303
303
|
assert @res['date']
|
304
304
|
assert_equal 'application/x-deflate', @res['content-type']
|
305
305
|
|
306
|
-
spec = Marshal.load Gem.inflate(@res.body)
|
306
|
+
spec = Marshal.load Gem::Util.inflate(@res.body)
|
307
307
|
assert_equal 'a-b-1', spec.name
|
308
308
|
assert_equal v('3.a'), spec.version
|
309
309
|
end
|
@@ -405,7 +405,7 @@ class TestGemServer < Gem::TestCase
|
|
405
405
|
#
|
406
406
|
#
|
407
407
|
# <a href="." title=".">[www]</a>
|
408
|
-
regex_match = /xsshomepagegem 1<\/b
|
408
|
+
regex_match = /xsshomepagegem 1<\/b>\s+(<span title="rdoc not installed">\[rdoc\]<\/span>|<a href="\/doc_root\/xsshomepagegem-1\/">\[rdoc\]<\/a>)\s+<a href="\." title="\.">\[www\]<\/a>/
|
409
409
|
assert_match regex_match, @res.body
|
410
410
|
end
|
411
411
|
|
@@ -460,7 +460,7 @@ class TestGemServer < Gem::TestCase
|
|
460
460
|
#
|
461
461
|
#
|
462
462
|
# <a href="." title=".">[www]</a>
|
463
|
-
regex_match = /invalidhomepagegem 1<\/b
|
463
|
+
regex_match = /invalidhomepagegem 1<\/b>\s+(<span title="rdoc not installed">\[rdoc\]<\/span>|<a href="\/doc_root\/invalidhomepagegem-1\/">\[rdoc\]<\/a>)\s+<a href="\." title="\.">\[www\]<\/a>/
|
464
464
|
assert_match regex_match, @res.body
|
465
465
|
end
|
466
466
|
|
@@ -487,7 +487,7 @@ class TestGemServer < Gem::TestCase
|
|
487
487
|
assert_equal 200, @res.status
|
488
488
|
assert_match 'validhomepagegemhttp 1', @res.body
|
489
489
|
|
490
|
-
regex_match = /validhomepagegemhttp 1<\/b
|
490
|
+
regex_match = /validhomepagegemhttp 1<\/b>\s+(<span title="rdoc not installed">\[rdoc\]<\/span>|<a href="\/doc_root\/validhomepagegemhttp-1\/">\[rdoc\]<\/a>)\s+<a href="http:\/\/rubygems\.org" title="http:\/\/rubygems\.org">\[www\]<\/a>/
|
491
491
|
assert_match regex_match, @res.body
|
492
492
|
end
|
493
493
|
|
@@ -514,7 +514,7 @@ class TestGemServer < Gem::TestCase
|
|
514
514
|
assert_equal 200, @res.status
|
515
515
|
assert_match 'validhomepagegemhttps 1', @res.body
|
516
516
|
|
517
|
-
regex_match = /validhomepagegemhttps 1<\/b
|
517
|
+
regex_match = /validhomepagegemhttps 1<\/b>\s+(<span title="rdoc not installed">\[rdoc\]<\/span>|<a href="\/doc_root\/validhomepagegemhttps-1\/">\[rdoc\]<\/a>)\s+<a href="https:\/\/rubygems\.org" title="https:\/\/rubygems\.org">\[www\]<\/a>/
|
518
518
|
assert_match regex_match, @res.body
|
519
519
|
end
|
520
520
|
|
@@ -571,7 +571,7 @@ class TestGemServer < Gem::TestCase
|
|
571
571
|
assert_equal [['a', Gem::Version.new(1), Gem::Platform::RUBY],
|
572
572
|
['a', Gem::Version.new(2), Gem::Platform::RUBY],
|
573
573
|
['a', v('3.a'), Gem::Platform::RUBY]],
|
574
|
-
Marshal.load(Gem.gunzip(@res.body))
|
574
|
+
Marshal.load(Gem::Util.gunzip(@res.body))
|
575
575
|
end
|
576
576
|
|
577
577
|
def test_uri_encode
|
@@ -1133,9 +1133,9 @@ dependencies: []
|
|
1133
1133
|
def test_handles_private_null_type
|
1134
1134
|
path = File.join DATA_PATH, "null-type.gemspec.rz"
|
1135
1135
|
|
1136
|
-
data = Marshal.load Gem.inflate(Gem.read_binary(path))
|
1136
|
+
data = Marshal.load Gem::Util.inflate(Gem.read_binary(path))
|
1137
1137
|
|
1138
|
-
|
1138
|
+
assert_nil data.rubyforge_project
|
1139
1139
|
end
|
1140
1140
|
|
1141
1141
|
def test_emits_zulu_timestamps_properly
|
@@ -1156,7 +1156,7 @@ dependencies: []
|
|
1156
1156
|
assert_equal "blah", spec.name
|
1157
1157
|
assert_equal "1.3.5", spec.version.to_s
|
1158
1158
|
assert_equal Gem::Platform::RUBY, spec.platform
|
1159
|
-
|
1159
|
+
assert_nil spec.summary
|
1160
1160
|
assert_equal [], spec.files
|
1161
1161
|
|
1162
1162
|
assert_equal [], spec.test_files
|
@@ -1333,31 +1333,31 @@ dependencies: []
|
|
1333
1333
|
@a2.bindir = nil
|
1334
1334
|
@a2.executable = 'app'
|
1335
1335
|
|
1336
|
-
|
1336
|
+
assert_nil @a2.bindir
|
1337
1337
|
assert_equal %w[app lib/code.rb].sort, @a2.files
|
1338
1338
|
end
|
1339
1339
|
|
1340
1340
|
def test_extensions_equals_nil
|
1341
1341
|
@a2.instance_variable_set(:@extensions, nil)
|
1342
|
-
|
1342
|
+
assert_nil @a2.instance_variable_get(:@extensions)
|
1343
1343
|
assert_equal %w[lib/code.rb], @a2.files
|
1344
1344
|
end
|
1345
1345
|
|
1346
1346
|
def test_test_files_equals_nil
|
1347
1347
|
@a2.instance_variable_set(:@test_files, nil)
|
1348
|
-
|
1348
|
+
assert_nil @a2.instance_variable_get(:@test_files)
|
1349
1349
|
assert_equal %w[lib/code.rb], @a2.files
|
1350
1350
|
end
|
1351
1351
|
|
1352
1352
|
def test_executables_equals_nil
|
1353
1353
|
@a2.instance_variable_set(:@executables, nil)
|
1354
|
-
|
1354
|
+
assert_nil @a2.instance_variable_get(:@executables)
|
1355
1355
|
assert_equal %w[lib/code.rb], @a2.files
|
1356
1356
|
end
|
1357
1357
|
|
1358
1358
|
def test_extra_rdoc_files_equals_nil
|
1359
1359
|
@a2.instance_variable_set(:@extra_rdoc_files, nil)
|
1360
|
-
|
1360
|
+
assert_nil @a2.instance_variable_get(:@extra_rdoc_files)
|
1361
1361
|
assert_equal %w[lib/code.rb], @a2.files
|
1362
1362
|
end
|
1363
1363
|
|
@@ -2210,7 +2210,7 @@ dependencies: []
|
|
2210
2210
|
end
|
2211
2211
|
|
2212
2212
|
def test_allowed_push_host
|
2213
|
-
|
2213
|
+
assert_nil @a1.metadata['allowed_push_host']
|
2214
2214
|
assert_equal 'https://privategemserver.com', @a3.metadata['allowed_push_host']
|
2215
2215
|
end
|
2216
2216
|
|
@@ -2431,16 +2431,16 @@ Gem::Specification.new do |s|
|
|
2431
2431
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
2432
2432
|
s.add_runtime_dependency(%q<rake>.freeze, [\"> 0.4\"])
|
2433
2433
|
s.add_runtime_dependency(%q<jabber4r>.freeze, [\"> 0.0.0\"])
|
2434
|
-
s.add_runtime_dependency(%q<pqa>.freeze, [\"
|
2434
|
+
s.add_runtime_dependency(%q<pqa>.freeze, [\"> 0.4\", \"<= 0.6\"])
|
2435
2435
|
else
|
2436
2436
|
s.add_dependency(%q<rake>.freeze, [\"> 0.4\"])
|
2437
2437
|
s.add_dependency(%q<jabber4r>.freeze, [\"> 0.0.0\"])
|
2438
|
-
s.add_dependency(%q<pqa>.freeze, [\"
|
2438
|
+
s.add_dependency(%q<pqa>.freeze, [\"> 0.4\", \"<= 0.6\"])
|
2439
2439
|
end
|
2440
2440
|
else
|
2441
2441
|
s.add_dependency(%q<rake>.freeze, [\"> 0.4\"])
|
2442
2442
|
s.add_dependency(%q<jabber4r>.freeze, [\"> 0.0.0\"])
|
2443
|
-
s.add_dependency(%q<pqa>.freeze, [\"
|
2443
|
+
s.add_dependency(%q<pqa>.freeze, [\"> 0.4\", \"<= 0.6\"])
|
2444
2444
|
end
|
2445
2445
|
end
|
2446
2446
|
SPEC
|
@@ -2973,6 +2973,20 @@ http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
|
|
2973
2973
|
warning
|
2974
2974
|
end
|
2975
2975
|
|
2976
|
+
def test_validate_license_with_invalid_exception
|
2977
|
+
util_setup_validate
|
2978
|
+
|
2979
|
+
use_ui @ui do
|
2980
|
+
@a1.licenses = ['GPL-2.0+ WITH Autocofn-exception-2.0']
|
2981
|
+
@a1.validate
|
2982
|
+
end
|
2983
|
+
|
2984
|
+
assert_match <<-warning, @ui.error
|
2985
|
+
WARNING: license value 'GPL-2.0+ WITH Autocofn-exception-2.0' is invalid. Use a license identifier from
|
2986
|
+
http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
|
2987
|
+
warning
|
2988
|
+
end
|
2989
|
+
|
2976
2990
|
def test_validate_license_gives_suggestions
|
2977
2991
|
util_setup_validate
|
2978
2992
|
|
@@ -3553,7 +3567,7 @@ end
|
|
3553
3567
|
|
3554
3568
|
assert_equal a, Gem::Specification.find_inactive_by_path('foo')
|
3555
3569
|
a.activate
|
3556
|
-
|
3570
|
+
assert_nil Gem::Specification.find_inactive_by_path('foo')
|
3557
3571
|
end
|
3558
3572
|
|
3559
3573
|
def test_load_default_gem
|
@@ -55,7 +55,7 @@ class TestGemStreamUI < Gem::TestCase
|
|
55
55
|
|
56
56
|
Timeout.timeout(0.1) do
|
57
57
|
answer = @sui.ask("what is your favorite color?")
|
58
|
-
|
58
|
+
assert_nil answer
|
59
59
|
end
|
60
60
|
end
|
61
61
|
|
@@ -79,7 +79,7 @@ class TestGemStreamUI < Gem::TestCase
|
|
79
79
|
|
80
80
|
Timeout.timeout(0.1) do
|
81
81
|
answer = @sui.ask_for_password("what is the airspeed velocity of an unladen swallow?")
|
82
|
-
|
82
|
+
assert_nil answer
|
83
83
|
end
|
84
84
|
end
|
85
85
|
|
@@ -85,4 +85,9 @@ Without the wrapping, the text might not look good in the RSS feed.
|
|
85
85
|
s = "ab" * 500_001
|
86
86
|
assert_equal "Truncating desc to 1,000,000 characters:\n#{s[0, 1_000_000]}", truncate_text(s, "desc", 1_000_000)
|
87
87
|
end
|
88
|
+
|
89
|
+
def test_clean_text
|
90
|
+
assert_equal ".]2;nyan.", clean_text("\e]2;nyan\a")
|
91
|
+
end
|
92
|
+
|
88
93
|
end
|
@@ -42,8 +42,10 @@ class TestGemUtil < Gem::TestCase
|
|
42
42
|
|
43
43
|
assert_equal File.join(@tempdir, 'd'), paths[0]
|
44
44
|
assert_equal @tempdir, paths[1]
|
45
|
-
|
46
|
-
|
45
|
+
if File.respond_to?(:realpath)
|
46
|
+
assert_equal File.realpath(Dir.tmpdir), paths[2]
|
47
|
+
assert_equal File.realpath("..", Dir.tmpdir), paths[3]
|
48
|
+
elsif RUBY_PLATFORM !~ /darwin/
|
47
49
|
assert_equal Dir.tmpdir, paths[2]
|
48
50
|
assert_equal '/', paths[3]
|
49
51
|
end
|
@@ -46,6 +46,11 @@ class TestGemVersion < Gem::TestCase
|
|
46
46
|
def test_class_correct
|
47
47
|
assert_equal true, Gem::Version.correct?("5.1")
|
48
48
|
assert_equal false, Gem::Version.correct?("an incorrect version")
|
49
|
+
|
50
|
+
expected = "nil versions are discouraged and will be deprecated in Rubygems 4\n"
|
51
|
+
assert_output nil, expected do
|
52
|
+
Gem::Version.correct?(nil)
|
53
|
+
end
|
49
54
|
end
|
50
55
|
|
51
56
|
def test_class_new_subclass
|
@@ -157,11 +162,25 @@ class TestGemVersion < Gem::TestCase
|
|
157
162
|
|
158
163
|
def test_approximate_recommendation
|
159
164
|
assert_approximate_equal "~> 1.0", "1"
|
165
|
+
assert_approximate_satisfies_itself "1"
|
166
|
+
|
160
167
|
assert_approximate_equal "~> 1.0", "1.0"
|
168
|
+
assert_approximate_satisfies_itself "1.0"
|
169
|
+
|
161
170
|
assert_approximate_equal "~> 1.2", "1.2"
|
171
|
+
assert_approximate_satisfies_itself "1.2"
|
172
|
+
|
162
173
|
assert_approximate_equal "~> 1.2", "1.2.0"
|
174
|
+
assert_approximate_satisfies_itself "1.2.0"
|
175
|
+
|
163
176
|
assert_approximate_equal "~> 1.2", "1.2.3"
|
164
|
-
|
177
|
+
assert_approximate_satisfies_itself "1.2.3"
|
178
|
+
|
179
|
+
assert_approximate_equal "~> 1.2.a", "1.2.3.a.4"
|
180
|
+
assert_approximate_satisfies_itself "1.2.3.a.4"
|
181
|
+
|
182
|
+
assert_approximate_equal "~> 1.9.a", "1.9.0.dev"
|
183
|
+
assert_approximate_satisfies_itself "1.9.0.dev"
|
165
184
|
end
|
166
185
|
|
167
186
|
def test_to_s
|
@@ -197,12 +216,20 @@ class TestGemVersion < Gem::TestCase
|
|
197
216
|
assert v(version).prerelease?, "#{version} is a prerelease"
|
198
217
|
end
|
199
218
|
|
200
|
-
# Assert that +expected+ is the "approximate" recommendation for +version
|
219
|
+
# Assert that +expected+ is the "approximate" recommendation for +version+.
|
201
220
|
|
202
221
|
def assert_approximate_equal expected, version
|
203
222
|
assert_equal expected, v(version).approximate_recommendation
|
204
223
|
end
|
205
224
|
|
225
|
+
# Assert that the "approximate" recommendation for +version+ satifies +version+.
|
226
|
+
|
227
|
+
def assert_approximate_satisfies_itself version
|
228
|
+
gem_version = v(version)
|
229
|
+
|
230
|
+
assert Gem::Requirement.new(gem_version.approximate_recommendation).satisfied_by?(gem_version)
|
231
|
+
end
|
232
|
+
|
206
233
|
# Assert that bumping the +unbumped+ version yields the +expected+.
|
207
234
|
|
208
235
|
def assert_bumped_version_equal expected, unbumped
|
data/util/ci
CHANGED
@@ -49,6 +49,7 @@ when %w(before_script)
|
|
49
49
|
if TOOL.rubygems?
|
50
50
|
run('gem', %W(uninstall executable-hooks gem-wrappers -x --force -i #{`gem env home`.strip}@global))
|
51
51
|
run('gem', %W(install rake -v #{'~> 10.5'} --no-document))
|
52
|
+
run('gem', %W(install bundler -v #{'1.16.6'} --no-document))
|
52
53
|
run('gem', %W(install hoe -v #{'3.15.0'} --no-document))
|
53
54
|
run('gem', %w(install hoe-travis --no-document))
|
54
55
|
run('gem', %W(install minitest -v #{'~> 4.7'} --no-document))
|
@@ -3,10 +3,14 @@ require 'json'
|
|
3
3
|
require 'net/http'
|
4
4
|
require 'uri'
|
5
5
|
|
6
|
-
|
7
|
-
licenses = JSON.parse(
|
6
|
+
licenses_json = Net::HTTP.get(URI('https://spdx.org/licenses/licenses.json'))
|
7
|
+
licenses = JSON.parse(licenses_json)['licenses'].map do |licenseObject|
|
8
8
|
licenseObject['licenseId']
|
9
9
|
end
|
10
|
+
exceptions_json = Net::HTTP.get(URI('https://spdx.org/licenses/exceptions.json'))
|
11
|
+
exceptions = JSON.parse(exceptions_json)['exceptions'].map do |exceptionObject|
|
12
|
+
exceptionObject['licenseExceptionId']
|
13
|
+
end
|
10
14
|
|
11
15
|
open 'lib/rubygems/util/licenses.rb', 'w' do |io|
|
12
16
|
io.write <<-RUBY
|
@@ -20,16 +24,21 @@ class Gem::Licenses
|
|
20
24
|
|
21
25
|
# Software Package Data Exchange (SPDX) standard open-source software
|
22
26
|
# license identifiers
|
23
|
-
|
27
|
+
LICENSE_IDENTIFIERS = %w(
|
24
28
|
#{licenses.sort.join "\n "}
|
25
29
|
).freeze
|
26
30
|
|
31
|
+
# exception identifiers
|
32
|
+
EXCEPTION_IDENTIFIERS = %w(
|
33
|
+
#{exceptions.sort.join "\n "}
|
34
|
+
).freeze
|
35
|
+
|
27
36
|
REGEXP = %r{
|
28
37
|
\\A
|
29
38
|
(
|
30
|
-
\#{Regexp.union(
|
39
|
+
\#{Regexp.union(LICENSE_IDENTIFIERS)}
|
31
40
|
\\+?
|
32
|
-
(\\s WITH \\s
|
41
|
+
(\\s WITH \\s \#{Regexp.union(EXCEPTION_IDENTIFIERS)})?
|
33
42
|
| \#{NONSTANDARD}
|
34
43
|
)
|
35
44
|
\\Z
|
@@ -40,7 +49,7 @@ class Gem::Licenses
|
|
40
49
|
end
|
41
50
|
|
42
51
|
def self.suggestions(license)
|
43
|
-
by_distance =
|
52
|
+
by_distance = LICENSE_IDENTIFIERS.group_by do |identifier|
|
44
53
|
levenshtein_distance(identifier, license)
|
45
54
|
end
|
46
55
|
lowest = by_distance.keys.min
|
@@ -5,14 +5,12 @@ require 'fileutils'
|
|
5
5
|
|
6
6
|
URIS = [
|
7
7
|
URI('https://rubygems.org'),
|
8
|
+
URI('https://www.rubygems.org'),
|
8
9
|
URI('https://index.rubygems.org'),
|
9
10
|
URI('https://staging.rubygems.org'),
|
10
|
-
URI('https://fastly.rubygems.org'),
|
11
|
-
URI('https://rubygems.global.ssl.fastly.net'),
|
12
11
|
]
|
13
12
|
|
14
13
|
HOSTNAMES_TO_MAP = [
|
15
|
-
'rubygems.global.ssl.fastly.net',
|
16
14
|
'rubygems.org',
|
17
15
|
'index.rubygems.org'
|
18
16
|
]
|
metadata
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubygems-update
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.7.
|
4
|
+
version: 2.7.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jim Weirich
|
8
8
|
- Chad Fowler
|
9
9
|
- Eric Hodel
|
10
|
-
autorequire:
|
10
|
+
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2020-12-09 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: builder
|
@@ -102,14 +102,14 @@ dependencies:
|
|
102
102
|
requirements:
|
103
103
|
- - "~>"
|
104
104
|
- !ruby/object:Gem::Version
|
105
|
-
version: '3.
|
105
|
+
version: '3.15'
|
106
106
|
type: :development
|
107
107
|
prerelease: false
|
108
108
|
version_requirements: !ruby/object:Gem::Requirement
|
109
109
|
requirements:
|
110
110
|
- - "~>"
|
111
111
|
- !ruby/object:Gem::Version
|
112
|
-
version: '3.
|
112
|
+
version: '3.15'
|
113
113
|
description: ''
|
114
114
|
email:
|
115
115
|
- rubygems-developers@rubyforge.org
|
@@ -386,6 +386,7 @@ files:
|
|
386
386
|
- bundler/man/bundle-check.ronn
|
387
387
|
- bundler/man/bundle-clean.ronn
|
388
388
|
- bundler/man/bundle-config.ronn
|
389
|
+
- bundler/man/bundle-doctor.ronn
|
389
390
|
- bundler/man/bundle-exec.ronn
|
390
391
|
- bundler/man/bundle-gem.ronn
|
391
392
|
- bundler/man/bundle-info.ronn
|
@@ -571,9 +572,8 @@ files:
|
|
571
572
|
- lib/rubygems/spec_fetcher.rb
|
572
573
|
- lib/rubygems/specification.rb
|
573
574
|
- lib/rubygems/ssl_certs/.document
|
574
|
-
- lib/rubygems/ssl_certs/
|
575
|
-
- lib/rubygems/ssl_certs/rubygems.
|
576
|
-
- lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem
|
575
|
+
- lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA.pem
|
576
|
+
- lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem
|
577
577
|
- lib/rubygems/stub_specification.rb
|
578
578
|
- lib/rubygems/syck_hack.rb
|
579
579
|
- lib/rubygems/test_case.rb
|
@@ -785,7 +785,7 @@ licenses:
|
|
785
785
|
- Ruby
|
786
786
|
- MIT
|
787
787
|
metadata: {}
|
788
|
-
post_install_message:
|
788
|
+
post_install_message:
|
789
789
|
rdoc_options:
|
790
790
|
- "--main"
|
791
791
|
- README.md
|
@@ -803,9 +803,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
803
803
|
- !ruby/object:Gem::Version
|
804
804
|
version: '0'
|
805
805
|
requirements: []
|
806
|
-
rubyforge_project:
|
807
|
-
rubygems_version: 2.7.
|
808
|
-
signing_key:
|
806
|
+
rubyforge_project:
|
807
|
+
rubygems_version: 2.7.6.2
|
808
|
+
signing_key:
|
809
809
|
specification_version: 4
|
810
810
|
summary: ''
|
811
811
|
test_files: []
|