bundler 2.2.26 → 2.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +166 -1
  3. data/README.md +1 -1
  4. data/exe/bundle +7 -8
  5. data/lib/bundler/.document +1 -0
  6. data/lib/bundler/build_metadata.rb +2 -2
  7. data/lib/bundler/cli/check.rb +1 -1
  8. data/lib/bundler/cli/doctor.rb +3 -2
  9. data/lib/bundler/cli/gem.rb +88 -9
  10. data/lib/bundler/cli/info.rb +16 -4
  11. data/lib/bundler/cli/install.rb +2 -3
  12. data/lib/bundler/cli/issue.rb +4 -3
  13. data/lib/bundler/cli/remove.rb +1 -2
  14. data/lib/bundler/cli/update.rb +2 -2
  15. data/lib/bundler/cli.rb +10 -1
  16. data/lib/bundler/compact_index_client/updater.rb +0 -5
  17. data/lib/bundler/compact_index_client.rb +2 -2
  18. data/lib/bundler/definition.rb +77 -124
  19. data/lib/bundler/dependency.rb +5 -7
  20. data/lib/bundler/digest.rb +71 -0
  21. data/lib/bundler/dsl.rb +18 -30
  22. data/lib/bundler/endpoint_specification.rb +0 -8
  23. data/lib/bundler/environment_preserver.rb +4 -1
  24. data/lib/bundler/errors.rb +18 -2
  25. data/lib/bundler/fetcher/compact_index.rb +9 -4
  26. data/lib/bundler/fetcher.rb +4 -6
  27. data/lib/bundler/friendly_errors.rb +5 -30
  28. data/lib/bundler/gem_helper.rb +6 -17
  29. data/lib/bundler/injector.rb +10 -1
  30. data/lib/bundler/installer/gem_installer.rb +1 -6
  31. data/lib/bundler/installer.rb +1 -5
  32. data/lib/bundler/lazy_specification.rb +17 -1
  33. data/lib/bundler/lockfile_parser.rb +10 -12
  34. data/lib/bundler/man/bundle-add.1 +10 -2
  35. data/lib/bundler/man/bundle-add.1.ronn +7 -1
  36. data/lib/bundler/man/bundle-binstubs.1 +1 -1
  37. data/lib/bundler/man/bundle-cache.1 +1 -1
  38. data/lib/bundler/man/bundle-check.1 +1 -1
  39. data/lib/bundler/man/bundle-clean.1 +1 -1
  40. data/lib/bundler/man/bundle-config.1 +5 -5
  41. data/lib/bundler/man/bundle-config.1.ronn +5 -5
  42. data/lib/bundler/man/bundle-doctor.1 +1 -1
  43. data/lib/bundler/man/bundle-exec.1 +1 -1
  44. data/lib/bundler/man/bundle-gem.1 +14 -1
  45. data/lib/bundler/man/bundle-gem.1.ronn +16 -0
  46. data/lib/bundler/man/bundle-info.1 +1 -1
  47. data/lib/bundler/man/bundle-init.1 +1 -1
  48. data/lib/bundler/man/bundle-inject.1 +1 -1
  49. data/lib/bundler/man/bundle-install.1 +2 -2
  50. data/lib/bundler/man/bundle-install.1.ronn +2 -2
  51. data/lib/bundler/man/bundle-list.1 +1 -1
  52. data/lib/bundler/man/bundle-lock.1 +1 -1
  53. data/lib/bundler/man/bundle-open.1 +1 -1
  54. data/lib/bundler/man/bundle-outdated.1 +1 -1
  55. data/lib/bundler/man/bundle-platform.1 +1 -1
  56. data/lib/bundler/man/bundle-pristine.1 +1 -1
  57. data/lib/bundler/man/bundle-remove.1 +1 -1
  58. data/lib/bundler/man/bundle-show.1 +1 -1
  59. data/lib/bundler/man/bundle-update.1 +2 -2
  60. data/lib/bundler/man/bundle-update.1.ronn +2 -1
  61. data/lib/bundler/man/bundle-viz.1 +1 -1
  62. data/lib/bundler/man/bundle.1 +1 -1
  63. data/lib/bundler/man/gemfile.5 +28 -2
  64. data/lib/bundler/man/gemfile.5.ronn +9 -1
  65. data/lib/bundler/plugin/api/source.rb +1 -0
  66. data/lib/bundler/plugin/installer.rb +3 -1
  67. data/lib/bundler/plugin.rb +23 -6
  68. data/lib/bundler/process_lock.rb +1 -1
  69. data/lib/bundler/psyched_yaml.rb +1 -13
  70. data/lib/bundler/resolver.rb +34 -31
  71. data/lib/bundler/ruby_version.rb +1 -1
  72. data/lib/bundler/rubygems_ext.rb +6 -0
  73. data/lib/bundler/rubygems_gem_installer.rb +21 -5
  74. data/lib/bundler/rubygems_integration.rb +39 -57
  75. data/lib/bundler/runtime.rb +2 -2
  76. data/lib/bundler/self_manager.rb +94 -0
  77. data/lib/bundler/settings.rb +10 -1
  78. data/lib/bundler/shared_helpers.rb +4 -12
  79. data/lib/bundler/source/git/git_proxy.rb +7 -4
  80. data/lib/bundler/source/git.rb +22 -4
  81. data/lib/bundler/source/metadata.rb +1 -1
  82. data/lib/bundler/source/rubygems.rb +60 -85
  83. data/lib/bundler/source/rubygems_aggregate.rb +1 -1
  84. data/lib/bundler/source.rb +3 -1
  85. data/lib/bundler/source_list.rb +11 -29
  86. data/lib/bundler/spec_set.rb +2 -2
  87. data/lib/bundler/templates/Executable.bundler +1 -1
  88. data/lib/bundler/templates/Gemfile +0 -2
  89. data/lib/bundler/templates/gems.rb +0 -3
  90. data/lib/bundler/templates/newgem/Gemfile.tt +5 -2
  91. data/lib/bundler/templates/newgem/Rakefile.tt +15 -2
  92. data/lib/bundler/templates/newgem/github/workflows/main.yml.tt +4 -3
  93. data/lib/bundler/templates/newgem/newgem.gemspec.tt +14 -14
  94. data/lib/bundler/templates/newgem/sig/newgem.rbs.tt +8 -0
  95. data/lib/bundler/templates/newgem/standard.yml.tt +2 -0
  96. data/lib/bundler/templates/newgem/test/minitest/{newgem_test.rb.tt → test_newgem.rb.tt} +1 -1
  97. data/lib/bundler/ui/shell.rb +1 -1
  98. data/lib/bundler/vendor/.document +1 -0
  99. data/lib/bundler/vendor/connection_pool/LICENSE +20 -0
  100. data/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +19 -21
  101. data/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +1 -1
  102. data/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +57 -0
  103. data/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +39 -74
  104. data/lib/bundler/vendor/fileutils/LICENSE.txt +22 -0
  105. data/lib/bundler/vendor/molinillo/LICENSE +9 -0
  106. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +2 -2
  107. data/lib/bundler/vendor/net-http-persistent/README.rdoc +82 -0
  108. data/lib/bundler/vendor/thor/LICENSE.md +20 -0
  109. data/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +6 -6
  110. data/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +5 -3
  111. data/lib/bundler/vendor/thor/lib/thor/actions.rb +6 -2
  112. data/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +6 -0
  113. data/lib/bundler/vendor/thor/lib/thor/error.rb +9 -4
  114. data/lib/bundler/vendor/thor/lib/thor/parser/options.rb +19 -1
  115. data/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +22 -4
  116. data/lib/bundler/vendor/thor/lib/thor/shell.rb +1 -1
  117. data/lib/bundler/vendor/thor/lib/thor/util.rb +1 -1
  118. data/lib/bundler/vendor/tsort/LICENSE.txt +22 -0
  119. data/lib/bundler/vendor/tsort/lib/tsort.rb +453 -0
  120. data/lib/bundler/vendor/uri/LICENSE.txt +22 -0
  121. data/lib/bundler/vendor/uri/lib/uri/common.rb +17 -80
  122. data/lib/bundler/vendor/uri/lib/uri/ftp.rb +0 -1
  123. data/lib/bundler/vendor/uri/lib/uri/generic.rb +5 -6
  124. data/lib/bundler/vendor/uri/lib/uri/http.rb +0 -1
  125. data/lib/bundler/vendor/uri/lib/uri/https.rb +0 -1
  126. data/lib/bundler/vendor/uri/lib/uri/ldap.rb +1 -1
  127. data/lib/bundler/vendor/uri/lib/uri/mailto.rb +0 -1
  128. data/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +1 -14
  129. data/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +1 -12
  130. data/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
  131. data/lib/bundler/vendor/uri/lib/uri/ws.rb +84 -0
  132. data/lib/bundler/vendor/uri/lib/uri/wss.rb +22 -0
  133. data/lib/bundler/vendor/uri/lib/uri.rb +0 -1
  134. data/lib/bundler/vendored_tsort.rb +4 -0
  135. data/lib/bundler/version.rb +1 -1
  136. data/lib/bundler/worker.rb +2 -2
  137. data/lib/bundler.rb +22 -21
  138. metadata +25 -9
  139. data/lib/bundler/gemdeps.rb +0 -29
  140. data/lib/bundler/vendor/connection_pool/lib/connection_pool/monotonic_time.rb +0 -66
@@ -63,34 +63,6 @@ module Bundler
63
63
  def request_issue_report_for(e)
64
64
  Bundler.ui.error <<-EOS.gsub(/^ {8}/, ""), nil, nil
65
65
  --- ERROR REPORT TEMPLATE -------------------------------------------------------
66
- # Error Report
67
-
68
- ## Questions
69
-
70
- Please fill out answers to these questions, it'll help us figure out
71
- why things are going wrong.
72
-
73
- - **What did you do?**
74
-
75
- I ran the command `#{$PROGRAM_NAME} #{ARGV.join(" ")}`
76
-
77
- - **What did you expect to happen?**
78
-
79
- I expected Bundler to...
80
-
81
- - **What happened instead?**
82
-
83
- Instead, what happened was...
84
-
85
- - **Have you tried any solutions posted on similar issues in our issue tracker, stack overflow, or google?**
86
-
87
- I tried...
88
-
89
- - **Have you read our issues document, https://github.com/rubygems/rubygems/blob/master/bundler/doc/contributing/ISSUES.md?**
90
-
91
- ...
92
-
93
- ## Backtrace
94
66
 
95
67
  ```
96
68
  #{e.class}: #{e.message}
@@ -109,8 +81,7 @@ module Bundler
109
81
  First, try this link to see if there are any existing issue reports for this error:
110
82
  #{issues_url(e)}
111
83
 
112
- If there aren't any reports for this error yet, please copy and paste the report template above into a new issue. Don't forget to anonymize any private data! The new issue form is located at:
113
- https://github.com/rubygems/rubygems/issues/new?labels=Bundler&template=bundler-related-issue.md
84
+ If there aren't any reports for this error yet, please fill in the new issue form located at #{new_issue_url}, and copy and paste the report template above in there.
114
85
  EOS
115
86
  end
116
87
 
@@ -121,6 +92,10 @@ module Bundler
121
92
  "https://github.com/rubygems/rubygems/search?q=" \
122
93
  "#{CGI.escape(message)}&type=Issues"
123
94
  end
95
+
96
+ def new_issue_url
97
+ "https://github.com/rubygems/rubygems/issues/new?labels=Bundler&template=bundler-related-issue.md"
98
+ end
124
99
  end
125
100
 
126
101
  def self.with_friendly_errors
@@ -76,7 +76,7 @@ module Bundler
76
76
  tag_version { git_push(args[:remote]) } unless already_tagged?
77
77
  end
78
78
 
79
- task "release:rubygem_push" do
79
+ task "release:rubygem_push" => "build" do
80
80
  rubygem_push(built_gem_path) if gem_push?
81
81
  end
82
82
 
@@ -98,10 +98,7 @@ module Bundler
98
98
  built_gem_path ||= build_gem
99
99
  cmd = [*gem_command, "install", built_gem_path.to_s]
100
100
  cmd << "--local" if local
101
- _, status = sh_with_status(cmd)
102
- unless status.success?
103
- raise "Couldn't install gem, run `gem install #{built_gem_path}' for more detailed output"
104
- end
101
+ sh(cmd)
105
102
  Bundler.ui.confirm "#{name} (#{version}) installed."
106
103
  end
107
104
 
@@ -110,7 +107,7 @@ module Bundler
110
107
  SharedHelpers.filesystem_access(File.join(base, "checksums")) {|p| FileUtils.mkdir_p(p) }
111
108
  file_name = "#{File.basename(built_gem_path)}.sha512"
112
109
  require "digest/sha2"
113
- checksum = Digest::SHA512.new.hexdigest(built_gem_path.to_s)
110
+ checksum = ::Digest::SHA512.new.hexdigest(built_gem_path.to_s)
114
111
  target = File.join(base, "checksums", file_name)
115
112
  File.write(target, checksum)
116
113
  Bundler.ui.confirm "#{name} #{version} checksum written to checksums/#{file_name}."
@@ -132,8 +129,8 @@ module Bundler
132
129
 
133
130
  def git_push(remote = nil)
134
131
  remote ||= default_remote
135
- perform_git_push "#{remote} refs/heads/#{current_branch}"
136
- perform_git_push "#{remote} refs/tags/#{version_tag}"
132
+ sh("git push #{remote} refs/heads/#{current_branch}".shellsplit)
133
+ sh("git push #{remote} refs/tags/#{version_tag}".shellsplit)
137
134
  Bundler.ui.confirm "Pushed git commits and release tag."
138
135
  end
139
136
 
@@ -161,13 +158,6 @@ module Bundler
161
158
  allowed_push_host || env_rubygems_host || "rubygems.org"
162
159
  end
163
160
 
164
- def perform_git_push(options = "")
165
- cmd = "git push #{options}"
166
- out, status = sh_with_status(cmd.shellsplit)
167
- return if status.success?
168
- raise "Couldn't git push. `#{cmd}' failed with the following output:\n\n#{out}\n"
169
- end
170
-
171
161
  def already_tagged?
172
162
  return false unless sh(%w[git tag]).split(/\n/).include?(version_tag)
173
163
  Bundler.ui.confirm "Tag #{version_tag} has already been created."
@@ -218,8 +208,7 @@ module Bundler
218
208
  def sh(cmd, &block)
219
209
  out, status = sh_with_status(cmd, &block)
220
210
  unless status.success?
221
- cmd = cmd.shelljoin if cmd.respond_to?(:shelljoin)
222
- raise(out.empty? ? "Running `#{cmd}` failed. Run this command directly for more detailed output." : out)
211
+ raise("Running `#{cmd.shelljoin}` failed with the following output:\n\n#{out}\n")
223
212
  end
224
213
  out
225
214
  end
@@ -112,9 +112,12 @@ module Bundler
112
112
 
113
113
  source = ", :source => \"#{d.source}\"" unless d.source.nil?
114
114
  git = ", :git => \"#{d.git}\"" unless d.git.nil?
115
+ github = ", :github => \"#{d.github}\"" unless d.github.nil?
115
116
  branch = ", :branch => \"#{d.branch}\"" unless d.branch.nil?
117
+ ref = ", :ref => \"#{d.ref}\"" unless d.ref.nil?
118
+ require_path = ", :require => #{convert_autorequire(d.autorequire)}" unless d.autorequire.nil?
116
119
 
117
- %(gem #{name}#{requirement}#{group}#{source}#{git}#{branch})
120
+ %(gem #{name}#{requirement}#{group}#{source}#{git}#{github}#{branch}#{ref}#{require_path})
118
121
  end.join("\n")
119
122
  end
120
123
 
@@ -269,5 +272,11 @@ module Bundler
269
272
  def show_warning(message)
270
273
  Bundler.ui.info Bundler.ui.add_color(message, :yellow)
271
274
  end
275
+
276
+ def convert_autorequire(autorequire)
277
+ autorequire = autorequire.first
278
+ return autorequire if autorequire == "false"
279
+ autorequire.inspect
280
+ end
272
281
  end
273
282
  end
@@ -13,7 +13,7 @@ module Bundler
13
13
  end
14
14
 
15
15
  def install_from_spec
16
- post_install_message = spec_settings ? install_with_settings : install
16
+ post_install_message = install
17
17
  Bundler.ui.debug "#{worker}: #{spec.name} (#{spec.version}) from #{spec.loaded_from}"
18
18
  generate_executable_stubs
19
19
  return true, post_install_message
@@ -54,11 +54,6 @@ module Bundler
54
54
  spec.source.install(spec, :force => force, :ensure_builtin_gems_cached => standalone, :build_args => Array(spec_settings))
55
55
  end
56
56
 
57
- def install_with_settings
58
- # Build arguments are global, so this is mutexed
59
- Bundler.rubygems.install_with_build_args([spec_settings]) { install }
60
- end
61
-
62
57
  def out_of_space_message
63
58
  "#{install_error_message}\nYour disk is out of space. Free some space to be able to install your bundle."
64
59
  end
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "rubygems/dependency_installer"
4
3
  require_relative "worker"
5
4
  require_relative "installer/parallel_installer"
6
5
  require_relative "installer/standalone"
@@ -219,9 +218,6 @@ module Bundler
219
218
  return jobs
220
219
  end
221
220
 
222
- # Parallelization has some issues on Windows, so it's not yet the default
223
- return 1 if Gem.win_platform?
224
-
225
221
  Bundler.settings.processor_count
226
222
  end
227
223
 
@@ -243,7 +239,7 @@ module Bundler
243
239
 
244
240
  def ensure_specs_are_compatible!
245
241
  system_ruby = Bundler::RubyVersion.system
246
- rubygems_version = Gem::Version.create(Gem::VERSION)
242
+ rubygems_version = Bundler.rubygems.version
247
243
  @definition.specs.each do |spec|
248
244
  if required_ruby_version = spec.required_ruby_version
249
245
  unless required_ruby_version.satisfied_by?(system_ruby.gem_version)
@@ -38,8 +38,24 @@ module Bundler
38
38
  identifier.hash
39
39
  end
40
40
 
41
+ ##
42
+ # Does this locked specification satisfy +dependency+?
43
+ #
44
+ # NOTE: Rubygems default requirement is ">= 0", which doesn't match
45
+ # prereleases of 0 versions, like "0.0.0.dev" or "0.0.0.SNAPSHOT". However,
46
+ # bundler users expect those to work. We need to make sure that Gemfile
47
+ # dependencies without explicit requirements (which use ">= 0" under the
48
+ # hood by default) are still valid for locked specs using this kind of
49
+ # versions. The method implements an ad-hoc fix for that. A better solution
50
+ # might be to change default rubygems requirement of dependencies to be ">=
51
+ # 0.A" but that's a major refactoring likely to break things. Hopefully we
52
+ # can attempt it in the future.
53
+ #
54
+
41
55
  def satisfies?(dependency)
42
- @name == dependency.name && dependency.requirement.satisfied_by?(Gem::Version.new(@version))
56
+ effective_requirement = dependency.requirement == Gem::Requirement.default ? Gem::Requirement.new(">= 0.A") : dependency.requirement
57
+
58
+ @name == dependency.name && effective_requirement.satisfied_by?(Gem::Version.new(@version))
43
59
  end
44
60
 
45
61
  def to_lock
@@ -46,6 +46,16 @@ module Bundler
46
46
  attributes
47
47
  end
48
48
 
49
+ def self.bundled_with
50
+ lockfile = Bundler.default_lockfile
51
+ return unless lockfile.file?
52
+
53
+ lockfile_contents = Bundler.read_file(lockfile)
54
+ return unless lockfile_contents.include?(BUNDLED)
55
+
56
+ lockfile_contents.split(BUNDLED).last.strip
57
+ end
58
+
49
59
  def initialize(lockfile)
50
60
  @platforms = []
51
61
  @sources = []
@@ -77,24 +87,12 @@ module Bundler
77
87
  end
78
88
  end
79
89
  @specs = @specs.values.sort_by(&:identifier)
80
- warn_for_outdated_bundler_version
81
90
  rescue ArgumentError => e
82
91
  Bundler.ui.debug(e)
83
92
  raise LockfileError, "Your lockfile is unreadable. Run `rm #{Bundler.default_lockfile.relative_path_from(SharedHelpers.pwd)}` " \
84
93
  "and then `bundle install` to generate a new lockfile."
85
94
  end
86
95
 
87
- def warn_for_outdated_bundler_version
88
- return unless bundler_version
89
- prerelease_text = bundler_version.prerelease? ? " --pre" : ""
90
- current_version = Gem::Version.create(Bundler::VERSION)
91
- return unless current_version < bundler_version
92
- Bundler.ui.warn "Warning: the running version of Bundler (#{current_version}) is older " \
93
- "than the version that created the lockfile (#{bundler_version}). We suggest you to " \
94
- "upgrade to the version that created the lockfile by running `gem install " \
95
- "bundler:#{bundler_version}#{prerelease_text}`.\n"
96
- end
97
-
98
96
  private
99
97
 
100
98
  TYPES = {
@@ -1,13 +1,13 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-ADD" "1" "June 2021" "" ""
4
+ .TH "BUNDLE\-ADD" "1" "December 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-add\fR \- Add gem to the Gemfile and run bundle install
8
8
  .
9
9
  .SH "SYNOPSIS"
10
- \fBbundle add\fR \fIGEM_NAME\fR [\-\-group=GROUP] [\-\-version=VERSION] [\-\-source=SOURCE] [\-\-git=GIT] [\-\-branch=BRANCH] [\-\-skip\-install] [\-\-strict] [\-\-optimistic]
10
+ \fBbundle add\fR \fIGEM_NAME\fR [\-\-group=GROUP] [\-\-version=VERSION] [\-\-source=SOURCE] [\-\-git=GIT] [\-\-github=GITHUB] [\-\-branch=BRANCH] [\-\-ref=REF] [\-\-skip\-install] [\-\-strict] [\-\-optimistic]
11
11
  .
12
12
  .SH "DESCRIPTION"
13
13
  Adds the named gem to the Gemfile and run \fBbundle install\fR\. \fBbundle install\fR can be avoided by using the flag \fB\-\-skip\-install\fR\.
@@ -49,10 +49,18 @@ Specify the source for the added gem\.
49
49
  Specify the git source for the added gem\.
50
50
  .
51
51
  .TP
52
+ \fB\-\-github\fR
53
+ Specify the github source for the added gem\.
54
+ .
55
+ .TP
52
56
  \fB\-\-branch\fR
53
57
  Specify the git branch for the added gem\.
54
58
  .
55
59
  .TP
60
+ \fB\-\-ref\fR
61
+ Specify the git ref for the added gem\.
62
+ .
63
+ .TP
56
64
  \fB\-\-skip\-install\fR
57
65
  Adds the gem to the Gemfile but does not install it\.
58
66
  .
@@ -3,7 +3,7 @@ bundle-add(1) -- Add gem to the Gemfile and run bundle install
3
3
 
4
4
  ## SYNOPSIS
5
5
 
6
- `bundle add` <GEM_NAME> [--group=GROUP] [--version=VERSION] [--source=SOURCE] [--git=GIT] [--branch=BRANCH] [--skip-install] [--strict] [--optimistic]
6
+ `bundle add` <GEM_NAME> [--group=GROUP] [--version=VERSION] [--source=SOURCE] [--git=GIT] [--github=GITHUB] [--branch=BRANCH] [--ref=REF] [--skip-install] [--strict] [--optimistic]
7
7
 
8
8
  ## DESCRIPTION
9
9
  Adds the named gem to the Gemfile and run `bundle install`. `bundle install` can be avoided by using the flag `--skip-install`.
@@ -33,9 +33,15 @@ bundle add rails --group "development, test"
33
33
  * `--git`:
34
34
  Specify the git source for the added gem.
35
35
 
36
+ * `--github`:
37
+ Specify the github source for the added gem.
38
+
36
39
  * `--branch`:
37
40
  Specify the git branch for the added gem.
38
41
 
42
+ * `--ref`:
43
+ Specify the git ref for the added gem.
44
+
39
45
  * `--skip-install`:
40
46
  Adds the gem to the Gemfile but does not install it.
41
47
 
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-BINSTUBS" "1" "June 2021" "" ""
4
+ .TH "BUNDLE\-BINSTUBS" "1" "December 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-binstubs\fR \- Install the binstubs of the listed gems
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-CACHE" "1" "June 2021" "" ""
4
+ .TH "BUNDLE\-CACHE" "1" "December 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-cache\fR \- Package your needed \fB\.gem\fR files into your application
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-CHECK" "1" "June 2021" "" ""
4
+ .TH "BUNDLE\-CHECK" "1" "December 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-check\fR \- Verifies if dependencies are satisfied by installed gems
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-CLEAN" "1" "June 2021" "" ""
4
+ .TH "BUNDLE\-CLEAN" "1" "December 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-clean\fR \- Cleans up unused gems in your bundler directory
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-CONFIG" "1" "June 2021" "" ""
4
+ .TH "BUNDLE\-CONFIG" "1" "December 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-config\fR \- Set bundler configuration options
@@ -211,7 +211,7 @@ The following is a list of all configuration keys and their purpose\. You can le
211
211
  \fBinit_gems_rb\fR (\fBBUNDLE_INIT_GEMS_RB\fR): Generate a \fBgems\.rb\fR instead of a \fBGemfile\fR when running \fBbundle init\fR\.
212
212
  .
213
213
  .IP "\(bu" 4
214
- \fBjobs\fR (\fBBUNDLE_JOBS\fR): The number of gems Bundler can install in parallel\. Defaults to 1 on Windows, and to the the number of processors on other platforms\.
214
+ \fBjobs\fR (\fBBUNDLE_JOBS\fR): The number of gems Bundler can install in parallel\. Defaults to the number of available processors\.
215
215
  .
216
216
  .IP "\(bu" 4
217
217
  \fBno_install\fR (\fBBUNDLE_NO_INSTALL\fR): Whether \fBbundle package\fR should skip installing gems\.
@@ -449,7 +449,7 @@ export BUNDLE_GITHUB__COM=username:password
449
449
  .IP "" 0
450
450
  .
451
451
  .P
452
- This is especially useful for private repositories on hosts such as Github, where you can use personal OAuth tokens:
452
+ This is especially useful for private repositories on hosts such as GitHub, where you can use personal OAuth tokens:
453
453
  .
454
454
  .IP "" 4
455
455
  .
@@ -462,13 +462,13 @@ export BUNDLE_GITHUB__COM=abcd0123generatedtoken:x\-oauth\-basic
462
462
  .IP "" 0
463
463
  .
464
464
  .P
465
- Note that any configured credentials will be redacted by informative commands such as \fBbundle config list\fR or \fBbundle config get\fR, unless you use the \fB\-\-parseable\fR flag\. This is to avoid unintentially leaking credentials when copy\-pasting bundler output\.
465
+ Note that any configured credentials will be redacted by informative commands such as \fBbundle config list\fR or \fBbundle config get\fR, unless you use the \fB\-\-parseable\fR flag\. This is to avoid unintentionally leaking credentials when copy\-pasting bundler output\.
466
466
  .
467
467
  .P
468
468
  Also note that to guarantee a sane mapping between valid environment variable names and valid host names, bundler makes the following transformations:
469
469
  .
470
470
  .IP "\(bu" 4
471
- Any \fB\-\fR characters in a host name are mapped to a triple dash (\fB___\fR) in the corresponding enviroment variable\.
471
+ Any \fB\-\fR characters in a host name are mapped to a triple dash (\fB___\fR) in the corresponding environment variable\.
472
472
  .
473
473
  .IP "\(bu" 4
474
474
  Any \fB\.\fR characters in a host name are mapped to a double dash (\fB__\fR) in the corresponding environment variable\.
@@ -208,8 +208,8 @@ learn more about their operation in [bundle install(1)](bundle-install.1.html).
208
208
  * `init_gems_rb` (`BUNDLE_INIT_GEMS_RB`):
209
209
  Generate a `gems.rb` instead of a `Gemfile` when running `bundle init`.
210
210
  * `jobs` (`BUNDLE_JOBS`):
211
- The number of gems Bundler can install in parallel. Defaults to 1 on Windows,
212
- and to the the number of processors on other platforms.
211
+ The number of gems Bundler can install in parallel. Defaults to the number of
212
+ available processors.
213
213
  * `no_install` (`BUNDLE_NO_INSTALL`):
214
214
  Whether `bundle package` should skip installing gems.
215
215
  * `no_prune` (`BUNDLE_NO_PRUNE`):
@@ -360,21 +360,21 @@ Or you can set the credentials as an environment variable like so:
360
360
 
361
361
  export BUNDLE_GITHUB__COM=username:password
362
362
 
363
- This is especially useful for private repositories on hosts such as Github,
363
+ This is especially useful for private repositories on hosts such as GitHub,
364
364
  where you can use personal OAuth tokens:
365
365
 
366
366
  export BUNDLE_GITHUB__COM=abcd0123generatedtoken:x-oauth-basic
367
367
 
368
368
  Note that any configured credentials will be redacted by informative commands
369
369
  such as `bundle config list` or `bundle config get`, unless you use the
370
- `--parseable` flag. This is to avoid unintentially leaking credentials when
370
+ `--parseable` flag. This is to avoid unintentionally leaking credentials when
371
371
  copy-pasting bundler output.
372
372
 
373
373
  Also note that to guarantee a sane mapping between valid environment variable
374
374
  names and valid host names, bundler makes the following transformations:
375
375
 
376
376
  * Any `-` characters in a host name are mapped to a triple dash (`___`) in the
377
- corresponding enviroment variable.
377
+ corresponding environment variable.
378
378
 
379
379
  * Any `.` characters in a host name are mapped to a double dash (`__`) in the
380
380
  corresponding environment variable.
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-DOCTOR" "1" "June 2021" "" ""
4
+ .TH "BUNDLE\-DOCTOR" "1" "December 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-doctor\fR \- Checks the bundle for common problems
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-EXEC" "1" "June 2021" "" ""
4
+ .TH "BUNDLE\-EXEC" "1" "December 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-exec\fR \- Execute a command in the context of the bundle
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-GEM" "1" "June 2021" "" ""
4
+ .TH "BUNDLE\-GEM" "1" "December 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-gem\fR \- Generate a project skeleton for creating a rubygem
@@ -90,6 +90,19 @@ When Bundler is configured to not generate CI files, an interactive prompt will
90
90
  When Bundler is unconfigured, an interactive prompt will be displayed and the answer will be saved in Bundler\'s global config for future \fBbundle gem\fR use\.
91
91
  .
92
92
  .TP
93
+ \fB\-\-linter\fR, \fB\-\-linter=rubocop\fR, \fB\-\-linter=standard\fR
94
+ Specify the linter and code formatter that Bundler should add to the project\'s development dependencies\. Acceptable values are \fBrubocop\fR and \fBstandard\fR\. A configuration file will be generated in the project directory\. Given no option is specified:
95
+ .
96
+ .IP
97
+ When Bundler is configured to add a linter, this defaults to Bundler\'s global config setting \fBgem\.linter\fR\.
98
+ .
99
+ .IP
100
+ When Bundler is configured not to add a linter, an interactive prompt will be displayed and the answer will be used for the current rubygem project\.
101
+ .
102
+ .IP
103
+ When Bundler is unconfigured, an interactive prompt will be displayed and the answer will be saved in Bundler\'s global config for future \fBbundle gem\fR use\.
104
+ .
105
+ .TP
93
106
  \fB\-e\fR, \fB\-\-edit[=EDITOR]\fR
94
107
  Open the resulting GEM_NAME\.gemspec in EDITOR, or the default editor if not specified\. The default is \fB$BUNDLER_EDITOR\fR, \fB$VISUAL\fR, or \fB$EDITOR\fR\.
95
108
  .
@@ -92,6 +92,22 @@ configuration file using the following names:
92
92
  the answer will be saved in Bundler's global config for future `bundle gem`
93
93
  use.
94
94
 
95
+ * `--linter`, `--linter=rubocop`, `--linter=standard`:
96
+ Specify the linter and code formatter that Bundler should add to the
97
+ project's development dependencies. Acceptable values are `rubocop` and
98
+ `standard`. A configuration file will be generated in the project directory.
99
+ Given no option is specified:
100
+
101
+ When Bundler is configured to add a linter, this defaults to Bundler's
102
+ global config setting `gem.linter`.
103
+
104
+ When Bundler is configured not to add a linter, an interactive prompt
105
+ will be displayed and the answer will be used for the current rubygem project.
106
+
107
+ When Bundler is unconfigured, an interactive prompt will be displayed and
108
+ the answer will be saved in Bundler's global config for future `bundle gem`
109
+ use.
110
+
95
111
  * `-e`, `--edit[=EDITOR]`:
96
112
  Open the resulting GEM_NAME.gemspec in EDITOR, or the default editor if not
97
113
  specified. The default is `$BUNDLER_EDITOR`, `$VISUAL`, or `$EDITOR`.
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-INFO" "1" "June 2021" "" ""
4
+ .TH "BUNDLE\-INFO" "1" "December 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-info\fR \- Show information for the given gem in your bundle
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-INIT" "1" "June 2021" "" ""
4
+ .TH "BUNDLE\-INIT" "1" "December 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-init\fR \- Generates a Gemfile into the current working directory
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-INJECT" "1" "June 2021" "" ""
4
+ .TH "BUNDLE\-INJECT" "1" "December 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-inject\fR \- Add named gem(s) with version requirements to Gemfile
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-INSTALL" "1" "June 2021" "" ""
4
+ .TH "BUNDLE\-INSTALL" "1" "December 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-install\fR \- Install the dependencies specified in your Gemfile
@@ -63,7 +63,7 @@ The location of the Gemfile(5) which Bundler should use\. This defaults to a Gem
63
63
  .
64
64
  .TP
65
65
  \fB\-\-jobs=[<number>]\fR, \fB\-j[<number>]\fR
66
- The maximum number of parallel download and install jobs\. The default is \fB1\fR\.
66
+ The maximum number of parallel download and install jobs\. The default is the number of available processors\.
67
67
  .
68
68
  .TP
69
69
  \fB\-\-local\fR
@@ -100,8 +100,8 @@ automatically and that requires `bundler` to silently remember them. Since
100
100
  to this location.
101
101
 
102
102
  * `--jobs=[<number>]`, `-j[<number>]`:
103
- The maximum number of parallel download and install jobs. The default
104
- is `1`.
103
+ The maximum number of parallel download and install jobs. The default is the
104
+ number of available processors.
105
105
 
106
106
  * `--local`:
107
107
  Do not attempt to connect to `rubygems.org`. Instead, Bundler will use the
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-LIST" "1" "June 2021" "" ""
4
+ .TH "BUNDLE\-LIST" "1" "December 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-list\fR \- List all the gems in the bundle
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-LOCK" "1" "June 2021" "" ""
4
+ .TH "BUNDLE\-LOCK" "1" "December 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-lock\fR \- Creates / Updates a lockfile without installing
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-OPEN" "1" "June 2021" "" ""
4
+ .TH "BUNDLE\-OPEN" "1" "December 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-open\fR \- Opens the source directory for a gem in your bundle
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-OUTDATED" "1" "June 2021" "" ""
4
+ .TH "BUNDLE\-OUTDATED" "1" "December 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-outdated\fR \- List installed gems with newer versions available
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-PLATFORM" "1" "June 2021" "" ""
4
+ .TH "BUNDLE\-PLATFORM" "1" "December 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-platform\fR \- Displays platform compatibility information
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-PRISTINE" "1" "June 2021" "" ""
4
+ .TH "BUNDLE\-PRISTINE" "1" "December 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-pristine\fR \- Restores installed gems to their pristine condition
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-REMOVE" "1" "June 2021" "" ""
4
+ .TH "BUNDLE\-REMOVE" "1" "December 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-remove\fR \- Removes gems from the Gemfile