rubygems-update 3.4.7 → 3.4.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +32 -0
  3. data/Manifest.txt +2 -0
  4. data/POLICIES.md +5 -5
  5. data/README.md +1 -4
  6. data/bundler/CHANGELOG.md +23 -0
  7. data/bundler/README.md +1 -4
  8. data/bundler/lib/bundler/build_metadata.rb +2 -2
  9. data/bundler/lib/bundler/environment_preserver.rb +2 -2
  10. data/bundler/lib/bundler/fetcher.rb +2 -2
  11. data/bundler/lib/bundler/index.rb +2 -2
  12. data/bundler/lib/bundler/injector.rb +1 -1
  13. data/bundler/lib/bundler/installer/parallel_installer.rb +1 -14
  14. data/bundler/lib/bundler/lockfile_generator.rb +1 -1
  15. data/bundler/lib/bundler/lockfile_parser.rb +9 -9
  16. data/bundler/lib/bundler/plugin.rb +1 -1
  17. data/bundler/lib/bundler/rubygems_integration.rb +1 -1
  18. data/bundler/lib/bundler/setup.rb +4 -1
  19. data/bundler/lib/bundler/source/git/git_proxy.rb +16 -4
  20. data/bundler/lib/bundler/source/git.rb +1 -0
  21. data/bundler/lib/bundler/source/path.rb +1 -1
  22. data/bundler/lib/bundler/spec_set.rb +8 -2
  23. data/bundler/lib/bundler/templates/Executable.bundler +1 -1
  24. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +1 -1
  25. data/bundler/lib/bundler/version.rb +1 -1
  26. data/bundler/lib/bundler.rb +9 -9
  27. data/lib/rubygems/bundler_version_finder.rb +1 -1
  28. data/lib/rubygems/command.rb +10 -6
  29. data/lib/rubygems/command_manager.rb +1 -0
  30. data/lib/rubygems/commands/exec_command.rb +248 -0
  31. data/lib/rubygems/commands/help_command.rb +3 -3
  32. data/lib/rubygems/defaults.rb +2 -2
  33. data/lib/rubygems/dependency.rb +1 -1
  34. data/lib/rubygems/package/tar_reader/entry.rb +82 -3
  35. data/lib/rubygems/package/tar_reader.rb +0 -28
  36. data/lib/rubygems/platform.rb +2 -2
  37. data/lib/rubygems/request_set/gem_dependency_api.rb +0 -1
  38. data/lib/rubygems/requirement.rb +1 -1
  39. data/lib/rubygems/resolver/stats.rb +1 -1
  40. data/lib/rubygems/source/git.rb +1 -1
  41. data/lib/rubygems/specification.rb +9 -1
  42. data/lib/rubygems/stub_specification.rb +7 -7
  43. data/lib/rubygems/text.rb +1 -1
  44. data/lib/rubygems/util/licenses.rb +2 -2
  45. data/lib/rubygems/version.rb +2 -2
  46. data/lib/rubygems.rb +3 -3
  47. data/rubygems-update.gemspec +1 -1
  48. data/test/rubygems/helper.rb +2 -3
  49. data/test/rubygems/package/tar_test_case.rb +49 -14
  50. data/test/rubygems/simple_gem.rb +1 -1
  51. data/test/rubygems/test_gem.rb +24 -0
  52. data/test/rubygems/test_gem_bundler_version_finder.rb +2 -2
  53. data/test/rubygems/test_gem_commands_exec_command.rb +851 -0
  54. data/test/rubygems/test_gem_commands_install_command.rb +1 -1
  55. data/test/rubygems/test_gem_commands_setup_command.rb +1 -1
  56. data/test/rubygems/test_gem_ext_builder.rb +3 -5
  57. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +20 -6
  58. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +1 -1
  59. data/test/rubygems/test_gem_gem_runner.rb +2 -2
  60. data/test/rubygems/test_gem_package.rb +0 -25
  61. data/test/rubygems/test_gem_package_tar_reader.rb +48 -1
  62. data/test/rubygems/test_gem_package_tar_reader_entry.rb +102 -15
  63. data/test/rubygems/test_gem_remote_fetcher.rb +1 -1
  64. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +10 -10
  65. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +2 -2
  66. data/test/rubygems/test_gem_resolver_git_set.rb +9 -9
  67. data/test/rubygems/test_gem_resolver_git_specification.rb +1 -1
  68. data/test/rubygems/test_gem_source.rb +1 -1
  69. data/test/rubygems/test_gem_source_git.rb +13 -12
  70. data/test/rubygems/test_gem_source_installed.rb +1 -1
  71. data/test/rubygems/test_gem_source_lock.rb +3 -3
  72. data/test/rubygems/test_gem_source_vendor.rb +1 -1
  73. data/test/rubygems/test_gem_specification.rb +19 -2
  74. data/test/rubygems/test_gem_version.rb +2 -2
  75. data/test/rubygems/test_kernel.rb +0 -8
  76. metadata +5 -3
@@ -563,14 +563,13 @@ class Gem::TestCase < Test::Unit::TestCase
563
563
  Dir.chdir directory do
564
564
  unless File.exist? ".git"
565
565
  system @git, "init", "--quiet"
566
- system @git, "checkout", "-b", "master", "--quiet"
567
566
  system @git, "config", "user.name", "RubyGems Tests"
568
567
  system @git, "config", "user.email", "rubygems@example"
569
568
  end
570
569
 
571
570
  system @git, "add", gemspec
572
571
  system @git, "commit", "-a", "-m", "a non-empty commit message", "--quiet"
573
- head = Gem::Util.popen(@git, "rev-parse", "master").strip
572
+ head = Gem::Util.popen(@git, "rev-parse", "HEAD").strip
574
573
  end
575
574
 
576
575
  return name, git_spec.version, directory, head
@@ -1555,7 +1554,7 @@ Also, a list:
1555
1554
  # :stopdoc:
1556
1555
  # only available in RubyGems tests
1557
1556
 
1558
- PRIVATE_KEY_PASSPHRASE = "Foo bar".freeze
1557
+ PRIVATE_KEY_PASSPHRASE = "Foo bar"
1559
1558
 
1560
1559
  begin
1561
1560
  PRIVATE_KEY = load_key "private"
@@ -90,31 +90,36 @@ class Gem::Package::TarTestCase < Gem::TestCase
90
90
  ASCIIZ("wheel", 32), # char gname[32]; ASCIIZ
91
91
  Z(to_oct(0, 7)), # char devmajor[8]; 0 padded, octal, null
92
92
  Z(to_oct(0, 7)), # char devminor[8]; 0 padded, octal, null
93
- ASCIIZ(dname, 155), # char prefix[155]; ASCII + (Z unless filled)
93
+ ASCIIZ(dname, 155), # char prefix[155]; ASCII + (Z unless filled)
94
94
  ]
95
95
 
96
96
  h = arr.join
97
- ret = h + "\0" * (512 - h.size)
97
+ ret = ASCIIZ(h, 512)
98
98
  assert_equal(512, ret.size)
99
99
  ret
100
100
  end
101
101
 
102
- def tar_dir_header(name, prefix, mode, mtime)
103
- h = header("5", name, prefix, 0, mode, mtime)
102
+ def header_with_checksum(type, fname, dname, length, mode, mtime, linkname = "")
103
+ h = header(type, fname, dname, length, mode, mtime, nil, linkname)
104
104
  checksum = calc_checksum(h)
105
- header("5", name, prefix, 0, mode, mtime, checksum)
105
+ header(type, fname, dname, length, mode, mtime, checksum, linkname)
106
+ end
107
+
108
+ def tar_dir_header(name, prefix, mode, mtime)
109
+ header_with_checksum("5", name, prefix, 0, mode, mtime)
106
110
  end
107
111
 
108
112
  def tar_file_header(fname, dname, mode, length, mtime)
109
- h = header("0", fname, dname, length, mode, mtime)
110
- checksum = calc_checksum(h)
111
- header("0", fname, dname, length, mode, mtime, checksum)
113
+ header_with_checksum("0", fname, dname, length, mode, mtime)
112
114
  end
113
115
 
114
- def tar_symlink_header(fname, prefix, mode, mtime, linkname)
115
- h = header("2", fname, prefix, 0, mode, mtime, nil, linkname)
116
- checksum = calc_checksum(h)
117
- header("2", fname, prefix, 0, mode, mtime, checksum, linkname)
116
+ def tar_symlink_header(fname, dname, mode, mtime, linkname)
117
+ header_with_checksum("2", fname, dname, 0, mode, mtime, linkname)
118
+ end
119
+
120
+ def tar_file_contents(content)
121
+ pad = (512 - (content.size % 512)) % 512
122
+ content + "\0" * pad
118
123
  end
119
124
 
120
125
  def to_oct(n, pad_size)
@@ -122,11 +127,15 @@ class Gem::Package::TarTestCase < Gem::TestCase
122
127
  end
123
128
 
124
129
  def util_entry(tar)
125
- io = TempIO.new tar
130
+ io = tar.respond_to?(:read) ? tar : TempIO.new(tar)
126
131
 
127
132
  header = Gem::Package::TarHeader.from io
128
133
 
129
- Gem::Package::TarReader::Entry.new header, io
134
+ Gem::Package::TarReader::Entry.open header, io
135
+ end
136
+
137
+ def close_util_entry(entry)
138
+ entry.instance_variable_get(:@io).close!
130
139
  end
131
140
 
132
141
  def util_dir_entry
@@ -136,4 +145,30 @@ class Gem::Package::TarTestCase < Gem::TestCase
136
145
  def util_symlink_entry
137
146
  util_entry tar_symlink_header("foo", "bar", 0, Time.now, "link")
138
147
  end
148
+
149
+ def util_tar(&block)
150
+ tar_io = StringIO.new
151
+ Gem::Package::TarWriter.new(tar_io, &block)
152
+ tar_io.rewind
153
+ tar_io
154
+ end
155
+
156
+ def util_tar_gz(&block)
157
+ tar_io = util_tar(&block)
158
+ StringIO.new util_gzip(tar_io.string)
159
+ end
160
+
161
+ def util_gem_data_tar(spec = nil, &block)
162
+ data_tgz = util_tar_gz(&block)
163
+ util_tar do |tar|
164
+ if spec
165
+ tar.add_file "metadata.gz", 0444 do |io|
166
+ io.write util_gzip(spec.to_yaml)
167
+ end
168
+ end
169
+ tar.add_file "data.tar.gz", 0644 do |io|
170
+ io.write data_tgz.string
171
+ end
172
+ end
173
+ end
139
174
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
- SIMPLE_GEM = <<-GEMDATA.freeze
2
+ SIMPLE_GEM = <<-GEMDATA
3
3
  MD5SUM = "989bf34a1cbecd52e0ea66b662b3a405"
4
4
  if $0 == __FILE__
5
5
  require 'optparse'
@@ -1654,6 +1654,30 @@ class TestGem < Gem::TestCase
1654
1654
  ENV["SOURCE_DATE_EPOCH"] = old_epoch
1655
1655
  end
1656
1656
 
1657
+ def test_data_home_default
1658
+ expected = File.join(@userhome, ".local", "share")
1659
+ assert_equal expected, Gem.data_home
1660
+ end
1661
+
1662
+ def test_data_home_from_env
1663
+ ENV["XDG_DATA_HOME"] = expected = "/test/data/home"
1664
+ assert_equal expected, Gem.data_home
1665
+ end
1666
+
1667
+ def test_state_home_default
1668
+ Gem.instance_variable_set :@state_home, nil
1669
+ Gem.data_home # memoize @data_home, to demonstrate GH-6418
1670
+ expected = File.join(@userhome, ".local", "state")
1671
+ assert_equal expected, Gem.state_home
1672
+ end
1673
+
1674
+ def test_state_home_from_env
1675
+ Gem.instance_variable_set :@state_home, nil
1676
+ Gem.data_home # memoize @data_home, to demonstrate GH-6418
1677
+ ENV["XDG_STATE_HOME"] = expected = "/test/state/home"
1678
+ assert_equal expected, Gem.state_home
1679
+ end
1680
+
1657
1681
  private
1658
1682
 
1659
1683
  def ruby_install_name(name)
@@ -4,10 +4,10 @@ require "rubygems/bundler_version_finder"
4
4
 
5
5
  class TestGemBundlerVersionFinder < Gem::TestCase
6
6
  def setup
7
- super
8
-
9
7
  @argv = ARGV.dup
10
8
  @dollar_0 = $0
9
+ super
10
+
11
11
  without_any_upwards_gemfiles
12
12
  end
13
13