bundler 2.2.16 → 2.4.19

Sign up to get free protection for your applications and to get access to all the features.
Files changed (280) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +971 -7
  3. data/README.md +4 -7
  4. data/bundler.gemspec +10 -13
  5. data/exe/bundle +12 -24
  6. data/exe/bundler +1 -1
  7. data/lib/bundler/.document +1 -0
  8. data/lib/bundler/build_metadata.rb +3 -3
  9. data/lib/bundler/cli/add.rb +1 -1
  10. data/lib/bundler/cli/binstubs.rb +6 -2
  11. data/lib/bundler/cli/cache.rb +1 -1
  12. data/lib/bundler/cli/check.rb +5 -3
  13. data/lib/bundler/cli/common.rb +6 -2
  14. data/lib/bundler/cli/config.rb +10 -1
  15. data/lib/bundler/cli/console.rb +2 -2
  16. data/lib/bundler/cli/doctor.rb +22 -5
  17. data/lib/bundler/cli/exec.rb +1 -6
  18. data/lib/bundler/cli/gem.rb +147 -35
  19. data/lib/bundler/cli/info.rb +28 -7
  20. data/lib/bundler/cli/init.rb +6 -2
  21. data/lib/bundler/cli/install.rb +26 -58
  22. data/lib/bundler/cli/issue.rb +4 -3
  23. data/lib/bundler/cli/list.rb +7 -1
  24. data/lib/bundler/cli/lock.rb +11 -4
  25. data/lib/bundler/cli/open.rb +7 -6
  26. data/lib/bundler/cli/outdated.rb +23 -17
  27. data/lib/bundler/cli/platform.rb +8 -6
  28. data/lib/bundler/cli/remove.rb +1 -2
  29. data/lib/bundler/cli/show.rb +1 -1
  30. data/lib/bundler/cli/update.rb +17 -8
  31. data/lib/bundler/cli/viz.rb +1 -1
  32. data/lib/bundler/cli.rb +95 -65
  33. data/lib/bundler/compact_index_client/cache.rb +1 -10
  34. data/lib/bundler/compact_index_client/updater.rb +56 -43
  35. data/lib/bundler/compact_index_client.rb +2 -8
  36. data/lib/bundler/constants.rb +1 -1
  37. data/lib/bundler/current_ruby.rb +19 -6
  38. data/lib/bundler/definition.rb +386 -419
  39. data/lib/bundler/dependency.rb +24 -71
  40. data/lib/bundler/digest.rb +71 -0
  41. data/lib/bundler/dsl.rb +48 -63
  42. data/lib/bundler/endpoint_specification.rb +15 -13
  43. data/lib/bundler/env.rb +3 -3
  44. data/lib/bundler/environment_preserver.rb +7 -3
  45. data/lib/bundler/errors.rb +30 -14
  46. data/lib/bundler/feature_flag.rb +0 -5
  47. data/lib/bundler/fetcher/base.rb +6 -8
  48. data/lib/bundler/fetcher/compact_index.rb +21 -28
  49. data/lib/bundler/fetcher/dependency.rb +2 -6
  50. data/lib/bundler/fetcher/downloader.rb +12 -10
  51. data/lib/bundler/fetcher/index.rb +1 -29
  52. data/lib/bundler/fetcher.rb +35 -30
  53. data/lib/bundler/force_platform.rb +18 -0
  54. data/lib/bundler/friendly_errors.rb +26 -39
  55. data/lib/bundler/gem_helper.rb +10 -22
  56. data/lib/bundler/gem_helpers.rb +9 -2
  57. data/lib/bundler/gem_version_promoter.rb +53 -98
  58. data/lib/bundler/graph.rb +3 -3
  59. data/lib/bundler/index.rb +14 -57
  60. data/lib/bundler/injector.rb +20 -6
  61. data/lib/bundler/inline.rb +10 -22
  62. data/lib/bundler/installer/gem_installer.rb +16 -21
  63. data/lib/bundler/installer/parallel_installer.rb +4 -34
  64. data/lib/bundler/installer/standalone.rb +53 -17
  65. data/lib/bundler/installer.rb +26 -58
  66. data/lib/bundler/lazy_specification.rb +72 -55
  67. data/lib/bundler/lockfile_generator.rb +3 -3
  68. data/lib/bundler/lockfile_parser.rb +31 -45
  69. data/lib/bundler/man/bundle-add.1 +21 -5
  70. data/lib/bundler/man/bundle-add.1.ronn +16 -4
  71. data/lib/bundler/man/bundle-binstubs.1 +1 -1
  72. data/lib/bundler/man/bundle-cache.1 +9 -3
  73. data/lib/bundler/man/bundle-cache.1.ronn +9 -2
  74. data/lib/bundler/man/bundle-check.1 +1 -1
  75. data/lib/bundler/man/bundle-clean.1 +2 -2
  76. data/lib/bundler/man/bundle-clean.1.ronn +1 -1
  77. data/lib/bundler/man/bundle-config.1 +50 -26
  78. data/lib/bundler/man/bundle-config.1.ronn +47 -32
  79. data/lib/bundler/man/bundle-console.1 +53 -0
  80. data/lib/bundler/man/bundle-console.1.ronn +44 -0
  81. data/lib/bundler/man/bundle-doctor.1 +1 -1
  82. data/lib/bundler/man/bundle-exec.1 +6 -6
  83. data/lib/bundler/man/bundle-exec.1.ronn +6 -6
  84. data/lib/bundler/man/bundle-gem.1 +37 -34
  85. data/lib/bundler/man/bundle-gem.1.ronn +21 -5
  86. data/lib/bundler/man/bundle-help.1 +13 -0
  87. data/lib/bundler/man/bundle-help.1.ronn +12 -0
  88. data/lib/bundler/man/bundle-info.1 +3 -3
  89. data/lib/bundler/man/bundle-info.1.ronn +3 -3
  90. data/lib/bundler/man/bundle-init.1 +5 -1
  91. data/lib/bundler/man/bundle-init.1.ronn +2 -0
  92. data/lib/bundler/man/bundle-inject.1 +5 -2
  93. data/lib/bundler/man/bundle-inject.1.ronn +3 -1
  94. data/lib/bundler/man/bundle-install.1 +6 -31
  95. data/lib/bundler/man/bundle-install.1.ronn +8 -31
  96. data/lib/bundler/man/bundle-list.1 +1 -1
  97. data/lib/bundler/man/bundle-lock.1 +1 -1
  98. data/lib/bundler/man/bundle-open.1 +22 -2
  99. data/lib/bundler/man/bundle-open.1.ronn +9 -1
  100. data/lib/bundler/man/bundle-outdated.1 +15 -18
  101. data/lib/bundler/man/bundle-outdated.1.ronn +13 -19
  102. data/lib/bundler/man/bundle-platform.1 +16 -6
  103. data/lib/bundler/man/bundle-platform.1.ronn +14 -7
  104. data/lib/bundler/man/bundle-plugin.1 +81 -0
  105. data/lib/bundler/man/bundle-plugin.1.ronn +59 -0
  106. data/lib/bundler/man/bundle-pristine.1 +1 -1
  107. data/lib/bundler/man/bundle-remove.1 +1 -1
  108. data/lib/bundler/man/bundle-show.1 +1 -1
  109. data/lib/bundler/man/bundle-update.1 +5 -5
  110. data/lib/bundler/man/bundle-update.1.ronn +5 -4
  111. data/lib/bundler/man/bundle-version.1 +35 -0
  112. data/lib/bundler/man/bundle-version.1.ronn +24 -0
  113. data/lib/bundler/man/bundle-viz.1 +4 -1
  114. data/lib/bundler/man/bundle-viz.1.ronn +2 -0
  115. data/lib/bundler/man/bundle.1 +15 -10
  116. data/lib/bundler/man/bundle.1.ronn +12 -7
  117. data/lib/bundler/man/gemfile.5 +131 -81
  118. data/lib/bundler/man/gemfile.5.ronn +111 -85
  119. data/lib/bundler/man/index.txt +4 -0
  120. data/lib/bundler/match_metadata.rb +13 -0
  121. data/lib/bundler/match_platform.rb +0 -1
  122. data/lib/bundler/match_remote_metadata.rb +29 -0
  123. data/lib/bundler/mirror.rb +5 -7
  124. data/lib/bundler/plugin/api/source.rb +17 -8
  125. data/lib/bundler/plugin/index.rb +9 -6
  126. data/lib/bundler/plugin/installer/git.rb +0 -4
  127. data/lib/bundler/plugin/installer/rubygems.rb +0 -8
  128. data/lib/bundler/plugin/installer.rb +9 -4
  129. data/lib/bundler/plugin.rb +30 -9
  130. data/lib/bundler/process_lock.rb +1 -1
  131. data/lib/bundler/remote_specification.rb +7 -5
  132. data/lib/bundler/resolver/base.rb +107 -0
  133. data/lib/bundler/resolver/candidate.rb +94 -0
  134. data/lib/bundler/resolver/incompatibility.rb +15 -0
  135. data/lib/bundler/resolver/package.rb +72 -0
  136. data/lib/bundler/resolver/root.rb +25 -0
  137. data/lib/bundler/resolver/spec_group.rb +42 -94
  138. data/lib/bundler/resolver.rb +331 -381
  139. data/lib/bundler/retry.rb +1 -1
  140. data/lib/bundler/ruby_dsl.rb +7 -1
  141. data/lib/bundler/ruby_version.rb +8 -21
  142. data/lib/bundler/rubygems_ext.rb +175 -34
  143. data/lib/bundler/rubygems_gem_installer.rb +46 -14
  144. data/lib/bundler/rubygems_integration.rb +57 -108
  145. data/lib/bundler/runtime.rb +20 -18
  146. data/lib/bundler/safe_marshal.rb +31 -0
  147. data/lib/bundler/self_manager.rb +168 -0
  148. data/lib/bundler/settings.rb +101 -30
  149. data/lib/bundler/setup.rb +5 -2
  150. data/lib/bundler/shared_helpers.rb +17 -32
  151. data/lib/bundler/source/git/git_proxy.rb +242 -77
  152. data/lib/bundler/source/git.rb +82 -41
  153. data/lib/bundler/source/metadata.rb +3 -4
  154. data/lib/bundler/source/path/installer.rb +1 -22
  155. data/lib/bundler/source/path.rb +7 -7
  156. data/lib/bundler/source/rubygems.rb +158 -212
  157. data/lib/bundler/source/rubygems_aggregate.rb +68 -0
  158. data/lib/bundler/source.rb +19 -5
  159. data/lib/bundler/source_list.rb +91 -52
  160. data/lib/bundler/source_map.rb +71 -0
  161. data/lib/bundler/spec_set.rb +69 -57
  162. data/lib/bundler/stub_specification.rb +5 -3
  163. data/lib/bundler/templates/Executable +3 -5
  164. data/lib/bundler/templates/Executable.bundler +11 -16
  165. data/lib/bundler/templates/Executable.standalone +4 -4
  166. data/lib/bundler/templates/Gemfile +0 -2
  167. data/lib/bundler/templates/newgem/Cargo.toml.tt +7 -0
  168. data/lib/bundler/templates/newgem/Gemfile.tt +8 -2
  169. data/lib/bundler/templates/newgem/README.md.tt +7 -11
  170. data/lib/bundler/templates/newgem/Rakefile.tt +27 -3
  171. data/lib/bundler/templates/newgem/bin/console.tt +0 -4
  172. data/lib/bundler/templates/newgem/circleci/config.yml.tt +12 -0
  173. data/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +15 -0
  174. data/lib/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt +10 -0
  175. data/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +6 -0
  176. data/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt +1 -1
  177. data/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +12 -0
  178. data/lib/bundler/templates/newgem/github/workflows/main.yml.tt +24 -3
  179. data/lib/bundler/templates/newgem/gitignore.tt +3 -0
  180. data/lib/bundler/templates/newgem/gitlab-ci.yml.tt +13 -4
  181. data/lib/bundler/templates/newgem/newgem.gemspec.tt +27 -18
  182. data/lib/bundler/templates/newgem/sig/newgem.rbs.tt +8 -0
  183. data/lib/bundler/templates/newgem/standard.yml.tt +3 -0
  184. data/lib/bundler/templates/newgem/test/minitest/{newgem_test.rb.tt → test_newgem.rb.tt} +1 -1
  185. data/lib/bundler/ui/rg_proxy.rb +1 -1
  186. data/lib/bundler/ui/shell.rb +36 -13
  187. data/lib/bundler/ui/silent.rb +21 -5
  188. data/lib/bundler/uri_normalizer.rb +23 -0
  189. data/lib/bundler/vendor/.document +1 -0
  190. data/lib/bundler/vendor/connection_pool/LICENSE +20 -0
  191. data/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +19 -21
  192. data/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +1 -1
  193. data/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +56 -0
  194. data/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +41 -74
  195. data/lib/bundler/vendor/fileutils/LICENSE.txt +22 -0
  196. data/lib/bundler/vendor/fileutils/lib/fileutils.rb +1351 -409
  197. data/lib/bundler/vendor/net-http-persistent/README.rdoc +82 -0
  198. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +1 -1
  199. data/lib/bundler/vendor/pub_grub/LICENSE.txt +21 -0
  200. data/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb +20 -0
  201. data/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +189 -0
  202. data/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb +182 -0
  203. data/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb +150 -0
  204. data/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb +43 -0
  205. data/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb +121 -0
  206. data/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb +45 -0
  207. data/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb +19 -0
  208. data/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +60 -0
  209. data/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb +105 -0
  210. data/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb +3 -0
  211. data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb +129 -0
  212. data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +411 -0
  213. data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +248 -0
  214. data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb +178 -0
  215. data/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +31 -0
  216. data/lib/bundler/vendor/thor/LICENSE.md +20 -0
  217. data/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +5 -5
  218. data/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +1 -2
  219. data/lib/bundler/vendor/thor/lib/thor/actions.rb +6 -2
  220. data/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +6 -0
  221. data/lib/bundler/vendor/thor/lib/thor/error.rb +9 -4
  222. data/lib/bundler/vendor/thor/lib/thor/parser/options.rb +19 -1
  223. data/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +23 -5
  224. data/lib/bundler/vendor/thor/lib/thor/shell.rb +1 -1
  225. data/lib/bundler/vendor/thor/lib/thor/util.rb +1 -1
  226. data/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
  227. data/lib/bundler/vendor/tsort/LICENSE.txt +22 -0
  228. data/lib/bundler/vendor/tsort/lib/tsort.rb +452 -0
  229. data/lib/bundler/vendor/uri/LICENSE.txt +22 -0
  230. data/lib/bundler/vendor/uri/lib/uri/common.rb +76 -91
  231. data/lib/bundler/vendor/uri/lib/uri/file.rb +7 -1
  232. data/lib/bundler/vendor/uri/lib/uri/ftp.rb +2 -2
  233. data/lib/bundler/vendor/uri/lib/uri/generic.rb +32 -13
  234. data/lib/bundler/vendor/uri/lib/uri/http.rb +40 -3
  235. data/lib/bundler/vendor/uri/lib/uri/https.rb +2 -2
  236. data/lib/bundler/vendor/uri/lib/uri/ldap.rb +2 -2
  237. data/lib/bundler/vendor/uri/lib/uri/ldaps.rb +2 -1
  238. data/lib/bundler/vendor/uri/lib/uri/mailto.rb +2 -3
  239. data/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +16 -23
  240. data/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +12 -18
  241. data/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
  242. data/lib/bundler/vendor/uri/lib/uri/ws.rb +83 -0
  243. data/lib/bundler/vendor/uri/lib/uri/wss.rb +23 -0
  244. data/lib/bundler/vendor/uri/lib/uri.rb +3 -3
  245. data/lib/bundler/vendored_persistent.rb +1 -33
  246. data/lib/bundler/{vendored_molinillo.rb → vendored_pub_grub.rb} +1 -1
  247. data/lib/bundler/{vendored_tmpdir.rb → vendored_tsort.rb} +1 -1
  248. data/lib/bundler/version.rb +5 -1
  249. data/lib/bundler/worker.rb +24 -11
  250. data/lib/bundler.rb +66 -110
  251. metadata +70 -41
  252. data/lib/bundler/dep_proxy.rb +0 -55
  253. data/lib/bundler/gemdeps.rb +0 -29
  254. data/lib/bundler/psyched_yaml.rb +0 -22
  255. data/lib/bundler/templates/gems.rb +0 -8
  256. data/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +0 -5
  257. data/lib/bundler/templates/newgem/travis.yml.tt +0 -6
  258. data/lib/bundler/vendor/connection_pool/lib/connection_pool/monotonic_time.rb +0 -66
  259. data/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
  260. data/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +0 -88
  261. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +0 -36
  262. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +0 -66
  263. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +0 -62
  264. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +0 -63
  265. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +0 -61
  266. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +0 -126
  267. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +0 -46
  268. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +0 -36
  269. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +0 -164
  270. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +0 -255
  271. data/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +0 -143
  272. data/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +0 -6
  273. data/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +0 -112
  274. data/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +0 -67
  275. data/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +0 -839
  276. data/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +0 -46
  277. data/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +0 -58
  278. data/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -11
  279. data/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +0 -154
  280. data/lib/bundler/version_ranges.rb +0 -122
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-VIZ" "1" "April 2021" "" ""
4
+ .TH "BUNDLE\-VIZ" "1" "August 2023" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-viz\fR \- Generates a visual dependency graph for your Gemfile
@@ -15,6 +15,9 @@
15
15
  .P
16
16
  The associated gems must also be installed via \fBbundle install(1)\fR \fIbundle\-install\.1\.html\fR\.
17
17
  .
18
+ .P
19
+ \fBviz\fR command was deprecated in Bundler 2\.2\. Use bundler\-graph plugin \fIhttps://github\.com/rubygems/bundler\-graph\fR instead\.
20
+ .
18
21
  .SH "OPTIONS"
19
22
  .
20
23
  .TP
@@ -16,6 +16,8 @@ bundle-viz(1) -- Generates a visual dependency graph for your Gemfile
16
16
 
17
17
  The associated gems must also be installed via [`bundle install(1)`](bundle-install.1.html).
18
18
 
19
+ `viz` command was deprecated in Bundler 2.2. Use [bundler-graph plugin](https://github.com/rubygems/bundler-graph) instead.
20
+
19
21
  ## OPTIONS
20
22
 
21
23
  * `--file`, `-f`:
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE" "1" "April 2021" "" ""
4
+ .TH "BUNDLE" "1" "August 2023" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\fR \- Ruby Dependency Management
@@ -43,8 +43,8 @@ Install the gems specified by the \fBGemfile\fR or \fBGemfile\.lock\fR
43
43
  Update dependencies to their latest versions
44
44
  .
45
45
  .TP
46
- \fBbundle package(1)\fR \fIbundle\-package\.1\.html\fR
47
- Package the \.gem files required by your application into the \fBvendor/cache\fR directory
46
+ \fBbundle cache(1)\fR \fIbundle\-cache\.1\.html\fR
47
+ Package the \.gem files required by your application into the \fBvendor/cache\fR directory (aliases: \fBbundle package\fR, \fBbundle pack\fR)
48
48
  .
49
49
  .TP
50
50
  \fBbundle exec(1)\fR \fIbundle\-exec\.1\.html\fR
@@ -55,7 +55,7 @@ Execute a script in the current bundle
55
55
  Specify and read configuration options for Bundler
56
56
  .
57
57
  .TP
58
- \fBbundle help(1)\fR
58
+ \fBbundle help(1)\fR \fIbundle\-help\.1\.html\fR
59
59
  Display detailed help for each subcommand
60
60
  .
61
61
  .SH "UTILITIES"
@@ -81,7 +81,7 @@ Show the source location of a particular gem in the bundle
81
81
  Show all of the outdated gems in the current bundle
82
82
  .
83
83
  .TP
84
- \fBbundle console(1)\fR
84
+ \fBbundle console(1)\fR (deprecated)
85
85
  Start an IRB session in the current bundle
86
86
  .
87
87
  .TP
@@ -93,7 +93,7 @@ Open an installed gem in the editor
93
93
  Generate a lockfile for your dependencies
94
94
  .
95
95
  .TP
96
- \fBbundle viz(1)\fR \fIbundle\-viz\.1\.html\fR
96
+ \fBbundle viz(1)\fR \fIbundle\-viz\.1\.html\fR (deprecated)
97
97
  Generate a visual representation of your dependencies
98
98
  .
99
99
  .TP
@@ -120,6 +120,14 @@ Display warnings about common problems
120
120
  \fBbundle remove(1)\fR \fIbundle\-remove\.1\.html\fR
121
121
  Removes gems from the Gemfile
122
122
  .
123
+ .TP
124
+ \fBbundle plugin(1)\fR \fIbundle\-plugin\.1\.html\fR
125
+ Manage Bundler plugins
126
+ .
127
+ .TP
128
+ \fBbundle version(1)\fR \fIbundle\-version\.1\.html\fR
129
+ Prints Bundler version information
130
+ .
123
131
  .SH "PLUGINS"
124
132
  When running a command that isn\'t listed in PRIMARY COMMANDS or UTILITIES, Bundler will try to find an executable on your path named \fBbundler\-<command>\fR and execute it, passing down any extra arguments to it\.
125
133
  .
@@ -127,10 +135,7 @@ When running a command that isn\'t listed in PRIMARY COMMANDS or UTILITIES, Bund
127
135
  These commands are obsolete and should no longer be used:
128
136
  .
129
137
  .IP "\(bu" 4
130
- \fBbundle cache(1)\fR
131
- .
132
- .IP "\(bu" 4
133
- \fBbundle show(1)\fR
138
+ \fBbundle inject(1)\fR
134
139
  .
135
140
  .IP "" 0
136
141
 
@@ -36,9 +36,9 @@ We divide `bundle` subcommands into primary commands and utilities:
36
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.html):
39
+ * [`bundle cache(1)`](bundle-cache.1.html):
40
40
  Package the .gem files required by your application into the
41
- `vendor/cache` directory
41
+ `vendor/cache` directory (aliases: `bundle package`, `bundle pack`)
42
42
 
43
43
  * [`bundle exec(1)`](bundle-exec.1.html):
44
44
  Execute a script in the current bundle
@@ -46,7 +46,7 @@ We divide `bundle` subcommands into primary commands and utilities:
46
46
  * [`bundle config(1)`](bundle-config.1.html):
47
47
  Specify and read configuration options for Bundler
48
48
 
49
- * `bundle help(1)`:
49
+ * [`bundle help(1)`](bundle-help.1.html):
50
50
  Display detailed help for each subcommand
51
51
 
52
52
  ## UTILITIES
@@ -67,7 +67,7 @@ We divide `bundle` subcommands into primary commands and utilities:
67
67
  * [`bundle outdated(1)`](bundle-outdated.1.html):
68
68
  Show all of the outdated gems in the current bundle
69
69
 
70
- * `bundle console(1)`:
70
+ * `bundle console(1)` (deprecated):
71
71
  Start an IRB session in the current bundle
72
72
 
73
73
  * [`bundle open(1)`](bundle-open.1.html):
@@ -76,7 +76,7 @@ We divide `bundle` subcommands into primary commands and utilities:
76
76
  * [`bundle lock(1)`](bundle-lock.1.html):
77
77
  Generate a lockfile for your dependencies
78
78
 
79
- * [`bundle viz(1)`](bundle-viz.1.html):
79
+ * [`bundle viz(1)`](bundle-viz.1.html) (deprecated):
80
80
  Generate a visual representation of your dependencies
81
81
 
82
82
  * [`bundle init(1)`](bundle-init.1.html):
@@ -97,6 +97,12 @@ We divide `bundle` subcommands into primary commands and utilities:
97
97
  * [`bundle remove(1)`](bundle-remove.1.html):
98
98
  Removes gems from the Gemfile
99
99
 
100
+ * [`bundle plugin(1)`](bundle-plugin.1.html):
101
+ Manage Bundler plugins
102
+
103
+ * [`bundle version(1)`](bundle-version.1.html):
104
+ Prints Bundler version information
105
+
100
106
  ## PLUGINS
101
107
 
102
108
  When running a command that isn't listed in PRIMARY COMMANDS or UTILITIES,
@@ -107,5 +113,4 @@ and execute it, passing down any extra arguments to it.
107
113
 
108
114
  These commands are obsolete and should no longer be used:
109
115
 
110
- * `bundle cache(1)`
111
- * `bundle show(1)`
116
+ * `bundle inject(1)`
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "GEMFILE" "5" "April 2021" "" ""
4
+ .TH "GEMFILE" "5" "August 2023" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBGemfile\fR \- A format for describing gem dependencies for Ruby programs
@@ -15,8 +15,8 @@ Place the \fBGemfile\fR in the root of the directory containing the associated c
15
15
  .SH "SYNTAX"
16
16
  A \fBGemfile\fR is evaluated as Ruby code, in a context which makes available a number of methods used to describe the gem requirements\.
17
17
  .
18
- .SH "GLOBAL SOURCES"
19
- At the top of the \fBGemfile\fR, add a line for the \fBRubygems\fR source that contains the gems listed in the \fBGemfile\fR\.
18
+ .SH "GLOBAL SOURCE"
19
+ At the top of the \fBGemfile\fR, add a single line for the \fBRubyGems\fR source that contains the gems listed in the \fBGemfile\fR\.
20
20
  .
21
21
  .IP "" 4
22
22
  .
@@ -29,10 +29,16 @@ source "https://rubygems\.org"
29
29
  .IP "" 0
30
30
  .
31
31
  .P
32
- It is possible, but not recommended as of Bundler 1\.7, to add multiple global \fBsource\fR lines\. Each of these \fBsource\fRs \fBMUST\fR be a valid Rubygems repository\.
32
+ You can add only one global source\. In Bundler 1\.13, adding multiple global sources was deprecated\. The \fBsource\fR \fBMUST\fR be a valid RubyGems repository\.
33
33
  .
34
34
  .P
35
- Sources are checked for gems following the heuristics described in \fISOURCE PRIORITY\fR\. If a gem is found in more than one global source, Bundler will print a warning after installing the gem indicating which source was used, and listing the other sources where the gem is available\. A specific source can be selected for gems that need to use a non\-standard repository, suppressing this warning, by using the \fI\fB:source\fR option\fR or a \fI\fBsource\fR block\fR\.
35
+ To use more than one source of RubyGems, you should use \fI\fBsource\fR block\fR\.
36
+ .
37
+ .P
38
+ A source is checked for gems following the heuristics described in \fISOURCE PRIORITY\fR\.
39
+ .
40
+ .P
41
+ \fBNote about a behavior of the feature deprecated in Bundler 1\.13\fR: If a gem is found in more than one global source, Bundler will print a warning after installing the gem indicating which source was used, and listing the other sources where the gem is available\. A specific source can be selected for gems that need to use a non\-standard repository, suppressing this warning, by using the \fI\fB:source\fR option\fR or \fBsource\fR block\.
36
42
  .
37
43
  .SS "CREDENTIALS"
38
44
  Some gem sources require a username and password\. Use bundle config(1) \fIbundle\-config\.1\.html\fR to set the username and password for any of the sources that need it\. The command must be run once on each computer that will install the Gemfile, but this keeps the credentials from being stored in plain text in version control\.
@@ -67,13 +73,26 @@ Credentials in the source URL will take precedence over credentials set using \f
67
73
  If your application requires a specific Ruby version or engine, specify your requirements using the \fBruby\fR method, with the following arguments\. All parameters are \fBOPTIONAL\fR unless otherwise specified\.
68
74
  .
69
75
  .SS "VERSION (required)"
70
- The version of Ruby that your application requires\. If your application requires an alternate Ruby engine, such as JRuby, Rubinius or TruffleRuby, this should be the Ruby version that the engine is compatible with\.
76
+ The version of Ruby that your application requires\. If your application requires an alternate Ruby engine, such as JRuby, TruffleRuby, etc\., this should be the Ruby version that the engine is compatible with\.
71
77
  .
72
78
  .IP "" 4
73
79
  .
74
80
  .nf
75
81
 
76
- ruby "1\.9\.3"
82
+ ruby "3\.1\.2"
83
+ .
84
+ .fi
85
+ .
86
+ .IP "" 0
87
+ .
88
+ .P
89
+ If you wish to derive your Ruby version from a version file (ie \.ruby\-version), you can use the \fBfile\fR option instead\.
90
+ .
91
+ .IP "" 4
92
+ .
93
+ .nf
94
+
95
+ ruby file: "\.ruby\-version"
77
96
  .
78
97
  .fi
79
98
  .
@@ -89,7 +108,7 @@ What exactly is an Engine? \- A Ruby engine is an implementation of the Ruby lan
89
108
  For background: the reference or original implementation of the Ruby programming language is called Matz\'s Ruby Interpreter \fIhttps://en\.wikipedia\.org/wiki/Ruby_MRI\fR, or MRI for short\. This is named after Ruby creator Yukihiro Matsumoto, also known as Matz\. MRI is also known as CRuby, because it is written in C\. MRI is the most widely used Ruby engine\.
90
109
  .
91
110
  .IP "\(bu" 4
92
- Other implementations \fIhttps://www\.ruby\-lang\.org/en/about/\fR of Ruby exist\. Some of the more well\-known implementations include Rubinius \fIhttps://rubinius\.com/\fR, and JRuby \fIhttp://jruby\.org/\fR\. Rubinius is an alternative implementation of Ruby written in Ruby\. JRuby is an implementation of Ruby on the JVM, short for Java Virtual Machine\.
111
+ Other implementations \fIhttps://www\.ruby\-lang\.org/en/about/\fR of Ruby exist\. Some of the more well\-known implementations include JRuby \fIhttp://jruby\.org/\fR and TruffleRuby \fIhttps://www\.graalvm\.org/ruby/\fR\. Rubinius is an alternative implementation of Ruby written in Ruby\. JRuby is an implementation of Ruby on the JVM, short for Java Virtual Machine\. TruffleRuby is a Ruby implementation on the GraalVM, a language toolkit built on the JVM\.
93
112
  .
94
113
  .IP "" 0
95
114
  .
@@ -100,20 +119,23 @@ Each application \fImay\fR specify a Ruby engine version\. If an engine version
100
119
  .
101
120
  .nf
102
121
 
103
- ruby "1\.8\.7", :engine => "jruby", :engine_version => "1\.6\.7"
122
+ ruby "2\.6\.8", engine: "jruby", engine_version: "9\.3\.8\.0"
104
123
  .
105
124
  .fi
106
125
  .
107
126
  .IP "" 0
108
127
  .
109
128
  .SS "PATCHLEVEL"
110
- Each application \fImay\fR specify a Ruby patchlevel\.
129
+ Each application \fImay\fR specify a Ruby patchlevel\. Specifying the patchlevel has been meaningless since Ruby 2\.1\.0 was released as the patchlevel is now uniquely determined by a combination of major, minor, and teeny version numbers\.
130
+ .
131
+ .P
132
+ This option was implemented in Bundler 1\.4\.0 for Ruby 2\.0 or earlier\.
111
133
  .
112
134
  .IP "" 4
113
135
  .
114
136
  .nf
115
137
 
116
- ruby "2\.0\.0", :patchlevel => "247"
138
+ ruby "3\.1\.2", patchlevel: "20"
117
139
  .
118
140
  .fi
119
141
  .
@@ -156,9 +178,9 @@ Each \fIgem\fR \fBMAY\fR specify files that should be used when autorequiring vi
156
178
  .
157
179
  .nf
158
180
 
159
- gem "redis", :require => ["redis/connection/hiredis", "redis"]
160
- gem "webmock", :require => false
161
- gem "byebug", :require => true
181
+ gem "redis", require: ["redis/connection/hiredis", "redis"]
182
+ gem "webmock", require: false
183
+ gem "byebug", require: true
162
184
  .
163
185
  .fi
164
186
  .
@@ -172,8 +194,8 @@ The argument defaults to the name of the gem\. For example, these are identical:
172
194
  .nf
173
195
 
174
196
  gem "nokogiri"
175
- gem "nokogiri", :require => "nokogiri"
176
- gem "nokogiri", :require => true
197
+ gem "nokogiri", require: "nokogiri"
198
+ gem "nokogiri", require: true
177
199
  .
178
200
  .fi
179
201
  .
@@ -186,8 +208,8 @@ Each \fIgem\fR \fBMAY\fR specify membership in one or more groups\. Any \fIgem\f
186
208
  .
187
209
  .nf
188
210
 
189
- gem "rspec", :group => :test
190
- gem "wirble", :groups => [:development, :test]
211
+ gem "rspec", group: :test
212
+ gem "wirble", groups: [:development, :test]
191
213
  .
192
214
  .fi
193
215
  .
@@ -248,19 +270,23 @@ There are a number of \fBGemfile\fR platforms:
248
270
  .
249
271
  .TP
250
272
  \fBruby\fR
251
- C Ruby (MRI), Rubinius or TruffleRuby, but \fBNOT\fR Windows
273
+ C Ruby (MRI), Rubinius, or TruffleRuby, but not Windows
252
274
  .
253
275
  .TP
254
276
  \fBmri\fR
255
- Same as \fIruby\fR, but only C Ruby (MRI)
277
+ C Ruby (MRI) only, but not Windows
256
278
  .
257
279
  .TP
258
- \fBmingw\fR
259
- Windows 32 bit \'mingw32\' platform (aka RubyInstaller)
280
+ \fBwindows\fR
281
+ Windows C Ruby (MRI), including RubyInstaller 32\-bit and 64\-bit versions
260
282
  .
261
283
  .TP
262
- \fBx64_mingw\fR
263
- Windows 64 bit \'mingw32\' platform (aka RubyInstaller x64)
284
+ \fBmswin\fR
285
+ Windows C Ruby (MRI), including RubyInstaller 32\-bit versions
286
+ .
287
+ .TP
288
+ \fBmswin64\fR
289
+ Windows C Ruby (MRI), including RubyInstaller 64\-bit versions
264
290
  .
265
291
  .TP
266
292
  \fBrbx\fR
@@ -274,84 +300,82 @@ JRuby
274
300
  \fBtruffleruby\fR
275
301
  TruffleRuby
276
302
  .
277
- .TP
278
- \fBmswin\fR
279
- Windows
280
- .
281
- .P
282
- You can restrict further by platform and version for all platforms \fIexcept\fR for \fBrbx\fR, \fBjruby\fR, \fBtruffleruby\fR and \fBmswin\fR\.
283
- .
284
303
  .P
285
- To specify a version in addition to a platform, append the version number without the delimiter to the platform\. For example, to specify that a gem should only be used on platforms with Ruby 2\.3, use:
304
+ On platforms \fBruby\fR, \fBmri\fR, \fBmswin\fR, \fBmswin64\fR, and \fBwindows\fR, you may additionally specify a version by appending the major and minor version numbers without a delimiter\. For example, to specify that a gem should only be used on platform \fBruby\fR version 3\.1, use:
286
305
  .
287
306
  .IP "" 4
288
307
  .
289
308
  .nf
290
309
 
291
- ruby_23
310
+ ruby_31
292
311
  .
293
312
  .fi
294
313
  .
295
314
  .IP "" 0
296
315
  .
297
316
  .P
298
- The full list of platforms and supported versions includes:
317
+ As with groups (above), you may specify one or more platforms:
299
318
  .
300
- .TP
301
- \fBruby\fR
302
- 1\.8, 1\.9, 2\.0, 2\.1, 2\.2, 2\.3, 2\.4, 2\.5, 2\.6
319
+ .IP "" 4
303
320
  .
304
- .TP
305
- \fBmri\fR
306
- 1\.8, 1\.9, 2\.0, 2\.1, 2\.2, 2\.3, 2\.4, 2\.5, 2\.6
321
+ .nf
322
+
323
+ gem "weakling", platforms: :jruby
324
+ gem "ruby\-debug", platforms: :mri_31
325
+ gem "nokogiri", platforms: [:windows_31, :jruby]
307
326
  .
308
- .TP
309
- \fBmingw\fR
310
- 1\.8, 1\.9, 2\.0, 2\.1, 2\.2, 2\.3, 2\.4, 2\.5, 2\.6
327
+ .fi
311
328
  .
312
- .TP
313
- \fBx64_mingw\fR
314
- 2\.0, 2\.1, 2\.2, 2\.3, 2\.4, 2\.5, 2\.6
329
+ .IP "" 0
315
330
  .
316
331
  .P
317
- As with groups, you can specify one or more platforms:
332
+ All operations involving groups (\fBbundle install\fR \fIbundle\-install\.1\.html\fR, \fBBundler\.setup\fR, \fBBundler\.require\fR) behave exactly the same as if any groups not matching the current platform were explicitly excluded\.
333
+ .
334
+ .SS "FORCE_RUBY_PLATFORM"
335
+ If you always want the pure ruby variant of a gem to be chosen over platform specific variants, you can use the \fBforce_ruby_platform\fR option:
318
336
  .
319
337
  .IP "" 4
320
338
  .
321
339
  .nf
322
340
 
323
- gem "weakling", :platforms => :jruby
324
- gem "ruby\-debug", :platforms => :mri_18
325
- gem "nokogiri", :platforms => [:mri_18, :jruby]
341
+ gem "ffi", force_ruby_platform: true
326
342
  .
327
343
  .fi
328
344
  .
329
345
  .IP "" 0
330
346
  .
331
347
  .P
332
- All operations involving groups (\fBbundle install\fR \fIbundle\-install\.1\.html\fR, \fBBundler\.setup\fR, \fBBundler\.require\fR) behave exactly the same as if any groups not matching the current platform were explicitly excluded\.
348
+ This can be handy (assuming the pure ruby variant works fine) when:
349
+ .
350
+ .IP "\(bu" 4
351
+ You\'re having issues with the platform specific variant\.
352
+ .
353
+ .IP "\(bu" 4
354
+ The platform specific variant does not yet support a newer ruby (and thus has a \fBrequired_ruby_version\fR upper bound), but you still want your Gemfile{\.lock} files to resolve under that ruby\.
355
+ .
356
+ .IP "" 0
333
357
  .
334
358
  .SS "SOURCE"
335
- You can select an alternate Rubygems repository for a gem using the \':source\' option\.
359
+ You can select an alternate RubyGems repository for a gem using the \':source\' option\.
336
360
  .
337
361
  .IP "" 4
338
362
  .
339
363
  .nf
340
364
 
341
- gem "some_internal_gem", :source => "https://gems\.example\.com"
365
+ gem "some_internal_gem", source: "https://gems\.example\.com"
342
366
  .
343
367
  .fi
344
368
  .
345
369
  .IP "" 0
346
370
  .
347
371
  .P
348
- 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 not exist in this source, it will not be installed\.
372
+ This forces the gem to be loaded from this source and ignores the global source declared at the top level of the file\. If the gem does not exist in this source, it will not be installed\.
349
373
  .
350
374
  .P
351
- 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, it will fall back on global sources using the ordering described in \fISOURCE PRIORITY\fR\.
375
+ 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, it will fall back on the global source\.
352
376
  .
353
377
  .P
354
- Selecting a specific source repository this way also suppresses the ambiguous gem warning described above in \fIGLOBAL SOURCES (#source)\fR\.
378
+ \fBNote about a behavior of the feature deprecated in Bundler 1\.13\fR: Selecting a specific source repository this way also suppresses the ambiguous gem warning described above in \fIGLOBAL SOURCE\fR\.
355
379
  .
356
380
  .P
357
381
  Using the \fB:source\fR option for an individual gem will also make that source available as a possible global source for any other gems which do not specify explicit sources\. Thus, when adding gems with explicit sources, it is recommended that you also ensure all other gems in the Gemfile are using explicit sources\.
@@ -361,15 +385,15 @@ If necessary, you can specify that a gem is located at a particular git reposito
361
385
  .
362
386
  .TP
363
387
  \fBHTTP(S)\fR
364
- gem "rails", :git => "https://github\.com/rails/rails\.git"
388
+ gem "rails", git: "https://github\.com/rails/rails\.git"
365
389
  .
366
390
  .TP
367
391
  \fBSSH\fR
368
- gem "rails", :git => "git@github\.com:rails/rails\.git"
392
+ gem "rails", git: "git@github\.com:rails/rails\.git"
369
393
  .
370
394
  .TP
371
395
  \fBgit\fR
372
- gem "rails", :git => "git://github\.com/rails/rails\.git"
396
+ gem "rails", git: "git://github\.com/rails/rails\.git"
373
397
  .
374
398
  .P
375
399
  If using SSH, the user that you use to run \fBbundle install\fR \fBMUST\fR have the appropriate keys available in their \fB$HOME/\.ssh\fR\.
@@ -393,7 +417,7 @@ If a git repository does have a \fB\.gemspec\fR for the gem you attached it to,
393
417
  .
394
418
  .nf
395
419
 
396
- gem "rails", "2\.3\.8", :git => "https://github\.com/rails/rails\.git"
420
+ gem "rails", "2\.3\.8", git: "https://github\.com/rails/rails\.git"
397
421
  # bundle install will fail, because the \.gemspec in the rails
398
422
  # repository\'s master branch specifies version 3\.0\.0
399
423
  .
@@ -409,20 +433,20 @@ Git repositories support a number of additional options\.
409
433
  .
410
434
  .TP
411
435
  \fBbranch\fR, \fBtag\fR, and \fBref\fR
412
- You \fBMUST\fR only specify at most one of these options\. The default is \fB:branch => "master"\fR\. For example:
436
+ You \fBMUST\fR only specify at most one of these options\. The default is \fBbranch: "master"\fR\. For example:
413
437
  .
414
438
  .IP
415
- gem "rails", :git => "https://github\.com/rails/rails\.git", :branch => "5\-0\-stable"
439
+ gem "rails", git: "https://github\.com/rails/rails\.git", branch: "5\-0\-stable"
416
440
  .
417
441
  .IP
418
- gem "rails", :git => "https://github\.com/rails/rails\.git", :tag => "v5\.0\.0"
442
+ gem "rails", git: "https://github\.com/rails/rails\.git", tag: "v5\.0\.0"
419
443
  .
420
444
  .IP
421
- gem "rails", :git => "https://github\.com/rails/rails\.git", :ref => "4aded"
445
+ gem "rails", git: "https://github\.com/rails/rails\.git", ref: "4aded"
422
446
  .
423
447
  .TP
424
448
  \fBsubmodules\fR
425
- For reference, a git submodule \fIhttps://git\-scm\.com/book/en/v2/Git\-Tools\-Submodules\fR lets you have another git repository within a subfolder of your repository\. Specify \fB:submodules => true\fR to cause bundler to expand any submodules included in the git repository
449
+ For reference, a git submodule \fIhttps://git\-scm\.com/book/en/v2/Git\-Tools\-Submodules\fR lets you have another git repository within a subfolder of your repository\. Specify \fBsubmodules: true\fR to cause bundler to expand any submodules included in the git repository
426
450
  .
427
451
  .P
428
452
  If a git repository contains multiple \fB\.gemspecs\fR, each \fB\.gemspec\fR represents a gem located at the same place in the file system as the \fB\.gemspec\fR\.
@@ -454,7 +478,7 @@ A custom git source can be defined via the \fBgit_source\fR method\. Provide the
454
478
  .nf
455
479
 
456
480
  git_source(:stash){ |repo_name| "https://stash\.corp\.acme\.pl/#{repo_name}\.git" }
457
- gem \'rails\', :stash => \'forks/rails\'
481
+ gem \'rails\', stash: \'forks/rails\'
458
482
  .
459
483
  .fi
460
484
  .
@@ -467,7 +491,7 @@ In addition, if you wish to choose a specific branch:
467
491
  .
468
492
  .nf
469
493
 
470
- gem "rails", :stash => "forks/rails", :branch => "branch_name"
494
+ gem "rails", stash: "forks/rails", branch: "branch_name"
471
495
  .
472
496
  .fi
473
497
  .
@@ -483,8 +507,8 @@ If the git repository you want to use is hosted on GitHub and is public, you can
483
507
  .
484
508
  .nf
485
509
 
486
- gem "rails", :github => "rails/rails"
487
- gem "rails", :github => "rails"
510
+ gem "rails", github: "rails/rails"
511
+ gem "rails", github: "rails"
488
512
  .
489
513
  .fi
490
514
  .
@@ -497,7 +521,7 @@ Are both equivalent to
497
521
  .
498
522
  .nf
499
523
 
500
- gem "rails", :git => "git://github\.com/rails/rails\.git"
524
+ gem "rails", git: "https://github\.com/rails/rails\.git"
501
525
  .
502
526
  .fi
503
527
  .
@@ -506,14 +530,40 @@ gem "rails", :git => "git://github\.com/rails/rails\.git"
506
530
  .P
507
531
  Since the \fBgithub\fR method is a specialization of \fBgit_source\fR, it accepts a \fB:branch\fR named argument\.
508
532
  .
533
+ .P
534
+ You can also directly pass a pull request URL:
535
+ .
536
+ .IP "" 4
537
+ .
538
+ .nf
539
+
540
+ gem "rails", github: "https://github\.com/rails/rails/pull/43753"
541
+ .
542
+ .fi
543
+ .
544
+ .IP "" 0
545
+ .
546
+ .P
547
+ Which is equivalent to:
548
+ .
549
+ .IP "" 4
550
+ .
551
+ .nf
552
+
553
+ gem "rails", github: "rails/rails", branch: "refs/pull/43753/head"
554
+ .
555
+ .fi
556
+ .
557
+ .IP "" 0
558
+ .
509
559
  .SS "GIST"
510
- 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 (without the trailing "\.git")\.
560
+ 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 (without the trailing "\.git")\.
511
561
  .
512
562
  .IP "" 4
513
563
  .
514
564
  .nf
515
565
 
516
- gem "the_hatch", :gist => "4815162342"
566
+ gem "the_hatch", gist: "4815162342"
517
567
  .
518
568
  .fi
519
569
  .
@@ -526,7 +576,7 @@ Is equivalent to:
526
576
  .
527
577
  .nf
528
578
 
529
- gem "the_hatch", :git => "https://gist\.github\.com/4815162342\.git"
579
+ gem "the_hatch", git: "https://gist\.github\.com/4815162342\.git"
530
580
  .
531
581
  .fi
532
582
  .
@@ -542,8 +592,8 @@ If the git repository you want to use is hosted on Bitbucket and is public, you
542
592
  .
543
593
  .nf
544
594
 
545
- gem "rails", :bitbucket => "rails/rails"
546
- gem "rails", :bitbucket => "rails"
595
+ gem "rails", bitbucket: "rails/rails"
596
+ gem "rails", bitbucket: "rails"
547
597
  .
548
598
  .fi
549
599
  .
@@ -556,7 +606,7 @@ Are both equivalent to
556
606
  .
557
607
  .nf
558
608
 
559
- gem "rails", :git => "https://rails@bitbucket\.org/rails/rails\.git"
609
+ gem "rails", git: "https://rails@bitbucket\.org/rails/rails\.git"
560
610
  .
561
611
  .fi
562
612
  .
@@ -578,7 +628,7 @@ Unlike \fB:git\fR, bundler does not compile C extensions for gems specified as p
578
628
  .
579
629
  .nf
580
630
 
581
- gem "rails", :path => "vendor/rails"
631
+ gem "rails", path: "vendor/rails"
582
632
  .
583
633
  .fi
584
634
  .
@@ -622,7 +672,7 @@ platforms :ruby do
622
672
  gem "sqlite3"
623
673
  end
624
674
 
625
- group :development, :optional => true do
675
+ group :development, optional: true do
626
676
  gem "wirble"
627
677
  gem "faker"
628
678
  end
@@ -662,10 +712,10 @@ The \fB\.gemspec\fR \fIhttp://guides\.rubygems\.org/specification\-reference/\fR
662
712
  If you wish to use Bundler to help install dependencies for a gem while it is being developed, use the \fBgemspec\fR method to pull in the dependencies listed in the \fB\.gemspec\fR file\.
663
713
  .
664
714
  .P
665
- The \fBgemspec\fR method adds any runtime dependencies as gem requirements in the default group\. It also adds development dependencies as gem requirements in the \fBdevelopment\fR group\. Finally, it adds a gem requirement on your project (\fB:path => \'\.\'\fR)\. In conjunction with \fBBundler\.setup\fR, 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 load path manually or require project files via relative paths\.
715
+ The \fBgemspec\fR method adds any runtime dependencies as gem requirements in the default group\. It also adds development dependencies as gem requirements in the \fBdevelopment\fR group\. Finally, it adds a gem requirement on your project (\fBpath: \'\.\'\fR)\. In conjunction with \fBBundler\.setup\fR, 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 load path manually or require project files via relative paths\.
666
716
  .
667
717
  .P
668
- The \fBgemspec\fR method supports optional \fB:path\fR, \fB:glob\fR, \fB:name\fR, and \fB:development_group\fR options, which control where bundler looks for the \fB\.gemspec\fR, the glob it uses to look for the gemspec (defaults to: "{,\fI,\fR/*}\.gemspec"), what named \fB\.gemspec\fR it uses (if more than one is present), and which group development dependencies are included in\.
718
+ The \fBgemspec\fR method supports optional \fB:path\fR, \fB:glob\fR, \fB:name\fR, and \fB:development_group\fR options, which control where bundler looks for the \fB\.gemspec\fR, the glob it uses to look for the gemspec (defaults to: \fB{,*,*/*}\.gemspec\fR), what named \fB\.gemspec\fR it uses (if more than one is present), and which group development dependencies are included in\.
669
719
  .
670
720
  .P
671
721
  When a \fBgemspec\fR dependency encounters version conflicts during resolution, the local version under development will always be selected \-\- even if there are remote versions that better match other requirements for the \fBgemspec\fR gem\.
@@ -680,7 +730,7 @@ The source explicitly attached to the gem (using \fB:source\fR, \fB:path\fR, or
680
730
  For implicit gems (dependencies of explicit gems), any source, git, or path repository declared on the parent\. This results in bundler prioritizing the ActiveSupport gem from the Rails git repository over ones from \fBrubygems\.org\fR
681
731
  .
682
732
  .IP "3." 4
683
- The sources specified via global \fBsource\fR lines, searching each source in your \fBGemfile\fR from last added to first added\.
733
+ If neither of the above conditions are met, the global source will be used\. If multiple global sources are specified, they will be prioritized from last to first, but this is deprecated since Bundler 1\.13, so Bundler prints a warning and will abort with an error in the future\.
684
734
  .
685
735
  .IP "" 0
686
736