bundler 2.1.4 → 2.2.17
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 +1774 -1430
- data/README.md +6 -8
- data/bundler.gemspec +4 -4
- data/exe/bundle +3 -0
- data/lib/bundler.rb +33 -9
- data/lib/bundler/build_metadata.rb +3 -11
- data/lib/bundler/cli.rb +59 -23
- data/lib/bundler/cli/add.rb +1 -1
- data/lib/bundler/cli/binstubs.rb +6 -2
- data/lib/bundler/cli/cache.rb +2 -7
- data/lib/bundler/cli/clean.rb +1 -1
- data/lib/bundler/cli/common.rb +29 -2
- 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 +129 -28
- 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 +13 -11
- 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 +3 -1
- data/lib/bundler/compact_index_client.rb +1 -1
- data/lib/bundler/compact_index_client/cache.rb +6 -14
- data/lib/bundler/compact_index_client/gem_parser.rb +28 -0
- data/lib/bundler/compact_index_client/updater.rb +13 -17
- data/lib/bundler/current_ruby.rb +1 -0
- data/lib/bundler/definition.rb +121 -131
- data/lib/bundler/dep_proxy.rb +16 -9
- data/lib/bundler/dependency.rb +3 -10
- data/lib/bundler/dsl.rb +40 -33
- 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 -5
- data/lib/bundler/fetcher.rb +5 -4
- data/lib/bundler/fetcher/base.rb +1 -1
- data/lib/bundler/fetcher/compact_index.rb +1 -1
- data/lib/bundler/fetcher/downloader.rb +9 -5
- data/lib/bundler/fetcher/index.rb +3 -4
- data/lib/bundler/friendly_errors.rb +22 -13
- data/lib/bundler/gem_helper.rb +51 -18
- data/lib/bundler/gem_helpers.rb +36 -25
- data/lib/bundler/gem_version_promoter.rb +4 -4
- data/lib/bundler/graph.rb +1 -1
- data/lib/bundler/index.rb +12 -7
- data/lib/bundler/injector.rb +23 -5
- data/lib/bundler/inline.rb +3 -2
- data/lib/bundler/installer.rb +37 -49
- data/lib/bundler/installer/gem_installer.rb +3 -3
- data/lib/bundler/installer/parallel_installer.rb +46 -25
- data/lib/bundler/installer/standalone.rb +17 -2
- data/lib/bundler/lazy_specification.rb +45 -25
- data/lib/bundler/lockfile_generator.rb +1 -1
- data/lib/bundler/lockfile_parser.rb +4 -14
- data/lib/bundler/man/.document +1 -0
- data/{man → lib/bundler/man}/bundle-add.1 +1 -1
- data/{man/bundle-add.ronn → lib/bundler/man/bundle-add.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-binstubs.1 +5 -3
- data/{man/bundle-binstubs.ronn → lib/bundler/man/bundle-binstubs.1.ronn} +2 -4
- data/{man → lib/bundler/man}/bundle-cache.1 +1 -1
- data/{man/bundle-cache.ronn → lib/bundler/man/bundle-cache.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-check.1 +1 -1
- data/{man/bundle-check.ronn → lib/bundler/man/bundle-check.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-clean.1 +1 -1
- data/{man/bundle-clean.ronn → lib/bundler/man/bundle-clean.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-config.1 +42 -34
- data/{man/bundle-config.ronn → lib/bundler/man/bundle-config.1.ronn} +51 -43
- data/{man → lib/bundler/man}/bundle-doctor.1 +1 -1
- data/{man/bundle-doctor.ronn → lib/bundler/man/bundle-doctor.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-exec.1 +1 -1
- data/{man/bundle-exec.ronn → lib/bundler/man/bundle-exec.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-gem.1 +25 -3
- data/{man/bundle-gem.ronn → lib/bundler/man/bundle-gem.1.ronn} +30 -7
- data/{man → lib/bundler/man}/bundle-info.1 +1 -1
- data/{man/bundle-info.ronn → lib/bundler/man/bundle-info.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-init.1 +1 -1
- data/{man/bundle-init.ronn → lib/bundler/man/bundle-init.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-inject.1 +1 -1
- data/{man/bundle-inject.ronn → lib/bundler/man/bundle-inject.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-install.1 +30 -3
- data/{man/bundle-install.ronn → lib/bundler/man/bundle-install.1.ronn} +25 -3
- data/{man → lib/bundler/man}/bundle-list.1 +7 -7
- data/{man/bundle-list.ronn → lib/bundler/man/bundle-list.1.ronn} +6 -6
- data/{man → lib/bundler/man}/bundle-lock.1 +1 -1
- data/{man/bundle-lock.ronn → lib/bundler/man/bundle-lock.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-open.1 +1 -1
- data/{man/bundle-open.ronn → lib/bundler/man/bundle-open.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-outdated.1 +1 -1
- data/{man/bundle-outdated.ronn → lib/bundler/man/bundle-outdated.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-platform.1 +1 -1
- data/{man/bundle-platform.ronn → lib/bundler/man/bundle-platform.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-pristine.1 +1 -1
- data/{man/bundle-pristine.ronn → lib/bundler/man/bundle-pristine.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-remove.1 +1 -1
- data/{man/bundle-remove.ronn → lib/bundler/man/bundle-remove.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-show.1 +1 -1
- data/{man/bundle-show.ronn → lib/bundler/man/bundle-show.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-update.1 +1 -1
- data/{man/bundle-update.ronn → lib/bundler/man/bundle-update.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-viz.1 +1 -1
- data/{man/bundle-viz.ronn → lib/bundler/man/bundle-viz.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle.1 +1 -1
- data/{man/bundle.ronn → lib/bundler/man/bundle.1.ronn} +0 -0
- data/{man → lib/bundler/man}/gemfile.5 +4 -4
- data/{man → lib/bundler/man}/gemfile.5.ronn +4 -4
- data/{man → lib/bundler/man}/index.txt +0 -0
- data/lib/bundler/mirror.rb +2 -2
- data/lib/bundler/plugin.rb +33 -7
- data/lib/bundler/plugin/api/source.rb +8 -1
- data/lib/bundler/plugin/dsl.rb +1 -1
- data/lib/bundler/plugin/index.rb +10 -1
- data/lib/bundler/plugin/installer.rb +9 -11
- data/lib/bundler/plugin/installer/rubygems.rb +1 -1
- data/lib/bundler/plugin/source_list.rb +5 -1
- data/lib/bundler/psyched_yaml.rb +0 -15
- data/lib/bundler/remote_specification.rb +5 -2
- data/lib/bundler/resolver.rb +133 -77
- data/lib/bundler/resolver/spec_group.rb +75 -48
- data/lib/bundler/retry.rb +2 -2
- data/lib/bundler/ruby_version.rb +1 -1
- data/lib/bundler/rubygems_ext.rb +69 -9
- data/lib/bundler/rubygems_gem_installer.rb +50 -9
- data/lib/bundler/rubygems_integration.rb +25 -60
- data/lib/bundler/runtime.rb +4 -14
- data/lib/bundler/settings.rb +107 -54
- data/lib/bundler/shared_helpers.rb +3 -3
- data/lib/bundler/similarity_detector.rb +1 -1
- data/lib/bundler/source.rb +7 -1
- data/lib/bundler/source/git.rb +24 -22
- data/lib/bundler/source/git/git_proxy.rb +82 -80
- data/lib/bundler/source/metadata.rb +0 -4
- data/lib/bundler/source/path.rb +10 -4
- data/lib/bundler/source/path/installer.rb +10 -10
- data/lib/bundler/source/rubygems.rb +45 -24
- data/lib/bundler/source/rubygems/remote.rb +1 -1
- data/lib/bundler/source_list.rb +31 -26
- data/lib/bundler/spec_set.rb +29 -17
- data/lib/bundler/stub_specification.rb +25 -7
- data/lib/bundler/templates/Gemfile +1 -1
- data/lib/bundler/templates/gems.rb +1 -1
- data/lib/bundler/templates/newgem/CHANGELOG.md.tt +5 -0
- 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 +6 -5
- 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 +16 -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 +15 -7
- data/lib/bundler/templates/newgem/rubocop.yml.tt +13 -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/delegates/specification_provider.rb +7 -0
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +34 -2
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +2 -2
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +11 -5
- data/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +3 -3
- data/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +1 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +12 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +49 -47
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +82 -189
- data/lib/bundler/vendor/thor/lib/thor.rb +5 -13
- data/lib/bundler/vendor/thor/lib/thor/actions.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +2 -1
- data/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +4 -2
- data/lib/bundler/vendor/thor/lib/thor/base.rb +9 -0
- data/lib/bundler/vendor/thor/lib/thor/error.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +5 -1
- data/lib/bundler/vendor/thor/lib/thor/parser/options.rb +9 -8
- data/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +5 -2
- data/lib/bundler/vendor/thor/lib/thor/shell/color.rb +5 -1
- 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
- metadata +71 -85
- 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,17 +24,17 @@ 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
|
|
34
34
|
s.required_ruby_version = ">= 2.3.0"
|
35
35
|
s.required_rubygems_version = ">= 2.5.2"
|
36
36
|
|
37
|
-
s.files = Dir.glob("{lib,
|
37
|
+
s.files = Dir.glob("{lib,exe}/**/*", File::FNM_DOTMATCH).reject {|f| File.directory?(f) }
|
38
38
|
|
39
39
|
# Include the CHANGELOG.md, LICENSE.md, README.md manually
|
40
40
|
s.files += %w[CHANGELOG.md LICENSE.md README.md]
|
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__)
|
@@ -63,7 +63,6 @@ module Bundler
|
|
63
63
|
autoload :Resolver, File.expand_path("bundler/resolver", __dir__)
|
64
64
|
autoload :Retry, File.expand_path("bundler/retry", __dir__)
|
65
65
|
autoload :RubyDsl, File.expand_path("bundler/ruby_dsl", __dir__)
|
66
|
-
autoload :RubyGemsGemInstaller, File.expand_path("bundler/rubygems_gem_installer", __dir__)
|
67
66
|
autoload :RubyVersion, File.expand_path("bundler/ruby_version", __dir__)
|
68
67
|
autoload :Runtime, File.expand_path("bundler/runtime", __dir__)
|
69
68
|
autoload :Settings, File.expand_path("bundler/settings", __dir__)
|
@@ -212,6 +211,12 @@ module Bundler
|
|
212
211
|
end
|
213
212
|
end
|
214
213
|
|
214
|
+
def most_specific_locked_platform?(platform)
|
215
|
+
return false unless defined?(@definition) && @definition
|
216
|
+
|
217
|
+
definition.most_specific_locked_platform == platform
|
218
|
+
end
|
219
|
+
|
215
220
|
def ruby_scope
|
216
221
|
"#{Bundler.rubygems.ruby_engine}/#{RbConfig::CONFIG["ruby_version"]}"
|
217
222
|
end
|
@@ -285,7 +290,13 @@ module Bundler
|
|
285
290
|
|
286
291
|
def app_config_path
|
287
292
|
if app_config = ENV["BUNDLE_APP_CONFIG"]
|
288
|
-
Pathname.new(app_config)
|
293
|
+
app_config_pathname = Pathname.new(app_config)
|
294
|
+
|
295
|
+
if app_config_pathname.absolute?
|
296
|
+
app_config_pathname
|
297
|
+
else
|
298
|
+
app_config_pathname.expand_path(root)
|
299
|
+
end
|
289
300
|
else
|
290
301
|
root.join(".bundle")
|
291
302
|
end
|
@@ -347,7 +358,10 @@ EOF
|
|
347
358
|
env.delete_if {|k, _| k[0, 7] == "BUNDLE_" }
|
348
359
|
|
349
360
|
if env.key?("RUBYOPT")
|
350
|
-
|
361
|
+
rubyopt = env["RUBYOPT"].split(" ")
|
362
|
+
rubyopt.delete("-r#{File.expand_path("bundler/setup", __dir__)}")
|
363
|
+
rubyopt.delete("-rbundler/setup")
|
364
|
+
env["RUBYOPT"] = rubyopt.join(" ")
|
351
365
|
end
|
352
366
|
|
353
367
|
if env.key?("RUBYLIB")
|
@@ -426,7 +440,7 @@ EOF
|
|
426
440
|
end
|
427
441
|
|
428
442
|
def local_platform
|
429
|
-
return Gem::Platform::RUBY if settings[:force_ruby_platform]
|
443
|
+
return Gem::Platform::RUBY if settings[:force_ruby_platform] || Gem.platforms == [Gem::Platform::RUBY]
|
430
444
|
Gem::Platform.local
|
431
445
|
end
|
432
446
|
|
@@ -447,10 +461,14 @@ EOF
|
|
447
461
|
# system binaries. If you put '-n foo' in your .gemrc, RubyGems will
|
448
462
|
# install binstubs there instead. Unfortunately, RubyGems doesn't expose
|
449
463
|
# 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`.
|
464
|
+
# the directory to be set as well, via `bundle config set --local bindir foo`.
|
451
465
|
Bundler.settings[:system_bindir] || Bundler.rubygems.gem_bindir
|
452
466
|
end
|
453
467
|
|
468
|
+
def preferred_gemfile_name
|
469
|
+
Bundler.settings[:init_gems_rb] ? "gems.rb" : "Gemfile"
|
470
|
+
end
|
471
|
+
|
454
472
|
def use_system_gems?
|
455
473
|
configured_bundle_path.use_system_gems?
|
456
474
|
end
|
@@ -512,7 +530,8 @@ EOF
|
|
512
530
|
Your user account isn't allowed to install to the system RubyGems.
|
513
531
|
You can cancel this installation and run:
|
514
532
|
|
515
|
-
bundle
|
533
|
+
bundle config set --local path 'vendor/bundle'
|
534
|
+
bundle install
|
516
535
|
|
517
536
|
to install the gems into ./vendor/bundle/, or you can enter your password
|
518
537
|
and install the bundled gems to RubyGems using sudo.
|
@@ -588,6 +607,11 @@ EOF
|
|
588
607
|
reset_rubygems!
|
589
608
|
end
|
590
609
|
|
610
|
+
def reset_settings_and_root!
|
611
|
+
@settings = nil
|
612
|
+
@root = nil
|
613
|
+
end
|
614
|
+
|
591
615
|
def reset_paths!
|
592
616
|
@bin_path = nil
|
593
617
|
@bundler_major_version = nil
|
@@ -610,7 +634,7 @@ EOF
|
|
610
634
|
@rubygems = nil
|
611
635
|
end
|
612
636
|
|
613
|
-
|
637
|
+
private
|
614
638
|
|
615
639
|
def eval_yaml_gemspec(path, contents)
|
616
640
|
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 = "2021-05-05".freeze
|
8
|
+
@git_commit_sha = "69cbd6e10e".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_and_root!
|
61
61
|
end
|
62
62
|
|
63
63
|
Bundler.settings.set_command_option_if_given :retry, options[:retry]
|
@@ -122,16 +122,17 @@ module Bundler
|
|
122
122
|
else command = "bundle-#{cli}"
|
123
123
|
end
|
124
124
|
|
125
|
-
man_path
|
126
|
-
man_pages = Hash[Dir.glob(File.join(man_path, "*")).grep(/.*\.\d*\Z/).collect do |f|
|
125
|
+
man_path = File.expand_path("man", __dir__)
|
126
|
+
man_pages = Hash[Dir.glob(File.join(man_path, "**", "*")).grep(/.*\.\d*\Z/).collect do |f|
|
127
127
|
[File.basename(f, ".*"), f]
|
128
128
|
end]
|
129
129
|
|
130
130
|
if man_pages.include?(command)
|
131
|
+
man_page = man_pages[command]
|
131
132
|
if Bundler.which("man") && man_path !~ %r{^file:/.+!/META-INF/jruby.home/.+}
|
132
|
-
Kernel.exec "man #{
|
133
|
+
Kernel.exec "man #{man_page}"
|
133
134
|
else
|
134
|
-
puts File.read("#{man_path}/#{File.basename(
|
135
|
+
puts File.read("#{man_path}/#{File.basename(man_page)}.ronn")
|
135
136
|
end
|
136
137
|
elsif command_path = Bundler.which("bundler-#{cli}")
|
137
138
|
Kernel.exec(command_path, "--help")
|
@@ -247,10 +248,12 @@ module Bundler
|
|
247
248
|
def install
|
248
249
|
SharedHelpers.major_deprecation(2, "The `--force` option has been renamed to `--redownload`") if ARGV.include?("--force")
|
249
250
|
|
250
|
-
%w[clean deployment frozen no-
|
251
|
+
%w[clean deployment frozen no-prune path shebang system without with].each do |option|
|
251
252
|
remembered_flag_deprecation(option)
|
252
253
|
end
|
253
254
|
|
255
|
+
remembered_negative_flag_deprecation("no-deployment")
|
256
|
+
|
254
257
|
require_relative "cli/install"
|
255
258
|
Bundler.settings.temporary(:no_install => false) do
|
256
259
|
Install.new(options.dup).run
|
@@ -342,8 +345,8 @@ module Bundler
|
|
342
345
|
|
343
346
|
desc "list", "List all gems in the bundle"
|
344
347
|
method_option "name-only", :type => :boolean, :banner => "print only the gem names"
|
345
|
-
method_option "only-group", :type => :
|
346
|
-
method_option "without-group", :type => :
|
348
|
+
method_option "only-group", :type => :array, :default => [], :banner => "print gems from a given set of groups"
|
349
|
+
method_option "without-group", :type => :array, :default => [], :banner => "print all gems except from a given set of groups"
|
347
350
|
method_option "paths", :type => :boolean, :banner => "print the path to each gem in the bundle"
|
348
351
|
def list
|
349
352
|
require_relative "cli/list"
|
@@ -375,6 +378,8 @@ module Bundler
|
|
375
378
|
"Make binstubs that can work without the Bundler runtime"
|
376
379
|
method_option "all", :type => :boolean, :banner =>
|
377
380
|
"Install binstubs for all gems"
|
381
|
+
method_option "all-platforms", :type => :boolean, :default => false, :banner =>
|
382
|
+
"Install binstubs for all platforms"
|
378
383
|
def binstubs(*gems)
|
379
384
|
require_relative "cli/binstubs"
|
380
385
|
Binstubs.new(options, gems).run
|
@@ -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
|
@@ -486,8 +504,8 @@ module Bundler
|
|
486
504
|
By default, setting a configuration value sets it for all projects
|
487
505
|
on the machine.
|
488
506
|
|
489
|
-
If a global setting is
|
490
|
-
will show the current value, as well as any
|
507
|
+
If a global setting is superseded by local configuration, this command
|
508
|
+
will show the current value, as well as any superseded values and
|
491
509
|
where they were specified.
|
492
510
|
D
|
493
511
|
require_relative "cli/config"
|
@@ -560,15 +578,21 @@ 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 :changelog, :type => :boolean, :desc => "Generate changelog file. Set a default with `bundle config set --global gem.changelog true`."
|
590
|
+
method_option :test, :type => :string, :lazy_default => Bundler.settings["gem.test"] || "", :aliases => "-t", :banner => "Use the specified test framework for your library",
|
591
|
+
: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)`."
|
592
|
+
method_option :ci, :type => :string, :lazy_default => Bundler.settings["gem.ci"] || "",
|
593
|
+
: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)`"
|
594
|
+
method_option :github_username, :type => :string, :default => Bundler.settings["gem.github_username"], :banner => "Set your username on GitHub", :desc => "Fill in GitHub username on README so that you don't have to do it manually. Set a default with `bundle config set --global gem.github_username <your_username>`."
|
595
|
+
|
572
596
|
def gem(name)
|
573
597
|
end
|
574
598
|
|
@@ -731,11 +755,11 @@ module Bundler
|
|
731
755
|
end
|
732
756
|
end
|
733
757
|
|
734
|
-
|
758
|
+
private
|
735
759
|
|
736
760
|
# Automatically invoke `bundle install` and resume if
|
737
761
|
# Bundler.settings[:auto_install] exists. This is set through config cmd
|
738
|
-
# `bundle config set auto_install 1`.
|
762
|
+
# `bundle config set --global auto_install 1`.
|
739
763
|
#
|
740
764
|
# Note that this method `nil`s out the global Definition object, so it
|
741
765
|
# should be called first, before you instantiate anything like an
|
@@ -808,20 +832,32 @@ module Bundler
|
|
808
832
|
nil
|
809
833
|
end
|
810
834
|
|
835
|
+
def remembered_negative_flag_deprecation(name)
|
836
|
+
positive_name = name.gsub(/\Ano-/, "")
|
837
|
+
option = current_command.options[positive_name]
|
838
|
+
flag_name = "--no-" + option.switch_name.gsub(/\A--/, "")
|
839
|
+
|
840
|
+
flag_deprecation(positive_name, flag_name, option)
|
841
|
+
end
|
842
|
+
|
811
843
|
def remembered_flag_deprecation(name)
|
812
844
|
option = current_command.options[name]
|
813
845
|
flag_name = option.switch_name
|
814
846
|
|
815
|
-
|
847
|
+
flag_deprecation(name, flag_name, option)
|
848
|
+
end
|
849
|
+
|
850
|
+
def flag_deprecation(name, flag_name, option)
|
851
|
+
name_index = ARGV.find {|arg| flag_name == arg.split("=")[0] }
|
816
852
|
return unless name_index
|
817
853
|
|
818
854
|
value = options[name]
|
819
855
|
value = value.join(" ").to_s if option.type == :array
|
820
856
|
|
821
|
-
Bundler::SharedHelpers.major_deprecation 2
|
857
|
+
Bundler::SharedHelpers.major_deprecation 2,
|
822
858
|
"The `#{flag_name}` flag is deprecated because it relies on being " \
|
823
859
|
"remembered across bundler invocations, which bundler will no longer " \
|
824
|
-
"do in future versions. Instead please use `bundle config set #{name} " \
|
860
|
+
"do in future versions. Instead please use `bundle config set --local #{name.tr("-", "_")} " \
|
825
861
|
"'#{value}'`, and stop using this flag"
|
826
862
|
end
|
827
863
|
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,12 +24,13 @@ module Bundler
|
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
|
-
|
27
|
+
private
|
28
28
|
|
29
29
|
def install
|
30
30
|
require_relative "install"
|
31
31
|
options = self.options.dup
|
32
32
|
options["local"] = false if Bundler.settings[:cache_all_platforms]
|
33
|
+
options["no-cache"] = true
|
33
34
|
Bundler::CLI::Install.new(options).run
|
34
35
|
end
|
35
36
|
|
@@ -37,12 +38,6 @@ module Bundler
|
|
37
38
|
all = options.fetch(:all, Bundler.feature_flag.cache_all? || nil)
|
38
39
|
|
39
40
|
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
41
|
end
|
47
42
|
end
|
48
43
|
end
|