bundler 2.1.1 → 2.2.0.rc.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 +1543 -1418
- data/README.md +6 -8
- data/bundler.gemspec +3 -3
- data/exe/bundle +3 -0
- data/lib/bundler.rb +21 -7
- data/lib/bundler/build_metadata.rb +3 -11
- data/lib/bundler/cli.rb +54 -20
- data/lib/bundler/cli/add.rb +1 -1
- data/lib/bundler/cli/cache.rb +1 -7
- data/lib/bundler/cli/clean.rb +1 -1
- data/lib/bundler/cli/common.rb +14 -0
- data/lib/bundler/cli/console.rb +1 -1
- data/lib/bundler/cli/doctor.rb +1 -1
- data/lib/bundler/cli/exec.rb +1 -1
- data/lib/bundler/cli/fund.rb +36 -0
- data/lib/bundler/cli/gem.rb +84 -11
- data/lib/bundler/cli/info.rb +15 -4
- data/lib/bundler/cli/init.rb +2 -2
- data/lib/bundler/cli/inject.rb +1 -1
- data/lib/bundler/cli/install.rb +12 -18
- data/lib/bundler/cli/issue.rb +2 -2
- data/lib/bundler/cli/list.rb +12 -10
- data/lib/bundler/cli/outdated.rb +89 -66
- data/lib/bundler/cli/plugin.rb +10 -0
- data/lib/bundler/cli/pristine.rb +5 -0
- data/lib/bundler/cli/show.rb +1 -1
- data/lib/bundler/cli/update.rb +2 -0
- data/lib/bundler/compact_index_client.rb +1 -1
- data/lib/bundler/compact_index_client/cache.rb +1 -1
- data/lib/bundler/definition.rb +51 -60
- data/lib/bundler/dep_proxy.rb +1 -1
- data/lib/bundler/dependency.rb +0 -9
- data/lib/bundler/dsl.rb +5 -9
- data/lib/bundler/endpoint_specification.rb +1 -1
- data/lib/bundler/environment_preserver.rb +26 -2
- data/lib/bundler/errors.rb +1 -0
- data/lib/bundler/feature_flag.rb +0 -2
- data/lib/bundler/fetcher.rb +4 -3
- data/lib/bundler/fetcher/base.rb +1 -1
- data/lib/bundler/fetcher/compact_index.rb +1 -1
- data/lib/bundler/fetcher/downloader.rb +1 -1
- data/lib/bundler/fetcher/index.rb +1 -1
- data/lib/bundler/friendly_errors.rb +7 -13
- data/lib/bundler/gem_helper.rb +33 -19
- data/lib/bundler/gem_helpers.rb +6 -1
- data/lib/bundler/gem_version_promoter.rb +2 -2
- data/lib/bundler/graph.rb +1 -1
- data/lib/bundler/index.rb +1 -1
- data/lib/bundler/injector.rb +15 -4
- data/lib/bundler/inline.rb +2 -2
- data/lib/bundler/installer.rb +30 -29
- data/lib/bundler/installer/gem_installer.rb +3 -3
- data/lib/bundler/installer/parallel_installer.rb +10 -10
- data/lib/bundler/installer/standalone.rb +2 -2
- data/lib/bundler/lazy_specification.rb +19 -6
- data/lib/bundler/lockfile_generator.rb +1 -1
- data/lib/bundler/lockfile_parser.rb +1 -1
- data/lib/bundler/mirror.rb +2 -2
- data/lib/bundler/plugin.rb +30 -5
- data/lib/bundler/plugin/index.rb +10 -1
- data/lib/bundler/plugin/installer.rb +1 -1
- data/lib/bundler/plugin/installer/rubygems.rb +1 -1
- data/lib/bundler/plugin/source_list.rb +1 -1
- data/lib/bundler/psyched_yaml.rb +0 -15
- data/lib/bundler/remote_specification.rb +5 -2
- data/lib/bundler/resolver.rb +32 -9
- data/lib/bundler/resolver/spec_group.rb +27 -6
- data/lib/bundler/retry.rb +1 -1
- data/lib/bundler/ruby_version.rb +1 -1
- data/lib/bundler/rubygems_ext.rb +53 -9
- data/lib/bundler/rubygems_gem_installer.rb +3 -9
- data/lib/bundler/rubygems_integration.rb +23 -54
- data/lib/bundler/runtime.rb +4 -14
- data/lib/bundler/settings.rb +49 -45
- data/lib/bundler/shared_helpers.rb +2 -2
- data/lib/bundler/similarity_detector.rb +1 -1
- data/lib/bundler/source.rb +1 -1
- data/lib/bundler/source/git.rb +5 -5
- data/lib/bundler/source/git/git_proxy.rb +56 -59
- data/lib/bundler/source/path.rb +7 -3
- data/lib/bundler/source/path/installer.rb +8 -10
- data/lib/bundler/source/rubygems.rb +13 -16
- data/lib/bundler/source/rubygems/remote.rb +1 -1
- data/lib/bundler/source_list.rb +2 -2
- data/lib/bundler/spec_set.rb +1 -1
- data/lib/bundler/stub_specification.rb +17 -5
- data/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +57 -47
- data/lib/bundler/templates/newgem/Gemfile.tt +9 -1
- data/lib/bundler/templates/newgem/README.md.tt +1 -1
- data/lib/bundler/templates/newgem/Rakefile.tt +19 -5
- data/lib/bundler/templates/newgem/bin/console.tt +1 -0
- data/lib/bundler/templates/newgem/circleci/config.yml.tt +13 -0
- data/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +2 -0
- data/lib/bundler/templates/newgem/github/workflows/main.yml.tt +18 -0
- data/lib/bundler/templates/newgem/gitlab-ci.yml.tt +9 -0
- data/lib/bundler/templates/newgem/lib/newgem.rb.tt +2 -0
- data/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +2 -0
- data/lib/bundler/templates/newgem/newgem.gemspec.tt +8 -6
- data/lib/bundler/templates/newgem/rubocop.yml.tt +10 -0
- data/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +2 -0
- data/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +2 -1
- data/lib/bundler/templates/newgem/test/{newgem_test.rb.tt → minitest/newgem_test.rb.tt} +2 -0
- data/lib/bundler/templates/newgem/test/{test_helper.rb.tt → minitest/test_helper.rb.tt} +2 -0
- data/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt +15 -0
- data/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt +6 -0
- data/lib/bundler/ui/shell.rb +5 -5
- data/lib/bundler/uri_credentials_filter.rb +1 -1
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +79 -212
- data/lib/bundler/vendor/thor/lib/thor.rb +0 -7
- data/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +2 -1
- data/lib/bundler/vendor/thor/lib/thor/base.rb +9 -0
- data/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
- data/lib/bundler/vendored_persistent.rb +0 -7
- data/lib/bundler/version.rb +1 -1
- data/lib/bundler/worker.rb +1 -1
- data/lib/bundler/yaml_serializer.rb +1 -1
- data/man/bundle-add.1 +1 -1
- data/man/{bundle-add.ronn → bundle-add.1.ronn} +0 -0
- data/man/bundle-binstubs.1 +5 -3
- data/man/{bundle-binstubs.ronn → bundle-binstubs.1.ronn} +2 -4
- data/man/bundle-cache.1 +1 -1
- data/man/{bundle-cache.ronn → bundle-cache.1.ronn} +0 -0
- data/man/bundle-check.1 +1 -1
- data/man/{bundle-check.ronn → bundle-check.1.ronn} +0 -0
- data/man/bundle-clean.1 +1 -1
- data/man/{bundle-clean.ronn → bundle-clean.1.ronn} +0 -0
- data/man/bundle-config.1 +16 -22
- data/man/{bundle-config.ronn → bundle-config.1.ronn} +19 -22
- data/man/bundle-doctor.1 +1 -1
- data/man/{bundle-doctor.ronn → bundle-doctor.1.ronn} +0 -0
- data/man/bundle-exec.1 +1 -1
- data/man/{bundle-exec.ronn → bundle-exec.1.ronn} +0 -0
- data/man/bundle-gem.1 +25 -3
- data/man/{bundle-gem.ronn → bundle-gem.1.ronn} +30 -7
- data/man/bundle-info.1 +1 -1
- data/man/{bundle-info.ronn → bundle-info.1.ronn} +0 -0
- data/man/bundle-init.1 +1 -1
- data/man/{bundle-init.ronn → bundle-init.1.ronn} +0 -0
- data/man/bundle-inject.1 +1 -1
- data/man/{bundle-inject.ronn → bundle-inject.1.ronn} +0 -0
- data/man/bundle-install.1 +29 -2
- data/man/{bundle-install.ronn → bundle-install.1.ronn} +24 -2
- data/man/bundle-list.1 +7 -7
- data/man/{bundle-list.ronn → bundle-list.1.ronn} +6 -6
- data/man/bundle-lock.1 +1 -1
- data/man/{bundle-lock.ronn → bundle-lock.1.ronn} +0 -0
- data/man/bundle-open.1 +1 -1
- data/man/{bundle-open.ronn → bundle-open.1.ronn} +0 -0
- data/man/bundle-outdated.1 +1 -1
- data/man/{bundle-outdated.ronn → bundle-outdated.1.ronn} +0 -0
- data/man/bundle-platform.1 +1 -1
- data/man/{bundle-platform.ronn → bundle-platform.1.ronn} +0 -0
- data/man/bundle-pristine.1 +1 -1
- data/man/{bundle-pristine.ronn → bundle-pristine.1.ronn} +0 -0
- data/man/bundle-remove.1 +1 -1
- data/man/{bundle-remove.ronn → bundle-remove.1.ronn} +0 -0
- data/man/bundle-show.1 +1 -1
- data/man/{bundle-show.ronn → bundle-show.1.ronn} +0 -0
- data/man/bundle-update.1 +1 -1
- data/man/{bundle-update.ronn → bundle-update.1.ronn} +0 -0
- data/man/bundle-viz.1 +1 -1
- data/man/{bundle-viz.ronn → bundle-viz.1.ronn} +0 -0
- data/man/bundle.1 +1 -1
- data/man/{bundle.ronn → bundle.1.ronn} +0 -0
- data/man/gemfile.5 +4 -4
- data/man/gemfile.5.ronn +4 -4
- metadata +39 -58
- data/man/bundle-add.1.txt +0 -58
- data/man/bundle-binstubs.1.txt +0 -48
- data/man/bundle-cache.1.txt +0 -78
- data/man/bundle-check.1.txt +0 -33
- data/man/bundle-clean.1.txt +0 -26
- data/man/bundle-config.1.txt +0 -528
- data/man/bundle-doctor.1.txt +0 -44
- data/man/bundle-exec.1.txt +0 -178
- data/man/bundle-gem.1.txt +0 -91
- data/man/bundle-info.1.txt +0 -21
- data/man/bundle-init.1.txt +0 -34
- data/man/bundle-inject.1.txt +0 -32
- data/man/bundle-install.1.txt +0 -401
- data/man/bundle-list.1.txt +0 -43
- data/man/bundle-lock.1.txt +0 -93
- data/man/bundle-open.1.txt +0 -29
- data/man/bundle-outdated.1.txt +0 -131
- data/man/bundle-platform.1.txt +0 -57
- data/man/bundle-pristine.1.txt +0 -44
- data/man/bundle-remove.1.txt +0 -34
- data/man/bundle-show.1.txt +0 -27
- data/man/bundle-update.1.txt +0 -390
- data/man/bundle-viz.1.txt +0 -39
- data/man/bundle.1.txt +0 -116
- data/man/gemfile.5.txt +0 -649
- data/man/index.txt +0 -25
data/README.md
CHANGED
@@ -1,7 +1,5 @@
|
|
1
|
-
[![Version
|
2
|
-
[![
|
3
|
-
[![Inline docs ](https://inch-ci.org/github/bundler/bundler.svg?style=flat)](https://inch-ci.org/github/bundler/bundler)
|
4
|
-
[![Slack ](https://bundler-slackin.herokuapp.com/badge.svg)](https://bundler-slackin.herokuapp.com)
|
1
|
+
[![Version ](https://img.shields.io/gem/v/bundler.svg?style=flat)](https://rubygems.org/gems/bundler)
|
2
|
+
[![Slack ](https://bundler-slackin.herokuapp.com/badge.svg)](https://bundler-slackin.herokuapp.com)
|
5
3
|
|
6
4
|
# Bundler: a gem to bundle gems
|
7
5
|
|
@@ -44,9 +42,9 @@ To get in touch with the Bundler core team and other Bundler users, please see [
|
|
44
42
|
|
45
43
|
### Contributing
|
46
44
|
|
47
|
-
If you'd like to contribute to Bundler, that's awesome, and we <3 you. We've put together [the Bundler contributor guide](https://github.com/
|
45
|
+
If you'd like to contribute to Bundler, that's awesome, and we <3 you. We've put together [the Bundler contributor guide](https://github.com/rubygems/rubygems/blob/master/bundler/doc/contributing/README.md) with all of the information you need to get started.
|
48
46
|
|
49
|
-
If you'd like to request a substantial change to Bundler or
|
47
|
+
If you'd like to request a substantial change to Bundler or its documentation, refer to the [Bundler RFC process](https://github.com/bundler/rfcs) for more information.
|
50
48
|
|
51
49
|
While some Bundler contributors are compensated by Ruby Together, the project maintainers make decisions independent of Ruby Together. As a project, we welcome contributions regardless of the author's affiliation with Ruby Together.
|
52
50
|
|
@@ -57,8 +55,8 @@ While some Bundler contributors are compensated by Ruby Together, the project ma
|
|
57
55
|
|
58
56
|
### Code of Conduct
|
59
57
|
|
60
|
-
Everyone interacting in the Bundler project's codebases, issue trackers, chat rooms, and mailing lists is expected to follow the [Bundler code of conduct](https://github.com/
|
58
|
+
Everyone interacting in the Bundler project's codebases, issue trackers, chat rooms, and mailing lists is expected to follow the [Bundler code of conduct](https://github.com/rubygems/rubygems/blob/master/CODE_OF_CONDUCT.md).
|
61
59
|
|
62
60
|
### License
|
63
61
|
|
64
|
-
Bundler is available under an [MIT License](https://github.com/
|
62
|
+
Bundler is available under an [MIT License](https://github.com/rubygems/rubygems/blob/master/bundler/LICENSE.md).
|
data/bundler.gemspec
CHANGED
@@ -24,10 +24,10 @@ Gem::Specification.new do |s|
|
|
24
24
|
|
25
25
|
if s.respond_to?(:metadata=)
|
26
26
|
s.metadata = {
|
27
|
-
"bug_tracker_uri" => "https://github.com/
|
28
|
-
"changelog_uri" => "https://github.com/
|
27
|
+
"bug_tracker_uri" => "https://github.com/rubygems/rubygems/issues?q=is%3Aopen+is%3Aissue+label%3ABundler",
|
28
|
+
"changelog_uri" => "https://github.com/rubygems/rubygems/blob/master/bundler/CHANGELOG.md",
|
29
29
|
"homepage_uri" => "https://bundler.io/",
|
30
|
-
"source_code_uri" => "https://github.com/
|
30
|
+
"source_code_uri" => "https://github.com/rubygems/rubygems/",
|
31
31
|
}
|
32
32
|
end
|
33
33
|
|
data/exe/bundle
CHANGED
@@ -15,6 +15,9 @@ else
|
|
15
15
|
require "bundler"
|
16
16
|
end
|
17
17
|
|
18
|
+
# Workaround for non-activated bundler spec due to missing https://github.com/rubygems/rubygems/commit/4e306d7bcdee924b8d80ca9db6125aa59ee4e5a3
|
19
|
+
gem "bundler", Bundler::VERSION if Gem.rubygems_version < Gem::Version.new("2.6.2")
|
20
|
+
|
18
21
|
# Check if an older version of bundler is installed
|
19
22
|
$LOAD_PATH.each do |path|
|
20
23
|
next unless path =~ %r{/bundler-0\.(\d+)} && $1.to_i < 9
|
data/lib/bundler.rb
CHANGED
@@ -34,9 +34,9 @@ require_relative "bundler/build_metadata"
|
|
34
34
|
# of loaded and required modules.
|
35
35
|
#
|
36
36
|
module Bundler
|
37
|
-
environment_preserver = EnvironmentPreserver.
|
37
|
+
environment_preserver = EnvironmentPreserver.from_env
|
38
38
|
ORIGINAL_ENV = environment_preserver.restore
|
39
|
-
|
39
|
+
environment_preserver.replace_with_backup
|
40
40
|
SUDO_MUTEX = Mutex.new
|
41
41
|
|
42
42
|
autoload :Definition, File.expand_path("bundler/definition", __dir__)
|
@@ -285,7 +285,13 @@ module Bundler
|
|
285
285
|
|
286
286
|
def app_config_path
|
287
287
|
if app_config = ENV["BUNDLE_APP_CONFIG"]
|
288
|
-
Pathname.new(app_config)
|
288
|
+
app_config_pathname = Pathname.new(app_config)
|
289
|
+
|
290
|
+
if app_config_pathname.absolute?
|
291
|
+
app_config_pathname
|
292
|
+
else
|
293
|
+
app_config_pathname.expand_path(root)
|
294
|
+
end
|
289
295
|
else
|
290
296
|
root.join(".bundle")
|
291
297
|
end
|
@@ -347,7 +353,10 @@ EOF
|
|
347
353
|
env.delete_if {|k, _| k[0, 7] == "BUNDLE_" }
|
348
354
|
|
349
355
|
if env.key?("RUBYOPT")
|
350
|
-
|
356
|
+
rubyopt = env["RUBYOPT"].split(" ")
|
357
|
+
rubyopt.delete("-r#{File.expand_path("bundler/setup", __dir__)}")
|
358
|
+
rubyopt.delete("-rbundler/setup")
|
359
|
+
env["RUBYOPT"] = rubyopt.join(" ")
|
351
360
|
end
|
352
361
|
|
353
362
|
if env.key?("RUBYLIB")
|
@@ -447,10 +456,14 @@ EOF
|
|
447
456
|
# system binaries. If you put '-n foo' in your .gemrc, RubyGems will
|
448
457
|
# install binstubs there instead. Unfortunately, RubyGems doesn't expose
|
449
458
|
# that directory at all, so rather than parse .gemrc ourselves, we allow
|
450
|
-
# the directory to be set as well, via `bundle config set bindir foo`.
|
459
|
+
# the directory to be set as well, via `bundle config set --local bindir foo`.
|
451
460
|
Bundler.settings[:system_bindir] || Bundler.rubygems.gem_bindir
|
452
461
|
end
|
453
462
|
|
463
|
+
def preferred_gemfile_name
|
464
|
+
Bundler.settings[:init_gems_rb] ? "gems.rb" : "Gemfile"
|
465
|
+
end
|
466
|
+
|
454
467
|
def use_system_gems?
|
455
468
|
configured_bundle_path.use_system_gems?
|
456
469
|
end
|
@@ -512,7 +525,8 @@ EOF
|
|
512
525
|
Your user account isn't allowed to install to the system RubyGems.
|
513
526
|
You can cancel this installation and run:
|
514
527
|
|
515
|
-
bundle
|
528
|
+
bundle config set --local path 'vendor/bundle'
|
529
|
+
bundle install
|
516
530
|
|
517
531
|
to install the gems into ./vendor/bundle/, or you can enter your password
|
518
532
|
and install the bundled gems to RubyGems using sudo.
|
@@ -610,7 +624,7 @@ EOF
|
|
610
624
|
@rubygems = nil
|
611
625
|
end
|
612
626
|
|
613
|
-
|
627
|
+
private
|
614
628
|
|
615
629
|
def eval_yaml_gemspec(path, contents)
|
616
630
|
require_relative "bundler/psyched_yaml"
|
@@ -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 = "2020-10-07".freeze
|
8
|
+
@git_commit_sha = "d7c0467653".freeze
|
9
9
|
@release = true
|
10
10
|
# end ivars
|
11
11
|
|
@@ -29,19 +29,11 @@ module Bundler
|
|
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
|
-
git_dir = File.join(File.expand_path("
|
32
|
+
git_dir = File.join(File.expand_path("../../../..", __FILE__), ".git")
|
33
33
|
if File.directory?(git_dir)
|
34
34
|
return @git_commit_sha = Dir.chdir(git_dir) { `git rev-parse --short HEAD`.strip.freeze }
|
35
35
|
end
|
36
36
|
|
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
|
43
|
-
end
|
44
|
-
|
45
37
|
@git_commit_sha ||= "unknown"
|
46
38
|
end
|
47
39
|
|
data/lib/bundler/cli.rb
CHANGED
@@ -122,16 +122,19 @@ module Bundler
|
|
122
122
|
else command = "bundle-#{cli}"
|
123
123
|
end
|
124
124
|
|
125
|
-
man_path
|
126
|
-
|
125
|
+
man_path = File.expand_path("../../../man", __FILE__)
|
126
|
+
# man files are located under ruby's mandir with the default gems of bundler
|
127
|
+
man_path = RbConfig::CONFIG["mandir"] unless File.directory?(man_path)
|
128
|
+
man_pages = Hash[Dir.glob(File.join(man_path, "**", "*")).grep(/.*\.\d*\Z/).collect do |f|
|
127
129
|
[File.basename(f, ".*"), f]
|
128
130
|
end]
|
129
131
|
|
130
132
|
if man_pages.include?(command)
|
133
|
+
man_page = man_pages[command]
|
131
134
|
if Bundler.which("man") && man_path !~ %r{^file:/.+!/META-INF/jruby.home/.+}
|
132
|
-
Kernel.exec "man #{
|
135
|
+
Kernel.exec "man #{man_page}"
|
133
136
|
else
|
134
|
-
puts File.read("#{
|
137
|
+
puts File.read("#{File.dirname(man_page)}/#{File.basename(man_page)}.ronn")
|
135
138
|
end
|
136
139
|
elsif command_path = Bundler.which("bundler-#{cli}")
|
137
140
|
Kernel.exec(command_path, "--help")
|
@@ -247,10 +250,12 @@ module Bundler
|
|
247
250
|
def install
|
248
251
|
SharedHelpers.major_deprecation(2, "The `--force` option has been renamed to `--redownload`") if ARGV.include?("--force")
|
249
252
|
|
250
|
-
%w[clean deployment frozen no-
|
253
|
+
%w[clean deployment frozen no-prune path shebang system without with].each do |option|
|
251
254
|
remembered_flag_deprecation(option)
|
252
255
|
end
|
253
256
|
|
257
|
+
remembered_negative_flag_deprecation("no-deployment")
|
258
|
+
|
254
259
|
require_relative "cli/install"
|
255
260
|
Bundler.settings.temporary(:no_install => false) do
|
256
261
|
Install.new(options.dup).run
|
@@ -342,8 +347,8 @@ module Bundler
|
|
342
347
|
|
343
348
|
desc "list", "List all gems in the bundle"
|
344
349
|
method_option "name-only", :type => :boolean, :banner => "print only the gem names"
|
345
|
-
method_option "only-group", :type => :
|
346
|
-
method_option "without-group", :type => :
|
350
|
+
method_option "only-group", :type => :array, :default => [], :banner => "print gems from a given set of groups"
|
351
|
+
method_option "without-group", :type => :array, :default => [], :banner => "print all gems except from a given set of groups"
|
347
352
|
method_option "paths", :type => :boolean, :banner => "print the path to each gem in the bundle"
|
348
353
|
def list
|
349
354
|
require_relative "cli/list"
|
@@ -434,11 +439,18 @@ module Bundler
|
|
434
439
|
Outdated.new(options, gems).run
|
435
440
|
end
|
436
441
|
|
437
|
-
desc "
|
438
|
-
|
439
|
-
|
440
|
-
|
442
|
+
desc "fund [OPTIONS]", "Lists information about gems seeking funding assistance"
|
443
|
+
method_option "group", :aliases => "-g", :type => :array, :banner =>
|
444
|
+
"Fetch funding information for a specific group"
|
445
|
+
def fund
|
446
|
+
require_relative "cli/fund"
|
447
|
+
Fund.new(options).run
|
441
448
|
end
|
449
|
+
|
450
|
+
desc "cache [OPTIONS]", "Locks and then caches all of the gems into vendor/cache"
|
451
|
+
method_option "all", :type => :boolean,
|
452
|
+
:default => Bundler.feature_flag.cache_all?,
|
453
|
+
:banner => "Include all sources (including path and git)."
|
442
454
|
method_option "all-platforms", :type => :boolean, :banner => "Include gems for all platforms present in the lockfile, not only the current one"
|
443
455
|
method_option "cache-path", :type => :string, :banner =>
|
444
456
|
"Specify a different cache path than the default (vendor/cache)."
|
@@ -457,6 +469,12 @@ module Bundler
|
|
457
469
|
bundle without having to download any additional gems.
|
458
470
|
D
|
459
471
|
def cache
|
472
|
+
SharedHelpers.major_deprecation 2,
|
473
|
+
"The `--all` flag is deprecated because it relies on being " \
|
474
|
+
"remembered across bundler invocations, which bundler will no longer " \
|
475
|
+
"do in future versions. Instead please use `bundle config set cache_all true`, " \
|
476
|
+
"and stop using this flag" if ARGV.include?("--all")
|
477
|
+
|
460
478
|
require_relative "cli/cache"
|
461
479
|
Cache.new(options).run
|
462
480
|
end
|
@@ -560,15 +578,19 @@ module Bundler
|
|
560
578
|
|
561
579
|
desc "gem NAME [OPTIONS]", "Creates a skeleton for creating a rubygem"
|
562
580
|
method_option :exe, :type => :boolean, :default => false, :aliases => ["--bin", "-b"], :desc => "Generate a binary executable for your library."
|
563
|
-
method_option :coc, :type => :boolean, :desc => "Generate a code of conduct file. Set a default with `bundle config set gem.coc true`."
|
581
|
+
method_option :coc, :type => :boolean, :desc => "Generate a code of conduct file. Set a default with `bundle config set --global gem.coc true`."
|
564
582
|
method_option :edit, :type => :string, :aliases => "-e", :required => false, :banner => "EDITOR",
|
565
583
|
:lazy_default => [ENV["BUNDLER_EDITOR"], ENV["VISUAL"], ENV["EDITOR"]].find {|e| !e.nil? && !e.empty? },
|
566
584
|
:desc => "Open generated gemspec in the specified editor (defaults to $EDITOR or $BUNDLER_EDITOR)"
|
567
585
|
method_option :ext, :type => :boolean, :default => false, :desc => "Generate the boilerplate for C extension code"
|
568
586
|
method_option :git, :type => :boolean, :default => true, :desc => "Initialize a git repo inside your library."
|
569
|
-
method_option :mit, :type => :boolean, :desc => "Generate an MIT license file. Set a default with `bundle config set gem.mit true`."
|
570
|
-
method_option :
|
571
|
-
|
587
|
+
method_option :mit, :type => :boolean, :desc => "Generate an MIT license file. Set a default with `bundle config set --global gem.mit true`."
|
588
|
+
method_option :rubocop, :type => :boolean, :desc => "Add rubocop to the generated Rakefile and gemspec. Set a default with `bundle config set --global gem.rubocop true`."
|
589
|
+
method_option :test, :type => :string, :lazy_default => Bundler.settings["gem.test"] || "", :aliases => "-t", :banner => "Use the specified test framework for your library",
|
590
|
+
:desc => "Generate a test directory for your library, either rspec, minitest or test-unit. Set a default with `bundle config set --global gem.test (rspec|minitest|test-unit)`."
|
591
|
+
method_option :ci, :type => :string, :lazy_default => Bundler.settings["gem.ci"] || "",
|
592
|
+
:desc => "Generate CI configuration, either GitHub Actions, Travis CI, GitLab CI or CircleCI. Set a default with `bundle config set --global gem.ci (github|travis|gitlab|circle)`"
|
593
|
+
|
572
594
|
def gem(name)
|
573
595
|
end
|
574
596
|
|
@@ -731,11 +753,11 @@ module Bundler
|
|
731
753
|
end
|
732
754
|
end
|
733
755
|
|
734
|
-
|
756
|
+
private
|
735
757
|
|
736
758
|
# Automatically invoke `bundle install` and resume if
|
737
759
|
# Bundler.settings[:auto_install] exists. This is set through config cmd
|
738
|
-
# `bundle config set auto_install 1`.
|
760
|
+
# `bundle config set --global auto_install 1`.
|
739
761
|
#
|
740
762
|
# Note that this method `nil`s out the global Definition object, so it
|
741
763
|
# should be called first, before you instantiate anything like an
|
@@ -808,20 +830,32 @@ module Bundler
|
|
808
830
|
nil
|
809
831
|
end
|
810
832
|
|
833
|
+
def remembered_negative_flag_deprecation(name)
|
834
|
+
positive_name = name.gsub(/\Ano-/, "")
|
835
|
+
option = current_command.options[positive_name]
|
836
|
+
flag_name = "--no-" + option.switch_name.gsub(/\A--/, "")
|
837
|
+
|
838
|
+
flag_deprecation(positive_name, flag_name, option)
|
839
|
+
end
|
840
|
+
|
811
841
|
def remembered_flag_deprecation(name)
|
812
842
|
option = current_command.options[name]
|
813
843
|
flag_name = option.switch_name
|
814
844
|
|
815
|
-
|
845
|
+
flag_deprecation(name, flag_name, option)
|
846
|
+
end
|
847
|
+
|
848
|
+
def flag_deprecation(name, flag_name, option)
|
849
|
+
name_index = ARGV.find {|arg| flag_name == arg.split("=")[0] }
|
816
850
|
return unless name_index
|
817
851
|
|
818
852
|
value = options[name]
|
819
853
|
value = value.join(" ").to_s if option.type == :array
|
820
854
|
|
821
|
-
Bundler::SharedHelpers.major_deprecation 2
|
855
|
+
Bundler::SharedHelpers.major_deprecation 2,
|
822
856
|
"The `#{flag_name}` flag is deprecated because it relies on being " \
|
823
857
|
"remembered across bundler invocations, which bundler will no longer " \
|
824
|
-
"do in future versions. Instead please use `bundle config set #{name} " \
|
858
|
+
"do in future versions. Instead please use `bundle config set --local #{name.tr("-", "_")} " \
|
825
859
|
"'#{value}'`, and stop using this flag"
|
826
860
|
end
|
827
861
|
end
|
data/lib/bundler/cli/add.rb
CHANGED
data/lib/bundler/cli/cache.rb
CHANGED
@@ -24,7 +24,7 @@ module Bundler
|
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
|
-
|
27
|
+
private
|
28
28
|
|
29
29
|
def install
|
30
30
|
require_relative "install"
|
@@ -37,12 +37,6 @@ module Bundler
|
|
37
37
|
all = options.fetch(:all, Bundler.feature_flag.cache_all? || nil)
|
38
38
|
|
39
39
|
Bundler.settings.set_command_option_if_given :cache_all, all
|
40
|
-
|
41
|
-
if Bundler.definition.has_local_dependencies? && !Bundler.feature_flag.cache_all?
|
42
|
-
Bundler.ui.warn "Your Gemfile contains path and git dependencies. If you want " \
|
43
|
-
"to cache them as well, please pass the --all flag. This will be the default " \
|
44
|
-
"on Bundler 3.0."
|
45
|
-
end
|
46
40
|
end
|
47
41
|
end
|
48
42
|
end
|
data/lib/bundler/cli/clean.rb
CHANGED
data/lib/bundler/cli/common.rb
CHANGED
@@ -14,6 +14,20 @@ module Bundler
|
|
14
14
|
Bundler.ui.info msg
|
15
15
|
end
|
16
16
|
|
17
|
+
def self.output_fund_metadata_summary
|
18
|
+
definition = Bundler.definition
|
19
|
+
current_dependencies = definition.requested_dependencies
|
20
|
+
current_specs = definition.specs
|
21
|
+
|
22
|
+
count = current_dependencies.count {|dep| current_specs[dep.name].first.metadata.key?("funding_uri") }
|
23
|
+
|
24
|
+
return if count.zero?
|
25
|
+
|
26
|
+
intro = count > 1 ? "#{count} installed gems you directly depend on are" : "#{count} installed gem you directly depend on is"
|
27
|
+
message = "#{intro} looking for funding.\n Run `bundle fund` for details"
|
28
|
+
Bundler.ui.info message
|
29
|
+
end
|
30
|
+
|
17
31
|
def self.output_without_groups_message(command)
|
18
32
|
return if Bundler.settings[:without].empty?
|
19
33
|
Bundler.ui.confirm without_groups_message(command)
|
data/lib/bundler/cli/console.rb
CHANGED
@@ -12,7 +12,7 @@ module Bundler
|
|
12
12
|
Bundler::SharedHelpers.major_deprecation 2, "bundle console will be replaced " \
|
13
13
|
"by `bin/console` generated by `bundle gem <name>`"
|
14
14
|
|
15
|
-
group ? Bundler.require(:default, *group.split.map!(&:to_sym)) : Bundler.require
|
15
|
+
group ? Bundler.require(:default, *group.split(" ").map!(&:to_sym)) : Bundler.require
|
16
16
|
ARGV.clear
|
17
17
|
|
18
18
|
console = get_console(Bundler.settings[:console] || "irb")
|
data/lib/bundler/cli/doctor.rb
CHANGED
data/lib/bundler/cli/exec.rb
CHANGED
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Bundler
|
4
|
+
class CLI::Fund
|
5
|
+
attr_reader :options
|
6
|
+
|
7
|
+
def initialize(options)
|
8
|
+
@options = options
|
9
|
+
end
|
10
|
+
|
11
|
+
def run
|
12
|
+
Bundler.definition.validate_runtime!
|
13
|
+
|
14
|
+
groups = Array(options[:group]).map(&:to_sym)
|
15
|
+
|
16
|
+
deps = if groups.any?
|
17
|
+
Bundler.definition.dependencies_for(groups)
|
18
|
+
else
|
19
|
+
Bundler.definition.current_dependencies
|
20
|
+
end
|
21
|
+
|
22
|
+
fund_info = deps.each_with_object([]) do |dep, arr|
|
23
|
+
spec = Bundler.definition.specs[dep.name].first
|
24
|
+
if spec.metadata.key?("funding_uri")
|
25
|
+
arr << "* #{spec.name} (#{spec.version})\n Funding: #{spec.metadata["funding_uri"]}"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
if fund_info.empty?
|
30
|
+
Bundler.ui.info "None of the installed gems you directly depend on are looking for funding."
|
31
|
+
else
|
32
|
+
Bundler.ui.info fund_info.join("\n")
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|