rubygems-update 3.3.20 → 3.3.21

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/Manifest.txt +4 -1
  4. data/bundler/CHANGELOG.md +23 -0
  5. data/bundler/UPGRADING.md +11 -4
  6. data/bundler/lib/bundler/build_metadata.rb +2 -2
  7. data/bundler/lib/bundler/cli/platform.rb +1 -1
  8. data/bundler/lib/bundler/definition.rb +27 -22
  9. data/bundler/lib/bundler/endpoint_specification.rb +1 -12
  10. data/bundler/lib/bundler/gem_version_promoter.rb +4 -0
  11. data/bundler/lib/bundler/inline.rb +1 -1
  12. data/bundler/lib/bundler/installer.rb +6 -11
  13. data/bundler/lib/bundler/lazy_specification.rb +2 -4
  14. data/bundler/lib/bundler/man/bundle-add.1 +1 -1
  15. data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
  16. data/bundler/lib/bundler/man/bundle-cache.1 +1 -1
  17. data/bundler/lib/bundler/man/bundle-check.1 +1 -1
  18. data/bundler/lib/bundler/man/bundle-clean.1 +1 -1
  19. data/bundler/lib/bundler/man/bundle-config.1 +11 -2
  20. data/bundler/lib/bundler/man/bundle-config.1.ronn +4 -1
  21. data/bundler/lib/bundler/man/bundle-doctor.1 +1 -1
  22. data/bundler/lib/bundler/man/bundle-exec.1 +1 -1
  23. data/bundler/lib/bundler/man/bundle-gem.1 +1 -1
  24. data/bundler/lib/bundler/man/bundle-info.1 +1 -1
  25. data/bundler/lib/bundler/man/bundle-init.1 +1 -1
  26. data/bundler/lib/bundler/man/bundle-inject.1 +1 -1
  27. data/bundler/lib/bundler/man/bundle-install.1 +1 -1
  28. data/bundler/lib/bundler/man/bundle-list.1 +1 -1
  29. data/bundler/lib/bundler/man/bundle-lock.1 +1 -1
  30. data/bundler/lib/bundler/man/bundle-open.1 +1 -1
  31. data/bundler/lib/bundler/man/bundle-outdated.1 +1 -1
  32. data/bundler/lib/bundler/man/bundle-platform.1 +1 -1
  33. data/bundler/lib/bundler/man/bundle-plugin.1 +81 -0
  34. data/bundler/lib/bundler/man/bundle-plugin.1.ronn +59 -0
  35. data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
  36. data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
  37. data/bundler/lib/bundler/man/bundle-show.1 +1 -1
  38. data/bundler/lib/bundler/man/bundle-update.1 +1 -1
  39. data/bundler/lib/bundler/man/bundle-viz.1 +1 -1
  40. data/bundler/lib/bundler/man/bundle.1 +5 -1
  41. data/bundler/lib/bundler/man/bundle.1.ronn +3 -0
  42. data/bundler/lib/bundler/man/gemfile.5 +1 -1
  43. data/bundler/lib/bundler/man/index.txt +1 -0
  44. data/bundler/lib/bundler/match_metadata.rb +13 -0
  45. data/bundler/lib/bundler/match_remote_metadata.rb +26 -0
  46. data/bundler/lib/bundler/plugin.rb +2 -0
  47. data/bundler/lib/bundler/remote_specification.rb +1 -7
  48. data/bundler/lib/bundler/resolver/spec_group.rb +11 -8
  49. data/bundler/lib/bundler/resolver.rb +39 -17
  50. data/bundler/lib/bundler/rubygems_ext.rb +28 -0
  51. data/bundler/lib/bundler/spec_set.rb +19 -9
  52. data/bundler/lib/bundler/version.rb +1 -1
  53. data/bundler/lib/bundler.rb +3 -4
  54. data/lib/rubygems/platform.rb +16 -5
  55. data/lib/rubygems.rb +1 -1
  56. data/rubygems-update.gemspec +1 -1
  57. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.lock +4 -4
  58. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.toml +1 -1
  59. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +4 -4
  60. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +1 -1
  61. data/test/rubygems/test_gem_platform.rb +41 -2
  62. data/test/rubygems/test_gem_resolver.rb +37 -3
  63. metadata +7 -4
  64. data/bundler/lib/bundler/incomplete_specification.rb +0 -12
@@ -7,4 +7,4 @@ edition = "2021"
7
7
  crate-type = ["cdylib"]
8
8
 
9
9
  [dependencies]
10
- rb-sys = { version = "0.9.29", features = ["gem"] }
10
+ rb-sys = { version = "0.9.30", features = ["gem"] }
@@ -119,8 +119,8 @@ class TestGemPlatform < Gem::TestCase
119
119
  "i586-linux" => ["x86", "linux", nil],
120
120
  "i486-linux" => ["x86", "linux", nil],
121
121
  "i386-linux" => ["x86", "linux", nil],
122
- "i586-linux-gnu" => ["x86", "linux", nil],
123
- "i386-linux-gnu" => ["x86", "linux", nil],
122
+ "i586-linux-gnu" => ["x86", "linux", "gnu"],
123
+ "i386-linux-gnu" => ["x86", "linux", "gnu"],
124
124
  "i386-mingw32" => ["x86", "mingw32", nil],
125
125
  "x64-mingw-ucrt" => ["x64", "mingw", "ucrt"],
126
126
  "i386-mswin32" => ["x86", "mswin32", nil],
@@ -135,7 +135,9 @@ class TestGemPlatform < Gem::TestCase
135
135
  "i386-solaris2.8" => ["x86", "solaris", "2.8"],
136
136
  "mswin32" => ["x86", "mswin32", nil],
137
137
  "x86_64-linux" => ["x86_64", "linux", nil],
138
+ "x86_64-linux-gnu" => ["x86_64", "linux", "gnu"],
138
139
  "x86_64-linux-musl" => ["x86_64", "linux", "musl"],
140
+ "x86_64-linux-uclibc" => ["x86_64", "linux", "uclibc"],
139
141
  "x86_64-openbsd3.9" => ["x86_64", "openbsd", "3.9"],
140
142
  "x86_64-openbsd4.0" => ["x86_64", "openbsd", "4.0"],
141
143
  "x86_64-openbsd" => ["x86_64", "openbsd", nil],
@@ -144,6 +146,7 @@ class TestGemPlatform < Gem::TestCase
144
146
  test_cases.each do |arch, expected|
145
147
  platform = Gem::Platform.new arch
146
148
  assert_equal expected, platform.to_a, arch.inspect
149
+ assert_equal expected, Gem::Platform.new(platform.to_s).to_a, arch.inspect
147
150
  end
148
151
  end
149
152
 
@@ -262,6 +265,42 @@ class TestGemPlatform < Gem::TestCase
262
265
  assert((with_x86_arch === with_nil_arch), "x86 =~ nil")
263
266
  end
264
267
 
268
+ def test_nil_version_is_treated_as_any_version
269
+ x86_darwin_8 = Gem::Platform.new "i686-darwin8.0"
270
+ x86_darwin_nil = Gem::Platform.new "i686-darwin"
271
+
272
+ assert((x86_darwin_8 === x86_darwin_nil), "8.0 =~ nil")
273
+ assert((x86_darwin_nil === x86_darwin_8), "nil =~ 8.0")
274
+ end
275
+
276
+ def test_nil_version_is_stricter_for_linux_os
277
+ x86_linux = Gem::Platform.new "i686-linux"
278
+ x86_linux_gnu = Gem::Platform.new "i686-linux-gnu"
279
+ x86_linux_musl = Gem::Platform.new "i686-linux-musl"
280
+ x86_linux_uclibc = Gem::Platform.new "i686-linux-uclibc"
281
+
282
+ # a naked linux runtime is implicit gnu, as it represents the common glibc-linked runtime
283
+ assert(x86_linux === x86_linux_gnu, "linux =~ linux-gnu")
284
+ assert(x86_linux_gnu === x86_linux, "linux-gnu =~ linux")
285
+
286
+ # musl and explicit gnu should differ
287
+ refute(x86_linux_gnu === x86_linux_musl, "linux-gnu =~ linux-musl")
288
+ refute(x86_linux_musl === x86_linux_gnu, "linux-musl =~ linux-gnu")
289
+
290
+ # explicit libc differ
291
+ refute(x86_linux_uclibc === x86_linux_musl, "linux-uclibc =~ linux-musl")
292
+ refute(x86_linux_musl === x86_linux_uclibc, "linux-musl =~ linux-uclibc")
293
+
294
+ # musl host runtime accepts libc-generic or statically linked gems...
295
+ assert(x86_linux === x86_linux_musl, "linux =~ linux-musl")
296
+ # ...but implicit gnu runtime generally does not accept musl-specific gems
297
+ refute(x86_linux_musl === x86_linux, "linux-musl =~ linux")
298
+
299
+ # other libc are not glibc compatible
300
+ refute(x86_linux === x86_linux_uclibc, "linux =~ linux-uclibc")
301
+ refute(x86_linux_uclibc === x86_linux, "linux-uclibc =~ linux")
302
+ end
303
+
265
304
  def test_equals3_cpu_arm
266
305
  arm = Gem::Platform.new "arm-linux"
267
306
  armv5 = Gem::Platform.new "armv5-linux"
@@ -322,16 +322,15 @@ class TestGemResolver < Gem::TestCase
322
322
  def test_picks_best_platform
323
323
  is = Gem::Resolver::IndexSpecification
324
324
  unknown = Gem::Platform.new "unknown"
325
- a2_p1 = a3_p2 = nil
326
325
 
327
326
  spec_fetcher do |fetcher|
328
327
  fetcher.spec "a", 2
329
328
 
330
- a2_p1 = fetcher.spec "a", 2 do |s|
329
+ fetcher.spec "a", 2 do |s|
331
330
  s.platform = Gem::Platform.local
332
331
  end
333
332
 
334
- a3_p2 = fetcher.spec "a", 3 do |s|
333
+ fetcher.spec "a", 3 do |s|
335
334
  s.platform = unknown
336
335
  end
337
336
  end
@@ -357,6 +356,41 @@ class TestGemResolver < Gem::TestCase
357
356
  assert_resolves_to [a2_p1.spec], res
358
357
  end
359
358
 
359
+ def test_does_not_pick_musl_variants_on_non_musl_linux
360
+ util_set_arch "aarch64-linux" do
361
+ is = Gem::Resolver::IndexSpecification
362
+
363
+ linux_musl = Gem::Platform.new("aarch64-linux-musl")
364
+
365
+ spec_fetcher do |fetcher|
366
+ fetcher.spec "libv8-node", "15.14.0.1" do |s|
367
+ s.platform = Gem::Platform.local
368
+ end
369
+
370
+ fetcher.spec "libv8-node", "15.14.0.1" do |s|
371
+ s.platform = linux_musl
372
+ end
373
+ end
374
+
375
+ v15 = v("15.14.0.1")
376
+ source = Gem::Source.new @gem_repo
377
+
378
+ s = set
379
+
380
+ v15_linux = is.new s, "libv8-node", v15, source, Gem::Platform.local.to_s
381
+ v15_linux_musl = is.new s, "libv8-node", v15, source, linux_musl.to_s
382
+
383
+ s.add v15_linux
384
+ s.add v15_linux_musl
385
+
386
+ ad = make_dep "libv8-node", "= 15.14.0.1"
387
+
388
+ res = Gem::Resolver.new([ad], s)
389
+
390
+ assert_resolves_to [v15_linux.spec], res
391
+ end
392
+ end
393
+
360
394
  def test_only_returns_spec_once
361
395
  a1 = util_spec "a", "1", "c" => "= 1"
362
396
  b1 = util_spec "b", "1", "c" => "= 1"
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.20
4
+ version: 3.3.21
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-08-10 00:00:00.000000000 Z
19
+ date: 2022-08-24 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
@@ -136,7 +136,6 @@ files:
136
136
  - bundler/lib/bundler/gem_tasks.rb
137
137
  - bundler/lib/bundler/gem_version_promoter.rb
138
138
  - bundler/lib/bundler/graph.rb
139
- - bundler/lib/bundler/incomplete_specification.rb
140
139
  - bundler/lib/bundler/index.rb
141
140
  - bundler/lib/bundler/injector.rb
142
141
  - bundler/lib/bundler/inline.rb
@@ -184,6 +183,8 @@ files:
184
183
  - bundler/lib/bundler/man/bundle-outdated.1.ronn
185
184
  - bundler/lib/bundler/man/bundle-platform.1
186
185
  - bundler/lib/bundler/man/bundle-platform.1.ronn
186
+ - bundler/lib/bundler/man/bundle-plugin.1
187
+ - bundler/lib/bundler/man/bundle-plugin.1.ronn
187
188
  - bundler/lib/bundler/man/bundle-pristine.1
188
189
  - bundler/lib/bundler/man/bundle-pristine.1.ronn
189
190
  - bundler/lib/bundler/man/bundle-remove.1
@@ -199,7 +200,9 @@ files:
199
200
  - bundler/lib/bundler/man/gemfile.5
200
201
  - bundler/lib/bundler/man/gemfile.5.ronn
201
202
  - bundler/lib/bundler/man/index.txt
203
+ - bundler/lib/bundler/match_metadata.rb
202
204
  - bundler/lib/bundler/match_platform.rb
205
+ - bundler/lib/bundler/match_remote_metadata.rb
203
206
  - bundler/lib/bundler/mirror.rb
204
207
  - bundler/lib/bundler/plugin.rb
205
208
  - bundler/lib/bundler/plugin/api.rb
@@ -821,7 +824,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
821
824
  - !ruby/object:Gem::Version
822
825
  version: '0'
823
826
  requirements: []
824
- rubygems_version: 3.3.20
827
+ rubygems_version: 3.3.21
825
828
  signing_key:
826
829
  specification_version: 4
827
830
  summary: RubyGems is a package management framework for Ruby.
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Bundler
4
- class IncompleteSpecification
5
- attr_reader :name, :platform
6
-
7
- def initialize(name, platform)
8
- @name = name
9
- @platform = platform
10
- end
11
- end
12
- end