bundler 2.0.2 → 2.1.0.pre.1
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 +687 -574
- data/LICENSE.md +18 -19
- data/README.md +8 -7
- data/bundler.gemspec +5 -23
- data/exe/bundle +19 -3
- data/lib/bundler.rb +121 -68
- data/lib/bundler/build_metadata.rb +3 -3
- data/lib/bundler/capistrano.rb +5 -5
- data/lib/bundler/cli.rb +130 -124
- data/lib/bundler/cli/add.rb +27 -16
- data/lib/bundler/cli/common.rb +10 -11
- data/lib/bundler/cli/config.rb +161 -86
- data/lib/bundler/cli/console.rb +2 -2
- 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 +3 -3
- data/lib/bundler/cli/issue.rb +1 -1
- 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 +32 -12
- 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 +8 -7
- data/lib/bundler/definition.rb +33 -26
- data/lib/bundler/dependency.rb +16 -4
- data/lib/bundler/deployment.rb +2 -2
- data/lib/bundler/dsl.rb +18 -42
- data/lib/bundler/env.rb +6 -5
- data/lib/bundler/environment_preserver.rb +0 -1
- data/lib/bundler/feature_flag.rb +0 -12
- 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 +3 -0
- data/lib/bundler/fetcher/index.rb +4 -2
- data/lib/bundler/friendly_errors.rb +4 -5
- data/lib/bundler/gem_helper.rb +8 -8
- 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 +3 -1
- 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 -4
- 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 +29 -18
- data/lib/bundler/plugin/api.rb +1 -1
- data/lib/bundler/plugin/api/source.rb +2 -2
- data/lib/bundler/plugin/index.rb +10 -2
- 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 +2 -2
- data/lib/bundler/retry.rb +2 -2
- data/lib/bundler/ruby_version.rb +4 -19
- data/lib/bundler/rubygems_ext.rb +10 -65
- data/lib/bundler/rubygems_gem_installer.rb +1 -1
- data/lib/bundler/rubygems_integration.rb +135 -403
- data/lib/bundler/runtime.rb +2 -9
- data/lib/bundler/settings.rb +15 -48
- data/lib/bundler/setup.rb +6 -5
- data/lib/bundler/shared_helpers.rb +53 -68
- 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 +7 -2
- 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 +1 -6
- data/lib/bundler/stub_specification.rb +18 -30
- data/lib/bundler/templates/Executable.bundler +22 -13
- data/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +3 -3
- data/lib/bundler/templates/newgem/Gemfile.tt +8 -0
- data/lib/bundler/templates/newgem/README.md.tt +4 -3
- data/lib/bundler/templates/newgem/newgem.gemspec.tt +2 -18
- data/lib/bundler/templates/newgem/test/test_helper.rb.tt +0 -4
- 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 +1 -1
- 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 +1 -1
- data/lib/bundler/vendor/thor/lib/thor/actions.rb +7 -7
- 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/inject_into_file.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor/base.rb +13 -13
- data/lib/bundler/vendor/thor/lib/thor/group.rb +1 -1
- 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/runner.rb +4 -4
- data/lib/bundler/vendor/thor/lib/thor/shell.rb +3 -3
- 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/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 +3 -3
- 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 +35 -35
- data/man/bundle-config.1.txt +65 -66
- data/man/bundle-config.ronn +41 -39
- data/man/bundle-doctor.1 +1 -1
- data/man/bundle-doctor.1.txt +1 -1
- data/man/bundle-exec.1 +1 -1
- data/man/bundle-exec.1.txt +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 +1 -1
- data/man/bundle-init.1.txt +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 +2 -2
- data/man/bundle.1.txt +7 -7
- data/man/bundle.ronn +1 -1
- data/man/gemfile.5 +12 -15
- data/man/gemfile.5.ronn +9 -13
- data/man/gemfile.5.txt +103 -107
- metadata +11 -112
- data/exe/bundle_ruby +0 -60
- data/lib/bundler/cli/cache.rb +0 -36
- data/lib/bundler/compatibility_guard.rb +0 -13
- 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
data/lib/bundler/capistrano.rb
CHANGED
@@ -1,18 +1,18 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
Bundler::SharedHelpers.major_deprecation
|
5
|
-
"The Bundler task for Capistrano. Please use
|
3
|
+
require_relative "shared_helpers"
|
4
|
+
Bundler::SharedHelpers.major_deprecation 2,
|
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
|
-
SharedHelpers.major_deprecation(
|
233
|
-
|
228
|
+
SharedHelpers.major_deprecation(2, "The `--force` option has been renamed to `--redownload`") if ARGV.include?("--force")
|
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
|
@@ -275,63 +276,64 @@ module Bundler
|
|
275
276
|
method_option "all", :type => :boolean, :banner =>
|
276
277
|
"Update everything."
|
277
278
|
def update(*gems)
|
278
|
-
SharedHelpers.major_deprecation(
|
279
|
-
|
279
|
+
SharedHelpers.major_deprecation(2, "The `--force` option has been renamed to `--redownload`") if ARGV.include?("--force")
|
280
|
+
require_relative "cli/update"
|
280
281
|
Bundler.settings.temporary(:no_install => false) do
|
281
282
|
Update.new(options, gems).run
|
282
283
|
end
|
283
284
|
end
|
284
285
|
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
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
|
303
315
|
end
|
304
|
-
|
305
|
-
|
306
|
-
new_argv = [new_command, *new_arguments.compact].join(" ")
|
307
|
-
|
308
|
-
Bundler::SharedHelpers.major_deprecation(3, "use `bundle #{new_argv}` instead of `bundle #{old_argv}`")
|
309
|
-
end
|
310
|
-
require "bundler/cli/show"
|
311
|
-
Show.new(options, gem_name).run
|
312
|
-
end
|
313
|
-
# TODO: 2.0 remove `bundle show`
|
314
|
-
|
315
|
-
if Bundler.feature_flag.list_command?
|
316
|
-
desc "list", "List all gems in the bundle"
|
317
|
-
method_option "name-only", :type => :boolean, :banner => "print only the gem names"
|
318
|
-
method_option "only-group", :type => :string, :banner => "print gems from a particular group"
|
319
|
-
method_option "without-group", :type => :string, :banner => "print all gems expect from a group"
|
320
|
-
method_option "paths", :type => :boolean, :banner => "print the path to each gem in the bundle"
|
321
|
-
def list
|
322
|
-
require "bundler/cli/list"
|
323
|
-
List.new(options).run
|
316
|
+
require_relative "cli/show"
|
317
|
+
Show.new(options, gem_name).run
|
324
318
|
end
|
319
|
+
end
|
325
320
|
|
326
|
-
|
327
|
-
|
328
|
-
|
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
|
329
329
|
end
|
330
330
|
|
331
|
+
map %w[ls] => "list"
|
332
|
+
|
331
333
|
desc "info GEM [OPTIONS]", "Show information for the given gem"
|
332
334
|
method_option "path", :type => :boolean, :banner => "Print full path to gem"
|
333
335
|
def info(gem_name)
|
334
|
-
|
336
|
+
require_relative "cli/info"
|
335
337
|
Info.new(options, gem_name).run
|
336
338
|
end
|
337
339
|
|
@@ -352,7 +354,7 @@ module Bundler
|
|
352
354
|
method_option "all", :type => :boolean, :banner =>
|
353
355
|
"Install binstubs for all gems"
|
354
356
|
def binstubs(*gems)
|
355
|
-
|
357
|
+
require_relative "cli/binstubs"
|
356
358
|
Binstubs.new(options, gems).run
|
357
359
|
end
|
358
360
|
|
@@ -363,12 +365,14 @@ module Bundler
|
|
363
365
|
method_option "version", :aliases => "-v", :type => :string
|
364
366
|
method_option "group", :aliases => "-g", :type => :string
|
365
367
|
method_option "source", :aliases => "-s", :type => :string
|
368
|
+
method_option "git", :type => :string
|
369
|
+
method_option "branch", :type => :string
|
366
370
|
method_option "skip-install", :type => :boolean, :banner =>
|
367
371
|
"Adds gem to the Gemfile but does not install it"
|
368
372
|
method_option "optimistic", :type => :boolean, :banner => "Adds optimistic declaration of version to gem"
|
369
373
|
method_option "strict", :type => :boolean, :banner => "Adds strict declaration of version to gem"
|
370
374
|
def add(*gems)
|
371
|
-
|
375
|
+
require_relative "cli/add"
|
372
376
|
Add.new(options.dup, gems).run
|
373
377
|
end
|
374
378
|
|
@@ -388,9 +392,10 @@ module Bundler
|
|
388
392
|
"Do not attempt to fetch gems remotely and use the gem cache instead"
|
389
393
|
method_option "pre", :type => :boolean, :banner => "Check for newer pre-release gems"
|
390
394
|
method_option "source", :type => :array, :banner => "Check against a specific source"
|
391
|
-
|
395
|
+
strict_is_update = Bundler.feature_flag.forget_cli_options?
|
396
|
+
method_option "filter-strict", :type => :boolean, :aliases => strict_is_update ? [] : %w[--strict], :banner =>
|
392
397
|
"Only list newer versions allowed by your Gemfile requirements"
|
393
|
-
method_option "update-strict", :type => :boolean, :banner =>
|
398
|
+
method_option "update-strict", :type => :boolean, :aliases => strict_is_update ? %w[--strict] : [], :banner =>
|
394
399
|
"Strict conservative resolution, do not allow any gem to be updated past latest --patch | --minor | --major"
|
395
400
|
method_option "minor", :type => :boolean, :banner => "Prefer updating only to next minor version"
|
396
401
|
method_option "major", :type => :boolean, :banner => "Prefer updating to next major version (default)"
|
@@ -403,28 +408,12 @@ module Bundler
|
|
403
408
|
method_option "only-explicit", :type => :boolean, :banner =>
|
404
409
|
"Only list gems specified in your Gemfile, not their dependencies"
|
405
410
|
def outdated(*gems)
|
406
|
-
|
411
|
+
require_relative "cli/outdated"
|
407
412
|
Outdated.new(options, gems).run
|
408
413
|
end
|
409
414
|
|
410
|
-
|
411
|
-
|
412
|
-
else
|
413
|
-
desc "cache [OPTIONS]", "Cache all the gems to vendor/cache", :hide => true
|
414
|
-
unless Bundler.feature_flag.cache_command_is_package?
|
415
|
-
method_option "all", :type => :boolean,
|
416
|
-
:banner => "Include all sources (including path and git)."
|
417
|
-
end
|
418
|
-
method_option "all-platforms", :type => :boolean, :banner => "Include gems for all platforms present in the lockfile, not only the current one"
|
419
|
-
method_option "no-prune", :type => :boolean, :banner => "Don't remove stale gems from the cache."
|
420
|
-
def cache
|
421
|
-
require "bundler/cli/cache"
|
422
|
-
Cache.new(options).run
|
423
|
-
end
|
424
|
-
end
|
425
|
-
|
426
|
-
desc "#{Bundler.feature_flag.cache_command_is_package? ? :cache : :package} [OPTIONS]", "Locks and then caches all of the gems into vendor/cache"
|
427
|
-
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?
|
428
417
|
method_option "all", :type => :boolean,
|
429
418
|
:banner => "Include all sources (including path and git)."
|
430
419
|
end
|
@@ -435,7 +424,7 @@ module Bundler
|
|
435
424
|
method_option "no-install", :type => :boolean, :banner => "Don't install the gems, only the package."
|
436
425
|
method_option "no-prune", :type => :boolean, :banner => "Don't remove stale gems from the cache."
|
437
426
|
method_option "path", :type => :string, :banner =>
|
438
|
-
"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?}"
|
439
428
|
method_option "quiet", :type => :boolean, :banner => "Only output warnings and errors."
|
440
429
|
method_option "frozen", :type => :boolean, :banner =>
|
441
430
|
"Do not allow the Gemfile.lock to be updated after this package operation's install"
|
@@ -446,10 +435,10 @@ module Bundler
|
|
446
435
|
bundle without having to download any additional gems.
|
447
436
|
D
|
448
437
|
def package
|
449
|
-
|
438
|
+
require_relative "cli/package"
|
450
439
|
Package.new(options).run
|
451
440
|
end
|
452
|
-
map %w[pack] => :package
|
441
|
+
map %w[cache pack] => :package
|
453
442
|
|
454
443
|
desc "exec [OPTIONS]", "Run the command in context of the bundle"
|
455
444
|
method_option :keep_file_descriptors, :type => :boolean, :default => false
|
@@ -461,7 +450,7 @@ module Bundler
|
|
461
450
|
D
|
462
451
|
map "e" => "exec"
|
463
452
|
def exec(*args)
|
464
|
-
|
453
|
+
require_relative "cli/exec"
|
465
454
|
Exec.new(options, args).run
|
466
455
|
end
|
467
456
|
|
@@ -477,22 +466,19 @@ module Bundler
|
|
477
466
|
will show the current value, as well as any superceded values and
|
478
467
|
where they were specified.
|
479
468
|
D
|
480
|
-
|
481
|
-
|
482
|
-
require "bundler/cli/config"
|
483
|
-
Config.new(options, args, self).run
|
484
|
-
end
|
469
|
+
require_relative "cli/config"
|
470
|
+
subcommand "config", Config
|
485
471
|
|
486
472
|
desc "open GEM", "Opens the source directory of the given bundled gem"
|
487
473
|
def open(name)
|
488
|
-
|
474
|
+
require_relative "cli/open"
|
489
475
|
Open.new(options, name).run
|
490
476
|
end
|
491
477
|
|
492
|
-
|
478
|
+
unless Bundler.feature_flag.bundler_3_mode?
|
493
479
|
desc "console [GROUP]", "Opens an IRB session with the bundle pre-loaded"
|
494
480
|
def console(group = nil)
|
495
|
-
|
481
|
+
require_relative "cli/console"
|
496
482
|
Console.new(options, group).run
|
497
483
|
end
|
498
484
|
end
|
@@ -526,7 +512,7 @@ module Bundler
|
|
526
512
|
end
|
527
513
|
end
|
528
514
|
|
529
|
-
|
515
|
+
unless Bundler.feature_flag.bundler_3_mode?
|
530
516
|
desc "viz [OPTIONS]", "Generates a visual dependency graph", :hide => true
|
531
517
|
long_desc <<-D
|
532
518
|
Viz generates a PNG file of the current Gemfile as a dependency graph.
|
@@ -539,8 +525,8 @@ module Bundler
|
|
539
525
|
method_option :version, :type => :boolean, :default => false, :aliases => "-v", :desc => "Set to show each gem version."
|
540
526
|
method_option :without, :type => :array, :default => [], :aliases => "-W", :banner => "GROUP[ GROUP...]", :desc => "Exclude gems that are part of the specified named group."
|
541
527
|
def viz
|
542
|
-
SharedHelpers.major_deprecation
|
543
|
-
|
528
|
+
SharedHelpers.major_deprecation 2, "The `viz` command has been moved to the `bundle-viz` gem, see https://github.com/bundler/bundler-viz"
|
529
|
+
require_relative "cli/viz"
|
544
530
|
Viz.new(options.dup).run
|
545
531
|
end
|
546
532
|
end
|
@@ -549,14 +535,15 @@ module Bundler
|
|
549
535
|
|
550
536
|
desc "gem NAME [OPTIONS]", "Creates a skeleton for creating a rubygem"
|
551
537
|
method_option :exe, :type => :boolean, :default => false, :aliases => ["--bin", "-b"], :desc => "Generate a binary executable for your library."
|
552
|
-
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`."
|
553
539
|
method_option :edit, :type => :string, :aliases => "-e", :required => false, :banner => "EDITOR",
|
554
540
|
:lazy_default => [ENV["BUNDLER_EDITOR"], ENV["VISUAL"], ENV["EDITOR"]].find {|e| !e.nil? && !e.empty? },
|
555
541
|
:desc => "Open generated gemspec in the specified editor (defaults to $EDITOR or $BUNDLER_EDITOR)"
|
556
542
|
method_option :ext, :type => :boolean, :default => false, :desc => "Generate the boilerplate for C extension code"
|
557
|
-
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`."
|
558
545
|
method_option :test, :type => :string, :lazy_default => "rspec", :aliases => "-t", :banner => "rspec",
|
559
|
-
: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`."
|
560
547
|
def gem(name)
|
561
548
|
end
|
562
549
|
|
@@ -564,7 +551,7 @@ module Bundler
|
|
564
551
|
def gem_command.run(instance, args = [])
|
565
552
|
arity = 1 # name
|
566
553
|
|
567
|
-
|
554
|
+
require_relative "cli/gem"
|
568
555
|
cmd_args = args + [instance]
|
569
556
|
cmd_args.unshift(instance.options)
|
570
557
|
|
@@ -592,7 +579,7 @@ module Bundler
|
|
592
579
|
method_option "force", :type => :boolean, :default => false, :banner =>
|
593
580
|
"Forces clean even if --path is not set"
|
594
581
|
def clean
|
595
|
-
|
582
|
+
require_relative "cli/clean"
|
596
583
|
Clean.new(options.dup).run
|
597
584
|
end
|
598
585
|
|
@@ -600,7 +587,7 @@ module Bundler
|
|
600
587
|
method_option "ruby", :type => :boolean, :default => false, :banner =>
|
601
588
|
"only display ruby related platform information"
|
602
589
|
def platform
|
603
|
-
|
590
|
+
require_relative "cli/platform"
|
604
591
|
Platform.new(options).run
|
605
592
|
end
|
606
593
|
|
@@ -610,8 +597,8 @@ module Bundler
|
|
610
597
|
method_option "group", :type => :string, :banner =>
|
611
598
|
"Install gem into a bundler group"
|
612
599
|
def inject(name, version)
|
613
|
-
SharedHelpers.major_deprecation
|
614
|
-
|
600
|
+
SharedHelpers.major_deprecation 2, "The `inject` command has been replaced by the `add` command"
|
601
|
+
require_relative "cli/inject"
|
615
602
|
Inject.new(options.dup, name, version).run
|
616
603
|
end
|
617
604
|
|
@@ -622,6 +609,8 @@ module Bundler
|
|
622
609
|
"do not attempt to fetch remote gemspecs and use the local gem cache only"
|
623
610
|
method_option "print", :type => :boolean, :default => false, :banner =>
|
624
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"
|
625
614
|
method_option "lockfile", :type => :string, :default => nil, :banner =>
|
626
615
|
"the path the lockfile should be written to"
|
627
616
|
method_option "full-index", :type => :boolean, :default => false, :banner =>
|
@@ -641,7 +630,7 @@ module Bundler
|
|
641
630
|
method_option "conservative", :type => :boolean, :banner =>
|
642
631
|
"If updating, use bundle install conservative update behavior and do not allow shared dependencies to be updated"
|
643
632
|
def lock
|
644
|
-
|
633
|
+
require_relative "cli/lock"
|
645
634
|
Lock.new(options).run
|
646
635
|
end
|
647
636
|
|
@@ -661,13 +650,13 @@ module Bundler
|
|
661
650
|
method_option "quiet", :type => :boolean, :banner =>
|
662
651
|
"Only output warnings and errors."
|
663
652
|
def doctor
|
664
|
-
|
653
|
+
require_relative "cli/doctor"
|
665
654
|
Doctor.new(options).run
|
666
655
|
end
|
667
656
|
|
668
657
|
desc "issue", "Learn how to report an issue in Bundler"
|
669
658
|
def issue
|
670
|
-
|
659
|
+
require_relative "cli/issue"
|
671
660
|
Issue.new.run
|
672
661
|
end
|
673
662
|
|
@@ -678,12 +667,12 @@ module Bundler
|
|
678
667
|
checkout --force`.
|
679
668
|
D
|
680
669
|
def pristine(*gems)
|
681
|
-
|
670
|
+
require_relative "cli/pristine"
|
682
671
|
Pristine.new(gems).run
|
683
672
|
end
|
684
673
|
|
685
674
|
if Bundler.feature_flag.plugins?
|
686
|
-
|
675
|
+
require_relative "cli/plugin"
|
687
676
|
desc "plugin", "Manage the bundler plugins"
|
688
677
|
subcommand "plugin", Plugin
|
689
678
|
end
|
@@ -716,7 +705,7 @@ module Bundler
|
|
716
705
|
|
717
706
|
# Automatically invoke `bundle install` and resume if
|
718
707
|
# Bundler.settings[:auto_install] exists. This is set through config cmd
|
719
|
-
# `bundle config auto_install 1`.
|
708
|
+
# `bundle config set auto_install 1`.
|
720
709
|
#
|
721
710
|
# Note that this method `nil`s out the global Definition object, so it
|
722
711
|
# should be called first, before you instantiate anything like an
|
@@ -788,5 +777,22 @@ module Bundler
|
|
788
777
|
rescue RuntimeError
|
789
778
|
nil
|
790
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
|
791
797
|
end
|
792
798
|
end
|