bundler 2.4.22 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +53 -0
- data/bundler.gemspec +4 -2
- data/exe/bundle +1 -10
- data/lib/bundler/build_metadata.rb +3 -3
- data/lib/bundler/capistrano.rb +1 -1
- data/lib/bundler/checksum.rb +245 -0
- data/lib/bundler/ci_detector.rb +75 -0
- data/lib/bundler/cli/add.rb +3 -3
- data/lib/bundler/cli/binstubs.rb +4 -4
- data/lib/bundler/cli/cache.rb +1 -1
- data/lib/bundler/cli/check.rb +1 -1
- data/lib/bundler/cli/common.rb +9 -1
- data/lib/bundler/cli/config.rb +8 -7
- data/lib/bundler/cli/console.rb +3 -2
- data/lib/bundler/cli/doctor.rb +2 -2
- data/lib/bundler/cli/exec.rb +1 -1
- data/lib/bundler/cli/gem.rb +28 -23
- data/lib/bundler/cli/info.rb +2 -13
- data/lib/bundler/cli/install.rb +5 -4
- data/lib/bundler/cli/issue.rb +1 -1
- data/lib/bundler/cli/lock.rb +4 -4
- data/lib/bundler/cli/open.rb +1 -1
- data/lib/bundler/cli/outdated.rb +6 -6
- data/lib/bundler/cli/plugin.rb +7 -14
- data/lib/bundler/cli/pristine.rb +38 -30
- data/lib/bundler/cli/show.rb +2 -2
- data/lib/bundler/cli/update.rb +5 -5
- data/lib/bundler/cli.rb +215 -263
- data/lib/bundler/compact_index_client/cache.rb +29 -9
- data/lib/bundler/compact_index_client/cache_file.rb +153 -0
- data/lib/bundler/compact_index_client/gem_parser.rb +7 -3
- data/lib/bundler/compact_index_client/updater.rb +79 -81
- data/lib/bundler/compact_index_client.rb +14 -7
- data/lib/bundler/constants.rb +1 -1
- data/lib/bundler/current_ruby.rb +5 -21
- data/lib/bundler/definition.rb +42 -15
- data/lib/bundler/dependency.rb +16 -12
- data/lib/bundler/digest.rb +2 -2
- data/lib/bundler/dsl.rb +43 -25
- data/lib/bundler/endpoint_specification.rb +5 -1
- data/lib/bundler/env.rb +1 -3
- data/lib/bundler/errors.rb +43 -0
- data/lib/bundler/fetcher/base.rb +3 -1
- data/lib/bundler/fetcher/compact_index.rb +4 -4
- data/lib/bundler/fetcher/downloader.rb +13 -11
- data/lib/bundler/fetcher/gem_remote_fetcher.rb +16 -0
- data/lib/bundler/fetcher/index.rb +1 -1
- data/lib/bundler/fetcher.rb +28 -25
- data/lib/bundler/friendly_errors.rb +5 -5
- data/lib/bundler/gem_helper.rb +1 -1
- data/lib/bundler/gem_helpers.rb +5 -2
- data/lib/bundler/graph.rb +9 -9
- data/lib/bundler/index.rb +1 -2
- data/lib/bundler/injector.rb +1 -1
- data/lib/bundler/inline.rb +3 -3
- data/lib/bundler/installer/gem_installer.rb +5 -5
- data/lib/bundler/installer/parallel_installer.rb +16 -8
- data/lib/bundler/installer/standalone.rb +2 -3
- data/lib/bundler/installer.rb +9 -9
- data/lib/bundler/lazy_specification.rb +24 -17
- data/lib/bundler/lockfile_generator.rb +9 -0
- data/lib/bundler/lockfile_parser.rb +81 -10
- data/lib/bundler/man/bundle-add.1 +3 -26
- data/lib/bundler/man/bundle-binstubs.1 +4 -16
- data/lib/bundler/man/bundle-cache.1 +3 -24
- data/lib/bundler/man/bundle-check.1 +3 -12
- data/lib/bundler/man/bundle-clean.1 +3 -10
- data/lib/bundler/man/bundle-config.1 +20 -211
- data/lib/bundler/man/bundle-config.1.ronn +6 -0
- data/lib/bundler/man/bundle-console.1 +4 -22
- data/lib/bundler/man/bundle-doctor.1 +4 -18
- data/lib/bundler/man/bundle-exec.1 +12 -73
- data/lib/bundler/man/bundle-gem.1 +13 -49
- data/lib/bundler/man/bundle-help.1 +3 -7
- data/lib/bundler/man/bundle-info.1 +3 -9
- data/lib/bundler/man/bundle-init.1 +3 -12
- data/lib/bundler/man/bundle-inject.1 +6 -19
- data/lib/bundler/man/bundle-install.1 +27 -125
- data/lib/bundler/man/bundle-install.1.ronn +1 -0
- data/lib/bundler/man/bundle-list.1 +4 -19
- data/lib/bundler/man/bundle-lock.1 +5 -29
- data/lib/bundler/man/bundle-open.1 +7 -27
- data/lib/bundler/man/bundle-outdated.1 +3 -55
- data/lib/bundler/man/bundle-outdated.1.ronn +1 -0
- data/lib/bundler/man/bundle-platform.1 +5 -27
- data/lib/bundler/man/bundle-plugin.1 +3 -29
- data/lib/bundler/man/bundle-pristine.1 +5 -16
- data/lib/bundler/man/bundle-remove.1 +4 -14
- data/lib/bundler/man/bundle-show.1 +3 -10
- data/lib/bundler/man/bundle-update.1 +18 -137
- data/lib/bundler/man/bundle-version.1 +3 -16
- data/lib/bundler/man/bundle-viz.1 +4 -16
- data/lib/bundler/man/bundle.1 +5 -44
- data/lib/bundler/man/gemfile.5 +24 -301
- data/lib/bundler/man/gemfile.5.ronn +4 -0
- data/lib/bundler/match_metadata.rb +4 -0
- data/lib/bundler/match_platform.rb +1 -1
- data/lib/bundler/plugin/api/source.rb +3 -2
- data/lib/bundler/plugin/installer.rb +1 -1
- data/lib/bundler/plugin.rb +3 -3
- data/lib/bundler/resolver/base.rb +1 -1
- data/lib/bundler/resolver/incompatibility.rb +1 -1
- data/lib/bundler/resolver/spec_group.rb +1 -4
- data/lib/bundler/resolver.rb +16 -16
- data/lib/bundler/ruby_dsl.rb +20 -12
- data/lib/bundler/ruby_version.rb +1 -1
- data/lib/bundler/rubygems_ext.rb +24 -50
- data/lib/bundler/rubygems_gem_installer.rb +6 -56
- data/lib/bundler/rubygems_integration.rb +25 -94
- data/lib/bundler/runtime.rb +2 -2
- data/lib/bundler/self_manager.rb +23 -7
- data/lib/bundler/settings.rb +27 -7
- data/lib/bundler/setup.rb +4 -1
- data/lib/bundler/shared_helpers.rb +35 -13
- data/lib/bundler/source/git/git_proxy.rb +15 -15
- data/lib/bundler/source/git.rb +4 -3
- data/lib/bundler/source/metadata.rb +15 -15
- data/lib/bundler/source/path.rb +7 -6
- data/lib/bundler/source/rubygems.rb +21 -14
- data/lib/bundler/source.rb +2 -0
- data/lib/bundler/spec_set.rb +38 -10
- data/lib/bundler/stub_specification.rb +1 -0
- data/lib/bundler/templates/Executable.bundler +1 -1
- data/lib/bundler/templates/newgem/README.md.tt +3 -3
- data/lib/bundler/templates/newgem/Rakefile.tt +2 -6
- data/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +1 -1
- data/lib/bundler/templates/newgem/standard.yml.tt +1 -1
- data/lib/bundler/ui/shell.rb +1 -1
- data/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +1 -1
- data/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +53 -6
- data/lib/bundler/vendor/fileutils/lib/fileutils.rb +8 -20
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +3 -3
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +2 -2
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +1 -1
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +35 -35
- data/lib/bundler/vendor/tsort/lib/tsort.rb +3 -0
- data/lib/bundler/vendor/uri/lib/uri/common.rb +256 -132
- data/lib/bundler/vendor/uri/lib/uri/generic.rb +1 -0
- data/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +95 -31
- data/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
- data/lib/bundler/vendored_net_http.rb +8 -0
- data/lib/bundler/vendored_persistent.rb +0 -4
- data/lib/bundler/vendored_timeout.rb +8 -0
- data/lib/bundler/version.rb +1 -1
- data/lib/bundler/vlad.rb +1 -1
- data/lib/bundler/yaml_serializer.rb +3 -3
- data/lib/bundler.rb +38 -27
- metadata +11 -5
data/lib/bundler/cli/gem.rb
CHANGED
|
@@ -11,7 +11,7 @@ module Bundler
|
|
|
11
11
|
class CLI::Gem
|
|
12
12
|
TEST_FRAMEWORK_VERSIONS = {
|
|
13
13
|
"rspec" => "3.0",
|
|
14
|
-
"minitest" => "5.
|
|
14
|
+
"minitest" => "5.16",
|
|
15
15
|
"test-unit" => "3.0",
|
|
16
16
|
}.freeze
|
|
17
17
|
|
|
@@ -59,23 +59,23 @@ module Bundler
|
|
|
59
59
|
end
|
|
60
60
|
|
|
61
61
|
config = {
|
|
62
|
-
:
|
|
63
|
-
:
|
|
64
|
-
:
|
|
65
|
-
:
|
|
66
|
-
:
|
|
67
|
-
:
|
|
68
|
-
:
|
|
69
|
-
:
|
|
70
|
-
:
|
|
71
|
-
:
|
|
72
|
-
:
|
|
73
|
-
:
|
|
74
|
-
:
|
|
75
|
-
:
|
|
76
|
-
:
|
|
77
|
-
:
|
|
78
|
-
:
|
|
62
|
+
name: name,
|
|
63
|
+
underscored_name: underscored_name,
|
|
64
|
+
namespaced_path: namespaced_path,
|
|
65
|
+
makefile_path: "#{underscored_name}/#{underscored_name}",
|
|
66
|
+
constant_name: constant_name,
|
|
67
|
+
constant_array: constant_array,
|
|
68
|
+
author: git_author_name.empty? ? "TODO: Write your name" : git_author_name,
|
|
69
|
+
email: git_user_email.empty? ? "TODO: Write your email address" : git_user_email,
|
|
70
|
+
test: options[:test],
|
|
71
|
+
ext: extension,
|
|
72
|
+
exe: options[:exe],
|
|
73
|
+
bundler_version: bundler_dependency_version,
|
|
74
|
+
git: use_git,
|
|
75
|
+
github_username: github_username.empty? ? "[USERNAME]" : github_username,
|
|
76
|
+
required_ruby_version: required_ruby_version,
|
|
77
|
+
rust_builder_required_rubygems_version: rust_builder_required_rubygems_version,
|
|
78
|
+
minitest_constant_name: minitest_constant_name,
|
|
79
79
|
}
|
|
80
80
|
ensure_safe_gem_name(name, constant_array)
|
|
81
81
|
|
|
@@ -236,7 +236,7 @@ module Bundler
|
|
|
236
236
|
end
|
|
237
237
|
|
|
238
238
|
if use_git
|
|
239
|
-
IO.popen(%w[git add .], { :
|
|
239
|
+
IO.popen(%w[git add .], { chdir: target }, &:read)
|
|
240
240
|
end
|
|
241
241
|
|
|
242
242
|
# Open gemspec in editor
|
|
@@ -349,7 +349,7 @@ module Bundler
|
|
|
349
349
|
Bundler.ui.confirm "Do you want to add a code linter and formatter to your gem? " \
|
|
350
350
|
"Supported Linters:\n" \
|
|
351
351
|
"* RuboCop: https://rubocop.org\n" \
|
|
352
|
-
"* Standard: https://github.com/
|
|
352
|
+
"* Standard: https://github.com/standardrb/standard\n" \
|
|
353
353
|
"\n"
|
|
354
354
|
Bundler.ui.info hint_text("linter")
|
|
355
355
|
|
|
@@ -380,15 +380,20 @@ module Bundler
|
|
|
380
380
|
def deprecated_rubocop_option
|
|
381
381
|
if !options[:rubocop].nil?
|
|
382
382
|
if options[:rubocop]
|
|
383
|
-
Bundler::SharedHelpers.major_deprecation 2,
|
|
383
|
+
Bundler::SharedHelpers.major_deprecation 2,
|
|
384
|
+
"--rubocop is deprecated, use --linter=rubocop",
|
|
385
|
+
removed_message: "--rubocop has been removed, use --linter=rubocop"
|
|
384
386
|
"rubocop"
|
|
385
387
|
else
|
|
386
|
-
Bundler::SharedHelpers.major_deprecation 2,
|
|
388
|
+
Bundler::SharedHelpers.major_deprecation 2,
|
|
389
|
+
"--no-rubocop is deprecated, use --linter",
|
|
390
|
+
removed_message: "--no-rubocop has been removed, use --linter"
|
|
387
391
|
false
|
|
388
392
|
end
|
|
389
393
|
elsif !Bundler.settings["gem.rubocop"].nil?
|
|
390
394
|
Bundler::SharedHelpers.major_deprecation 2,
|
|
391
|
-
"config gem.rubocop is deprecated; we've updated your config to use gem.linter instead"
|
|
395
|
+
"config gem.rubocop is deprecated; we've updated your config to use gem.linter instead",
|
|
396
|
+
removed_message: "config gem.rubocop has been removed; we've updated your config to use gem.linter instead"
|
|
392
397
|
Bundler.settings["gem.rubocop"] ? "rubocop" : false
|
|
393
398
|
end
|
|
394
399
|
end
|
data/lib/bundler/cli/info.rb
CHANGED
|
@@ -25,19 +25,8 @@ module Bundler
|
|
|
25
25
|
|
|
26
26
|
private
|
|
27
27
|
|
|
28
|
-
def spec_for_gem(
|
|
29
|
-
|
|
30
|
-
spec || default_gem_spec(gem_name) || Bundler::CLI::Common.select_spec(gem_name, :regex_match)
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def default_gem_spec(gem_name)
|
|
34
|
-
return unless Gem::Specification.respond_to?(:find_all_by_name)
|
|
35
|
-
gem_spec = Gem::Specification.find_all_by_name(gem_name).last
|
|
36
|
-
gem_spec if gem_spec&.default_gem?
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
def spec_not_found(gem_name)
|
|
40
|
-
raise GemNotFound, Bundler::CLI::Common.gem_not_found_message(gem_name, Bundler.definition.dependencies)
|
|
28
|
+
def spec_for_gem(name)
|
|
29
|
+
Bundler::CLI::Common.select_spec(name, :regex_match)
|
|
41
30
|
end
|
|
42
31
|
|
|
43
32
|
def print_gem_version(spec)
|
data/lib/bundler/cli/install.rb
CHANGED
|
@@ -51,7 +51,8 @@ module Bundler
|
|
|
51
51
|
|
|
52
52
|
if options["binstubs"]
|
|
53
53
|
Bundler::SharedHelpers.major_deprecation 2,
|
|
54
|
-
"The --binstubs option will be removed in favor of `bundle binstubs --all`"
|
|
54
|
+
"The --binstubs option will be removed in favor of `bundle binstubs --all`",
|
|
55
|
+
removed_message: "The --binstubs option have been removed in favor of `bundle binstubs --all`"
|
|
55
56
|
end
|
|
56
57
|
|
|
57
58
|
Plugin.gemfile_install(Bundler.default_gemfile) if Bundler.feature_flag.plugins?
|
|
@@ -61,7 +62,7 @@ module Bundler
|
|
|
61
62
|
|
|
62
63
|
installer = Installer.install(Bundler.root, definition, options)
|
|
63
64
|
|
|
64
|
-
Bundler.settings.temporary(:
|
|
65
|
+
Bundler.settings.temporary(cache_all_platforms: options[:local] ? false : Bundler.settings[:cache_all_platforms]) do
|
|
65
66
|
Bundler.load.cache(nil, options[:local]) if Bundler.app_cache.exist? && !options["no-cache"] && !Bundler.frozen_bundle?
|
|
66
67
|
end
|
|
67
68
|
|
|
@@ -95,7 +96,7 @@ module Bundler
|
|
|
95
96
|
def warn_if_root
|
|
96
97
|
return if Bundler.settings[:silence_root_warning] || Gem.win_platform? || !Process.uid.zero?
|
|
97
98
|
Bundler.ui.warn "Don't run Bundler as root. Installing your bundle as root " \
|
|
98
|
-
"will break this application for all non-root users on this machine.", :
|
|
99
|
+
"will break this application for all non-root users on this machine.", wrap: true
|
|
99
100
|
end
|
|
100
101
|
|
|
101
102
|
def dependencies_count_for(definition)
|
|
@@ -148,7 +149,7 @@ module Bundler
|
|
|
148
149
|
Bundler.settings.set_command_option_if_given :path, options[:path]
|
|
149
150
|
|
|
150
151
|
if options["standalone"] && Bundler.settings[:path].nil? && !options["local"]
|
|
151
|
-
Bundler.settings.temporary(:
|
|
152
|
+
Bundler.settings.temporary(path_relative_to_cwd: false) do
|
|
152
153
|
Bundler.settings.set_command_option :path, "bundle"
|
|
153
154
|
end
|
|
154
155
|
end
|
data/lib/bundler/cli/issue.rb
CHANGED
data/lib/bundler/cli/lock.rb
CHANGED
|
@@ -26,14 +26,14 @@ module Bundler
|
|
|
26
26
|
|
|
27
27
|
if update.is_a?(Array) # unlocking specific gems
|
|
28
28
|
Bundler::CLI::Common.ensure_all_gems_in_lockfile!(update)
|
|
29
|
-
update = { :
|
|
29
|
+
update = { gems: update, conservative: conservative }
|
|
30
30
|
elsif update && conservative
|
|
31
|
-
update = { :
|
|
31
|
+
update = { conservative: conservative }
|
|
32
32
|
elsif update && bundler
|
|
33
|
-
update = { :
|
|
33
|
+
update = { bundler: bundler }
|
|
34
34
|
end
|
|
35
35
|
|
|
36
|
-
Bundler.settings.temporary(:
|
|
36
|
+
Bundler.settings.temporary(frozen: false) do
|
|
37
37
|
definition = Bundler.definition(update)
|
|
38
38
|
|
|
39
39
|
Bundler::CLI::Common.configure_gem_version_promoter(definition, options) if options[:update]
|
data/lib/bundler/cli/open.rb
CHANGED
|
@@ -21,7 +21,7 @@ module Bundler
|
|
|
21
21
|
require "shellwords"
|
|
22
22
|
command = Shellwords.split(editor) << File.join([root_path, path].compact)
|
|
23
23
|
Bundler.with_original_env do
|
|
24
|
-
system(*command, { :
|
|
24
|
+
system(*command, { chdir: root_path })
|
|
25
25
|
end || Bundler.ui.info("Could not run '#{command.join(" ")}'")
|
|
26
26
|
end
|
|
27
27
|
end
|
data/lib/bundler/cli/outdated.rb
CHANGED
|
@@ -41,12 +41,12 @@ module Bundler
|
|
|
41
41
|
# We're doing a full update
|
|
42
42
|
Bundler.definition(true)
|
|
43
43
|
else
|
|
44
|
-
Bundler.definition(:
|
|
44
|
+
Bundler.definition(gems: gems, sources: sources)
|
|
45
45
|
end
|
|
46
46
|
|
|
47
47
|
Bundler::CLI::Common.configure_gem_version_promoter(
|
|
48
48
|
Bundler.definition,
|
|
49
|
-
options.merge(:
|
|
49
|
+
options.merge(strict: @strict)
|
|
50
50
|
)
|
|
51
51
|
|
|
52
52
|
definition_resolution = proc do
|
|
@@ -90,10 +90,10 @@ module Bundler
|
|
|
90
90
|
end
|
|
91
91
|
|
|
92
92
|
outdated_gems << {
|
|
93
|
-
:
|
|
94
|
-
:
|
|
95
|
-
:
|
|
96
|
-
:
|
|
93
|
+
active_spec: active_spec,
|
|
94
|
+
current_spec: current_spec,
|
|
95
|
+
dependency: dependency,
|
|
96
|
+
groups: groups,
|
|
97
97
|
}
|
|
98
98
|
end
|
|
99
99
|
|
data/lib/bundler/cli/plugin.rb
CHANGED
|
@@ -7,18 +7,12 @@ module Bundler
|
|
|
7
7
|
long_desc <<-D
|
|
8
8
|
Install plugins either from the rubygems source provided (with --source option) or from a git source provided with --git (for remote repos) or --local_git (for local repos). If no sources are provided, it uses Gem.sources
|
|
9
9
|
D
|
|
10
|
-
method_option "source", :
|
|
11
|
-
|
|
12
|
-
method_option "
|
|
13
|
-
|
|
14
|
-
method_option "
|
|
15
|
-
|
|
16
|
-
method_option "local_git", :type => :string, :default => nil, :banner =>
|
|
17
|
-
"Path of the local git repo to fetch from"
|
|
18
|
-
method_option "branch", :type => :string, :default => nil, :banner =>
|
|
19
|
-
"The git branch to checkout"
|
|
20
|
-
method_option "ref", :type => :string, :default => nil, :banner =>
|
|
21
|
-
"The git revision to check out"
|
|
10
|
+
method_option "source", type: :string, default: nil, banner: "URL of the RubyGems source to fetch the plugin from"
|
|
11
|
+
method_option "version", type: :string, default: nil, banner: "The version of the plugin to fetch"
|
|
12
|
+
method_option "git", type: :string, default: nil, banner: "URL of the git repo to fetch from"
|
|
13
|
+
method_option "local_git", type: :string, default: nil, banner: "Path of the local git repo to fetch from"
|
|
14
|
+
method_option "branch", type: :string, default: nil, banner: "The git branch to checkout"
|
|
15
|
+
method_option "ref", type: :string, default: nil, banner: "The git revision to check out"
|
|
22
16
|
def install(*plugins)
|
|
23
17
|
Bundler::Plugin.install(plugins, options)
|
|
24
18
|
end
|
|
@@ -27,8 +21,7 @@ module Bundler
|
|
|
27
21
|
long_desc <<-D
|
|
28
22
|
Uninstall given list of plugins. To uninstall all the plugins, use -all option.
|
|
29
23
|
D
|
|
30
|
-
method_option "all", :
|
|
31
|
-
"Uninstall all the installed plugins. If no plugin is installed, then it does nothing."
|
|
24
|
+
method_option "all", type: :boolean, default: nil, banner: "Uninstall all the installed plugins. If no plugin is installed, then it does nothing."
|
|
32
25
|
def uninstall(*plugins)
|
|
33
26
|
Bundler::Plugin.uninstall(plugins, options)
|
|
34
27
|
end
|
data/lib/bundler/cli/pristine.rb
CHANGED
|
@@ -12,40 +12,48 @@ module Bundler
|
|
|
12
12
|
definition.validate_runtime!
|
|
13
13
|
installer = Bundler::Installer.new(Bundler.root, definition)
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
15
|
+
ProcessLock.lock do
|
|
16
|
+
installed_specs = definition.specs.reject do |spec|
|
|
17
|
+
next if spec.name == "bundler" # Source::Rubygems doesn't install bundler
|
|
18
|
+
next if !@gems.empty? && !@gems.include?(spec.name)
|
|
19
|
+
|
|
20
|
+
gem_name = "#{spec.name} (#{spec.version}#{spec.git_version})"
|
|
21
|
+
gem_name += " (#{spec.platform})" if !spec.platform.nil? && spec.platform != Gem::Platform::RUBY
|
|
22
|
+
|
|
23
|
+
case source = spec.source
|
|
24
|
+
when Source::Rubygems
|
|
25
|
+
cached_gem = spec.cache_file
|
|
26
|
+
unless File.exist?(cached_gem)
|
|
27
|
+
Bundler.ui.error("Failed to pristine #{gem_name}. Cached gem #{cached_gem} does not exist.")
|
|
28
|
+
next
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
FileUtils.rm_rf spec.full_gem_path
|
|
32
|
+
when Source::Git
|
|
33
|
+
if source.local?
|
|
34
|
+
Bundler.ui.warn("Cannot pristine #{gem_name}. Gem is locally overridden.")
|
|
35
|
+
next
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
source.remote!
|
|
39
|
+
if extension_cache_path = source.extension_cache_path(spec)
|
|
40
|
+
FileUtils.rm_rf extension_cache_path
|
|
41
|
+
end
|
|
42
|
+
FileUtils.rm_rf spec.extension_dir
|
|
43
|
+
FileUtils.rm_rf spec.full_gem_path
|
|
44
|
+
else
|
|
45
|
+
Bundler.ui.warn("Cannot pristine #{gem_name}. Gem is sourced from local path.")
|
|
27
46
|
next
|
|
28
47
|
end
|
|
29
48
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
if source.local?
|
|
33
|
-
Bundler.ui.warn("Cannot pristine #{gem_name}. Gem is locally overridden.")
|
|
34
|
-
next
|
|
35
|
-
end
|
|
49
|
+
true
|
|
50
|
+
end.map(&:name)
|
|
36
51
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
FileUtils.rm_rf spec.full_gem_path
|
|
43
|
-
else
|
|
44
|
-
Bundler.ui.warn("Cannot pristine #{gem_name}. Gem is sourced from local path.")
|
|
45
|
-
next
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
Bundler::GemInstaller.new(spec, installer, false, 0, true).install_from_spec
|
|
52
|
+
jobs = installer.send(:installation_parallelization, {})
|
|
53
|
+
pristine_count = definition.specs.count - installed_specs.count
|
|
54
|
+
# allow a pristining a single gem to skip the parallel worker
|
|
55
|
+
jobs = [jobs, pristine_count].min
|
|
56
|
+
ParallelInstaller.call(installer, definition.specs, jobs, false, true, skip: installed_specs)
|
|
49
57
|
end
|
|
50
58
|
end
|
|
51
59
|
end
|
data/lib/bundler/cli/show.rb
CHANGED
|
@@ -40,8 +40,8 @@ module Bundler
|
|
|
40
40
|
desc = " * #{s.name} (#{s.version}#{s.git_version})"
|
|
41
41
|
if @verbose
|
|
42
42
|
latest = latest_specs.find {|l| l.name == s.name }
|
|
43
|
-
Bundler.ui.info
|
|
44
|
-
#{desc}
|
|
43
|
+
Bundler.ui.info <<~END
|
|
44
|
+
#{desc.lstrip}
|
|
45
45
|
\tSummary: #{s.summary || "No description available."}
|
|
46
46
|
\tHomepage: #{s.homepage || "No website available."}
|
|
47
47
|
\tStatus: #{outdated?(s, latest) ? "Outdated - #{s.version} < #{latest.version}" : "Up to date"}
|
data/lib/bundler/cli/update.rb
CHANGED
|
@@ -35,7 +35,7 @@ module Bundler
|
|
|
35
35
|
|
|
36
36
|
if full_update
|
|
37
37
|
if conservative
|
|
38
|
-
Bundler.definition(:
|
|
38
|
+
Bundler.definition(conservative: conservative)
|
|
39
39
|
else
|
|
40
40
|
Bundler.definition(true)
|
|
41
41
|
end
|
|
@@ -51,9 +51,9 @@ module Bundler
|
|
|
51
51
|
gems.concat(deps.map(&:name))
|
|
52
52
|
end
|
|
53
53
|
|
|
54
|
-
Bundler.definition(:
|
|
55
|
-
:
|
|
56
|
-
:
|
|
54
|
+
Bundler.definition(gems: gems, sources: sources, ruby: options[:ruby],
|
|
55
|
+
conservative: conservative,
|
|
56
|
+
bundler: update_bundler)
|
|
57
57
|
end
|
|
58
58
|
|
|
59
59
|
Bundler::CLI::Common.configure_gem_version_promoter(Bundler.definition, options)
|
|
@@ -71,7 +71,7 @@ module Bundler
|
|
|
71
71
|
|
|
72
72
|
if locked_gems = Bundler.definition.locked_gems
|
|
73
73
|
previous_locked_info = locked_gems.specs.reduce({}) do |h, s|
|
|
74
|
-
h[s.name] = { :
|
|
74
|
+
h[s.name] = { spec: s, version: s.version, source: s.source.identifier }
|
|
75
75
|
h
|
|
76
76
|
end
|
|
77
77
|
end
|