rubygems-update 3.3.19 → 3.3.20

Sign up to get free protection for your applications and to get access to all the features.
Files changed (122) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +20 -0
  3. data/bin/update_rubygems +1 -1
  4. data/bundler/CHANGELOG.md +26 -0
  5. data/bundler/lib/bundler/build_metadata.rb +2 -2
  6. data/bundler/lib/bundler/cli/install.rb +5 -2
  7. data/bundler/lib/bundler/cli/outdated.rb +12 -3
  8. data/bundler/lib/bundler/cli/platform.rb +1 -1
  9. data/bundler/lib/bundler/cli.rb +5 -3
  10. data/bundler/lib/bundler/definition.rb +61 -11
  11. data/bundler/lib/bundler/fetcher.rb +6 -6
  12. data/bundler/lib/bundler/gem_helpers.rb +7 -1
  13. data/bundler/lib/bundler/installer/standalone.rb +1 -1
  14. data/bundler/lib/bundler/installer.rb +8 -1
  15. data/bundler/lib/bundler/lazy_specification.rb +21 -21
  16. data/bundler/lib/bundler/man/bundle-cache.1 +6 -0
  17. data/bundler/lib/bundler/man/bundle-cache.1.ronn +7 -0
  18. data/bundler/lib/bundler/man/bundle-config.1 +2 -2
  19. data/bundler/lib/bundler/man/bundle-config.1.ronn +3 -3
  20. data/bundler/lib/bundler/man/bundle-install.1 +4 -0
  21. data/bundler/lib/bundler/man/bundle-install.1.ronn +6 -0
  22. data/bundler/lib/bundler/man/bundle-platform.1 +15 -5
  23. data/bundler/lib/bundler/man/bundle-platform.1.ronn +14 -7
  24. data/bundler/lib/bundler/man/bundle.1 +3 -6
  25. data/bundler/lib/bundler/man/bundle.1.ronn +3 -4
  26. data/bundler/lib/bundler/resolver.rb +2 -1
  27. data/bundler/lib/bundler/ruby_dsl.rb +1 -1
  28. data/bundler/lib/bundler/ruby_version.rb +5 -5
  29. data/bundler/lib/bundler/rubygems_ext.rb +13 -0
  30. data/bundler/lib/bundler/source/metadata.rb +1 -1
  31. data/bundler/lib/bundler/source_list.rb +4 -0
  32. data/bundler/lib/bundler/spec_set.rb +15 -28
  33. data/bundler/lib/bundler/version.rb +1 -1
  34. data/lib/rubygems/available_set.rb +3 -3
  35. data/lib/rubygems/basic_specification.rb +2 -2
  36. data/lib/rubygems/command.rb +6 -6
  37. data/lib/rubygems/commands/cert_command.rb +1 -1
  38. data/lib/rubygems/commands/cleanup_command.rb +1 -1
  39. data/lib/rubygems/commands/contents_command.rb +1 -1
  40. data/lib/rubygems/commands/dependency_command.rb +4 -4
  41. data/lib/rubygems/commands/fetch_command.rb +2 -2
  42. data/lib/rubygems/commands/generate_index_command.rb +2 -2
  43. data/lib/rubygems/commands/install_command.rb +7 -7
  44. data/lib/rubygems/commands/pristine_command.rb +5 -5
  45. data/lib/rubygems/commands/setup_command.rb +4 -4
  46. data/lib/rubygems/commands/sources_command.rb +3 -3
  47. data/lib/rubygems/commands/specification_command.rb +2 -2
  48. data/lib/rubygems/commands/uninstall_command.rb +4 -4
  49. data/lib/rubygems/commands/update_command.rb +5 -5
  50. data/lib/rubygems/commands/which_command.rb +1 -1
  51. data/lib/rubygems/config_file.rb +7 -7
  52. data/lib/rubygems/core_ext/kernel_warn.rb +1 -1
  53. data/lib/rubygems/defaults.rb +1 -1
  54. data/lib/rubygems/dependency.rb +5 -5
  55. data/lib/rubygems/dependency_installer.rb +5 -5
  56. data/lib/rubygems/dependency_list.rb +4 -4
  57. data/lib/rubygems/doctor.rb +4 -4
  58. data/lib/rubygems/exceptions.rb +1 -1
  59. data/lib/rubygems/ext/ext_conf_builder.rb +2 -2
  60. data/lib/rubygems/gemcutter_utilities.rb +1 -1
  61. data/lib/rubygems/indexer.rb +3 -3
  62. data/lib/rubygems/installer.rb +5 -13
  63. data/lib/rubygems/name_tuple.rb +3 -3
  64. data/lib/rubygems/package/tar_header.rb +17 -17
  65. data/lib/rubygems/package/tar_writer.rb +1 -1
  66. data/lib/rubygems/package.rb +19 -8
  67. data/lib/rubygems/platform.rb +15 -15
  68. data/lib/rubygems/query_utils.rb +6 -6
  69. data/lib/rubygems/remote_fetcher.rb +3 -3
  70. data/lib/rubygems/request/connection_pools.rb +2 -2
  71. data/lib/rubygems/request/http_pool.rb +1 -1
  72. data/lib/rubygems/request.rb +1 -1
  73. data/lib/rubygems/request_set/gem_dependency_api.rb +3 -3
  74. data/lib/rubygems/request_set/lockfile/parser.rb +12 -12
  75. data/lib/rubygems/request_set/lockfile/tokenizer.rb +2 -2
  76. data/lib/rubygems/request_set.rb +3 -3
  77. data/lib/rubygems/requirement.rb +1 -1
  78. data/lib/rubygems/resolver/api_specification.rb +4 -4
  79. data/lib/rubygems/resolver/best_set.rb +3 -3
  80. data/lib/rubygems/resolver/conflict.rb +3 -3
  81. data/lib/rubygems/resolver/git_specification.rb +3 -3
  82. data/lib/rubygems/resolver/index_specification.rb +3 -2
  83. data/lib/rubygems/resolver/installed_specification.rb +2 -2
  84. data/lib/rubygems/resolver/installer_set.rb +7 -12
  85. data/lib/rubygems/resolver/lock_set.rb +1 -1
  86. data/lib/rubygems/resolver/lock_specification.rb +1 -1
  87. data/lib/rubygems/resolver/vendor_specification.rb +3 -3
  88. data/lib/rubygems/resolver.rb +4 -4
  89. data/lib/rubygems/security/policy.rb +6 -6
  90. data/lib/rubygems/security/signer.rb +1 -1
  91. data/lib/rubygems/security.rb +1 -1
  92. data/lib/rubygems/source/git.rb +4 -4
  93. data/lib/rubygems/source.rb +1 -1
  94. data/lib/rubygems/spec_fetcher.rb +1 -1
  95. data/lib/rubygems/specification.rb +26 -24
  96. data/lib/rubygems/specification_policy.rb +4 -4
  97. data/lib/rubygems/uninstaller.rb +4 -4
  98. data/lib/rubygems/user_interaction.rb +2 -2
  99. data/lib/rubygems/version.rb +12 -4
  100. data/lib/rubygems.rb +8 -8
  101. data/rubygems-update.gemspec +1 -1
  102. data/setup.rb +1 -1
  103. data/test/rubygems/helper.rb +5 -5
  104. data/test/rubygems/test_gem_config_file.rb +17 -5
  105. data/test/rubygems/test_gem_dependency_installer.rb +2 -2
  106. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.lock +4 -4
  107. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.toml +1 -1
  108. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/build.rb +1 -1
  109. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +4 -4
  110. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +1 -1
  111. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/build.rb +1 -1
  112. data/test/rubygems/test_gem_installer.rb +6 -3
  113. data/test/rubygems/test_gem_package.rb +22 -0
  114. data/test/rubygems/test_gem_package_tar_reader.rb +1 -1
  115. data/test/rubygems/test_gem_requirement.rb +9 -3
  116. data/test/rubygems/test_gem_resolver_index_specification.rb +1 -1
  117. data/test/rubygems/test_gem_resolver_installer_set.rb +44 -0
  118. data/test/rubygems/test_gem_specification.rb +11 -2
  119. data/test/rubygems/test_gem_version.rb +9 -2
  120. data/test/rubygems/test_require.rb +1 -1
  121. data/test/rubygems/utilities.rb +4 -4
  122. metadata +3 -3
@@ -129,7 +129,9 @@ class TestGemRequirement < Gem::TestCase
129
129
  assert_satisfied_by "1.3", r
130
130
 
131
131
  assert_raise ArgumentError do
132
- assert_satisfied_by nil, r
132
+ Gem::Deprecate.skip_during do
133
+ assert_satisfied_by nil, r
134
+ end
133
135
  end
134
136
  end
135
137
 
@@ -141,7 +143,9 @@ class TestGemRequirement < Gem::TestCase
141
143
  refute_satisfied_by "1.3", r
142
144
 
143
145
  assert_raise ArgumentError do
144
- assert_satisfied_by nil, r
146
+ Gem::Deprecate.skip_during do
147
+ assert_satisfied_by nil, r
148
+ end
145
149
  end
146
150
  end
147
151
 
@@ -153,7 +157,9 @@ class TestGemRequirement < Gem::TestCase
153
157
  refute_satisfied_by "1.3", r
154
158
 
155
159
  assert_raise ArgumentError do
156
- assert_satisfied_by nil, r
160
+ Gem::Deprecate.skip_during do
161
+ assert_satisfied_by nil, r
162
+ end
157
163
  end
158
164
  end
159
165
 
@@ -26,7 +26,7 @@ class TestGemResolverIndexSpecification < Gem::TestCase
26
26
  spec = Gem::Resolver::IndexSpecification.new(
27
27
  set, "rails", version, source, Gem::Platform.local)
28
28
 
29
- assert_equal Gem::Platform.local.to_s, spec.platform
29
+ assert_equal Gem::Platform.local, spec.platform
30
30
  end
31
31
 
32
32
  def test_install
@@ -51,6 +51,38 @@ class TestGemResolverInstallerSet < Gem::TestCase
51
51
  assert_equal %w[a-1], set.always_install.map {|s| s.full_name }
52
52
  end
53
53
 
54
+ def test_add_always_install_platform_if_gem_platforms_modified_by_platform_flag
55
+ freebsd = Gem::Platform.new "x86-freebsd-9"
56
+
57
+ spec_fetcher do |fetcher|
58
+ fetcher.download "a", 1
59
+ fetcher.download "a", 1 do |s|
60
+ s.platform = freebsd
61
+ end
62
+ end
63
+
64
+ # equivalent to --platform=x86-freebsd-9
65
+ Gem.platforms << freebsd
66
+ set = Gem::Resolver::InstallerSet.new :both
67
+
68
+ set.add_always_install dep("a")
69
+
70
+ assert_equal %w[a-1-x86-freebsd-9], set.always_install.map {|s| s.full_name }
71
+ end
72
+
73
+ def test_add_always_install_index_spec_platform
74
+ _, a_1_local_gem = util_gem "a", 1 do |s|
75
+ s.platform = Gem::Platform.local
76
+ end
77
+
78
+ FileUtils.mv a_1_local_gem, @tempdir
79
+
80
+ set = Gem::Resolver::InstallerSet.new :both
81
+ set.add_always_install dep("a")
82
+
83
+ assert_equal [Gem::Platform.local], set.always_install.map {|s| s.platform }
84
+ end
85
+
54
86
  def test_add_always_install_prerelease
55
87
  spec_fetcher do |fetcher|
56
88
  fetcher.gem "a", 1
@@ -187,6 +219,18 @@ class TestGemResolverInstallerSet < Gem::TestCase
187
219
  set.find_all(req).map {|spec| spec.full_name }.sort
188
220
  end
189
221
 
222
+ def test_find_all_prerelease_dependencies_with_add_local
223
+ activesupport_7_1_0_alpha = util_spec "activesupport", "7.1.0.alpha"
224
+
225
+ install_gem activesupport_7_1_0_alpha
226
+
227
+ set = Gem::Resolver::InstallerSet.new :both
228
+
229
+ req = Gem::Resolver::DependencyRequest.new dep("activesupport", ">= 4.2.0"), nil
230
+
231
+ assert_equal %w[activesupport-7.1.0.alpha], set.find_all(req).map {|spec| spec.full_name }
232
+ end
233
+
190
234
  def test_load_spec
191
235
  specs = spec_fetcher do |fetcher|
192
236
  fetcher.spec "a", 2
@@ -796,7 +796,7 @@ dependencies: []
796
796
  assert_equal File.join(@tempdir, "a-2.gemspec"), spec.loaded_from
797
797
  end
798
798
 
799
- if RUBY_ENGINE == "ruby" and RUBY_VERSION < "2.7"
799
+ if RUBY_ENGINE == "ruby" && RUBY_VERSION < "2.7"
800
800
  def test_self_load_tainted
801
801
  full_path = @a2.spec_file
802
802
  write_file full_path do |io|
@@ -1220,6 +1220,15 @@ dependencies: []
1220
1220
  assert_equal "1.0.0.dev", spec.version.to_s
1221
1221
  end
1222
1222
 
1223
+ def test_initialize_nil_version
1224
+ expected = "nil versions are discouraged and will be deprecated in Rubygems 4\n"
1225
+ actual_stdout, actual_stderr = capture_output do
1226
+ Gem::Specification.new.version = nil
1227
+ end
1228
+ assert_empty actual_stdout
1229
+ assert_equal(expected, actual_stderr)
1230
+ end
1231
+
1223
1232
  def test__dump
1224
1233
  @a2.platform = Gem::Platform.local
1225
1234
  @a2.instance_variable_set :@original_platform, "old_platform"
@@ -1441,7 +1450,7 @@ dependencies: []
1441
1450
  @ext.build_extensions
1442
1451
  assert_path_not_exist @ext.extension_dir
1443
1452
  ensure
1444
- unless ($DEBUG or win_platform? or Process.uid.zero? or Gem.java_platform?)
1453
+ unless ($DEBUG || win_platform? || Process.uid.zero? || Gem.java_platform?)
1445
1454
  FileUtils.chmod 0755, File.join(@ext.base_dir, "extensions")
1446
1455
  FileUtils.chmod 0755, @ext.base_dir
1447
1456
  end
@@ -32,8 +32,15 @@ class TestGemVersion < Gem::TestCase
32
32
  def test_class_create
33
33
  real = Gem::Version.new(1.0)
34
34
 
35
- assert_same real, Gem::Version.create(real)
36
- assert_nil Gem::Version.create(nil)
35
+ assert_same real, Gem::Version.create(real)
36
+
37
+ expected = "nil versions are discouraged and will be deprecated in Rubygems 4\n"
38
+ actual_stdout, actual_stderr = capture_output do
39
+ assert_nil Gem::Version.create(nil)
40
+ end
41
+ assert_empty actual_stdout
42
+ assert_equal(expected, actual_stderr)
43
+
37
44
  assert_equal v("5.1"), Gem::Version.create("5.1")
38
45
 
39
46
  ver = "1.1".freeze
@@ -269,7 +269,7 @@ class TestGemRequire < Gem::TestCase
269
269
  assert_includes $LOAD_PATH, rubylibdir
270
270
  message = proc {
271
271
  "this test relies on the b-2 gem lib/ to be before stdlib to make sense\n" +
272
- $LOAD_PATH.pretty_inspect
272
+ $LOAD_PATH.pretty_inspect
273
273
  }
274
274
  assert_operator $LOAD_PATH.index(b2.load_paths[0]), :<, $LOAD_PATH.index(rubylibdir), message
275
275
 
@@ -39,9 +39,9 @@ class Gem::FakeFetcher
39
39
  end
40
40
 
41
41
  def find_data(path)
42
- return Gem.read_binary path.path if URI === path and "file" == path.scheme
42
+ return Gem.read_binary path.path if URI === path && "file" == path.scheme
43
43
 
44
- if URI === path and "URI::#{path.scheme.upcase}" != path.class.name
44
+ if URI === path && "URI::#{path.scheme.upcase}" != path.class.name
45
45
  raise ArgumentError,
46
46
  "mismatch for scheme #{path.scheme} and class #{path.class}"
47
47
  end
@@ -67,7 +67,7 @@ class Gem::FakeFetcher
67
67
  if data.respond_to?(:call)
68
68
  data.call
69
69
  else
70
- if path.to_s.end_with?(".gz") and not data.nil? and not data.empty?
70
+ if path.to_s.end_with?(".gz") && !data.nil? && !data.empty?
71
71
  data = Gem::Util.gunzip data
72
72
  end
73
73
  data
@@ -76,7 +76,7 @@ class Gem::FakeFetcher
76
76
 
77
77
  def cache_update_path(uri, path = nil, update = true)
78
78
  if data = fetch_path(uri)
79
- File.open(path, "wb") {|io| io.write data } if path and update
79
+ File.open(path, "wb") {|io| io.write data } if path && update
80
80
  data
81
81
  else
82
82
  Gem.read_binary(path) if 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.3.19
4
+ version: 3.3.20
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: 2022-07-27 00:00:00.000000000 Z
19
+ date: 2022-08-10 00:00:00.000000000 Z
20
20
  dependencies: []
21
21
  description: |-
22
22
  A package (also known as a library) contains a set of functionality
@@ -821,7 +821,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
821
821
  - !ruby/object:Gem::Version
822
822
  version: '0'
823
823
  requirements: []
824
- rubygems_version: 3.3.19
824
+ rubygems_version: 3.3.20
825
825
  signing_key:
826
826
  specification_version: 4
827
827
  summary: RubyGems is a package management framework for Ruby.