rubygems-update 3.2.9 → 3.2.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +40 -0
  3. data/Manifest.txt +1 -0
  4. data/Rakefile +6 -0
  5. data/bundler/CHANGELOG.md +49 -0
  6. data/bundler/lib/bundler/build_metadata.rb +2 -2
  7. data/bundler/lib/bundler/cli/gem.rb +23 -17
  8. data/bundler/lib/bundler/compact_index_client/updater.rb +1 -1
  9. data/bundler/lib/bundler/definition.rb +43 -26
  10. data/bundler/lib/bundler/dsl.rb +36 -25
  11. data/bundler/lib/bundler/inline.rb +1 -0
  12. data/bundler/lib/bundler/installer.rb +2 -0
  13. data/bundler/lib/bundler/installer/parallel_installer.rb +6 -8
  14. data/bundler/lib/bundler/lockfile_parser.rb +3 -13
  15. data/bundler/lib/bundler/man/bundle-config.1 +4 -4
  16. data/bundler/lib/bundler/man/bundle-config.1.ronn +8 -7
  17. data/bundler/lib/bundler/plugin.rb +1 -0
  18. data/bundler/lib/bundler/plugin/api/source.rb +7 -0
  19. data/bundler/lib/bundler/plugin/installer.rb +8 -10
  20. data/bundler/lib/bundler/plugin/source_list.rb +4 -0
  21. data/bundler/lib/bundler/resolver.rb +36 -38
  22. data/bundler/lib/bundler/rubygems_gem_installer.rb +47 -0
  23. data/bundler/lib/bundler/source.rb +6 -0
  24. data/bundler/lib/bundler/source/metadata.rb +0 -4
  25. data/bundler/lib/bundler/source/rubygems.rb +20 -4
  26. data/bundler/lib/bundler/source_list.rb +27 -20
  27. data/bundler/lib/bundler/spec_set.rb +2 -0
  28. data/bundler/lib/bundler/stub_specification.rb +8 -0
  29. data/bundler/lib/bundler/templates/newgem/README.md.tt +5 -3
  30. data/bundler/lib/bundler/version.rb +1 -1
  31. data/lib/rubygems.rb +1 -1
  32. data/lib/rubygems/command.rb +1 -0
  33. data/lib/rubygems/config_file.rb +9 -0
  34. data/lib/rubygems/core_ext/tcpsocket_init.rb +52 -0
  35. data/lib/rubygems/remote_fetcher.rb +4 -8
  36. data/lib/rubygems/specification.rb +3 -0
  37. data/rubygems-update.gemspec +1 -1
  38. data/test/rubygems/test_gem.rb +2 -8
  39. data/test/rubygems/test_gem_config_file.rb +10 -0
  40. data/test/rubygems/test_gem_remote_fetcher.rb +44 -0
  41. metadata +4 -3
@@ -41,6 +41,7 @@ class TestGemConfigFile < Gem::TestCase
41
41
  assert_equal true, @cfg.verbose
42
42
  assert_equal [@gem_repo], Gem.sources
43
43
  assert_equal 365, @cfg.cert_expiration_length_days
44
+ assert_equal false, @cfg.ipv4_fallback_enabled
44
45
 
45
46
  File.open @temp_conf, 'w' do |fp|
46
47
  fp.puts ":backtrace: true"
@@ -56,6 +57,7 @@ class TestGemConfigFile < Gem::TestCase
56
57
  fp.puts ":ssl_verify_mode: 0"
57
58
  fp.puts ":ssl_ca_cert: /etc/ssl/certs"
58
59
  fp.puts ":cert_expiration_length_days: 28"
60
+ fp.puts ":ipv4_fallback_enabled: true"
59
61
  end
60
62
 
61
63
  util_config_file
@@ -70,6 +72,14 @@ class TestGemConfigFile < Gem::TestCase
70
72
  assert_equal 0, @cfg.ssl_verify_mode
71
73
  assert_equal '/etc/ssl/certs', @cfg.ssl_ca_cert
72
74
  assert_equal 28, @cfg.cert_expiration_length_days
75
+ assert_equal true, @cfg.ipv4_fallback_enabled
76
+ end
77
+
78
+ def test_initialize_ipv4_fallback_enabled_env
79
+ ENV['IPV4_FALLBACK_ENABLED'] = 'true'
80
+ util_config_file %W[--config-file #{@temp_conf}]
81
+
82
+ assert_equal true, @cfg.ipv4_fallback_enabled
73
83
  end
74
84
 
75
85
  def test_initialize_handle_arguments_config_file
@@ -496,6 +496,44 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg==
496
496
  assert_equal url, e.uri
497
497
  end
498
498
 
499
+ def test_fetch_path_timeout_error
500
+ fetcher = Gem::RemoteFetcher.new nil
501
+ @fetcher = fetcher
502
+
503
+ def fetcher.fetch_http(uri, mtime = nil, head = nil)
504
+ raise Timeout::Error, 'timed out'
505
+ end
506
+
507
+ url = 'http://example.com/uri'
508
+
509
+ e = assert_raises Gem::RemoteFetcher::FetchError do
510
+ fetcher.fetch_path url
511
+ end
512
+
513
+ assert_match %r{Timeout::Error: timed out \(#{Regexp.escape url}\)\z},
514
+ e.message
515
+ assert_equal url, e.uri
516
+ end
517
+
518
+ def test_fetch_path_getaddrinfo_error
519
+ fetcher = Gem::RemoteFetcher.new nil
520
+ @fetcher = fetcher
521
+
522
+ def fetcher.fetch_http(uri, mtime = nil, head = nil)
523
+ raise SocketError, 'getaddrinfo: nodename nor servname provided'
524
+ end
525
+
526
+ url = 'http://example.com/uri'
527
+
528
+ e = assert_raises Gem::RemoteFetcher::FetchError do
529
+ fetcher.fetch_path url
530
+ end
531
+
532
+ assert_match %r{SocketError: getaddrinfo: nodename nor servname provided \(#{Regexp.escape url}\)\z},
533
+ e.message
534
+ assert_equal url, e.uri
535
+ end
536
+
499
537
  def test_fetch_path_openssl_ssl_sslerror
500
538
  fetcher = Gem::RemoteFetcher.new nil
501
539
  @fetcher = fetcher
@@ -962,6 +1000,12 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg==
962
1000
  end
963
1001
  end
964
1002
 
1003
+ def test_tcpsocketext_require
1004
+ with_configured_fetcher(":ipv4_fallback_enabled: true") do |fetcher|
1005
+ refute require('rubygems/core_ext/tcpsocket_init')
1006
+ end
1007
+ end
1008
+
965
1009
  def with_configured_fetcher(config_str = nil, &block)
966
1010
  if config_str
967
1011
  temp_conf = File.join @tempdir, '.gemrc'
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.9
4
+ version: 3.2.14
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-02-08 00:00:00.000000000 Z
19
+ date: 2021-03-08 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
@@ -410,6 +410,7 @@ files:
410
410
  - lib/rubygems/core_ext/kernel_gem.rb
411
411
  - lib/rubygems/core_ext/kernel_require.rb
412
412
  - lib/rubygems/core_ext/kernel_warn.rb
413
+ - lib/rubygems/core_ext/tcpsocket_init.rb
413
414
  - lib/rubygems/defaults.rb
414
415
  - lib/rubygems/dependency.rb
415
416
  - lib/rubygems/dependency_installer.rb
@@ -767,7 +768,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
767
768
  - !ruby/object:Gem::Version
768
769
  version: '0'
769
770
  requirements: []
770
- rubygems_version: 3.2.9
771
+ rubygems_version: 3.2.14
771
772
  signing_key:
772
773
  specification_version: 4
773
774
  summary: RubyGems is a package management framework for Ruby.