bundler 1.17.0.pre.2 → 2.1.0.pre.2
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 +4 -4
- data/CHANGELOG.md +769 -570
- data/LICENSE.md +18 -19
- data/README.md +9 -8
- data/bundler.gemspec +12 -23
- data/exe/bundle +19 -3
- data/lib/bundler.rb +121 -68
- data/lib/bundler/build_metadata.rb +14 -7
- data/lib/bundler/capistrano.rb +4 -4
- data/lib/bundler/cli.rb +129 -121
- data/lib/bundler/cli/add.rb +27 -16
- data/lib/bundler/cli/common.rb +11 -12
- data/lib/bundler/cli/config.rb +161 -86
- data/lib/bundler/cli/console.rb +1 -1
- data/lib/bundler/cli/doctor.rb +4 -4
- data/lib/bundler/cli/exec.rb +4 -9
- data/lib/bundler/cli/gem.rb +5 -5
- data/lib/bundler/cli/info.rb +17 -5
- data/lib/bundler/cli/init.rb +1 -1
- data/lib/bundler/cli/install.rb +11 -10
- data/lib/bundler/cli/issue.rb +3 -3
- data/lib/bundler/cli/open.rb +10 -6
- data/lib/bundler/cli/outdated.rb +85 -81
- data/lib/bundler/cli/package.rb +8 -9
- data/lib/bundler/cli/plugin.rb +9 -2
- data/lib/bundler/cli/pristine.rb +1 -1
- data/lib/bundler/cli/show.rb +1 -1
- data/lib/bundler/cli/update.rb +31 -11
- data/lib/bundler/compact_index_client.rb +25 -9
- data/lib/bundler/compact_index_client/updater.rb +2 -6
- data/lib/bundler/current_ruby.rb +9 -7
- data/lib/bundler/definition.rb +35 -26
- data/lib/bundler/dependency.rb +16 -4
- data/lib/bundler/deployment.rb +1 -1
- data/lib/bundler/dsl.rb +15 -39
- data/lib/bundler/env.rb +8 -13
- data/lib/bundler/environment_preserver.rb +0 -1
- data/lib/bundler/feature_flag.rb +23 -32
- data/lib/bundler/fetcher.rb +14 -11
- data/lib/bundler/fetcher/compact_index.rb +26 -12
- data/lib/bundler/fetcher/dependency.rb +1 -1
- data/lib/bundler/fetcher/downloader.rb +4 -1
- data/lib/bundler/fetcher/index.rb +4 -2
- data/lib/bundler/friendly_errors.rb +4 -5
- data/lib/bundler/gem_helper.rb +39 -24
- data/lib/bundler/gem_helpers.rb +2 -4
- data/lib/bundler/gem_tasks.rb +1 -1
- data/lib/bundler/gem_version_promoter.rb +3 -3
- data/lib/bundler/graph.rb +2 -2
- data/lib/bundler/injector.rb +10 -8
- data/lib/bundler/inline.rb +19 -18
- data/lib/bundler/installer.rb +7 -14
- data/lib/bundler/installer/gem_installer.rb +5 -1
- data/lib/bundler/installer/parallel_installer.rb +4 -8
- data/lib/bundler/installer/standalone.rb +1 -2
- data/lib/bundler/lazy_specification.rb +2 -2
- data/lib/bundler/lockfile_parser.rb +13 -21
- data/lib/bundler/match_platform.rb +1 -1
- data/lib/bundler/plugin.rb +42 -29
- data/lib/bundler/plugin/api.rb +1 -1
- data/lib/bundler/plugin/api/source.rb +2 -2
- data/lib/bundler/plugin/index.rb +14 -3
- data/lib/bundler/plugin/installer.rb +28 -15
- data/lib/bundler/psyched_yaml.rb +1 -1
- data/lib/bundler/resolver.rb +72 -24
- data/lib/bundler/resolver/spec_group.rb +3 -2
- data/lib/bundler/retry.rb +2 -2
- data/lib/bundler/ruby_version.rb +4 -19
- data/lib/bundler/rubygems_ext.rb +10 -66
- data/lib/bundler/rubygems_gem_installer.rb +1 -1
- data/lib/bundler/rubygems_integration.rb +144 -395
- data/lib/bundler/runtime.rb +2 -9
- data/lib/bundler/settings.rb +15 -47
- data/lib/bundler/setup.rb +6 -5
- data/lib/bundler/shared_helpers.rb +64 -67
- data/lib/bundler/similarity_detector.rb +2 -2
- data/lib/bundler/source.rb +5 -5
- data/lib/bundler/source/git.rb +19 -12
- data/lib/bundler/source/git/git_proxy.rb +35 -39
- data/lib/bundler/source/metadata.rb +9 -5
- data/lib/bundler/source/path.rb +13 -8
- data/lib/bundler/source/rubygems.rb +11 -5
- data/lib/bundler/source/rubygems/remote.rb +1 -2
- data/lib/bundler/source_list.rb +9 -12
- data/lib/bundler/spec_set.rb +23 -12
- data/lib/bundler/stub_specification.rb +18 -30
- data/lib/bundler/templates/Executable.bundler +23 -14
- data/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +3 -3
- data/lib/bundler/templates/newgem/Gemfile.tt +8 -2
- data/lib/bundler/templates/newgem/README.md.tt +4 -3
- data/lib/bundler/templates/newgem/newgem.gemspec.tt +6 -27
- data/lib/bundler/templates/newgem/test/test_helper.rb.tt +1 -1
- data/lib/bundler/templates/newgem/travis.yml.tt +0 -1
- data/lib/bundler/ui.rb +3 -3
- data/lib/bundler/ui/rg_proxy.rb +1 -1
- data/lib/bundler/ui/shell.rb +4 -8
- data/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +161 -0
- data/lib/bundler/vendor/connection_pool/lib/connection_pool/monotonic_time.rb +66 -0
- data/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +176 -0
- data/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +3 -0
- data/lib/bundler/vendor/fileutils/lib/fileutils.rb +151 -48
- data/lib/bundler/vendor/fileutils/lib/fileutils/version.rb +5 -0
- data/lib/bundler/vendor/molinillo/lib/molinillo.rb +6 -6
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +2 -2
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +1 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +1 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +1 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +1 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +6 -6
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +1 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +1 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +30 -8
- data/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +1 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +4 -4
- data/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +2 -2
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +248 -279
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +40 -0
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +53 -0
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +79 -0
- data/lib/bundler/vendor/thor/lib/thor.rb +7 -2
- data/lib/bundler/vendor/thor/lib/thor/actions.rb +21 -11
- data/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor/actions/directory.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +11 -2
- data/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor/base.rb +16 -17
- data/lib/bundler/vendor/thor/lib/thor/error.rb +82 -0
- data/lib/bundler/vendor/thor/lib/thor/group.rb +3 -3
- data/lib/bundler/vendor/thor/lib/thor/line_editor.rb +2 -2
- data/lib/bundler/vendor/thor/lib/thor/parser.rb +4 -4
- data/lib/bundler/vendor/thor/lib/thor/parser/options.rb +7 -2
- data/lib/bundler/vendor/thor/lib/thor/runner.rb +6 -6
- data/lib/bundler/vendor/thor/lib/thor/shell.rb +4 -4
- data/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +52 -7
- data/lib/bundler/vendor/thor/lib/thor/shell/color.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor/shell/html.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor/util.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
- data/lib/bundler/vendored_fileutils.rb +1 -6
- data/lib/bundler/vendored_molinillo.rb +1 -1
- data/lib/bundler/vendored_persistent.rb +7 -5
- data/lib/bundler/vendored_thor.rb +2 -2
- data/lib/bundler/version.rb +1 -20
- data/lib/bundler/version_ranges.rb +51 -5
- data/lib/bundler/vlad.rb +2 -2
- data/lib/bundler/worker.rb +1 -3
- data/lib/bundler/yaml_serializer.rb +2 -3
- data/man/bundle-add.1 +10 -2
- data/man/bundle-add.1.txt +11 -5
- data/man/bundle-add.ronn +7 -1
- data/man/bundle-binstubs.1 +2 -2
- data/man/bundle-binstubs.1.txt +2 -2
- data/man/bundle-binstubs.ronn +1 -1
- data/man/bundle-check.1 +1 -1
- data/man/bundle-check.1.txt +6 -6
- data/man/bundle-clean.1 +1 -1
- data/man/bundle-clean.1.txt +1 -1
- data/man/bundle-config.1 +52 -36
- data/man/bundle-config.1.txt +82 -67
- data/man/bundle-config.ronn +56 -40
- data/man/bundle-doctor.1 +1 -1
- data/man/bundle-doctor.1.txt +1 -1
- data/man/bundle-exec.1 +2 -2
- data/man/bundle-exec.1.txt +2 -2
- data/man/bundle-exec.ronn +1 -1
- data/man/bundle-gem.1 +1 -1
- data/man/bundle-gem.1.txt +3 -3
- data/man/bundle-info.1 +1 -1
- data/man/bundle-info.1.txt +1 -1
- data/man/bundle-init.1 +2 -2
- data/man/bundle-init.1.txt +2 -2
- data/man/bundle-init.ronn +1 -1
- data/man/bundle-inject.1 +1 -1
- data/man/bundle-inject.1.txt +1 -1
- data/man/bundle-install.1 +8 -5
- data/man/bundle-install.1.txt +56 -51
- data/man/bundle-install.ronn +9 -4
- data/man/bundle-list.1 +1 -1
- data/man/bundle-list.1.txt +1 -1
- data/man/bundle-lock.1 +1 -1
- data/man/bundle-lock.1.txt +16 -16
- data/man/bundle-open.1 +1 -1
- data/man/bundle-open.1.txt +1 -1
- data/man/bundle-outdated.1 +1 -1
- data/man/bundle-outdated.1.txt +1 -1
- data/man/bundle-package.1 +1 -1
- data/man/bundle-package.1.txt +1 -1
- data/man/bundle-platform.1 +1 -1
- data/man/bundle-platform.1.txt +1 -1
- data/man/bundle-pristine.1 +1 -1
- data/man/bundle-pristine.1.txt +1 -1
- data/man/bundle-remove.1 +1 -1
- data/man/bundle-remove.1.txt +1 -1
- data/man/bundle-show.1 +1 -1
- data/man/bundle-show.1.txt +1 -1
- data/man/bundle-update.1 +4 -4
- data/man/bundle-update.1.txt +64 -65
- data/man/bundle-update.ronn +3 -3
- data/man/bundle-viz.1 +1 -1
- data/man/bundle-viz.1.txt +1 -1
- data/man/bundle.1 +7 -3
- data/man/bundle.1.txt +11 -8
- data/man/bundle.ronn +5 -2
- data/man/gemfile.5 +17 -20
- data/man/gemfile.5.ronn +14 -18
- data/man/gemfile.5.txt +108 -112
- metadata +17 -104
- data/exe/bundle_ruby +0 -60
- data/lib/bundler/cli/cache.rb +0 -36
- data/lib/bundler/compatibility_guard.rb +0 -14
- data/lib/bundler/ssl_certs/.document +0 -1
- data/lib/bundler/ssl_certs/certificate_manager.rb +0 -66
- data/lib/bundler/ssl_certs/index.rubygems.org/GlobalSignRootCA.pem +0 -21
- data/lib/bundler/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -23
- data/lib/bundler/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -25
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/faster.rb +0 -27
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/ssl_reuse.rb +0 -129
@@ -4,8 +4,8 @@ module Bundler
|
|
4
4
|
# Represents metadata from when the Bundler gem was built.
|
5
5
|
module BuildMetadata
|
6
6
|
# begin ivars
|
7
|
-
@built_at = "
|
8
|
-
@git_commit_sha = "
|
7
|
+
@built_at = "2019-09-15".freeze
|
8
|
+
@git_commit_sha = "b0dcf5f7b".freeze
|
9
9
|
@release = true
|
10
10
|
# end ivars
|
11
11
|
|
@@ -25,17 +25,24 @@ module Bundler
|
|
25
25
|
|
26
26
|
# The SHA for the git commit the bundler gem was built from.
|
27
27
|
def self.git_commit_sha
|
28
|
-
return @git_commit_sha if
|
28
|
+
return @git_commit_sha if instance_variable_defined? :@git_commit_sha
|
29
29
|
|
30
30
|
# If Bundler has been installed without its .git directory and without a
|
31
31
|
# commit instance variable then we can't determine its commits SHA.
|
32
32
|
git_dir = File.join(File.expand_path("../../..", __FILE__), ".git")
|
33
|
-
|
33
|
+
if File.directory?(git_dir)
|
34
|
+
return @git_commit_sha = Dir.chdir(git_dir) { `git rev-parse --short HEAD`.strip.freeze }
|
35
|
+
end
|
34
36
|
|
35
|
-
#
|
36
|
-
|
37
|
-
|
37
|
+
# If Bundler is a submodule in RubyGems, get the submodule commit
|
38
|
+
git_sub_dir = File.join(File.expand_path("../../../..", __FILE__), ".git")
|
39
|
+
if File.directory?(git_sub_dir)
|
40
|
+
return @git_commit_sha = Dir.chdir(git_sub_dir) do
|
41
|
+
`git ls-tree --abbrev=8 HEAD bundler`.split(/\s/).fetch(2, "").strip.freeze
|
42
|
+
end
|
38
43
|
end
|
44
|
+
|
45
|
+
@git_commit_sha ||= "unknown"
|
39
46
|
end
|
40
47
|
|
41
48
|
# Whether this is an official release build of Bundler.
|
data/lib/bundler/capistrano.rb
CHANGED
@@ -1,18 +1,18 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
3
|
+
require_relative "shared_helpers"
|
4
4
|
Bundler::SharedHelpers.major_deprecation 2,
|
5
|
-
"The Bundler task for Capistrano. Please use
|
5
|
+
"The Bundler task for Capistrano. Please use https://github.com/capistrano/bundler"
|
6
6
|
|
7
7
|
# Capistrano task for Bundler.
|
8
8
|
#
|
9
9
|
# Add "require 'bundler/capistrano'" in your Capistrano deploy.rb, and
|
10
10
|
# Bundler will be activated after each new deployment.
|
11
|
-
|
11
|
+
require_relative "deployment"
|
12
12
|
require "capistrano/version"
|
13
13
|
|
14
14
|
if defined?(Capistrano::Version) && Gem::Version.new(Capistrano::Version).release >= Gem::Version.new("3.0")
|
15
|
-
raise "For Capistrano 3.x integration, please use
|
15
|
+
raise "For Capistrano 3.x integration, please use https://github.com/capistrano/bundler"
|
16
16
|
end
|
17
17
|
|
18
18
|
Capistrano::Configuration.instance(:must_exist).load do
|
data/lib/bundler/cli.rb
CHANGED
@@ -1,11 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
require "bundler/vendored_thor"
|
3
|
+
require_relative "vendored_thor"
|
5
4
|
|
6
5
|
module Bundler
|
7
6
|
class CLI < Thor
|
8
|
-
|
7
|
+
require_relative "cli/common"
|
9
8
|
|
10
9
|
package_name "Bundler"
|
11
10
|
|
@@ -16,7 +15,7 @@ module Bundler
|
|
16
15
|
|
17
16
|
def self.start(*)
|
18
17
|
super
|
19
|
-
rescue Exception => e
|
18
|
+
rescue Exception => e # rubocop:disable Lint/RescueException
|
20
19
|
Bundler.ui = UI::Shell.new
|
21
20
|
raise e
|
22
21
|
ensure
|
@@ -61,11 +60,6 @@ module Bundler
|
|
61
60
|
end
|
62
61
|
end
|
63
62
|
|
64
|
-
def self.deprecated_option(*args, &blk)
|
65
|
-
return if Bundler.feature_flag.forget_cli_options?
|
66
|
-
method_option(*args, &blk)
|
67
|
-
end
|
68
|
-
|
69
63
|
check_unknown_options!(:except => [:config, :exec])
|
70
64
|
stop_on_unknown_option! :exec
|
71
65
|
|
@@ -75,7 +69,7 @@ module Bundler
|
|
75
69
|
Bundler.ui.info "\n"
|
76
70
|
|
77
71
|
primary_commands = ["install", "update",
|
78
|
-
Bundler.feature_flag.
|
72
|
+
Bundler.feature_flag.bundler_3_mode? ? "cache" : "package",
|
79
73
|
"exec", "config", "help"]
|
80
74
|
|
81
75
|
list = self.class.printable_commands(true)
|
@@ -142,9 +136,9 @@ module Bundler
|
|
142
136
|
Gemfile to a gem with a gemspec, the --gemspec option will automatically add each
|
143
137
|
dependency listed in the gemspec file to the newly created Gemfile.
|
144
138
|
D
|
145
|
-
|
139
|
+
method_option "gemspec", :type => :string, :banner => "Use the specified .gemspec to create the Gemfile"
|
146
140
|
def init
|
147
|
-
|
141
|
+
require_relative "cli/init"
|
148
142
|
Init.new(options.dup).run
|
149
143
|
end
|
150
144
|
|
@@ -162,7 +156,9 @@ module Bundler
|
|
162
156
|
"Specify a different path than the system default ($BUNDLE_PATH or $GEM_HOME).#{" Bundler will remember this value for future installs on this machine" unless Bundler.feature_flag.forget_cli_options?}"
|
163
157
|
map "c" => "check"
|
164
158
|
def check
|
165
|
-
|
159
|
+
remembered_flag_deprecation("path")
|
160
|
+
|
161
|
+
require_relative "cli/check"
|
166
162
|
Check.new(options).run
|
167
163
|
end
|
168
164
|
|
@@ -173,7 +169,7 @@ module Bundler
|
|
173
169
|
method_option "install", :type => :boolean, :banner =>
|
174
170
|
"Runs 'bundle install' after removing the gems from the Gemfile"
|
175
171
|
def remove(*gems)
|
176
|
-
|
172
|
+
require_relative "cli/remove"
|
177
173
|
Remove.new(gems, options).run
|
178
174
|
end
|
179
175
|
|
@@ -188,13 +184,13 @@ module Bundler
|
|
188
184
|
|
189
185
|
If the bundle has already been installed, bundler will tell you so and then exit.
|
190
186
|
D
|
191
|
-
|
187
|
+
method_option "binstubs", :type => :string, :lazy_default => "bin", :banner =>
|
192
188
|
"Generate bin stubs for bundled gems to ./bin"
|
193
|
-
|
189
|
+
method_option "clean", :type => :boolean, :banner =>
|
194
190
|
"Run bundle clean automatically after install"
|
195
|
-
|
191
|
+
method_option "deployment", :type => :boolean, :banner =>
|
196
192
|
"Install using defaults tuned for deployment environments"
|
197
|
-
|
193
|
+
method_option "frozen", :type => :boolean, :banner =>
|
198
194
|
"Do not allow the Gemfile.lock to be updated after this install"
|
199
195
|
method_option "full-index", :type => :boolean, :banner =>
|
200
196
|
"Fall back to using the single-file index of all gems"
|
@@ -204,33 +200,38 @@ module Bundler
|
|
204
200
|
"Specify the number of jobs to run in parallel"
|
205
201
|
method_option "local", :type => :boolean, :banner =>
|
206
202
|
"Do not attempt to fetch gems remotely and use the gem cache instead"
|
207
|
-
|
203
|
+
method_option "no-cache", :type => :boolean, :banner =>
|
208
204
|
"Don't update the existing gem cache."
|
209
205
|
method_option "redownload", :type => :boolean, :aliases => "--force", :banner =>
|
210
206
|
"Force downloading every gem."
|
211
|
-
|
207
|
+
method_option "no-prune", :type => :boolean, :banner =>
|
212
208
|
"Don't remove stale gems from the cache."
|
213
|
-
|
214
|
-
"Specify a different path than the system default ($BUNDLE_PATH or $GEM_HOME)
|
209
|
+
method_option "path", :type => :string, :banner =>
|
210
|
+
"Specify a different path than the system default ($BUNDLE_PATH or $GEM_HOME).#{" Bundler will remember this value for future installs on this machine" unless Bundler.feature_flag.forget_cli_options?}"
|
215
211
|
method_option "quiet", :type => :boolean, :banner =>
|
216
212
|
"Only output warnings and errors."
|
217
|
-
|
213
|
+
method_option "shebang", :type => :string, :banner =>
|
218
214
|
"Specify a different shebang executable name than the default (usually 'ruby')"
|
219
215
|
method_option "standalone", :type => :array, :lazy_default => [], :banner =>
|
220
216
|
"Make a bundle that can work without the Bundler runtime"
|
221
|
-
|
217
|
+
method_option "system", :type => :boolean, :banner =>
|
222
218
|
"Install to the system location ($BUNDLE_PATH or $GEM_HOME) even if the bundle was previously installed somewhere else for this application"
|
223
219
|
method_option "trust-policy", :alias => "P", :type => :string, :banner =>
|
224
220
|
"Gem trust policy (like gem install -P). Must be one of " +
|
225
221
|
Bundler.rubygems.security_policy_keys.join("|")
|
226
|
-
|
222
|
+
method_option "without", :type => :array, :banner =>
|
227
223
|
"Exclude gems that are part of the specified named group."
|
228
|
-
|
224
|
+
method_option "with", :type => :array, :banner =>
|
229
225
|
"Include gems that are part of the specified named group."
|
230
226
|
map "i" => "install"
|
231
227
|
def install
|
232
228
|
SharedHelpers.major_deprecation(2, "The `--force` option has been renamed to `--redownload`") if ARGV.include?("--force")
|
233
|
-
|
229
|
+
|
230
|
+
%w[clean deployment frozen no-cache no-prune path shebang system without with].each do |option|
|
231
|
+
remembered_flag_deprecation(option)
|
232
|
+
end
|
233
|
+
|
234
|
+
require_relative "cli/install"
|
234
235
|
Bundler.settings.temporary(:no_install => false) do
|
235
236
|
Install.new(options.dup).run
|
236
237
|
end
|
@@ -276,60 +277,63 @@ module Bundler
|
|
276
277
|
"Update everything."
|
277
278
|
def update(*gems)
|
278
279
|
SharedHelpers.major_deprecation(2, "The `--force` option has been renamed to `--redownload`") if ARGV.include?("--force")
|
279
|
-
|
280
|
-
|
280
|
+
require_relative "cli/update"
|
281
|
+
Bundler.settings.temporary(:no_install => false) do
|
282
|
+
Update.new(options, gems).run
|
283
|
+
end
|
281
284
|
end
|
282
285
|
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
286
|
+
unless Bundler.feature_flag.bundler_3_mode?
|
287
|
+
desc "show GEM [OPTIONS]", "Shows all gems that are part of the bundle, or the path to a given gem"
|
288
|
+
long_desc <<-D
|
289
|
+
Show lists the names and versions of all gems that are required by your Gemfile.
|
290
|
+
Calling show with [GEM] will list the exact location of that gem on your machine.
|
291
|
+
D
|
292
|
+
method_option "paths", :type => :boolean,
|
293
|
+
:banner => "List the paths of all gems that are required by your Gemfile."
|
294
|
+
method_option "outdated", :type => :boolean,
|
295
|
+
:banner => "Show verbose output including whether gems are outdated."
|
296
|
+
def show(gem_name = nil)
|
297
|
+
if ARGV[0] == "show"
|
298
|
+
rest = ARGV[1..-1]
|
299
|
+
|
300
|
+
if flag = rest.find{|arg| ["--verbose", "--outdated"].include?(arg) }
|
301
|
+
Bundler::SharedHelpers.major_deprecation(2, "the `#{flag}` flag to `bundle show` was undocumented and will be removed without replacement")
|
302
|
+
else
|
303
|
+
new_command = rest.find {|arg| !arg.start_with?("--") } ? "info" : "list"
|
304
|
+
|
305
|
+
new_arguments = rest.map do |arg|
|
306
|
+
next arg if arg != "--paths"
|
307
|
+
next "--path" if new_command == "info"
|
308
|
+
end
|
309
|
+
|
310
|
+
old_argv = ARGV.join(" ")
|
311
|
+
new_argv = [new_command, *new_arguments.compact].join(" ")
|
312
|
+
|
313
|
+
Bundler::SharedHelpers.major_deprecation(2, "use `bundle #{new_argv}` instead of `bundle #{old_argv}`")
|
314
|
+
end
|
301
315
|
end
|
302
|
-
|
303
|
-
|
304
|
-
new_argv = [new_command, *new_arguments.compact].join(" ")
|
305
|
-
|
306
|
-
Bundler::SharedHelpers.major_deprecation(2, "use `bundle #{new_argv}` instead of `bundle #{old_argv}`")
|
307
|
-
end
|
308
|
-
require "bundler/cli/show"
|
309
|
-
Show.new(options, gem_name).run
|
310
|
-
end
|
311
|
-
# TODO: 2.0 remove `bundle show`
|
312
|
-
|
313
|
-
if Bundler.feature_flag.list_command?
|
314
|
-
desc "list", "List all gems in the bundle"
|
315
|
-
method_option "name-only", :type => :boolean, :banner => "print only the gem names"
|
316
|
-
method_option "only-group", :type => :string, :banner => "print gems from a particular group"
|
317
|
-
method_option "without-group", :type => :string, :banner => "print all gems expect from a group"
|
318
|
-
method_option "paths", :type => :boolean, :banner => "print the path to each gem in the bundle"
|
319
|
-
def list
|
320
|
-
require "bundler/cli/list"
|
321
|
-
List.new(options).run
|
316
|
+
require_relative "cli/show"
|
317
|
+
Show.new(options, gem_name).run
|
322
318
|
end
|
319
|
+
end
|
323
320
|
|
324
|
-
|
325
|
-
|
326
|
-
|
321
|
+
desc "list", "List all gems in the bundle"
|
322
|
+
method_option "name-only", :type => :boolean, :banner => "print only the gem names"
|
323
|
+
method_option "only-group", :type => :string, :banner => "print gems from a particular group"
|
324
|
+
method_option "without-group", :type => :string, :banner => "print all gems except from a group"
|
325
|
+
method_option "paths", :type => :boolean, :banner => "print the path to each gem in the bundle"
|
326
|
+
def list
|
327
|
+
require_relative "cli/list"
|
328
|
+
List.new(options).run
|
327
329
|
end
|
328
330
|
|
331
|
+
map %w[ls] => "list"
|
332
|
+
|
329
333
|
desc "info GEM [OPTIONS]", "Show information for the given gem"
|
330
334
|
method_option "path", :type => :boolean, :banner => "Print full path to gem"
|
331
335
|
def info(gem_name)
|
332
|
-
|
336
|
+
require_relative "cli/info"
|
333
337
|
Info.new(options, gem_name).run
|
334
338
|
end
|
335
339
|
|
@@ -350,7 +354,7 @@ module Bundler
|
|
350
354
|
method_option "all", :type => :boolean, :banner =>
|
351
355
|
"Install binstubs for all gems"
|
352
356
|
def binstubs(*gems)
|
353
|
-
|
357
|
+
require_relative "cli/binstubs"
|
354
358
|
Binstubs.new(options, gems).run
|
355
359
|
end
|
356
360
|
|
@@ -361,12 +365,14 @@ module Bundler
|
|
361
365
|
method_option "version", :aliases => "-v", :type => :string
|
362
366
|
method_option "group", :aliases => "-g", :type => :string
|
363
367
|
method_option "source", :aliases => "-s", :type => :string
|
368
|
+
method_option "git", :type => :string
|
369
|
+
method_option "branch", :type => :string
|
364
370
|
method_option "skip-install", :type => :boolean, :banner =>
|
365
371
|
"Adds gem to the Gemfile but does not install it"
|
366
372
|
method_option "optimistic", :type => :boolean, :banner => "Adds optimistic declaration of version to gem"
|
367
373
|
method_option "strict", :type => :boolean, :banner => "Adds strict declaration of version to gem"
|
368
374
|
def add(*gems)
|
369
|
-
|
375
|
+
require_relative "cli/add"
|
370
376
|
Add.new(options.dup, gems).run
|
371
377
|
end
|
372
378
|
|
@@ -386,9 +392,10 @@ module Bundler
|
|
386
392
|
"Do not attempt to fetch gems remotely and use the gem cache instead"
|
387
393
|
method_option "pre", :type => :boolean, :banner => "Check for newer pre-release gems"
|
388
394
|
method_option "source", :type => :array, :banner => "Check against a specific source"
|
389
|
-
|
395
|
+
strict_is_update = Bundler.feature_flag.forget_cli_options?
|
396
|
+
method_option "filter-strict", :type => :boolean, :aliases => strict_is_update ? [] : %w[--strict], :banner =>
|
390
397
|
"Only list newer versions allowed by your Gemfile requirements"
|
391
|
-
method_option "update-strict", :type => :boolean, :banner =>
|
398
|
+
method_option "update-strict", :type => :boolean, :aliases => strict_is_update ? %w[--strict] : [], :banner =>
|
392
399
|
"Strict conservative resolution, do not allow any gem to be updated past latest --patch | --minor | --major"
|
393
400
|
method_option "minor", :type => :boolean, :banner => "Prefer updating only to next minor version"
|
394
401
|
method_option "major", :type => :boolean, :banner => "Prefer updating to next major version (default)"
|
@@ -401,28 +408,12 @@ module Bundler
|
|
401
408
|
method_option "only-explicit", :type => :boolean, :banner =>
|
402
409
|
"Only list gems specified in your Gemfile, not their dependencies"
|
403
410
|
def outdated(*gems)
|
404
|
-
|
411
|
+
require_relative "cli/outdated"
|
405
412
|
Outdated.new(options, gems).run
|
406
413
|
end
|
407
414
|
|
408
|
-
|
409
|
-
|
410
|
-
else
|
411
|
-
desc "cache [OPTIONS]", "Cache all the gems to vendor/cache", :hide => true
|
412
|
-
unless Bundler.feature_flag.cache_command_is_package?
|
413
|
-
method_option "all", :type => :boolean,
|
414
|
-
:banner => "Include all sources (including path and git)."
|
415
|
-
end
|
416
|
-
method_option "all-platforms", :type => :boolean, :banner => "Include gems for all platforms present in the lockfile, not only the current one"
|
417
|
-
method_option "no-prune", :type => :boolean, :banner => "Don't remove stale gems from the cache."
|
418
|
-
def cache
|
419
|
-
require "bundler/cli/cache"
|
420
|
-
Cache.new(options).run
|
421
|
-
end
|
422
|
-
end
|
423
|
-
|
424
|
-
desc "#{Bundler.feature_flag.cache_command_is_package? ? :cache : :package} [OPTIONS]", "Locks and then caches all of the gems into vendor/cache"
|
425
|
-
unless Bundler.feature_flag.cache_command_is_package?
|
415
|
+
desc "#{Bundler.feature_flag.bundler_3_mode? ? :cache : :package} [OPTIONS]", "Locks and then caches all of the gems into vendor/cache"
|
416
|
+
unless Bundler.feature_flag.cache_all?
|
426
417
|
method_option "all", :type => :boolean,
|
427
418
|
:banner => "Include all sources (including path and git)."
|
428
419
|
end
|
@@ -433,7 +424,7 @@ module Bundler
|
|
433
424
|
method_option "no-install", :type => :boolean, :banner => "Don't install the gems, only the package."
|
434
425
|
method_option "no-prune", :type => :boolean, :banner => "Don't remove stale gems from the cache."
|
435
426
|
method_option "path", :type => :string, :banner =>
|
436
|
-
"Specify a different path than the system default ($BUNDLE_PATH or $GEM_HOME)
|
427
|
+
"Specify a different path than the system default ($BUNDLE_PATH or $GEM_HOME).#{" Bundler will remember this value for future installs on this machine" unless Bundler.feature_flag.forget_cli_options?}"
|
437
428
|
method_option "quiet", :type => :boolean, :banner => "Only output warnings and errors."
|
438
429
|
method_option "frozen", :type => :boolean, :banner =>
|
439
430
|
"Do not allow the Gemfile.lock to be updated after this package operation's install"
|
@@ -444,10 +435,10 @@ module Bundler
|
|
444
435
|
bundle without having to download any additional gems.
|
445
436
|
D
|
446
437
|
def package
|
447
|
-
|
438
|
+
require_relative "cli/package"
|
448
439
|
Package.new(options).run
|
449
440
|
end
|
450
|
-
map %w[pack] => :package
|
441
|
+
map %w[cache pack] => :package
|
451
442
|
|
452
443
|
desc "exec [OPTIONS]", "Run the command in context of the bundle"
|
453
444
|
method_option :keep_file_descriptors, :type => :boolean, :default => false
|
@@ -459,7 +450,7 @@ module Bundler
|
|
459
450
|
D
|
460
451
|
map "e" => "exec"
|
461
452
|
def exec(*args)
|
462
|
-
|
453
|
+
require_relative "cli/exec"
|
463
454
|
Exec.new(options, args).run
|
464
455
|
end
|
465
456
|
|
@@ -475,22 +466,19 @@ module Bundler
|
|
475
466
|
will show the current value, as well as any superceded values and
|
476
467
|
where they were specified.
|
477
468
|
D
|
478
|
-
|
479
|
-
|
480
|
-
require "bundler/cli/config"
|
481
|
-
Config.new(options, args, self).run
|
482
|
-
end
|
469
|
+
require_relative "cli/config"
|
470
|
+
subcommand "config", Config
|
483
471
|
|
484
472
|
desc "open GEM", "Opens the source directory of the given bundled gem"
|
485
473
|
def open(name)
|
486
|
-
|
474
|
+
require_relative "cli/open"
|
487
475
|
Open.new(options, name).run
|
488
476
|
end
|
489
477
|
|
490
|
-
|
478
|
+
unless Bundler.feature_flag.bundler_3_mode?
|
491
479
|
desc "console [GROUP]", "Opens an IRB session with the bundle pre-loaded"
|
492
480
|
def console(group = nil)
|
493
|
-
|
481
|
+
require_relative "cli/console"
|
494
482
|
Console.new(options, group).run
|
495
483
|
end
|
496
484
|
end
|
@@ -524,7 +512,7 @@ module Bundler
|
|
524
512
|
end
|
525
513
|
end
|
526
514
|
|
527
|
-
|
515
|
+
unless Bundler.feature_flag.bundler_3_mode?
|
528
516
|
desc "viz [OPTIONS]", "Generates a visual dependency graph", :hide => true
|
529
517
|
long_desc <<-D
|
530
518
|
Viz generates a PNG file of the current Gemfile as a dependency graph.
|
@@ -538,7 +526,7 @@ module Bundler
|
|
538
526
|
method_option :without, :type => :array, :default => [], :aliases => "-W", :banner => "GROUP[ GROUP...]", :desc => "Exclude gems that are part of the specified named group."
|
539
527
|
def viz
|
540
528
|
SharedHelpers.major_deprecation 2, "The `viz` command has been moved to the `bundle-viz` gem, see https://github.com/bundler/bundler-viz"
|
541
|
-
|
529
|
+
require_relative "cli/viz"
|
542
530
|
Viz.new(options.dup).run
|
543
531
|
end
|
544
532
|
end
|
@@ -547,14 +535,15 @@ module Bundler
|
|
547
535
|
|
548
536
|
desc "gem NAME [OPTIONS]", "Creates a skeleton for creating a rubygem"
|
549
537
|
method_option :exe, :type => :boolean, :default => false, :aliases => ["--bin", "-b"], :desc => "Generate a binary executable for your library."
|
550
|
-
method_option :coc, :type => :boolean, :desc => "Generate a code of conduct file. Set a default with `bundle config gem.coc true`."
|
538
|
+
method_option :coc, :type => :boolean, :desc => "Generate a code of conduct file. Set a default with `bundle config set gem.coc true`."
|
551
539
|
method_option :edit, :type => :string, :aliases => "-e", :required => false, :banner => "EDITOR",
|
552
540
|
:lazy_default => [ENV["BUNDLER_EDITOR"], ENV["VISUAL"], ENV["EDITOR"]].find {|e| !e.nil? && !e.empty? },
|
553
541
|
:desc => "Open generated gemspec in the specified editor (defaults to $EDITOR or $BUNDLER_EDITOR)"
|
554
542
|
method_option :ext, :type => :boolean, :default => false, :desc => "Generate the boilerplate for C extension code"
|
555
|
-
method_option :
|
543
|
+
method_option :git, :type => :boolean, :default => true, :desc => "Initialize a git repo inside your library."
|
544
|
+
method_option :mit, :type => :boolean, :desc => "Generate an MIT license file. Set a default with `bundle config set gem.mit true`."
|
556
545
|
method_option :test, :type => :string, :lazy_default => "rspec", :aliases => "-t", :banner => "rspec",
|
557
|
-
:desc => "Generate a test directory for your library, either rspec or minitest. Set a default with `bundle config gem.test rspec`."
|
546
|
+
:desc => "Generate a test directory for your library, either rspec or minitest. Set a default with `bundle config set gem.test rspec`."
|
558
547
|
def gem(name)
|
559
548
|
end
|
560
549
|
|
@@ -562,7 +551,7 @@ module Bundler
|
|
562
551
|
def gem_command.run(instance, args = [])
|
563
552
|
arity = 1 # name
|
564
553
|
|
565
|
-
|
554
|
+
require_relative "cli/gem"
|
566
555
|
cmd_args = args + [instance]
|
567
556
|
cmd_args.unshift(instance.options)
|
568
557
|
|
@@ -590,7 +579,7 @@ module Bundler
|
|
590
579
|
method_option "force", :type => :boolean, :default => false, :banner =>
|
591
580
|
"Forces clean even if --path is not set"
|
592
581
|
def clean
|
593
|
-
|
582
|
+
require_relative "cli/clean"
|
594
583
|
Clean.new(options.dup).run
|
595
584
|
end
|
596
585
|
|
@@ -598,7 +587,7 @@ module Bundler
|
|
598
587
|
method_option "ruby", :type => :boolean, :default => false, :banner =>
|
599
588
|
"only display ruby related platform information"
|
600
589
|
def platform
|
601
|
-
|
590
|
+
require_relative "cli/platform"
|
602
591
|
Platform.new(options).run
|
603
592
|
end
|
604
593
|
|
@@ -609,7 +598,7 @@ module Bundler
|
|
609
598
|
"Install gem into a bundler group"
|
610
599
|
def inject(name, version)
|
611
600
|
SharedHelpers.major_deprecation 2, "The `inject` command has been replaced by the `add` command"
|
612
|
-
|
601
|
+
require_relative "cli/inject"
|
613
602
|
Inject.new(options.dup, name, version).run
|
614
603
|
end
|
615
604
|
|
@@ -620,6 +609,8 @@ module Bundler
|
|
620
609
|
"do not attempt to fetch remote gemspecs and use the local gem cache only"
|
621
610
|
method_option "print", :type => :boolean, :default => false, :banner =>
|
622
611
|
"print the lockfile to STDOUT instead of writing to the file system"
|
612
|
+
method_option "gemfile", :type => :string, :banner =>
|
613
|
+
"Use the specified gemfile instead of Gemfile"
|
623
614
|
method_option "lockfile", :type => :string, :default => nil, :banner =>
|
624
615
|
"the path the lockfile should be written to"
|
625
616
|
method_option "full-index", :type => :boolean, :default => false, :banner =>
|
@@ -639,7 +630,7 @@ module Bundler
|
|
639
630
|
method_option "conservative", :type => :boolean, :banner =>
|
640
631
|
"If updating, use bundle install conservative update behavior and do not allow shared dependencies to be updated"
|
641
632
|
def lock
|
642
|
-
|
633
|
+
require_relative "cli/lock"
|
643
634
|
Lock.new(options).run
|
644
635
|
end
|
645
636
|
|
@@ -659,13 +650,13 @@ module Bundler
|
|
659
650
|
method_option "quiet", :type => :boolean, :banner =>
|
660
651
|
"Only output warnings and errors."
|
661
652
|
def doctor
|
662
|
-
|
653
|
+
require_relative "cli/doctor"
|
663
654
|
Doctor.new(options).run
|
664
655
|
end
|
665
656
|
|
666
657
|
desc "issue", "Learn how to report an issue in Bundler"
|
667
658
|
def issue
|
668
|
-
|
659
|
+
require_relative "cli/issue"
|
669
660
|
Issue.new.run
|
670
661
|
end
|
671
662
|
|
@@ -676,12 +667,12 @@ module Bundler
|
|
676
667
|
checkout --force`.
|
677
668
|
D
|
678
669
|
def pristine(*gems)
|
679
|
-
|
670
|
+
require_relative "cli/pristine"
|
680
671
|
Pristine.new(gems).run
|
681
672
|
end
|
682
673
|
|
683
674
|
if Bundler.feature_flag.plugins?
|
684
|
-
|
675
|
+
require_relative "cli/plugin"
|
685
676
|
desc "plugin", "Manage the bundler plugins"
|
686
677
|
subcommand "plugin", Plugin
|
687
678
|
end
|
@@ -714,7 +705,7 @@ module Bundler
|
|
714
705
|
|
715
706
|
# Automatically invoke `bundle install` and resume if
|
716
707
|
# Bundler.settings[:auto_install] exists. This is set through config cmd
|
717
|
-
# `bundle config auto_install 1`.
|
708
|
+
# `bundle config set auto_install 1`.
|
718
709
|
#
|
719
710
|
# Note that this method `nil`s out the global Definition object, so it
|
720
711
|
# should be called first, before you instantiate anything like an
|
@@ -786,5 +777,22 @@ module Bundler
|
|
786
777
|
rescue RuntimeError
|
787
778
|
nil
|
788
779
|
end
|
780
|
+
|
781
|
+
def remembered_flag_deprecation(name)
|
782
|
+
option = current_command.options[name]
|
783
|
+
flag_name = option.switch_name
|
784
|
+
|
785
|
+
name_index = ARGV.find {|arg| flag_name == arg }
|
786
|
+
return unless name_index
|
787
|
+
|
788
|
+
value = options[name]
|
789
|
+
value = value.join(" ").to_s if option.type == :array
|
790
|
+
|
791
|
+
Bundler::SharedHelpers.major_deprecation 2,\
|
792
|
+
"The `#{flag_name}` flag is deprecated because it relies on being " \
|
793
|
+
"remembered accross bundler invokations, which bundler will no longer " \
|
794
|
+
"do in future versions. Instead please use `bundle config set #{name} " \
|
795
|
+
"'#{value}'`, and stop using this flag"
|
796
|
+
end
|
789
797
|
end
|
790
798
|
end
|