bundler 2.5.23 → 2.6.0

Sign up to get free protection for your applications and to get access to all the features.
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\.