rubygems-update 2.7.7 → 2.7.8

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of rubygems-update might be problematic. Click here for more details.

Files changed (84) hide show
  1. checksums.yaml +4 -4
  2. data/History.txt +51 -0
  3. data/Rakefile +12 -2
  4. data/bundler/CHANGELOG.md +80 -0
  5. data/bundler/README.md +1 -1
  6. data/bundler/bundler.gemspec +2 -1
  7. data/bundler/lib/bundler.rb +10 -6
  8. data/bundler/lib/bundler/build_metadata.rb +19 -2
  9. data/bundler/lib/bundler/cli.rb +1 -1
  10. data/bundler/lib/bundler/cli/exec.rb +1 -0
  11. data/bundler/lib/bundler/cli/update.rb +3 -3
  12. data/bundler/lib/bundler/current_ruby.rb +8 -1
  13. data/bundler/lib/bundler/definition.rb +18 -13
  14. data/bundler/lib/bundler/dep_proxy.rb +2 -2
  15. data/bundler/lib/bundler/dependency.rb +1 -0
  16. data/bundler/lib/bundler/deprecate.rb +2 -1
  17. data/bundler/lib/bundler/endpoint_specification.rb +1 -1
  18. data/bundler/lib/bundler/env.rb +10 -8
  19. data/bundler/lib/bundler/fetcher.rb +1 -1
  20. data/bundler/lib/bundler/fetcher/downloader.rb +10 -5
  21. data/bundler/lib/bundler/gem_helper.rb +1 -1
  22. data/bundler/lib/bundler/gem_version_promoter.rb +12 -0
  23. data/bundler/lib/bundler/injector.rb +1 -1
  24. data/bundler/lib/bundler/installer/gem_installer.rb +6 -4
  25. data/bundler/lib/bundler/installer/parallel_installer.rb +1 -1
  26. data/bundler/lib/bundler/lazy_specification.rb +1 -1
  27. data/bundler/lib/bundler/mirror.rb +2 -2
  28. data/bundler/lib/bundler/plugin.rb +2 -2
  29. data/bundler/lib/bundler/plugin/index.rb +1 -1
  30. data/bundler/lib/bundler/process_lock.rb +1 -1
  31. data/bundler/lib/bundler/resolver.rb +10 -9
  32. data/bundler/lib/bundler/resolver/spec_group.rb +0 -4
  33. data/bundler/lib/bundler/ruby_version.rb +1 -1
  34. data/bundler/lib/bundler/runtime.rb +1 -1
  35. data/bundler/lib/bundler/shared_helpers.rb +15 -3
  36. data/bundler/lib/bundler/source/metadata.rb +1 -1
  37. data/bundler/lib/bundler/source/rubygems.rb +6 -2
  38. data/bundler/lib/bundler/source/rubygems/remote.rb +4 -1
  39. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +4 -0
  40. data/bundler/lib/bundler/templates/newgem/travis.yml.tt +2 -0
  41. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +11 -1
  42. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +7 -2
  43. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +1 -1
  44. data/bundler/lib/bundler/version.rb +1 -1
  45. data/bundler/man/bundle-binstubs.ronn +1 -1
  46. data/bundler/man/bundle-config.ronn +4 -4
  47. data/bundler/man/bundle-exec.ronn +2 -2
  48. data/bundler/man/bundle-gem.ronn +1 -1
  49. data/bundler/man/bundle-install.ronn +12 -3
  50. data/bundler/man/bundle-lock.ronn +1 -1
  51. data/bundler/man/bundle-outdated.ronn +1 -1
  52. data/bundler/man/bundle-package.ronn +3 -3
  53. data/bundler/man/bundle-show.ronn +3 -2
  54. data/bundler/man/bundle-update.ronn +18 -14
  55. data/bundler/man/bundle-viz.ronn +1 -1
  56. data/bundler/man/bundle.ronn +18 -18
  57. data/bundler/man/gemfile.5.ronn +23 -8
  58. data/lib/rubygems.rb +3 -3
  59. data/lib/rubygems/commands/install_command.rb +7 -0
  60. data/lib/rubygems/commands/push_command.rb +36 -3
  61. data/lib/rubygems/commands/uninstall_command.rb +1 -1
  62. data/lib/rubygems/core_ext/kernel_require.rb +2 -7
  63. data/lib/rubygems/install_update_options.rb +1 -1
  64. data/lib/rubygems/package/tar_header.rb +3 -1
  65. data/lib/rubygems/package/tar_writer.rb +2 -3
  66. data/lib/rubygems/request_set.rb +25 -16
  67. data/lib/rubygems/requirement.rb +14 -3
  68. data/lib/rubygems/resolver/api_specification.rb +5 -0
  69. data/lib/rubygems/security.rb +6 -1
  70. data/lib/rubygems/util/licenses.rb +35 -4
  71. data/lib/rubygems/version.rb +7 -2
  72. data/test/rubygems/test_gem_commands_build_command.rb +2 -0
  73. data/test/rubygems/test_gem_commands_install_command.rb +37 -0
  74. data/test/rubygems/test_gem_commands_push_command.rb +20 -0
  75. data/test/rubygems/test_gem_install_update_options.rb +2 -0
  76. data/test/rubygems/test_gem_remote_fetcher.rb +5 -1
  77. data/test/rubygems/test_gem_request.rb +5 -2
  78. data/test/rubygems/test_gem_requirement.rb +6 -0
  79. data/test/rubygems/test_gem_resolver_api_specification.rb +24 -0
  80. data/test/rubygems/test_gem_specification.rb +17 -3
  81. data/test/rubygems/test_gem_version.rb +29 -3
  82. data/util/ci +1 -1
  83. data/util/generate_spdx_license_list.rb +15 -6
  84. metadata +2 -2
@@ -108,11 +108,21 @@ module Bundler::Molinillo
108
108
  # dependency graph?
109
109
  # @return true iff there is a path following edges within this {#graph}
110
110
  def path_to?(other)
111
- equal?(other) || successors.any? { |v| v.path_to?(other) }
111
+ _path_to?(other)
112
112
  end
113
113
 
114
114
  alias descendent? path_to?
115
115
 
116
+ # @param [Vertex] other the vertex to check if there's a path to
117
+ # @param [Set<Vertex>] visited the vertices of {#graph} that have been visited
118
+ # @return [Boolean] whether there is a path to `other` from `self`
119
+ def _path_to?(other, visited = Set.new)
120
+ return false unless visited.add?(self)
121
+ return true if equal?(other)
122
+ successors.any? { |v| v._path_to?(other, visited) }
123
+ end
124
+ protected :_path_to?
125
+
116
126
  # Is there a path from `other` to `self` following edges in the
117
127
  # dependency graph?
118
128
  # @return true iff there is a path following edges within this {#graph}
@@ -18,7 +18,7 @@ module Bundler::Molinillo
18
18
  # @param [Array<Object>] required_by @see {#required_by}
19
19
  def initialize(dependency, required_by = [])
20
20
  @dependency = dependency
21
- @required_by = required_by
21
+ @required_by = required_by.uniq
22
22
  super()
23
23
  end
24
24
 
@@ -101,9 +101,14 @@ module Bundler::Molinillo
101
101
  printable_requirement = opts.delete(:printable_requirement) { proc { |req| req.to_s } }
102
102
  additional_message_for_conflict = opts.delete(:additional_message_for_conflict) { proc {} }
103
103
  version_for_spec = opts.delete(:version_for_spec) { proc(&:to_s) }
104
+ incompatible_version_message_for_conflict = opts.delete(:incompatible_version_message_for_conflict) do
105
+ proc do |name, _conflict|
106
+ %(#{solver_name} could not find compatible versions for #{possibility_type} "#{name}":)
107
+ end
108
+ end
104
109
 
105
110
  conflicts.sort.reduce(''.dup) do |o, (name, conflict)|
106
- o << %(\n#{solver_name} could not find compatible versions for #{possibility_type} "#{name}":\n)
111
+ o << "\n" << incompatible_version_message_for_conflict.call(name, conflict) << "\n"
107
112
  if conflict.locked_requirement
108
113
  o << %( In snapshot (#{name_for_locking_dependency_source}):\n)
109
114
  o << %( #{printable_requirement.call(conflict.locked_requirement)}\n)
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Bundler::Molinillo
4
4
  # The version of Bundler::Molinillo.
5
- VERSION = '0.6.4'.freeze
5
+ VERSION = '0.6.6'.freeze
6
6
  end
@@ -7,7 +7,7 @@ module Bundler
7
7
  # We're doing this because we might write tests that deal
8
8
  # with other versions of bundler and we are unsure how to
9
9
  # handle this better.
10
- VERSION = "1.16.2" unless defined?(::Bundler::VERSION)
10
+ VERSION = "1.16.6" unless defined?(::Bundler::VERSION)
11
11
 
12
12
  def self.overwrite_loaded_gem_version
13
13
  begin
@@ -40,4 +40,4 @@ Calling binstubs with [GEM [GEM]] will create binstubs for all given gems.
40
40
  ## BUNDLE INSTALL --BINSTUBS
41
41
 
42
42
  To create binstubs for all the gems in the bundle you can use the `--binstubs`
43
- flag in [bundle install(1)][bundle-install(1)].
43
+ flag in [bundle install(1)](bundle-install.1.html).
@@ -102,11 +102,11 @@ After running this command, every time bundler needs to install the
102
102
  Configuration keys in bundler have two forms: the canonical form and the
103
103
  environment variable form.
104
104
 
105
- For instance, passing the `--without` flag to [bundle install(1)][bundle-install(1)]
105
+ For instance, passing the `--without` flag to [bundle install(1)](bundle-install.1.html)
106
106
  prevents Bundler from installing certain groups specified in the Gemfile(5). Bundler
107
107
  persists this value in `app/.bundle/config` so that calls to `Bundler.setup`
108
108
  do not try to find gems from the `Gemfile` that you didn't install. Additionally,
109
- subsequent calls to [bundle install(1)][bundle-install(1)] remember this setting
109
+ subsequent calls to [bundle install(1)](bundle-install.1.html) remember this setting
110
110
  and skip those groups.
111
111
 
112
112
  The canonical form of this configuration is `"without"`. To convert the canonical
@@ -120,7 +120,7 @@ the environment variable `BUNDLE_LOCAL__RACK`.
120
120
  ## LIST OF AVAILABLE KEYS
121
121
 
122
122
  The following is a list of all configuration keys and their purpose. You can
123
- learn more about their operation in [bundle install(1)][bundle-install(1)].
123
+ learn more about their operation in [bundle install(1)](bundle-install.1.html).
124
124
 
125
125
  * `allow_bundler_dependency_conflicts` (`BUNDLE_ALLOW_BUNDLER_DEPENDENCY_CONFLICTS`):
126
126
  Allow resolving to specifications that have dependencies on `bundler` that
@@ -281,7 +281,7 @@ learn more about their operation in [bundle install(1)][bundle-install(1)].
281
281
  A `:`-separated list of groups whose gems bundler should not install.
282
282
 
283
283
  In general, you should set these settings per-application by using the applicable
284
- flag to the [bundle install(1)][bundle-install(1)] or [bundle package(1)][bundle-package(1)] command.
284
+ flag to the [bundle install(1)](bundle-install.1.html) or [bundle package(1)](bundle-package.1.html) command.
285
285
 
286
286
  You can set them globally either via environment variables or `bundle config`,
287
287
  whichever is preferable for your setup. If you use both, environment variables
@@ -12,7 +12,7 @@ This command executes the command, making all gems specified in the
12
12
 
13
13
  Essentially, if you would normally have run something like
14
14
  `rspec spec/my_spec.rb`, and you want to use the gems specified
15
- in the [`Gemfile(5)`][Gemfile(5)] and installed via [bundle install(1)][bundle-install(1)], you
15
+ in the [`Gemfile(5)`][Gemfile(5)] and installed via [bundle install(1)](bundle-install.1.html), you
16
16
  should run `bundle exec rspec spec/my_spec.rb`.
17
17
 
18
18
  Note that `bundle exec` does not require that an executable is
@@ -27,7 +27,7 @@ available on your shell's `$PATH`.
27
27
 
28
28
  ## BUNDLE INSTALL --BINSTUBS
29
29
 
30
- If you use the `--binstubs` flag in [bundle install(1)][bundle-install(1)], Bundler will
30
+ If you use the `--binstubs` flag in [bundle install(1)](bundle-install.1.html), Bundler will
31
31
  automatically create a directory (which defaults to `app_root/bin`)
32
32
  containing all of the executables available from gems in the bundle.
33
33
 
@@ -75,4 +75,4 @@ configuration file using the following names:
75
75
 
76
76
  ## SEE ALSO
77
77
 
78
- * [bundle config(1)][bundle-config(1)]
78
+ * [bundle config(1)](bundle-config.1.html)
@@ -290,12 +290,21 @@ of a dependency of a gem in your Gemfile(5)) can result in radically
290
290
  different gems being needed to satisfy all dependencies.
291
291
 
292
292
  As a result, you `SHOULD` check your `Gemfile.lock` into version
293
- control. If you do not, every machine that checks out your
294
- repository (including your production server) will resolve all
293
+ control, in both applications and gems. If you do not, every machine that
294
+ checks out your repository (including your production server) will resolve all
295
295
  dependencies again, which will result in different versions of
296
296
  third-party code being used if `any` of the gems in the Gemfile(5)
297
297
  or any of their dependencies have been updated.
298
298
 
299
+ When Bundler first shipped, the `Gemfile.lock` was included in the `.gitignore`
300
+ file included with generated gems. Over time, however, it became clear that
301
+ this practice forces the pain of broken dependencies onto new contributors,
302
+ while leaving existing contributors potentially unaware of the problem. Since
303
+ `bundle install` is usually the first step towards a contribution, the pain of
304
+ broken dependencies would discourage new contributors from contributing. As a
305
+ result, we have revised our guidance for gem authors to now recommend checking
306
+ in the lock for gems.
307
+
299
308
  ## CONSERVATIVE UPDATING
300
309
 
301
310
  When you make a change to the Gemfile(5) and then run `bundle install`,
@@ -361,7 +370,7 @@ which other gems in the Gemfile(5) still depend on, run
361
370
  `Summary`: In general, after making a change to the Gemfile(5) , you
362
371
  should first try to run `bundle install`, which will guarantee that no
363
372
  other gem in the Gemfile(5) is impacted by the change. If that
364
- does not work, run [bundle update(1)][bundle-update(1)].
373
+ does not work, run [bundle update(1)](bundle-update.1.html).
365
374
 
366
375
  ## SEE ALSO
367
376
 
@@ -91,4 +91,4 @@ For a full explanation of gem platforms, see `gem help platform`.
91
91
 
92
92
  ## PATCH LEVEL OPTIONS
93
93
 
94
- See [bundle update(1)][bundle-update(1)] for details.
94
+ See [bundle update(1)](bundle-update.1.html) for details.
@@ -69,7 +69,7 @@ are up to date, Bundler will exit with a status of 0. Otherwise, it will exit 1.
69
69
 
70
70
  ## PATCH LEVEL OPTIONS
71
71
 
72
- See [bundle update(1)][bundle-update(1)] for details.
72
+ See [bundle update(1)](bundle-update.1.html) for details.
73
73
 
74
74
  One difference between the patch level options in `bundle update` and here is the `--strict` option.
75
75
  `--strict` was already an option on outdated before the patch level options were added. `--strict`
@@ -27,8 +27,8 @@ in your local bundler configuration.
27
27
 
28
28
  ## REMOTE FETCHING
29
29
 
30
- By default, if you run `bundle install(1)`][bundle-install(1)] after running
31
- [bundle package(1)][bundle-package(1)], bundler will still connect to `rubygems.org`
30
+ By default, if you run `bundle install(1)`](bundle-install.1.html) after running
31
+ [bundle package(1)](bundle-package.1.html), bundler will still connect to `rubygems.org`
32
32
  to check whether a platform-specific gem exists for any of the gems
33
33
  in `vendor/cache`.
34
34
 
@@ -66,7 +66,7 @@ machine and check in the gems. For instance, you can run
66
66
  staging process, and check in the `vendor/cache` before
67
67
  deploying to production.
68
68
 
69
- By default, [bundle package(1)][bundle-package(1)] fetches and also
69
+ By default, [bundle package(1)](bundle-package.1.html) fetches and also
70
70
  installs the gems to the default location. To package the
71
71
  dependencies to `vendor/cache` without installing them to the
72
72
  local install location, you can run `bundle package --no-install`.
@@ -9,7 +9,7 @@ bundle-show(1) -- Shows all the gems in your bundle, or the path to a gem
9
9
  ## DESCRIPTION
10
10
 
11
11
  Without the [GEM] option, `show` will print a list of the names and versions of
12
- all gems that are required by your [`Gemfile(5)`][Gemfile(5)].
12
+ all gems that are required by your [`Gemfile(5)`][Gemfile(5)], sorted by name.
13
13
 
14
14
  Calling show with [GEM] will list the exact location of that gem on your
15
15
  machine.
@@ -17,4 +17,5 @@ machine.
17
17
  ## OPTIONS
18
18
 
19
19
  * `--paths`:
20
- List the paths of all gems that are required by your [`Gemfile(5)`][Gemfile(5)].
20
+ List the paths of all gems that are required by your [`Gemfile(5)`][Gemfile(5)],
21
+ sorted by gem name.
@@ -3,7 +3,8 @@ bundle-update(1) -- Update your gems to the latest available versions
3
3
 
4
4
  ## SYNOPSIS
5
5
 
6
- `bundle update` <*gems> [--group=NAME]
6
+ `bundle update` <*gems> [--all]
7
+ [--group=NAME]
7
8
  [--source=NAME]
8
9
  [--local]
9
10
  [--ruby]
@@ -18,9 +19,9 @@ bundle-update(1) -- Update your gems to the latest available versions
18
19
 
19
20
  ## DESCRIPTION
20
21
 
21
- Update the gems specified (all gems, if none are specified), ignoring
22
+ Update the gems specified (all gems, if `--all` flag is used), ignoring
22
23
  the previously installed gems specified in the `Gemfile.lock`. In
23
- general, you should use [bundle install(1)][bundle-install(1)] to install the same exact
24
+ general, you should use [bundle install(1)](bundle-install.1.html) to install the same exact
24
25
  gems and versions across machines.
25
26
 
26
27
  You would use `bundle update` to explicitly update the version of a
@@ -28,6 +29,9 @@ gem.
28
29
 
29
30
  ## OPTIONS
30
31
 
32
+ * `--all`:
33
+ Update all gems specified in Gemfile.
34
+
31
35
  * `--group=<name>`, `-g=[<name>]`:
32
36
  Only update the gems in the specified group. For instance, you can update all gems
33
37
  in the development group with `bundle update --group development`. You can also
@@ -80,7 +84,7 @@ gem.
80
84
 
81
85
  ## UPDATING ALL GEMS
82
86
 
83
- If you run `bundle update` with no parameters, bundler will ignore
87
+ If you run `bundle update --all`, bundler will ignore
84
88
  any previously installed gems and resolve all dependencies again
85
89
  based on the latest versions of all gems available in the sources.
86
90
 
@@ -91,7 +95,7 @@ Consider the following Gemfile(5):
91
95
  gem "rails", "3.0.0.rc"
92
96
  gem "nokogiri"
93
97
 
94
- When you run [bundle install(1)][bundle-install(1)] the first time, bundler will resolve
98
+ When you run [bundle install(1)](bundle-install.1.html) the first time, bundler will resolve
95
99
  all of the dependencies, all the way down, and install what you need:
96
100
 
97
101
  Fetching gem metadata from https://rubygems.org/.........
@@ -128,21 +132,21 @@ all of the dependencies, all the way down, and install what you need:
128
132
 
129
133
  As you can see, even though you have two gems in the Gemfile(5), your application
130
134
  needs 26 different gems in order to run. Bundler remembers the exact versions
131
- it installed in `Gemfile.lock`. The next time you run [bundle install(1)][bundle-install(1)], bundler skips
135
+ it installed in `Gemfile.lock`. The next time you run [bundle install(1)](bundle-install.1.html), bundler skips
132
136
  the dependency resolution and installs the same gems as it installed last time.
133
137
 
134
138
  After checking in the `Gemfile.lock` into version control and cloning it on another
135
- machine, running [bundle install(1)][bundle-install(1)] will _still_ install the gems that you installed
139
+ machine, running [bundle install(1)](bundle-install.1.html) will _still_ install the gems that you installed
136
140
  last time. You don't need to worry that a new release of `erubis` or `mail` changes
137
141
  the gems you use.
138
142
 
139
143
  However, from time to time, you might want to update the gems you are using to the
140
144
  newest versions that still match the gems in your Gemfile(5).
141
145
 
142
- To do this, run `bundle update`, which will ignore the `Gemfile.lock`, and resolve
146
+ To do this, run `bundle update --all`, which will ignore the `Gemfile.lock`, and resolve
143
147
  all the dependencies again. Keep in mind that this process can result in a significantly
144
148
  different set of the 25 gems, based on the requirements of new gems that the gem
145
- authors released since the last time you ran `bundle update`.
149
+ authors released since the last time you ran `bundle update --all`.
146
150
 
147
151
  ## UPDATING A LIST OF GEMS
148
152
 
@@ -192,12 +196,12 @@ update all dependencies of that gem, including those that are also dependencies
192
196
  of another gem.
193
197
 
194
198
  To prevent updating shared dependencies, prior to version 1.14 the only option
195
- was the `CONSERVATIVE UPDATING` behavior in [bundle install(1)][bundle-install(1)]:
199
+ was the `CONSERVATIVE UPDATING` behavior in [bundle install(1)](bundle-install.1.html):
196
200
 
197
201
  In this scenario, updating the `thin` version manually in the Gemfile(5),
198
- and then running [bundle install(1)][bundle-install(1)] will only update `daemons` and `eventmachine`,
202
+ and then running [bundle install(1)](bundle-install.1.html) will only update `daemons` and `eventmachine`,
199
203
  but not `rack`. For more information, see the `CONSERVATIVE UPDATING` section
200
- of [bundle install(1)][bundle-install(1)].
204
+ of [bundle install(1)](bundle-install.1.html).
201
205
 
202
206
  Starting with 1.14, specifying the `--conservative` option will also prevent shared
203
207
  dependencies from being updated.
@@ -335,7 +339,7 @@ use the following workflow:
335
339
 
336
340
  $ git add Gemfile.lock
337
341
 
338
- * If [bundle install(1)][bundle-install(1)] reports a conflict, manually update the specific
342
+ * If [bundle install(1)](bundle-install.1.html) reports a conflict, manually update the specific
339
343
  gems that you changed in the Gemfile(5)
340
344
 
341
345
  $ bundle update rails thin
@@ -343,4 +347,4 @@ use the following workflow:
343
347
  * If you want to update all the gems to the latest possible versions that
344
348
  still match the gems listed in the Gemfile(5), run
345
349
 
346
- $ bundle update
350
+ $ bundle update --all
@@ -14,7 +14,7 @@ bundle-viz(1) -- Generates a visual dependency graph for your Gemfile
14
14
  `viz` generates a PNG file of the current `Gemfile(5)` as a dependency graph.
15
15
  `viz` requires the ruby-graphviz gem (and its dependencies).
16
16
 
17
- The associated gems must also be installed via [`bundle install(1)`][bundle-install(1)].
17
+ The associated gems must also be installed via [`bundle install(1)`](bundle-install.1.html).
18
18
 
19
19
  ## OPTIONS
20
20
 
@@ -30,20 +30,20 @@ We divide `bundle` subcommands into primary commands and utilities:
30
30
 
31
31
  ## PRIMARY COMMANDS
32
32
 
33
- * [`bundle install(1)`][bundle-install(1)]:
33
+ * [`bundle install(1)`](bundle-install.1.html):
34
34
  Install the gems specified by the `Gemfile` or `Gemfile.lock`
35
35
 
36
- * [`bundle update(1)`][bundle-update(1)]:
36
+ * [`bundle update(1)`](bundle-update.1.html):
37
37
  Update dependencies to their latest versions
38
38
 
39
- * [`bundle package(1)`][bundle-package(1)]:
39
+ * [`bundle package(1)`](bundle-package.1.html):
40
40
  Package the .gem files required by your application into the
41
41
  `vendor/cache` directory
42
42
 
43
- * [`bundle exec(1)`][bundle-exec(1)]:
43
+ * [`bundle exec(1)`](bundle-exec.1.html):
44
44
  Execute a script in the current bundle
45
45
 
46
- * [`bundle config(1)`][bundle-config(1)]:
46
+ * [`bundle config(1)`](bundle-config.1.html):
47
47
  Specify and read configuration options for Bundler
48
48
 
49
49
  * `bundle help(1)`:
@@ -51,47 +51,47 @@ We divide `bundle` subcommands into primary commands and utilities:
51
51
 
52
52
  ## UTILITIES
53
53
 
54
- * [`bundle add(1)`][bundle-add(1)]:
54
+ * [`bundle add(1)`](bundle-add.1.html):
55
55
  Add the named gem to the Gemfile and run `bundle install`
56
56
 
57
- * [`bundle binstubs(1)`][bundle-binstubs(1)]:
57
+ * [`bundle binstubs(1)`](bundle-binstubs.1.html):
58
58
  Generate binstubs for executables in a gem
59
59
 
60
- * [`bundle check(1)`][bundle-check(1)]:
60
+ * [`bundle check(1)`](bundle-check.1.html):
61
61
  Determine whether the requirements for your application are installed
62
62
  and available to Bundler
63
63
 
64
- * [`bundle show(1)`][bundle-show(1)]:
64
+ * [`bundle show(1)`](bundle-show.1.html):
65
65
  Show the source location of a particular gem in the bundle
66
66
 
67
- * [`bundle outdated(1)`][bundle-outdated(1)]:
67
+ * [`bundle outdated(1)`](bundle-outdated.1.html):
68
68
  Show all of the outdated gems in the current bundle
69
69
 
70
70
  * `bundle console(1)`:
71
71
  Start an IRB session in the current bundle
72
72
 
73
- * [`bundle open(1)`][bundle-open(1)]:
73
+ * [`bundle open(1)`](bundle-open.1.html):
74
74
  Open an installed gem in the editor
75
75
 
76
- * [`bundle lock(1)`][bundle-lock]:
76
+ * [`bundle lock(1)`](bundle-lock.1.hmtl):
77
77
  Generate a lockfile for your dependencies
78
78
 
79
- * [`bundle viz(1)`][bundle-viz(1)]:
79
+ * [`bundle viz(1)`](bundle-viz.1.html):
80
80
  Generate a visual representation of your dependencies
81
81
 
82
- * [`bundle init(1)`][bundle-init(1)]:
82
+ * [`bundle init(1)`](bundle-init.1.html):
83
83
  Generate a simple `Gemfile`, placed in the current directory
84
84
 
85
- * [`bundle gem(1)`][bundle-gem(1)]:
85
+ * [`bundle gem(1)`](bundle-gem.1.html):
86
86
  Create a simple gem, suitable for development with Bundler
87
87
 
88
- * [`bundle platform(1)`][bundle-platform(1)]:
88
+ * [`bundle platform(1)`](bundle-platform.1.html):
89
89
  Display platform compatibility information
90
90
 
91
- * [`bundle clean(1)`][bundle-clean(1)]:
91
+ * [`bundle clean(1)`](bundle-clean.1.html):
92
92
  Clean up unused gems in your Bundler directory
93
93
 
94
- * `bundle doctor(1)`:
94
+ * [`bundle doctor(1)`](bundle-doctor.1.html):
95
95
  Display warnings about common problems
96
96
 
97
97
  ## PLUGINS
@@ -35,7 +35,7 @@ this warning, by using the [`:source` option](#SOURCE) or a
35
35
 
36
36
  ### CREDENTIALS
37
37
 
38
- Some gem sources require a username and password. Use [bundle config(1)][bundle-config(1)] to set
38
+ Some gem sources require a username and password. Use [bundle config(1)](bundle-config.1.html) to set
39
39
  the username and password for any of the sources that need it. The command must
40
40
  be run once on each computer that will install the Gemfile, but this keeps the
41
41
  credentials from being stored in plain text in version control.
@@ -59,8 +59,8 @@ All parameters are `OPTIONAL` unless otherwise specified.
59
59
  ### VERSION (required)
60
60
 
61
61
  The version of Ruby that your application requires. If your application
62
- requires an alternate Ruby engine, such as JRuby or Rubinius, this should be
63
- the Ruby version that the engine is compatible with.
62
+ requires an alternate Ruby engine, such as JRuby, Rubinius or TruffleRuby, this
63
+ should be the Ruby version that the engine is compatible with.
64
64
 
65
65
  ruby "1.9.3"
66
66
 
@@ -188,22 +188,24 @@ platforms.
188
188
  There are a number of `Gemfile` platforms:
189
189
 
190
190
  * `ruby`:
191
- C Ruby (MRI) or Rubinius, but `NOT` Windows
191
+ C Ruby (MRI), Rubinius or TruffleRuby, but `NOT` Windows
192
192
  * `mri`:
193
- Same as _ruby_, but not Rubinius
193
+ Same as _ruby_, but only C Ruby (MRI)
194
194
  * `mingw`:
195
195
  Windows 32 bit 'mingw32' platform (aka RubyInstaller)
196
196
  * `x64_mingw`:
197
197
  Windows 64 bit 'mingw32' platform (aka RubyInstaller x64)
198
198
  * `rbx`:
199
- Same as _ruby_, but only Rubinius (not MRI)
199
+ Rubinius
200
200
  * `jruby`:
201
201
  JRuby
202
+ * `truffleruby`:
203
+ TruffleRuby
202
204
  * `mswin`:
203
205
  Windows
204
206
 
205
207
  You can restrict further by platform and version for all platforms *except* for
206
- `rbx`, `jruby`, and `mswin`.
208
+ `rbx`, `jruby`, `truffleruby` and `mswin`.
207
209
 
208
210
  To specify a version in addition to a platform, append the version number without
209
211
  the delimiter to the platform. For example, to specify that a gem should only be
@@ -228,7 +230,7 @@ As with groups, you can specify one or more platforms:
228
230
  gem "ruby-debug", :platforms => :mri_18
229
231
  gem "nokogiri", :platforms => [:mri_18, :jruby]
230
232
 
231
- All operations involving groups ([`bundle install`][bundle-install(1)], `Bundler.setup`,
233
+ All operations involving groups ([`bundle install`](bundle-install.1.html), `Bundler.setup`,
232
234
  `Bundler.require`) behave exactly the same as if any groups not
233
235
  matching the current platform were explicitly excluded.
234
236
 
@@ -251,6 +253,12 @@ Selecting a specific source repository this way also suppresses the ambiguous
251
253
  gem warning described above in
252
254
  [GLOBAL SOURCES (#source)](#GLOBAL-SOURCES).
253
255
 
256
+ Using the `:source` option for an individual gem will also make that source
257
+ available as a possible global source for any other gems which do not specify
258
+ explicit sources. Thus, when adding gems with explicit sources, it is
259
+ recommended that you also ensure all other gems in the Gemfile are using
260
+ explicit sources.
261
+
254
262
  ### GIT
255
263
 
256
264
  If necessary, you can specify that a gem is located at a particular
@@ -453,6 +461,13 @@ In the case of the `git` block form, the `:ref`, `:branch`, `:tag`,
453
461
  and `:submodules` options may be passed to the `git` method, and
454
462
  all gems in the block will inherit those options.
455
463
 
464
+ The presence of a `source` block in a Gemfile also makes that source
465
+ available as a possible global source for any other gems which do not specify
466
+ explicit sources. Thus, when defining source blocks, it is
467
+ recommended that you also ensure all other gems in the Gemfile are using
468
+ explicit sources, either via source blocks or `:source` directives on
469
+ individual gems.
470
+
456
471
  ## INSTALL_IF
457
472
 
458
473
  The `install_if` method allows gems to be installed based on a proc or lambda.