bundler 1.17.3 → 2.6.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (426) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +3354 -1258
  3. data/LICENSE.md +18 -19
  4. data/README.md +10 -15
  5. data/bundler.gemspec +15 -33
  6. data/exe/bundle +8 -10
  7. data/exe/bundler +1 -1
  8. data/lib/bundler/.document +1 -0
  9. data/lib/bundler/build_metadata.rb +5 -13
  10. data/lib/bundler/capistrano.rb +5 -5
  11. data/lib/bundler/checksum.rb +254 -0
  12. data/lib/bundler/ci_detector.rb +75 -0
  13. data/lib/bundler/cli/add.rb +29 -15
  14. data/lib/bundler/cli/binstubs.rb +13 -5
  15. data/lib/bundler/cli/cache.rb +24 -17
  16. data/lib/bundler/cli/check.rb +7 -5
  17. data/lib/bundler/cli/clean.rb +1 -1
  18. data/lib/bundler/cli/common.rb +50 -14
  19. data/lib/bundler/cli/config.rb +171 -86
  20. data/lib/bundler/cli/console.rb +3 -6
  21. data/lib/bundler/cli/doctor.rb +29 -12
  22. data/lib/bundler/cli/exec.rb +9 -25
  23. data/lib/bundler/cli/fund.rb +36 -0
  24. data/lib/bundler/cli/gem.rb +268 -53
  25. data/lib/bundler/cli/info.rb +51 -18
  26. data/lib/bundler/cli/init.rb +7 -3
  27. data/lib/bundler/cli/inject.rb +2 -2
  28. data/lib/bundler/cli/install.rb +55 -73
  29. data/lib/bundler/cli/issue.rb +9 -8
  30. data/lib/bundler/cli/list.rb +19 -11
  31. data/lib/bundler/cli/lock.rb +56 -26
  32. data/lib/bundler/cli/open.rb +10 -7
  33. data/lib/bundler/cli/outdated.rb +159 -128
  34. data/lib/bundler/cli/platform.rb +8 -6
  35. data/lib/bundler/cli/plugin.rb +23 -12
  36. data/lib/bundler/cli/pristine.rb +39 -26
  37. data/lib/bundler/cli/remove.rb +1 -2
  38. data/lib/bundler/cli/show.rb +7 -7
  39. data/lib/bundler/cli/update.rb +51 -19
  40. data/lib/bundler/cli/viz.rb +1 -1
  41. data/lib/bundler/cli.rb +399 -390
  42. data/lib/bundler/compact_index_client/cache.rb +55 -77
  43. data/lib/bundler/compact_index_client/cache_file.rb +148 -0
  44. data/lib/bundler/compact_index_client/gem_parser.rb +32 -0
  45. data/lib/bundler/compact_index_client/parser.rb +84 -0
  46. data/lib/bundler/compact_index_client/updater.rb +72 -84
  47. data/lib/bundler/compact_index_client.rb +61 -73
  48. data/lib/bundler/constants.rb +9 -2
  49. data/lib/bundler/current_ruby.rb +20 -21
  50. data/lib/bundler/definition.rb +663 -505
  51. data/lib/bundler/dependency.rb +38 -71
  52. data/lib/bundler/deployment.rb +1 -1
  53. data/lib/bundler/digest.rb +71 -0
  54. data/lib/bundler/dsl.rb +171 -152
  55. data/lib/bundler/endpoint_specification.rb +43 -17
  56. data/lib/bundler/env.rb +11 -18
  57. data/lib/bundler/environment_preserver.rb +17 -8
  58. data/lib/bundler/errors.rb +115 -14
  59. data/lib/bundler/feature_flag.rb +15 -39
  60. data/lib/bundler/fetcher/base.rb +12 -12
  61. data/lib/bundler/fetcher/compact_index.rb +41 -47
  62. data/lib/bundler/fetcher/dependency.rb +4 -8
  63. data/lib/bundler/fetcher/downloader.rb +27 -20
  64. data/lib/bundler/fetcher/gem_remote_fetcher.rb +16 -0
  65. data/lib/bundler/fetcher/index.rb +6 -33
  66. data/lib/bundler/fetcher.rb +109 -90
  67. data/lib/bundler/force_platform.rb +16 -0
  68. data/lib/bundler/friendly_errors.rb +50 -55
  69. data/lib/bundler/gem_helper.rb +81 -46
  70. data/lib/bundler/gem_helpers.rb +78 -29
  71. data/lib/bundler/gem_tasks.rb +1 -1
  72. data/lib/bundler/gem_version_promoter.rb +68 -109
  73. data/lib/bundler/graph.rb +11 -11
  74. data/lib/bundler/index.rb +74 -82
  75. data/lib/bundler/injector.rb +58 -26
  76. data/lib/bundler/inline.rb +59 -35
  77. data/lib/bundler/installer/gem_installer.rb +29 -29
  78. data/lib/bundler/installer/parallel_installer.rb +38 -68
  79. data/lib/bundler/installer/standalone.rb +76 -16
  80. data/lib/bundler/installer.rb +60 -135
  81. data/lib/bundler/lazy_specification.rb +161 -63
  82. data/lib/bundler/lockfile_generator.rb +14 -5
  83. data/lib/bundler/lockfile_parser.rb +150 -109
  84. data/lib/bundler/man/bundle-add.1 +76 -0
  85. data/lib/bundler/man/bundle-add.1.ronn +87 -0
  86. data/{man → lib/bundler/man}/bundle-binstubs.1 +15 -22
  87. data/{man/bundle-binstubs.ronn → lib/bundler/man/bundle-binstubs.1.ronn} +8 -7
  88. data/lib/bundler/man/bundle-cache.1 +68 -0
  89. data/lib/bundler/man/bundle-cache.1.ronn +108 -0
  90. data/{man → lib/bundler/man}/bundle-check.1 +7 -14
  91. data/{man/bundle-check.ronn → lib/bundler/man/bundle-check.1.ronn} +7 -2
  92. data/{man → lib/bundler/man}/bundle-clean.1 +4 -11
  93. data/{man/bundle-clean.ronn → lib/bundler/man/bundle-clean.1.ronn} +1 -1
  94. data/{man → lib/bundler/man}/bundle-config.1 +80 -260
  95. data/{man/bundle-config.ronn → lib/bundler/man/bundle-config.1.ronn} +104 -98
  96. data/lib/bundler/man/bundle-console.1 +33 -0
  97. data/lib/bundler/man/bundle-console.1.ronn +39 -0
  98. data/{man → lib/bundler/man}/bundle-doctor.1 +5 -19
  99. data/{man/bundle-doctor.ronn → lib/bundler/man/bundle-doctor.1.ronn} +1 -1
  100. data/lib/bundler/man/bundle-env.1 +9 -0
  101. data/lib/bundler/man/bundle-env.1.ronn +10 -0
  102. data/{man → lib/bundler/man}/bundle-exec.1 +20 -78
  103. data/{man/bundle-exec.ronn → lib/bundler/man/bundle-exec.1.ronn} +12 -10
  104. data/lib/bundler/man/bundle-fund.1 +22 -0
  105. data/lib/bundler/man/bundle-fund.1.ronn +25 -0
  106. data/lib/bundler/man/bundle-gem.1 +87 -0
  107. data/lib/bundler/man/bundle-gem.1.ronn +149 -0
  108. data/lib/bundler/man/bundle-help.1 +9 -0
  109. data/lib/bundler/man/bundle-help.1.ronn +12 -0
  110. data/lib/bundler/man/bundle-info.1 +17 -0
  111. data/lib/bundler/man/bundle-info.1.ronn +21 -0
  112. data/{man → lib/bundler/man}/bundle-init.1 +8 -13
  113. data/{man/bundle-init.ronn → lib/bundler/man/bundle-init.1.ronn} +5 -2
  114. data/lib/bundler/man/bundle-inject.1 +31 -0
  115. data/{man/bundle-inject.ronn → lib/bundler/man/bundle-inject.1.ronn} +12 -2
  116. data/{man → lib/bundler/man}/bundle-install.1 +65 -155
  117. data/{man/bundle-install.ronn → lib/bundler/man/bundle-install.1.ronn} +66 -57
  118. data/lib/bundler/man/bundle-issue.1 +45 -0
  119. data/lib/bundler/man/bundle-issue.1.ronn +37 -0
  120. data/lib/bundler/man/bundle-licenses.1 +9 -0
  121. data/lib/bundler/man/bundle-licenses.1.ronn +10 -0
  122. data/{man → lib/bundler/man}/bundle-list.1 +9 -24
  123. data/{man/bundle-list.ronn → lib/bundler/man/bundle-list.1.ronn} +10 -7
  124. data/{man → lib/bundler/man}/bundle-lock.1 +25 -34
  125. data/{man/bundle-lock.ronn → lib/bundler/man/bundle-lock.1.ronn} +25 -4
  126. data/lib/bundler/man/bundle-open.1 +32 -0
  127. data/{man/bundle-open.ronn → lib/bundler/man/bundle-open.1.ronn} +10 -1
  128. data/{man → lib/bundler/man}/bundle-outdated.1 +23 -75
  129. data/{man/bundle-outdated.ronn → lib/bundler/man/bundle-outdated.1.ronn} +21 -22
  130. data/lib/bundler/man/bundle-platform.1 +49 -0
  131. data/{man/bundle-platform.ronn → lib/bundler/man/bundle-platform.1.ronn} +14 -7
  132. data/lib/bundler/man/bundle-plugin.1 +58 -0
  133. data/lib/bundler/man/bundle-plugin.1.ronn +63 -0
  134. data/{man → lib/bundler/man}/bundle-pristine.1 +5 -16
  135. data/{man/bundle-pristine.ronn → lib/bundler/man/bundle-pristine.1.ronn} +1 -1
  136. data/{man → lib/bundler/man}/bundle-remove.1 +4 -14
  137. data/{man/bundle-remove.ronn → lib/bundler/man/bundle-remove.1.ronn} +1 -1
  138. data/{man → lib/bundler/man}/bundle-show.1 +7 -11
  139. data/{man/bundle-show.ronn → lib/bundler/man/bundle-show.1.ronn} +4 -0
  140. data/{man → lib/bundler/man}/bundle-update.1 +35 -148
  141. data/{man/bundle-update.ronn → lib/bundler/man/bundle-update.1.ronn} +21 -12
  142. data/lib/bundler/man/bundle-version.1 +22 -0
  143. data/lib/bundler/man/bundle-version.1.ronn +24 -0
  144. data/{man → lib/bundler/man}/bundle-viz.1 +9 -18
  145. data/{man/bundle-viz.ronn → lib/bundler/man/bundle-viz.1.ronn} +9 -3
  146. data/{man → lib/bundler/man}/bundle.1 +19 -53
  147. data/{man/bundle.ronn → lib/bundler/man/bundle.1.ronn} +14 -9
  148. data/{man → lib/bundler/man}/gemfile.5 +139 -356
  149. data/{man → lib/bundler/man}/gemfile.5.ronn +134 -97
  150. data/{man → lib/bundler/man}/index.txt +9 -1
  151. data/lib/bundler/match_metadata.rb +17 -0
  152. data/lib/bundler/match_platform.rb +2 -3
  153. data/lib/bundler/match_remote_metadata.rb +29 -0
  154. data/lib/bundler/materialization.rb +59 -0
  155. data/lib/bundler/mirror.rb +10 -12
  156. data/lib/bundler/plugin/api/source.rb +34 -18
  157. data/lib/bundler/plugin/api.rb +1 -1
  158. data/lib/bundler/plugin/dsl.rb +1 -1
  159. data/lib/bundler/plugin/events.rb +24 -0
  160. data/lib/bundler/plugin/index.rb +44 -9
  161. data/lib/bundler/plugin/installer/git.rb +0 -4
  162. data/lib/bundler/plugin/installer/path.rb +18 -0
  163. data/lib/bundler/plugin/installer/rubygems.rb +1 -9
  164. data/lib/bundler/plugin/installer.rb +63 -27
  165. data/lib/bundler/plugin/source_list.rb +5 -1
  166. data/lib/bundler/plugin.rb +131 -45
  167. data/lib/bundler/process_lock.rb +10 -14
  168. data/lib/bundler/remote_specification.rb +22 -10
  169. data/lib/bundler/resolver/base.rb +118 -0
  170. data/lib/bundler/resolver/candidate.rb +82 -0
  171. data/lib/bundler/resolver/incompatibility.rb +15 -0
  172. data/lib/bundler/resolver/package.rb +90 -0
  173. data/lib/bundler/resolver/root.rb +25 -0
  174. data/lib/bundler/resolver/spec_group.rb +60 -68
  175. data/lib/bundler/resolver.rb +454 -303
  176. data/lib/bundler/retry.rb +6 -6
  177. data/lib/bundler/ruby_dsl.rb +51 -7
  178. data/lib/bundler/ruby_version.rb +23 -38
  179. data/lib/bundler/rubygems_ext.rb +357 -98
  180. data/lib/bundler/rubygems_gem_installer.rb +131 -65
  181. data/lib/bundler/rubygems_integration.rb +149 -591
  182. data/lib/bundler/runtime.rb +51 -51
  183. data/lib/bundler/safe_marshal.rb +31 -0
  184. data/lib/bundler/self_manager.rb +206 -0
  185. data/lib/bundler/settings.rb +271 -135
  186. data/lib/bundler/setup.rb +23 -12
  187. data/lib/bundler/shared_helpers.rb +127 -117
  188. data/lib/bundler/similarity_detector.rb +3 -3
  189. data/lib/bundler/source/git/git_proxy.rb +326 -127
  190. data/lib/bundler/source/git.rb +207 -88
  191. data/lib/bundler/source/metadata.rb +19 -18
  192. data/lib/bundler/source/path/installer.rb +11 -32
  193. data/lib/bundler/source/path.rb +39 -38
  194. data/lib/bundler/source/rubygems/remote.rb +3 -4
  195. data/lib/bundler/source/rubygems.rb +223 -255
  196. data/lib/bundler/source/rubygems_aggregate.rb +68 -0
  197. data/lib/bundler/source.rb +33 -11
  198. data/lib/bundler/source_list.rb +131 -66
  199. data/lib/bundler/source_map.rb +71 -0
  200. data/lib/bundler/spec_set.rb +239 -94
  201. data/lib/bundler/stub_specification.rb +77 -39
  202. data/lib/bundler/templates/Executable +3 -5
  203. data/lib/bundler/templates/Executable.bundler +23 -19
  204. data/lib/bundler/templates/Executable.standalone +4 -4
  205. data/lib/bundler/templates/Gemfile +0 -2
  206. data/lib/bundler/templates/newgem/CHANGELOG.md.tt +5 -0
  207. data/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +104 -46
  208. data/lib/bundler/templates/newgem/Cargo.toml.tt +7 -0
  209. data/lib/bundler/templates/newgem/Gemfile.tt +19 -2
  210. data/lib/bundler/templates/newgem/README.md.tt +18 -16
  211. data/lib/bundler/templates/newgem/Rakefile.tt +44 -6
  212. data/lib/bundler/templates/newgem/bin/console.tt +1 -4
  213. data/lib/bundler/templates/newgem/circleci/config.yml.tt +25 -0
  214. data/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +15 -0
  215. data/lib/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt +10 -0
  216. data/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +6 -0
  217. data/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt +1 -1
  218. data/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +12 -0
  219. data/lib/bundler/templates/newgem/github/workflows/main.yml.tt +37 -0
  220. data/lib/bundler/templates/newgem/gitignore.tt +3 -0
  221. data/lib/bundler/templates/newgem/gitlab-ci.yml.tt +18 -0
  222. data/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +2 -0
  223. data/lib/bundler/templates/newgem/lib/newgem.rb.tt +4 -2
  224. data/lib/bundler/templates/newgem/newgem.gemspec.tt +37 -40
  225. data/lib/bundler/templates/newgem/rubocop.yml.tt +8 -0
  226. data/lib/bundler/templates/newgem/sig/newgem.rbs.tt +8 -0
  227. data/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +2 -0
  228. data/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +2 -1
  229. data/lib/bundler/templates/newgem/standard.yml.tt +3 -0
  230. data/lib/bundler/templates/newgem/test/minitest/test_helper.rb.tt +6 -0
  231. data/lib/bundler/templates/newgem/test/{newgem_test.rb.tt → minitest/test_newgem.rb.tt} +3 -1
  232. data/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt +15 -0
  233. data/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt +6 -0
  234. data/lib/bundler/ui/rg_proxy.rb +2 -2
  235. data/lib/bundler/ui/shell.rb +64 -23
  236. data/lib/bundler/ui/silent.rb +33 -6
  237. data/lib/bundler/ui.rb +3 -3
  238. data/lib/bundler/uri_credentials_filter.rb +11 -5
  239. data/lib/bundler/uri_normalizer.rb +23 -0
  240. data/lib/bundler/vendor/.document +1 -0
  241. data/lib/bundler/vendor/connection_pool/.document +1 -0
  242. data/lib/bundler/vendor/connection_pool/LICENSE +20 -0
  243. data/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +174 -0
  244. data/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +3 -0
  245. data/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +56 -0
  246. data/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +175 -0
  247. data/lib/bundler/vendor/fileutils/.document +1 -0
  248. data/lib/bundler/vendor/fileutils/COPYING +56 -0
  249. data/lib/bundler/vendor/fileutils/lib/fileutils.rb +1490 -432
  250. data/lib/bundler/vendor/net-http-persistent/.document +1 -0
  251. data/lib/bundler/vendor/net-http-persistent/README.rdoc +82 -0
  252. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +41 -0
  253. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +65 -0
  254. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +79 -0
  255. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +362 -484
  256. data/lib/bundler/vendor/pub_grub/.document +1 -0
  257. data/lib/bundler/vendor/pub_grub/LICENSE.txt +21 -0
  258. data/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb +20 -0
  259. data/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +189 -0
  260. data/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb +182 -0
  261. data/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb +150 -0
  262. data/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb +43 -0
  263. data/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb +121 -0
  264. data/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb +45 -0
  265. data/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb +19 -0
  266. data/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +61 -0
  267. data/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb +105 -0
  268. data/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb +3 -0
  269. data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb +129 -0
  270. data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +411 -0
  271. data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +248 -0
  272. data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb +178 -0
  273. data/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +31 -0
  274. data/lib/bundler/vendor/securerandom/.document +1 -0
  275. data/lib/bundler/vendor/securerandom/COPYING +56 -0
  276. data/lib/bundler/vendor/securerandom/lib/securerandom.rb +102 -0
  277. data/lib/bundler/vendor/thor/.document +1 -0
  278. data/lib/bundler/vendor/thor/LICENSE.md +20 -0
  279. data/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb +4 -3
  280. data/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +3 -2
  281. data/lib/bundler/vendor/thor/lib/thor/actions/directory.rb +8 -18
  282. data/lib/bundler/vendor/thor/lib/thor/actions/empty_directory.rb +1 -1
  283. data/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +27 -20
  284. data/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +34 -13
  285. data/lib/bundler/vendor/thor/lib/thor/actions.rb +47 -28
  286. data/lib/bundler/vendor/thor/lib/thor/base.rb +200 -54
  287. data/lib/bundler/vendor/thor/lib/thor/command.rb +34 -18
  288. data/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +10 -0
  289. data/lib/bundler/vendor/thor/lib/thor/error.rb +74 -0
  290. data/lib/bundler/vendor/thor/lib/thor/group.rb +15 -4
  291. data/lib/bundler/vendor/thor/lib/thor/invocation.rb +2 -1
  292. data/lib/bundler/vendor/thor/lib/thor/line_editor/basic.rb +1 -1
  293. data/lib/bundler/vendor/thor/lib/thor/line_editor/readline.rb +6 -6
  294. data/lib/bundler/vendor/thor/lib/thor/line_editor.rb +2 -2
  295. data/lib/bundler/vendor/thor/lib/thor/nested_context.rb +29 -0
  296. data/lib/bundler/vendor/thor/lib/thor/parser/argument.rb +17 -1
  297. data/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +35 -15
  298. data/lib/bundler/vendor/thor/lib/thor/parser/option.rb +45 -13
  299. data/lib/bundler/vendor/thor/lib/thor/parser/options.rb +86 -13
  300. data/lib/bundler/vendor/thor/lib/thor/parser.rb +4 -4
  301. data/lib/bundler/vendor/thor/lib/thor/rake_compat.rb +3 -2
  302. data/lib/bundler/vendor/thor/lib/thor/runner.rb +51 -40
  303. data/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +99 -148
  304. data/lib/bundler/vendor/thor/lib/thor/shell/color.rb +6 -43
  305. data/lib/bundler/vendor/thor/lib/thor/shell/column_printer.rb +29 -0
  306. data/lib/bundler/vendor/thor/lib/thor/shell/html.rb +4 -49
  307. data/lib/bundler/vendor/thor/lib/thor/shell/table_printer.rb +118 -0
  308. data/lib/bundler/vendor/thor/lib/thor/shell/terminal.rb +42 -0
  309. data/lib/bundler/vendor/thor/lib/thor/shell/wrapped_printer.rb +38 -0
  310. data/lib/bundler/vendor/thor/lib/thor/shell.rb +6 -6
  311. data/lib/bundler/vendor/thor/lib/thor/util.rb +26 -9
  312. data/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
  313. data/lib/bundler/vendor/thor/lib/thor.rb +182 -17
  314. data/lib/bundler/vendor/tsort/.document +1 -0
  315. data/lib/bundler/vendor/tsort/LICENSE.txt +22 -0
  316. data/lib/bundler/vendor/tsort/lib/tsort.rb +455 -0
  317. data/lib/bundler/vendor/uri/.document +1 -0
  318. data/lib/bundler/vendor/uri/COPYING +56 -0
  319. data/lib/bundler/vendor/uri/lib/uri/common.rb +876 -0
  320. data/lib/bundler/vendor/uri/lib/uri/file.rb +100 -0
  321. data/lib/bundler/vendor/uri/lib/uri/ftp.rb +267 -0
  322. data/lib/bundler/vendor/uri/lib/uri/generic.rb +1578 -0
  323. data/lib/bundler/vendor/uri/lib/uri/http.rb +125 -0
  324. data/lib/bundler/vendor/uri/lib/uri/https.rb +23 -0
  325. data/lib/bundler/vendor/uri/lib/uri/ldap.rb +261 -0
  326. data/lib/bundler/vendor/uri/lib/uri/ldaps.rb +22 -0
  327. data/lib/bundler/vendor/uri/lib/uri/mailto.rb +293 -0
  328. data/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +546 -0
  329. data/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +206 -0
  330. data/lib/bundler/vendor/uri/lib/uri/version.rb +6 -0
  331. data/lib/bundler/vendor/uri/lib/uri/ws.rb +83 -0
  332. data/lib/bundler/vendor/uri/lib/uri/wss.rb +23 -0
  333. data/lib/bundler/vendor/uri/lib/uri.rb +104 -0
  334. data/lib/bundler/vendored_fileutils.rb +1 -6
  335. data/lib/bundler/vendored_net_http.rb +23 -0
  336. data/lib/bundler/vendored_persistent.rb +1 -42
  337. data/lib/bundler/{vendored_molinillo.rb → vendored_pub_grub.rb} +1 -1
  338. data/lib/bundler/vendored_securerandom.rb +12 -0
  339. data/lib/bundler/vendored_thor.rb +2 -2
  340. data/lib/bundler/vendored_timeout.rb +12 -0
  341. data/lib/bundler/vendored_tsort.rb +4 -0
  342. data/lib/bundler/vendored_uri.rb +21 -0
  343. data/lib/bundler/version.rb +5 -20
  344. data/lib/bundler/vlad.rb +3 -3
  345. data/lib/bundler/worker.rb +26 -15
  346. data/lib/bundler/yaml_serializer.rb +21 -13
  347. data/lib/bundler.rb +364 -230
  348. metadata +186 -218
  349. data/exe/bundle_ruby +0 -60
  350. data/lib/bundler/cli/package.rb +0 -49
  351. data/lib/bundler/compatibility_guard.rb +0 -14
  352. data/lib/bundler/dep_proxy.rb +0 -48
  353. data/lib/bundler/gem_remote_fetcher.rb +0 -43
  354. data/lib/bundler/gemdeps.rb +0 -29
  355. data/lib/bundler/psyched_yaml.rb +0 -37
  356. data/lib/bundler/ssl_certs/certificate_manager.rb +0 -66
  357. data/lib/bundler/ssl_certs/index.rubygems.org/GlobalSignRootCA.pem +0 -21
  358. data/lib/bundler/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -23
  359. data/lib/bundler/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -25
  360. data/lib/bundler/templates/gems.rb +0 -8
  361. data/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +0 -3
  362. data/lib/bundler/templates/newgem/test/test_helper.rb.tt +0 -4
  363. data/lib/bundler/templates/newgem/travis.yml.tt +0 -7
  364. data/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +0 -26
  365. data/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
  366. data/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +0 -81
  367. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +0 -36
  368. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +0 -66
  369. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +0 -62
  370. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +0 -63
  371. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +0 -61
  372. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +0 -126
  373. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +0 -46
  374. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +0 -36
  375. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +0 -136
  376. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +0 -223
  377. data/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +0 -143
  378. data/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +0 -6
  379. data/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +0 -101
  380. data/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +0 -67
  381. data/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +0 -837
  382. data/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +0 -46
  383. data/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +0 -58
  384. data/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -12
  385. data/lib/bundler/vendor/net-http-persistent/lib/net/http/faster.rb +0 -27
  386. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/ssl_reuse.rb +0 -129
  387. data/lib/bundler/vendor/thor/lib/thor/core_ext/io_binary_read.rb +0 -12
  388. data/lib/bundler/vendor/thor/lib/thor/core_ext/ordered_hash.rb +0 -129
  389. data/lib/bundler/version_ranges.rb +0 -76
  390. data/man/bundle-add.1 +0 -58
  391. data/man/bundle-add.1.txt +0 -52
  392. data/man/bundle-add.ronn +0 -40
  393. data/man/bundle-binstubs.1.txt +0 -48
  394. data/man/bundle-check.1.txt +0 -33
  395. data/man/bundle-clean.1.txt +0 -26
  396. data/man/bundle-config.1.txt +0 -529
  397. data/man/bundle-doctor.1.txt +0 -44
  398. data/man/bundle-exec.1.txt +0 -178
  399. data/man/bundle-gem.1 +0 -80
  400. data/man/bundle-gem.1.txt +0 -91
  401. data/man/bundle-gem.ronn +0 -78
  402. data/man/bundle-info.1 +0 -20
  403. data/man/bundle-info.1.txt +0 -21
  404. data/man/bundle-info.ronn +0 -17
  405. data/man/bundle-init.1.txt +0 -34
  406. data/man/bundle-inject.1 +0 -33
  407. data/man/bundle-inject.1.txt +0 -32
  408. data/man/bundle-install.1.txt +0 -396
  409. data/man/bundle-list.1.txt +0 -43
  410. data/man/bundle-lock.1.txt +0 -93
  411. data/man/bundle-open.1 +0 -32
  412. data/man/bundle-open.1.txt +0 -29
  413. data/man/bundle-outdated.1.txt +0 -131
  414. data/man/bundle-package.1 +0 -55
  415. data/man/bundle-package.1.txt +0 -79
  416. data/man/bundle-package.ronn +0 -72
  417. data/man/bundle-platform.1 +0 -61
  418. data/man/bundle-platform.1.txt +0 -57
  419. data/man/bundle-pristine.1.txt +0 -44
  420. data/man/bundle-remove.1.txt +0 -34
  421. data/man/bundle-show.1.txt +0 -27
  422. data/man/bundle-update.1.txt +0 -391
  423. data/man/bundle-viz.1.txt +0 -39
  424. data/man/bundle.1.txt +0 -116
  425. data/man/gemfile.5.txt +0 -653
  426. /data/lib/bundler/{ssl_certs → man}/.document +0 -0
@@ -1,46 +1,72 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Some versions of the Bundler 1.1 RC series introduced corrupted
4
- # lockfiles. There were two major problems:
5
- #
6
- # * multiple copies of the same GIT section appeared in the lockfile
7
- # * when this happened, those sections got multiple copies of gems
8
- # in those sections.
9
- #
10
- # As a result, Bundler 1.1 contains code that fixes the earlier
11
- # corruption. We will remove this fix-up code in Bundler 1.2.
12
-
13
3
  module Bundler
14
4
  class LockfileParser
15
- attr_reader :sources, :dependencies, :specs, :platforms, :bundler_version, :ruby_version
16
-
17
- BUNDLED = "BUNDLED WITH".freeze
18
- DEPENDENCIES = "DEPENDENCIES".freeze
19
- PLATFORMS = "PLATFORMS".freeze
20
- RUBY = "RUBY VERSION".freeze
21
- GIT = "GIT".freeze
22
- GEM = "GEM".freeze
23
- PATH = "PATH".freeze
24
- PLUGIN = "PLUGIN SOURCE".freeze
25
- SPECS = " specs:".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:"
26
50
  OPTIONS = /^ ([a-z]+): (.*)$/i
27
51
  SOURCE = [GIT, GEM, PATH, PLUGIN].freeze
28
52
 
29
53
  SECTIONS_BY_VERSION_INTRODUCED = {
30
- # The strings have to be dup'ed for old RG on Ruby 2.3+
31
- # TODO: remove dup in Bundler 2.0
32
- Gem::Version.create("1.0".dup) => [DEPENDENCIES, PLATFORMS, GIT, GEM, PATH].freeze,
33
- Gem::Version.create("1.10".dup) => [BUNDLED].freeze,
34
- Gem::Version.create("1.12".dup) => [RUBY].freeze,
35
- Gem::Version.create("1.13".dup) => [PLUGIN].freeze,
54
+ Gem::Version.create("1.0") => [DEPENDENCIES, PLATFORMS, GIT, GEM, PATH].freeze,
55
+ Gem::Version.create("1.10") => [BUNDLED].freeze,
56
+ Gem::Version.create("1.12") => [RUBY].freeze,
57
+ Gem::Version.create("1.13") => [PLUGIN].freeze,
58
+ Gem::Version.create("2.5.0") => [CHECKSUMS].freeze,
36
59
  }.freeze
37
60
 
38
- KNOWN_SECTIONS = SECTIONS_BY_VERSION_INTRODUCED.values.flatten.freeze
61
+ KNOWN_SECTIONS = SECTIONS_BY_VERSION_INTRODUCED.values.flatten!.freeze
39
62
 
40
63
  ENVIRONMENT_VERSION_SECTIONS = [BUNDLED, RUBY].freeze
64
+ deprecate_constant(:ENVIRONMENT_VERSION_SECTIONS)
41
65
 
42
66
  def self.sections_in_lockfile(lockfile_contents)
43
- lockfile_contents.scan(/^\w[\w ]*$/).uniq
67
+ sections = lockfile_contents.scan(/^\w[\w ]*$/)
68
+ sections.uniq!
69
+ sections
44
70
  end
45
71
 
46
72
  def self.unknown_sections_in_lockfile(lockfile_contents)
@@ -49,7 +75,7 @@ module Bundler
49
75
 
50
76
  def self.sections_to_ignore(base_version = nil)
51
77
  base_version &&= base_version.release
52
- base_version ||= Gem::Version.create("1.0".dup)
78
+ base_version ||= Gem::Version.create("1.0")
53
79
  attributes = []
54
80
  SECTIONS_BY_VERSION_INTRODUCED.each do |version, introduced|
55
81
  next if version <= base_version
@@ -58,103 +84,93 @@ module Bundler
58
84
  attributes
59
85
  end
60
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
+
61
97
  def initialize(lockfile)
62
98
  @platforms = []
63
99
  @sources = []
64
100
  @dependencies = {}
65
- @state = nil
101
+ @parse_method = nil
66
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)
67
109
 
68
- @rubygems_aggregate = Source::Rubygems.new
69
-
70
- if lockfile.match(/<<<<<<<|=======|>>>>>>>|\|\|\|\|\|\|\|/)
71
- raise LockfileError, "Your #{Bundler.default_lockfile.relative_path_from(SharedHelpers.pwd)} contains merge conflicts.\n" \
72
- "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."
73
113
  end
74
114
 
75
- 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
+
76
119
  if SOURCE.include?(line)
77
- @state = :source
120
+ @parse_method = :parse_source
78
121
  parse_source(line)
79
122
  elsif line == DEPENDENCIES
80
- @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
81
129
  elsif line == PLATFORMS
82
- @state = :platform
130
+ @parse_method = :parse_platform
83
131
  elsif line == RUBY
84
- @state = :ruby
132
+ @parse_method = :parse_ruby
85
133
  elsif line == BUNDLED
86
- @state = :bundled_with
87
- elsif line =~ /^[^\s]/
88
- @state = nil
89
- elsif @state
90
- 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)
91
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
92
147
  end
93
- @sources << @rubygems_aggregate unless Bundler.feature_flag.lockfile_uses_separate_rubygems_sources?
94
- @specs = @specs.values.sort_by(&:identifier)
95
- warn_for_outdated_bundler_version
96
148
  rescue ArgumentError => e
97
149
  Bundler.ui.debug(e)
98
- raise LockfileError, "Your lockfile is unreadable. Run `rm #{Bundler.default_lockfile.relative_path_from(SharedHelpers.pwd)}` " \
99
- "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}"
100
153
  end
101
154
 
102
- def warn_for_outdated_bundler_version
103
- return unless bundler_version
104
- prerelease_text = bundler_version.prerelease? ? " --pre" : ""
105
- current_version = Gem::Version.create(Bundler::VERSION)
106
- case current_version.segments.first <=> bundler_version.segments.first
107
- when -1
108
- raise LockfileError, "You must use Bundler #{bundler_version.segments.first} or greater with this lockfile."
109
- when 0
110
- if current_version < bundler_version
111
- Bundler.ui.warn "Warning: the running version of Bundler (#{current_version}) is older " \
112
- "than the version that created the lockfile (#{bundler_version}). We suggest you " \
113
- "upgrade to the latest version of Bundler by running `gem " \
114
- "install bundler#{prerelease_text}`.\n"
115
- end
116
- end
155
+ def may_include_redundant_platform_specific_gems?
156
+ bundler_version.nil? || bundler_version < Gem::Version.new("1.16.2")
117
157
  end
118
158
 
119
- private
159
+ private
120
160
 
121
161
  TYPES = {
122
- GIT => Bundler::Source::Git,
123
- GEM => Bundler::Source::Rubygems,
124
- PATH => Bundler::Source::Path,
162
+ GIT => Bundler::Source::Git,
163
+ GEM => Bundler::Source::Rubygems,
164
+ PATH => Bundler::Source::Path,
125
165
  PLUGIN => Bundler::Plugin,
126
166
  }.freeze
127
167
 
128
168
  def parse_source(line)
129
169
  case line
130
170
  when SPECS
131
- case @type
132
- when PATH
133
- @current_source = TYPES[@type].from_lock(@opts)
134
- @sources << @current_source
135
- when GIT
136
- @current_source = TYPES[@type].from_lock(@opts)
137
- # Strip out duplicate GIT sections
138
- if @sources.include?(@current_source)
139
- @current_source = @sources.find {|s| s == @current_source }
140
- else
141
- @sources << @current_source
142
- end
143
- when GEM
144
- if Bundler.feature_flag.lockfile_uses_separate_rubygems_sources?
145
- @opts["remotes"] = @opts.delete("remote")
146
- @current_source = TYPES[@type].from_lock(@opts)
147
- @sources << @current_source
148
- else
149
- Array(@opts["remote"]).each do |url|
150
- @rubygems_aggregate.add_remote(url)
151
- end
152
- @current_source = @rubygems_aggregate
153
- end
154
- when PLUGIN
155
- @current_source = Plugin.source_from_lock(@opts)
156
- @sources << @current_source
157
- end
171
+ return unless TYPES.key?(@type)
172
+ @current_source = TYPES[@type].from_lock(@opts)
173
+ @sources << @current_source
158
174
  when OPTIONS
159
175
  value = $2
160
176
  value = true if value == "true"
@@ -184,6 +200,7 @@ module Bundler
184
200
  (?:#{space}\(([^-]*) # Space, followed by version
185
201
  (?:-(.*))?\))? # Optional platform
186
202
  (!)? # Optional pinned marker
203
+ (?:#{space}([^ ]+))? # Optional checksum
187
204
  $ # Line end
188
205
  /xo
189
206
 
@@ -191,11 +208,11 @@ module Bundler
191
208
  return unless line =~ NAME_VERSION
192
209
  spaces = $1
193
210
  return unless spaces.size == 2
194
- name = $2
211
+ name = -$2
195
212
  version = $3
196
213
  pinned = $5
197
214
 
198
- version = version.split(",").map(&:strip) if version
215
+ version = version.split(",").each(&:strip!) if version
199
216
 
200
217
  dep = Bundler::Dependency.new(name, version)
201
218
 
@@ -216,41 +233,65 @@ module Bundler
216
233
  @dependencies[dep.name] = dep
217
234
  end
218
235
 
219
- def parse_spec(line)
236
+ def parse_checksum(line)
220
237
  return unless line =~ NAME_VERSION
238
+
221
239
  spaces = $1
240
+ return unless spaces.size == 2
241
+ checksums = $6
242
+ return unless checksums
222
243
  name = $2
223
244
  version = $3
224
245
  platform = $4
225
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
+
226
265
  if spaces.size == 4
266
+ # only load platform for non-dependency (spec) line
267
+ platform = $4
268
+
227
269
  version = Gem::Version.new(version)
228
270
  platform = platform ? Gem::Platform.new(platform) : Gem::Platform::RUBY
229
- @current_spec = LazySpecification.new(name, version, platform)
230
- @current_spec.source = @current_source
271
+ @current_spec = LazySpecification.new(name, version, platform, @current_source)
272
+ @current_source.add_dependency_names(name)
231
273
 
232
- # Avoid introducing multiple copies of the same spec (caused by
233
- # duplicate GIT sections)
234
- @specs[@current_spec.identifier] ||= @current_spec
274
+ @specs[@current_spec.full_name] = @current_spec
235
275
  elsif spaces.size == 6
236
- version = version.split(",").map(&:strip) if version
276
+ version = version.split(",").each(&:strip!) if version
237
277
  dep = Gem::Dependency.new(name, version)
238
278
  @current_spec.dependencies << dep
239
279
  end
240
280
  end
241
281
 
242
282
  def parse_platform(line)
243
- @platforms << Gem::Platform.new($1) if line =~ /^ (.*)$/
283
+ @platforms << Gem::Platform.new($1.strip) if line =~ /^ (.*)$/
244
284
  end
245
285
 
246
286
  def parse_bundled_with(line)
247
- line = line.strip
287
+ line.strip!
248
288
  return unless Gem::Version.correct?(line)
249
289
  @bundler_version = Gem::Version.create(line)
250
290
  end
251
291
 
252
292
  def parse_ruby(line)
253
- @ruby_version = line.strip
293
+ line.strip!
294
+ @ruby_version = line
254
295
  end
255
296
  end
256
297
  end
@@ -0,0 +1,76 @@
1
+ .\" generated with Ronn-NG/v0.10.1
2
+ .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
+ .TH "BUNDLE\-ADD" "1" "January 2025" ""
4
+ .SH "NAME"
5
+ \fBbundle\-add\fR \- Add gem to the Gemfile and run bundle install
6
+ .SH "SYNOPSIS"
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]
8
+ .SH "DESCRIPTION"
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\.
10
+ .SH "OPTIONS"
11
+ .TP
12
+ \fB\-\-version=VERSION\fR, \fB\-v=VERSION\fR
13
+ Specify version requirements(s) for the added gem\.
14
+ .TP
15
+ \fB\-\-group=GROUP\fR, \fB\-g=GROUP\fR
16
+ Specify the group(s) for the added gem\. Multiple groups should be separated by commas\.
17
+ .TP
18
+ \fB\-\-source=SOURCE\fR, \fB\-s=SOURCE\fR
19
+ Specify the source for the added gem\.
20
+ .TP
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
28
+ Specify the git source for the added gem\.
29
+ .TP
30
+ \fB\-\-github=GITHUB\fR
31
+ Specify the github source for the added gem\.
32
+ .TP
33
+ \fB\-\-branch=BRANCH\fR
34
+ Specify the git branch for the added gem\.
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\.
44
+ .TP
45
+ \fB\-\-skip\-install\fR
46
+ Adds the gem to the Gemfile but does not install it\.
47
+ .TP
48
+ \fB\-\-optimistic\fR
49
+ Adds optimistic declaration of version\.
50
+ .TP
51
+ \fB\-\-strict\fR
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
@@ -0,0 +1,87 @@
1
+ bundle-add(1) -- Add gem to the Gemfile and run bundle install
2
+ ==============================================================
3
+
4
+ ## SYNOPSIS
5
+
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]
9
+
10
+ ## DESCRIPTION
11
+
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`.
14
+
15
+ ## OPTIONS
16
+
17
+ * `--version=VERSION`, `-v=VERSION`:
18
+ Specify version requirements(s) for the added gem.
19
+
20
+ * `--group=GROUP`, `-g=GROUP`:
21
+ Specify the group(s) for the added gem. Multiple groups should be separated by commas.
22
+
23
+ * `--source=SOURCE`, `-s=SOURCE`:
24
+ Specify the source for the added gem.
25
+
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`:
33
+ Specify the git source for the added gem.
34
+
35
+ * `--github=GITHUB`:
36
+ Specify the github source for the added gem.
37
+
38
+ * `--branch=BRANCH`:
39
+ Specify the git branch for the added gem.
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
+
50
+ * `--skip-install`:
51
+ Adds the gem to the Gemfile but does not install it.
52
+
53
+ * `--optimistic`:
54
+ Adds optimistic declaration of version.
55
+
56
+ * `--strict`:
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,40 +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" "November 2018" "" ""
5
- .
1
+ .\" generated with Ronn-NG/v0.10.1
2
+ .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
+ .TH "BUNDLE\-BINSTUBS" "1" "January 2025" ""
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
- Binstubs are scripts that wrap around executables\. Bundler creates a small Ruby file (a binstub) that loads Bundler, runs the command, and puts it into \fBbin/\fR\. Binstubs are a shortcut\-or alternative\- to always using \fBbundle exec\fR\. This gives you a file that can by run directly, and one that will always run the correct gem version used by the application\.
14
- .
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\.
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
- .
39
- .SH "BUNDLE INSTALL \-\-BINSTUBS"
40
- To create binstubs for all the gems in the bundle you can use the \fB\-\-binstubs\fR flag in bundle install(1) \fIbundle\-install\.1\.html\fR\.
25
+ \fB\-\-shebang=SHEBANG\fR
26
+ Specify a different shebang executable name than the default (default 'ruby')
27
+ .TP
28
+ \fB\-\-all\fR
29
+ Create binstubs for all gems in the bundle\.
30
+ .TP
31
+ \fB\-\-all\-platforms\fR
32
+ Install binstubs for all platforms\.
33
+
@@ -3,14 +3,14 @@ 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
 
10
10
  Binstubs are scripts that wrap around executables. Bundler creates a
11
11
  small Ruby file (a binstub) that loads Bundler, runs the command,
12
12
  and puts it into `bin/`. Binstubs are a shortcut-or alternative-
13
- to always using `bundle exec`. This gives you a file that can by run
13
+ to always using `bundle exec`. This gives you a file that can be run
14
14
  directly, and one that will always run the correct gem version
15
15
  used by the application.
16
16
 
@@ -27,17 +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
- ## BUNDLE INSTALL --BINSTUBS
40
+ * `--all`:
41
+ Create binstubs for all gems in the bundle.
41
42
 
42
- To create binstubs for all the gems in the bundle you can use the `--binstubs`
43
- flag in [bundle install(1)](bundle-install.1.html).
43
+ * `--all-platforms`:
44
+ Install binstubs for all platforms.