bundler 4.0.21 → 4.1.0.beta1
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.
- checksums.yaml +4 -4
- data/{lib/bundler/vendor/connection_pool/LICENSE → MIT.txt} +8 -6
- data/bundler.gemspec +23 -6
- data/lib/bundler/build_metadata.rb +2 -2
- data/lib/bundler/checksum.rb +40 -25
- data/lib/bundler/ci_detector.rb +1 -1
- data/lib/bundler/cli/add.rb +3 -4
- data/lib/bundler/cli/cache.rb +4 -0
- data/lib/bundler/cli/clean.rb +5 -0
- data/lib/bundler/cli/common.rb +37 -1
- data/lib/bundler/cli/config.rb +4 -2
- data/lib/bundler/cli/gem.rb +0 -17
- data/lib/bundler/cli/install.rb +4 -5
- data/lib/bundler/cli/lock.rb +1 -2
- data/lib/bundler/cli/outdated.rb +8 -3
- data/lib/bundler/cli/pristine.rb +2 -1
- data/lib/bundler/cli/update.rb +21 -12
- data/lib/bundler/cli.rb +14 -11
- data/lib/bundler/definition.rb +61 -24
- data/lib/bundler/dependency.rb +4 -0
- data/lib/bundler/dsl.rb +77 -11
- data/lib/bundler/endpoint_specification.rb +51 -14
- data/lib/bundler/env.rb +7 -24
- data/lib/bundler/errors.rb +34 -5
- data/lib/bundler/fetcher/compact_index.rb +14 -5
- data/lib/bundler/fetcher/connection_pools.rb +150 -0
- data/lib/bundler/fetcher/downloader.rb +31 -16
- data/lib/bundler/fetcher.rb +8 -47
- data/lib/bundler/injector.rb +3 -3
- data/lib/bundler/inline.rb +44 -4
- data/lib/bundler/installer/parallel_installer.rb +25 -30
- data/lib/bundler/installer.rb +20 -6
- data/lib/bundler/lazy_specification.rb +44 -17
- data/lib/bundler/lockfile_generator.rb +24 -2
- data/lib/bundler/lockfile_parser.rb +43 -5
- data/lib/bundler/man/bundle-add.1 +7 -4
- data/lib/bundler/man/bundle-add.1.ronn +8 -4
- data/lib/bundler/man/bundle-binstubs.1 +1 -1
- data/lib/bundler/man/bundle-cache.1 +2 -2
- data/lib/bundler/man/bundle-cache.1.ronn +2 -2
- data/lib/bundler/man/bundle-check.1 +1 -1
- data/lib/bundler/man/bundle-clean.1 +1 -1
- data/lib/bundler/man/bundle-config.1 +38 -6
- data/lib/bundler/man/bundle-config.1.ronn +143 -10
- data/lib/bundler/man/bundle-console.1 +1 -1
- data/lib/bundler/man/bundle-doctor.1 +1 -1
- data/lib/bundler/man/bundle-env.1 +1 -1
- data/lib/bundler/man/bundle-exec.1 +1 -1
- data/lib/bundler/man/bundle-fund.1 +1 -1
- data/lib/bundler/man/bundle-gem.1 +1 -1
- data/lib/bundler/man/bundle-help.1 +1 -1
- data/lib/bundler/man/bundle-info.1 +1 -1
- data/lib/bundler/man/bundle-init.1 +1 -1
- data/lib/bundler/man/bundle-install.1 +2 -2
- data/lib/bundler/man/bundle-install.1.ronn +4 -4
- data/lib/bundler/man/bundle-issue.1 +1 -1
- data/lib/bundler/man/bundle-licenses.1 +1 -1
- data/lib/bundler/man/bundle-list.1 +1 -1
- data/lib/bundler/man/bundle-lock.1 +3 -3
- data/lib/bundler/man/bundle-lock.1.ronn +5 -5
- data/lib/bundler/man/bundle-open.1 +1 -1
- data/lib/bundler/man/bundle-outdated.1 +1 -1
- data/lib/bundler/man/bundle-platform.1 +1 -1
- data/lib/bundler/man/bundle-plugin.1 +1 -1
- data/lib/bundler/man/bundle-pristine.1 +1 -1
- data/lib/bundler/man/bundle-remove.1 +1 -1
- data/lib/bundler/man/bundle-show.1 +1 -1
- data/lib/bundler/man/bundle-update.1 +3 -3
- data/lib/bundler/man/bundle-update.1.ronn +3 -5
- data/lib/bundler/man/bundle-version.1 +1 -1
- data/lib/bundler/man/bundle.1 +1 -1
- data/lib/bundler/man/gemfile.5 +45 -1
- data/lib/bundler/man/gemfile.5.ronn +53 -0
- data/lib/bundler/match_metadata.rb +20 -0
- data/lib/bundler/match_platform.rb +25 -2
- data/lib/bundler/match_remote_metadata.rb +21 -6
- data/lib/bundler/materialization.rb +2 -1
- data/lib/bundler/override.rb +69 -0
- data/lib/bundler/plugin/dsl.rb +3 -5
- data/lib/bundler/plugin/events.rb +55 -13
- data/lib/bundler/plugin/index.rb +87 -11
- data/lib/bundler/plugin/installer/path.rb +1 -1
- data/lib/bundler/plugin/installer.rb +13 -5
- data/lib/bundler/plugin.rb +58 -30
- data/lib/bundler/remote_specification.rb +6 -3
- data/lib/bundler/resolver/base.rb +2 -1
- data/lib/bundler/resolver/incompatibility.rb +1 -1
- data/lib/bundler/resolver.rb +73 -23
- data/lib/bundler/ruby_version.rb +0 -2
- data/lib/bundler/rubygems_ext.rb +71 -1
- data/lib/bundler/rubygems_gem_installer.rb +41 -2
- data/lib/bundler/rubygems_integration.rb +7 -2
- data/lib/bundler/runtime.rb +69 -2
- data/lib/bundler/self_manager.rb +9 -15
- data/lib/bundler/settings.rb +373 -30
- data/lib/bundler/shared_helpers.rb +2 -1
- data/lib/bundler/source/git/git_proxy.rb +2 -10
- data/lib/bundler/source/git.rb +15 -6
- data/lib/bundler/source/path/installer.rb +1 -1
- data/lib/bundler/source/rubygems/remote.rb +10 -5
- data/lib/bundler/source/rubygems.rb +48 -12
- data/lib/bundler/spec_set.rb +16 -4
- data/lib/bundler/stub_specification.rb +2 -1
- data/lib/bundler/templates/newgem/Gemfile.tt +4 -4
- data/lib/bundler/templates/newgem/newgem.gemspec.tt +3 -3
- data/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +1 -1
- data/lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt +1 -1
- data/lib/bundler/ui/shell.rb +0 -4
- data/lib/bundler/ui/silent.rb +0 -4
- data/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +35 -2
- data/lib/bundler/vendor/thor/lib/thor/base.rb +2 -1
- data/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +14 -6
- data/lib/bundler/vendor/thor/lib/thor/shell/color.rb +2 -0
- data/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor.rb +34 -1
- data/lib/bundler/vendored_pub_grub.rb +5 -2
- data/lib/bundler/vendored_securerandom.rb +11 -8
- data/lib/bundler/vendored_uri.rb +14 -14
- data/lib/bundler/version.rb +1 -1
- data/lib/bundler/worker.rb +3 -2
- data/lib/bundler.rb +1 -1
- data/lib/rubygems/compact_index_client/cache.rb +122 -0
- data/lib/rubygems/compact_index_client/cache_file.rb +147 -0
- data/lib/rubygems/compact_index_client/http_fetcher.rb +88 -0
- data/lib/rubygems/compact_index_client/parser.rb +90 -0
- data/lib/rubygems/compact_index_client/updater.rb +113 -0
- data/lib/rubygems/compact_index_client.rb +111 -0
- data/lib/rubygems/cooldown_settings.rb +57 -0
- data/lib/rubygems/credential_store/native/linux.rb +97 -0
- data/lib/rubygems/credential_store/native/macos.rb +88 -0
- data/lib/rubygems/credential_store/native/windows.rb +130 -0
- data/lib/rubygems/credential_store.rb +332 -0
- data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/assignment.rb +1 -1
- data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +7 -7
- data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/failure_writer.rb +1 -1
- data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/incompatibility.rb +4 -4
- data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/package.rb +1 -1
- data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/partial_solution.rb +1 -1
- data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/rubygems.rb +3 -3
- data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/solve_failure.rb +1 -1
- data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/static_package_source.rb +3 -3
- data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/strategy.rb +2 -2
- data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/term.rb +1 -1
- data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/version.rb +1 -1
- data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/version_constraint.rb +3 -3
- data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/version_range.rb +1 -1
- data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/version_solver.rb +2 -2
- data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/version_union.rb +1 -1
- data/lib/rubygems/vendor/pub_grub/lib/pub_grub.rb +57 -0
- data/lib/{bundler → rubygems}/vendor/securerandom/lib/securerandom.rb +10 -6
- data/lib/{bundler → rubygems}/vendor/uri/lib/uri/common.rb +119 -119
- data/lib/{bundler → rubygems}/vendor/uri/lib/uri/file.rb +13 -13
- data/lib/{bundler → rubygems}/vendor/uri/lib/uri/ftp.rb +24 -24
- data/lib/{bundler → rubygems}/vendor/uri/lib/uri/generic.rb +132 -132
- data/lib/{bundler → rubygems}/vendor/uri/lib/uri/http.rb +18 -18
- data/lib/{bundler → rubygems}/vendor/uri/lib/uri/https.rb +4 -4
- data/lib/{bundler → rubygems}/vendor/uri/lib/uri/ldap.rb +14 -14
- data/lib/{bundler → rubygems}/vendor/uri/lib/uri/ldaps.rb +4 -4
- data/lib/{bundler → rubygems}/vendor/uri/lib/uri/mailto.rb +21 -21
- data/lib/{bundler → rubygems}/vendor/uri/lib/uri/rfc2396_parser.rb +39 -39
- data/lib/{bundler → rubygems}/vendor/uri/lib/uri/rfc3986_parser.rb +14 -14
- data/lib/{bundler → rubygems}/vendor/uri/lib/uri/version.rb +1 -1
- data/lib/{bundler → rubygems}/vendor/uri/lib/uri/ws.rb +12 -12
- data/lib/{bundler → rubygems}/vendor/uri/lib/uri/wss.rb +4 -4
- data/lib/{bundler → rubygems}/vendor/uri/lib/uri.rb +35 -31
- data/lib/rubygems/yaml_serializer.rb +880 -0
- metadata +77 -68
- data/CHANGELOG.md +0 -5784
- data/LICENSE.md +0 -22
- data/README.md +0 -58
- data/lib/bundler/compact_index_client/cache.rb +0 -107
- data/lib/bundler/compact_index_client/cache_file.rb +0 -148
- data/lib/bundler/compact_index_client/parser.rb +0 -87
- data/lib/bundler/compact_index_client/updater.rb +0 -105
- data/lib/bundler/compact_index_client.rb +0 -92
- data/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +0 -227
- data/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +0 -3
- data/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +0 -56
- data/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +0 -230
- data/lib/bundler/vendor/net-http-persistent/README.rdoc +0 -82
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +0 -41
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +0 -65
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +0 -80
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +0 -1153
- data/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +0 -31
- data/lib/bundler/vendored_persistent.rb +0 -11
- data/lib/bundler/yaml_serializer.rb +0 -98
- /data/lib/{bundler → rubygems}/vendor/pub_grub/LICENSE.txt +0 -0
- /data/lib/{bundler → rubygems}/vendor/securerandom/COPYING +0 -0
- /data/lib/{bundler → rubygems}/vendor/uri/COPYING +0 -0
|
@@ -108,7 +108,7 @@ learn more about their operation in [bundle install(1)](bundle-install.1.html).
|
|
|
108
108
|
|
|
109
109
|
* `api_request_size` (`BUNDLE_API_REQUEST_SIZE`):
|
|
110
110
|
Configure how many dependencies to fetch when resolving the specifications.
|
|
111
|
-
This configuration is only used when
|
|
111
|
+
This configuration is only used when fetching specifications from RubyGems
|
|
112
112
|
servers that didn't implement the Compact Index API.
|
|
113
113
|
Defaults to 100.
|
|
114
114
|
* `auto_install` (`BUNDLE_AUTO_INSTALL`):
|
|
@@ -145,19 +145,46 @@ learn more about their operation in [bundle install(1)](bundle-install.1.html).
|
|
|
145
145
|
The effective cooldown for any given gem is resolved from three
|
|
146
146
|
layers, highest precedence first:
|
|
147
147
|
|
|
148
|
-
1. CLI flag `--cooldown N` on `install`, `update`, `add`,
|
|
149
|
-
`outdated`.
|
|
148
|
+
1. CLI flag `--cooldown N` on `install`, `update`, `add`, `cache`,
|
|
149
|
+
`lock`, and `outdated`.
|
|
150
150
|
2. This setting (`bundle config set cooldown N` or
|
|
151
151
|
`BUNDLE_COOLDOWN=N`).
|
|
152
152
|
3. The per-source `cooldown:` keyword in the Gemfile, such as
|
|
153
153
|
`source "https://rubygems.org", cooldown: 7`.
|
|
154
154
|
|
|
155
155
|
The CLI flag and this setting apply uniformly to every source,
|
|
156
|
-
including ones declared with their own `cooldown:` value. To
|
|
157
|
-
private registry
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
156
|
+
including ones declared with their own `cooldown:` value. To exempt a
|
|
157
|
+
private registry while still cooling down public gems, declare
|
|
158
|
+
`source "https://internal", cooldown: 0` in the Gemfile. That
|
|
159
|
+
exemption is not absolute. `--cooldown N` on the command line
|
|
160
|
+
overrides it for a single run, and a gemrc cooldown raises it the
|
|
161
|
+
same way it raises any other layer, as described below. Where a
|
|
162
|
+
gemrc cooldown is configured, `--cooldown 0` is the only way to get
|
|
163
|
+
the exemption back.
|
|
164
|
+
|
|
165
|
+
RubyGems has a cooldown of its own, set with `gem`'s `--cooldown`
|
|
166
|
+
flag or the `:cooldown:` key in the gemrc file, and the two are read
|
|
167
|
+
together. Whatever the three layers above resolve to is raised to the
|
|
168
|
+
gemrc value, and the longer of the two wins. It carries the other way
|
|
169
|
+
round as well. `gem install`, `gem update` and `gem outdated` read
|
|
170
|
+
this setting and `BUNDLE_COOLDOWN`, so a cooldown configured for
|
|
171
|
+
either tool covers both. The Gemfile per-source `cooldown:` is the
|
|
172
|
+
exception, since `gem` never reads a Gemfile. A configured `0` takes
|
|
173
|
+
part like any other value rather than switching the cooldown off, so
|
|
174
|
+
`bundle config set cooldown 0` does not cancel a gemrc cooldown. The
|
|
175
|
+
`--cooldown` flag is what bypasses the other tool's setting. It wins
|
|
176
|
+
outright, which is why `--cooldown 0` remains the escape hatch for an
|
|
177
|
+
urgent update.
|
|
178
|
+
|
|
179
|
+
The value must be a non-negative integer. `--cooldown` rejects
|
|
180
|
+
anything else outright, while a value coming from this setting, from
|
|
181
|
+
`BUNDLE_COOLDOWN` or from the gemrc file only warns, because a typo
|
|
182
|
+
left in a config file should not make every command fail. Such a
|
|
183
|
+
value takes no part in the resolution above, so a per-source
|
|
184
|
+
`cooldown:` in the Gemfile, or a usable value configured for the
|
|
185
|
+
other tool, still applies. The warning names where the value came
|
|
186
|
+
from, since either tool reports the other's setting as well as its
|
|
187
|
+
own.
|
|
161
188
|
|
|
162
189
|
Cooldown filtering depends on the gem server providing a per-version
|
|
163
190
|
`created_at` timestamp in the v2 compact-index format. Versions
|
|
@@ -167,6 +194,59 @@ learn more about their operation in [bundle install(1)](bundle-install.1.html).
|
|
|
167
194
|
window and remain resolvable. If you rely on cooldown for
|
|
168
195
|
supply-chain protection, confirm that the gem server emits
|
|
169
196
|
`created_at` in its `/info/<gem>` responses.
|
|
197
|
+
|
|
198
|
+
A `created_at` timestamp is read as UTC when it carries no time zone
|
|
199
|
+
offset. `rubygems.org` always sends one, but a third-party server
|
|
200
|
+
that omits it would otherwise shift the cooldown window by the
|
|
201
|
+
offset of whatever machine runs bundler.
|
|
202
|
+
* `credential_store` (`BUNDLE_CREDENTIAL_STORE`):
|
|
203
|
+
Experimental: store and read host credentials (the values otherwise set
|
|
204
|
+
via `bundle config set <host> <user:pass>`) in a credential store instead
|
|
205
|
+
of the plain text config file. Set it to `true` to use the operating
|
|
206
|
+
system's native store (macOS Keychain, Linux Secret Service, Windows
|
|
207
|
+
Credential Manager) when one is available on this platform, or to the name
|
|
208
|
+
of a backend provided by a third-party gem, such as `1password`. Falls
|
|
209
|
+
back to the config file when the store is unavailable or fails, warning
|
|
210
|
+
that the credential was written in plain text. Defaults to false.
|
|
211
|
+
Credentials already written to the config file are not migrated
|
|
212
|
+
automatically; re-run `bundle config set <host> <user:pass>` with the
|
|
213
|
+
setting enabled to move each one into the store. Being experimental, the
|
|
214
|
+
name and behavior of this setting may change in a future release.
|
|
215
|
+
|
|
216
|
+
The value is read in three ways. An empty value and the false values
|
|
217
|
+
Bundler takes everywhere else (`false`, `f`, `no`, `n`, `0`) turn the
|
|
218
|
+
store off. `true`, `t`, `yes`, `y`, `on` and `1` select the native store.
|
|
219
|
+
Case does not matter for any of those. Anything else is a backend name,
|
|
220
|
+
taken as written, and only lowercase letters, digits, `_` and `-` are
|
|
221
|
+
recognized in one. So `off` names a backend rather than turning the store
|
|
222
|
+
off, which `false` does.
|
|
223
|
+
|
|
224
|
+
A credential kept in the store is never printed back. `bundle config get
|
|
225
|
+
<host>` and `bundle config list` name the key and say that its value lives
|
|
226
|
+
in the credential store. With `--parseable`, such a key is left out
|
|
227
|
+
entirely, since that output is meant to be read back by `bundle config
|
|
228
|
+
set`. A third-party backend is not required to enumerate what it holds, so
|
|
229
|
+
a credential kept in one may not be listed at all.
|
|
230
|
+
|
|
231
|
+
The store belongs to the machine's user, not to a project, so
|
|
232
|
+
`--local` and `--global` make no difference to where a credential is
|
|
233
|
+
kept. Setting a host's credential in one project changes it for every
|
|
234
|
+
project on the machine, and unsetting it there removes it everywhere.
|
|
235
|
+
Protecting the store itself is the operating system's job, or that of
|
|
236
|
+
whichever backend you selected.
|
|
237
|
+
|
|
238
|
+
A credential given in the environment, such as
|
|
239
|
+
`BUNDLE_GEMS__EXAMPLE__COM`, takes precedence over the stored one, so a
|
|
240
|
+
CI run can pass its own credentials without the store getting in the
|
|
241
|
+
way. The store takes precedence over the config file.
|
|
242
|
+
|
|
243
|
+
The store can also be selected per host with `credential_store.<host>`
|
|
244
|
+
(`BUNDLE_CREDENTIAL_STORE__<HOST>`), for example `bundle config set
|
|
245
|
+
credential_store.gems.example.com code_artifact`. That host then uses
|
|
246
|
+
only the named backend, with no chaining to the global one, while every
|
|
247
|
+
other host keeps following the global setting. Setting a host's value
|
|
248
|
+
to `false` keeps that one host on the config file even when a global
|
|
249
|
+
store is enabled.
|
|
170
250
|
* `default_cli_command` (`BUNDLE_DEFAULT_CLI_COMMAND`):
|
|
171
251
|
The command that running `bundle` without arguments should run. Defaults to
|
|
172
252
|
`cli_help` since Bundler 4, but can also be `install` which was the previous
|
|
@@ -224,6 +304,9 @@ learn more about their operation in [bundle install(1)](bundle-install.1.html).
|
|
|
224
304
|
* `jobs` (`BUNDLE_JOBS`):
|
|
225
305
|
The number of gems Bundler can download and install in parallel.
|
|
226
306
|
Defaults to the number of available processors.
|
|
307
|
+
* `keep_outdated_cache` (`BUNDLE_KEEP_OUTDATED_CACHE`):
|
|
308
|
+
Whether Bundler should leave outdated gems unpruned when caching. Defaults
|
|
309
|
+
to false.
|
|
227
310
|
* `lockfile` (`BUNDLE_LOCKFILE`):
|
|
228
311
|
The path to the lockfile that bundler should use. By default, Bundler adds
|
|
229
312
|
`.lock` to the end of the `gemfile` entry. Can be set to `false` in the
|
|
@@ -232,10 +315,20 @@ learn more about their operation in [bundle install(1)](bundle-install.1.html).
|
|
|
232
315
|
Whether Bundler should include a checksums section in new lockfiles, to protect from compromised gem sources. Defaults to true.
|
|
233
316
|
Bundler's own checksum is only included when its `.gem` file is cached, which
|
|
234
317
|
may not be the case when Bundler is installed as a default gem.
|
|
318
|
+
* `no_build_extension` (`BUNDLE_NO_BUILD_EXTENSION`):
|
|
319
|
+
Whether Bundler should skip building native extensions during installation.
|
|
320
|
+
When set, gems are installed without compiling their C extensions.
|
|
321
|
+
To build extensions later, unset this setting and run `bundle pristine <gem>`.
|
|
235
322
|
* `no_install` (`BUNDLE_NO_INSTALL`):
|
|
236
323
|
Whether `bundle package` should skip installing gems.
|
|
324
|
+
* `no_install_plugin` (`BUNDLE_NO_INSTALL_PLUGIN`):
|
|
325
|
+
Whether Bundler should skip installing RubyGems plugins during installation.
|
|
326
|
+
When set, plugin files are not written to the plugins directory.
|
|
327
|
+
To install plugins later, unset this setting and run `bundle pristine <gem>`.
|
|
237
328
|
* `no_prune` (`BUNDLE_NO_PRUNE`):
|
|
238
|
-
|
|
329
|
+
Deprecated name for `keep_outdated_cache`. Each priority level is checked
|
|
330
|
+
for `keep_outdated_cache` and then for `no_prune`, and the first value
|
|
331
|
+
found wins. `no_prune` will be removed in Bundler 5.
|
|
239
332
|
* `only` (`BUNDLE_ONLY`):
|
|
240
333
|
A space-separated list of groups to install only gems of the specified groups.
|
|
241
334
|
Please check carefully if you want to install also gems without a group, because
|
|
@@ -257,6 +350,23 @@ learn more about their operation in [bundle install(1)](bundle-install.1.html).
|
|
|
257
350
|
Enable Bundler's experimental plugin system.
|
|
258
351
|
* `prefer_patch` (`BUNDLE_PREFER_PATCH`):
|
|
259
352
|
Prefer updating only to next patch version during updates. Makes `bundle update` calls equivalent to `bundler update --patch`.
|
|
353
|
+
* `prune` (`BUNDLE_PRUNE`):
|
|
354
|
+
A space-separated or `:`-separated list of Bundler-managed artifacts to
|
|
355
|
+
delete after a successful `bundle install`, `bundle update` or `bundle
|
|
356
|
+
cache`, and on `bundle clean`. `cache` removes the download cache under the
|
|
357
|
+
bundle path, which holds both the cached `.gem` files and the git mirrors.
|
|
358
|
+
`git` removes the `.git` directory of every checked out git gem. Any value
|
|
359
|
+
that is not a category name is read as a boolean, so `BUNDLE_PRUNE=1` selects
|
|
360
|
+
every category and keeps doing so as categories are added. This is meant for
|
|
361
|
+
container images and other throwaway
|
|
362
|
+
environments. **The setting only takes effect when a bundle path is set.**
|
|
363
|
+
Without one Bundler installs into the system gem directory, where the cache
|
|
364
|
+
is shared with RubyGems and holds gem files Bundler never put there, so
|
|
365
|
+
pruning is skipped with a warning. Set a path with `BUNDLE_PATH` or `bundle
|
|
366
|
+
config set path <dir>`. A pruned artifact comes back only when Bundler has to
|
|
367
|
+
install that gem again, so a later `bundle install` does not restore it on
|
|
368
|
+
its own. `bundle install --redownload` does, and `bundle pristine` works once
|
|
369
|
+
it has, though with `prune` still set the reinstall prunes again at the end.
|
|
260
370
|
* `redirect` (`BUNDLE_REDIRECT`):
|
|
261
371
|
The number of redirects allowed for network requests. Defaults to `5`.
|
|
262
372
|
* `retry` (`BUNDLE_RETRY`):
|
|
@@ -285,7 +395,9 @@ learn more about their operation in [bundle install(1)](bundle-install.1.html).
|
|
|
285
395
|
* `system_bindir` (`BUNDLE_SYSTEM_BINDIR`):
|
|
286
396
|
The location where RubyGems installs binstubs. Defaults to `Gem.bindir`.
|
|
287
397
|
* `timeout` (`BUNDLE_TIMEOUT`):
|
|
288
|
-
The seconds allowed before timing out for network requests
|
|
398
|
+
The seconds allowed before timing out for network requests, applied to each
|
|
399
|
+
request individually. A network operation retried by Bundler may wait a
|
|
400
|
+
multiple of this value in total. Defaults to `10`.
|
|
289
401
|
* `update_requires_all_flag` (`BUNDLE_UPDATE_REQUIRES_ALL_FLAG`):
|
|
290
402
|
Require passing `--all` to `bundle update` when everything should be updated,
|
|
291
403
|
and disallow passing no options to `bundle update`.
|
|
@@ -444,6 +556,27 @@ This means that if you have a gem server named `my.gem-host.com`, you'll need to
|
|
|
444
556
|
use the `BUNDLE_MY__GEM___HOST__COM` variable to configure credentials for it
|
|
445
557
|
through ENV.
|
|
446
558
|
|
|
559
|
+
## PROXY SUPPORT
|
|
560
|
+
|
|
561
|
+
Bundler reads the proxy for a gem source from the `:http_proxy` key in the
|
|
562
|
+
RubyGems configuration file (`~/.gemrc`), falling back to the environment.
|
|
563
|
+
For an `https` source, `https_proxy` (or `HTTPS_PROXY`) takes precedence over
|
|
564
|
+
`http_proxy` (or `HTTP_PROXY`), which is only used when no https-specific
|
|
565
|
+
proxy is set. Proxy credentials that are not embedded in the proxy URL are
|
|
566
|
+
read from `HTTP_PROXY_USER` and `HTTP_PROXY_PASS`, or from `HTTPS_PROXY_USER`
|
|
567
|
+
and `HTTPS_PROXY_PASS` when the https proxy is used.
|
|
568
|
+
|
|
569
|
+
Setting `:http_proxy: :no_proxy` in the RubyGems configuration file disables
|
|
570
|
+
proxies entirely, including any proxy environment variables. To keep using a
|
|
571
|
+
proxy from the environment, remove that line. To configure a proxy in the
|
|
572
|
+
file, replace `:no_proxy` with an explicit proxy URL.
|
|
573
|
+
|
|
574
|
+
The `NO_PROXY` (or `no_proxy`) environment variable lists hosts that are
|
|
575
|
+
reached directly, bypassing the proxy. An entry matches the host itself and
|
|
576
|
+
its subdomains, so `NO_PROXY=example.com` bypasses both `example.com` and
|
|
577
|
+
`sub.example.com`, but not `myexample.com`. An entry starting with a dot
|
|
578
|
+
matches only subdomains. A value of `*` bypasses the proxy for every host.
|
|
579
|
+
|
|
447
580
|
## CONFIGURE BUNDLER DIRECTORIES
|
|
448
581
|
|
|
449
582
|
Bundler's home, cache and plugin directories and config file can be configured
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.\" generated with Ronn-NG/v0.10.1
|
|
2
2
|
.\" http://github.com/apjanke/ronn-ng/tree/0.10.1
|
|
3
|
-
.TH "BUNDLE\-CONSOLE" "1" "
|
|
3
|
+
.TH "BUNDLE\-CONSOLE" "1" "May 2026" ""
|
|
4
4
|
.SH "NAME"
|
|
5
5
|
\fBbundle\-console\fR \- Open an IRB session with the bundle pre\-loaded
|
|
6
6
|
.SH "SYNOPSIS"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.\" generated with Ronn-NG/v0.10.1
|
|
2
2
|
.\" http://github.com/apjanke/ronn-ng/tree/0.10.1
|
|
3
|
-
.TH "BUNDLE\-ENV" "1" "
|
|
3
|
+
.TH "BUNDLE\-ENV" "1" "May 2026" ""
|
|
4
4
|
.SH "NAME"
|
|
5
5
|
\fBbundle\-env\fR \- Print information about the environment Bundler is running under
|
|
6
6
|
.SH "SYNOPSIS"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.\" generated with Ronn-NG/v0.10.1
|
|
2
2
|
.\" http://github.com/apjanke/ronn-ng/tree/0.10.1
|
|
3
|
-
.TH "BUNDLE\-FUND" "1" "
|
|
3
|
+
.TH "BUNDLE\-FUND" "1" "May 2026" ""
|
|
4
4
|
.SH "NAME"
|
|
5
5
|
\fBbundle\-fund\fR \- Lists information about gems seeking funding assistance
|
|
6
6
|
.SH "SYNOPSIS"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.\" generated with Ronn-NG/v0.10.1
|
|
2
2
|
.\" http://github.com/apjanke/ronn-ng/tree/0.10.1
|
|
3
|
-
.TH "BUNDLE\-GEM" "1" "
|
|
3
|
+
.TH "BUNDLE\-GEM" "1" "May 2026" ""
|
|
4
4
|
.SH "NAME"
|
|
5
5
|
\fBbundle\-gem\fR \- Generate a project skeleton for creating a rubygem
|
|
6
6
|
.SH "SYNOPSIS"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.\" generated with Ronn-NG/v0.10.1
|
|
2
2
|
.\" http://github.com/apjanke/ronn-ng/tree/0.10.1
|
|
3
|
-
.TH "BUNDLE\-INFO" "1" "
|
|
3
|
+
.TH "BUNDLE\-INFO" "1" "May 2026" ""
|
|
4
4
|
.SH "NAME"
|
|
5
5
|
\fBbundle\-info\fR \- Show information for the given gem in your bundle
|
|
6
6
|
.SH "SYNOPSIS"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.\" generated with Ronn-NG/v0.10.1
|
|
2
2
|
.\" http://github.com/apjanke/ronn-ng/tree/0.10.1
|
|
3
|
-
.TH "BUNDLE\-INIT" "1" "
|
|
3
|
+
.TH "BUNDLE\-INIT" "1" "May 2026" ""
|
|
4
4
|
.SH "NAME"
|
|
5
5
|
\fBbundle\-init\fR \- Generates a Gemfile into the current working directory
|
|
6
6
|
.SH "SYNOPSIS"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.\" generated with Ronn-NG/v0.10.1
|
|
2
2
|
.\" http://github.com/apjanke/ronn-ng/tree/0.10.1
|
|
3
|
-
.TH "BUNDLE\-INSTALL" "1" "
|
|
3
|
+
.TH "BUNDLE\-INSTALL" "1" "May 2026" ""
|
|
4
4
|
.SH "NAME"
|
|
5
5
|
\fBbundle\-install\fR \- Install the dependencies specified in your Gemfile
|
|
6
6
|
.SH "SYNOPSIS"
|
|
@@ -14,7 +14,7 @@ If a \fBGemfile\.lock\fR does exist, and you have updated your Gemfile(5), Bundl
|
|
|
14
14
|
.SH "OPTIONS"
|
|
15
15
|
.TP
|
|
16
16
|
\fB\-\-cooldown=<number>\fR
|
|
17
|
-
Only consider gem versions published at least \fInumber\fR days ago when resolving\. Pass \fB0\fR to disable cooldown for this run, overriding
|
|
17
|
+
Only consider gem versions published at least \fInumber\fR days ago when resolving\. Pass \fB0\fR to disable cooldown for this run, overriding every other cooldown setting, RubyGems' own included\. See \fBcooldown\fR in bundle\-config(1) for details on the precedence between the CLI flag, Bundler config, Gemfile per\-source settings, and the gemrc file\.
|
|
18
18
|
.TP
|
|
19
19
|
\fB\-\-force\fR, \fB\-\-redownload\fR
|
|
20
20
|
Force reinstalling every gem, even if already installed\.
|
|
@@ -40,10 +40,10 @@ update process below under [CONSERVATIVE UPDATING][].
|
|
|
40
40
|
|
|
41
41
|
* `--cooldown=<number>`:
|
|
42
42
|
Only consider gem versions published at least <number> days ago when
|
|
43
|
-
resolving. Pass `0` to disable cooldown for this run, overriding
|
|
44
|
-
|
|
45
|
-
for details on the precedence between the CLI flag,
|
|
46
|
-
|
|
43
|
+
resolving. Pass `0` to disable cooldown for this run, overriding every
|
|
44
|
+
other cooldown setting, RubyGems' own included. See `cooldown` in
|
|
45
|
+
bundle-config(1) for details on the precedence between the CLI flag,
|
|
46
|
+
Bundler config, Gemfile per-source settings, and the gemrc file.
|
|
47
47
|
|
|
48
48
|
* `--force`, `--redownload`:
|
|
49
49
|
Force reinstalling every gem, even if already installed.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.\" generated with Ronn-NG/v0.10.1
|
|
2
2
|
.\" http://github.com/apjanke/ronn-ng/tree/0.10.1
|
|
3
|
-
.TH "BUNDLE\-LICENSES" "1" "
|
|
3
|
+
.TH "BUNDLE\-LICENSES" "1" "May 2026" ""
|
|
4
4
|
.SH "NAME"
|
|
5
5
|
\fBbundle\-licenses\fR \- Print the license of all gems in the bundle
|
|
6
6
|
.SH "SYNOPSIS"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.\" generated with Ronn-NG/v0.10.1
|
|
2
2
|
.\" http://github.com/apjanke/ronn-ng/tree/0.10.1
|
|
3
|
-
.TH "BUNDLE\-LOCK" "1" "
|
|
3
|
+
.TH "BUNDLE\-LOCK" "1" "May 2026" ""
|
|
4
4
|
.SH "NAME"
|
|
5
5
|
\fBbundle\-lock\fR \- Creates / Updates a lockfile without installing
|
|
6
6
|
.SH "SYNOPSIS"
|
|
@@ -13,7 +13,7 @@ Lock the gems specified in Gemfile\.
|
|
|
13
13
|
Ignores the existing lockfile\. Resolve then updates lockfile\. Taking a list of gems or updating all gems if no list is given\.
|
|
14
14
|
.TP
|
|
15
15
|
\fB\-\-bundler[=BUNDLER]\fR
|
|
16
|
-
Update the locked version of bundler
|
|
16
|
+
Update the locked version of bundler to the given version or the latest version if no version is given\.
|
|
17
17
|
.TP
|
|
18
18
|
\fB\-\-local\fR
|
|
19
19
|
Do not attempt to connect to \fBrubygems\.org\fR\. Instead, Bundler will use the gems already present in Rubygems' cache or in \fBvendor/cache\fR\. Note that if a appropriate platform\-specific gem exists on \fBrubygems\.org\fR it will not be found\.
|
|
@@ -61,7 +61,7 @@ If updating, do not allow any gem to be updated past latest \-\-patch | \-\-mino
|
|
|
61
61
|
If updating, use bundle install conservative update behavior and do not allow shared dependencies to be updated\.
|
|
62
62
|
.TP
|
|
63
63
|
\fB\-\-cooldown=<number>\fR
|
|
64
|
-
Only consider gem versions published at least \fInumber\fR days ago when resolving\. Pass \fB0\fR to disable cooldown for this run, overriding
|
|
64
|
+
Only consider gem versions published at least \fInumber\fR days ago when resolving\. Pass \fB0\fR to disable cooldown for this run, overriding every other cooldown setting, RubyGems' own included\. See \fBcooldown\fR in bundle\-config(1)\.
|
|
65
65
|
.SH "UPDATING ALL GEMS"
|
|
66
66
|
If you run \fBbundle lock\fR with \fB\-\-update\fR option without list of gems, bundler will ignore any previously installed gems and resolve all dependencies again based on the latest versions of all gems available in the sources\.
|
|
67
67
|
.SH "UPDATING A LIST OF GEMS"
|
|
@@ -33,9 +33,8 @@ Lock the gems specified in Gemfile.
|
|
|
33
33
|
of gems or updating all gems if no list is given.
|
|
34
34
|
|
|
35
35
|
* `--bundler[=BUNDLER]`:
|
|
36
|
-
Update the locked version of bundler
|
|
37
|
-
|
|
38
|
-
latest released version, which never selects a prerelease.
|
|
36
|
+
Update the locked version of bundler to the given version or the latest
|
|
37
|
+
version if no version is given.
|
|
39
38
|
|
|
40
39
|
* `--local`:
|
|
41
40
|
Do not attempt to connect to `rubygems.org`. Instead, Bundler will use the
|
|
@@ -88,8 +87,9 @@ Lock the gems specified in Gemfile.
|
|
|
88
87
|
|
|
89
88
|
* `--cooldown=<number>`:
|
|
90
89
|
Only consider gem versions published at least <number> days ago when
|
|
91
|
-
resolving. Pass `0` to disable cooldown for this run, overriding
|
|
92
|
-
|
|
90
|
+
resolving. Pass `0` to disable cooldown for this run, overriding every
|
|
91
|
+
other cooldown setting, RubyGems' own included. See `cooldown` in
|
|
92
|
+
bundle-config(1).
|
|
93
93
|
|
|
94
94
|
## UPDATING ALL GEMS
|
|
95
95
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.\" generated with Ronn-NG/v0.10.1
|
|
2
2
|
.\" http://github.com/apjanke/ronn-ng/tree/0.10.1
|
|
3
|
-
.TH "BUNDLE\-OPEN" "1" "
|
|
3
|
+
.TH "BUNDLE\-OPEN" "1" "May 2026" ""
|
|
4
4
|
.SH "NAME"
|
|
5
5
|
\fBbundle\-open\fR \- Opens the source directory for a gem in your bundle
|
|
6
6
|
.SH "SYNOPSIS"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.\" generated with Ronn-NG/v0.10.1
|
|
2
2
|
.\" http://github.com/apjanke/ronn-ng/tree/0.10.1
|
|
3
|
-
.TH "BUNDLE\-OUTDATED" "1" "
|
|
3
|
+
.TH "BUNDLE\-OUTDATED" "1" "May 2026" ""
|
|
4
4
|
.SH "NAME"
|
|
5
5
|
\fBbundle\-outdated\fR \- List installed gems with newer versions available
|
|
6
6
|
.SH "SYNOPSIS"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.\" generated with Ronn-NG/v0.10.1
|
|
2
2
|
.\" http://github.com/apjanke/ronn-ng/tree/0.10.1
|
|
3
|
-
.TH "BUNDLE\-PLATFORM" "1" "
|
|
3
|
+
.TH "BUNDLE\-PLATFORM" "1" "May 2026" ""
|
|
4
4
|
.SH "NAME"
|
|
5
5
|
\fBbundle\-platform\fR \- Displays platform compatibility information
|
|
6
6
|
.SH "SYNOPSIS"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.\" generated with Ronn-NG/v0.10.1
|
|
2
2
|
.\" http://github.com/apjanke/ronn-ng/tree/0.10.1
|
|
3
|
-
.TH "BUNDLE\-PRISTINE" "1" "
|
|
3
|
+
.TH "BUNDLE\-PRISTINE" "1" "May 2026" ""
|
|
4
4
|
.SH "NAME"
|
|
5
5
|
\fBbundle\-pristine\fR \- Restores installed gems to their pristine condition
|
|
6
6
|
.SH "SYNOPSIS"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.\" generated with Ronn-NG/v0.10.1
|
|
2
2
|
.\" http://github.com/apjanke/ronn-ng/tree/0.10.1
|
|
3
|
-
.TH "BUNDLE\-SHOW" "1" "
|
|
3
|
+
.TH "BUNDLE\-SHOW" "1" "May 2026" ""
|
|
4
4
|
.SH "NAME"
|
|
5
5
|
\fBbundle\-show\fR \- Shows all the gems in your bundle, or the path to a gem
|
|
6
6
|
.SH "SYNOPSIS"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.\" generated with Ronn-NG/v0.10.1
|
|
2
2
|
.\" http://github.com/apjanke/ronn-ng/tree/0.10.1
|
|
3
|
-
.TH "BUNDLE\-UPDATE" "1" "
|
|
3
|
+
.TH "BUNDLE\-UPDATE" "1" "May 2026" ""
|
|
4
4
|
.SH "NAME"
|
|
5
5
|
\fBbundle\-update\fR \- Update your gems to the latest available versions
|
|
6
6
|
.SH "SYNOPSIS"
|
|
@@ -27,7 +27,7 @@ Do not attempt to fetch gems remotely and use the gem cache instead\.
|
|
|
27
27
|
Update the locked version of Ruby to the current version of Ruby\.
|
|
28
28
|
.TP
|
|
29
29
|
\fB\-\-bundler[=BUNDLER]\fR
|
|
30
|
-
Update the locked version of bundler
|
|
30
|
+
Update the locked version of bundler to the invoked bundler version\.
|
|
31
31
|
.TP
|
|
32
32
|
\fB\-\-force\fR, \fB\-\-redownload\fR
|
|
33
33
|
Force reinstalling every gem, even if already installed\.
|
|
@@ -66,7 +66,7 @@ Do not allow any gem to be updated past latest \fB\-\-patch\fR | \fB\-\-minor\fR
|
|
|
66
66
|
Use bundle install conservative update behavior and do not allow indirect dependencies to be updated\.
|
|
67
67
|
.TP
|
|
68
68
|
\fB\-\-cooldown=<number>\fR
|
|
69
|
-
Only consider gem versions published at least \fInumber\fR days ago when resolving\. Pass \fB0\fR to disable cooldown for this run, overriding
|
|
69
|
+
Only consider gem versions published at least \fInumber\fR days ago when resolving\. Pass \fB0\fR to disable cooldown for this run, overriding every other cooldown setting, RubyGems' own included\. Combine with \fB\-\-conservative\fR to minimize transitive churn when bypassing cooldown for an urgent update\. See \fBcooldown\fR in bundle\-config(1)\.
|
|
70
70
|
.SH "UPDATING ALL GEMS"
|
|
71
71
|
If you run \fBbundle update \-\-all\fR, bundler will ignore any previously installed gems and resolve all dependencies again based on the latest versions of all gems available in the sources\.
|
|
72
72
|
.P
|
|
@@ -53,9 +53,7 @@ gem.
|
|
|
53
53
|
Update the locked version of Ruby to the current version of Ruby.
|
|
54
54
|
|
|
55
55
|
* `--bundler[=BUNDLER]`:
|
|
56
|
-
Update the locked version of bundler
|
|
57
|
-
`4.0.20`, or a requirement such as `"> 0.a"`. With no argument, update to the
|
|
58
|
-
latest released version, which never selects a prerelease.
|
|
56
|
+
Update the locked version of bundler to the invoked bundler version.
|
|
59
57
|
|
|
60
58
|
* `--force`, `--redownload`:
|
|
61
59
|
Force reinstalling every gem, even if already installed.
|
|
@@ -96,8 +94,8 @@ gem.
|
|
|
96
94
|
|
|
97
95
|
* `--cooldown=<number>`:
|
|
98
96
|
Only consider gem versions published at least <number> days ago when
|
|
99
|
-
resolving. Pass `0` to disable cooldown for this run, overriding
|
|
100
|
-
|
|
97
|
+
resolving. Pass `0` to disable cooldown for this run, overriding every
|
|
98
|
+
other cooldown setting, RubyGems' own included. Combine with `--conservative` to
|
|
101
99
|
minimize transitive churn when bypassing cooldown for an urgent
|
|
102
100
|
update. See `cooldown` in bundle-config(1).
|
|
103
101
|
|
data/lib/bundler/man/bundle.1
CHANGED
data/lib/bundler/man/gemfile.5
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.\" generated with Ronn-NG/v0.10.1
|
|
2
2
|
.\" http://github.com/apjanke/ronn-ng/tree/0.10.1
|
|
3
|
-
.TH "GEMFILE" "5" "
|
|
3
|
+
.TH "GEMFILE" "5" "May 2026" ""
|
|
4
4
|
.SH "NAME"
|
|
5
5
|
\fBGemfile\fR \- A format for describing gem dependencies for Ruby programs
|
|
6
6
|
.SH "SYNOPSIS"
|
|
@@ -471,6 +471,50 @@ eval_gemfile "another\.gemfile"
|
|
|
471
471
|
.IP "" 0
|
|
472
472
|
.P
|
|
473
473
|
This can be useful to run tests against multiple combinations of dependencies, or to load per\-developer gems from an untracked gemfile\.
|
|
474
|
+
.SH "OVERRIDE"
|
|
475
|
+
The \fBoverride\fR directive rewrites a constraint on another gem before resolution runs\. It targets the common case where an upstream gem's published metadata is too narrow on the current project's machine \-\- a stale upper bound, an unwanted floor, or a transitive pin that has to be lifted\.
|
|
476
|
+
.IP "" 4
|
|
477
|
+
.nf
|
|
478
|
+
override <target>, <field>: <operation>
|
|
479
|
+
.fi
|
|
480
|
+
.IP "" 0
|
|
481
|
+
.P
|
|
482
|
+
\fB<target>\fR is a gem name string or \fB:all\fR\. \fB<field>\fR is one of \fBversion:\fR, \fBrequired_ruby_version:\fR, or \fBrequired_rubygems_version:\fR\. \fB<operation>\fR is one of:
|
|
483
|
+
.IP "\(bu" 4
|
|
484
|
+
a version requirement string (e\.g\. \fB">= 8\.0"\fR), which \fBreplaces\fR the target's requirement absolutely\. The original requirement, both direct and transitive, is discarded in favour of the override\.
|
|
485
|
+
.IP "\(bu" 4
|
|
486
|
+
\fB:ignore_upper\fR, which removes upper\-bound operators (\fB<\fR and \fB<=\fR) from the existing requirement and folds \fB~>\fR into its lower bound (\fB~> 1\.5\fR becomes \fB>= 1\.5\fR)\. Other operators, including \fB!=\fR, are preserved\.
|
|
487
|
+
.IP "\(bu" 4
|
|
488
|
+
\fBnil\fR, which collapses the requirement to \fB>= 0\fR (no constraint at all)\.
|
|
489
|
+
.IP "" 0
|
|
490
|
+
.P
|
|
491
|
+
\fB:all\fR only applies to \fBrequired_ruby_version:\fR and \fBrequired_rubygems_version:\fR\. A per\-gem override on the same field takes precedence over an \fB:all\fR override\. \fB:all + version:\fR is rejected: version requirements only make sense per gem\.
|
|
492
|
+
.P
|
|
493
|
+
Multiple \fBoverride\fR calls for distinct targets are allowed; declaring the same \fBtarget\fR and \fBfield\fR twice is an error\.
|
|
494
|
+
.IP "" 4
|
|
495
|
+
.nf
|
|
496
|
+
source "https://rubygems\.org"
|
|
497
|
+
|
|
498
|
+
# Force every reference to "rails" \-\- direct or transitive \-\- to >= 8\.0\.
|
|
499
|
+
override "rails", version: ">= 8\.0"
|
|
500
|
+
|
|
501
|
+
# Strip the upper bound on nokogiri\.
|
|
502
|
+
override "nokogiri", version: :ignore_upper
|
|
503
|
+
|
|
504
|
+
# Drop the version pin on legacy entirely\.
|
|
505
|
+
override "legacy", version: nil
|
|
506
|
+
|
|
507
|
+
# Loosen every gem's required_ruby_version upper bound\.
|
|
508
|
+
override :all, required_ruby_version: :ignore_upper
|
|
509
|
+
|
|
510
|
+
# Override one specific gem's required_rubygems_version\.
|
|
511
|
+
override "tricky", required_rubygems_version: nil
|
|
512
|
+
|
|
513
|
+
gem "rails", "~> 7\.0"
|
|
514
|
+
.fi
|
|
515
|
+
.IP "" 0
|
|
516
|
+
.P
|
|
517
|
+
The override only affects resolution and the install\-time Ruby/RubyGems compatibility checks; \fBGemfile\.lock\fR continues to reflect the resolved versions, not the rewritten requirements\. When resolution still fails, Bundler appends the active overrides (with their Gemfile location) to the error message so it is clear which override shaped the constraint set\.
|
|
474
518
|
.SH "SOURCE PRIORITY"
|
|
475
519
|
When attempting to locate a gem to satisfy a gem requirement, bundler uses the following priority order:
|
|
476
520
|
.IP "1." 4
|