rubygems-update 2.7.6 → 2.7.11
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +2 -23
- data/History.txt +116 -0
- data/Manifest.txt +3 -3
- data/Rakefile +12 -2
- data/bundler/CHANGELOG.md +130 -0
- data/bundler/README.md +5 -1
- data/bundler/bundler.gemspec +2 -1
- data/bundler/lib/bundler.rb +12 -8
- data/bundler/lib/bundler/build_metadata.rb +19 -2
- data/bundler/lib/bundler/cli.rb +3 -1
- data/bundler/lib/bundler/cli/check.rb +1 -1
- data/bundler/lib/bundler/cli/exec.rb +4 -4
- data/bundler/lib/bundler/cli/gem.rb +5 -2
- data/bundler/lib/bundler/cli/init.rb +5 -0
- data/bundler/lib/bundler/cli/install.rb +2 -2
- data/bundler/lib/bundler/cli/outdated.rb +1 -1
- data/bundler/lib/bundler/cli/update.rb +3 -3
- data/bundler/lib/bundler/compact_index_client/updater.rb +10 -1
- data/bundler/lib/bundler/current_ruby.rb +8 -1
- data/bundler/lib/bundler/definition.rb +33 -23
- data/bundler/lib/bundler/dep_proxy.rb +2 -2
- data/bundler/lib/bundler/dependency.rb +1 -0
- data/bundler/lib/bundler/deprecate.rb +2 -1
- data/bundler/lib/bundler/endpoint_specification.rb +1 -1
- data/bundler/lib/bundler/env.rb +10 -8
- data/bundler/lib/bundler/fetcher.rb +3 -3
- data/bundler/lib/bundler/fetcher/downloader.rb +10 -5
- data/bundler/lib/bundler/fetcher/index.rb +2 -2
- data/bundler/lib/bundler/friendly_errors.rb +2 -0
- data/bundler/lib/bundler/gem_helper.rb +1 -1
- data/bundler/lib/bundler/gem_version_promoter.rb +12 -0
- data/bundler/lib/bundler/injector.rb +5 -5
- data/bundler/lib/bundler/installer.rb +12 -4
- data/bundler/lib/bundler/installer/gem_installer.rb +9 -2
- data/bundler/lib/bundler/installer/parallel_installer.rb +1 -1
- data/bundler/lib/bundler/lazy_specification.rb +1 -1
- data/bundler/lib/bundler/mirror.rb +2 -2
- data/bundler/lib/bundler/plugin.rb +2 -2
- data/bundler/lib/bundler/plugin/index.rb +7 -2
- data/bundler/lib/bundler/process_lock.rb +1 -1
- data/bundler/lib/bundler/resolver.rb +10 -9
- data/bundler/lib/bundler/resolver/spec_group.rb +0 -5
- data/bundler/lib/bundler/ruby_version.rb +1 -1
- data/bundler/lib/bundler/rubygems_integration.rb +9 -3
- data/bundler/lib/bundler/runtime.rb +2 -2
- data/bundler/lib/bundler/shared_helpers.rb +15 -3
- data/bundler/lib/bundler/source/git.rb +2 -1
- data/bundler/lib/bundler/source/git/git_proxy.rb +6 -1
- data/bundler/lib/bundler/source/metadata.rb +1 -1
- data/bundler/lib/bundler/source/rubygems.rb +11 -2
- data/bundler/lib/bundler/source/rubygems/remote.rb +4 -1
- data/bundler/lib/bundler/spec_set.rb +4 -1
- data/bundler/lib/bundler/templates/Executable +1 -1
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +8 -2
- data/bundler/lib/bundler/templates/newgem/travis.yml.tt +2 -0
- data/bundler/lib/bundler/ui/shell.rb +3 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +11 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +7 -2
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +1 -1
- data/bundler/lib/bundler/version.rb +1 -1
- data/bundler/man/bundle-binstubs.ronn +3 -3
- data/bundler/man/bundle-check.ronn +3 -3
- data/bundler/man/bundle-config.ronn +13 -9
- data/bundler/man/bundle-doctor.ronn +33 -0
- data/bundler/man/bundle-exec.ronn +3 -3
- data/bundler/man/bundle-gem.ronn +1 -1
- data/bundler/man/bundle-init.ronn +15 -4
- data/bundler/man/bundle-inject.ronn +3 -3
- data/bundler/man/bundle-install.ronn +12 -3
- data/bundler/man/bundle-lock.ronn +1 -1
- data/bundler/man/bundle-outdated.ronn +1 -1
- data/bundler/man/bundle-package.ronn +3 -3
- data/bundler/man/bundle-show.ronn +3 -2
- data/bundler/man/bundle-update.ronn +18 -14
- data/bundler/man/bundle-viz.ronn +1 -1
- data/bundler/man/bundle.ronn +27 -27
- data/bundler/man/gemfile.5.ronn +24 -9
- data/lib/rubygems.rb +24 -11
- data/lib/rubygems/bundler_version_finder.rb +9 -22
- data/lib/rubygems/command_manager.rb +6 -4
- data/lib/rubygems/commands/install_command.rb +7 -0
- data/lib/rubygems/commands/owner_command.rb +4 -1
- data/lib/rubygems/commands/push_command.rb +37 -4
- data/lib/rubygems/commands/setup_command.rb +3 -3
- data/lib/rubygems/commands/uninstall_command.rb +1 -1
- data/lib/rubygems/commands/unpack_command.rb +1 -1
- data/lib/rubygems/core_ext/kernel_require.rb +2 -7
- data/lib/rubygems/dependency.rb +1 -0
- data/lib/rubygems/dependency_installer.rb +4 -2
- data/lib/rubygems/exceptions.rb +5 -1
- data/lib/rubygems/gemcutter_utilities.rb +5 -2
- data/lib/rubygems/indexer.rb +1 -1
- data/lib/rubygems/install_update_options.rb +1 -1
- data/lib/rubygems/installer.rb +29 -6
- data/lib/rubygems/package.rb +20 -2
- data/lib/rubygems/package/tar_header.rb +3 -1
- data/lib/rubygems/package/tar_writer.rb +2 -3
- data/lib/rubygems/remote_fetcher.rb +1 -1
- data/lib/rubygems/request_set.rb +28 -17
- data/lib/rubygems/requirement.rb +14 -3
- data/lib/rubygems/resolver/api_specification.rb +5 -0
- data/lib/rubygems/security.rb +6 -1
- data/lib/rubygems/server.rb +3 -3
- data/lib/rubygems/source.rb +1 -1
- data/lib/rubygems/specification.rb +7 -10
- data/lib/rubygems/ssl_certs/{index.rubygems.org → rubygems.org}/GlobalSignRootCA.pem +0 -0
- data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem +21 -0
- data/lib/rubygems/test_case.rb +22 -4
- data/lib/rubygems/test_utilities.rb +1 -1
- data/lib/rubygems/user_interaction.rb +9 -2
- data/lib/rubygems/util/licenses.rb +35 -4
- data/lib/rubygems/version.rb +7 -1
- data/lib/ubygems.rb +3 -0
- data/test/rubygems/test_bundled_ca.rb +7 -4
- data/test/rubygems/test_gem.rb +45 -10
- data/test/rubygems/test_gem_bundler_version_finder.rb +8 -7
- data/test/rubygems/test_gem_command_manager.rb +2 -2
- data/test/rubygems/test_gem_commands_build_command.rb +2 -0
- data/test/rubygems/test_gem_commands_install_command.rb +37 -0
- data/test/rubygems/test_gem_commands_push_command.rb +20 -0
- data/test/rubygems/test_gem_commands_setup_command.rb +6 -1
- data/test/rubygems/test_gem_commands_signin_command.rb +1 -1
- data/test/rubygems/test_gem_commands_uninstall_command.rb +1 -1
- data/test/rubygems/test_gem_dependency.rb +1 -1
- data/test/rubygems/test_gem_ext_rake_builder.rb +0 -4
- data/test/rubygems/test_gem_install_update_options.rb +2 -0
- data/test/rubygems/test_gem_installer.rb +109 -3
- data/test/rubygems/test_gem_package.rb +90 -5
- data/test/rubygems/test_gem_package_tar_header.rb +2 -1
- data/test/rubygems/test_gem_remote_fetcher.rb +6 -2
- data/test/rubygems/test_gem_request.rb +5 -2
- data/test/rubygems/test_gem_requirement.rb +6 -0
- data/test/rubygems/test_gem_resolver_api_specification.rb +24 -0
- data/test/rubygems/test_gem_resolver_installer_set.rb +1 -1
- data/test/rubygems/test_gem_security_policy.rb +3 -3
- data/test/rubygems/test_gem_server.rb +12 -12
- data/test/rubygems/test_gem_specification.rb +27 -13
- data/test/rubygems/test_gem_stream_ui.rb +2 -2
- data/test/rubygems/test_gem_text.rb +5 -0
- data/test/rubygems/test_gem_util.rb +4 -2
- data/test/rubygems/test_gem_version.rb +29 -2
- data/util/ci +1 -0
- data/util/generate_spdx_license_list.rb +15 -6
- data/util/update_bundled_ca_certificates.rb +1 -3
- metadata +12 -12
- data/lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -23
- data/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -25
@@ -6,6 +6,8 @@
|
|
6
6
|
#++
|
7
7
|
|
8
8
|
require 'rubygems/util'
|
9
|
+
require 'rubygems/deprecate'
|
10
|
+
require 'rubygems/text'
|
9
11
|
|
10
12
|
##
|
11
13
|
# Module that defines the default UserInteraction. Any class including this
|
@@ -13,6 +15,8 @@ require 'rubygems/util'
|
|
13
15
|
|
14
16
|
module Gem::DefaultUserInteraction
|
15
17
|
|
18
|
+
include Gem::Text
|
19
|
+
|
16
20
|
##
|
17
21
|
# The default UI is a class variable of the singleton class for this
|
18
22
|
# module.
|
@@ -160,8 +164,8 @@ module Gem::UserInteraction
|
|
160
164
|
# Calls +say+ with +msg+ or the results of the block if really_verbose
|
161
165
|
# is true.
|
162
166
|
|
163
|
-
def verbose
|
164
|
-
say(msg || yield) if Gem.configuration.really_verbose
|
167
|
+
def verbose(msg = nil)
|
168
|
+
say(clean_text(msg || yield)) if Gem.configuration.really_verbose
|
165
169
|
end
|
166
170
|
end
|
167
171
|
|
@@ -170,6 +174,8 @@ end
|
|
170
174
|
|
171
175
|
class Gem::StreamUI
|
172
176
|
|
177
|
+
extend Gem::Deprecate
|
178
|
+
|
173
179
|
##
|
174
180
|
# The input stream
|
175
181
|
|
@@ -384,6 +390,7 @@ class Gem::StreamUI
|
|
384
390
|
def debug(statement)
|
385
391
|
@errs.puts statement
|
386
392
|
end
|
393
|
+
deprecate :debug, :none, 2018, 12
|
387
394
|
|
388
395
|
##
|
389
396
|
# Terminate the application with exit code +status+, running any exit
|
@@ -8,7 +8,7 @@ class Gem::Licenses
|
|
8
8
|
|
9
9
|
# Software Package Data Exchange (SPDX) standard open-source software
|
10
10
|
# license identifiers
|
11
|
-
|
11
|
+
LICENSE_IDENTIFIERS = %w(
|
12
12
|
0BSD
|
13
13
|
AAL
|
14
14
|
ADSL
|
@@ -354,12 +354,43 @@ class Gem::Licenses
|
|
354
354
|
zlib-acknowledgement
|
355
355
|
).freeze
|
356
356
|
|
357
|
+
# exception identifiers
|
358
|
+
EXCEPTION_IDENTIFIERS = %w(
|
359
|
+
389-exception
|
360
|
+
Autoconf-exception-2.0
|
361
|
+
Autoconf-exception-3.0
|
362
|
+
Bison-exception-2.2
|
363
|
+
Bootloader-exception
|
364
|
+
CLISP-exception-2.0
|
365
|
+
Classpath-exception-2.0
|
366
|
+
DigiRule-FOSS-exception
|
367
|
+
FLTK-exception
|
368
|
+
Fawkes-Runtime-exception
|
369
|
+
Font-exception-2.0
|
370
|
+
GCC-exception-2.0
|
371
|
+
GCC-exception-3.1
|
372
|
+
LZMA-exception
|
373
|
+
Libtool-exception
|
374
|
+
Linux-syscall-note
|
375
|
+
Nokia-Qt-exception-1.1
|
376
|
+
OCCT-exception-1.0
|
377
|
+
Qwt-exception-1.0
|
378
|
+
WxWindows-exception-3.1
|
379
|
+
eCos-exception-2.0
|
380
|
+
freertos-exception-2.0
|
381
|
+
gnu-javamail-exception
|
382
|
+
i2p-gpl-java-exception
|
383
|
+
mif-exception
|
384
|
+
openvpn-openssl-exception
|
385
|
+
u-boot-exception-2.0
|
386
|
+
).freeze
|
387
|
+
|
357
388
|
REGEXP = %r{
|
358
389
|
\A
|
359
390
|
(
|
360
|
-
#{Regexp.union(
|
391
|
+
#{Regexp.union(LICENSE_IDENTIFIERS)}
|
361
392
|
\+?
|
362
|
-
(\s WITH \s
|
393
|
+
(\s WITH \s #{Regexp.union(EXCEPTION_IDENTIFIERS)})?
|
363
394
|
| #{NONSTANDARD}
|
364
395
|
)
|
365
396
|
\Z
|
@@ -370,7 +401,7 @@ class Gem::Licenses
|
|
370
401
|
end
|
371
402
|
|
372
403
|
def self.suggestions(license)
|
373
|
-
by_distance =
|
404
|
+
by_distance = LICENSE_IDENTIFIERS.group_by do |identifier|
|
374
405
|
levenshtein_distance(identifier, license)
|
375
406
|
end
|
376
407
|
lowest = by_distance.keys.min
|
data/lib/rubygems/version.rb
CHANGED
@@ -170,6 +170,10 @@ class Gem::Version
|
|
170
170
|
# True if the +version+ string matches RubyGems' requirements.
|
171
171
|
|
172
172
|
def self.correct? version
|
173
|
+
unless Gem::Deprecate.skip
|
174
|
+
warn "nil versions are discouraged and will be deprecated in Rubygems 4" if version.nil?
|
175
|
+
end
|
176
|
+
|
173
177
|
!!(version.to_s =~ ANCHORED_VERSION_PATTERN)
|
174
178
|
end
|
175
179
|
|
@@ -324,7 +328,9 @@ class Gem::Version
|
|
324
328
|
segments.pop while segments.size > 2
|
325
329
|
segments.push 0 while segments.size < 2
|
326
330
|
|
327
|
-
"~> #{segments.join(".")}"
|
331
|
+
recommendation = "~> #{segments.join(".")}"
|
332
|
+
recommendation += ".a" if prerelease?
|
333
|
+
recommendation
|
328
334
|
end
|
329
335
|
|
330
336
|
##
|
data/lib/ubygems.rb
CHANGED
@@ -7,5 +7,8 @@
|
|
7
7
|
# See LICENSE.txt for permissions.
|
8
8
|
#++
|
9
9
|
|
10
|
+
# TODO: Remove this file at RubyGems 4.0
|
11
|
+
# Based by https://bugs.ruby-lang.org/issues/14322#note-4
|
12
|
+
warn "`ubygems.rb' is deprecated, and will be removed on or after 2018-12-01. Remove `-rubygems' from your command-line, or use `-r rubygems' instead"
|
10
13
|
|
11
14
|
require 'rubygems'
|
@@ -51,13 +51,16 @@ if ENV["CI"] || ENV["TEST_SSL"]
|
|
51
51
|
assert_https('rubygems.org')
|
52
52
|
end
|
53
53
|
|
54
|
-
def
|
55
|
-
assert_https('rubygems.
|
54
|
+
def test_accessing_www_rubygems
|
55
|
+
assert_https('www.rubygems.org')
|
56
56
|
end
|
57
57
|
|
58
|
-
def
|
59
|
-
assert_https('
|
58
|
+
def test_accessing_staging
|
59
|
+
assert_https('staging.rubygems.org')
|
60
60
|
end
|
61
61
|
|
62
|
+
def test_accessing_new_index
|
63
|
+
assert_https('index.rubygems.org')
|
64
|
+
end
|
62
65
|
end
|
63
66
|
end
|
data/test/rubygems/test_gem.rb
CHANGED
@@ -209,6 +209,41 @@ class TestGem < Gem::TestCase
|
|
209
209
|
assert_equal %w(a-1 b-2 c-1), loaded_spec_names
|
210
210
|
end
|
211
211
|
|
212
|
+
def test_activate_bin_path_gives_proper_error_for_bundler
|
213
|
+
bundler = util_spec 'bundler', '2' do |s|
|
214
|
+
s.executables = ['bundle']
|
215
|
+
end
|
216
|
+
|
217
|
+
install_specs bundler
|
218
|
+
|
219
|
+
File.open("Gemfile.lock", "w") do |f|
|
220
|
+
f.write <<-L.gsub(/ {8}/, "")
|
221
|
+
GEM
|
222
|
+
remote: https://rubygems.org/
|
223
|
+
specs:
|
224
|
+
|
225
|
+
PLATFORMS
|
226
|
+
ruby
|
227
|
+
|
228
|
+
DEPENDENCIES
|
229
|
+
|
230
|
+
BUNDLED WITH
|
231
|
+
9999
|
232
|
+
L
|
233
|
+
end
|
234
|
+
|
235
|
+
File.open("Gemfile", "w") { |f| f.puts('source "https://rubygems.org"') }
|
236
|
+
|
237
|
+
e = assert_raises Gem::GemNotFoundException do
|
238
|
+
load Gem.activate_bin_path("bundler", "bundle", ">= 0.a")
|
239
|
+
end
|
240
|
+
|
241
|
+
assert_includes e.message, "Could not find 'bundler' (9999) required by your #{File.expand_path("Gemfile.lock")}."
|
242
|
+
assert_includes e.message, "To update to the latest version installed on your system, run `bundle update --bundler`."
|
243
|
+
assert_includes e.message, "To install the missing version, run `gem install bundler:9999`"
|
244
|
+
refute_includes e.message, "can't find gem bundler (>= 0.a) with executable bundle"
|
245
|
+
end
|
246
|
+
|
212
247
|
def test_self_bin_path_no_exec_name
|
213
248
|
e = assert_raises ArgumentError do
|
214
249
|
Gem.bin_path 'a'
|
@@ -387,7 +422,7 @@ class TestGem < Gem::TestCase
|
|
387
422
|
assert_equal %w[https://rubygems.org/], Gem.default_sources
|
388
423
|
end
|
389
424
|
|
390
|
-
def
|
425
|
+
def test_self_use_gemdeps
|
391
426
|
skip 'Insecure operation - chdir' if RUBY_VERSION <= "1.8.7"
|
392
427
|
rubygems_gemdeps, ENV['RUBYGEMS_GEMDEPS'] = ENV['RUBYGEMS_GEMDEPS'], '-'
|
393
428
|
|
@@ -399,7 +434,7 @@ class TestGem < Gem::TestCase
|
|
399
434
|
begin
|
400
435
|
Dir.chdir 'detect/a/b'
|
401
436
|
|
402
|
-
assert_equal add_bundler_full_name([]), Gem.
|
437
|
+
assert_equal add_bundler_full_name([]), Gem.use_gemdeps.map(&:full_name)
|
403
438
|
ensure
|
404
439
|
Dir.chdir @tempdir
|
405
440
|
end
|
@@ -1214,7 +1249,7 @@ class TestGem < Gem::TestCase
|
|
1214
1249
|
input = "\x1F\x8B\b\0\xED\xA3\x1AQ\0\x03\xCBH" +
|
1215
1250
|
"\xCD\xC9\xC9\a\0\x86\xA6\x106\x05\0\0\0"
|
1216
1251
|
|
1217
|
-
output = Gem.gunzip input
|
1252
|
+
output = Gem::Util.gunzip input
|
1218
1253
|
|
1219
1254
|
assert_equal 'hello', output
|
1220
1255
|
|
@@ -1226,7 +1261,7 @@ class TestGem < Gem::TestCase
|
|
1226
1261
|
def test_self_gzip
|
1227
1262
|
input = 'hello'
|
1228
1263
|
|
1229
|
-
output = Gem.gzip input
|
1264
|
+
output = Gem::Util.gzip input
|
1230
1265
|
|
1231
1266
|
zipped = StringIO.new output
|
1232
1267
|
|
@@ -1450,12 +1485,12 @@ class TestGem < Gem::TestCase
|
|
1450
1485
|
|
1451
1486
|
ENV['RUBYGEMS_GEMDEPS'] = path
|
1452
1487
|
|
1453
|
-
Gem.
|
1488
|
+
Gem.use_gemdeps
|
1454
1489
|
|
1455
1490
|
assert_equal add_bundler_full_name(%W(a-1 b-1 c-1)), loaded_spec_names
|
1456
1491
|
end
|
1457
1492
|
|
1458
|
-
def
|
1493
|
+
def test_auto_activation_of_used_gemdeps_file
|
1459
1494
|
skip 'Insecure operation - chdir' if RUBY_VERSION <= "1.8.7"
|
1460
1495
|
util_clear_gems
|
1461
1496
|
|
@@ -1476,7 +1511,7 @@ class TestGem < Gem::TestCase
|
|
1476
1511
|
ENV['RUBYGEMS_GEMDEPS'] = "-"
|
1477
1512
|
|
1478
1513
|
expected_specs = [a, b, (Gem::USE_BUNDLER_FOR_GEMDEPS || nil) && util_spec("bundler", Bundler::VERSION), c].compact
|
1479
|
-
assert_equal expected_specs, Gem.
|
1514
|
+
assert_equal expected_specs, Gem.use_gemdeps.sort_by { |s| s.name }
|
1480
1515
|
end
|
1481
1516
|
|
1482
1517
|
LIB_PATH = File.expand_path "../../../lib".dup.untaint, __FILE__.dup.untaint
|
@@ -1590,7 +1625,7 @@ class TestGem < Gem::TestCase
|
|
1590
1625
|
|
1591
1626
|
assert_equal old_style, Gem.find_unresolved_default_spec("foo.rb")
|
1592
1627
|
assert_equal old_style, Gem.find_unresolved_default_spec("bar.rb")
|
1593
|
-
|
1628
|
+
assert_nil Gem.find_unresolved_default_spec("baz.rb")
|
1594
1629
|
|
1595
1630
|
Gem.clear_default_specs
|
1596
1631
|
|
@@ -1603,8 +1638,8 @@ class TestGem < Gem::TestCase
|
|
1603
1638
|
|
1604
1639
|
assert_equal new_style, Gem.find_unresolved_default_spec("foo.rb")
|
1605
1640
|
assert_equal new_style, Gem.find_unresolved_default_spec("bar.rb")
|
1606
|
-
|
1607
|
-
|
1641
|
+
assert_nil Gem.find_unresolved_default_spec("exec")
|
1642
|
+
assert_nil Gem.find_unresolved_default_spec("README")
|
1608
1643
|
end
|
1609
1644
|
|
1610
1645
|
def test_default_gems_use_full_paths
|
@@ -88,20 +88,21 @@ class TestGemBundlerVersionFinder < Gem::TestCase
|
|
88
88
|
bvf.stub(:bundler_version, v("2.1.1.1")) do
|
89
89
|
assert bvf.compatible?(util_spec("foo"))
|
90
90
|
assert bvf.compatible?(util_spec("bundler", "2.1.1.1"))
|
91
|
-
|
91
|
+
assert bvf.compatible?(util_spec("bundler", "2.1.1.a"))
|
92
|
+
assert bvf.compatible?(util_spec("bundler", "2.999"))
|
92
93
|
refute bvf.compatible?(util_spec("bundler", "1.999"))
|
93
|
-
refute bvf.compatible?(util_spec("bundler", "
|
94
|
+
refute bvf.compatible?(util_spec("bundler", "3.0.0"))
|
94
95
|
end
|
95
96
|
end
|
96
97
|
|
97
98
|
def test_filter
|
98
|
-
versions = %w[1 1.0 1.0.1.1 2.a 3 3.0]
|
99
|
+
versions = %w[1 1.0 1.0.1.1 2 2.a 2.0 2.1.1 3 3.a 3.0 3.1.1]
|
99
100
|
specs = versions.map { |v| util_spec("bundler", v) }
|
100
101
|
|
101
|
-
assert_equal %w[1 1.0 1.0.1.1 2.a 3 3.0], util_filter_specs(specs).map(&:version).map(&:to_s)
|
102
|
+
assert_equal %w[1 1.0 1.0.1.1 2 2.a 2.0 2.1.1 3 3.a 3.0 3.1.1], util_filter_specs(specs).map(&:version).map(&:to_s)
|
102
103
|
|
103
104
|
bvf.stub(:bundler_version, v("2.1.1.1")) do
|
104
|
-
|
105
|
+
assert_equal %w[2 2.a 2.0 2.1.1], util_filter_specs(specs).map(&:version).map(&:to_s)
|
105
106
|
end
|
106
107
|
bvf.stub(:bundler_version, v("1.1.1.1")) do
|
107
108
|
assert_equal %w[1 1.0 1.0.1.1], util_filter_specs(specs).map(&:version).map(&:to_s)
|
@@ -110,10 +111,10 @@ class TestGemBundlerVersionFinder < Gem::TestCase
|
|
110
111
|
assert_equal %w[1 1.0 1.0.1.1], util_filter_specs(specs).map(&:version).map(&:to_s)
|
111
112
|
end
|
112
113
|
bvf.stub(:bundler_version, v("2.a")) do
|
113
|
-
assert_equal %w[2.a], util_filter_specs(specs).map(&:version).map(&:to_s)
|
114
|
+
assert_equal %w[2 2.a 2.0 2.1.1], util_filter_specs(specs).map(&:version).map(&:to_s)
|
114
115
|
end
|
115
116
|
bvf.stub(:bundler_version, v("3")) do
|
116
|
-
assert_equal %w[3 3.0], util_filter_specs(specs).map(&:version).map(&:to_s)
|
117
|
+
assert_equal %w[3 3.a 3.0 3.1.1], util_filter_specs(specs).map(&:version).map(&:to_s)
|
117
118
|
end
|
118
119
|
end
|
119
120
|
|
@@ -114,8 +114,8 @@ class TestGemCommandManager < Gem::TestCase
|
|
114
114
|
assert_equal :both, check_options[:domain]
|
115
115
|
assert_equal true, check_options[:wrappers]
|
116
116
|
assert_equal Gem::Requirement.default, check_options[:version]
|
117
|
-
|
118
|
-
|
117
|
+
assert_nil check_options[:install_dir]
|
118
|
+
assert_nil check_options[:bin_dir]
|
119
119
|
|
120
120
|
#check settings
|
121
121
|
check_options = nil
|
@@ -122,6 +122,8 @@ class TestGemCommandsBuildCommand < Gem::TestCase
|
|
122
122
|
SIGNING_KEY = key_path 'private3072'
|
123
123
|
|
124
124
|
def test_build_signed_gem
|
125
|
+
skip 'openssl is missing' unless defined?(OpenSSL::SSL)
|
126
|
+
|
125
127
|
trust_dir = Gem::Security.trust_dir
|
126
128
|
|
127
129
|
spec = util_spec 'some_gem' do |s|
|
@@ -416,6 +416,43 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
416
416
|
assert_path_exists File.join(a2.doc_dir, 'rdoc')
|
417
417
|
end
|
418
418
|
|
419
|
+
def test_execute_rdoc_with_path
|
420
|
+
skip if RUBY_VERSION <= "1.8.7"
|
421
|
+
specs = spec_fetcher do |fetcher|
|
422
|
+
fetcher.gem 'a', 2
|
423
|
+
end
|
424
|
+
|
425
|
+
Gem.done_installing(&Gem::RDoc.method(:generation_hook))
|
426
|
+
|
427
|
+
@cmd.options[:document] = %w[rdoc ri]
|
428
|
+
@cmd.options[:domain] = :local
|
429
|
+
@cmd.options[:install_dir] = 'whatever'
|
430
|
+
|
431
|
+
a2 = specs['a-2']
|
432
|
+
FileUtils.mv a2.cache_file, @tempdir
|
433
|
+
|
434
|
+
@cmd.options[:args] = %w[a]
|
435
|
+
|
436
|
+
use_ui @ui do
|
437
|
+
# Don't use Dir.chdir with a block, it warnings a lot because
|
438
|
+
# of a downstream Dir.chdir with a block
|
439
|
+
old = Dir.getwd
|
440
|
+
|
441
|
+
begin
|
442
|
+
Dir.chdir @tempdir
|
443
|
+
assert_raises Gem::MockGemUi::SystemExitException, @ui.error do
|
444
|
+
@cmd.execute
|
445
|
+
end
|
446
|
+
ensure
|
447
|
+
Dir.chdir old
|
448
|
+
end
|
449
|
+
end
|
450
|
+
|
451
|
+
wait_for_child_process_to_exit
|
452
|
+
|
453
|
+
assert_path_exists 'whatever/doc/a-2', 'documentation not installed'
|
454
|
+
end
|
455
|
+
|
419
456
|
def test_execute_saves_build_args
|
420
457
|
specs = spec_fetcher do |fetcher|
|
421
458
|
fetcher.gem 'a', 2
|
@@ -95,6 +95,26 @@ class TestGemCommandsPushCommand < Gem::TestCase
|
|
95
95
|
@fetcher.last_request["Content-Type"]
|
96
96
|
end
|
97
97
|
|
98
|
+
def test_execute_allowed_push_host
|
99
|
+
@spec, @path = util_gem "freebird", "1.0.1" do |spec|
|
100
|
+
spec.metadata['allowed_push_host'] = "https://privategemserver.example"
|
101
|
+
end
|
102
|
+
|
103
|
+
@response = "Successfully registered gem: freewill (1.0.0)"
|
104
|
+
@fetcher.data["#{@spec.metadata['allowed_push_host']}/api/v1/gems"] = [@response, 200, 'OK']
|
105
|
+
@fetcher.data["#{Gem.host}/api/v1/gems"] =
|
106
|
+
['fail', 500, 'Internal Server Error']
|
107
|
+
|
108
|
+
@cmd.options[:args] = [@path]
|
109
|
+
|
110
|
+
@cmd.execute
|
111
|
+
|
112
|
+
assert_equal Net::HTTP::Post, @fetcher.last_request.class
|
113
|
+
assert_equal Gem.read_binary(@path), @fetcher.last_request.body
|
114
|
+
assert_equal "application/octet-stream",
|
115
|
+
@fetcher.last_request["Content-Type"]
|
116
|
+
end
|
117
|
+
|
98
118
|
def test_sending_when_default_host_disabled
|
99
119
|
Gem.configuration.disable_default_gem_server = true
|
100
120
|
response = "You must specify a gem server"
|
@@ -6,7 +6,12 @@ require 'rubygems/commands/setup_command'
|
|
6
6
|
|
7
7
|
class TestGemCommandsSetupCommand < Gem::TestCase
|
8
8
|
|
9
|
-
|
9
|
+
bundler_gemspec = File.expand_path("../../../bundler/lib/bundler/version.rb", __FILE__)
|
10
|
+
if File.exist?(bundler_gemspec)
|
11
|
+
BUNDLER_VERS = File.read(bundler_gemspec).match(/VERSION = "(#{Gem::Version::VERSION_PATTERN})"/)[1]
|
12
|
+
else
|
13
|
+
BUNDLER_VERS = "1.16.2"
|
14
|
+
end
|
10
15
|
|
11
16
|
def setup
|
12
17
|
super
|