bundler 2.1.2 → 2.2.0
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 +1575 -1422
- data/README.md +6 -8
- data/bundler.gemspec +3 -3
- data/exe/bundle +3 -0
- data/lib/bundler.rb +25 -7
- data/lib/bundler/build_metadata.rb +3 -11
- data/lib/bundler/cli.rb +58 -21
- data/lib/bundler/cli/add.rb +1 -1
- data/lib/bundler/cli/binstubs.rb +6 -2
- 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 +4 -4
- 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 +88 -67
- 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/compact_index_client/updater.rb +5 -5
- data/lib/bundler/definition.rb +47 -61
- 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/env.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 -3
- 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 +3 -4
- data/lib/bundler/friendly_errors.rb +22 -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 +6 -2
- data/lib/bundler/injector.rb +22 -4
- data/lib/bundler/inline.rb +2 -2
- data/lib/bundler/installer.rb +35 -32
- 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 +20 -9
- data/lib/bundler/lockfile_generator.rb +1 -1
- data/lib/bundler/lockfile_parser.rb +1 -1
- data/lib/bundler/man/.document +1 -0
- data/{man/bundle-add.ronn → lib/bundler/man/bundle-add.1.ronn} +0 -0
- data/{man/bundle-binstubs.ronn → lib/bundler/man/bundle-binstubs.1.ronn} +2 -4
- data/{man/bundle-cache.ronn → lib/bundler/man/bundle-cache.1.ronn} +0 -0
- data/{man/bundle-check.ronn → lib/bundler/man/bundle-check.1.ronn} +0 -0
- data/{man/bundle-clean.ronn → lib/bundler/man/bundle-clean.1.ronn} +0 -0
- data/{man/bundle-config.ronn → lib/bundler/man/bundle-config.1.ronn} +19 -30
- data/{man/bundle-doctor.ronn → lib/bundler/man/bundle-doctor.1.ronn} +0 -0
- data/{man/bundle-exec.ronn → lib/bundler/man/bundle-exec.1.ronn} +0 -0
- data/{man/bundle-gem.ronn → lib/bundler/man/bundle-gem.1.ronn} +30 -7
- data/{man/bundle-info.ronn → lib/bundler/man/bundle-info.1.ronn} +0 -0
- data/{man/bundle-init.ronn → lib/bundler/man/bundle-init.1.ronn} +0 -0
- data/{man/bundle-inject.ronn → lib/bundler/man/bundle-inject.1.ronn} +0 -0
- data/{man/bundle-install.ronn → lib/bundler/man/bundle-install.1.ronn} +25 -3
- data/{man/bundle-list.ronn → lib/bundler/man/bundle-list.1.ronn} +6 -6
- data/{man/bundle-lock.ronn → lib/bundler/man/bundle-lock.1.ronn} +0 -0
- data/{man/bundle-open.ronn → lib/bundler/man/bundle-open.1.ronn} +0 -0
- data/{man/bundle-outdated.ronn → lib/bundler/man/bundle-outdated.1.ronn} +0 -0
- data/{man/bundle-platform.ronn → lib/bundler/man/bundle-platform.1.ronn} +0 -0
- data/{man/bundle-pristine.ronn → lib/bundler/man/bundle-pristine.1.ronn} +0 -0
- data/{man/bundle-remove.ronn → lib/bundler/man/bundle-remove.1.ronn} +0 -0
- data/{man/bundle-show.ronn → lib/bundler/man/bundle-show.1.ronn} +0 -0
- data/{man/bundle-update.ronn → lib/bundler/man/bundle-update.1.ronn} +0 -0
- data/{man/bundle-viz.ronn → lib/bundler/man/bundle-viz.1.ronn} +0 -0
- data/{man/bundle.ronn → lib/bundler/man/bundle.1.ronn} +0 -0
- data/{man → lib/bundler/man}/gemfile.5.ronn +4 -4
- data/lib/bundler/mirror.rb +2 -2
- data/lib/bundler/plugin.rb +30 -5
- data/lib/bundler/plugin/api/source.rb +1 -1
- data/lib/bundler/plugin/dsl.rb +1 -1
- 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 -10
- 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 +26 -55
- data/lib/bundler/runtime.rb +4 -14
- data/lib/bundler/settings.rb +49 -46
- 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 +57 -60
- 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 +2 -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 -2
- 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 +4 -2
- data/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +2 -0
- data/lib/bundler/templates/newgem/newgem.gemspec.tt +14 -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 +3 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +34 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +2 -2
- data/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +1 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +1 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +38 -40
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +72 -208
- 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/vendor/tmpdir/lib/tmpdir.rb +154 -0
- data/lib/bundler/vendored_persistent.rb +0 -7
- data/lib/bundler/vendored_tmpdir.rb +4 -0
- 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-binstubs.1 +5 -3
- data/man/bundle-cache.1 +1 -1
- data/man/bundle-check.1 +1 -1
- data/man/bundle-clean.1 +1 -1
- data/man/bundle-config.1 +16 -25
- data/man/bundle-doctor.1 +1 -1
- data/man/bundle-exec.1 +1 -1
- data/man/bundle-gem.1 +25 -3
- data/man/bundle-info.1 +1 -1
- data/man/bundle-init.1 +1 -1
- data/man/bundle-inject.1 +1 -1
- data/man/bundle-install.1 +30 -3
- data/man/bundle-list.1 +7 -7
- data/man/bundle-lock.1 +1 -1
- data/man/bundle-open.1 +1 -1
- data/man/bundle-outdated.1 +1 -1
- data/man/bundle-platform.1 +1 -1
- data/man/bundle-pristine.1 +1 -1
- data/man/bundle-remove.1 +1 -1
- data/man/bundle-show.1 +1 -1
- data/man/bundle-update.1 +1 -1
- data/man/bundle-viz.1 +1 -1
- data/man/bundle.1 +1 -1
- data/man/gemfile.5 +4 -4
- metadata +46 -62
- data/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +0 -26
- 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/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.
|
@@ -588,6 +602,10 @@ EOF
|
|
588
602
|
reset_rubygems!
|
589
603
|
end
|
590
604
|
|
605
|
+
def reset_settings!
|
606
|
+
@settings = nil
|
607
|
+
end
|
608
|
+
|
591
609
|
def reset_paths!
|
592
610
|
@bin_path = nil
|
593
611
|
@bundler_major_version = nil
|
@@ -610,7 +628,7 @@ EOF
|
|
610
628
|
@rubygems = nil
|
611
629
|
end
|
612
630
|
|
613
|
-
|
631
|
+
private
|
614
632
|
|
615
633
|
def eval_yaml_gemspec(path, contents)
|
616
634
|
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-12-10".freeze
|
8
|
+
@git_commit_sha = "d3628e5019".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
@@ -57,7 +57,7 @@ module Bundler
|
|
57
57
|
custom_gemfile = options[:gemfile] || Bundler.settings[:gemfile]
|
58
58
|
if custom_gemfile && !custom_gemfile.empty?
|
59
59
|
Bundler::SharedHelpers.set_env "BUNDLE_GEMFILE", File.expand_path(custom_gemfile)
|
60
|
-
Bundler.
|
60
|
+
Bundler.reset_settings!
|
61
61
|
end
|
62
62
|
|
63
63
|
Bundler.settings.set_command_option_if_given :retry, options[:retry]
|
@@ -122,16 +122,20 @@ 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
|
-
|
137
|
+
fallback_man_path = File.expand_path("../man", __FILE__)
|
138
|
+
puts File.read("#{fallback_man_path}/#{File.basename(man_page)}.ronn")
|
135
139
|
end
|
136
140
|
elsif command_path = Bundler.which("bundler-#{cli}")
|
137
141
|
Kernel.exec(command_path, "--help")
|
@@ -247,10 +251,12 @@ module Bundler
|
|
247
251
|
def install
|
248
252
|
SharedHelpers.major_deprecation(2, "The `--force` option has been renamed to `--redownload`") if ARGV.include?("--force")
|
249
253
|
|
250
|
-
%w[clean deployment frozen no-
|
254
|
+
%w[clean deployment frozen no-prune path shebang system without with].each do |option|
|
251
255
|
remembered_flag_deprecation(option)
|
252
256
|
end
|
253
257
|
|
258
|
+
remembered_negative_flag_deprecation("no-deployment")
|
259
|
+
|
254
260
|
require_relative "cli/install"
|
255
261
|
Bundler.settings.temporary(:no_install => false) do
|
256
262
|
Install.new(options.dup).run
|
@@ -342,8 +348,8 @@ module Bundler
|
|
342
348
|
|
343
349
|
desc "list", "List all gems in the bundle"
|
344
350
|
method_option "name-only", :type => :boolean, :banner => "print only the gem names"
|
345
|
-
method_option "only-group", :type => :
|
346
|
-
method_option "without-group", :type => :
|
351
|
+
method_option "only-group", :type => :array, :default => [], :banner => "print gems from a given set of groups"
|
352
|
+
method_option "without-group", :type => :array, :default => [], :banner => "print all gems except from a given set of groups"
|
347
353
|
method_option "paths", :type => :boolean, :banner => "print the path to each gem in the bundle"
|
348
354
|
def list
|
349
355
|
require_relative "cli/list"
|
@@ -375,6 +381,8 @@ module Bundler
|
|
375
381
|
"Make binstubs that can work without the Bundler runtime"
|
376
382
|
method_option "all", :type => :boolean, :banner =>
|
377
383
|
"Install binstubs for all gems"
|
384
|
+
method_option "all-platforms", :type => :boolean, :default => false, :banner =>
|
385
|
+
"Install binstubs for all platforms"
|
378
386
|
def binstubs(*gems)
|
379
387
|
require_relative "cli/binstubs"
|
380
388
|
Binstubs.new(options, gems).run
|
@@ -434,11 +442,18 @@ module Bundler
|
|
434
442
|
Outdated.new(options, gems).run
|
435
443
|
end
|
436
444
|
|
437
|
-
desc "
|
438
|
-
|
439
|
-
|
440
|
-
|
445
|
+
desc "fund [OPTIONS]", "Lists information about gems seeking funding assistance"
|
446
|
+
method_option "group", :aliases => "-g", :type => :array, :banner =>
|
447
|
+
"Fetch funding information for a specific group"
|
448
|
+
def fund
|
449
|
+
require_relative "cli/fund"
|
450
|
+
Fund.new(options).run
|
441
451
|
end
|
452
|
+
|
453
|
+
desc "cache [OPTIONS]", "Locks and then caches all of the gems into vendor/cache"
|
454
|
+
method_option "all", :type => :boolean,
|
455
|
+
:default => Bundler.feature_flag.cache_all?,
|
456
|
+
:banner => "Include all sources (including path and git)."
|
442
457
|
method_option "all-platforms", :type => :boolean, :banner => "Include gems for all platforms present in the lockfile, not only the current one"
|
443
458
|
method_option "cache-path", :type => :string, :banner =>
|
444
459
|
"Specify a different cache path than the default (vendor/cache)."
|
@@ -457,6 +472,12 @@ module Bundler
|
|
457
472
|
bundle without having to download any additional gems.
|
458
473
|
D
|
459
474
|
def cache
|
475
|
+
SharedHelpers.major_deprecation 2,
|
476
|
+
"The `--all` flag is deprecated because it relies on being " \
|
477
|
+
"remembered across bundler invocations, which bundler will no longer " \
|
478
|
+
"do in future versions. Instead please use `bundle config set cache_all true`, " \
|
479
|
+
"and stop using this flag" if ARGV.include?("--all")
|
480
|
+
|
460
481
|
require_relative "cli/cache"
|
461
482
|
Cache.new(options).run
|
462
483
|
end
|
@@ -560,15 +581,19 @@ module Bundler
|
|
560
581
|
|
561
582
|
desc "gem NAME [OPTIONS]", "Creates a skeleton for creating a rubygem"
|
562
583
|
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`."
|
584
|
+
method_option :coc, :type => :boolean, :desc => "Generate a code of conduct file. Set a default with `bundle config set --global gem.coc true`."
|
564
585
|
method_option :edit, :type => :string, :aliases => "-e", :required => false, :banner => "EDITOR",
|
565
586
|
:lazy_default => [ENV["BUNDLER_EDITOR"], ENV["VISUAL"], ENV["EDITOR"]].find {|e| !e.nil? && !e.empty? },
|
566
587
|
:desc => "Open generated gemspec in the specified editor (defaults to $EDITOR or $BUNDLER_EDITOR)"
|
567
588
|
method_option :ext, :type => :boolean, :default => false, :desc => "Generate the boilerplate for C extension code"
|
568
589
|
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
|
-
|
590
|
+
method_option :mit, :type => :boolean, :desc => "Generate an MIT license file. Set a default with `bundle config set --global gem.mit true`."
|
591
|
+
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`."
|
592
|
+
method_option :test, :type => :string, :lazy_default => Bundler.settings["gem.test"] || "", :aliases => "-t", :banner => "Use the specified test framework for your library",
|
593
|
+
: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)`."
|
594
|
+
method_option :ci, :type => :string, :lazy_default => Bundler.settings["gem.ci"] || "",
|
595
|
+
: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)`"
|
596
|
+
|
572
597
|
def gem(name)
|
573
598
|
end
|
574
599
|
|
@@ -731,11 +756,11 @@ module Bundler
|
|
731
756
|
end
|
732
757
|
end
|
733
758
|
|
734
|
-
|
759
|
+
private
|
735
760
|
|
736
761
|
# Automatically invoke `bundle install` and resume if
|
737
762
|
# Bundler.settings[:auto_install] exists. This is set through config cmd
|
738
|
-
# `bundle config set auto_install 1`.
|
763
|
+
# `bundle config set --global auto_install 1`.
|
739
764
|
#
|
740
765
|
# Note that this method `nil`s out the global Definition object, so it
|
741
766
|
# should be called first, before you instantiate anything like an
|
@@ -808,20 +833,32 @@ module Bundler
|
|
808
833
|
nil
|
809
834
|
end
|
810
835
|
|
836
|
+
def remembered_negative_flag_deprecation(name)
|
837
|
+
positive_name = name.gsub(/\Ano-/, "")
|
838
|
+
option = current_command.options[positive_name]
|
839
|
+
flag_name = "--no-" + option.switch_name.gsub(/\A--/, "")
|
840
|
+
|
841
|
+
flag_deprecation(positive_name, flag_name, option)
|
842
|
+
end
|
843
|
+
|
811
844
|
def remembered_flag_deprecation(name)
|
812
845
|
option = current_command.options[name]
|
813
846
|
flag_name = option.switch_name
|
814
847
|
|
815
|
-
|
848
|
+
flag_deprecation(name, flag_name, option)
|
849
|
+
end
|
850
|
+
|
851
|
+
def flag_deprecation(name, flag_name, option)
|
852
|
+
name_index = ARGV.find {|arg| flag_name == arg.split("=")[0] }
|
816
853
|
return unless name_index
|
817
854
|
|
818
855
|
value = options[name]
|
819
856
|
value = value.join(" ").to_s if option.type == :array
|
820
857
|
|
821
|
-
Bundler::SharedHelpers.major_deprecation 2
|
858
|
+
Bundler::SharedHelpers.major_deprecation 2,
|
822
859
|
"The `#{flag_name}` flag is deprecated because it relies on being " \
|
823
860
|
"remembered across bundler invocations, which bundler will no longer " \
|
824
|
-
"do in future versions. Instead please use `bundle config set #{name} " \
|
861
|
+
"do in future versions. Instead please use `bundle config set --local #{name.tr("-", "_")} " \
|
825
862
|
"'#{value}'`, and stop using this flag"
|
826
863
|
end
|
827
864
|
end
|
data/lib/bundler/cli/add.rb
CHANGED
data/lib/bundler/cli/binstubs.rb
CHANGED
@@ -16,7 +16,11 @@ module Bundler
|
|
16
16
|
Bundler.settings.set_command_option_if_given :shebang, options["shebang"]
|
17
17
|
installer = Installer.new(Bundler.root, Bundler.definition)
|
18
18
|
|
19
|
-
installer_opts = {
|
19
|
+
installer_opts = {
|
20
|
+
:force => options[:force],
|
21
|
+
:binstubs_cmd => true,
|
22
|
+
:all_platforms => options["all-platforms"],
|
23
|
+
}
|
20
24
|
|
21
25
|
if options[:all]
|
22
26
|
raise InvalidOption, "Cannot specify --all with specific gems" unless gems.empty?
|
@@ -38,7 +42,7 @@ module Bundler
|
|
38
42
|
if options[:standalone]
|
39
43
|
next Bundler.ui.warn("Sorry, Bundler can only be run via RubyGems.") if gem_name == "bundler"
|
40
44
|
Bundler.settings.temporary(:path => (Bundler.settings[:path] || Bundler.root)) do
|
41
|
-
installer.generate_standalone_bundler_executable_stubs(spec)
|
45
|
+
installer.generate_standalone_bundler_executable_stubs(spec, installer_opts)
|
42
46
|
end
|
43
47
|
else
|
44
48
|
installer.generate_bundler_executable_stubs(spec, installer_opts)
|
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")
|