[bundler/bundler] Commit man pages to source control

This has the benefit that:

* Allows the installation of bundler as a default gem from rubygems to
include man pages.
* Removes the need to build man pages during our tests.
* Makes working with the manifest easier, because we only have source
controlled files, and not a mix of source control and generated files.

To make sure they never fall out of sync, we replace the previous
`man:build` CI task with a `man:check` task that makes sure the
generated man pages are up to date.

https://github.com/bundler/bundler/commit/23de1d0177
This commit is contained in:
David Rodríguez 2019-07-10 17:26:55 +02:00 committed by SHIBATA Hiroshi
parent 8f28ae65a8
commit f48a61fb46
Notes: git 2019-08-31 04:40:14 +09:00
54 changed files with 296 additions and 298 deletions

View File

@ -1,7 +1,7 @@
.\" generated with Ronn/v0.7.3 .\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3
. .
.TH "BUNDLE\-ADD" "1" "May 2019" "" "" .TH "BUNDLE\-ADD" "1" "August 2019" "" ""
. .
.SH "NAME" .SH "NAME"
\fBbundle\-add\fR \- Add gem to the Gemfile and run bundle install \fBbundle\-add\fR \- Add gem to the Gemfile and run bundle install

View File

@ -55,4 +55,4 @@ OPTIONS
May 2019 BUNDLE-ADD(1) August 2019 BUNDLE-ADD(1)

View File

@ -1,7 +1,7 @@
.\" generated with Ronn/v0.7.3 .\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3
. .
.TH "BUNDLE\-BINSTUBS" "1" "March 2019" "" "" .TH "BUNDLE\-BINSTUBS" "1" "August 2019" "" ""
. .
.SH "NAME" .SH "NAME"
\fBbundle\-binstubs\fR \- Install the binstubs of the listed gems \fBbundle\-binstubs\fR \- Install the binstubs of the listed gems
@ -10,7 +10,7 @@
\fBbundle binstubs\fR \fIGEM_NAME\fR [\-\-force] [\-\-path PATH] [\-\-standalone] \fBbundle binstubs\fR \fIGEM_NAME\fR [\-\-force] [\-\-path PATH] [\-\-standalone]
. .
.SH "DESCRIPTION" .SH "DESCRIPTION"
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 by run directly, and one that will always run the correct gem version used by the application\. 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\.
. .
.P .P
For example, if you run \fBbundle binstubs rspec\-core\fR, Bundler will create the file \fBbin/rspec\fR\. That file will contain enough code to load Bundler, tell it to load the bundled gems, and then run rspec\. For example, if you run \fBbundle binstubs rspec\-core\fR, Bundler will create the file \fBbin/rspec\fR\. That file will contain enough code to load Bundler, tell it to load the bundled gems, and then run rspec\.

View File

@ -12,7 +12,7 @@ DESCRIPTION
Binstubs are scripts that wrap around executables. Bundler creates a Binstubs are scripts that wrap around executables. Bundler creates a
small Ruby file (a binstub) that loads Bundler, runs the command, and small Ruby file (a binstub) that loads Bundler, runs the command, and
puts it into bin/. Binstubs are a shortcut-or alternative- to always puts it into bin/. Binstubs are a shortcut-or alternative- to always
using bundle exec. This gives you a file that can by run directly, and using bundle exec. This gives you a file that can be run directly, and
one that will always run the correct gem version used by the applica- one that will always run the correct gem version used by the applica-
tion. tion.
@ -45,4 +45,4 @@ BUNDLE INSTALL --BINSTUBS
March 2019 BUNDLE-BINSTUBS(1) August 2019 BUNDLE-BINSTUBS(1)

View File

@ -1,7 +1,7 @@
.\" generated with Ronn/v0.7.3 .\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3
. .
.TH "BUNDLE\-CHECK" "1" "March 2019" "" "" .TH "BUNDLE\-CHECK" "1" "August 2019" "" ""
. .
.SH "NAME" .SH "NAME"
\fBbundle\-check\fR \- Verifies if dependencies are satisfied by installed gems \fBbundle\-check\fR \- Verifies if dependencies are satisfied by installed gems

View File

@ -9,8 +9,8 @@ SYNOPSIS
bundle check [--dry-run] [--gemfile=FILE] [--path=PATH] bundle check [--dry-run] [--gemfile=FILE] [--path=PATH]
DESCRIPTION DESCRIPTION
check searches the local machine for each of the gems requested in the check searches the local machine for each of the gems requested in the
Gemfile. If all gems are found, Bundler prints a success message and Gemfile. If all gems are found, Bundler prints a success message and
exits with a status of 0. exits with a status of 0.
If not, the first missing gem is listed and Bundler exits status 1. If not, the first missing gem is listed and Bundler exits status 1.
@ -20,14 +20,14 @@ OPTIONS
Locks the [Gemfile(5)][Gemfile(5)] before running the command. Locks the [Gemfile(5)][Gemfile(5)] before running the command.
--gemfile --gemfile
Use the specified gemfile instead of the [Gemfile(5)][Gem- Use the specified gemfile instead of the [Gemfile(5)][Gem-
file(5)]. file(5)].
--path Specify a different path than the system default ($BUNDLE_PATH --path Specify a different path than the system default ($BUNDLE_PATH
or $GEM_HOME). Bundler will remember this value for future or $GEM_HOME). Bundler will remember this value for future
installs on this machine. installs on this machine.
March 2019 BUNDLE-CHECK(1) August 2019 BUNDLE-CHECK(1)

View File

@ -1,7 +1,7 @@
.\" generated with Ronn/v0.7.3 .\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3
. .
.TH "BUNDLE\-CLEAN" "1" "March 2019" "" "" .TH "BUNDLE\-CLEAN" "1" "August 2019" "" ""
. .
.SH "NAME" .SH "NAME"
\fBbundle\-clean\fR \- Cleans up unused gems in your bundler directory \fBbundle\-clean\fR \- Cleans up unused gems in your bundler directory

View File

@ -23,4 +23,4 @@ OPTIONS
March 2019 BUNDLE-CLEAN(1) August 2019 BUNDLE-CLEAN(1)

View File

@ -1,7 +1,7 @@
.\" generated with Ronn/v0.7.3 .\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3
. .
.TH "BUNDLE\-CONFIG" "1" "May 2019" "" "" .TH "BUNDLE\-CONFIG" "1" "August 2019" "" ""
. .
.SH "NAME" .SH "NAME"
\fBbundle\-config\fR \- Set bundler configuration options \fBbundle\-config\fR \- Set bundler configuration options
@ -157,7 +157,7 @@ The following is a list of all configuration keys and their purpose\. You can le
\fBcache_all_platforms\fR (\fBBUNDLE_CACHE_ALL_PLATFORMS\fR): Cache gems for all platforms\. \fBcache_all_platforms\fR (\fBBUNDLE_CACHE_ALL_PLATFORMS\fR): Cache gems for all platforms\.
. .
.IP "\(bu" 4 .IP "\(bu" 4
\fBcache_path\fR (\fBBUNDLE_CACHE_PATH\fR): The directory that bundler will place cached gems in when running \fBbundle package\fR, and that bundler will look in when installing gems\. Defaults to \fBvendor/bundle\fR\. \fBcache_path\fR (\fBBUNDLE_CACHE_PATH\fR): The directory that bundler will place cached gems in when running \fBbundle package\fR, and that bundler will look in when installing gems\. Defaults to \fBvendor/cache\fR\.
. .
.IP "\(bu" 4 .IP "\(bu" 4
\fBclean\fR (\fBBUNDLE_CLEAN\fR): Whether Bundler should run \fBbundle clean\fR automatically after \fBbundle install\fR\. \fBclean\fR (\fBBUNDLE_CLEAN\fR): Whether Bundler should run \fBbundle clean\fR automatically after \fBbundle install\fR\.
@ -184,9 +184,6 @@ The following is a list of all configuration keys and their purpose\. You can le
\fBdisable_multisource\fR (\fBBUNDLE_DISABLE_MULTISOURCE\fR): When set, Gemfiles containing multiple sources will produce errors instead of warnings\. Use \fBbundle config unset disable_multisource\fR to unset\. \fBdisable_multisource\fR (\fBBUNDLE_DISABLE_MULTISOURCE\fR): When set, Gemfiles containing multiple sources will produce errors instead of warnings\. Use \fBbundle config unset disable_multisource\fR to unset\.
. .
.IP "\(bu" 4 .IP "\(bu" 4
\fBdisable_platform_warnings\fR (\fBBUNDLE_DISABLE_PLATFORM_WARNINGS\fR): Disable warnings during bundle install when a dependency is unused on the current platform\.
.
.IP "\(bu" 4
\fBdisable_shared_gems\fR (\fBBUNDLE_DISABLE_SHARED_GEMS\fR): Stop Bundler from accessing gems installed to RubyGems\' normal location\. \fBdisable_shared_gems\fR (\fBBUNDLE_DISABLE_SHARED_GEMS\fR): Stop Bundler from accessing gems installed to RubyGems\' normal location\.
. .
.IP "\(bu" 4 .IP "\(bu" 4

View File

@ -179,7 +179,7 @@ LIST OF AVAILABLE KEYS
o cache_path (BUNDLE_CACHE_PATH): The directory that bundler will o cache_path (BUNDLE_CACHE_PATH): The directory that bundler will
place cached gems in when running bundle package, and that bundler place cached gems in when running bundle package, and that bundler
will look in when installing gems. Defaults to vendor/bundle. will look in when installing gems. Defaults to vendor/cache.
o clean (BUNDLE_CLEAN): Whether Bundler should run bundle clean auto- o clean (BUNDLE_CLEAN): Whether Bundler should run bundle clean auto-
matically after bundle install. matically after bundle install.
@ -210,10 +210,6 @@ LIST OF AVAILABLE KEYS
files containing multiple sources will produce errors instead of files containing multiple sources will produce errors instead of
warnings. Use bundle config unset disable_multisource to unset. warnings. Use bundle config unset disable_multisource to unset.
o disable_platform_warnings (BUNDLE_DISABLE_PLATFORM_WARNINGS): Dis-
able warnings during bundle install when a dependency is unused on
the current platform.
o disable_shared_gems (BUNDLE_DISABLE_SHARED_GEMS): Stop Bundler from o disable_shared_gems (BUNDLE_DISABLE_SHARED_GEMS): Stop Bundler from
accessing gems installed to RubyGems' normal location. accessing gems installed to RubyGems' normal location.
@ -522,4 +518,4 @@ CONFIGURE BUNDLER DIRECTORIES
May 2019 BUNDLE-CONFIG(1) August 2019 BUNDLE-CONFIG(1)

View File

@ -1,7 +1,7 @@
.\" generated with Ronn/v0.7.3 .\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3
. .
.TH "BUNDLE\-DOCTOR" "1" "March 2019" "" "" .TH "BUNDLE\-DOCTOR" "1" "August 2019" "" ""
. .
.SH "NAME" .SH "NAME"
\fBbundle\-doctor\fR \- Checks the bundle for common problems \fBbundle\-doctor\fR \- Checks the bundle for common problems

View File

@ -41,4 +41,4 @@ OPTIONS
March 2019 BUNDLE-DOCTOR(1) August 2019 BUNDLE-DOCTOR(1)

View File

@ -1,7 +1,7 @@
.\" generated with Ronn/v0.7.3 .\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3
. .
.TH "BUNDLE\-EXEC" "1" "March 2019" "" "" .TH "BUNDLE\-EXEC" "1" "August 2019" "" ""
. .
.SH "NAME" .SH "NAME"
\fBbundle\-exec\fR \- Execute a command in the context of the bundle \fBbundle\-exec\fR \- Execute a command in the context of the bundle

View File

@ -175,4 +175,4 @@ RUBYGEMS PLUGINS
March 2019 BUNDLE-EXEC(1) August 2019 BUNDLE-EXEC(1)

View File

@ -1,7 +1,7 @@
.\" generated with Ronn/v0.7.3 .\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3
. .
.TH "BUNDLE\-GEM" "1" "March 2019" "" "" .TH "BUNDLE\-GEM" "1" "August 2019" "" ""
. .
.SH "NAME" .SH "NAME"
\fBbundle\-gem\fR \- Generate a project skeleton for creating a rubygem \fBbundle\-gem\fR \- Generate a project skeleton for creating a rubygem

View File

@ -77,8 +77,8 @@ OPTIONS
-e, --edit[=EDITOR] -e, --edit[=EDITOR]
Open the resulting GEM_NAME.gemspec in EDITOR, or the default Open the resulting GEM_NAME.gemspec in EDITOR, or the default
editor if not specified. The default is $BUNDLER_EDITOR, editor if not specified. The default is $BUNDLER_EDITOR, $VIS-
$VISUAL, or $EDITOR. UAL, or $EDITOR.
SEE ALSO SEE ALSO
o bundle config(1) bundle-config.1.html o bundle config(1) bundle-config.1.html
@ -88,4 +88,4 @@ SEE ALSO
March 2019 BUNDLE-GEM(1) August 2019 BUNDLE-GEM(1)

View File

@ -1,7 +1,7 @@
.\" generated with Ronn/v0.7.3 .\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3
. .
.TH "BUNDLE\-INFO" "1" "March 2019" "" "" .TH "BUNDLE\-INFO" "1" "August 2019" "" ""
. .
.SH "NAME" .SH "NAME"
\fBbundle\-info\fR \- Show information for the given gem in your bundle \fBbundle\-info\fR \- Show information for the given gem in your bundle

View File

@ -18,4 +18,4 @@ OPTIONS
March 2019 BUNDLE-INFO(1) August 2019 BUNDLE-INFO(1)

View File

@ -1,7 +1,7 @@
.\" generated with Ronn/v0.7.3 .\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3
. .
.TH "BUNDLE\-INIT" "1" "April 2019" "" "" .TH "BUNDLE\-INIT" "1" "August 2019" "" ""
. .
.SH "NAME" .SH "NAME"
\fBbundle\-init\fR \- Generates a Gemfile into the current working directory \fBbundle\-init\fR \- Generates a Gemfile into the current working directory

View File

@ -31,4 +31,4 @@ SEE ALSO
April 2019 BUNDLE-INIT(1) August 2019 BUNDLE-INIT(1)

View File

@ -1,7 +1,7 @@
.\" generated with Ronn/v0.7.3 .\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3
. .
.TH "BUNDLE\-INJECT" "1" "March 2019" "" "" .TH "BUNDLE\-INJECT" "1" "August 2019" "" ""
. .
.SH "NAME" .SH "NAME"
\fBbundle\-inject\fR \- Add named gem(s) with version requirements to Gemfile \fBbundle\-inject\fR \- Add named gem(s) with version requirements to Gemfile

View File

@ -29,4 +29,4 @@ DESCRIPTION
March 2019 BUNDLE-INJECT(1) August 2019 BUNDLE-INJECT(1)

View File

@ -1,7 +1,7 @@
.\" generated with Ronn/v0.7.3 .\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3
. .
.TH "BUNDLE\-INSTALL" "1" "April 2019" "" "" .TH "BUNDLE\-INSTALL" "1" "August 2019" "" ""
. .
.SH "NAME" .SH "NAME"
\fBbundle\-install\fR \- Install the dependencies specified in your Gemfile \fBbundle\-install\fR \- Install the dependencies specified in your Gemfile

View File

@ -193,14 +193,14 @@ DEPLOYMENT MODE
SUDO USAGE SUDO USAGE
By default, Bundler installs gems to the same location as gem install. By default, Bundler installs gems to the same location as gem install.
In some cases, that location may not be writable by your Unix user. In In some cases, that location may not be writable by your Unix user. In
that case, Bundler will stage everything in a temporary directory, then that case, Bundler will stage everything in a temporary directory, then
ask you for your sudo password in order to copy the gems into their ask you for your sudo password in order to copy the gems into their
system location. system location.
From your perspective, this is identical to installing the gems From your perspective, this is identical to installing the gems
directly into the system. directly into the system.
You should never use sudo bundle install. This is because several other You should never use sudo bundle install. This is because several other
@ -214,36 +214,36 @@ SUDO USAGE
Of these three, the first two could theoretically be performed by Of these three, the first two could theoretically be performed by
chowning the resulting files to $SUDO_USER. The third, however, can chowning the resulting files to $SUDO_USER. The third, however, can
only be performed by invoking the git command as the current user. only be performed by invoking the git command as the current user.
Therefore, git gems are downloaded and installed into ~/.bundle rather Therefore, git gems are downloaded and installed into ~/.bundle rather
than $GEM_HOME or $BUNDLE_PATH. than $GEM_HOME or $BUNDLE_PATH.
As a result, you should run bundle install as the current user, and As a result, you should run bundle install as the current user, and
Bundler will ask for your password if it is needed to put the gems into Bundler will ask for your password if it is needed to put the gems into
their final location. their final location.
INSTALLING GROUPS INSTALLING GROUPS
By default, bundle install will install all gems in all groups in your By default, bundle install will install all gems in all groups in your
Gemfile(5), except those declared for a different platform. Gemfile(5), except those declared for a different platform.
However, you can explicitly tell Bundler to skip installing certain However, you can explicitly tell Bundler to skip installing certain
groups with the --without option. This option takes a space-separated groups with the --without option. This option takes a space-separated
list of groups. list of groups.
While the --without option will skip installing the gems in the speci- While the --without option will skip installing the gems in the speci-
fied groups, it will still download those gems and use them to resolve fied groups, it will still download those gems and use them to resolve
the dependencies of every gem in your Gemfile(5). the dependencies of every gem in your Gemfile(5).
This is so that installing a different set of groups on another machine This is so that installing a different set of groups on another machine
(such as a production server) will not change the gems and versions (such as a production server) will not change the gems and versions
that you have already developed and tested against. that you have already developed and tested against.
Bundler offers a rock-solid guarantee that the third-party code you are Bundler offers a rock-solid guarantee that the third-party code you are
running in development and testing is also the third-party code you are running in development and testing is also the third-party code you are
running in production. You can choose to exclude some of that code in running in production. You can choose to exclude some of that code in
different environments, but you will never be caught flat-footed by different environments, but you will never be caught flat-footed by
different versions of third-party code being used in different environ- different versions of third-party code being used in different environ-
ments. ments.
@ -261,63 +261,63 @@ INSTALLING GROUPS
In this case, sinatra depends on any version of Rack (>= 1.0), while In this case, sinatra depends on any version of Rack (>= 1.0), while
rack-perftools-profiler depends on 1.x (~> 1.0). rack-perftools-profiler depends on 1.x (~> 1.0).
When you run bundle install --without production in development, we When you run bundle install --without production in development, we
look at the dependencies of rack-perftools-profiler as well. That way, look at the dependencies of rack-perftools-profiler as well. That way,
you do not spend all your time developing against Rack 2.0, using new you do not spend all your time developing against Rack 2.0, using new
APIs unavailable in Rack 1.x, only to have Bundler switch to Rack 1.2 APIs unavailable in Rack 1.x, only to have Bundler switch to Rack 1.2
when the production group is used. when the production group is used.
This should not cause any problems in practice, because we do not This should not cause any problems in practice, because we do not
attempt to install the gems in the excluded groups, and only evaluate attempt to install the gems in the excluded groups, and only evaluate
as part of the dependency resolution process. as part of the dependency resolution process.
This also means that you cannot include different versions of the same This also means that you cannot include different versions of the same
gem in different groups, because doing so would result in different gem in different groups, because doing so would result in different
sets of dependencies used in development and production. Because of the sets of dependencies used in development and production. Because of the
vagaries of the dependency resolution process, this usually affects vagaries of the dependency resolution process, this usually affects
more than the gems you list in your Gemfile(5), and can (surprisingly) more than the gems you list in your Gemfile(5), and can (surprisingly)
radically change the gems you are using. radically change the gems you are using.
THE GEMFILE.LOCK THE GEMFILE.LOCK
When you run bundle install, Bundler will persist the full names and When you run bundle install, Bundler will persist the full names and
versions of all gems that you used (including dependencies of the gems versions of all gems that you used (including dependencies of the gems
specified in the Gemfile(5)) into a file called Gemfile.lock. specified in the Gemfile(5)) into a file called Gemfile.lock.
Bundler uses this file in all subsequent calls to bundle install, which Bundler uses this file in all subsequent calls to bundle install, which
guarantees that you always use the same exact code, even as your appli- guarantees that you always use the same exact code, even as your appli-
cation moves across machines. cation moves across machines.
Because of the way dependency resolution works, even a seemingly small Because of the way dependency resolution works, even a seemingly small
change (for instance, an update to a point-release of a dependency of a change (for instance, an update to a point-release of a dependency of a
gem in your Gemfile(5)) can result in radically different gems being gem in your Gemfile(5)) can result in radically different gems being
needed to satisfy all dependencies. needed to satisfy all dependencies.
As a result, you SHOULD check your Gemfile.lock into version control, As a result, you SHOULD check your Gemfile.lock into version control,
in both applications and gems. If you do not, every machine that checks in both applications and gems. If you do not, every machine that checks
out your repository (including your production server) will resolve all out your repository (including your production server) will resolve all
dependencies again, which will result in different versions of dependencies again, which will result in different versions of
third-party code being used if any of the gems in the Gemfile(5) or any third-party code being used if any of the gems in the Gemfile(5) or any
of their dependencies have been updated. of their dependencies have been updated.
When Bundler first shipped, the Gemfile.lock was included in the .git- When Bundler first shipped, the Gemfile.lock was included in the .git-
ignore file included with generated gems. Over time, however, it became ignore file included with generated gems. Over time, however, it became
clear that this practice forces the pain of broken dependencies onto clear that this practice forces the pain of broken dependencies onto
new contributors, while leaving existing contributors potentially new contributors, while leaving existing contributors potentially
unaware of the problem. Since bundle install is usually the first step unaware of the problem. Since bundle install is usually the first step
towards a contribution, the pain of broken dependencies would discour- towards a contribution, the pain of broken dependencies would discour-
age new contributors from contributing. As a result, we have revised age new contributors from contributing. As a result, we have revised
our guidance for gem authors to now recommend checking in the lock for our guidance for gem authors to now recommend checking in the lock for
gems. gems.
CONSERVATIVE UPDATING CONSERVATIVE UPDATING
When you make a change to the Gemfile(5) and then run bundle install, When you make a change to the Gemfile(5) and then run bundle install,
Bundler will update only the gems that you modified. Bundler will update only the gems that you modified.
In other words, if a gem that you did not modify worked before you In other words, if a gem that you did not modify worked before you
called bundle install, it will continue to use the exact same versions called bundle install, it will continue to use the exact same versions
of all dependencies as it used before the update. of all dependencies as it used before the update.
Let's take a look at an example. Here's your original Gemfile(5): Let's take a look at an example. Here's your original Gemfile(5):
@ -331,13 +331,13 @@ CONSERVATIVE UPDATING
In this case, both actionpack and activemerchant depend on activesup- In this case, both actionpack and activemerchant depend on activesup-
port. The actionpack gem depends on activesupport 2.3.8 and rack ~> port. The actionpack gem depends on activesupport 2.3.8 and rack ~>
1.1.0, while the activemerchant gem depends on activesupport >= 2.3.2, 1.1.0, while the activemerchant gem depends on activesupport >= 2.3.2,
braintree >= 2.0.0, and builder >= 2.0.0. braintree >= 2.0.0, and builder >= 2.0.0.
When the dependencies are first resolved, Bundler will select When the dependencies are first resolved, Bundler will select
activesupport 2.3.8, which satisfies the requirements of both gems in activesupport 2.3.8, which satisfies the requirements of both gems in
your Gemfile(5). your Gemfile(5).
Next, you modify your Gemfile(5) to: Next, you modify your Gemfile(5) to:
@ -351,44 +351,44 @@ CONSERVATIVE UPDATING
The actionpack 3.0.0.rc gem has a number of new dependencies, and The actionpack 3.0.0.rc gem has a number of new dependencies, and
updates the activesupport dependency to = 3.0.0.rc and the rack depen- updates the activesupport dependency to = 3.0.0.rc and the rack depen-
dency to ~> 1.2.1. dency to ~> 1.2.1.
When you run bundle install, Bundler notices that you changed the When you run bundle install, Bundler notices that you changed the
actionpack gem, but not the activemerchant gem. It evaluates the gems actionpack gem, but not the activemerchant gem. It evaluates the gems
currently being used to satisfy its requirements: currently being used to satisfy its requirements:
activesupport 2.3.8 activesupport 2.3.8
also used to satisfy a dependency in activemerchant, which is also used to satisfy a dependency in activemerchant, which is
not being updated not being updated
rack ~> 1.1.0 rack ~> 1.1.0
not currently being used to satisfy another dependency not currently being used to satisfy another dependency
Because you did not explicitly ask to update activemerchant, you would Because you did not explicitly ask to update activemerchant, you would
not expect it to suddenly stop working after updating actionpack. How- not expect it to suddenly stop working after updating actionpack. How-
ever, satisfying the new activesupport 3.0.0.rc dependency of action- ever, satisfying the new activesupport 3.0.0.rc dependency of action-
pack requires updating one of its dependencies. pack requires updating one of its dependencies.
Even though activemerchant declares a very loose dependency that theo- Even though activemerchant declares a very loose dependency that theo-
retically matches activesupport 3.0.0.rc, Bundler treats gems in your retically matches activesupport 3.0.0.rc, Bundler treats gems in your
Gemfile(5) that have not changed as an atomic unit together with their Gemfile(5) that have not changed as an atomic unit together with their
dependencies. In this case, the activemerchant dependency is treated as dependencies. In this case, the activemerchant dependency is treated as
activemerchant 1.7.1 + activesupport 2.3.8, so bundle install will activemerchant 1.7.1 + activesupport 2.3.8, so bundle install will
report that it cannot update actionpack. report that it cannot update actionpack.
To explicitly update actionpack, including its dependencies which other To explicitly update actionpack, including its dependencies which other
gems in the Gemfile(5) still depend on, run bundle update actionpack gems in the Gemfile(5) still depend on, run bundle update actionpack
(see bundle update(1)). (see bundle update(1)).
Summary: In general, after making a change to the Gemfile(5) , you Summary: In general, after making a change to the Gemfile(5) , you
should first try to run bundle install, which will guarantee that no should first try to run bundle install, which will guarantee that no
other gem in the Gemfile(5) is impacted by the change. If that does not other gem in the Gemfile(5) is impacted by the change. If that does not
work, run bundle update(1) bundle-update.1.html. work, run bundle update(1) bundle-update.1.html.
SEE ALSO SEE ALSO
o Gem install docs o Gem install docs
http://guides.rubygems.org/rubygems-basics/#installing-gems http://guides.rubygems.org/rubygems-basics/#installing-gems
o Rubygems signing docs http://guides.rubygems.org/security/ o Rubygems signing docs http://guides.rubygems.org/security/
@ -398,4 +398,4 @@ SEE ALSO
April 2019 BUNDLE-INSTALL(1) August 2019 BUNDLE-INSTALL(1)

View File

@ -1,7 +1,7 @@
.\" generated with Ronn/v0.7.3 .\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3
. .
.TH "BUNDLE\-LIST" "1" "March 2019" "" "" .TH "BUNDLE\-LIST" "1" "August 2019" "" ""
. .
.SH "NAME" .SH "NAME"
\fBbundle\-list\fR \- List all the gems in the bundle \fBbundle\-list\fR \- List all the gems in the bundle

View File

@ -40,4 +40,4 @@ OPTIONS
March 2019 BUNDLE-LIST(1) August 2019 BUNDLE-LIST(1)

View File

@ -1,7 +1,7 @@
.\" generated with Ronn/v0.7.3 .\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3
. .
.TH "BUNDLE\-LOCK" "1" "March 2019" "" "" .TH "BUNDLE\-LOCK" "1" "August 2019" "" ""
. .
.SH "NAME" .SH "NAME"
\fBbundle\-lock\fR \- Creates / Updates a lockfile without installing \fBbundle\-lock\fR \- Creates / Updates a lockfile without installing

View File

@ -16,16 +16,16 @@ DESCRIPTION
OPTIONS OPTIONS
--update=<*gems> --update=<*gems>
Ignores the existing lockfile. Resolve then updates lockfile. Ignores the existing lockfile. Resolve then updates lockfile.
Taking a list of gems or updating all gems if no list is given. Taking a list of gems or updating all gems if no list is given.
--local --local
Do not attempt to connect to rubygems.org. Instead, Bundler will Do not attempt to connect to rubygems.org. Instead, Bundler will
use the gems already present in Rubygems' cache or in ven- use the gems already present in Rubygems' cache or in ven-
dor/cache. Note that if a appropriate platform-specific gem dor/cache. Note that if a appropriate platform-specific gem
exists on rubygems.org it will not be found. exists on rubygems.org it will not be found.
--print --print
Prints the lockfile to STDOUT instead of writing to the file Prints the lockfile to STDOUT instead of writing to the file
system. system.
--lockfile=<path> --lockfile=<path>
@ -35,7 +35,7 @@ OPTIONS
Fall back to using the single-file index of all gems. Fall back to using the single-file index of all gems.
--add-platform --add-platform
Add a new platform to the lockfile, re-resolving for the addi- Add a new platform to the lockfile, re-resolving for the addi-
tion of that platform. tion of that platform.
--remove-platform --remove-platform
@ -51,7 +51,7 @@ OPTIONS
If updating, prefer updating to next major version (default). If updating, prefer updating to next major version (default).
--strict --strict
If updating, do not allow any gem to be updated past latest If updating, do not allow any gem to be updated past latest
--patch | --minor | --major. --patch | --minor | --major.
--conservative --conservative
@ -59,28 +59,28 @@ OPTIONS
do not allow shared dependencies to be updated. do not allow shared dependencies to be updated.
UPDATING ALL GEMS UPDATING ALL GEMS
If you run bundle lock with --update option without list of gems, If you run bundle lock with --update option without list of gems,
bundler will ignore any previously installed gems and resolve all bundler will ignore any previously installed gems and resolve all
dependencies again based on the latest versions of all gems available dependencies again based on the latest versions of all gems available
in the sources. in the sources.
UPDATING A LIST OF GEMS UPDATING A LIST OF GEMS
Sometimes, you want to update a single gem in the Gemfile(5), and leave Sometimes, you want to update a single gem in the Gemfile(5), and leave
the rest of the gems that you specified locked to the versions in the the rest of the gems that you specified locked to the versions in the
Gemfile.lock. Gemfile.lock.
For instance, you only want to update nokogiri, run bundle lock For instance, you only want to update nokogiri, run bundle lock
--update nokogiri. --update nokogiri.
Bundler will update nokogiri and any of its dependencies, but leave the Bundler will update nokogiri and any of its dependencies, but leave the
rest of the gems that you specified locked to the versions in the Gem- rest of the gems that you specified locked to the versions in the Gem-
file.lock. file.lock.
SUPPORTING OTHER PLATFORMS SUPPORTING OTHER PLATFORMS
If you want your bundle to support platforms other than the one you're If you want your bundle to support platforms other than the one you're
running locally, you can run bundle lock --add-platform PLATFORM to add running locally, you can run bundle lock --add-platform PLATFORM to add
PLATFORM to the lockfile, force bundler to re-resolve and consider the PLATFORM to the lockfile, force bundler to re-resolve and consider the
new platform when picking gems, all without needing to have a machine new platform when picking gems, all without needing to have a machine
that matches PLATFORM handy to install those platform-specific gems on. that matches PLATFORM handy to install those platform-specific gems on.
For a full explanation of gem platforms, see gem help platform. For a full explanation of gem platforms, see gem help platform.
@ -90,4 +90,4 @@ PATCH LEVEL OPTIONS
March 2019 BUNDLE-LOCK(1) August 2019 BUNDLE-LOCK(1)

View File

@ -1,7 +1,7 @@
.\" generated with Ronn/v0.7.3 .\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3
. .
.TH "BUNDLE\-OPEN" "1" "March 2019" "" "" .TH "BUNDLE\-OPEN" "1" "August 2019" "" ""
. .
.SH "NAME" .SH "NAME"
\fBbundle\-open\fR \- Opens the source directory for a gem in your bundle \fBbundle\-open\fR \- Opens the source directory for a gem in your bundle

View File

@ -26,4 +26,4 @@ DESCRIPTION
March 2019 BUNDLE-OPEN(1) August 2019 BUNDLE-OPEN(1)

View File

@ -1,7 +1,7 @@
.\" generated with Ronn/v0.7.3 .\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3
. .
.TH "BUNDLE\-OUTDATED" "1" "March 2019" "" "" .TH "BUNDLE\-OUTDATED" "1" "August 2019" "" ""
. .
.SH "NAME" .SH "NAME"
\fBbundle\-outdated\fR \- List installed gems with newer versions available \fBbundle\-outdated\fR \- List installed gems with newer versions available

View File

@ -128,4 +128,4 @@ FILTERING OUTPUT
March 2019 BUNDLE-OUTDATED(1) August 2019 BUNDLE-OUTDATED(1)

View File

@ -1,7 +1,7 @@
.\" generated with Ronn/v0.7.3 .\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3
. .
.TH "BUNDLE\-PACKAGE" "1" "March 2019" "" "" .TH "BUNDLE\-PACKAGE" "1" "August 2019" "" ""
. .
.SH "NAME" .SH "NAME"
\fBbundle\-package\fR \- Package your needed \fB\.gem\fR files into your application \fBbundle\-package\fR \- Package your needed \fB\.gem\fR files into your application

View File

@ -76,4 +76,4 @@ REMOTE FETCHING
March 2019 BUNDLE-PACKAGE(1) August 2019 BUNDLE-PACKAGE(1)

View File

@ -1,7 +1,7 @@
.\" generated with Ronn/v0.7.3 .\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3
. .
.TH "BUNDLE\-PLATFORM" "1" "March 2019" "" "" .TH "BUNDLE\-PLATFORM" "1" "August 2019" "" ""
. .
.SH "NAME" .SH "NAME"
\fBbundle\-platform\fR \- Displays platform compatibility information \fBbundle\-platform\fR \- Displays platform compatibility information

View File

@ -54,4 +54,4 @@ OPTIONS
March 2019 BUNDLE-PLATFORM(1) August 2019 BUNDLE-PLATFORM(1)

View File

@ -1,7 +1,7 @@
.\" generated with Ronn/v0.7.3 .\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3
. .
.TH "BUNDLE\-PRISTINE" "1" "March 2019" "" "" .TH "BUNDLE\-PRISTINE" "1" "August 2019" "" ""
. .
.SH "NAME" .SH "NAME"
\fBbundle\-pristine\fR \- Restores installed gems to their pristine condition \fBbundle\-pristine\fR \- Restores installed gems to their pristine condition

View File

@ -41,4 +41,4 @@ DESCRIPTION
March 2019 BUNDLE-PRISTINE(1) August 2019 BUNDLE-PRISTINE(1)

View File

@ -1,7 +1,7 @@
.\" generated with Ronn/v0.7.3 .\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3
. .
.TH "BUNDLE\-REMOVE" "1" "March 2019" "" "" .TH "BUNDLE\-REMOVE" "1" "August 2019" "" ""
. .
.SH "NAME" .SH "NAME"
\fBbundle\-remove\fR \- Removes gems from the Gemfile \fBbundle\-remove\fR \- Removes gems from the Gemfile

View File

@ -31,4 +31,4 @@ OPTIONS
March 2019 BUNDLE-REMOVE(1) August 2019 BUNDLE-REMOVE(1)

View File

@ -1,7 +1,7 @@
.\" generated with Ronn/v0.7.3 .\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3
. .
.TH "BUNDLE\-SHOW" "1" "March 2019" "" "" .TH "BUNDLE\-SHOW" "1" "August 2019" "" ""
. .
.SH "NAME" .SH "NAME"
\fBbundle\-show\fR \- Shows all the gems in your bundle, or the path to a gem \fBbundle\-show\fR \- Shows all the gems in your bundle, or the path to a gem

View File

@ -24,4 +24,4 @@ OPTIONS
March 2019 BUNDLE-SHOW(1) August 2019 BUNDLE-SHOW(1)

View File

@ -1,7 +1,7 @@
.\" generated with Ronn/v0.7.3 .\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3
. .
.TH "BUNDLE\-UPDATE" "1" "April 2019" "" "" .TH "BUNDLE\-UPDATE" "1" "August 2019" "" ""
. .
.SH "NAME" .SH "NAME"
\fBbundle\-update\fR \- Update your gems to the latest available versions \fBbundle\-update\fR \- Update your gems to the latest available versions

View File

@ -16,29 +16,29 @@ DESCRIPTION
eral, you should use bundle install(1) bundle-install.1.html to install eral, you should use bundle install(1) bundle-install.1.html to install
the same exact gems and versions across machines. the same exact gems and versions across machines.
You would use bundle update to explicitly update the version of a gem. You would use bundle update to explicitly update the version of a gem.
OPTIONS OPTIONS
--all Update all gems specified in Gemfile. --all Update all gems specified in Gemfile.
--group=<name>, -g=[<name>] --group=<name>, -g=[<name>]
Only update the gems in the specified group. For instance, you Only update the gems in the specified group. For instance, you
can update all gems in the development group with bundle update can update all gems in the development group with bundle update
--group development. You can also call bundle update rails --group development. You can also call bundle update rails
--group test to update the rails gem and all gems in the test --group test to update the rails gem and all gems in the test
group, for example. group, for example.
--source=<name> --source=<name>
The name of a :git or :path source used in the Gemfile(5). For The name of a :git or :path source used in the Gemfile(5). For
instance, with a :git source of instance, with a :git source of
http://github.com/rails/rails.git, you would call bundle update http://github.com/rails/rails.git, you would call bundle update
--source rails --source rails
--local --local
Do not attempt to fetch gems remotely and use the gem cache Do not attempt to fetch gems remotely and use the gem cache
instead. instead.
--ruby Update the locked version of Ruby to the current version of --ruby Update the locked version of Ruby to the current version of
Ruby. Ruby.
--bundler --bundler
@ -328,22 +328,22 @@ PATCH LEVEL EXAMPLES
the dependency from foo 1.4.5 required it. the dependency from foo 1.4.5 required it.
In case 2, only foo is requested to be unlocked, but bar is also In case 2, only foo is requested to be unlocked, but bar is also
allowed to move because it's not a declared dependency in the Gemfile. allowed to move because it's not a declared dependency in the Gemfile.
In case 3, bar goes up a whole major release, because a minor increase In case 3, bar goes up a whole major release, because a minor increase
is preferred now for foo, and when it goes to 1.5.1, it requires 3.0.0 is preferred now for foo, and when it goes to 1.5.1, it requires 3.0.0
of bar. of bar.
In case 4, foo is preferred up to a minor version, but 1.5.1 won't work In case 4, foo is preferred up to a minor version, but 1.5.1 won't work
because the --strict flag removes bar 3.0.0 from consideration since because the --strict flag removes bar 3.0.0 from consideration since
it's a major increment. it's a major increment.
In case 5, both foo and bar have any minor or major increments removed In case 5, both foo and bar have any minor or major increments removed
from consideration because of the --strict flag, so the most they can from consideration because of the --strict flag, so the most they can
move is up to 1.4.4 and 2.0.4. move is up to 1.4.4 and 2.0.4.
RECOMMENDED WORKFLOW RECOMMENDED WORKFLOW
In general, when working with an application managed with bundler, you In general, when working with an application managed with bundler, you
should use the following workflow: should use the following workflow:
o After you create your Gemfile(5) for the first time, run o After you create your Gemfile(5) for the first time, run
@ -354,7 +354,7 @@ RECOMMENDED WORKFLOW
$ git add Gemfile.lock $ git add Gemfile.lock
o When checking out this repository on another development machine, o When checking out this repository on another development machine,
run run
$ bundle install $ bundle install
@ -363,7 +363,7 @@ RECOMMENDED WORKFLOW
$ bundle install --deployment $ bundle install --deployment
o After changing the Gemfile(5) to reflect a new or update depen- o After changing the Gemfile(5) to reflect a new or update depen-
dency, run dency, run
$ bundle install $ bundle install
@ -377,7 +377,7 @@ RECOMMENDED WORKFLOW
$ bundle update rails thin $ bundle update rails thin
o If you want to update all the gems to the latest possible versions o If you want to update all the gems to the latest possible versions
that still match the gems listed in the Gemfile(5), run that still match the gems listed in the Gemfile(5), run
$ bundle update --all $ bundle update --all
@ -387,4 +387,4 @@ RECOMMENDED WORKFLOW
April 2019 BUNDLE-UPDATE(1) August 2019 BUNDLE-UPDATE(1)

View File

@ -1,7 +1,7 @@
.\" generated with Ronn/v0.7.3 .\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3
. .
.TH "BUNDLE\-VIZ" "1" "March 2019" "" "" .TH "BUNDLE\-VIZ" "1" "August 2019" "" ""
. .
.SH "NAME" .SH "NAME"
\fBbundle\-viz\fR \- Generates a visual dependency graph for your Gemfile \fBbundle\-viz\fR \- Generates a visual dependency graph for your Gemfile

View File

@ -36,4 +36,4 @@ OPTIONS
March 2019 BUNDLE-VIZ(1) August 2019 BUNDLE-VIZ(1)

View File

@ -1,7 +1,7 @@
.\" generated with Ronn/v0.7.3 .\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3
. .
.TH "BUNDLE" "1" "May 2019" "" "" .TH "BUNDLE" "1" "August 2019" "" ""
. .
.SH "NAME" .SH "NAME"
\fBbundle\fR \- Ruby Dependency Management \fBbundle\fR \- Ruby Dependency Management

View File

@ -36,7 +36,7 @@ PRIMARY COMMANDS
Update dependencies to their latest versions Update dependencies to their latest versions
bundle package(1) bundle-package.1.html bundle package(1) bundle-package.1.html
Package the .gem files required by your application into the Package the .gem files required by your application into the
vendor/cache directory vendor/cache directory
bundle exec(1) bundle-exec.1.html bundle exec(1) bundle-exec.1.html
@ -56,7 +56,7 @@ UTILITIES
Generate binstubs for executables in a gem Generate binstubs for executables in a gem
bundle check(1) bundle-check.1.html bundle check(1) bundle-check.1.html
Determine whether the requirements for your application are Determine whether the requirements for your application are
installed and available to Bundler installed and available to Bundler
bundle show(1) bundle-show.1.html bundle show(1) bundle-show.1.html
@ -96,9 +96,9 @@ UTILITIES
Removes gems from the Gemfile Removes gems from the Gemfile
PLUGINS PLUGINS
When running a command that isn't listed in PRIMARY COMMANDS or UTILI- When running a command that isn't listed in PRIMARY COMMANDS or UTILI-
TIES, Bundler will try to find an executable on your path named TIES, Bundler will try to find an executable on your path named
bundler-<command> and execute it, passing down any extra arguments to bundler-<command> and execute it, passing down any extra arguments to
it. it.
OBSOLETE OBSOLETE
@ -113,4 +113,4 @@ OBSOLETE
May 2019 BUNDLE(1) August 2019 BUNDLE(1)

View File

@ -1,7 +1,7 @@
.\" generated with Ronn/v0.7.3 .\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3
. .
.TH "GEMFILE" "5" "April 2019" "" "" .TH "GEMFILE" "5" "August 2019" "" ""
. .
.SH "NAME" .SH "NAME"
\fBGemfile\fR \- A format for describing gem dependencies for Ruby programs \fBGemfile\fR \- A format for describing gem dependencies for Ruby programs
@ -409,19 +409,16 @@ Git repositories support a number of additional options\.
. .
.TP .TP
\fBbranch\fR, \fBtag\fR, and \fBref\fR \fBbranch\fR, \fBtag\fR, and \fBref\fR
You \fBMUST\fR only specify at most one of these options\. The default is \fB:branch => "master"\fR You \fBMUST\fR only specify at most one of these options\. The default is \fB:branch => "master"\fR\. For example:
.
.TP
For example:
. .
.IP .IP
git "https://github\.com/rails/rails\.git", :branch => "5\-0\-stable" do gem "rails", :git => "https://github\.com/rails/rails\.git", :branch => "5\-0\-stable"
. .
.IP .IP
git "https://github\.com/rails/rails\.git", :tag => "v5\.0\.0" do gem "rails", :git => "https://github\.com/rails/rails\.git", :tag => "v5\.0\.0"
. .
.IP .IP
git "https://github\.com/rails/rails\.git", :ref => "4aded" do gem "rails", :git => "https://github\.com/rails/rails\.git", :ref => "4aded"
. .
.TP .TP
\fBsubmodules\fR \fBsubmodules\fR

View File

@ -99,13 +99,13 @@ RUBY
exist. Some of the more well-known implementations include Rubinius exist. Some of the more well-known implementations include Rubinius
https://rubinius.com/, and JRuby http://jruby.org/. Rubinius is an https://rubinius.com/, and JRuby http://jruby.org/. Rubinius is an
alternative implementation of Ruby written in Ruby. JRuby is an alternative implementation of Ruby written in Ruby. JRuby is an
implementation of Ruby on the JVM, short for Java Virtual Machine. implementation of Ruby on the JVM, short for Java Virtual Machine.
ENGINE VERSION ENGINE VERSION
Each application may specify a Ruby engine version. If an engine ver- Each application may specify a Ruby engine version. If an engine ver-
sion is specified, an engine must also be specified. If the engine is sion is specified, an engine must also be specified. If the engine is
"ruby" the engine version specified must match the Ruby version. "ruby" the engine version specified must match the Ruby version.
@ -147,9 +147,9 @@ GEMS
REQUIRE AS REQUIRE AS
Each gem MAY specify files that should be used when autorequiring via Each gem MAY specify files that should be used when autorequiring via
Bundler.require. You may pass an array with multiple files or true if Bundler.require. You may pass an array with multiple files or true if
file you want required has same name as gem or false to prevent any file you want required has same name as gem or false to prevent any
file from being autorequired. file from being autorequired.
@ -160,7 +160,7 @@ GEMS
The argument defaults to the name of the gem. For example, these are The argument defaults to the name of the gem. For example, these are
identical: identical:
@ -172,8 +172,8 @@ GEMS
GROUPS GROUPS
Each gem MAY specify membership in one or more groups. Any gem that Each gem MAY specify membership in one or more groups. Any gem that
does not specify membership in any group is placed in the default does not specify membership in any group is placed in the default
group. group.
@ -183,7 +183,7 @@ GEMS
The Bundler runtime allows its two main methods, Bundler.setup and The Bundler runtime allows its two main methods, Bundler.setup and
Bundler.require, to limit their impact to particular groups. Bundler.require, to limit their impact to particular groups.
@ -203,9 +203,9 @@ GEMS
The Bundler CLI allows you to specify a list of groups whose gems bun- The Bundler CLI allows you to specify a list of groups whose gems bun-
dle install should not install with the --without option. To specify dle install should not install with the --without option. To specify
multiple groups to ignore, specify a list of groups separated by spa- multiple groups to ignore, specify a list of groups separated by spa-
ces. ces.
@ -217,23 +217,23 @@ GEMS
After running bundle install --without test, bundler will remember that After running bundle install --without test, bundler will remember that
you excluded the test group in the last installation. The next time you you excluded the test group in the last installation. The next time you
run bundle install, without any --without option, bundler will recall run bundle install, without any --without option, bundler will recall
it. it.
Also, calling Bundler.setup with no parameters, or calling require Also, calling Bundler.setup with no parameters, or calling require
"bundler/setup" will setup all groups except for the ones you excluded "bundler/setup" will setup all groups except for the ones you excluded
via --without (since they are not available). via --without (since they are not available).
Note that on bundle install, bundler downloads and evaluates all gems, Note that on bundle install, bundler downloads and evaluates all gems,
in order to create a single canonical list of all of the required gems in order to create a single canonical list of all of the required gems
and their dependencies. This means that you cannot list different ver- and their dependencies. This means that you cannot list different ver-
sions of the same gems in different groups. For more details, see sions of the same gems in different groups. For more details, see
Understanding Bundler https://bundler.io/rationale.html. Understanding Bundler https://bundler.io/rationale.html.
PLATFORMS PLATFORMS
If a gem should only be used in a particular platform or set of plat- If a gem should only be used in a particular platform or set of plat-
forms, you can specify them. Platforms are essentially identical to forms, you can specify them. Platforms are essentially identical to
groups, except that you do not need to use the --without install-time groups, except that you do not need to use the --without install-time
flag to exclude groups of gems for other platforms. flag to exclude groups of gems for other platforms.
There are a number of Gemfile platforms: There are a number of Gemfile platforms:
@ -256,7 +256,7 @@ GEMS
mswin Windows mswin Windows
You can restrict further by platform and version for all platforms You can restrict further by platform and version for all platforms
except for rbx, jruby, truffleruby and mswin. except for rbx, jruby, truffleruby and mswin.
To specify a version in addition to a platform, append the version num- To specify a version in addition to a platform, append the version num-
@ -290,12 +290,12 @@ GEMS
All operations involving groups (bundle install bundle-install.1.html, All operations involving groups (bundle install bundle-install.1.html,
Bundler.setup, Bundler.require) behave exactly the same as if any Bundler.setup, Bundler.require) behave exactly the same as if any
groups not matching the current platform were explicitly excluded. groups not matching the current platform were explicitly excluded.
SOURCE SOURCE
You can select an alternate Rubygems repository for a gem using the You can select an alternate Rubygems repository for a gem using the
':source' option. ':source' option.
@ -304,22 +304,22 @@ GEMS
This forces the gem to be loaded from this source and ignores any This forces the gem to be loaded from this source and ignores any
global sources declared at the top level of the file. If the gem does global sources declared at the top level of the file. If the gem does
not exist in this source, it will not be installed. not exist in this source, it will not be installed.
Bundler will search for child dependencies of this gem by first looking Bundler will search for child dependencies of this gem by first looking
in the source selected for the parent, but if they are not found there, in the source selected for the parent, but if they are not found there,
it will fall back on global sources using the ordering described in it will fall back on global sources using the ordering described in
SOURCE PRIORITY. SOURCE PRIORITY.
Selecting a specific source repository this way also suppresses the Selecting a specific source repository this way also suppresses the
ambiguous gem warning described above in GLOBAL SOURCES (#source). ambiguous gem warning described above in GLOBAL SOURCES (#source).
Using the :source option for an individual gem will also make that Using the :source option for an individual gem will also make that
source available as a possible global source for any other gems which source available as a possible global source for any other gems which
do not specify explicit sources. Thus, when adding gems with explicit do not specify explicit sources. Thus, when adding gems with explicit
sources, it is recommended that you also ensure all other gems in the sources, it is recommended that you also ensure all other gems in the
Gemfile are using explicit sources. Gemfile are using explicit sources.
GIT GIT
@ -337,27 +337,27 @@ GEMS
If using SSH, the user that you use to run bundle install MUST have the If using SSH, the user that you use to run bundle install MUST have the
appropriate keys available in their $HOME/.ssh. appropriate keys available in their $HOME/.ssh.
NOTE: http:// and git:// URLs should be avoided if at all possible. NOTE: http:// and git:// URLs should be avoided if at all possible.
These protocols are unauthenticated, so a man-in-the-middle attacker These protocols are unauthenticated, so a man-in-the-middle attacker
can deliver malicious code and compromise your system. HTTPS and SSH can deliver malicious code and compromise your system. HTTPS and SSH
are strongly preferred. are strongly preferred.
The group, platforms, and require options are available and behave The group, platforms, and require options are available and behave
exactly the same as they would for a normal gem. exactly the same as they would for a normal gem.
A git repository SHOULD have at least one file, at the root of the A git repository SHOULD have at least one file, at the root of the
directory containing the gem, with the extension .gemspec. This file directory containing the gem, with the extension .gemspec. This file
MUST contain a valid gem specification, as expected by the gem build MUST contain a valid gem specification, as expected by the gem build
command. command.
If a git repository does not have a .gemspec, bundler will attempt to If a git repository does not have a .gemspec, bundler will attempt to
create one, but it will not contain any dependencies, executables, or C create one, but it will not contain any dependencies, executables, or C
extension compilation instructions. As a result, it may fail to prop- extension compilation instructions. As a result, it may fail to prop-
erly integrate into your application. erly integrate into your application.
If a git repository does have a .gemspec for the gem you attached it If a git repository does have a .gemspec for the gem you attached it
to, a version specifier, if provided, means that the git repository is to, a version specifier, if provided, means that the git repository is
only valid if the .gemspec specifies a version matching the version only valid if the .gemspec specifies a version matching the version
specifier. If not, bundler will print a warning. specifier. If not, bundler will print a warning.
@ -368,34 +368,34 @@ GEMS
If a git repository does not have a .gemspec for the gem you attached If a git repository does not have a .gemspec for the gem you attached
it to, a version specifier MUST be provided. Bundler will use this ver- it to, a version specifier MUST be provided. Bundler will use this ver-
sion in the simple .gemspec it creates. sion in the simple .gemspec it creates.
Git repositories support a number of additional options. Git repositories support a number of additional options.
branch, tag, and ref branch, tag, and ref
You MUST only specify at most one of these options. The default You MUST only specify at most one of these options. The default
is :branch => "master" is :branch => "master". For example:
For example: gem "rails", :git => "https://github.com/rails/rails.git",
:branch => "5-0-stable"
git "https://github.com/rails/rails.git", :branch => "5-0-sta- gem "rails", :git => "https://github.com/rails/rails.git", :tag
ble" do => "v5.0.0"
git "https://github.com/rails/rails.git", :tag => "v5.0.0" do gem "rails", :git => "https://github.com/rails/rails.git", :ref
=> "4aded"
git "https://github.com/rails/rails.git", :ref => "4aded" do
submodules submodules
For reference, a git submodule For reference, a git submodule
https://git-scm.com/book/en/v2/Git-Tools-Submodules lets you https://git-scm.com/book/en/v2/Git-Tools-Submodules lets you
have another git repository within a subfolder of your reposi- have another git repository within a subfolder of your reposi-
tory. Specify :submodules => true to cause bundler to expand any tory. Specify :submodules => true to cause bundler to expand any
submodules included in the git repository submodules included in the git repository
If a git repository contains multiple .gemspecs, each .gemspec repre- If a git repository contains multiple .gemspecs, each .gemspec repre-
sents a gem located at the same place in the file system as the .gem- sents a gem located at the same place in the file system as the .gem-
spec. spec.
@ -410,16 +410,16 @@ GEMS
To install a gem located in a git repository, bundler changes to the To install a gem located in a git repository, bundler changes to the
directory containing the gemspec, runs gem build name.gemspec and then directory containing the gemspec, runs gem build name.gemspec and then
installs the resulting gem. The gem build command, which comes standard installs the resulting gem. The gem build command, which comes standard
with Rubygems, evaluates the .gemspec in the context of the directory with Rubygems, evaluates the .gemspec in the context of the directory
in which it is located. in which it is located.
GIT SOURCE GIT SOURCE
A custom git source can be defined via the git_source method. Provide A custom git source can be defined via the git_source method. Provide
the source's name as an argument, and a block which receives a single the source's name as an argument, and a block which receives a single
argument and interpolates it into a string to return the full repo argument and interpolates it into a string to return the full repo
address: address:
@ -442,10 +442,10 @@ GEMS
rently expands to an insecure git:// URL. This allows a man-in-the-mid- rently expands to an insecure git:// URL. This allows a man-in-the-mid-
dle attacker to compromise your system. dle attacker to compromise your system.
If the git repository you want to use is hosted on GitHub and is pub- If the git repository you want to use is hosted on GitHub and is pub-
lic, you can use the :github shorthand to specify the github username lic, you can use the :github shorthand to specify the github username
and repository name (without the trailing ".git"), separated by a and repository name (without the trailing ".git"), separated by a
slash. If both the username and repository name are the same, you can slash. If both the username and repository name are the same, you can
omit one. omit one.
@ -468,7 +468,7 @@ GEMS
GIST GIST
If the git repository you want to use is hosted as a Github Gist and is If the git repository you want to use is hosted as a Github Gist and is
public, you can use the :gist shorthand to specify the gist identifier public, you can use the :gist shorthand to specify the gist identifier
(without the trailing ".git"). (without the trailing ".git").
@ -485,14 +485,14 @@ GEMS
Since the gist method is a specialization of git_source, it accepts a Since the gist method is a specialization of git_source, it accepts a
:branch named argument. :branch named argument.
BITBUCKET BITBUCKET
If the git repository you want to use is hosted on Bitbucket and is If the git repository you want to use is hosted on Bitbucket and is
public, you can use the :bitbucket shorthand to specify the bitbucket public, you can use the :bitbucket shorthand to specify the bitbucket
username and repository name (without the trailing ".git"), separated username and repository name (without the trailing ".git"), separated
by a slash. If both the username and repository name are the same, you by a slash. If both the username and repository name are the same, you
can omit one. can omit one.
@ -510,19 +510,19 @@ GEMS
Since the bitbucket method is a specialization of git_source, it Since the bitbucket method is a specialization of git_source, it
accepts a :branch named argument. accepts a :branch named argument.
PATH PATH
You can specify that a gem is located in a particular location on the You can specify that a gem is located in a particular location on the
file system. Relative paths are resolved relative to the directory con- file system. Relative paths are resolved relative to the directory con-
taining the Gemfile. taining the Gemfile.
Similar to the semantics of the :git option, the :path option requires Similar to the semantics of the :git option, the :path option requires
that the directory in question either contains a .gemspec for the gem, that the directory in question either contains a .gemspec for the gem,
or that you specify an explicit version that bundler should use. or that you specify an explicit version that bundler should use.
Unlike :git, bundler does not compile C extensions for gems specified Unlike :git, bundler does not compile C extensions for gems specified
as paths. as paths.
@ -532,8 +532,8 @@ GEMS
If you would like to use multiple local gems directly from the filesys- If you would like to use multiple local gems directly from the filesys-
tem, you can set a global path option to the path containing the gem's tem, you can set a global path option to the path containing the gem's
files. This will automatically load gemspec files from subdirectories. files. This will automatically load gemspec files from subdirectories.
@ -601,48 +601,48 @@ INSTALL_IF
GEMSPEC GEMSPEC
The .gemspec http://guides.rubygems.org/specification-reference/ file The .gemspec http://guides.rubygems.org/specification-reference/ file
is where you provide metadata about your gem to Rubygems. Some required is where you provide metadata about your gem to Rubygems. Some required
Gemspec attributes include the name, description, and homepage of your Gemspec attributes include the name, description, and homepage of your
gem. This is also where you specify the dependencies your gem needs to gem. This is also where you specify the dependencies your gem needs to
run. run.
If you wish to use Bundler to help install dependencies for a gem while If you wish to use Bundler to help install dependencies for a gem while
it is being developed, use the gemspec method to pull in the dependen- it is being developed, use the gemspec method to pull in the dependen-
cies listed in the .gemspec file. cies listed in the .gemspec file.
The gemspec method adds any runtime dependencies as gem requirements in The gemspec method adds any runtime dependencies as gem requirements in
the default group. It also adds development dependencies as gem the default group. It also adds development dependencies as gem
requirements in the development group. Finally, it adds a gem require- requirements in the development group. Finally, it adds a gem require-
ment on your project (:path => '.'). In conjunction with Bundler.setup, ment on your project (:path => '.'). In conjunction with Bundler.setup,
this allows you to require project files in your test code as you would this allows you to require project files in your test code as you would
if the project were installed as a gem; you need not manipulate the if the project were installed as a gem; you need not manipulate the
load path manually or require project files via relative paths. load path manually or require project files via relative paths.
The gemspec method supports optional :path, :glob, :name, and :develop- The gemspec method supports optional :path, :glob, :name, and :develop-
ment_group options, which control where bundler looks for the .gemspec, ment_group options, which control where bundler looks for the .gemspec,
the glob it uses to look for the gemspec (defaults to: "{,,/*}.gem- the glob it uses to look for the gemspec (defaults to: "{,,/*}.gem-
spec"), what named .gemspec it uses (if more than one is present), and spec"), what named .gemspec it uses (if more than one is present), and
which group development dependencies are included in. which group development dependencies are included in.
When a gemspec dependency encounters version conflicts during resolu- When a gemspec dependency encounters version conflicts during resolu-
tion, the local version under development will always be selected -- tion, the local version under development will always be selected --
even if there are remote versions that better match other requirements even if there are remote versions that better match other requirements
for the gemspec gem. for the gemspec gem.
SOURCE PRIORITY SOURCE PRIORITY
When attempting to locate a gem to satisfy a gem requirement, bundler When attempting to locate a gem to satisfy a gem requirement, bundler
uses the following priority order: uses the following priority order:
1. The source explicitly attached to the gem (using :source, :path, or 1. The source explicitly attached to the gem (using :source, :path, or
:git) :git)
2. For implicit gems (dependencies of explicit gems), any source, git, 2. For implicit gems (dependencies of explicit gems), any source, git,
or path repository declared on the parent. This results in bundler or path repository declared on the parent. This results in bundler
prioritizing the ActiveSupport gem from the Rails git repository prioritizing the ActiveSupport gem from the Rails git repository
over ones from rubygems.org over ones from rubygems.org
3. The sources specified via global source lines, searching each 3. The sources specified via global source lines, searching each
source in your Gemfile from last added to first added. source in your Gemfile from last added to first added.
@ -650,4 +650,4 @@ SOURCE PRIORITY
April 2019 GEMFILE(5) August 2019 GEMFILE(5)

25
man/index.txt Normal file
View File

@ -0,0 +1,25 @@
Gemfile(5) gemfile.5
bundle(1) bundle.1
bundle-add(1) bundle-add.1
bundle-binstubs(1) bundle-binstubs.1
bundle-check(1) bundle-check.1
bundle-clean(1) bundle-clean.1
bundle-config(1) bundle-config.1
bundle-doctor(1) bundle-doctor.1
bundle-exec(1) bundle-exec.1
bundle-gem(1) bundle-gem.1
bundle-info(1) bundle-info.1
bundle-init(1) bundle-init.1
bundle-inject(1) bundle-inject.1
bundle-install(1) bundle-install.1
bundle-list(1) bundle-list.1
bundle-lock(1) bundle-lock.1
bundle-open(1) bundle-open.1
bundle-outdated(1) bundle-outdated.1
bundle-package(1) bundle-package.1
bundle-platform(1) bundle-platform.1
bundle-pristine(1) bundle-pristine.1
bundle-remove(1) bundle-remove.1
bundle-show(1) bundle-show.1
bundle-update(1) bundle-update.1
bundle-viz(1) bundle-viz.1

View File

@ -105,7 +105,7 @@ RSpec.describe "The library itself" do
end end
it "has no malformed whitespace" do it "has no malformed whitespace" do
exempt = /\.gitmodules|\.marshal|fixtures|vendor|LICENSE|vcr_cassettes|rbreadline\.diff/ exempt = /\.gitmodules|\.marshal|fixtures|vendor|LICENSE|vcr_cassettes|rbreadline\.diff|\.txt$/
error_messages = [] error_messages = []
Dir.chdir(root) do Dir.chdir(root) do
files = ruby_core? ? `git ls-files -z -- lib/bundler lib/bundler.rb spec/bundler` : `git ls-files -z` files = ruby_core? ? `git ls-files -z -- lib/bundler lib/bundler.rb spec/bundler` : `git ls-files -z`
@ -132,7 +132,7 @@ RSpec.describe "The library itself" do
end end
it "does not include any leftover debugging or development mechanisms" do it "does not include any leftover debugging or development mechanisms" do
exempt = %r{quality_spec.rb|support/helpers|vcr_cassettes|\.md|\.ronn} exempt = %r{quality_spec.rb|support/helpers|vcr_cassettes|\.md|\.ronn|\.txt|\.5|\.1}
error_messages = [] error_messages = []
Dir.chdir(root) do Dir.chdir(root) do
files = ruby_core? ? `git ls-files -z -- lib/bundler lib/bundler.rb spec/bundler` : `git ls-files -z` files = ruby_core? ? `git ls-files -z -- lib/bundler lib/bundler.rb spec/bundler` : `git ls-files -z`
@ -253,9 +253,8 @@ RSpec.describe "The library itself" do
it "ships the correct set of files", :ruby_repo do it "ships the correct set of files", :ruby_repo do
Dir.chdir(root) do Dir.chdir(root) do
git_list = IO.popen("git ls-files -z", &:read).split("\x0").select {|f| f.match(%r{^(lib|exe)/}) } git_list = IO.popen("git ls-files -z", &:read).split("\x0").select {|f| f.match(%r{^(lib|man|exe)/}) }
git_list += %w[CHANGELOG.md LICENSE.md README.md bundler.gemspec] git_list += %w[CHANGELOG.md LICENSE.md README.md bundler.gemspec]
git_list += Dir.glob("man/**/*")
gem_list = Gem::Specification.load(gemspec.to_s).files gem_list = Gem::Specification.load(gemspec.to_s).files

View File

@ -22,8 +22,6 @@ end
$debug = false $debug = false
Spec::Manpages.setup unless Gem.win_platform?
module Gem module Gem
def self.ruby=(ruby) def self.ruby=(ruby)
@ruby = ruby @ruby = ruby

View File

@ -1,14 +0,0 @@
# frozen_string_literal: true
module Spec
module Manpages
def self.setup
man_path = Spec::Path.root.join("man")
return if man_path.children(false).select {|file| file.extname == ".ronn" }.all? do |man|
Dir[man_path.join("#{man.to_s[0..-6]}*.txt").to_s].any?
end
system(Spec::Path.root.join("bin", "rake").to_s, "man:build") || raise("Failed building man pages")
end
end
end