bundler 2.5.23 → 2.6.0

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 (148) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +59 -0
  3. data/bundler.gemspec +2 -2
  4. data/lib/bundler/build_metadata.rb +2 -2
  5. data/lib/bundler/cli/console.rb +0 -4
  6. data/lib/bundler/cli/doctor.rb +4 -4
  7. data/lib/bundler/cli/exec.rb +1 -0
  8. data/lib/bundler/cli/gem.rb +1 -1
  9. data/lib/bundler/cli/info.rb +2 -2
  10. data/lib/bundler/cli/inject.rb +1 -1
  11. data/lib/bundler/cli/install.rb +4 -0
  12. data/lib/bundler/cli/lock.rb +20 -1
  13. data/lib/bundler/cli/pristine.rb +1 -1
  14. data/lib/bundler/cli/show.rb +2 -2
  15. data/lib/bundler/cli.rb +22 -53
  16. data/lib/bundler/compact_index_client/cache_file.rb +0 -5
  17. data/lib/bundler/compact_index_client/updater.rb +0 -11
  18. data/lib/bundler/definition.rb +134 -61
  19. data/lib/bundler/dependency.rb +1 -1
  20. data/lib/bundler/dsl.rb +2 -13
  21. data/lib/bundler/endpoint_specification.rb +10 -1
  22. data/lib/bundler/errors.rb +10 -0
  23. data/lib/bundler/feature_flag.rb +1 -0
  24. data/lib/bundler/fetcher/compact_index.rb +1 -1
  25. data/lib/bundler/fetcher.rb +10 -3
  26. data/lib/bundler/gem_helpers.rb +21 -5
  27. data/lib/bundler/injector.rb +2 -2
  28. data/lib/bundler/installer/standalone.rb +2 -2
  29. data/lib/bundler/installer.rb +4 -38
  30. data/lib/bundler/lazy_specification.rb +65 -24
  31. data/lib/bundler/lockfile_parser.rb +9 -1
  32. data/lib/bundler/man/bundle-add.1 +13 -10
  33. data/lib/bundler/man/bundle-add.1.ronn +12 -9
  34. data/lib/bundler/man/bundle-binstubs.1 +7 -4
  35. data/lib/bundler/man/bundle-binstubs.1.ronn +6 -3
  36. data/lib/bundler/man/bundle-cache.1 +30 -2
  37. data/lib/bundler/man/bundle-cache.1.ronn +31 -2
  38. data/lib/bundler/man/bundle-check.1 +3 -3
  39. data/lib/bundler/man/bundle-check.1.ronn +4 -2
  40. data/lib/bundler/man/bundle-clean.1 +1 -1
  41. data/lib/bundler/man/bundle-config.1 +3 -1
  42. data/lib/bundler/man/bundle-config.1.ronn +2 -0
  43. data/lib/bundler/man/bundle-console.1 +2 -4
  44. data/lib/bundler/man/bundle-console.1.ronn +2 -7
  45. data/lib/bundler/man/bundle-doctor.1 +2 -2
  46. data/lib/bundler/man/bundle-doctor.1.ronn +1 -1
  47. data/lib/bundler/man/bundle-env.1 +9 -0
  48. data/lib/bundler/man/bundle-env.1.ronn +10 -0
  49. data/lib/bundler/man/bundle-exec.1 +5 -2
  50. data/lib/bundler/man/bundle-exec.1.ronn +4 -1
  51. data/lib/bundler/man/bundle-fund.1 +22 -0
  52. data/lib/bundler/man/bundle-fund.1.ronn +25 -0
  53. data/lib/bundler/man/bundle-gem.1 +17 -5
  54. data/lib/bundler/man/bundle-gem.1.ronn +27 -6
  55. data/lib/bundler/man/bundle-help.1 +1 -1
  56. data/lib/bundler/man/bundle-info.1 +5 -2
  57. data/lib/bundler/man/bundle-info.1.ronn +6 -2
  58. data/lib/bundler/man/bundle-init.1 +3 -3
  59. data/lib/bundler/man/bundle-init.1.ronn +3 -2
  60. data/lib/bundler/man/bundle-inject.1 +10 -2
  61. data/lib/bundler/man/bundle-inject.1.ronn +9 -1
  62. data/lib/bundler/man/bundle-install.1 +14 -11
  63. data/lib/bundler/man/bundle-install.1.ronn +21 -16
  64. data/lib/bundler/man/bundle-issue.1 +45 -0
  65. data/lib/bundler/man/bundle-issue.1.ronn +37 -0
  66. data/lib/bundler/man/bundle-licenses.1 +9 -0
  67. data/lib/bundler/man/bundle-licenses.1.ronn +10 -0
  68. data/lib/bundler/man/bundle-list.1 +1 -1
  69. data/lib/bundler/man/bundle-list.1.ronn +4 -1
  70. data/lib/bundler/man/bundle-lock.1 +21 -6
  71. data/lib/bundler/man/bundle-lock.1.ronn +25 -4
  72. data/lib/bundler/man/bundle-open.1 +2 -2
  73. data/lib/bundler/man/bundle-open.1.ronn +2 -1
  74. data/lib/bundler/man/bundle-outdated.1 +8 -5
  75. data/lib/bundler/man/bundle-outdated.1.ronn +8 -4
  76. data/lib/bundler/man/bundle-platform.1 +1 -1
  77. data/lib/bundler/man/bundle-plugin.1 +1 -1
  78. data/lib/bundler/man/bundle-pristine.1 +1 -1
  79. data/lib/bundler/man/bundle-pristine.1.ronn +1 -1
  80. data/lib/bundler/man/bundle-remove.1 +1 -1
  81. data/lib/bundler/man/bundle-remove.1.ronn +1 -1
  82. data/lib/bundler/man/bundle-show.1 +5 -2
  83. data/lib/bundler/man/bundle-show.1.ronn +4 -0
  84. data/lib/bundler/man/bundle-update.1 +13 -7
  85. data/lib/bundler/man/bundle-update.1.ronn +14 -6
  86. data/lib/bundler/man/bundle-version.1 +1 -1
  87. data/lib/bundler/man/bundle-viz.1 +4 -4
  88. data/lib/bundler/man/bundle-viz.1.ronn +7 -3
  89. data/lib/bundler/man/bundle.1 +1 -1
  90. data/lib/bundler/man/gemfile.5 +1 -1
  91. data/lib/bundler/man/index.txt +4 -0
  92. data/lib/bundler/materialization.rb +59 -0
  93. data/lib/bundler/plugin/events.rb +24 -0
  94. data/lib/bundler/plugin/installer.rb +1 -1
  95. data/lib/bundler/process_lock.rb +1 -1
  96. data/lib/bundler/remote_specification.rb +6 -1
  97. data/lib/bundler/resolver/base.rb +2 -6
  98. data/lib/bundler/resolver/candidate.rb +2 -2
  99. data/lib/bundler/resolver/spec_group.rb +4 -3
  100. data/lib/bundler/resolver.rb +5 -5
  101. data/lib/bundler/rubygems_ext.rb +17 -28
  102. data/lib/bundler/rubygems_gem_installer.rb +0 -1
  103. data/lib/bundler/rubygems_integration.rb +21 -11
  104. data/lib/bundler/runtime.rb +27 -7
  105. data/lib/bundler/self_manager.rb +2 -3
  106. data/lib/bundler/settings.rb +1 -0
  107. data/lib/bundler/shared_helpers.rb +2 -2
  108. data/lib/bundler/source/git/git_proxy.rb +0 -6
  109. data/lib/bundler/source/git.rb +56 -31
  110. data/lib/bundler/source/path.rb +2 -2
  111. data/lib/bundler/source_list.rb +1 -1
  112. data/lib/bundler/spec_set.rb +81 -56
  113. data/lib/bundler/stub_specification.rb +8 -0
  114. data/lib/bundler/templates/newgem/README.md.tt +1 -1
  115. data/lib/bundler/uri_credentials_filter.rb +1 -1
  116. data/lib/bundler/vendor/fileutils/COPYING +56 -0
  117. data/lib/bundler/vendor/fileutils/lib/fileutils.rb +15 -13
  118. data/lib/bundler/vendor/securerandom/COPYING +56 -0
  119. data/lib/bundler/vendor/securerandom/lib/securerandom.rb +5 -5
  120. data/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +3 -5
  121. data/lib/bundler/vendor/thor/lib/thor/group.rb +11 -0
  122. data/lib/bundler/vendor/thor/lib/thor/parser/argument.rb +1 -4
  123. data/lib/bundler/vendor/thor/lib/thor/parser/option.rb +2 -2
  124. data/lib/bundler/vendor/thor/lib/thor/parser/options.rb +2 -1
  125. data/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +9 -9
  126. data/lib/bundler/vendor/thor/lib/thor/shell/html.rb +1 -1
  127. data/lib/bundler/vendor/thor/lib/thor/shell/table_printer.rb +5 -21
  128. data/lib/bundler/vendor/thor/lib/thor/util.rb +1 -1
  129. data/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
  130. data/lib/bundler/vendor/thor/lib/thor.rb +11 -0
  131. data/lib/bundler/vendor/uri/COPYING +56 -0
  132. data/lib/bundler/vendor/uri/lib/uri/common.rb +37 -16
  133. data/lib/bundler/vendor/uri/lib/uri/file.rb +3 -3
  134. data/lib/bundler/vendor/uri/lib/uri/ftp.rb +1 -1
  135. data/lib/bundler/vendor/uri/lib/uri/generic.rb +16 -26
  136. data/lib/bundler/vendor/uri/lib/uri/http.rb +2 -2
  137. data/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +10 -3
  138. data/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +26 -3
  139. data/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
  140. data/lib/bundler/vendor/uri/lib/uri.rb +9 -9
  141. data/lib/bundler/vendored_securerandom.rb +0 -2
  142. data/lib/bundler/version.rb +1 -1
  143. data/lib/bundler.rb +37 -13
  144. metadata +18 -12
  145. data/lib/bundler/vendor/fileutils/LICENSE.txt +0 -22
  146. data/lib/bundler/vendor/securerandom/LICENSE.txt +0 -22
  147. data/lib/bundler/vendor/securerandom/lib/random/formatter.rb +0 -373
  148. data/lib/bundler/vendor/uri/LICENSE.txt +0 -22
@@ -77,12 +77,9 @@ module Bundler
77
77
  return
78
78
  end
79
79
 
80
- if resolve_if_needed(options)
80
+ if @definition.setup_domain!(options)
81
81
  ensure_specs_are_compatible!
82
- load_plugins
83
- options.delete(:jobs)
84
- else
85
- options[:jobs] = 1 # to avoid the overhead of Bundler::Worker
82
+ Bundler.load_plugins(@definition)
86
83
  end
87
84
  install(options)
88
85
 
@@ -197,18 +194,14 @@ module Bundler
197
194
  standalone = options[:standalone]
198
195
  force = options[:force]
199
196
  local = options[:local]
200
- jobs = installation_parallelization(options)
197
+ jobs = installation_parallelization
201
198
  spec_installations = ParallelInstaller.call(self, @definition.specs, jobs, standalone, force, local: local)
202
199
  spec_installations.each do |installation|
203
200
  post_install_messages[installation.name] = installation.post_install_message if installation.has_post_install_message?
204
201
  end
205
202
  end
206
203
 
207
- def installation_parallelization(options)
208
- if jobs = options.delete(:jobs)
209
- return jobs
210
- end
211
-
204
+ def installation_parallelization
212
205
  if jobs = Bundler.settings[:jobs]
213
206
  return jobs
214
207
  end
@@ -216,20 +209,6 @@ module Bundler
216
209
  Bundler.settings.processor_count
217
210
  end
218
211
 
219
- def load_plugins
220
- Gem.load_plugins
221
-
222
- requested_path_gems = @definition.requested_specs.select {|s| s.source.is_a?(Source::Path) }
223
- path_plugin_files = requested_path_gems.map do |spec|
224
- spec.matches_for_glob("rubygems_plugin#{Bundler.rubygems.suffix_pattern}")
225
- rescue TypeError
226
- error_message = "#{spec.name} #{spec.version} has an invalid gemspec"
227
- raise Gem::InvalidSpecificationException, error_message
228
- end.flatten
229
- Gem.load_plugin_files(path_plugin_files)
230
- Gem.load_env_plugins
231
- end
232
-
233
212
  def ensure_specs_are_compatible!
234
213
  @definition.specs.each do |spec|
235
214
  unless spec.matches_current_ruby?
@@ -243,19 +222,6 @@ module Bundler
243
222
  end
244
223
  end
245
224
 
246
- # returns whether or not a re-resolve was needed
247
- def resolve_if_needed(options)
248
- @definition.prefer_local! if options[:"prefer-local"]
249
-
250
- if options[:local] || (@definition.no_resolve_needed? && !@definition.missing_specs?)
251
- @definition.resolve_with_cache!
252
- false
253
- else
254
- @definition.resolve_remotely!
255
- true
256
- end
257
- end
258
-
259
225
  def lock
260
226
  @definition.lock
261
227
  end
@@ -8,14 +8,26 @@ module Bundler
8
8
  include MatchPlatform
9
9
  include ForcePlatform
10
10
 
11
- attr_reader :name, :version, :platform
11
+ attr_reader :name, :version, :platform, :materialization
12
12
  attr_accessor :source, :remote, :force_ruby_platform, :dependencies, :required_ruby_version, :required_rubygems_version
13
13
 
14
+ #
15
+ # For backwards compatibility with existing lockfiles, if the most specific
16
+ # locked platform is not a specific platform like x86_64-linux or
17
+ # universal-java-11, then we keep the previous behaviour of resolving the
18
+ # best platform variant at materiliazation time. For previous bundler
19
+ # versions (before 2.2.0) this was always the case (except when the lockfile
20
+ # only included non-ruby platforms), but we're also keeping this behaviour
21
+ # on newer bundlers unless users generate the lockfile from scratch or
22
+ # explicitly add a more specific platform.
23
+ #
24
+ attr_accessor :most_specific_locked_platform
25
+
14
26
  alias_method :runtime_dependencies, :dependencies
15
27
 
16
28
  def self.from_spec(s)
17
29
  lazy_spec = new(s.name, s.version, s.platform, s.source)
18
- lazy_spec.dependencies = s.dependencies
30
+ lazy_spec.dependencies = s.runtime_dependencies
19
31
  lazy_spec.required_ruby_version = s.required_ruby_version
20
32
  lazy_spec.required_rubygems_version = s.required_rubygems_version
21
33
  lazy_spec
@@ -33,6 +45,16 @@ module Bundler
33
45
  @source = source
34
46
 
35
47
  @force_ruby_platform = default_force_ruby_platform
48
+ @most_specific_locked_platform = nil
49
+ @materialization = nil
50
+ end
51
+
52
+ def missing?
53
+ @materialization == self
54
+ end
55
+
56
+ def incomplete?
57
+ @materialization.nil?
36
58
  end
37
59
 
38
60
  def source_changed?
@@ -99,16 +121,31 @@ module Bundler
99
121
  out
100
122
  end
101
123
 
102
- def materialize_for_installation
124
+ def materialize_strictly
103
125
  source.local!
104
126
 
105
- matching_specs = source.specs.search(use_exact_resolved_specifications? ? self : [name, version])
127
+ matching_specs = source.specs.search(self)
106
128
  return self if matching_specs.empty?
107
129
 
108
- candidates = if use_exact_resolved_specifications?
109
- matching_specs
130
+ __materialize__(matching_specs)
131
+ end
132
+
133
+ def materialized_for_installation
134
+ @materialization = materialize_for_installation
135
+
136
+ self unless incomplete?
137
+ end
138
+
139
+ def materialize_for_installation
140
+ source.local!
141
+
142
+ if use_exact_resolved_specifications?
143
+ materialize_strictly
110
144
  else
111
- target_platform = ruby_platform_materializes_to_ruby_platform? ? platform : local_platform
145
+ matching_specs = source.specs.search([name, version])
146
+ return self if matching_specs.empty?
147
+
148
+ target_platform = source.is_a?(Source::Path) ? platform : local_platform
112
149
 
113
150
  installable_candidates = GemHelpers.select_best_platform_match(matching_specs, target_platform)
114
151
 
@@ -119,10 +156,8 @@ module Bundler
119
156
  installable_candidates = GemHelpers.select_best_platform_match(matching_specs, platform)
120
157
  end
121
158
 
122
- installable_candidates
159
+ __materialize__(installable_candidates)
123
160
  end
124
-
125
- __materialize__(candidates)
126
161
  end
127
162
 
128
163
  # If in frozen mode, we fallback to a non-installable candidate because by
@@ -136,12 +171,28 @@ module Bundler
136
171
  end
137
172
  if search.nil? && fallback_to_non_installable
138
173
  search = candidates.last
139
- else
140
- search.dependencies = dependencies if search && search.full_name == full_name && (search.is_a?(RemoteSpecification) || search.is_a?(EndpointSpecification))
174
+ elsif search && search.full_name == full_name
175
+ # We don't validate locally installed dependencies but accept what's in
176
+ # the lockfile instead for performance, since loading locally installed
177
+ # dependencies would mean evaluating all gemspecs, which would affect
178
+ # `bundler/setup` performance
179
+ if search.is_a?(StubSpecification)
180
+ search.dependencies = dependencies
181
+ else
182
+ if !source.is_a?(Source::Path) && search.runtime_dependencies.sort != dependencies.sort
183
+ raise IncorrectLockfileDependencies.new(self)
184
+ end
185
+
186
+ search.locked_platform = platform if search.instance_of?(RemoteSpecification) || search.instance_of?(EndpointSpecification)
187
+ end
141
188
  end
142
189
  search
143
190
  end
144
191
 
192
+ def inspect
193
+ "#<#{self.class} @name=\"#{name}\" (#{full_name.delete_prefix("#{name}-")})>"
194
+ end
195
+
145
196
  def to_s
146
197
  lock_name
147
198
  end
@@ -158,23 +209,13 @@ module Bundler
158
209
  private
159
210
 
160
211
  def use_exact_resolved_specifications?
161
- @use_exact_resolved_specifications ||= !source.is_a?(Source::Path) && ruby_platform_materializes_to_ruby_platform?
212
+ !source.is_a?(Source::Path) && ruby_platform_materializes_to_ruby_platform?
162
213
  end
163
214
 
164
- #
165
- # For backwards compatibility with existing lockfiles, if the most specific
166
- # locked platform is not a specific platform like x86_64-linux or
167
- # universal-java-11, then we keep the previous behaviour of resolving the
168
- # best platform variant at materiliazation time. For previous bundler
169
- # versions (before 2.2.0) this was always the case (except when the lockfile
170
- # only included non-ruby platforms), but we're also keeping this behaviour
171
- # on newer bundlers unless users generate the lockfile from scratch or
172
- # explicitly add a more specific platform.
173
- #
174
215
  def ruby_platform_materializes_to_ruby_platform?
175
216
  generic_platform = generic_local_platform == Gem::Platform::JAVA ? Gem::Platform::JAVA : Gem::Platform::RUBY
176
217
 
177
- !Bundler.most_specific_locked_platform?(generic_platform) || force_ruby_platform || Bundler.settings[:force_ruby_platform]
218
+ (most_specific_locked_platform != generic_platform) || force_ruby_platform || Bundler.settings[:force_ruby_platform]
178
219
  end
179
220
  end
180
221
  end
@@ -2,6 +2,8 @@
2
2
 
3
3
  module Bundler
4
4
  class LockfileParser
5
+ include GemHelpers
6
+
5
7
  class Position
6
8
  attr_reader :line, :column
7
9
  def initialize(line, column)
@@ -29,6 +31,7 @@ module Bundler
29
31
  :dependencies,
30
32
  :specs,
31
33
  :platforms,
34
+ :most_specific_locked_platform,
32
35
  :bundler_version,
33
36
  :ruby_version,
34
37
  :checksums,
@@ -136,7 +139,12 @@ module Bundler
136
139
  end
137
140
  @pos.advance!(line)
138
141
  end
139
- @specs = @specs.values.sort_by!(&:full_name)
142
+ @most_specific_locked_platform = @platforms.min_by do |bundle_platform|
143
+ platform_specificity_match(bundle_platform, local_platform)
144
+ end
145
+ @specs = @specs.values.sort_by!(&:full_name).each do |spec|
146
+ spec.most_specific_locked_platform = @most_specific_locked_platform
147
+ end
140
148
  rescue ArgumentError => e
141
149
  Bundler.ui.debug(e)
142
150
  raise LockfileError, "Your lockfile is unreadable. Run `rm #{@lockfile_path}` " \
@@ -1,6 +1,6 @@
1
1
  .\" generated with nRonn/v0.11.1
2
2
  .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-ADD" "1" "October 2024" ""
3
+ .TH "BUNDLE\-ADD" "1" "December 2024" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-add\fR \- Add gem to the Gemfile and run bundle install
6
6
  .SH "SYNOPSIS"
@@ -9,33 +9,36 @@
9
9
  Adds the named gem to the [\fBGemfile(5)\fR][Gemfile(5)] and run \fBbundle install\fR\. \fBbundle install\fR can be avoided by using the flag \fB\-\-skip\-install\fR\.
10
10
  .SH "OPTIONS"
11
11
  .TP
12
- \fB\-\-version\fR, \fB\-v\fR
12
+ \fB\-\-version=VERSION\fR, \fB\-v=VERSION\fR
13
13
  Specify version requirements(s) for the added gem\.
14
14
  .TP
15
- \fB\-\-group\fR, \fB\-g\fR
15
+ \fB\-\-group=GROUP\fR, \fB\-g=GROUP\fR
16
16
  Specify the group(s) for the added gem\. Multiple groups should be separated by commas\.
17
17
  .TP
18
- \fB\-\-source\fR, \fB\-s\fR
18
+ \fB\-\-source=SOURCE\fR, \fB\-s=SOURCE\fR
19
19
  Specify the source for the added gem\.
20
20
  .TP
21
- \fB\-\-require\fR, \fB\-r\fR
21
+ \fB\-\-require=REQUIRE\fR, \fB\-r=REQUIRE\fR
22
22
  Adds require path to gem\. Provide false, or a path as a string\.
23
23
  .TP
24
- \fB\-\-path\fR
24
+ \fB\-\-path=PATH\fR
25
25
  Specify the file system path for the added gem\.
26
26
  .TP
27
- \fB\-\-git\fR
27
+ \fB\-\-git=GIT\fR
28
28
  Specify the git source for the added gem\.
29
29
  .TP
30
- \fB\-\-github\fR
30
+ \fB\-\-github=GITHUB\fR
31
31
  Specify the github source for the added gem\.
32
32
  .TP
33
- \fB\-\-branch\fR
33
+ \fB\-\-branch=BRANCH\fR
34
34
  Specify the git branch for the added gem\.
35
35
  .TP
36
- \fB\-\-ref\fR
36
+ \fB\-\-ref=REF\fR
37
37
  Specify the git ref for the added gem\.
38
38
  .TP
39
+ \fB\-\-glob=GLOB\fR
40
+ Specify the location of a dependency's \.gemspec, expanded within Ruby (single quotes recommended)\.
41
+ .TP
39
42
  \fB\-\-quiet\fR
40
43
  Do not print progress information to the standard output\.
41
44
  .TP
@@ -14,33 +14,36 @@ Adds the named gem to the [`Gemfile(5)`][Gemfile(5)] and run `bundle install`.
14
14
 
15
15
  ## OPTIONS
16
16
 
17
- * `--version`, `-v`:
17
+ * `--version=VERSION`, `-v=VERSION`:
18
18
  Specify version requirements(s) for the added gem.
19
19
 
20
- * `--group`, `-g`:
20
+ * `--group=GROUP`, `-g=GROUP`:
21
21
  Specify the group(s) for the added gem. Multiple groups should be separated by commas.
22
22
 
23
- * `--source`, `-s`:
23
+ * `--source=SOURCE`, `-s=SOURCE`:
24
24
  Specify the source for the added gem.
25
25
 
26
- * `--require`, `-r`:
26
+ * `--require=REQUIRE`, `-r=REQUIRE`:
27
27
  Adds require path to gem. Provide false, or a path as a string.
28
28
 
29
- * `--path`:
29
+ * `--path=PATH`:
30
30
  Specify the file system path for the added gem.
31
31
 
32
- * `--git`:
32
+ * `--git=GIT`:
33
33
  Specify the git source for the added gem.
34
34
 
35
- * `--github`:
35
+ * `--github=GITHUB`:
36
36
  Specify the github source for the added gem.
37
37
 
38
- * `--branch`:
38
+ * `--branch=BRANCH`:
39
39
  Specify the git branch for the added gem.
40
40
 
41
- * `--ref`:
41
+ * `--ref=REF`:
42
42
  Specify the git ref for the added gem.
43
43
 
44
+ * `--glob=GLOB`:
45
+ Specify the location of a dependency's .gemspec, expanded within Ruby (single quotes recommended).
46
+
44
47
  * `--quiet`:
45
48
  Do not print progress information to the standard output.
46
49
 
@@ -1,10 +1,10 @@
1
1
  .\" generated with nRonn/v0.11.1
2
2
  .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-BINSTUBS" "1" "October 2024" ""
3
+ .TH "BUNDLE\-BINSTUBS" "1" "December 2024" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-binstubs\fR \- Install the binstubs of the listed gems
6
6
  .SH "SYNOPSIS"
7
- \fBbundle binstubs\fR \fIGEM_NAME\fR [\-\-force] [\-\-path PATH] [\-\-standalone]
7
+ \fBbundle binstubs\fR \fIGEM_NAME\fR [\-\-force] [\-\-path PATH] [\-\-standalone] [\-\-all\-platforms]
8
8
  .SH "DESCRIPTION"
9
9
  Binstubs are scripts that wrap around executables\. Bundler creates a small Ruby file (a binstub) that loads Bundler, runs the command, and puts it into \fBbin/\fR\. Binstubs are a shortcut\-or alternative\- to always using \fBbundle exec\fR\. This gives you a file that can be run directly, and one that will always run the correct gem version used by the application\.
10
10
  .P
@@ -16,15 +16,18 @@ This command generates binstubs for executables in \fBGEM_NAME\fR\. Binstubs are
16
16
  \fB\-\-force\fR
17
17
  Overwrite existing binstubs if they exist\.
18
18
  .TP
19
- \fB\-\-path\fR
19
+ \fB\-\-path[=PATH]\fR
20
20
  The location to install the specified binstubs to\. This defaults to \fBbin\fR\.
21
21
  .TP
22
22
  \fB\-\-standalone\fR
23
23
  Makes binstubs that can work without depending on Rubygems or Bundler at runtime\.
24
24
  .TP
25
- \fB\-\-shebang\fR
25
+ \fB\-\-shebang=SHEBANG\fR
26
26
  Specify a different shebang executable name than the default (default 'ruby')
27
27
  .TP
28
28
  \fB\-\-all\fR
29
29
  Create binstubs for all gems in the bundle\.
30
+ .TP
31
+ \fB\-\-all\-platforms\fR
32
+ Install binstubs for all platforms\.
30
33
 
@@ -3,7 +3,7 @@ bundle-binstubs(1) -- Install the binstubs of the listed gems
3
3
 
4
4
  ## SYNOPSIS
5
5
 
6
- `bundle binstubs` <GEM_NAME> [--force] [--path PATH] [--standalone]
6
+ `bundle binstubs` <GEM_NAME> [--force] [--path PATH] [--standalone] [--all-platforms]
7
7
 
8
8
  ## DESCRIPTION
9
9
 
@@ -27,15 +27,18 @@ Calling binstubs with [GEM [GEM]] will create binstubs for all given gems.
27
27
  * `--force`:
28
28
  Overwrite existing binstubs if they exist.
29
29
 
30
- * `--path`:
30
+ * `--path[=PATH]`:
31
31
  The location to install the specified binstubs to. This defaults to `bin`.
32
32
 
33
33
  * `--standalone`:
34
34
  Makes binstubs that can work without depending on Rubygems or Bundler at
35
35
  runtime.
36
36
 
37
- * `--shebang`:
37
+ * `--shebang=SHEBANG`:
38
38
  Specify a different shebang executable name than the default (default 'ruby')
39
39
 
40
40
  * `--all`:
41
41
  Create binstubs for all gems in the bundle.
42
+
43
+ * `--all-platforms`:
44
+ Install binstubs for all platforms.
@@ -1,14 +1,42 @@
1
1
  .\" generated with nRonn/v0.11.1
2
2
  .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-CACHE" "1" "October 2024" ""
3
+ .TH "BUNDLE\-CACHE" "1" "December 2024" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-cache\fR \- Package your needed \fB\.gem\fR files into your application
6
6
  .SH "SYNOPSIS"
7
- \fBbundle cache\fR
7
+ \fBbundle cache\fR [\fIOPTIONS\fR]
8
8
  .P
9
9
  alias: \fBpackage\fR, \fBpack\fR
10
10
  .SH "DESCRIPTION"
11
11
  Copy all of the \fB\.gem\fR files needed to run the application into the \fBvendor/cache\fR directory\. In the future, when running \fBbundle install(1)\fR \fIbundle\-install\.1\.html\fR, use the gems in the cache in preference to the ones on \fBrubygems\.org\fR\.
12
+ .SH "OPTIONS"
13
+ .TP
14
+ \fB\-\-all\fR
15
+ Include all sources (including path and git)\.
16
+ .TP
17
+ \fB\-\-all\-platforms\fR
18
+ Include gems for all platforms present in the lockfile, not only the current one\.
19
+ .TP
20
+ \fB\-\-cache\-path=CACHE\-PATH\fR
21
+ Specify a different cache path than the default (vendor/cache)\.
22
+ .TP
23
+ \fB\-\-gemfile=GEMFILE\fR
24
+ Use the specified gemfile instead of Gemfile\.
25
+ .TP
26
+ \fB\-\-no\-install\fR
27
+ Don't install the gems, only update the cache\.
28
+ .TP
29
+ \fB\-\-no\-prune\fR
30
+ Don't remove stale gems from the cache\.
31
+ .TP
32
+ \fB\-\-path=PATH\fR
33
+ Specify a different path than the system default ($BUNDLE_PATH or $GEM_HOME)\.
34
+ .TP
35
+ \fB\-\-quiet\fR
36
+ Only output warnings and errors\.
37
+ .TP
38
+ \fB\-\-frozen\fR
39
+ Do not allow the Gemfile\.lock to be updated after this bundle cache operation's install\.
12
40
  .SH "GIT AND PATH GEMS"
13
41
  The \fBbundle cache\fR command can also package \fB:git\fR and \fB:path\fR dependencies besides \.gem files\. This needs to be explicitly enabled via the \fB\-\-all\fR option\. Once used, the \fB\-\-all\fR option will be remembered\.
14
42
  .SH "SUPPORT FOR MULTIPLE PLATFORMS"
@@ -1,9 +1,9 @@
1
1
  bundle-cache(1) -- Package your needed `.gem` files into your application
2
- ===========================================================================
2
+ =========================================================================
3
3
 
4
4
  ## SYNOPSIS
5
5
 
6
- `bundle cache`
6
+ `bundle cache` [*OPTIONS*]
7
7
 
8
8
  alias: `package`, `pack`
9
9
 
@@ -13,6 +13,35 @@ Copy all of the `.gem` files needed to run the application into the
13
13
  `vendor/cache` directory. In the future, when running [`bundle install(1)`](bundle-install.1.html),
14
14
  use the gems in the cache in preference to the ones on `rubygems.org`.
15
15
 
16
+ ## OPTIONS
17
+
18
+ * `--all`:
19
+ Include all sources (including path and git).
20
+
21
+ * `--all-platforms`:
22
+ Include gems for all platforms present in the lockfile, not only the current one.
23
+
24
+ * `--cache-path=CACHE-PATH`:
25
+ Specify a different cache path than the default (vendor/cache).
26
+
27
+ * `--gemfile=GEMFILE`:
28
+ Use the specified gemfile instead of Gemfile.
29
+
30
+ * `--no-install`:
31
+ Don't install the gems, only update the cache.
32
+
33
+ * `--no-prune`:
34
+ Don't remove stale gems from the cache.
35
+
36
+ * `--path=PATH`:
37
+ Specify a different path than the system default ($BUNDLE_PATH or $GEM_HOME).
38
+
39
+ * `--quiet`:
40
+ Only output warnings and errors.
41
+
42
+ * `--frozen`:
43
+ Do not allow the Gemfile.lock to be updated after this bundle cache operation's install.
44
+
16
45
  ## GIT AND PATH GEMS
17
46
 
18
47
  The `bundle cache` command can also package `:git` and `:path` dependencies
@@ -1,6 +1,6 @@
1
1
  .\" generated with nRonn/v0.11.1
2
2
  .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-CHECK" "1" "October 2024" ""
3
+ .TH "BUNDLE\-CHECK" "1" "December 2024" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-check\fR \- Verifies if dependencies are satisfied by installed gems
6
6
  .SH "SYNOPSIS"
@@ -16,9 +16,9 @@ If the lockfile needs to be updated then it will be resolved using the gems inst
16
16
  \fB\-\-dry\-run\fR
17
17
  Locks the [\fBGemfile(5)\fR][Gemfile(5)] before running the command\.
18
18
  .TP
19
- \fB\-\-gemfile\fR
19
+ \fB\-\-gemfile=GEMFILE\fR
20
20
  Use the specified gemfile instead of the [\fBGemfile(5)\fR][Gemfile(5)]\.
21
21
  .TP
22
- \fB\-\-path\fR
22
+ \fB\-\-path=PATH\fR
23
23
  Specify a different path than the system default (\fB$BUNDLE_PATH\fR or \fB$GEM_HOME\fR)\. Bundler will remember this value for future installs on this machine\.
24
24
 
@@ -22,8 +22,10 @@ installed on the local machine, if they satisfy the requirements.
22
22
 
23
23
  * `--dry-run`:
24
24
  Locks the [`Gemfile(5)`][Gemfile(5)] before running the command.
25
- * `--gemfile`:
25
+
26
+ * `--gemfile=GEMFILE`:
26
27
  Use the specified gemfile instead of the [`Gemfile(5)`][Gemfile(5)].
27
- * `--path`:
28
+
29
+ * `--path=PATH`:
28
30
  Specify a different path than the system default (`$BUNDLE_PATH` or `$GEM_HOME`).
29
31
  Bundler will remember this value for future installs on this machine.
@@ -1,6 +1,6 @@
1
1
  .\" generated with nRonn/v0.11.1
2
2
  .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-CLEAN" "1" "October 2024" ""
3
+ .TH "BUNDLE\-CLEAN" "1" "December 2024" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-clean\fR \- Cleans up unused gems in your bundler directory
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with nRonn/v0.11.1
2
2
  .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-CONFIG" "1" "October 2024" ""
3
+ .TH "BUNDLE\-CONFIG" "1" "December 2024" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-config\fR \- Set bundler configuration options
6
6
  .SH "SYNOPSIS"
@@ -149,6 +149,8 @@ The following is a list of all configuration keys and their purpose\. You can le
149
149
  .IP "\(bu" 4
150
150
  \fBjobs\fR (\fBBUNDLE_JOBS\fR): The number of gems Bundler can install in parallel\. Defaults to the number of available processors\.
151
151
  .IP "\(bu" 4
152
+ \fBlockfile_checksums\fR (\fBBUNDLE_LOCKFILE_CHECKSUMS\fR): Whether Bundler should include a checksums section in new lockfiles, to protect from compromised gem sources\.
153
+ .IP "\(bu" 4
152
154
  \fBno_install\fR (\fBBUNDLE_NO_INSTALL\fR): Whether \fBbundle package\fR should skip installing gems\.
153
155
  .IP "\(bu" 4
154
156
  \fBno_prune\fR (\fBBUNDLE_NO_PRUNE\fR): Whether Bundler should leave outdated gems unpruned when caching\.
@@ -217,6 +217,8 @@ learn more about their operation in [bundle install(1)](bundle-install.1.html).
217
217
  * `jobs` (`BUNDLE_JOBS`):
218
218
  The number of gems Bundler can install in parallel. Defaults to the number of
219
219
  available processors.
220
+ * `lockfile_checksums` (`BUNDLE_LOCKFILE_CHECKSUMS`):
221
+ Whether Bundler should include a checksums section in new lockfiles, to protect from compromised gem sources.
220
222
  * `no_install` (`BUNDLE_NO_INSTALL`):
221
223
  Whether `bundle package` should skip installing gems.
222
224
  * `no_prune` (`BUNDLE_NO_PRUNE`):
@@ -1,8 +1,8 @@
1
1
  .\" generated with nRonn/v0.11.1
2
2
  .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-CONSOLE" "1" "October 2024" ""
3
+ .TH "BUNDLE\-CONSOLE" "1" "December 2024" ""
4
4
  .SH "NAME"
5
- \fBbundle\-console\fR \- Deprecated way to open an IRB session with the bundle pre\-loaded
5
+ \fBbundle\-console\fR \- Open an IRB session with the bundle pre\-loaded
6
6
  .SH "SYNOPSIS"
7
7
  \fBbundle console\fR [GROUP]
8
8
  .SH "DESCRIPTION"
@@ -29,7 +29,5 @@ $ bundle console
29
29
  Resolving dependencies\|\.\|\.\|\.
30
30
  [1] pry(main)>
31
31
  .fi
32
- .SH "NOTES"
33
- This command was deprecated in Bundler 2\.1 and will be removed in 3\.0\. Use \fBbin/console\fR script, which can be generated by \fBbundle gem <NAME>\fR\.
34
32
  .SH "SEE ALSO"
35
33
  Gemfile(5) \fIhttps://bundler\.io/man/gemfile\.5\.html\fR
@@ -1,5 +1,5 @@
1
- bundle-console(1) -- Deprecated way to open an IRB session with the bundle pre-loaded
2
- =====================================================================================
1
+ bundle-console(1) -- Open an IRB session with the bundle pre-loaded
2
+ ===================================================================
3
3
 
4
4
  ## SYNOPSIS
5
5
 
@@ -34,11 +34,6 @@ the shell from the following:
34
34
  Resolving dependencies...
35
35
  [1] pry(main)>
36
36
 
37
- ## NOTES
38
-
39
- This command was deprecated in Bundler 2.1 and will be removed in 3.0.
40
- Use `bin/console` script, which can be generated by `bundle gem <NAME>`.
41
-
42
37
  ## SEE ALSO
43
38
 
44
39
  [Gemfile(5)](https://bundler.io/man/gemfile.5.html)
@@ -1,6 +1,6 @@
1
1
  .\" generated with nRonn/v0.11.1
2
2
  .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-DOCTOR" "1" "October 2024" ""
3
+ .TH "BUNDLE\-DOCTOR" "1" "December 2024" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-doctor\fR \- Checks the bundle for common problems
6
6
  .SH "SYNOPSIS"
@@ -25,6 +25,6 @@ Missing dependencies
25
25
  \fB\-\-quiet\fR
26
26
  Only output warnings and errors\.
27
27
  .TP
28
- \fB\-\-gemfile=<gemfile>\fR
28
+ \fB\-\-gemfile=GEMFILE\fR
29
29
  The location of the Gemfile(5) which Bundler should use\. This defaults to a Gemfile(5) in the current working directory\. In general, Bundler will assume that the location of the Gemfile(5) is also the project's root and will try to find \fBGemfile\.lock\fR and \fBvendor/cache\fR relative to this location\.
30
30
 
@@ -25,7 +25,7 @@ Examples of common problems caught by bundle-doctor include:
25
25
  * `--quiet`:
26
26
  Only output warnings and errors.
27
27
 
28
- * `--gemfile=<gemfile>`:
28
+ * `--gemfile=GEMFILE`:
29
29
  The location of the Gemfile(5) which Bundler should use. This defaults
30
30
  to a Gemfile(5) in the current working directory. In general, Bundler
31
31
  will assume that the location of the Gemfile(5) is also the project's
@@ -0,0 +1,9 @@
1
+ .\" generated with nRonn/v0.11.1
2
+ .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
+ .TH "BUNDLE\-ENV" "1" "December 2024" ""
4
+ .SH "NAME"
5
+ \fBbundle\-env\fR \- Print information about the environment Bundler is running under
6
+ .SH "SYNOPSIS"
7
+ \fBbundle env\fR
8
+ .SH "DESCRIPTION"
9
+ Prints information about the environment Bundler is running under\.