rubygems-update 2.7.6 → 2.7.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (148) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +2 -23
  3. data/History.txt +116 -0
  4. data/Manifest.txt +3 -3
  5. data/Rakefile +12 -2
  6. data/bundler/CHANGELOG.md +130 -0
  7. data/bundler/README.md +5 -1
  8. data/bundler/bundler.gemspec +2 -1
  9. data/bundler/lib/bundler.rb +12 -8
  10. data/bundler/lib/bundler/build_metadata.rb +19 -2
  11. data/bundler/lib/bundler/cli.rb +3 -1
  12. data/bundler/lib/bundler/cli/check.rb +1 -1
  13. data/bundler/lib/bundler/cli/exec.rb +4 -4
  14. data/bundler/lib/bundler/cli/gem.rb +5 -2
  15. data/bundler/lib/bundler/cli/init.rb +5 -0
  16. data/bundler/lib/bundler/cli/install.rb +2 -2
  17. data/bundler/lib/bundler/cli/outdated.rb +1 -1
  18. data/bundler/lib/bundler/cli/update.rb +3 -3
  19. data/bundler/lib/bundler/compact_index_client/updater.rb +10 -1
  20. data/bundler/lib/bundler/current_ruby.rb +8 -1
  21. data/bundler/lib/bundler/definition.rb +33 -23
  22. data/bundler/lib/bundler/dep_proxy.rb +2 -2
  23. data/bundler/lib/bundler/dependency.rb +1 -0
  24. data/bundler/lib/bundler/deprecate.rb +2 -1
  25. data/bundler/lib/bundler/endpoint_specification.rb +1 -1
  26. data/bundler/lib/bundler/env.rb +10 -8
  27. data/bundler/lib/bundler/fetcher.rb +3 -3
  28. data/bundler/lib/bundler/fetcher/downloader.rb +10 -5
  29. data/bundler/lib/bundler/fetcher/index.rb +2 -2
  30. data/bundler/lib/bundler/friendly_errors.rb +2 -0
  31. data/bundler/lib/bundler/gem_helper.rb +1 -1
  32. data/bundler/lib/bundler/gem_version_promoter.rb +12 -0
  33. data/bundler/lib/bundler/injector.rb +5 -5
  34. data/bundler/lib/bundler/installer.rb +12 -4
  35. data/bundler/lib/bundler/installer/gem_installer.rb +9 -2
  36. data/bundler/lib/bundler/installer/parallel_installer.rb +1 -1
  37. data/bundler/lib/bundler/lazy_specification.rb +1 -1
  38. data/bundler/lib/bundler/mirror.rb +2 -2
  39. data/bundler/lib/bundler/plugin.rb +2 -2
  40. data/bundler/lib/bundler/plugin/index.rb +7 -2
  41. data/bundler/lib/bundler/process_lock.rb +1 -1
  42. data/bundler/lib/bundler/resolver.rb +10 -9
  43. data/bundler/lib/bundler/resolver/spec_group.rb +0 -5
  44. data/bundler/lib/bundler/ruby_version.rb +1 -1
  45. data/bundler/lib/bundler/rubygems_integration.rb +9 -3
  46. data/bundler/lib/bundler/runtime.rb +2 -2
  47. data/bundler/lib/bundler/shared_helpers.rb +15 -3
  48. data/bundler/lib/bundler/source/git.rb +2 -1
  49. data/bundler/lib/bundler/source/git/git_proxy.rb +6 -1
  50. data/bundler/lib/bundler/source/metadata.rb +1 -1
  51. data/bundler/lib/bundler/source/rubygems.rb +11 -2
  52. data/bundler/lib/bundler/source/rubygems/remote.rb +4 -1
  53. data/bundler/lib/bundler/spec_set.rb +4 -1
  54. data/bundler/lib/bundler/templates/Executable +1 -1
  55. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +8 -2
  56. data/bundler/lib/bundler/templates/newgem/travis.yml.tt +2 -0
  57. data/bundler/lib/bundler/ui/shell.rb +3 -1
  58. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +11 -1
  59. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +7 -2
  60. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +1 -1
  61. data/bundler/lib/bundler/version.rb +1 -1
  62. data/bundler/man/bundle-binstubs.ronn +3 -3
  63. data/bundler/man/bundle-check.ronn +3 -3
  64. data/bundler/man/bundle-config.ronn +13 -9
  65. data/bundler/man/bundle-doctor.ronn +33 -0
  66. data/bundler/man/bundle-exec.ronn +3 -3
  67. data/bundler/man/bundle-gem.ronn +1 -1
  68. data/bundler/man/bundle-init.ronn +15 -4
  69. data/bundler/man/bundle-inject.ronn +3 -3
  70. data/bundler/man/bundle-install.ronn +12 -3
  71. data/bundler/man/bundle-lock.ronn +1 -1
  72. data/bundler/man/bundle-outdated.ronn +1 -1
  73. data/bundler/man/bundle-package.ronn +3 -3
  74. data/bundler/man/bundle-show.ronn +3 -2
  75. data/bundler/man/bundle-update.ronn +18 -14
  76. data/bundler/man/bundle-viz.ronn +1 -1
  77. data/bundler/man/bundle.ronn +27 -27
  78. data/bundler/man/gemfile.5.ronn +24 -9
  79. data/lib/rubygems.rb +24 -11
  80. data/lib/rubygems/bundler_version_finder.rb +9 -22
  81. data/lib/rubygems/command_manager.rb +6 -4
  82. data/lib/rubygems/commands/install_command.rb +7 -0
  83. data/lib/rubygems/commands/owner_command.rb +4 -1
  84. data/lib/rubygems/commands/push_command.rb +37 -4
  85. data/lib/rubygems/commands/setup_command.rb +3 -3
  86. data/lib/rubygems/commands/uninstall_command.rb +1 -1
  87. data/lib/rubygems/commands/unpack_command.rb +1 -1
  88. data/lib/rubygems/core_ext/kernel_require.rb +2 -7
  89. data/lib/rubygems/dependency.rb +1 -0
  90. data/lib/rubygems/dependency_installer.rb +4 -2
  91. data/lib/rubygems/exceptions.rb +5 -1
  92. data/lib/rubygems/gemcutter_utilities.rb +5 -2
  93. data/lib/rubygems/indexer.rb +1 -1
  94. data/lib/rubygems/install_update_options.rb +1 -1
  95. data/lib/rubygems/installer.rb +29 -6
  96. data/lib/rubygems/package.rb +20 -2
  97. data/lib/rubygems/package/tar_header.rb +3 -1
  98. data/lib/rubygems/package/tar_writer.rb +2 -3
  99. data/lib/rubygems/remote_fetcher.rb +1 -1
  100. data/lib/rubygems/request_set.rb +28 -17
  101. data/lib/rubygems/requirement.rb +14 -3
  102. data/lib/rubygems/resolver/api_specification.rb +5 -0
  103. data/lib/rubygems/security.rb +6 -1
  104. data/lib/rubygems/server.rb +3 -3
  105. data/lib/rubygems/source.rb +1 -1
  106. data/lib/rubygems/specification.rb +7 -10
  107. data/lib/rubygems/ssl_certs/{index.rubygems.org → rubygems.org}/GlobalSignRootCA.pem +0 -0
  108. data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem +21 -0
  109. data/lib/rubygems/test_case.rb +22 -4
  110. data/lib/rubygems/test_utilities.rb +1 -1
  111. data/lib/rubygems/user_interaction.rb +9 -2
  112. data/lib/rubygems/util/licenses.rb +35 -4
  113. data/lib/rubygems/version.rb +7 -1
  114. data/lib/ubygems.rb +3 -0
  115. data/test/rubygems/test_bundled_ca.rb +7 -4
  116. data/test/rubygems/test_gem.rb +45 -10
  117. data/test/rubygems/test_gem_bundler_version_finder.rb +8 -7
  118. data/test/rubygems/test_gem_command_manager.rb +2 -2
  119. data/test/rubygems/test_gem_commands_build_command.rb +2 -0
  120. data/test/rubygems/test_gem_commands_install_command.rb +37 -0
  121. data/test/rubygems/test_gem_commands_push_command.rb +20 -0
  122. data/test/rubygems/test_gem_commands_setup_command.rb +6 -1
  123. data/test/rubygems/test_gem_commands_signin_command.rb +1 -1
  124. data/test/rubygems/test_gem_commands_uninstall_command.rb +1 -1
  125. data/test/rubygems/test_gem_dependency.rb +1 -1
  126. data/test/rubygems/test_gem_ext_rake_builder.rb +0 -4
  127. data/test/rubygems/test_gem_install_update_options.rb +2 -0
  128. data/test/rubygems/test_gem_installer.rb +109 -3
  129. data/test/rubygems/test_gem_package.rb +90 -5
  130. data/test/rubygems/test_gem_package_tar_header.rb +2 -1
  131. data/test/rubygems/test_gem_remote_fetcher.rb +6 -2
  132. data/test/rubygems/test_gem_request.rb +5 -2
  133. data/test/rubygems/test_gem_requirement.rb +6 -0
  134. data/test/rubygems/test_gem_resolver_api_specification.rb +24 -0
  135. data/test/rubygems/test_gem_resolver_installer_set.rb +1 -1
  136. data/test/rubygems/test_gem_security_policy.rb +3 -3
  137. data/test/rubygems/test_gem_server.rb +12 -12
  138. data/test/rubygems/test_gem_specification.rb +27 -13
  139. data/test/rubygems/test_gem_stream_ui.rb +2 -2
  140. data/test/rubygems/test_gem_text.rb +5 -0
  141. data/test/rubygems/test_gem_util.rb +4 -2
  142. data/test/rubygems/test_gem_version.rb +29 -2
  143. data/util/ci +1 -0
  144. data/util/generate_spdx_license_list.rb +15 -6
  145. data/util/update_bundled_ca_certificates.rb +1 -3
  146. metadata +12 -12
  147. data/lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -23
  148. data/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -25
@@ -8,9 +8,9 @@ bundle-inject(1) -- Add named gem(s) with version requirements to Gemfile
8
8
  ## DESCRIPTION
9
9
 
10
10
  Adds the named gem(s) with their version requirements to the resolved
11
- `Gemfile(5)`.
11
+ [`Gemfile(5)`][Gemfile(5)].
12
12
 
13
- This command will add the gem to both your `Gemfile(5)` and Gemfile.lock if it
13
+ This command will add the gem to both your [`Gemfile(5)`][Gemfile(5)] and Gemfile.lock if it
14
14
  isn't listed yet.
15
15
 
16
16
  Example:
@@ -19,4 +19,4 @@ Example:
19
19
  bundle inject 'rack' '> 0'
20
20
 
21
21
  This will inject the 'rack' gem with a version greater than 0 in your
22
- `Gemfile(5)` and Gemfile.lock
22
+ [`Gemfile(5)`][Gemfile(5)] and Gemfile.lock
@@ -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].
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] 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] 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] after running
31
- [bundle package(1)][bundle-package], 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] 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)`.
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)`.
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] 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] 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], 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] 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]:
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] 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].
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] 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)`.
17
+ The associated gems must also be installed via [`bundle install(1)`](bundle-install.1.html).
18
18
 
19
19
  ## OPTIONS
20
20
 
@@ -26,73 +26,73 @@ started, and Gemfile(5) for more information on the `Gemfile` format.
26
26
 
27
27
  ## BUNDLE COMMANDS
28
28
 
29
- We divide `bundle` subcommands into primary commands and utilities.
29
+ We divide `bundle` subcommands into primary commands and utilities:
30
30
 
31
31
  ## PRIMARY COMMANDS
32
32
 
33
- * [`bundle install(1)`][bundle-install]:
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]:
36
+ * [`bundle update(1)`](bundle-update.1.html):
37
37
  Update dependencies to their latest versions
38
38
 
39
- * [`bundle package(1)`][bundle-package]:
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]:
44
- Execute a script in the context of the current bundle
43
+ * [`bundle exec(1)`](bundle-exec.1.html):
44
+ Execute a script in the current bundle
45
45
 
46
- * [`bundle config(1)`][bundle-config]:
47
- Specify and read configuration options for bundler
46
+ * [`bundle config(1)`](bundle-config.1.html):
47
+ Specify and read configuration options for Bundler
48
48
 
49
49
  * `bundle help(1)`:
50
50
  Display detailed help for each subcommand
51
51
 
52
52
  ## UTILITIES
53
53
 
54
- * `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)`:
57
+ * [`bundle binstubs(1)`](bundle-binstubs.1.html):
58
58
  Generate binstubs for executables in a gem
59
59
 
60
- * `bundle check(1)`:
60
+ * [`bundle check(1)`](bundle-check.1.html):
61
61
  Determine whether the requirements for your application are installed
62
- and available to bundler
62
+ and available to Bundler
63
63
 
64
- * `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]:
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
- Start an IRB session in the context of the current bundle
71
+ Start an IRB session in the current bundle
72
72
 
73
- * `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)`:
79
+ * [`bundle viz(1)`](bundle-viz.1.html):
80
80
  Generate a visual representation of your dependencies
81
81
 
82
- * `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]:
86
- Create a simple gem, suitable for development with bundler
85
+ * [`bundle gem(1)`](bundle-gem.1.html):
86
+ Create a simple gem, suitable for development with Bundler
87
87
 
88
- * [`bundle platform(1)`][bundle-platform]:
88
+ * [`bundle platform(1)`](bundle-platform.1.html):
89
89
  Display platform compatibility information
90
90
 
91
- * `bundle clean(1)`:
92
- Clean up unused gems in your bundler directory
91
+ * [`bundle clean(1)`](bundle-clean.1.html):
92
+ Clean up unused gems in your Bundler directory
93
93
 
94
- * `bundle doctor(1)`:
95
- Display warnings about common potential problems
94
+ * [`bundle doctor(1)`](bundle-doctor.1.html):
95
+ Display warnings about common problems
96
96
 
97
97
  ## PLUGINS
98
98
 
@@ -102,7 +102,7 @@ and execute it, passing down any extra arguments to it.
102
102
 
103
103
  ## OBSOLETE
104
104
 
105
- These commands are obsolete and should no longer be used
105
+ These commands are obsolete and should no longer be used:
106
106
 
107
107
  * `bundle cache(1)`
108
108
  * `bundle show(1)`
@@ -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] 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`, `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.
@@ -465,7 +480,7 @@ software is installed or some other conditions are met.
465
480
 
466
481
  ## GEMSPEC
467
482
 
468
- The [.gemspec](http://guides.rubygems.org/specification-reference/) file is where
483
+ The [`.gemspec`](http://guides.rubygems.org/specification-reference/) file is where
469
484
  you provide metadata about your gem to Rubygems. Some required Gemspec
470
485
  attributes include the name, description, and homepage of your gem. This is
471
486
  also where you specify the dependencies your gem needs to run.
@@ -10,7 +10,7 @@ require 'rbconfig'
10
10
  require 'thread'
11
11
 
12
12
  module Gem
13
- VERSION = "2.7.6"
13
+ VERSION = "2.7.11"
14
14
  end
15
15
 
16
16
  # Must be first since it unloads the prelude from 1.9.2
@@ -247,7 +247,7 @@ module Gem
247
247
 
248
248
  ##
249
249
  # Find the full path to the executable for gem +name+. If the +exec_name+
250
- # is not given, the gem's default_executable is chosen, otherwise the
250
+ # is not given, an exception will be raised, otherwise the
251
251
  # specified executable's path is returned. +requirements+ allows
252
252
  # you to specify specific gem versions.
253
253
 
@@ -270,12 +270,7 @@ module Gem
270
270
 
271
271
  return loaded if loaded && dep.matches_spec?(loaded)
272
272
 
273
- find_specs = proc { dep.matching_specs(true) }
274
- if dep.to_s == "bundler (>= 0.a)"
275
- specs = Gem::BundlerVersionFinder.without_filtering(&find_specs)
276
- else
277
- specs = find_specs.call
278
- end
273
+ specs = dep.matching_specs(true)
279
274
 
280
275
  specs = specs.find_all { |spec|
281
276
  spec.executables.include? exec_name
@@ -295,7 +290,7 @@ module Gem
295
290
 
296
291
  ##
297
292
  # Find the full path to the executable for gem +name+. If the +exec_name+
298
- # is not given, the gem's default_executable is chosen, otherwise the
293
+ # is not given, an exception will be raised, otherwise the
299
294
  # specified executable's path is returned. +requirements+ allows
300
295
  # you to specify specific gem versions.
301
296
  #
@@ -604,7 +599,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
604
599
 
605
600
  private_class_method :find_home
606
601
 
607
- # FIXME deprecate these in 3.0
602
+ # TODO: remove in RubyGems 4.0
608
603
 
609
604
  ##
610
605
  # Zlib::GzipReader wrapper that unzips +data+.
@@ -613,6 +608,11 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
613
608
  Gem::Util.gunzip data
614
609
  end
615
610
 
611
+ class << self
612
+ extend Gem::Deprecate
613
+ deprecate :gunzip, "Gem::Util.gunzip", 2018, 12
614
+ end
615
+
616
616
  ##
617
617
  # Zlib::GzipWriter wrapper that zips +data+.
618
618
 
@@ -620,6 +620,11 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
620
620
  Gem::Util.gzip data
621
621
  end
622
622
 
623
+ class << self
624
+ extend Gem::Deprecate
625
+ deprecate :gzip, "Gem::Util.gzip", 2018, 12
626
+ end
627
+
623
628
  ##
624
629
  # A Zlib::Inflate#inflate wrapper
625
630
 
@@ -627,6 +632,11 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
627
632
  Gem::Util.inflate data
628
633
  end
629
634
 
635
+ class << self
636
+ extend Gem::Deprecate
637
+ deprecate :inflate, "Gem::Util.inflate", 2018, 12
638
+ end
639
+
630
640
  ##
631
641
  # Top level install helper method. Allows you to install gems interactively:
632
642
  #
@@ -1225,9 +1235,12 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
1225
1235
 
1226
1236
  class << self
1227
1237
  ##
1228
- # TODO remove with RubyGems 3.0
1238
+ # TODO remove with RubyGems 4.0
1229
1239
 
1230
1240
  alias detect_gemdeps use_gemdeps # :nodoc:
1241
+
1242
+ extend Gem::Deprecate
1243
+ deprecate :detect_gemdeps, "Gem.use_gemdeps", 2018, 12
1231
1244
  end
1232
1245
 
1233
1246
  # FIX: Almost everywhere else we use the `def self.` way of defining class