bundler 2.2.27 → 2.6.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (353) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1328 -4
  3. data/README.md +4 -8
  4. data/bundler.gemspec +11 -11
  5. data/exe/bundle +5 -26
  6. data/exe/bundler +1 -1
  7. data/lib/bundler/.document +1 -0
  8. data/lib/bundler/build_metadata.rb +4 -4
  9. data/lib/bundler/capistrano.rb +1 -1
  10. data/lib/bundler/checksum.rb +254 -0
  11. data/lib/bundler/ci_detector.rb +75 -0
  12. data/lib/bundler/cli/add.rb +7 -5
  13. data/lib/bundler/cli/binstubs.rb +10 -6
  14. data/lib/bundler/cli/cache.rb +1 -1
  15. data/lib/bundler/cli/check.rb +4 -4
  16. data/lib/bundler/cli/common.rb +13 -3
  17. data/lib/bundler/cli/config.rb +18 -8
  18. data/lib/bundler/cli/console.rb +2 -5
  19. data/lib/bundler/cli/doctor.rb +16 -9
  20. data/lib/bundler/cli/exec.rb +2 -1
  21. data/lib/bundler/cli/fund.rb +1 -1
  22. data/lib/bundler/cli/gem.rb +153 -40
  23. data/lib/bundler/cli/info.rb +27 -17
  24. data/lib/bundler/cli/init.rb +6 -2
  25. data/lib/bundler/cli/inject.rb +1 -1
  26. data/lib/bundler/cli/install.rb +34 -42
  27. data/lib/bundler/cli/issue.rb +5 -4
  28. data/lib/bundler/cli/lock.rb +54 -28
  29. data/lib/bundler/cli/open.rb +9 -9
  30. data/lib/bundler/cli/outdated.rb +34 -29
  31. data/lib/bundler/cli/platform.rb +8 -6
  32. data/lib/bundler/cli/plugin.rb +9 -15
  33. data/lib/bundler/cli/pristine.rb +38 -30
  34. data/lib/bundler/cli/remove.rb +1 -2
  35. data/lib/bundler/cli/show.rb +5 -5
  36. data/lib/bundler/cli/update.rb +12 -7
  37. data/lib/bundler/cli/viz.rb +1 -1
  38. data/lib/bundler/cli.rb +265 -313
  39. data/lib/bundler/compact_index_client/cache.rb +53 -67
  40. data/lib/bundler/compact_index_client/cache_file.rb +148 -0
  41. data/lib/bundler/compact_index_client/gem_parser.rb +7 -3
  42. data/lib/bundler/compact_index_client/parser.rb +84 -0
  43. data/lib/bundler/compact_index_client/updater.rb +73 -77
  44. data/lib/bundler/compact_index_client.rb +59 -87
  45. data/lib/bundler/constants.rb +9 -2
  46. data/lib/bundler/current_ruby.rb +12 -16
  47. data/lib/bundler/definition.rb +604 -347
  48. data/lib/bundler/dependency.rb +33 -71
  49. data/lib/bundler/digest.rb +71 -0
  50. data/lib/bundler/dsl.rb +136 -102
  51. data/lib/bundler/endpoint_specification.rb +42 -16
  52. data/lib/bundler/env.rb +5 -7
  53. data/lib/bundler/environment_preserver.rb +8 -22
  54. data/lib/bundler/errors.rb +113 -13
  55. data/lib/bundler/feature_flag.rb +1 -2
  56. data/lib/bundler/fetcher/base.rb +11 -11
  57. data/lib/bundler/fetcher/compact_index.rb +32 -52
  58. data/lib/bundler/fetcher/dependency.rb +3 -7
  59. data/lib/bundler/fetcher/downloader.rb +17 -16
  60. data/lib/bundler/fetcher/gem_remote_fetcher.rb +16 -0
  61. data/lib/bundler/fetcher/index.rb +2 -29
  62. data/lib/bundler/fetcher.rb +98 -83
  63. data/lib/bundler/force_platform.rb +16 -0
  64. data/lib/bundler/friendly_errors.rb +29 -40
  65. data/lib/bundler/gem_helper.rb +12 -24
  66. data/lib/bundler/gem_helpers.rb +47 -7
  67. data/lib/bundler/gem_version_promoter.rb +68 -109
  68. data/lib/bundler/graph.rb +9 -9
  69. data/lib/bundler/index.rb +71 -79
  70. data/lib/bundler/injector.rb +25 -13
  71. data/lib/bundler/inline.rb +41 -28
  72. data/lib/bundler/installer/gem_installer.rb +22 -13
  73. data/lib/bundler/installer/parallel_installer.rb +19 -66
  74. data/lib/bundler/installer/standalone.rb +58 -17
  75. data/lib/bundler/installer.rb +31 -93
  76. data/lib/bundler/lazy_specification.rb +151 -72
  77. data/lib/bundler/lockfile_generator.rb +13 -4
  78. data/lib/bundler/lockfile_parser.rb +146 -71
  79. data/lib/bundler/man/bundle-add.1 +54 -44
  80. data/lib/bundler/man/bundle-add.1.ronn +62 -21
  81. data/lib/bundler/man/bundle-binstubs.1 +10 -19
  82. data/lib/bundler/man/bundle-binstubs.1.ronn +6 -3
  83. data/lib/bundler/man/bundle-cache.1 +38 -25
  84. data/lib/bundler/man/bundle-cache.1.ronn +40 -4
  85. data/lib/bundler/man/bundle-check.1 +7 -14
  86. data/lib/bundler/man/bundle-check.1.ronn +7 -2
  87. data/lib/bundler/man/bundle-clean.1 +4 -11
  88. data/lib/bundler/man/bundle-clean.1.ronn +1 -1
  89. data/lib/bundler/man/bundle-config.1 +48 -227
  90. data/lib/bundler/man/bundle-config.1.ronn +41 -34
  91. data/lib/bundler/man/bundle-console.1 +33 -0
  92. data/lib/bundler/man/bundle-console.1.ronn +39 -0
  93. data/lib/bundler/man/bundle-doctor.1 +5 -19
  94. data/lib/bundler/man/bundle-doctor.1.ronn +1 -1
  95. data/lib/bundler/man/bundle-env.1 +9 -0
  96. data/lib/bundler/man/bundle-env.1.ronn +10 -0
  97. data/lib/bundler/man/bundle-exec.1 +20 -78
  98. data/lib/bundler/man/bundle-exec.1.ronn +12 -10
  99. data/lib/bundler/man/bundle-fund.1 +22 -0
  100. data/lib/bundler/man/bundle-fund.1.ronn +25 -0
  101. data/lib/bundler/man/bundle-gem.1 +57 -72
  102. data/lib/bundler/man/bundle-gem.1.ronn +57 -9
  103. data/lib/bundler/man/bundle-help.1 +9 -0
  104. data/lib/bundler/man/bundle-help.1.ronn +12 -0
  105. data/lib/bundler/man/bundle-info.1 +8 -11
  106. data/lib/bundler/man/bundle-info.1.ronn +9 -5
  107. data/lib/bundler/man/bundle-init.1 +7 -12
  108. data/lib/bundler/man/bundle-init.1.ronn +4 -1
  109. data/lib/bundler/man/bundle-inject.1 +17 -19
  110. data/lib/bundler/man/bundle-inject.1.ronn +12 -2
  111. data/lib/bundler/man/bundle-install.1 +43 -163
  112. data/lib/bundler/man/bundle-install.1.ronn +33 -51
  113. data/lib/bundler/man/bundle-issue.1 +45 -0
  114. data/lib/bundler/man/bundle-issue.1.ronn +37 -0
  115. data/lib/bundler/man/bundle-licenses.1 +9 -0
  116. data/lib/bundler/man/bundle-licenses.1.ronn +10 -0
  117. data/lib/bundler/man/bundle-list.1 +4 -19
  118. data/lib/bundler/man/bundle-list.1.ronn +4 -1
  119. data/lib/bundler/man/bundle-lock.1 +25 -34
  120. data/lib/bundler/man/bundle-lock.1.ronn +25 -4
  121. data/lib/bundler/man/bundle-open.1 +18 -18
  122. data/lib/bundler/man/bundle-open.1.ronn +10 -1
  123. data/lib/bundler/man/bundle-outdated.1 +23 -75
  124. data/lib/bundler/man/bundle-outdated.1.ronn +21 -22
  125. data/lib/bundler/man/bundle-platform.1 +16 -28
  126. data/lib/bundler/man/bundle-platform.1.ronn +14 -7
  127. data/lib/bundler/man/bundle-plugin.1 +58 -0
  128. data/lib/bundler/man/bundle-plugin.1.ronn +63 -0
  129. data/lib/bundler/man/bundle-pristine.1 +5 -16
  130. data/lib/bundler/man/bundle-pristine.1.ronn +1 -1
  131. data/lib/bundler/man/bundle-remove.1 +4 -14
  132. data/lib/bundler/man/bundle-remove.1.ronn +1 -1
  133. data/lib/bundler/man/bundle-show.1 +7 -11
  134. data/lib/bundler/man/bundle-show.1.ronn +4 -0
  135. data/lib/bundler/man/bundle-update.1 +31 -144
  136. data/lib/bundler/man/bundle-update.1.ronn +16 -7
  137. data/lib/bundler/man/bundle-version.1 +22 -0
  138. data/lib/bundler/man/bundle-version.1.ronn +24 -0
  139. data/lib/bundler/man/bundle-viz.1 +9 -18
  140. data/lib/bundler/man/bundle-viz.1.ronn +9 -3
  141. data/lib/bundler/man/bundle.1 +17 -51
  142. data/lib/bundler/man/bundle.1.ronn +12 -7
  143. data/lib/bundler/man/gemfile.5 +132 -346
  144. data/lib/bundler/man/gemfile.5.ronn +127 -86
  145. data/lib/bundler/man/index.txt +8 -0
  146. data/lib/bundler/match_metadata.rb +17 -0
  147. data/lib/bundler/match_platform.rb +1 -2
  148. data/lib/bundler/match_remote_metadata.rb +29 -0
  149. data/lib/bundler/materialization.rb +59 -0
  150. data/lib/bundler/mirror.rb +8 -10
  151. data/lib/bundler/plugin/api/source.rb +11 -14
  152. data/lib/bundler/plugin/events.rb +24 -0
  153. data/lib/bundler/plugin/index.rb +13 -5
  154. data/lib/bundler/plugin/installer/git.rb +0 -4
  155. data/lib/bundler/plugin/installer/path.rb +18 -0
  156. data/lib/bundler/plugin/installer/rubygems.rb +0 -8
  157. data/lib/bundler/plugin/installer.rb +43 -20
  158. data/lib/bundler/plugin/source_list.rb +4 -4
  159. data/lib/bundler/plugin.rb +35 -7
  160. data/lib/bundler/process_lock.rb +10 -14
  161. data/lib/bundler/remote_specification.rb +17 -6
  162. data/lib/bundler/resolver/base.rb +117 -0
  163. data/lib/bundler/resolver/candidate.rb +82 -0
  164. data/lib/bundler/resolver/incompatibility.rb +15 -0
  165. data/lib/bundler/resolver/package.rb +90 -0
  166. data/lib/bundler/resolver/root.rb +25 -0
  167. data/lib/bundler/resolver/spec_group.rb +54 -66
  168. data/lib/bundler/resolver.rb +440 -306
  169. data/lib/bundler/retry.rb +2 -2
  170. data/lib/bundler/ruby_dsl.rb +42 -7
  171. data/lib/bundler/ruby_version.rb +22 -22
  172. data/lib/bundler/rubygems_ext.rb +323 -84
  173. data/lib/bundler/rubygems_gem_installer.rb +93 -65
  174. data/lib/bundler/rubygems_integration.rb +89 -237
  175. data/lib/bundler/runtime.rb +30 -20
  176. data/lib/bundler/safe_marshal.rb +31 -0
  177. data/lib/bundler/self_manager.rb +205 -0
  178. data/lib/bundler/settings.rb +145 -58
  179. data/lib/bundler/setup.rb +13 -1
  180. data/lib/bundler/shared_helpers.rb +94 -51
  181. data/lib/bundler/source/git/git_proxy.rb +283 -82
  182. data/lib/bundler/source/git.rb +187 -78
  183. data/lib/bundler/source/metadata.rb +16 -16
  184. data/lib/bundler/source/path/installer.rb +1 -22
  185. data/lib/bundler/source/path.rb +17 -27
  186. data/lib/bundler/source/rubygems/remote.rb +1 -1
  187. data/lib/bundler/source/rubygems.rb +165 -245
  188. data/lib/bundler/source/rubygems_aggregate.rb +1 -1
  189. data/lib/bundler/source.rb +7 -6
  190. data/lib/bundler/source_list.rb +41 -33
  191. data/lib/bundler/source_map.rb +15 -2
  192. data/lib/bundler/spec_set.rb +193 -58
  193. data/lib/bundler/stub_specification.rb +39 -7
  194. data/lib/bundler/templates/Executable +3 -5
  195. data/lib/bundler/templates/Executable.bundler +7 -12
  196. data/lib/bundler/templates/Executable.standalone +4 -4
  197. data/lib/bundler/templates/Gemfile +0 -2
  198. data/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +77 -29
  199. data/lib/bundler/templates/newgem/Cargo.toml.tt +7 -0
  200. data/lib/bundler/templates/newgem/Gemfile.tt +5 -2
  201. data/lib/bundler/templates/newgem/README.md.tt +12 -12
  202. data/lib/bundler/templates/newgem/Rakefile.tt +28 -4
  203. data/lib/bundler/templates/newgem/bin/console.tt +0 -4
  204. data/lib/bundler/templates/newgem/circleci/config.yml.tt +12 -0
  205. data/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +15 -0
  206. data/lib/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt +10 -0
  207. data/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +6 -0
  208. data/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt +1 -1
  209. data/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +12 -0
  210. data/lib/bundler/templates/newgem/github/workflows/main.yml.tt +20 -10
  211. data/lib/bundler/templates/newgem/gitignore.tt +3 -0
  212. data/lib/bundler/templates/newgem/gitlab-ci.yml.tt +13 -4
  213. data/lib/bundler/templates/newgem/newgem.gemspec.tt +26 -18
  214. data/lib/bundler/templates/newgem/rubocop.yml.tt +0 -5
  215. data/lib/bundler/templates/newgem/sig/newgem.rbs.tt +8 -0
  216. data/lib/bundler/templates/newgem/standard.yml.tt +3 -0
  217. data/lib/bundler/templates/newgem/test/minitest/{newgem_test.rb.tt → test_newgem.rb.tt} +1 -1
  218. data/lib/bundler/ui/rg_proxy.rb +1 -1
  219. data/lib/bundler/ui/shell.rb +61 -16
  220. data/lib/bundler/ui/silent.rb +33 -6
  221. data/lib/bundler/uri_credentials_filter.rb +3 -3
  222. data/lib/bundler/uri_normalizer.rb +23 -0
  223. data/lib/bundler/vendor/.document +1 -0
  224. data/lib/bundler/vendor/connection_pool/.document +1 -0
  225. data/lib/bundler/vendor/connection_pool/LICENSE +20 -0
  226. data/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +19 -21
  227. data/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +1 -1
  228. data/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +56 -0
  229. data/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +92 -78
  230. data/lib/bundler/vendor/fileutils/.document +1 -0
  231. data/lib/bundler/vendor/fileutils/COPYING +56 -0
  232. data/lib/bundler/vendor/fileutils/lib/fileutils.rb +1350 -418
  233. data/lib/bundler/vendor/net-http-persistent/.document +1 -0
  234. data/lib/bundler/vendor/net-http-persistent/README.rdoc +82 -0
  235. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +4 -3
  236. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +23 -11
  237. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +1 -1
  238. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +102 -64
  239. data/lib/bundler/vendor/pub_grub/.document +1 -0
  240. data/lib/bundler/vendor/pub_grub/LICENSE.txt +21 -0
  241. data/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb +20 -0
  242. data/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +189 -0
  243. data/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb +182 -0
  244. data/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb +150 -0
  245. data/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb +43 -0
  246. data/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb +121 -0
  247. data/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb +45 -0
  248. data/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb +19 -0
  249. data/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +61 -0
  250. data/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb +105 -0
  251. data/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb +3 -0
  252. data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb +129 -0
  253. data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +411 -0
  254. data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +248 -0
  255. data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb +178 -0
  256. data/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +31 -0
  257. data/lib/bundler/vendor/securerandom/.document +1 -0
  258. data/lib/bundler/vendor/securerandom/COPYING +56 -0
  259. data/lib/bundler/vendor/securerandom/lib/securerandom.rb +102 -0
  260. data/lib/bundler/vendor/thor/.document +1 -0
  261. data/lib/bundler/vendor/thor/LICENSE.md +20 -0
  262. data/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb +3 -2
  263. data/lib/bundler/vendor/thor/lib/thor/actions/directory.rb +1 -1
  264. data/lib/bundler/vendor/thor/lib/thor/actions/empty_directory.rb +1 -1
  265. data/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +15 -19
  266. data/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +16 -6
  267. data/lib/bundler/vendor/thor/lib/thor/actions.rb +21 -17
  268. data/lib/bundler/vendor/thor/lib/thor/base.rb +140 -14
  269. data/lib/bundler/vendor/thor/lib/thor/command.rb +13 -4
  270. data/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +10 -0
  271. data/lib/bundler/vendor/thor/lib/thor/error.rb +16 -20
  272. data/lib/bundler/vendor/thor/lib/thor/group.rb +12 -1
  273. data/lib/bundler/vendor/thor/lib/thor/invocation.rb +1 -1
  274. data/lib/bundler/vendor/thor/lib/thor/nested_context.rb +2 -2
  275. data/lib/bundler/vendor/thor/lib/thor/parser/argument.rb +17 -1
  276. data/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +33 -17
  277. data/lib/bundler/vendor/thor/lib/thor/parser/option.rb +28 -9
  278. data/lib/bundler/vendor/thor/lib/thor/parser/options.rb +65 -8
  279. data/lib/bundler/vendor/thor/lib/thor/rake_compat.rb +2 -2
  280. data/lib/bundler/vendor/thor/lib/thor/runner.rb +40 -30
  281. data/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +56 -162
  282. data/lib/bundler/vendor/thor/lib/thor/shell/color.rb +1 -46
  283. data/lib/bundler/vendor/thor/lib/thor/shell/column_printer.rb +29 -0
  284. data/lib/bundler/vendor/thor/lib/thor/shell/html.rb +1 -46
  285. data/lib/bundler/vendor/thor/lib/thor/shell/table_printer.rb +118 -0
  286. data/lib/bundler/vendor/thor/lib/thor/shell/terminal.rb +42 -0
  287. data/lib/bundler/vendor/thor/lib/thor/shell/wrapped_printer.rb +38 -0
  288. data/lib/bundler/vendor/thor/lib/thor/shell.rb +2 -2
  289. data/lib/bundler/vendor/thor/lib/thor/util.rb +9 -8
  290. data/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
  291. data/lib/bundler/vendor/thor/lib/thor.rb +166 -8
  292. data/lib/bundler/vendor/tsort/.document +1 -0
  293. data/lib/bundler/vendor/tsort/LICENSE.txt +22 -0
  294. data/lib/bundler/vendor/tsort/lib/tsort.rb +455 -0
  295. data/lib/bundler/vendor/uri/.document +1 -0
  296. data/lib/bundler/vendor/uri/COPYING +56 -0
  297. data/lib/bundler/vendor/uri/lib/uri/common.rb +351 -219
  298. data/lib/bundler/vendor/uri/lib/uri/file.rb +10 -4
  299. data/lib/bundler/vendor/uri/lib/uri/ftp.rb +3 -3
  300. data/lib/bundler/vendor/uri/lib/uri/generic.rb +49 -39
  301. data/lib/bundler/vendor/uri/lib/uri/http.rb +40 -3
  302. data/lib/bundler/vendor/uri/lib/uri/https.rb +2 -2
  303. data/lib/bundler/vendor/uri/lib/uri/ldap.rb +2 -2
  304. data/lib/bundler/vendor/uri/lib/uri/ldaps.rb +2 -1
  305. data/lib/bundler/vendor/uri/lib/uri/mailto.rb +2 -3
  306. data/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +26 -26
  307. data/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +131 -50
  308. data/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
  309. data/lib/bundler/vendor/uri/lib/uri/ws.rb +83 -0
  310. data/lib/bundler/vendor/uri/lib/uri/wss.rb +23 -0
  311. data/lib/bundler/vendor/uri/lib/uri.rb +12 -12
  312. data/lib/bundler/vendored_net_http.rb +23 -0
  313. data/lib/bundler/vendored_persistent.rb +0 -36
  314. data/lib/bundler/{vendored_molinillo.rb → vendored_pub_grub.rb} +1 -1
  315. data/lib/bundler/vendored_securerandom.rb +12 -0
  316. data/lib/bundler/vendored_timeout.rb +12 -0
  317. data/lib/bundler/{vendored_tmpdir.rb → vendored_tsort.rb} +1 -1
  318. data/lib/bundler/vendored_uri.rb +18 -1
  319. data/lib/bundler/version.rb +5 -1
  320. data/lib/bundler/vlad.rb +1 -1
  321. data/lib/bundler/worker.rb +7 -9
  322. data/lib/bundler/yaml_serializer.rb +22 -13
  323. data/lib/bundler.rb +176 -151
  324. metadata +98 -41
  325. data/lib/bundler/dep_proxy.rb +0 -55
  326. data/lib/bundler/gemdeps.rb +0 -29
  327. data/lib/bundler/psyched_yaml.rb +0 -22
  328. data/lib/bundler/templates/gems.rb +0 -8
  329. data/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +0 -5
  330. data/lib/bundler/templates/newgem/travis.yml.tt +0 -6
  331. data/lib/bundler/vendor/connection_pool/lib/connection_pool/monotonic_time.rb +0 -66
  332. data/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
  333. data/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +0 -88
  334. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +0 -36
  335. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +0 -66
  336. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +0 -62
  337. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +0 -63
  338. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +0 -61
  339. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +0 -126
  340. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +0 -46
  341. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +0 -36
  342. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +0 -164
  343. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +0 -255
  344. data/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +0 -143
  345. data/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +0 -6
  346. data/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +0 -112
  347. data/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +0 -67
  348. data/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +0 -839
  349. data/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +0 -46
  350. data/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +0 -58
  351. data/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -11
  352. data/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +0 -154
  353. data/lib/bundler/version_ranges.rb +0 -122
@@ -2,18 +2,52 @@
2
2
 
3
3
  module Bundler
4
4
  class LockfileParser
5
- attr_reader :sources, :dependencies, :specs, :platforms, :bundler_version, :ruby_version
6
-
7
- BUNDLED = "BUNDLED WITH".freeze
8
- DEPENDENCIES = "DEPENDENCIES".freeze
9
- PLATFORMS = "PLATFORMS".freeze
10
- RUBY = "RUBY VERSION".freeze
11
- GIT = "GIT".freeze
12
- GEM = "GEM".freeze
13
- PATH = "PATH".freeze
14
- PLUGIN = "PLUGIN SOURCE".freeze
15
- SPECS = " specs:".freeze
16
- OPTIONS = /^ ([a-z]+): (.*)$/i.freeze
5
+ include GemHelpers
6
+
7
+ class Position
8
+ attr_reader :line, :column
9
+ def initialize(line, column)
10
+ @line = line
11
+ @column = column
12
+ end
13
+
14
+ def advance!(string)
15
+ lines = string.count("\n")
16
+ if lines > 0
17
+ @line += lines
18
+ @column = string.length - string.rindex("\n")
19
+ else
20
+ @column += string.length
21
+ end
22
+ end
23
+
24
+ def to_s
25
+ "#{line}:#{column}"
26
+ end
27
+ end
28
+
29
+ attr_reader(
30
+ :sources,
31
+ :dependencies,
32
+ :specs,
33
+ :platforms,
34
+ :most_specific_locked_platform,
35
+ :bundler_version,
36
+ :ruby_version,
37
+ :checksums,
38
+ )
39
+
40
+ BUNDLED = "BUNDLED WITH"
41
+ DEPENDENCIES = "DEPENDENCIES"
42
+ CHECKSUMS = "CHECKSUMS"
43
+ PLATFORMS = "PLATFORMS"
44
+ RUBY = "RUBY VERSION"
45
+ GIT = "GIT"
46
+ GEM = "GEM"
47
+ PATH = "PATH"
48
+ PLUGIN = "PLUGIN SOURCE"
49
+ SPECS = " specs:"
50
+ OPTIONS = /^ ([a-z]+): (.*)$/i
17
51
  SOURCE = [GIT, GEM, PATH, PLUGIN].freeze
18
52
 
19
53
  SECTIONS_BY_VERSION_INTRODUCED = {
@@ -21,14 +55,18 @@ module Bundler
21
55
  Gem::Version.create("1.10") => [BUNDLED].freeze,
22
56
  Gem::Version.create("1.12") => [RUBY].freeze,
23
57
  Gem::Version.create("1.13") => [PLUGIN].freeze,
58
+ Gem::Version.create("2.5.0") => [CHECKSUMS].freeze,
24
59
  }.freeze
25
60
 
26
- KNOWN_SECTIONS = SECTIONS_BY_VERSION_INTRODUCED.values.flatten.freeze
61
+ KNOWN_SECTIONS = SECTIONS_BY_VERSION_INTRODUCED.values.flatten!.freeze
27
62
 
28
63
  ENVIRONMENT_VERSION_SECTIONS = [BUNDLED, RUBY].freeze
64
+ deprecate_constant(:ENVIRONMENT_VERSION_SECTIONS)
29
65
 
30
66
  def self.sections_in_lockfile(lockfile_contents)
31
- lockfile_contents.scan(/^\w[\w ]*$/).uniq
67
+ sections = lockfile_contents.scan(/^\w[\w ]*$/)
68
+ sections.uniq!
69
+ sections
32
70
  end
33
71
 
34
72
  def self.unknown_sections_in_lockfile(lockfile_contents)
@@ -37,7 +75,7 @@ module Bundler
37
75
 
38
76
  def self.sections_to_ignore(base_version = nil)
39
77
  base_version &&= base_version.release
40
- base_version ||= Gem::Version.create("1.0".dup)
78
+ base_version ||= Gem::Version.create("1.0")
41
79
  attributes = []
42
80
  SECTIONS_BY_VERSION_INTRODUCED.each do |version, introduced|
43
81
  next if version <= base_version
@@ -46,82 +84,93 @@ module Bundler
46
84
  attributes
47
85
  end
48
86
 
87
+ def self.bundled_with
88
+ lockfile = Bundler.default_lockfile
89
+ return unless lockfile.file?
90
+
91
+ lockfile_contents = Bundler.read_file(lockfile)
92
+ return unless lockfile_contents.include?(BUNDLED)
93
+
94
+ lockfile_contents.split(BUNDLED).last.strip
95
+ end
96
+
49
97
  def initialize(lockfile)
50
98
  @platforms = []
51
99
  @sources = []
52
100
  @dependencies = {}
53
- @state = nil
101
+ @parse_method = nil
54
102
  @specs = {}
103
+ @lockfile_path = begin
104
+ SharedHelpers.relative_lockfile_path
105
+ rescue GemfileNotFound
106
+ "Gemfile.lock"
107
+ end
108
+ @pos = Position.new(1, 1)
55
109
 
56
- if lockfile.match(/<<<<<<<|=======|>>>>>>>|\|\|\|\|\|\|\|/)
57
- raise LockfileError, "Your #{Bundler.default_lockfile.relative_path_from(SharedHelpers.pwd)} contains merge conflicts.\n" \
58
- "Run `git checkout HEAD -- #{Bundler.default_lockfile.relative_path_from(SharedHelpers.pwd)}` first to get a clean lock."
110
+ if lockfile.match?(/<<<<<<<|=======|>>>>>>>|\|\|\|\|\|\|\|/)
111
+ raise LockfileError, "Your #{@lockfile_path} contains merge conflicts.\n" \
112
+ "Run `git checkout HEAD -- #{@lockfile_path}` first to get a clean lock."
59
113
  end
60
114
 
61
- lockfile.split(/(?:\r?\n)+/).each do |line|
115
+ lockfile.split(/((?:\r?\n)+)/) do |line|
116
+ # split alternates between the line and the following whitespace
117
+ next @pos.advance!(line) if line.match?(/^\s*$/)
118
+
62
119
  if SOURCE.include?(line)
63
- @state = :source
120
+ @parse_method = :parse_source
64
121
  parse_source(line)
65
122
  elsif line == DEPENDENCIES
66
- @state = :dependency
123
+ @parse_method = :parse_dependency
124
+ elsif line == CHECKSUMS
125
+ # This is a temporary solution to make this feature disabled by default
126
+ # for all gemfiles that don't already explicitly include the feature.
127
+ @checksums = true
128
+ @parse_method = :parse_checksum
67
129
  elsif line == PLATFORMS
68
- @state = :platform
130
+ @parse_method = :parse_platform
69
131
  elsif line == RUBY
70
- @state = :ruby
132
+ @parse_method = :parse_ruby
71
133
  elsif line == BUNDLED
72
- @state = :bundled_with
73
- elsif line =~ /^[^\s]/
74
- @state = nil
75
- elsif @state
76
- send("parse_#{@state}", line)
134
+ @parse_method = :parse_bundled_with
135
+ elsif /^[^\s]/.match?(line)
136
+ @parse_method = nil
137
+ elsif @parse_method
138
+ send(@parse_method, line)
77
139
  end
140
+ @pos.advance!(line)
141
+ end
142
+ @most_specific_locked_platform = @platforms.min_by do |bundle_platform|
143
+ platform_specificity_match(bundle_platform, local_platform)
144
+ end
145
+ @specs = @specs.values.sort_by!(&:full_name).each do |spec|
146
+ spec.most_specific_locked_platform = @most_specific_locked_platform
78
147
  end
79
- @specs = @specs.values.sort_by(&:identifier)
80
- warn_for_outdated_bundler_version
81
148
  rescue ArgumentError => e
82
149
  Bundler.ui.debug(e)
83
- raise LockfileError, "Your lockfile is unreadable. Run `rm #{Bundler.default_lockfile.relative_path_from(SharedHelpers.pwd)}` " \
84
- "and then `bundle install` to generate a new lockfile."
150
+ raise LockfileError, "Your lockfile is unreadable. Run `rm #{@lockfile_path}` " \
151
+ "and then `bundle install` to generate a new lockfile. The error occurred while " \
152
+ "evaluating #{@lockfile_path}:#{@pos}"
85
153
  end
86
154
 
87
- def warn_for_outdated_bundler_version
88
- return unless bundler_version
89
- prerelease_text = bundler_version.prerelease? ? " --pre" : ""
90
- current_version = Gem::Version.create(Bundler::VERSION)
91
- return unless current_version < bundler_version
92
- Bundler.ui.warn "Warning: the running version of Bundler (#{current_version}) is older " \
93
- "than the version that created the lockfile (#{bundler_version}). We suggest you to " \
94
- "upgrade to the version that created the lockfile by running `gem install " \
95
- "bundler:#{bundler_version}#{prerelease_text}`.\n"
155
+ def may_include_redundant_platform_specific_gems?
156
+ bundler_version.nil? || bundler_version < Gem::Version.new("1.16.2")
96
157
  end
97
158
 
98
159
  private
99
160
 
100
161
  TYPES = {
101
- GIT => Bundler::Source::Git,
102
- GEM => Bundler::Source::Rubygems,
103
- PATH => Bundler::Source::Path,
162
+ GIT => Bundler::Source::Git,
163
+ GEM => Bundler::Source::Rubygems,
164
+ PATH => Bundler::Source::Path,
104
165
  PLUGIN => Bundler::Plugin,
105
166
  }.freeze
106
167
 
107
168
  def parse_source(line)
108
169
  case line
109
170
  when SPECS
110
- case @type
111
- when PATH
112
- @current_source = TYPES[@type].from_lock(@opts)
113
- @sources << @current_source
114
- when GIT
115
- @current_source = TYPES[@type].from_lock(@opts)
116
- @sources << @current_source
117
- when GEM
118
- @opts["remotes"] = Array(@opts.delete("remote")).reverse
119
- @current_source = TYPES[@type].from_lock(@opts)
120
- @sources << @current_source
121
- when PLUGIN
122
- @current_source = Plugin.source_from_lock(@opts)
123
- @sources << @current_source
124
- end
171
+ return unless TYPES.key?(@type)
172
+ @current_source = TYPES[@type].from_lock(@opts)
173
+ @sources << @current_source
125
174
  when OPTIONS
126
175
  value = $2
127
176
  value = true if value == "true"
@@ -151,18 +200,19 @@ module Bundler
151
200
  (?:#{space}\(([^-]*) # Space, followed by version
152
201
  (?:-(.*))?\))? # Optional platform
153
202
  (!)? # Optional pinned marker
203
+ (?:#{space}([^ ]+))? # Optional checksum
154
204
  $ # Line end
155
- /xo.freeze
205
+ /xo
156
206
 
157
207
  def parse_dependency(line)
158
208
  return unless line =~ NAME_VERSION
159
209
  spaces = $1
160
210
  return unless spaces.size == 2
161
- name = $2
211
+ name = -$2
162
212
  version = $3
163
213
  pinned = $5
164
214
 
165
- version = version.split(",").map(&:strip) if version
215
+ version = version.split(",").each(&:strip!) if version
166
216
 
167
217
  dep = Bundler::Dependency.new(name, version)
168
218
 
@@ -183,40 +233,65 @@ module Bundler
183
233
  @dependencies[dep.name] = dep
184
234
  end
185
235
 
186
- def parse_spec(line)
236
+ def parse_checksum(line)
187
237
  return unless line =~ NAME_VERSION
238
+
188
239
  spaces = $1
240
+ return unless spaces.size == 2
241
+ checksums = $6
242
+ return unless checksums
189
243
  name = $2
190
244
  version = $3
191
245
  platform = $4
192
246
 
247
+ version = Gem::Version.new(version)
248
+ platform = platform ? Gem::Platform.new(platform) : Gem::Platform::RUBY
249
+ full_name = Gem::NameTuple.new(name, version, platform).full_name
250
+ return unless spec = @specs[full_name]
251
+
252
+ checksums.split(",") do |lock_checksum|
253
+ column = line.index(lock_checksum) + 1
254
+ checksum = Checksum.from_lock(lock_checksum, "#{@lockfile_path}:#{@pos.line}:#{column}")
255
+ spec.source.checksum_store.register(spec, checksum)
256
+ end
257
+ end
258
+
259
+ def parse_spec(line)
260
+ return unless line =~ NAME_VERSION
261
+ spaces = $1
262
+ name = -$2
263
+ version = $3
264
+
193
265
  if spaces.size == 4
266
+ # only load platform for non-dependency (spec) line
267
+ platform = $4
268
+
194
269
  version = Gem::Version.new(version)
195
270
  platform = platform ? Gem::Platform.new(platform) : Gem::Platform::RUBY
196
- @current_spec = LazySpecification.new(name, version, platform)
197
- @current_spec.source = @current_source
271
+ @current_spec = LazySpecification.new(name, version, platform, @current_source)
198
272
  @current_source.add_dependency_names(name)
199
273
 
200
- @specs[@current_spec.identifier] = @current_spec
274
+ @specs[@current_spec.full_name] = @current_spec
201
275
  elsif spaces.size == 6
202
- version = version.split(",").map(&:strip) if version
276
+ version = version.split(",").each(&:strip!) if version
203
277
  dep = Gem::Dependency.new(name, version)
204
278
  @current_spec.dependencies << dep
205
279
  end
206
280
  end
207
281
 
208
282
  def parse_platform(line)
209
- @platforms << Gem::Platform.new($1) if line =~ /^ (.*)$/
283
+ @platforms << Gem::Platform.new($1.strip) if line =~ /^ (.*)$/
210
284
  end
211
285
 
212
286
  def parse_bundled_with(line)
213
- line = line.strip
287
+ line.strip!
214
288
  return unless Gem::Version.correct?(line)
215
289
  @bundler_version = Gem::Version.create(line)
216
290
  end
217
291
 
218
292
  def parse_ruby(line)
219
- @ruby_version = line.strip
293
+ line.strip!
294
+ @ruby_version = line
220
295
  end
221
296
  end
222
297
  end
@@ -1,66 +1,76 @@
1
- .\" generated with Ronn/v0.7.3
2
- .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
- .
4
- .TH "BUNDLE\-ADD" "1" "June 2021" "" ""
5
- .
1
+ .\" generated with nRonn/v0.11.1
2
+ .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
+ .TH "BUNDLE\-ADD" "1" "December 2024" ""
6
4
  .SH "NAME"
7
5
  \fBbundle\-add\fR \- Add gem to the Gemfile and run bundle install
8
- .
9
6
  .SH "SYNOPSIS"
10
- \fBbundle add\fR \fIGEM_NAME\fR [\-\-group=GROUP] [\-\-version=VERSION] [\-\-source=SOURCE] [\-\-git=GIT] [\-\-branch=BRANCH] [\-\-skip\-install] [\-\-strict] [\-\-optimistic]
11
- .
7
+ \fBbundle add\fR \fIGEM_NAME\fR [\-\-group=GROUP] [\-\-version=VERSION] [\-\-source=SOURCE] [\-\-path=PATH] [\-\-git=GIT|\-\-github=GITHUB] [\-\-branch=BRANCH] [\-\-ref=REF] [\-\-quiet] [\-\-skip\-install] [\-\-strict|\-\-optimistic]
12
8
  .SH "DESCRIPTION"
13
- Adds the named gem to the Gemfile and run \fBbundle install\fR\. \fBbundle install\fR can be avoided by using the flag \fB\-\-skip\-install\fR\.
14
- .
15
- .P
16
- Example:
17
- .
18
- .P
19
- bundle add rails
20
- .
21
- .P
22
- bundle add rails \-\-version "< 3\.0, > 1\.1"
23
- .
24
- .P
25
- bundle add rails \-\-version "~> 5\.0\.0" \-\-source "https://gems\.example\.com" \-\-group "development"
26
- .
27
- .P
28
- bundle add rails \-\-skip\-install
29
- .
30
- .P
31
- bundle add rails \-\-group "development, test"
32
- .
9
+ Adds the named gem to the [\fBGemfile(5)\fR][Gemfile(5)] and run \fBbundle install\fR\. \fBbundle install\fR can be avoided by using the flag \fB\-\-skip\-install\fR\.
33
10
  .SH "OPTIONS"
34
- .
35
11
  .TP
36
- \fB\-\-version\fR, \fB\-v\fR
12
+ \fB\-\-version=VERSION\fR, \fB\-v=VERSION\fR
37
13
  Specify version requirements(s) for the added gem\.
38
- .
39
14
  .TP
40
- \fB\-\-group\fR, \fB\-g\fR
15
+ \fB\-\-group=GROUP\fR, \fB\-g=GROUP\fR
41
16
  Specify the group(s) for the added gem\. Multiple groups should be separated by commas\.
42
- .
43
17
  .TP
44
- \fB\-\-source\fR, , \fB\-s\fR
18
+ \fB\-\-source=SOURCE\fR, \fB\-s=SOURCE\fR
45
19
  Specify the source for the added gem\.
46
- .
47
20
  .TP
48
- \fB\-\-git\fR
21
+ \fB\-\-require=REQUIRE\fR, \fB\-r=REQUIRE\fR
22
+ Adds require path to gem\. Provide false, or a path as a string\.
23
+ .TP
24
+ \fB\-\-path=PATH\fR
25
+ Specify the file system path for the added gem\.
26
+ .TP
27
+ \fB\-\-git=GIT\fR
49
28
  Specify the git source for the added gem\.
50
- .
51
29
  .TP
52
- \fB\-\-branch\fR
30
+ \fB\-\-github=GITHUB\fR
31
+ Specify the github source for the added gem\.
32
+ .TP
33
+ \fB\-\-branch=BRANCH\fR
53
34
  Specify the git branch for the added gem\.
54
- .
35
+ .TP
36
+ \fB\-\-ref=REF\fR
37
+ Specify the git ref for the added gem\.
38
+ .TP
39
+ \fB\-\-glob=GLOB\fR
40
+ Specify the location of a dependency's \.gemspec, expanded within Ruby (single quotes recommended)\.
41
+ .TP
42
+ \fB\-\-quiet\fR
43
+ Do not print progress information to the standard output\.
55
44
  .TP
56
45
  \fB\-\-skip\-install\fR
57
46
  Adds the gem to the Gemfile but does not install it\.
58
- .
59
47
  .TP
60
48
  \fB\-\-optimistic\fR
61
- Adds optimistic declaration of version
62
- .
49
+ Adds optimistic declaration of version\.
63
50
  .TP
64
51
  \fB\-\-strict\fR
65
- Adds strict declaration of version
66
-
52
+ Adds strict declaration of version\.
53
+ .SH "EXAMPLES"
54
+ .IP "1." 4
55
+ You can add the \fBrails\fR gem to the Gemfile without any version restriction\. The source of the gem will be the global source\.
56
+ .IP
57
+ \fBbundle add rails\fR
58
+ .IP "2." 4
59
+ You can add the \fBrails\fR gem with version greater than 1\.1 (not including 1\.1) and less than 3\.0\.
60
+ .IP
61
+ \fBbundle add rails \-\-version "> 1\.1, < 3\.0"\fR
62
+ .IP "3." 4
63
+ You can use the \fBhttps://gems\.example\.com\fR custom source and assign the gem to a group\.
64
+ .IP
65
+ \fBbundle add rails \-\-version "~> 5\.0\.0" \-\-source "https://gems\.example\.com" \-\-group "development"\fR
66
+ .IP "4." 4
67
+ The following adds the \fBgem\fR entry to the Gemfile without installing the gem\. You can install gems later via \fBbundle install\fR\.
68
+ .IP
69
+ \fBbundle add rails \-\-skip\-install\fR
70
+ .IP "5." 4
71
+ You can assign the gem to more than one group\.
72
+ .IP
73
+ \fBbundle add rails \-\-group "development, test"\fR
74
+ .IP "" 0
75
+ .SH "SEE ALSO"
76
+ Gemfile(5) \fIhttps://bundler\.io/man/gemfile\.5\.html\fR, bundle\-remove(1) \fIbundle\-remove\.1\.html\fR
@@ -1,46 +1,87 @@
1
1
  bundle-add(1) -- Add gem to the Gemfile and run bundle install
2
- ================================================================
2
+ ==============================================================
3
3
 
4
4
  ## SYNOPSIS
5
5
 
6
- `bundle add` <GEM_NAME> [--group=GROUP] [--version=VERSION] [--source=SOURCE] [--git=GIT] [--branch=BRANCH] [--skip-install] [--strict] [--optimistic]
6
+ `bundle add` <GEM_NAME> [--group=GROUP] [--version=VERSION] [--source=SOURCE]
7
+ [--path=PATH] [--git=GIT|--github=GITHUB] [--branch=BRANCH] [--ref=REF]
8
+ [--quiet] [--skip-install] [--strict|--optimistic]
7
9
 
8
10
  ## DESCRIPTION
9
- Adds the named gem to the Gemfile and run `bundle install`. `bundle install` can be avoided by using the flag `--skip-install`.
10
11
 
11
- Example:
12
-
13
- bundle add rails
14
-
15
- bundle add rails --version "< 3.0, > 1.1"
16
-
17
- bundle add rails --version "~> 5.0.0" --source "https://gems.example.com" --group "development"
18
-
19
- bundle add rails --skip-install
20
-
21
- bundle add rails --group "development, test"
12
+ Adds the named gem to the [`Gemfile(5)`][Gemfile(5)] and run `bundle install`.
13
+ `bundle install` can be avoided by using the flag `--skip-install`.
22
14
 
23
15
  ## OPTIONS
24
- * `--version`, `-v`:
16
+
17
+ * `--version=VERSION`, `-v=VERSION`:
25
18
  Specify version requirements(s) for the added gem.
26
19
 
27
- * `--group`, `-g`:
20
+ * `--group=GROUP`, `-g=GROUP`:
28
21
  Specify the group(s) for the added gem. Multiple groups should be separated by commas.
29
22
 
30
- * `--source`, , `-s`:
23
+ * `--source=SOURCE`, `-s=SOURCE`:
31
24
  Specify the source for the added gem.
32
25
 
33
- * `--git`:
26
+ * `--require=REQUIRE`, `-r=REQUIRE`:
27
+ Adds require path to gem. Provide false, or a path as a string.
28
+
29
+ * `--path=PATH`:
30
+ Specify the file system path for the added gem.
31
+
32
+ * `--git=GIT`:
34
33
  Specify the git source for the added gem.
35
34
 
36
- * `--branch`:
35
+ * `--github=GITHUB`:
36
+ Specify the github source for the added gem.
37
+
38
+ * `--branch=BRANCH`:
37
39
  Specify the git branch for the added gem.
38
40
 
41
+ * `--ref=REF`:
42
+ Specify the git ref for the added gem.
43
+
44
+ * `--glob=GLOB`:
45
+ Specify the location of a dependency's .gemspec, expanded within Ruby (single quotes recommended).
46
+
47
+ * `--quiet`:
48
+ Do not print progress information to the standard output.
49
+
39
50
  * `--skip-install`:
40
51
  Adds the gem to the Gemfile but does not install it.
41
52
 
42
53
  * `--optimistic`:
43
- Adds optimistic declaration of version
54
+ Adds optimistic declaration of version.
44
55
 
45
56
  * `--strict`:
46
- Adds strict declaration of version
57
+ Adds strict declaration of version.
58
+
59
+ ## EXAMPLES
60
+
61
+ 1. You can add the `rails` gem to the Gemfile without any version restriction.
62
+ The source of the gem will be the global source.
63
+
64
+ `bundle add rails`
65
+
66
+ 2. You can add the `rails` gem with version greater than 1.1 (not including 1.1) and less than 3.0.
67
+
68
+ `bundle add rails --version "> 1.1, < 3.0"`
69
+
70
+ 3. You can use the `https://gems.example.com` custom source and assign the gem
71
+ to a group.
72
+
73
+ `bundle add rails --version "~> 5.0.0" --source "https://gems.example.com" --group "development"`
74
+
75
+ 4. The following adds the `gem` entry to the Gemfile without installing the
76
+ gem. You can install gems later via `bundle install`.
77
+
78
+ `bundle add rails --skip-install`
79
+
80
+ 5. You can assign the gem to more than one group.
81
+
82
+ `bundle add rails --group "development, test"`
83
+
84
+ ## SEE ALSO
85
+
86
+ [Gemfile(5)](https://bundler.io/man/gemfile.5.html),
87
+ [bundle-remove(1)](bundle-remove.1.html)
@@ -1,42 +1,33 @@
1
- .\" generated with Ronn/v0.7.3
2
- .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
- .
4
- .TH "BUNDLE\-BINSTUBS" "1" "June 2021" "" ""
5
- .
1
+ .\" generated with nRonn/v0.11.1
2
+ .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
+ .TH "BUNDLE\-BINSTUBS" "1" "December 2024" ""
6
4
  .SH "NAME"
7
5
  \fBbundle\-binstubs\fR \- Install the binstubs of the listed gems
8
- .
9
6
  .SH "SYNOPSIS"
10
- \fBbundle binstubs\fR \fIGEM_NAME\fR [\-\-force] [\-\-path PATH] [\-\-standalone]
11
- .
7
+ \fBbundle binstubs\fR \fIGEM_NAME\fR [\-\-force] [\-\-path PATH] [\-\-standalone] [\-\-all\-platforms]
12
8
  .SH "DESCRIPTION"
13
9
  Binstubs are scripts that wrap around executables\. Bundler creates a small Ruby file (a binstub) that loads Bundler, runs the command, and puts it into \fBbin/\fR\. Binstubs are a shortcut\-or alternative\- to always using \fBbundle exec\fR\. This gives you a file that can be run directly, and one that will always run the correct gem version used by the application\.
14
- .
15
10
  .P
16
11
  For example, if you run \fBbundle binstubs rspec\-core\fR, Bundler will create the file \fBbin/rspec\fR\. That file will contain enough code to load Bundler, tell it to load the bundled gems, and then run rspec\.
17
- .
18
12
  .P
19
13
  This command generates binstubs for executables in \fBGEM_NAME\fR\. Binstubs are put into \fBbin\fR, or the \fB\-\-path\fR directory if one has been set\. Calling binstubs with [GEM [GEM]] will create binstubs for all given gems\.
20
- .
21
14
  .SH "OPTIONS"
22
- .
23
15
  .TP
24
16
  \fB\-\-force\fR
25
17
  Overwrite existing binstubs if they exist\.
26
- .
27
18
  .TP
28
- \fB\-\-path\fR
19
+ \fB\-\-path[=PATH]\fR
29
20
  The location to install the specified binstubs to\. This defaults to \fBbin\fR\.
30
- .
31
21
  .TP
32
22
  \fB\-\-standalone\fR
33
23
  Makes binstubs that can work without depending on Rubygems or Bundler at runtime\.
34
- .
35
24
  .TP
36
- \fB\-\-shebang\fR
37
- Specify a different shebang executable name than the default (default \'ruby\')
38
- .
25
+ \fB\-\-shebang=SHEBANG\fR
26
+ Specify a different shebang executable name than the default (default 'ruby')
39
27
  .TP
40
28
  \fB\-\-all\fR
41
29
  Create binstubs for all gems in the bundle\.
30
+ .TP
31
+ \fB\-\-all\-platforms\fR
32
+ Install binstubs for all platforms\.
42
33
 
@@ -3,7 +3,7 @@ bundle-binstubs(1) -- Install the binstubs of the listed gems
3
3
 
4
4
  ## SYNOPSIS
5
5
 
6
- `bundle binstubs` <GEM_NAME> [--force] [--path PATH] [--standalone]
6
+ `bundle binstubs` <GEM_NAME> [--force] [--path PATH] [--standalone] [--all-platforms]
7
7
 
8
8
  ## DESCRIPTION
9
9
 
@@ -27,15 +27,18 @@ Calling binstubs with [GEM [GEM]] will create binstubs for all given gems.
27
27
  * `--force`:
28
28
  Overwrite existing binstubs if they exist.
29
29
 
30
- * `--path`:
30
+ * `--path[=PATH]`:
31
31
  The location to install the specified binstubs to. This defaults to `bin`.
32
32
 
33
33
  * `--standalone`:
34
34
  Makes binstubs that can work without depending on Rubygems or Bundler at
35
35
  runtime.
36
36
 
37
- * `--shebang`:
37
+ * `--shebang=SHEBANG`:
38
38
  Specify a different shebang executable name than the default (default 'ruby')
39
39
 
40
40
  * `--all`:
41
41
  Create binstubs for all gems in the bundle.
42
+
43
+ * `--all-platforms`:
44
+ Install binstubs for all platforms.