rubygems-update 3.2.5 → 3.2.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (106) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +50 -0
  3. data/Manifest.txt +2 -0
  4. data/Rakefile +15 -14
  5. data/bundler/CHANGELOG.md +73 -0
  6. data/bundler/lib/bundler.rb +1 -1
  7. data/bundler/lib/bundler/build_metadata.rb +2 -2
  8. data/bundler/lib/bundler/cli.rb +1 -0
  9. data/bundler/lib/bundler/cli/cache.rb +1 -0
  10. data/bundler/lib/bundler/cli/gem.rb +12 -0
  11. data/bundler/lib/bundler/definition.rb +66 -56
  12. data/bundler/lib/bundler/dep_proxy.rb +15 -8
  13. data/bundler/lib/bundler/dsl.rb +38 -25
  14. data/bundler/lib/bundler/feature_flag.rb +0 -2
  15. data/bundler/lib/bundler/fetcher.rb +0 -1
  16. data/bundler/lib/bundler/gem_helper.rb +8 -6
  17. data/bundler/lib/bundler/gem_version_promoter.rb +2 -2
  18. data/bundler/lib/bundler/index.rb +6 -5
  19. data/bundler/lib/bundler/inline.rb +1 -0
  20. data/bundler/lib/bundler/installer.rb +0 -17
  21. data/bundler/lib/bundler/installer/standalone.rb +15 -0
  22. data/bundler/lib/bundler/lazy_specification.rb +9 -18
  23. data/bundler/lib/bundler/lockfile_parser.rb +12 -8
  24. data/bundler/lib/bundler/man/bundle-add.1 +1 -1
  25. data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
  26. data/bundler/lib/bundler/man/bundle-cache.1 +1 -1
  27. data/bundler/lib/bundler/man/bundle-check.1 +1 -1
  28. data/bundler/lib/bundler/man/bundle-clean.1 +1 -1
  29. data/bundler/lib/bundler/man/bundle-config.1 +6 -12
  30. data/bundler/lib/bundler/man/bundle-config.1.ronn +11 -18
  31. data/bundler/lib/bundler/man/bundle-doctor.1 +1 -1
  32. data/bundler/lib/bundler/man/bundle-exec.1 +1 -1
  33. data/bundler/lib/bundler/man/bundle-gem.1 +1 -1
  34. data/bundler/lib/bundler/man/bundle-info.1 +1 -1
  35. data/bundler/lib/bundler/man/bundle-init.1 +1 -1
  36. data/bundler/lib/bundler/man/bundle-inject.1 +1 -1
  37. data/bundler/lib/bundler/man/bundle-install.1 +1 -1
  38. data/bundler/lib/bundler/man/bundle-list.1 +1 -1
  39. data/bundler/lib/bundler/man/bundle-lock.1 +1 -1
  40. data/bundler/lib/bundler/man/bundle-open.1 +1 -1
  41. data/bundler/lib/bundler/man/bundle-outdated.1 +1 -1
  42. data/bundler/lib/bundler/man/bundle-platform.1 +1 -1
  43. data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
  44. data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
  45. data/bundler/lib/bundler/man/bundle-show.1 +1 -1
  46. data/bundler/lib/bundler/man/bundle-update.1 +1 -1
  47. data/bundler/lib/bundler/man/bundle-viz.1 +1 -1
  48. data/bundler/lib/bundler/man/bundle.1 +1 -1
  49. data/bundler/lib/bundler/man/gemfile.5 +1 -1
  50. data/bundler/lib/bundler/plugin.rb +1 -0
  51. data/bundler/lib/bundler/plugin/installer.rb +8 -9
  52. data/bundler/lib/bundler/resolver.rb +110 -80
  53. data/bundler/lib/bundler/resolver/spec_group.rb +56 -44
  54. data/bundler/lib/bundler/rubygems_ext.rb +16 -0
  55. data/bundler/lib/bundler/settings.rb +1 -2
  56. data/bundler/lib/bundler/shared_helpers.rb +2 -2
  57. data/bundler/lib/bundler/source/git.rb +1 -1
  58. data/bundler/lib/bundler/source/rubygems.rb +10 -2
  59. data/bundler/lib/bundler/source_list.rb +34 -25
  60. data/bundler/lib/bundler/spec_set.rb +5 -4
  61. data/bundler/lib/bundler/templates/newgem/CHANGELOG.md.tt +5 -0
  62. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +7 -0
  63. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +0 -1
  64. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +11 -5
  65. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +2 -2
  66. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +11 -0
  67. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +11 -7
  68. data/bundler/lib/bundler/vendor/thor/lib/thor.rb +5 -6
  69. data/bundler/lib/bundler/vendor/thor/lib/thor/actions.rb +1 -1
  70. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +4 -2
  71. data/bundler/lib/bundler/vendor/thor/lib/thor/error.rb +1 -1
  72. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +5 -1
  73. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +9 -8
  74. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +5 -2
  75. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/color.rb +5 -1
  76. data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
  77. data/bundler/lib/bundler/version.rb +1 -1
  78. data/lib/rubygems.rb +3 -3
  79. data/lib/rubygems/command.rb +1 -0
  80. data/lib/rubygems/dependency.rb +5 -1
  81. data/lib/rubygems/ext/builder.rb +2 -1
  82. data/lib/rubygems/installer_uninstaller_utils.rb +6 -1
  83. data/lib/rubygems/platform.rb +0 -4
  84. data/lib/rubygems/requirement.rb +1 -1
  85. data/lib/rubygems/resolver/index_specification.rb +4 -1
  86. data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb +7 -0
  87. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +0 -1
  88. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb +11 -5
  89. data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +2 -2
  90. data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb +11 -0
  91. data/lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb +11 -7
  92. data/lib/rubygems/specification.rb +13 -11
  93. data/lib/rubygems/test_case.rb +5 -6
  94. data/rubygems-update.gemspec +1 -1
  95. data/test/rubygems/data/null-required-ruby-version.gemspec.rz +0 -0
  96. data/test/rubygems/test_gem.rb +85 -8
  97. data/test/rubygems/test_gem_commands_outdated_command.rb +18 -0
  98. data/test/rubygems/test_gem_dependency_installer.rb +27 -18
  99. data/test/rubygems/test_gem_ext_builder.rb +24 -0
  100. data/test/rubygems/test_gem_installer.rb +2 -0
  101. data/test/rubygems/test_gem_platform.rb +8 -0
  102. data/test/rubygems/test_gem_requirement.rb +35 -1
  103. data/test/rubygems/test_gem_specification.rb +10 -15
  104. data/test/rubygems/test_gem_stream_ui.rb +1 -1
  105. data/test/rubygems/test_gem_util.rb +4 -4
  106. metadata +5 -3
@@ -14,6 +14,7 @@ class TestGemExtBuilder < Gem::TestCase
14
14
  FileUtils.mkdir_p @dest_path
15
15
 
16
16
  @orig_DESTDIR = ENV['DESTDIR']
17
+ @orig_make = ENV['make']
17
18
 
18
19
  @spec = util_spec 'a'
19
20
 
@@ -22,6 +23,7 @@ class TestGemExtBuilder < Gem::TestCase
22
23
 
23
24
  def teardown
24
25
  ENV['DESTDIR'] = @orig_DESTDIR
26
+ ENV['make'] = @orig_make
25
27
 
26
28
  super
27
29
  end
@@ -81,6 +83,28 @@ install:
81
83
  assert_match %r{DESTDIR\\=#{ENV['DESTDIR']} install$}, results
82
84
  end
83
85
 
86
+ def test_custom_make_with_options
87
+ ENV['make'] = 'make V=1'
88
+ results = []
89
+ File.open File.join(@ext, 'Makefile'), 'w' do |io|
90
+ io.puts <<-MAKEFILE
91
+ all:
92
+ \t@#{Gem.ruby} -e "puts 'all: OK'"
93
+
94
+ clean:
95
+ \t@#{Gem.ruby} -e "puts 'clean: OK'"
96
+
97
+ install:
98
+ \t@#{Gem.ruby} -e "puts 'install: OK'"
99
+ MAKEFILE
100
+ end
101
+ Gem::Ext::Builder.make @dest_path, results, @ext
102
+ results = results.join("\n").b
103
+ assert_match %r{clean: OK}, results
104
+ assert_match %r{all: OK}, results
105
+ assert_match %r{install: OK}, results
106
+ end
107
+
84
108
  def test_build_extensions
85
109
  @spec.extensions << 'ext/extconf.rb'
86
110
 
@@ -821,6 +821,8 @@ gem 'other', version
821
821
 
822
822
  assert !File.exist?(system_path), 'plugin written incorrect written to system plugins_dir'
823
823
  assert File.exist?(build_root_path), 'plugin not written to build_root'
824
+
825
+ refute_includes File.read(build_root_path), build_root
824
826
  end
825
827
 
826
828
  def test_keeps_plugins_up_to_date
@@ -356,6 +356,14 @@ class TestGemPlatform < Gem::TestCase
356
356
  assert_local_match 'sparc-solaris2.8-mq5.3'
357
357
  end
358
358
 
359
+ def test_inspect
360
+ result = Gem::Platform.new("universal-java11").inspect
361
+
362
+ assert_equal 1, result.scan(/@cpu=/).size
363
+ assert_equal 1, result.scan(/@os=/).size
364
+ assert_equal 1, result.scan(/@version=/).size
365
+ end
366
+
359
367
  def assert_local_match(name)
360
368
  assert_match Gem::Platform.local, name
361
369
  end
@@ -83,7 +83,7 @@ class TestGemRequirement < Gem::TestCase
83
83
  Gem::Requirement.parse(Gem::Version.new('2'))
84
84
  end
85
85
 
86
- if RUBY_VERSION >= '2.5'
86
+ if RUBY_VERSION >= '2.5' && !(Gem.java_platform? && ENV["JRUBY_OPTS"] =~ /--debug/)
87
87
  def test_parse_deduplication
88
88
  assert_same '~>', Gem::Requirement.parse('~> 1').first
89
89
  end
@@ -402,6 +402,27 @@ class TestGemRequirement < Gem::TestCase
402
402
  assert_equal r1.hash, r2.hash
403
403
  end
404
404
 
405
+ def test_hash_returns_equal_hashes_for_equivalent_requirements
406
+ refute_requirement_hash_equal "= 1.2", "= 1.3"
407
+ refute_requirement_hash_equal "= 1.3", "= 1.2"
408
+
409
+ refute_requirement_hash_equal "~> 1.3", "~> 1.3.0"
410
+ refute_requirement_hash_equal "~> 1.3.0", "~> 1.3"
411
+
412
+ assert_requirement_hash_equal ["> 2", "~> 1.3", "~> 1.3.1"], ["~> 1.3.1", "~> 1.3", "> 2"]
413
+
414
+ assert_requirement_hash_equal ["> 2", "~> 1.3"], ["> 2.0", "~> 1.3"]
415
+ assert_requirement_hash_equal ["> 2.0", "~> 1.3"], ["> 2", "~> 1.3"]
416
+
417
+ assert_requirement_hash_equal "= 1.0", "= 1.0.0"
418
+ assert_requirement_hash_equal "= 1.1", "= 1.1.0"
419
+ assert_requirement_hash_equal "= 1", "= 1.0.0"
420
+
421
+ assert_requirement_hash_equal "1.0", "1.0.0"
422
+ assert_requirement_hash_equal "1.1", "1.1.0"
423
+ assert_requirement_hash_equal "1", "1.0.0"
424
+ end
425
+
405
426
  # Assert that two requirements are equal. Handles Gem::Requirements,
406
427
  # strings, arrays, numbers, and versions.
407
428
 
@@ -416,6 +437,13 @@ class TestGemRequirement < Gem::TestCase
416
437
  "#{requirement} is satisfied by #{version}"
417
438
  end
418
439
 
440
+ # Assert that two requirement hashes are equal. Handles Gem::Requirements,
441
+ # strings, arrays, numbers, and versions.
442
+
443
+ def assert_requirement_hash_equal(expected, actual)
444
+ assert_equal req(expected).hash, req(actual).hash
445
+ end
446
+
419
447
  # Refute the assumption that two requirements are equal.
420
448
 
421
449
  def refute_requirement_equal(unexpected, actual)
@@ -428,4 +456,10 @@ class TestGemRequirement < Gem::TestCase
428
456
  refute req(requirement).satisfied_by?(v(version)),
429
457
  "#{requirement} is not satisfied by #{version}"
430
458
  end
459
+
460
+ # Refute the assumption that two requirements hashes are equal.
461
+
462
+ def refute_requirement_hash_equal(unexpected, actual)
463
+ refute_equal req(unexpected).hash, req(actual).hash
464
+ end
431
465
  end
@@ -1208,6 +1208,16 @@ dependencies: []
1208
1208
  Gem.platforms = orig_platform
1209
1209
  end
1210
1210
 
1211
+ def test_self_stubs_returns_only_specified_named_specs
1212
+ dir_standard_specs = File.join Gem.dir, 'specifications'
1213
+
1214
+ save_gemspec('a-1', '1', dir_standard_specs){|s| s.name = 'a' }
1215
+ save_gemspec('a-2', '2', dir_standard_specs){|s| s.name = 'a' }
1216
+ save_gemspec('a-a', '3', dir_standard_specs){|s| s.name = 'a-a' }
1217
+
1218
+ assert_equal ['a-1', 'a-2'], Gem::Specification.stubs_for('a').map(&:full_name).sort
1219
+ end
1220
+
1211
1221
  def test_handles_private_null_type
1212
1222
  path = File.expand_path "../data/null-type.gemspec.rz", __FILE__
1213
1223
 
@@ -3530,19 +3540,6 @@ Did you mean 'Ruby'?
3530
3540
  specfile.delete
3531
3541
  end
3532
3542
 
3533
- ##
3534
- # KEEP p-1-x86-darwin-8
3535
- # KEEP p-1
3536
- # KEEP c-1.2
3537
- # KEEP a_evil-9
3538
- # a-1
3539
- # a-1-x86-my_platform-1
3540
- # KEEP a-2
3541
- # a-2-x86-other_platform-1
3542
- # KEEP a-2-x86-my_platform-1
3543
- # a-3.a
3544
- # KEEP a-3-x86-other_platform-1
3545
-
3546
3543
  def test_latest_specs
3547
3544
  spec_fetcher do |fetcher|
3548
3545
  fetcher.spec 'a', 1 do |s|
@@ -3565,8 +3562,6 @@ Did you mean 'Ruby'?
3565
3562
  end
3566
3563
 
3567
3564
  expected = %W[
3568
- a-2
3569
- a-2-x86-my_platform-1
3570
3565
  a-3-x86-other_platform-1
3571
3566
  ]
3572
3567
 
@@ -5,7 +5,7 @@ require 'timeout'
5
5
 
6
6
  class TestGemStreamUI < Gem::TestCase
7
7
  # increase timeout with MJIT for --jit-wait testing
8
- mjit_enabled = defined?(RubyVM::MJIT) && RubyVM::MJIT.enabled?
8
+ mjit_enabled = defined?(RubyVM::JIT) ? RubyVM::JIT.enabled? : defined?(RubyVM::MJIT) && RubyVM::MJIT.enabled?
9
9
  SHORT_TIMEOUT = (RUBY_ENGINE == "ruby" && !mjit_enabled) ? 0.1 : 1.0
10
10
 
11
11
  module IsTty
@@ -46,8 +46,8 @@ class TestGemUtil < Gem::TestCase
46
46
 
47
47
  assert_equal File.join(@tempdir, 'd'), paths[0]
48
48
  assert_equal @tempdir, paths[1]
49
- assert_equal File.realpath(Dir.tmpdir), paths[2]
50
- assert_equal File.realpath("..", Dir.tmpdir), paths[3]
49
+ assert_equal File.realpath("..", @tempdir), paths[2]
50
+ assert_equal File.realpath("../..", @tempdir), paths[3]
51
51
  ensure
52
52
  # restore default permissions, allow the directory to be removed
53
53
  FileUtils.chmod(0775, 'd/e') unless win_platform? || java_platform?
@@ -72,10 +72,10 @@ class TestGemUtil < Gem::TestCase
72
72
  ]
73
73
 
74
74
  files_with_absolute_base = Gem::Util.glob_files_in_dir('*.rb', File.join(@tempdir, 'g'))
75
- assert_equal expected_paths.to_set, files_with_absolute_base.to_set
75
+ assert_equal expected_paths.sort, files_with_absolute_base.sort
76
76
 
77
77
  files_with_relative_base = Gem::Util.glob_files_in_dir('*.rb', 'g')
78
- assert_equal expected_paths.to_set, files_with_relative_base.to_set
78
+ assert_equal expected_paths.sort, files_with_relative_base.sort
79
79
  end
80
80
 
81
81
  def test_correct_for_windows_path
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.5
4
+ version: 3.2.10
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: 2021-01-11 00:00:00.000000000 Z
19
+ date: 2021-02-15 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
@@ -245,6 +245,7 @@ files:
245
245
  - bundler/lib/bundler/templates/Executable.standalone
246
246
  - bundler/lib/bundler/templates/Gemfile
247
247
  - bundler/lib/bundler/templates/gems.rb
248
+ - bundler/lib/bundler/templates/newgem/CHANGELOG.md.tt
248
249
  - bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt
249
250
  - bundler/lib/bundler/templates/newgem/Gemfile.tt
250
251
  - bundler/lib/bundler/templates/newgem/LICENSE.txt.tt
@@ -567,6 +568,7 @@ files:
567
568
  - test/rubygems/client.pem
568
569
  - test/rubygems/data/gem-private_key.pem
569
570
  - test/rubygems/data/gem-public_cert.pem
571
+ - test/rubygems/data/null-required-ruby-version.gemspec.rz
570
572
  - test/rubygems/data/null-required-rubygems-version.gemspec.rz
571
573
  - test/rubygems/data/null-type.gemspec.rz
572
574
  - test/rubygems/encrypted_private_key.pem
@@ -765,7 +767,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
765
767
  - !ruby/object:Gem::Version
766
768
  version: '0'
767
769
  requirements: []
768
- rubygems_version: 3.3.0.dev
770
+ rubygems_version: 3.2.10
769
771
  signing_key:
770
772
  specification_version: 4
771
773
  summary: RubyGems is a package management framework for Ruby.