bundler 1.15.2 → 1.17.3
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of bundler might be problematic. Click here for more details.
- checksums.yaml +5 -5
- data/CHANGELOG.md +302 -0
- data/README.md +17 -8
- data/bundler.gemspec +25 -9
- data/exe/bundle +1 -1
- data/exe/bundle_ruby +4 -3
- data/lib/bundler/build_metadata.rb +53 -0
- data/lib/bundler/capistrano.rb +5 -0
- data/lib/bundler/cli/add.rb +15 -6
- data/lib/bundler/cli/binstubs.rb +17 -9
- data/lib/bundler/cli/cache.rb +5 -4
- data/lib/bundler/cli/check.rb +3 -5
- data/lib/bundler/cli/clean.rb +5 -6
- data/lib/bundler/cli/common.rb +11 -2
- data/lib/bundler/cli/config.rb +2 -1
- data/lib/bundler/cli/console.rb +2 -1
- data/lib/bundler/cli/doctor.rb +48 -1
- data/lib/bundler/cli/exec.rb +6 -5
- data/lib/bundler/cli/gem.rb +13 -8
- data/lib/bundler/cli/info.rb +0 -1
- data/lib/bundler/cli/init.rb +18 -6
- data/lib/bundler/cli/inject.rb +1 -0
- data/lib/bundler/cli/install.rb +64 -61
- data/lib/bundler/cli/issue.rb +1 -1
- data/lib/bundler/cli/list.rb +58 -0
- data/lib/bundler/cli/lock.rb +0 -1
- data/lib/bundler/cli/open.rb +2 -2
- data/lib/bundler/cli/outdated.rb +20 -9
- data/lib/bundler/cli/package.rb +9 -6
- data/lib/bundler/cli/platform.rb +1 -0
- data/lib/bundler/cli/plugin.rb +1 -0
- data/lib/bundler/cli/pristine.rb +20 -6
- data/lib/bundler/cli/remove.rb +18 -0
- data/lib/bundler/cli/show.rb +0 -1
- data/lib/bundler/cli/update.rb +35 -7
- data/lib/bundler/cli/viz.rb +1 -0
- data/lib/bundler/cli.rb +227 -89
- data/lib/bundler/compact_index_client/cache.rb +1 -2
- data/lib/bundler/compact_index_client/updater.rb +14 -4
- data/lib/bundler/compact_index_client.rb +1 -0
- data/lib/bundler/compatibility_guard.rb +14 -0
- data/lib/bundler/constants.rb +1 -0
- data/lib/bundler/current_ruby.rb +13 -5
- data/lib/bundler/definition.rb +192 -139
- data/lib/bundler/dep_proxy.rb +3 -1
- data/lib/bundler/dependency.rb +9 -9
- data/lib/bundler/deployment.rb +1 -1
- data/lib/bundler/deprecate.rb +15 -3
- data/lib/bundler/dsl.rb +115 -64
- data/lib/bundler/endpoint_specification.rb +10 -1
- data/lib/bundler/env.rb +90 -29
- data/lib/bundler/environment_preserver.rb +27 -6
- data/lib/bundler/errors.rb +1 -0
- data/lib/bundler/feature_flag.rb +46 -4
- data/lib/bundler/fetcher/base.rb +1 -0
- data/lib/bundler/fetcher/compact_index.rb +2 -11
- data/lib/bundler/fetcher/dependency.rb +2 -1
- data/lib/bundler/fetcher/downloader.rb +11 -5
- data/lib/bundler/fetcher/index.rb +3 -2
- data/lib/bundler/fetcher.rb +18 -11
- data/lib/bundler/friendly_errors.rb +6 -1
- data/lib/bundler/gem_helper.rb +19 -10
- data/lib/bundler/gem_helpers.rb +1 -0
- data/lib/bundler/gem_remote_fetcher.rb +1 -0
- data/lib/bundler/gem_tasks.rb +1 -0
- data/lib/bundler/gem_version_promoter.rb +17 -2
- data/lib/bundler/gemdeps.rb +1 -0
- data/lib/bundler/graph.rb +1 -0
- data/lib/bundler/index.rb +8 -8
- data/lib/bundler/injector.rb +192 -30
- data/lib/bundler/inline.rb +5 -7
- data/lib/bundler/installer/gem_installer.rb +11 -2
- data/lib/bundler/installer/parallel_installer.rb +78 -42
- data/lib/bundler/installer/standalone.rb +1 -0
- data/lib/bundler/installer.rb +138 -53
- data/lib/bundler/lazy_specification.rb +3 -2
- data/lib/bundler/lockfile_generator.rb +95 -0
- data/lib/bundler/lockfile_parser.rb +10 -4
- data/lib/bundler/match_platform.rb +1 -0
- data/lib/bundler/mirror.rb +8 -5
- data/lib/bundler/plugin/api/source.rb +9 -2
- data/lib/bundler/plugin/events.rb +61 -0
- data/lib/bundler/plugin/index.rb +7 -2
- data/lib/bundler/plugin/installer.rb +7 -6
- data/lib/bundler/plugin/source_list.rb +7 -8
- data/lib/bundler/plugin.rb +13 -5
- data/lib/bundler/process_lock.rb +24 -0
- data/lib/bundler/psyched_yaml.rb +10 -0
- data/lib/bundler/remote_specification.rb +1 -0
- data/lib/bundler/resolver/spec_group.rb +106 -0
- data/lib/bundler/resolver.rb +158 -195
- data/lib/bundler/retry.rb +1 -0
- data/lib/bundler/ruby_dsl.rb +1 -0
- data/lib/bundler/ruby_version.rb +2 -1
- data/lib/bundler/rubygems_ext.rb +5 -4
- data/lib/bundler/rubygems_gem_installer.rb +31 -1
- data/lib/bundler/rubygems_integration.rb +71 -32
- data/lib/bundler/runtime.rb +11 -9
- data/lib/bundler/settings/validator.rb +102 -0
- data/lib/bundler/settings.rb +200 -77
- data/lib/bundler/setup.rb +1 -0
- data/lib/bundler/shared_helpers.rb +131 -26
- data/lib/bundler/similarity_detector.rb +1 -0
- data/lib/bundler/source/gemspec.rb +1 -0
- data/lib/bundler/source/git/git_proxy.rb +21 -11
- data/lib/bundler/source/git.rb +24 -19
- data/lib/bundler/source/metadata.rb +62 -0
- data/lib/bundler/source/path/installer.rb +2 -0
- data/lib/bundler/source/path.rb +8 -8
- data/lib/bundler/source/rubygems/remote.rb +8 -2
- data/lib/bundler/source/rubygems.rb +161 -84
- data/lib/bundler/source.rb +36 -0
- data/lib/bundler/source_list.rb +75 -15
- data/lib/bundler/spec_set.rb +10 -5
- data/lib/bundler/ssl_certs/certificate_manager.rb +2 -1
- data/lib/bundler/stub_specification.rb +1 -0
- data/lib/bundler/templates/.document +1 -0
- data/lib/bundler/templates/Executable +12 -0
- data/lib/bundler/templates/Executable.bundler +105 -0
- data/lib/bundler/templates/Gemfile +1 -0
- data/lib/bundler/templates/gems.rb +8 -0
- data/lib/bundler/templates/newgem/README.md.tt +1 -1
- data/lib/bundler/templates/newgem/gitignore.tt +0 -1
- data/lib/bundler/templates/newgem/lib/newgem.rb.tt +1 -0
- data/lib/bundler/templates/newgem/newgem.gemspec.tt +12 -3
- data/lib/bundler/templates/newgem/rspec.tt +1 -0
- data/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +0 -2
- data/lib/bundler/templates/newgem/{.travis.yml.tt → travis.yml.tt} +2 -0
- data/lib/bundler/ui/rg_proxy.rb +1 -0
- data/lib/bundler/ui/shell.rb +17 -4
- data/lib/bundler/ui/silent.rb +1 -0
- data/lib/bundler/ui.rb +1 -0
- data/lib/bundler/uri_credentials_filter.rb +1 -0
- data/lib/bundler/vendor/fileutils/lib/fileutils.rb +1638 -0
- data/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +26 -0
- data/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +7 -0
- data/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +1 -0
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +1 -0
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +1 -0
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +1 -0
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +1 -0
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +1 -0
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +1 -0
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +1 -0
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +1 -0
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +15 -4
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +3 -2
- data/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +75 -7
- data/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +2 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +1 -0
- data/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +3 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +491 -148
- data/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +1 -0
- data/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +8 -4
- data/lib/bundler/vendor/molinillo/lib/molinillo.rb +2 -0
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb +1 -0
- data/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +1 -0
- data/lib/bundler/vendor/thor/lib/thor/actions/empty_directory.rb +9 -1
- data/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +45 -8
- data/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +9 -3
- data/lib/bundler/vendor/thor/lib/thor/actions.rb +6 -3
- data/lib/bundler/vendor/thor/lib/thor/base.rb +27 -4
- data/lib/bundler/vendor/thor/lib/thor/command.rb +9 -7
- data/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +12 -0
- data/lib/bundler/vendor/thor/lib/thor/group.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor/line_editor/basic.rb +2 -0
- data/lib/bundler/vendor/thor/lib/thor/parser/option.rb +5 -5
- data/lib/bundler/vendor/thor/lib/thor/parser/options.rb +6 -5
- data/lib/bundler/vendor/thor/lib/thor/runner.rb +6 -4
- data/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +10 -9
- data/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor.rb +25 -8
- data/lib/bundler/vendored_fileutils.rb +9 -0
- data/lib/bundler/vendored_molinillo.rb +1 -0
- data/lib/bundler/vendored_persistent.rb +35 -0
- data/lib/bundler/vendored_thor.rb +1 -0
- data/lib/bundler/version.rb +6 -2
- data/lib/bundler/version_ranges.rb +1 -0
- data/lib/bundler/vlad.rb +5 -0
- data/lib/bundler/worker.rb +1 -0
- data/lib/bundler/yaml_serializer.rb +3 -3
- data/lib/bundler.rb +86 -52
- data/man/bundle-add.1 +18 -3
- data/man/bundle-add.1.txt +26 -14
- data/man/bundle-add.ronn +13 -2
- data/man/bundle-binstubs.1 +11 -1
- data/man/bundle-binstubs.1.txt +33 -18
- data/man/bundle-binstubs.ronn +15 -1
- data/man/bundle-check.1 +4 -4
- data/man/bundle-check.1.txt +15 -14
- data/man/bundle-check.ronn +3 -3
- data/man/bundle-clean.1 +1 -1
- data/man/bundle-clean.1.txt +10 -10
- data/man/bundle-config.1 +129 -29
- data/man/bundle-config.1.txt +285 -174
- data/man/bundle-config.ronn +167 -88
- data/man/bundle-doctor.1 +44 -0
- data/man/bundle-doctor.1.txt +44 -0
- data/man/bundle-doctor.ronn +33 -0
- data/man/bundle-exec.1 +6 -3
- data/man/bundle-exec.1.txt +78 -71
- data/man/bundle-exec.ronn +10 -3
- data/man/bundle-gem.1 +3 -3
- data/man/bundle-gem.1.txt +40 -39
- data/man/bundle-gem.ronn +2 -1
- data/man/bundle-info.1 +1 -1
- data/man/bundle-info.1.txt +8 -8
- data/man/bundle-init.1 +9 -4
- data/man/bundle-init.1.txt +23 -13
- data/man/bundle-init.ronn +15 -4
- data/man/bundle-inject.1 +4 -4
- data/man/bundle-inject.1.txt +10 -10
- data/man/bundle-inject.ronn +3 -3
- data/man/bundle-install.1 +31 -28
- data/man/bundle-install.1.txt +205 -194
- data/man/bundle-install.ronn +44 -35
- data/man/bundle-list.1 +50 -0
- data/man/bundle-list.1.txt +43 -0
- data/man/bundle-list.ronn +33 -0
- data/man/bundle-lock.1 +1 -1
- data/man/bundle-lock.1.txt +47 -47
- data/man/bundle-lock.ronn +1 -1
- data/man/bundle-open.1 +1 -1
- data/man/bundle-open.1.txt +7 -7
- data/man/bundle-outdated.1 +7 -3
- data/man/bundle-outdated.1.txt +40 -36
- data/man/bundle-outdated.ronn +6 -2
- data/man/bundle-package.1 +6 -3
- data/man/bundle-package.1.txt +44 -39
- data/man/bundle-package.ronn +7 -2
- data/man/bundle-platform.1 +1 -1
- data/man/bundle-platform.1.txt +13 -13
- data/man/bundle-pristine.1 +21 -3
- data/man/bundle-pristine.1.txt +33 -10
- data/man/bundle-pristine.ronn +24 -3
- data/man/bundle-remove.1 +31 -0
- data/man/bundle-remove.1.txt +34 -0
- data/man/bundle-remove.ronn +23 -0
- data/man/bundle-show.1 +3 -3
- data/man/bundle-show.1.txt +14 -12
- data/man/bundle-show.ronn +3 -2
- data/man/bundle-update.1 +13 -9
- data/man/bundle-update.1.txt +133 -130
- data/man/bundle-update.ronn +21 -17
- data/man/bundle-viz.1 +7 -7
- data/man/bundle-viz.1.txt +17 -15
- data/man/bundle-viz.ronn +6 -6
- data/man/bundle.1 +31 -23
- data/man/bundle.1.txt +63 -57
- data/man/bundle.ronn +35 -29
- data/man/gemfile.5 +44 -8
- data/man/gemfile.5.ronn +54 -8
- data/man/gemfile.5.txt +218 -165
- data/man/index.txt +25 -15
- metadata +36 -36
- data/.codeclimate.yml +0 -25
- data/.gitignore +0 -18
- data/.rspec +0 -3
- data/.rubocop.yml +0 -131
- data/.rubocop_todo.yml +0 -418
- data/.travis.yml +0 -122
- data/CODE_OF_CONDUCT.md +0 -42
- data/CONTRIBUTING.md +0 -17
- data/Rakefile +0 -338
- data/bin/rake +0 -19
- data/bin/rspec +0 -15
- data/bin/rubocop +0 -17
- data/bin/with_rubygems +0 -39
- data/doc/README.md +0 -30
- data/doc/TROUBLESHOOTING.md +0 -64
- data/doc/contributing/BUG_TRIAGE.md +0 -36
- data/doc/contributing/COMMUNITY.md +0 -13
- data/doc/contributing/GETTING_HELP.md +0 -11
- data/doc/contributing/HOW_YOU_CAN_HELP.md +0 -27
- data/doc/contributing/ISSUES.md +0 -51
- data/doc/contributing/README.md +0 -38
- data/doc/development/NEW_FEATURES.md +0 -10
- data/doc/development/PULL_REQUESTS.md +0 -40
- data/doc/development/README.md +0 -19
- data/doc/development/RELEASING.md +0 -9
- data/doc/development/SETUP.md +0 -27
- data/doc/documentation/README.md +0 -29
- data/doc/documentation/VISION.md +0 -26
- data/doc/documentation/WRITING.md +0 -54
- data/task/release.rake +0 -116
@@ -0,0 +1,58 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Bundler
|
4
|
+
class CLI::List
|
5
|
+
def initialize(options)
|
6
|
+
@options = options
|
7
|
+
end
|
8
|
+
|
9
|
+
def run
|
10
|
+
raise InvalidOption, "The `--only-group` and `--without-group` options cannot be used together" if @options["only-group"] && @options["without-group"]
|
11
|
+
|
12
|
+
raise InvalidOption, "The `--name-only` and `--paths` options cannot be used together" if @options["name-only"] && @options[:paths]
|
13
|
+
|
14
|
+
specs = if @options["only-group"] || @options["without-group"]
|
15
|
+
filtered_specs_by_groups
|
16
|
+
else
|
17
|
+
Bundler.load.specs
|
18
|
+
end.reject {|s| s.name == "bundler" }.sort_by(&:name)
|
19
|
+
|
20
|
+
return Bundler.ui.info "No gems in the Gemfile" if specs.empty?
|
21
|
+
|
22
|
+
return specs.each {|s| Bundler.ui.info s.name } if @options["name-only"]
|
23
|
+
return specs.each {|s| Bundler.ui.info s.full_gem_path } if @options["paths"]
|
24
|
+
|
25
|
+
Bundler.ui.info "Gems included by the bundle:"
|
26
|
+
|
27
|
+
specs.each {|s| Bundler.ui.info " * #{s.name} (#{s.version}#{s.git_version})" }
|
28
|
+
|
29
|
+
Bundler.ui.info "Use `bundle info` to print more detailed information about a gem"
|
30
|
+
end
|
31
|
+
|
32
|
+
private
|
33
|
+
|
34
|
+
def verify_group_exists(groups)
|
35
|
+
raise InvalidOption, "`#{@options["without-group"]}` group could not be found." if @options["without-group"] && !groups.include?(@options["without-group"].to_sym)
|
36
|
+
|
37
|
+
raise InvalidOption, "`#{@options["only-group"]}` group could not be found." if @options["only-group"] && !groups.include?(@options["only-group"].to_sym)
|
38
|
+
end
|
39
|
+
|
40
|
+
def filtered_specs_by_groups
|
41
|
+
definition = Bundler.definition
|
42
|
+
groups = definition.groups
|
43
|
+
|
44
|
+
verify_group_exists(groups)
|
45
|
+
|
46
|
+
show_groups =
|
47
|
+
if @options["without-group"]
|
48
|
+
groups.reject {|g| g == @options["without-group"].to_sym }
|
49
|
+
elsif @options["only-group"]
|
50
|
+
groups.select {|g| g == @options["only-group"].to_sym }
|
51
|
+
else
|
52
|
+
groups
|
53
|
+
end.map(&:to_sym)
|
54
|
+
|
55
|
+
definition.specs_for(show_groups)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
data/lib/bundler/cli/lock.rb
CHANGED
data/lib/bundler/cli/open.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
|
2
|
+
|
3
3
|
require "shellwords"
|
4
4
|
|
5
5
|
module Bundler
|
@@ -17,7 +17,7 @@ module Bundler
|
|
17
17
|
path = spec.full_gem_path
|
18
18
|
Dir.chdir(path) do
|
19
19
|
command = Shellwords.split(editor) + [path]
|
20
|
-
Bundler.
|
20
|
+
Bundler.with_original_env do
|
21
21
|
system(*command)
|
22
22
|
end || Bundler.ui.info("Could not run '#{command.join(" ")}'")
|
23
23
|
end
|
data/lib/bundler/cli/outdated.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require "bundler/cli/common"
|
3
2
|
|
4
3
|
module Bundler
|
5
4
|
class CLI::Outdated
|
@@ -46,7 +45,7 @@ module Bundler
|
|
46
45
|
Bundler::CLI::Common.patch_level_options(options).any?
|
47
46
|
|
48
47
|
filter_options_patch = options.keys &
|
49
|
-
%w
|
48
|
+
%w[filter-major filter-minor filter-patch]
|
50
49
|
|
51
50
|
definition_resolution = proc do
|
52
51
|
options[:local] ? definition.resolve_with_cache! : definition.resolve_remotely!
|
@@ -67,7 +66,13 @@ module Bundler
|
|
67
66
|
current_dependencies.key? spec.name
|
68
67
|
end
|
69
68
|
|
70
|
-
|
69
|
+
specs = if options["only-explicit"]
|
70
|
+
gemfile_specs
|
71
|
+
else
|
72
|
+
gemfile_specs + dependency_specs
|
73
|
+
end
|
74
|
+
|
75
|
+
specs.sort_by(&:name).each do |current_spec|
|
71
76
|
next if !gems.empty? && !gems.include?(current_spec.name)
|
72
77
|
|
73
78
|
dependency = current_dependencies[current_spec.name]
|
@@ -214,13 +219,19 @@ module Bundler
|
|
214
219
|
end
|
215
220
|
|
216
221
|
def check_for_deployment_mode
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
222
|
+
return unless Bundler.frozen_bundle?
|
223
|
+
suggested_command = if Bundler.settings.locations("frozen")[:global]
|
224
|
+
"bundle config --delete frozen"
|
225
|
+
elsif Bundler.settings.locations("deployment").keys.&([:global, :local]).any?
|
226
|
+
"bundle config --delete deployment"
|
227
|
+
else
|
228
|
+
"bundle install --no-deployment"
|
223
229
|
end
|
230
|
+
raise ProductionError, "You are trying to check outdated gems in " \
|
231
|
+
"deployment mode. Run `bundle outdated` elsewhere.\n" \
|
232
|
+
"\nIf this is a development machine, remove the " \
|
233
|
+
"#{Bundler.default_gemfile} freeze" \
|
234
|
+
"\nby running `#{suggested_command}`."
|
224
235
|
end
|
225
236
|
|
226
237
|
def update_present_via_semver_portions(current_spec, active_spec, options)
|
data/lib/bundler/cli/package.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
module Bundler
|
3
4
|
class CLI::Package
|
4
5
|
attr_reader :options
|
@@ -9,15 +10,15 @@ module Bundler
|
|
9
10
|
|
10
11
|
def run
|
11
12
|
Bundler.ui.level = "error" if options[:quiet]
|
12
|
-
Bundler.settings
|
13
|
-
Bundler.settings
|
14
|
-
Bundler.settings
|
13
|
+
Bundler.settings.set_command_option_if_given :path, options[:path]
|
14
|
+
Bundler.settings.set_command_option_if_given :cache_all_platforms, options["all-platforms"]
|
15
|
+
Bundler.settings.set_command_option_if_given :cache_path, options["cache-path"]
|
15
16
|
|
16
17
|
setup_cache_all
|
17
18
|
install
|
18
19
|
|
19
20
|
# TODO: move cache contents here now that all bundles are locked
|
20
|
-
custom_path =
|
21
|
+
custom_path = Bundler.settings[:path] if options[:path]
|
21
22
|
Bundler.load.cache(custom_path)
|
22
23
|
end
|
23
24
|
|
@@ -34,9 +35,11 @@ module Bundler
|
|
34
35
|
end
|
35
36
|
|
36
37
|
def setup_cache_all
|
37
|
-
|
38
|
+
all = options.fetch(:all, Bundler.feature_flag.cache_command_is_package? || nil)
|
39
|
+
|
40
|
+
Bundler.settings.set_command_option_if_given :cache_all, all
|
38
41
|
|
39
|
-
if Bundler.definition.has_local_dependencies? && !Bundler.
|
42
|
+
if Bundler.definition.has_local_dependencies? && !Bundler.feature_flag.cache_all?
|
40
43
|
Bundler.ui.warn "Your Gemfile contains path and git dependencies. If you want " \
|
41
44
|
"to package them as well, please pass the --all flag. This will be the default " \
|
42
45
|
"on Bundler 2.0."
|
data/lib/bundler/cli/platform.rb
CHANGED
data/lib/bundler/cli/plugin.rb
CHANGED
data/lib/bundler/cli/pristine.rb
CHANGED
@@ -1,16 +1,25 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require "bundler/cli/common"
|
3
2
|
|
4
3
|
module Bundler
|
5
4
|
class CLI::Pristine
|
5
|
+
def initialize(gems)
|
6
|
+
@gems = gems
|
7
|
+
end
|
8
|
+
|
6
9
|
def run
|
10
|
+
CLI::Common.ensure_all_gems_in_lockfile!(@gems)
|
11
|
+
definition = Bundler.definition
|
12
|
+
definition.validate_runtime!
|
13
|
+
installer = Bundler::Installer.new(Bundler.root, definition)
|
14
|
+
|
7
15
|
Bundler.load.specs.each do |spec|
|
8
16
|
next if spec.name == "bundler" # Source::Rubygems doesn't install bundler
|
17
|
+
next if !@gems.empty? && !@gems.include?(spec.name)
|
9
18
|
|
10
19
|
gem_name = "#{spec.name} (#{spec.version}#{spec.git_version})"
|
11
20
|
gem_name += " (#{spec.platform})" if !spec.platform.nil? && spec.platform != Gem::Platform::RUBY
|
12
21
|
|
13
|
-
case spec.source
|
22
|
+
case source = spec.source
|
14
23
|
when Source::Rubygems
|
15
24
|
cached_gem = spec.cache_file
|
16
25
|
unless File.exist?(cached_gem)
|
@@ -19,14 +28,19 @@ module Bundler
|
|
19
28
|
end
|
20
29
|
|
21
30
|
FileUtils.rm_rf spec.full_gem_path
|
22
|
-
spec.source.install(spec, :force => true)
|
23
31
|
when Source::Git
|
24
|
-
|
25
|
-
|
26
|
-
|
32
|
+
source.remote!
|
33
|
+
if extension_cache_path = source.extension_cache_path(spec)
|
34
|
+
FileUtils.rm_rf extension_cache_path
|
35
|
+
end
|
36
|
+
FileUtils.rm_rf spec.extension_dir if spec.respond_to?(:extension_dir)
|
37
|
+
FileUtils.rm_rf spec.full_gem_path
|
27
38
|
else
|
28
39
|
Bundler.ui.warn("Cannot pristine #{gem_name}. Gem is sourced from local path.")
|
40
|
+
next
|
29
41
|
end
|
42
|
+
|
43
|
+
Bundler::GemInstaller.new(spec, installer, false, 0, true).install_from_spec
|
30
44
|
end
|
31
45
|
end
|
32
46
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Bundler
|
4
|
+
class CLI::Remove
|
5
|
+
def initialize(gems, options)
|
6
|
+
@gems = gems
|
7
|
+
@options = options
|
8
|
+
end
|
9
|
+
|
10
|
+
def run
|
11
|
+
raise InvalidOption, "Please specify gems to remove." if @gems.empty?
|
12
|
+
|
13
|
+
Injector.remove(@gems, {})
|
14
|
+
|
15
|
+
Installer.install(Bundler.root, Bundler.definition) if @options["install"]
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/lib/bundler/cli/show.rb
CHANGED
data/lib/bundler/cli/update.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require "bundler/cli/common"
|
3
2
|
|
4
3
|
module Bundler
|
5
4
|
class CLI::Update
|
@@ -17,7 +16,18 @@ module Bundler
|
|
17
16
|
sources = Array(options[:source])
|
18
17
|
groups = Array(options[:group]).map(&:to_sym)
|
19
18
|
|
20
|
-
|
19
|
+
full_update = gems.empty? && sources.empty? && groups.empty? && !options[:ruby] && !options[:bundler]
|
20
|
+
|
21
|
+
if full_update && !options[:all]
|
22
|
+
if Bundler.feature_flag.update_requires_all_flag?
|
23
|
+
raise InvalidOption, "To update everything, pass the `--all` flag."
|
24
|
+
end
|
25
|
+
SharedHelpers.major_deprecation 2, "Pass --all to `bundle update` to update everything"
|
26
|
+
elsif !full_update && options[:all]
|
27
|
+
raise InvalidOption, "Cannot specify --all along with specific options."
|
28
|
+
end
|
29
|
+
|
30
|
+
if full_update
|
21
31
|
# We're doing a full update
|
22
32
|
Bundler.definition(true)
|
23
33
|
else
|
@@ -28,12 +38,13 @@ module Bundler
|
|
28
38
|
Bundler::CLI::Common.ensure_all_gems_in_lockfile!(gems)
|
29
39
|
|
30
40
|
if groups.any?
|
31
|
-
|
32
|
-
gems.concat(
|
41
|
+
deps = Bundler.definition.dependencies.select {|d| (d.groups & groups).any? }
|
42
|
+
gems.concat(deps.map(&:name))
|
33
43
|
end
|
34
44
|
|
35
45
|
Bundler.definition(:gems => gems, :sources => sources, :ruby => options[:ruby],
|
36
|
-
:lock_shared_dependencies => options[:conservative]
|
46
|
+
:lock_shared_dependencies => options[:conservative],
|
47
|
+
:bundler => options[:bundler])
|
37
48
|
end
|
38
49
|
|
39
50
|
Bundler::CLI::Common.configure_gem_version_promoter(Bundler.definition, options)
|
@@ -44,17 +55,34 @@ module Bundler
|
|
44
55
|
opts["update"] = true
|
45
56
|
opts["local"] = options[:local]
|
46
57
|
|
47
|
-
Bundler.settings
|
58
|
+
Bundler.settings.set_command_option_if_given :jobs, opts["jobs"]
|
48
59
|
|
49
60
|
Bundler.definition.validate_runtime!
|
50
61
|
installer = Installer.install Bundler.root, Bundler.definition, opts
|
51
62
|
Bundler.load.cache if Bundler.app_cache.exist?
|
52
63
|
|
53
|
-
if
|
64
|
+
if CLI::Common.clean_after_install?
|
54
65
|
require "bundler/cli/clean"
|
55
66
|
Bundler::CLI::Clean.new(options).run
|
56
67
|
end
|
57
68
|
|
69
|
+
if locked_gems = Bundler.definition.locked_gems
|
70
|
+
gems.each do |name|
|
71
|
+
locked_version = locked_gems.specs.find {|s| s.name == name }
|
72
|
+
locked_version &&= locked_version.version
|
73
|
+
next unless locked_version
|
74
|
+
new_version = Bundler.definition.specs[name].first
|
75
|
+
new_version &&= new_version.version
|
76
|
+
if !new_version
|
77
|
+
Bundler.ui.warn "Bundler attempted to update #{name} but it was removed from the bundle"
|
78
|
+
elsif new_version < locked_version
|
79
|
+
Bundler.ui.warn "Note: #{name} version regressed from #{locked_version} to #{new_version}"
|
80
|
+
elsif new_version == locked_version
|
81
|
+
Bundler.ui.warn "Bundler attempted to update #{name} but its version stayed the same"
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
58
86
|
Bundler.ui.confirm "Bundle updated!"
|
59
87
|
Bundler::CLI::Common.output_without_groups_message
|
60
88
|
Bundler::CLI::Common.output_post_install_messages installer.post_install_messages
|