rubygems-update 2.6.11 → 2.7.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (405) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +8 -22
  3. data/CONTRIBUTING.rdoc +53 -54
  4. data/History.txt +405 -0
  5. data/Manifest.txt +46 -15
  6. data/POLICIES.rdoc +3 -3
  7. data/README.md +72 -0
  8. data/Rakefile +55 -12
  9. data/appveyor.yml +29 -1
  10. data/bin/gem +1 -1
  11. data/bin/update_rubygems +2 -2
  12. data/bundler/CHANGELOG.md +412 -9
  13. data/bundler/CODE_OF_CONDUCT.md +1 -1
  14. data/bundler/CONTRIBUTING.md +10 -29
  15. data/bundler/README.md +27 -11
  16. data/bundler/bundler.gemspec +58 -0
  17. data/bundler/exe/bundle +5 -7
  18. data/bundler/exe/bundle_ruby +4 -3
  19. data/bundler/lib/bundler.rb +103 -79
  20. data/bundler/lib/bundler/build_metadata.rb +53 -0
  21. data/bundler/lib/bundler/capistrano.rb +5 -0
  22. data/bundler/lib/bundler/cli.rb +231 -66
  23. data/bundler/lib/bundler/cli/add.rb +25 -0
  24. data/bundler/lib/bundler/cli/binstubs.rb +9 -7
  25. data/bundler/lib/bundler/cli/cache.rb +5 -4
  26. data/bundler/lib/bundler/cli/check.rb +3 -5
  27. data/bundler/lib/bundler/cli/clean.rb +5 -6
  28. data/bundler/lib/bundler/cli/common.rb +18 -2
  29. data/bundler/lib/bundler/cli/config.rb +26 -7
  30. data/bundler/lib/bundler/cli/console.rb +2 -1
  31. data/bundler/lib/bundler/cli/doctor.rb +1 -0
  32. data/bundler/lib/bundler/cli/exec.rb +6 -5
  33. data/bundler/lib/bundler/cli/gem.rb +42 -18
  34. data/bundler/lib/bundler/cli/info.rb +50 -0
  35. data/bundler/lib/bundler/cli/init.rb +21 -7
  36. data/bundler/lib/bundler/cli/inject.rb +13 -4
  37. data/bundler/lib/bundler/cli/install.rb +61 -77
  38. data/bundler/lib/bundler/cli/issue.rb +40 -0
  39. data/bundler/lib/bundler/cli/list.rb +22 -0
  40. data/bundler/lib/bundler/cli/lock.rb +4 -2
  41. data/bundler/lib/bundler/cli/open.rb +2 -2
  42. data/bundler/lib/bundler/cli/outdated.rb +30 -28
  43. data/bundler/lib/bundler/cli/package.rb +9 -6
  44. data/bundler/lib/bundler/cli/platform.rb +1 -0
  45. data/bundler/lib/bundler/cli/plugin.rb +1 -0
  46. data/bundler/lib/bundler/cli/pristine.rb +43 -0
  47. data/bundler/lib/bundler/cli/show.rb +1 -1
  48. data/bundler/lib/bundler/cli/update.rb +36 -13
  49. data/bundler/lib/bundler/cli/viz.rb +5 -1
  50. data/bundler/lib/bundler/compact_index_client.rb +1 -0
  51. data/bundler/lib/bundler/compact_index_client/cache.rb +1 -2
  52. data/bundler/lib/bundler/compact_index_client/updater.rb +36 -8
  53. data/bundler/lib/bundler/compatibility_guard.rb +14 -0
  54. data/bundler/lib/bundler/constants.rb +1 -0
  55. data/bundler/lib/bundler/current_ruby.rb +16 -8
  56. data/bundler/lib/bundler/definition.rb +252 -170
  57. data/bundler/lib/bundler/dep_proxy.rb +3 -1
  58. data/bundler/lib/bundler/dependency.rb +7 -7
  59. data/bundler/lib/bundler/deployment.rb +1 -1
  60. data/bundler/lib/bundler/deprecate.rb +15 -3
  61. data/bundler/lib/bundler/dsl.rb +103 -62
  62. data/bundler/lib/bundler/endpoint_specification.rb +13 -3
  63. data/bundler/lib/bundler/env.rb +101 -38
  64. data/bundler/lib/bundler/environment_preserver.rb +27 -6
  65. data/bundler/lib/bundler/errors.rb +3 -1
  66. data/bundler/lib/bundler/feature_flag.rb +39 -4
  67. data/bundler/lib/bundler/fetcher.rb +18 -11
  68. data/bundler/lib/bundler/fetcher/base.rb +1 -0
  69. data/bundler/lib/bundler/fetcher/compact_index.rb +2 -12
  70. data/bundler/lib/bundler/fetcher/dependency.rb +2 -1
  71. data/bundler/lib/bundler/fetcher/downloader.rb +14 -7
  72. data/bundler/lib/bundler/fetcher/index.rb +3 -2
  73. data/bundler/lib/bundler/friendly_errors.rb +7 -2
  74. data/bundler/lib/bundler/gem_helper.rb +24 -10
  75. data/bundler/lib/bundler/gem_helpers.rb +1 -0
  76. data/bundler/lib/bundler/gem_remote_fetcher.rb +1 -0
  77. data/bundler/lib/bundler/gem_tasks.rb +1 -0
  78. data/bundler/lib/bundler/gem_version_promoter.rb +13 -0
  79. data/bundler/lib/bundler/gemdeps.rb +1 -0
  80. data/bundler/lib/bundler/graph.rb +1 -0
  81. data/bundler/lib/bundler/index.rb +19 -11
  82. data/bundler/lib/bundler/injector.rb +54 -30
  83. data/bundler/lib/bundler/inline.rb +10 -10
  84. data/bundler/lib/bundler/installer.rb +114 -52
  85. data/bundler/lib/bundler/installer/gem_installer.rb +14 -4
  86. data/bundler/lib/bundler/installer/parallel_installer.rb +91 -42
  87. data/bundler/lib/bundler/installer/standalone.rb +1 -0
  88. data/bundler/lib/bundler/lazy_specification.rb +17 -4
  89. data/bundler/lib/bundler/lockfile_generator.rb +95 -0
  90. data/bundler/lib/bundler/lockfile_parser.rb +49 -35
  91. data/bundler/lib/bundler/match_platform.rb +1 -0
  92. data/bundler/lib/bundler/mirror.rb +10 -5
  93. data/bundler/lib/bundler/plugin.rb +8 -3
  94. data/bundler/lib/bundler/plugin/api/source.rb +16 -3
  95. data/bundler/lib/bundler/plugin/index.rb +9 -2
  96. data/bundler/lib/bundler/plugin/installer.rb +7 -6
  97. data/bundler/lib/bundler/plugin/source_list.rb +7 -8
  98. data/bundler/lib/bundler/process_lock.rb +24 -0
  99. data/bundler/lib/bundler/psyched_yaml.rb +10 -0
  100. data/bundler/lib/bundler/remote_specification.rb +25 -1
  101. data/bundler/lib/bundler/resolver.rb +176 -193
  102. data/bundler/lib/bundler/resolver/spec_group.rb +106 -0
  103. data/bundler/lib/bundler/retry.rb +1 -0
  104. data/bundler/lib/bundler/ruby_dsl.rb +1 -0
  105. data/bundler/lib/bundler/ruby_version.rb +7 -2
  106. data/bundler/lib/bundler/rubygems_ext.rb +18 -8
  107. data/bundler/lib/bundler/rubygems_gem_installer.rb +25 -2
  108. data/bundler/lib/bundler/rubygems_integration.rb +166 -69
  109. data/bundler/lib/bundler/runtime.rb +29 -19
  110. data/bundler/lib/bundler/settings.rb +202 -87
  111. data/bundler/lib/bundler/settings/validator.rb +79 -0
  112. data/bundler/lib/bundler/setup.rb +4 -7
  113. data/bundler/lib/bundler/shared_helpers.rb +143 -27
  114. data/bundler/lib/bundler/similarity_detector.rb +1 -0
  115. data/bundler/lib/bundler/source.rb +53 -1
  116. data/bundler/lib/bundler/source/gemspec.rb +1 -0
  117. data/bundler/lib/bundler/source/git.rb +51 -22
  118. data/bundler/lib/bundler/source/git/git_proxy.rb +23 -13
  119. data/bundler/lib/bundler/source/metadata.rb +63 -0
  120. data/bundler/lib/bundler/source/path.rb +38 -17
  121. data/bundler/lib/bundler/source/path/installer.rb +4 -2
  122. data/bundler/lib/bundler/source/rubygems.rb +161 -82
  123. data/bundler/lib/bundler/source/rubygems/remote.rb +12 -2
  124. data/bundler/lib/bundler/source_list.rb +75 -15
  125. data/bundler/lib/bundler/spec_set.rb +37 -21
  126. data/bundler/lib/bundler/ssl_certs/certificate_manager.rb +2 -1
  127. data/bundler/lib/bundler/stub_specification.rb +86 -2
  128. data/bundler/lib/bundler/templates/.document +1 -0
  129. data/bundler/lib/bundler/templates/Executable +13 -1
  130. data/bundler/lib/bundler/templates/Executable.bundler +105 -0
  131. data/bundler/lib/bundler/templates/Executable.standalone +5 -5
  132. data/bundler/lib/bundler/templates/Gemfile +3 -0
  133. data/bundler/lib/bundler/templates/gems.rb +8 -0
  134. data/bundler/lib/bundler/templates/newgem/Gemfile.tt +4 -2
  135. data/bundler/lib/bundler/templates/newgem/LICENSE.txt.tt +1 -1
  136. data/bundler/lib/bundler/templates/newgem/README.md.tt +14 -8
  137. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +5 -5
  138. data/bundler/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt +4 -4
  139. data/bundler/lib/bundler/templates/newgem/ext/newgem/newgem.h.tt +3 -3
  140. data/bundler/lib/bundler/templates/newgem/gitignore.tt +0 -1
  141. data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +6 -6
  142. data/bundler/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +4 -4
  143. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +21 -12
  144. data/bundler/lib/bundler/templates/newgem/rspec.tt +1 -0
  145. data/bundler/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +0 -2
  146. data/bundler/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +3 -0
  147. data/bundler/lib/bundler/templates/newgem/test/newgem_test.rb.tt +1 -1
  148. data/bundler/lib/bundler/templates/newgem/test/test_helper.rb.tt +3 -3
  149. data/bundler/lib/bundler/templates/newgem/{.travis.yml.tt → travis.yml.tt} +2 -0
  150. data/bundler/lib/bundler/ui.rb +1 -0
  151. data/bundler/lib/bundler/ui/rg_proxy.rb +1 -0
  152. data/bundler/lib/bundler/ui/shell.rb +26 -10
  153. data/bundler/lib/bundler/ui/silent.rb +12 -1
  154. data/bundler/lib/bundler/uri_credentials_filter.rb +1 -0
  155. data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +1638 -0
  156. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +2 -0
  157. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +26 -0
  158. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +7 -0
  159. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +1 -0
  160. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +16 -5
  161. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +1 -0
  162. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +10 -2
  163. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +1 -0
  164. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +1 -0
  165. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +1 -0
  166. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +1 -0
  167. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +1 -0
  168. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +1 -0
  169. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +16 -5
  170. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +75 -7
  171. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +2 -1
  172. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +1 -0
  173. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +3 -1
  174. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +501 -138
  175. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +1 -0
  176. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +8 -4
  177. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +3 -1
  178. data/bundler/lib/bundler/vendor/thor/lib/thor.rb +46 -21
  179. data/bundler/lib/bundler/vendor/thor/lib/thor/actions.rb +24 -22
  180. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb +2 -1
  181. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +2 -1
  182. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/directory.rb +2 -2
  183. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/empty_directory.rb +16 -8
  184. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +66 -18
  185. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +17 -15
  186. data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +55 -32
  187. data/bundler/lib/bundler/vendor/thor/lib/thor/command.rb +13 -11
  188. data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +21 -1
  189. data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/io_binary_read.rb +7 -5
  190. data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/ordered_hash.rb +94 -63
  191. data/bundler/lib/bundler/vendor/thor/lib/thor/error.rb +3 -3
  192. data/bundler/lib/bundler/vendor/thor/lib/thor/group.rb +13 -13
  193. data/bundler/lib/bundler/vendor/thor/lib/thor/invocation.rb +4 -5
  194. data/bundler/lib/bundler/vendor/thor/lib/thor/line_editor/basic.rb +2 -0
  195. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/argument.rb +4 -7
  196. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +16 -16
  197. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/option.rb +42 -21
  198. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +13 -10
  199. data/bundler/lib/bundler/vendor/thor/lib/thor/runner.rb +31 -29
  200. data/bundler/lib/bundler/vendor/thor/lib/thor/shell.rb +1 -1
  201. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +49 -33
  202. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/color.rb +1 -1
  203. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/html.rb +4 -4
  204. data/bundler/lib/bundler/vendor/thor/lib/thor/util.rb +8 -7
  205. data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
  206. data/bundler/lib/bundler/vendored_fileutils.rb +9 -0
  207. data/bundler/lib/bundler/vendored_molinillo.rb +1 -0
  208. data/bundler/lib/bundler/vendored_persistent.rb +35 -0
  209. data/bundler/lib/bundler/vendored_thor.rb +6 -2
  210. data/bundler/lib/bundler/version.rb +19 -2
  211. data/bundler/lib/bundler/version_ranges.rb +76 -0
  212. data/bundler/lib/bundler/vlad.rb +5 -0
  213. data/bundler/lib/bundler/worker.rb +3 -1
  214. data/bundler/lib/bundler/yaml_serializer.rb +3 -3
  215. data/bundler/man/bundle-add.ronn +29 -0
  216. data/bundler/man/bundle-binstubs.ronn +15 -1
  217. data/bundler/man/bundle-check.ronn +26 -0
  218. data/bundler/man/bundle-clean.ronn +18 -0
  219. data/bundler/man/bundle-config.ronn +193 -69
  220. data/bundler/man/bundle-doctor.ronn +33 -0
  221. data/bundler/man/bundle-exec.ronn +10 -3
  222. data/bundler/man/bundle-gem.ronn +3 -2
  223. data/bundler/man/bundle-info.ronn +17 -0
  224. data/bundler/man/bundle-init.ronn +29 -0
  225. data/bundler/man/bundle-inject.ronn +22 -0
  226. data/bundler/man/bundle-install.ronn +44 -35
  227. data/bundler/man/bundle-list.ronn +15 -0
  228. data/bundler/man/bundle-lock.ronn +1 -1
  229. data/bundler/man/bundle-open.ronn +19 -0
  230. data/bundler/man/bundle-outdated.ronn +2 -2
  231. data/bundler/man/bundle-package.ronn +7 -2
  232. data/bundler/man/bundle-pristine.ronn +34 -0
  233. data/bundler/man/bundle-show.ronn +21 -0
  234. data/bundler/man/bundle-update.ronn +24 -17
  235. data/bundler/man/bundle-viz.ronn +30 -0
  236. data/bundler/man/bundle.ronn +36 -45
  237. data/bundler/man/gemfile.5.ronn +77 -71
  238. data/lib/rubygems.rb +102 -46
  239. data/lib/rubygems/basic_specification.rb +8 -4
  240. data/lib/rubygems/bundler_version_finder.rb +99 -0
  241. data/lib/rubygems/command.rb +10 -2
  242. data/lib/rubygems/command_manager.rb +8 -4
  243. data/lib/rubygems/commands/cert_command.rb +31 -6
  244. data/lib/rubygems/commands/cleanup_command.rb +10 -3
  245. data/lib/rubygems/commands/generate_index_command.rb +1 -1
  246. data/lib/rubygems/commands/help_command.rb +1 -1
  247. data/lib/rubygems/commands/install_command.rb +7 -0
  248. data/lib/rubygems/commands/open_command.rb +1 -1
  249. data/lib/rubygems/commands/owner_command.rb +7 -2
  250. data/lib/rubygems/commands/pristine_command.rb +11 -8
  251. data/lib/rubygems/commands/push_command.rb +39 -5
  252. data/lib/rubygems/commands/query_command.rb +17 -17
  253. data/lib/rubygems/commands/setup_command.rb +174 -69
  254. data/lib/rubygems/commands/signin_command.rb +33 -0
  255. data/lib/rubygems/commands/signout_command.rb +33 -0
  256. data/lib/rubygems/commands/sources_command.rb +1 -1
  257. data/lib/rubygems/commands/uninstall_command.rb +5 -4
  258. data/lib/rubygems/commands/unpack_command.rb +19 -7
  259. data/lib/rubygems/commands/update_command.rb +1 -1
  260. data/lib/rubygems/commands/which_command.rb +1 -1
  261. data/lib/rubygems/commands/yank_command.rb +4 -11
  262. data/lib/rubygems/config_file.rb +15 -26
  263. data/lib/rubygems/core_ext/kernel_require.rb +12 -16
  264. data/lib/rubygems/dependency.rb +3 -0
  265. data/lib/rubygems/dependency_installer.rb +8 -2
  266. data/lib/rubygems/dependency_list.rb +1 -1
  267. data/lib/rubygems/errors.rb +3 -0
  268. data/lib/rubygems/exceptions.rb +11 -1
  269. data/lib/rubygems/ext/builder.rb +2 -2
  270. data/lib/rubygems/ext/ext_conf_builder.rb +2 -4
  271. data/lib/rubygems/ext/rake_builder.rb +1 -1
  272. data/lib/rubygems/gem_runner.rb +5 -1
  273. data/lib/rubygems/gemcutter_utilities.rb +5 -2
  274. data/lib/rubygems/indexer.rb +6 -5
  275. data/lib/rubygems/install_update_options.rb +6 -29
  276. data/lib/rubygems/installer.rb +60 -13
  277. data/lib/rubygems/installer_test_case.rb +6 -3
  278. data/lib/rubygems/package.rb +55 -8
  279. data/lib/rubygems/package/file_source.rb +2 -2
  280. data/lib/rubygems/package/old.rb +3 -3
  281. data/lib/rubygems/package/tar_header.rb +17 -10
  282. data/lib/rubygems/package/tar_writer.rb +4 -3
  283. data/lib/rubygems/platform.rb +1 -1
  284. data/lib/rubygems/remote_fetcher.rb +2 -2
  285. data/lib/rubygems/request.rb +1 -1
  286. data/lib/rubygems/request_set.rb +47 -19
  287. data/lib/rubygems/request_set/gem_dependency_api.rb +3 -3
  288. data/lib/rubygems/request_set/lockfile.rb +1 -1
  289. data/lib/rubygems/requirement.rb +19 -4
  290. data/lib/rubygems/resolver.rb +24 -3
  291. data/lib/rubygems/resolver/api_specification.rb +5 -0
  292. data/lib/rubygems/resolver/installer_set.rb +4 -6
  293. data/lib/rubygems/safe_yaml.rb +51 -0
  294. data/lib/rubygems/security.rb +18 -6
  295. data/lib/rubygems/security/trust_dir.rb +1 -1
  296. data/lib/rubygems/security_option.rb +43 -0
  297. data/lib/rubygems/server.rb +21 -17
  298. data/lib/rubygems/source.rb +9 -6
  299. data/lib/rubygems/source/git.rb +2 -1
  300. data/lib/rubygems/source/local.rb +38 -35
  301. data/lib/rubygems/source/lock.rb +4 -1
  302. data/lib/rubygems/source_local.rb +3 -1
  303. data/lib/rubygems/source_specific_file.rb +3 -2
  304. data/lib/rubygems/spec_fetcher.rb +7 -3
  305. data/lib/rubygems/specification.rb +315 -249
  306. data/lib/rubygems/ssl_certs/{index.rubygems.org → rubygems.org}/GlobalSignRootCA.pem +0 -0
  307. data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem +21 -0
  308. data/lib/rubygems/stub_specification.rb +4 -3
  309. data/lib/rubygems/test_case.rb +51 -11
  310. data/lib/rubygems/test_utilities.rb +2 -2
  311. data/lib/rubygems/text.rb +14 -1
  312. data/lib/rubygems/user_interaction.rb +24 -15
  313. data/lib/rubygems/util.rb +6 -16
  314. data/lib/rubygems/util/licenses.rb +72 -4
  315. data/lib/rubygems/validator.rb +3 -3
  316. data/lib/rubygems/version.rb +24 -4
  317. data/lib/rubygems/version_option.rb +6 -1
  318. data/lib/ubygems.rb +3 -0
  319. data/setup.rb +1 -1
  320. data/test/rubygems/private3072_key.pem +40 -0
  321. data/test/rubygems/public3072_cert.pem +25 -0
  322. data/test/rubygems/test_bundled_ca.rb +7 -4
  323. data/test/rubygems/test_config.rb +1 -1
  324. data/test/rubygems/test_gem.rb +158 -39
  325. data/test/rubygems/test_gem_bundler_version_finder.rb +126 -0
  326. data/test/rubygems/test_gem_command.rb +7 -1
  327. data/test/rubygems/test_gem_command_manager.rb +2 -2
  328. data/test/rubygems/test_gem_commands_build_command.rb +29 -1
  329. data/test/rubygems/test_gem_commands_cert_command.rb +64 -0
  330. data/test/rubygems/test_gem_commands_cleanup_command.rb +44 -1
  331. data/test/rubygems/test_gem_commands_install_command.rb +73 -2
  332. data/test/rubygems/test_gem_commands_open_command.rb +2 -1
  333. data/test/rubygems/test_gem_commands_owner_command.rb +25 -0
  334. data/test/rubygems/test_gem_commands_pristine_command.rb +1 -1
  335. data/test/rubygems/test_gem_commands_push_command.rb +25 -5
  336. data/test/rubygems/test_gem_commands_query_command.rb +154 -1
  337. data/test/rubygems/test_gem_commands_setup_command.rb +140 -10
  338. data/test/rubygems/test_gem_commands_signin_command.rb +98 -0
  339. data/test/rubygems/test_gem_commands_signout_command.rb +37 -0
  340. data/test/rubygems/test_gem_commands_sources_command.rb +52 -0
  341. data/test/rubygems/test_gem_commands_uninstall_command.rb +15 -3
  342. data/test/rubygems/test_gem_commands_update_command.rb +1 -7
  343. data/test/rubygems/test_gem_commands_which_command.rb +3 -3
  344. data/test/rubygems/test_gem_dependency.rb +28 -0
  345. data/test/rubygems/test_gem_dependency_installer.rb +1 -1
  346. data/test/rubygems/test_gem_doctor.rb +2 -2
  347. data/test/rubygems/test_gem_ext_builder.rb +8 -8
  348. data/test/rubygems/test_gem_ext_configure_builder.rb +1 -1
  349. data/test/rubygems/test_gem_ext_rake_builder.rb +2 -6
  350. data/test/rubygems/test_gem_gemcutter_utilities.rb +4 -4
  351. data/test/rubygems/test_gem_indexer.rb +1 -2
  352. data/test/rubygems/test_gem_install_update_options.rb +6 -1
  353. data/test/rubygems/test_gem_installer.rb +168 -31
  354. data/test/rubygems/test_gem_package.rb +183 -26
  355. data/test/rubygems/test_gem_package_old.rb +1 -1
  356. data/test/rubygems/test_gem_package_tar_header.rb +21 -0
  357. data/test/rubygems/test_gem_rdoc.rb +2 -0
  358. data/test/rubygems/test_gem_remote_fetcher.rb +24 -5
  359. data/test/rubygems/test_gem_request.rb +5 -2
  360. data/test/rubygems/test_gem_request_connection_pools.rb +6 -7
  361. data/test/rubygems/test_gem_request_set.rb +7 -7
  362. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +3 -3
  363. data/test/rubygems/test_gem_request_set_lockfile.rb +4 -4
  364. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +1 -1
  365. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +1 -1
  366. data/test/rubygems/test_gem_requirement.rb +12 -0
  367. data/test/rubygems/test_gem_resolver.rb +26 -0
  368. data/test/rubygems/test_gem_resolver_api_specification.rb +24 -0
  369. data/test/rubygems/test_gem_resolver_conflict.rb +1 -1
  370. data/test/rubygems/test_gem_resolver_git_specification.rb +1 -1
  371. data/test/rubygems/test_gem_resolver_installer_set.rb +1 -1
  372. data/test/rubygems/test_gem_security.rb +5 -0
  373. data/test/rubygems/test_gem_security_policy.rb +27 -27
  374. data/test/rubygems/test_gem_security_signer.rb +6 -6
  375. data/test/rubygems/test_gem_security_trust_dir.rb +2 -2
  376. data/test/rubygems/test_gem_server.rb +194 -12
  377. data/test/rubygems/test_gem_source.rb +12 -3
  378. data/test/rubygems/test_gem_source_git.rb +1 -1
  379. data/test/rubygems/test_gem_spec_fetcher.rb +20 -0
  380. data/test/rubygems/test_gem_specification.rb +180 -42
  381. data/test/rubygems/test_gem_stream_ui.rb +8 -8
  382. data/test/rubygems/test_gem_stub_specification.rb +26 -8
  383. data/test/rubygems/test_gem_text.rb +16 -0
  384. data/test/rubygems/test_gem_util.rb +26 -0
  385. data/test/rubygems/test_gem_version.rb +68 -9
  386. data/test/rubygems/test_gem_version_option.rb +15 -0
  387. data/test/rubygems/test_kernel.rb +30 -0
  388. data/test/rubygems/test_require.rb +70 -21
  389. data/util/ci +1 -0
  390. data/util/generate_spdx_license_list.rb +16 -6
  391. data/util/update_bundled_ca_certificates.rb +1 -3
  392. metadata +61 -57
  393. data/README.rdoc +0 -54
  394. data/bundler/DEVELOPMENT.md +0 -150
  395. data/bundler/ISSUES.md +0 -117
  396. data/bundler/lib/bundler/postit_trampoline.rb +0 -73
  397. data/bundler/lib/bundler/vendor/postit/lib/postit.rb +0 -15
  398. data/bundler/lib/bundler/vendor/postit/lib/postit/environment.rb +0 -44
  399. data/bundler/lib/bundler/vendor/postit/lib/postit/installer.rb +0 -28
  400. data/bundler/lib/bundler/vendor/postit/lib/postit/parser.rb +0 -21
  401. data/bundler/lib/bundler/vendor/postit/lib/postit/setup.rb +0 -12
  402. data/bundler/lib/bundler/vendor/postit/lib/postit/version.rb +0 -3
  403. data/bundler/man/index.txt +0 -8
  404. data/lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -23
  405. data/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -25
@@ -7,10 +7,14 @@ bundle-config(1) -- Set bundler configuration options
7
7
 
8
8
  ## DESCRIPTION
9
9
 
10
- This command allows you to interact with bundler's configuration system.
11
- Bundler retrieves its configuration from the local application (`app/.bundle/config`),
12
- environment variables, and the user's home directory (`~/.bundle/config`),
13
- in that order of priority.
10
+ This command allows you to interact with Bundler's configuration system.
11
+
12
+ Bundler loads configuration settings in this order:
13
+
14
+ 1. Local config (`app/.bundle/config`)
15
+ 2. Environmental variables (`ENV`)
16
+ 3. Global config (`~/.bundle/config`)
17
+ 4. Bundler default config
14
18
 
15
19
  Executing `bundle config` with no parameters will print a list of all
16
20
  bundler configuration for the current bundle, and where that configuration
@@ -48,32 +52,35 @@ If these options must be remembered,they must be set using `bundle config`
48
52
 
49
53
  The options that can be configured are:
50
54
 
51
- * `binstubs`:
52
- Creates a directory (defaults to `~/bin`) and place any executables from the
53
- gem there. These executables run in Bundler's context. If used, you might add
54
- this directory to your environment's `PATH` variable. For instance, if the
55
- `rails` gem comes with a `rails` executable, this flag will create a
56
- `bin/rails` executable that ensures that all referred dependencies will be
57
- resolved using the bundled gems.
55
+ * `bin`:
56
+ Creates a directory (defaults to `~/bin`) and place any executables from the
57
+ gem there. These executables run in Bundler's context. If used, you might add
58
+ this directory to your environment's `PATH` variable. For instance, if the
59
+ `rails` gem comes with a `rails` executable, this flag will create a
60
+ `bin/rails` executable that ensures that all referred dependencies will be
61
+ resolved using the bundled gems.
58
62
 
59
63
  * `deployment`:
60
- In deployment mode, Bundler will 'roll-out' the bundle for
61
- `production` use. Please check carefully if you want to have this option
62
- enabled in `development` or `test` environments.
64
+ In deployment mode, Bundler will 'roll-out' the bundle for
65
+ `production` use. Please check carefully if you want to have this option
66
+ enabled in `development` or `test` environments.
63
67
 
64
68
  * `path`:
65
- The location to install the specified gems to. This defaults to Rubygems'
66
- setting. Bundler shares this location with Rubygems, `gem install ...` will
67
- have gem installed there, too. Therefore, gems installed without a
68
- `--path ...` setting will show up by calling `gem list`. Accordingly, gems
69
- installed to other locations will not get listed.
69
+ The location to install the specified gems to. This defaults to Rubygems'
70
+ setting. Bundler shares this location with Rubygems, `gem install ...` will
71
+ have gem installed there, too. Therefore, gems installed without a
72
+ `--path ...` setting will show up by calling `gem list`. Accordingly, gems
73
+ installed to other locations will not get listed.
70
74
 
71
75
  * `without`:
72
- A space-separated list of groups referencing gems to skip during installation.
76
+ A space-separated list of groups referencing gems to skip during installation.
77
+
78
+ * `with`:
79
+ A space-separated list of groups referencing gems to include during installation.
73
80
 
74
81
  ## BUILD OPTIONS
75
82
 
76
- You can use `bundle config` to give bundler the flags to pass to the gem
83
+ You can use `bundle config` to give Bundler the flags to pass to the gem
77
84
  installer every time bundler tries to install a particular gem.
78
85
 
79
86
  A very common example, the `mysql` gem, requires Snow Leopard users to
@@ -95,12 +102,12 @@ After running this command, every time bundler needs to install the
95
102
  Configuration keys in bundler have two forms: the canonical form and the
96
103
  environment variable form.
97
104
 
98
- For instance, passing the `--without` flag to [bundle install(1)][bundle-install]
105
+ For instance, passing the `--without` flag to [bundle install(1)](bundle-install.1.html)
99
106
  prevents Bundler from installing certain groups specified in the Gemfile(5). Bundler
100
107
  persists this value in `app/.bundle/config` so that calls to `Bundler.setup`
101
108
  do not try to find gems from the `Gemfile` that you didn't install. Additionally,
102
- subsequent calls to [bundle install(1)][bundle-install] remember this setting and skip those
103
- groups.
109
+ subsequent calls to [bundle install(1)](bundle-install.1.html) remember this setting
110
+ and skip those groups.
104
111
 
105
112
  The canonical form of this configuration is `"without"`. To convert the canonical
106
113
  form to the environment variable form, capitalize it, and prepend `BUNDLE_`. The
@@ -113,51 +120,129 @@ the environment variable `BUNDLE_LOCAL__RACK`.
113
120
  ## LIST OF AVAILABLE KEYS
114
121
 
115
122
  The following is a list of all configuration keys and their purpose. You can
116
- learn more about their operation in [bundle install(1)][bundle-install].
117
-
118
- * `path` (`BUNDLE_PATH`):
119
- The location on disk where all gems in your bundle will be located regardless
120
- of `$GEM_HOME` or `$GEM_PATH` values. Bundle gems not found in this location
121
- will be installed by `bundle install`. Defaults to `Gem.dir`. When --deployment is
122
- used, defaults to vendor/bundle.
123
- * `frozen` (`BUNDLE_FROZEN`):
124
- Disallow changes to the `Gemfile`. Defaults to `true` when `--deployment`
125
- is used.
126
- * `without` (`BUNDLE_WITHOUT`):
127
- A `:`-separated list of groups whose gems bundler should not install
123
+ learn more about their operation in [bundle install(1)](bundle-install.1.html).
124
+
125
+ * `allow_bundler_dependency_conflicts` (`BUNDLE_ALLOW_BUNDLER_DEPENDENCY_CONFLICTS`):
126
+ Allow resolving to specifications that have dependencies on `bundler` that
127
+ are incompatible with the running Bundler version.
128
+ * `allow_deployment_source_credential_changes` (`BUNDLE_ALLOW_DEPLOYMENT_SOURCE_CREDENTIAL_CHANGES`):
129
+ When in deployment mode, allow changing the credentials to a gem's source.
130
+ Ex: `https://some.host.com/gems/path/` -> `https://user_name:password@some.host.com/gems/path`
131
+ * `allow_offline_install` (`BUNDLE_ALLOW_OFFLINE_INSTALL`):
132
+ Allow Bundler to use cached data when installing without network access.
133
+ * `auto_clean_without_path` (`BUNDLE_AUTO_CLEAN_WITHOUT_PATH`):
134
+ Automatically run `bundle clean` after installing when an explicit `path`
135
+ has not been set and Bundler is not installing into the system gems.
136
+ * `auto_install` (`BUNDLE_AUTO_INSTALL`):
137
+ Automatically run `bundle install` when gems are missing.
128
138
  * `bin` (`BUNDLE_BIN`):
129
- Install executables from gems in the bundle to the specified directory.
130
- Defaults to `false`.
139
+ Install executables from gems in the bundle to the specified directory.
140
+ Defaults to `false`.
141
+ * `cache_all` (`BUNDLE_CACHE_ALL`):
142
+ Cache all gems, including path and git gems.
143
+ * `cache_all_platforms` (`BUNDLE_CACHE_ALL_PLATFORMS`):
144
+ Cache gems for all platforms.
145
+ * `cache_path` (`BUNDLE_CACHE_PATH`):
146
+ The directory that bundler will place cached gems in when running
147
+ <code>bundle package</code>, and that bundler will look in when installing gems.
148
+ Defaults to `vendor/bundle`.
149
+ * `clean` (`BUNDLE_CLEAN`):
150
+ Whether Bundler should run `bundle clean` automatically after
151
+ `bundle install`.
152
+ * `console` (`BUNDLE_CONSOLE`):
153
+ The console that `bundle console` starts. Defaults to `irb`.
154
+ * `default_install_uses_path` (`BUNDLE_DEFAULT_INSTALL_USES_PATH`):
155
+ Whether a `bundle install` without an explicit `--path` argument defaults
156
+ to installing gems in `.bundle`.
157
+ * `deployment` (`BUNDLE_DEPLOYMENT`):
158
+ Disallow changes to the `Gemfile`. When the `Gemfile` is changed and the
159
+ lockfile has not been updated, running Bundler commands will be blocked.
160
+ * `disable_checksum_validation` (`BUNDLE_DISABLE_CHECKSUM_VALIDATION`):
161
+ Allow installing gems even if they do not match the checksum provided by
162
+ RubyGems.
163
+ * `disable_exec_load` (`BUNDLE_DISABLE_EXEC_LOAD`):
164
+ Stop Bundler from using `load` to launch an executable in-process in
165
+ `bundle exec`.
166
+ * `disable_local_branch_check` (`BUNDLE_DISABLE_LOCAL_BRANCH_CHECK`):
167
+ Allow Bundler to use a local git override without a branch specified in the
168
+ Gemfile.
169
+ * `disable_multisource` (`BUNDLE_DISABLE_MULTISOURCE`):
170
+ When set, Gemfiles containing multiple sources will produce errors
171
+ instead of warnings.
172
+ Use `bundle config --delete disable_multisource` to unset.
173
+ * `disable_shared_gems` (`BUNDLE_DISABLE_SHARED_GEMS`):
174
+ Stop Bundler from accessing gems installed to RubyGems' normal location.
175
+ * `disable_version_check` (`BUNDLE_DISABLE_VERSION_CHECK`):
176
+ Stop Bundler from checking if a newer Bundler version is available on
177
+ rubygems.org.
178
+ * `error_on_stderr` (`BUNDLE_ERROR_ON_STDERR`):
179
+ Print Bundler errors to stderr.
180
+ * `force_ruby_platform` (`BUNDLE_FORCE_RUBY_PLATFORM`):
181
+ Ignore the current machine's platform and install only `ruby` platform gems.
182
+ As a result, gems with native extensions will be compiled from source.
183
+ * `frozen` (`BUNDLE_FROZEN`):
184
+ Disallow changes to the `Gemfile`. When the `Gemfile` is changed and the
185
+ lockfile has not been updated, running Bundler commands will be blocked.
186
+ Defaults to `true` when `--deployment` is used.
187
+ * `gem.push_key` (`BUNDLE_GEM__PUSH_KEY`):
188
+ Sets the `--key` parameter for `gem push` when using the `rake release`
189
+ command with a private gemstash server.
131
190
  * `gemfile` (`BUNDLE_GEMFILE`):
132
- The name of the file that bundler should use as the `Gemfile`. This location
133
- of this file also sets the root of the project, which is used to resolve
134
- relative paths in the `Gemfile`, among other things. By default, bundler
135
- will search up from the current working directory until it finds a
136
- `Gemfile`.
137
- * `ssl_ca_cert` (`BUNDLE_SSL_CA_CERT`):
138
- Path to a designated CA certificate file or folder containing multiple
139
- certificates for trusted CAs in PEM format.
140
- * `ssl_client_cert` (`BUNDLE_SSL_CLIENT_CERT`):
141
- Path to a designated file containing a X.509 client certificate
142
- and key in PEM format.
143
- * `cache_path` (`BUNDLE_CACHE_PATH`): The directory that bundler will place
144
- cached gems in when running <code>bundle package</code>, and that bundler
145
- will look in when installing gems. Defaults to `vendor/bundle`.
146
- * `disable_multisource` (`BUNDLE_DISABLE_MULTISOURCE`): When set, Gemfiles
147
- containing multiple sources will produce errors instead of warnings. Use
148
- `bundle config --delete disable_multisource` to unset.
191
+ The name of the file that bundler should use as the `Gemfile`. This location
192
+ of this file also sets the root of the project, which is used to resolve
193
+ relative paths in the `Gemfile`, among other things. By default, bundler
194
+ will search up from the current working directory until it finds a
195
+ `Gemfile`.
196
+ * `global_gem_cache` (`BUNDLE_GLOBAL_GEM_CACHE`):
197
+ Whether Bundler should cache all gems globally, rather than locally to the
198
+ installing Ruby installation.
149
199
  * `ignore_messages` (`BUNDLE_IGNORE_MESSAGES`): When set, no post install
150
- messages will be printed. To silence a single gem, use dot notation like
151
- `ignore_messages.httparty true`.
152
- * `retry` (`BUNDLE_RETRY`):
153
- The number of times to retry failed network requests. Defaults to `3`.
200
+ messages will be printed. To silence a single gem, use dot notation like
201
+ `ignore_messages.httparty true`.
202
+ * `init_gems_rb` (`BUNDLE_INIT_GEMS_RB`)
203
+ Generate a `gems.rb` instead of a `Gemfile` when running `bundle init`.
204
+ * `jobs` (`BUNDLE_JOBS`):
205
+ The number of gems Bundler can install in parallel. Defaults to 1.
206
+ * `list_command` (`BUNDLE_LIST_COMMAND`)
207
+ Enable new list command feature
208
+ * `major_deprecations` (`BUNDLE_MAJOR_DEPRECATIONS`):
209
+ Whether Bundler should print deprecation warnings for behavior that will
210
+ be changed in the next major version.
211
+ * `no_install` (`BUNDLE_NO_INSTALL`):
212
+ Whether `bundle package` should skip installing gems.
213
+ * `no_prune` (`BUNDLE_NO_PRUNE`):
214
+ Whether Bundler should leave outdated gems unpruned when caching.
215
+ * `only_update_to_newer_versions` (`BUNDLE_ONLY_UPDATE_TO_NEWER_VERSIONS`):
216
+ During `bundle update`, only resolve to newer versions of the gems in the
217
+ lockfile.
218
+ * `path` (`BUNDLE_PATH`):
219
+ The location on disk where all gems in your bundle will be located regardless
220
+ of `$GEM_HOME` or `$GEM_PATH` values. Bundle gems not found in this location
221
+ will be installed by `bundle install`. Defaults to `Gem.dir`. When --deployment
222
+ is used, defaults to vendor/bundle.
223
+ * `path.system` (`BUNDLE_PATH__SYSTEM`):
224
+ Whether Bundler will install gems into the default system path (`Gem.dir`).
225
+ * `plugins` (`BUNDLE_PLUGINS`):
226
+ Enable Bundler's experimental plugin system.
227
+ * `prefer_gems_rb` (`BUNDLE_PREFER_GEMS_RB`)
228
+ Prefer `gems.rb` to `Gemfile` when Bundler is searching for a Gemfile.
229
+ * `print_only_version_number` (`BUNDLE_PRINT_ONLY_VERSION_NUMBER`)
230
+ Print only version number from `bundler --version`.
154
231
  * `redirect` (`BUNDLE_REDIRECT`):
155
232
  The number of redirects allowed for network requests. Defaults to `5`.
156
- * `timeout` (`BUNDLE_TIMEOUT`):
157
- The seconds allowed before timing out for network requests. Defaults to `10`.
158
- * `force_ruby_platform` (`BUNDLE_FORCE_RUBY_PLATFORM`):
159
- Ignore the current machine's platform and install only `ruby` platform gems.
160
- As a result, gems with native extensions will be compiled from source.
233
+ * `retry` (`BUNDLE_RETRY`):
234
+ The number of times to retry failed network requests. Defaults to `3`.
235
+ * `setup_makes_kernel_gem_public` (`BUNDLE_SETUP_MAKES_KERNEL_GEM_PUBLIC`):
236
+ Have `Bundler.setup` make the `Kernel#gem` method public, even though
237
+ RubyGems declares it as private.
238
+ * `shebang` (`BUNDLE_SHEBANG`):
239
+ The program name that should be invoked for generated binstubs. Defaults to
240
+ the ruby install name used to generate the binstub.
241
+ * `silence_root_warning` (`BUNDLE_SILENCE_ROOT_WARNING`):
242
+ Silence the warning Bundler prints when installing gems as root.
243
+ * `skip_default_git_sources` (`BUNDLE_SKIP_DEFAULT_GIT_SOURCES`):
244
+ Whether Bundler should skip adding default git source shortcuts to the
245
+ Gemfile DSL.
161
246
  * `specific_platform` (`BUNDLE_SPECIFIC_PLATFORM`):
162
247
  Allow bundler to resolve for the specific running platform and store it in
163
248
  the lockfile, instead of only using a generic platform.
@@ -166,12 +251,37 @@ learn more about their operation in [bundle install(1)][bundle-install].
166
251
  On the other hand, generic platforms are those such as `ruby`, `mswin`, or
167
252
  `java`. In this example, `x86_64-darwin-16` would map to `ruby` and
168
253
  `universal-java-1.8` to `java`.
169
- * `disable_checksum_validation` (`BUNDLE_DISABLE_CHECKSUM_VALIDATION`):
170
- Allow installing gems even if they do not match the checksum provided by
171
- RubyGems.
254
+ * `ssl_ca_cert` (`BUNDLE_SSL_CA_CERT`):
255
+ Path to a designated CA certificate file or folder containing multiple
256
+ certificates for trusted CAs in PEM format.
257
+ * `ssl_client_cert` (`BUNDLE_SSL_CLIENT_CERT`):
258
+ Path to a designated file containing a X.509 client certificate
259
+ and key in PEM format.
260
+ * `ssl_verify_mode` (`BUNDLE_SSL_VERIFY_MODE`):
261
+ The SSL verification mode Bundler uses when making HTTPS requests.
262
+ Defaults to verify peer.
263
+ * `suppress_install_using_messages` (`BUNDLE_SUPPRESS_INSTALL_USING_MESSAGES`):
264
+ Avoid printing `Using ...` messages during installation when the version of
265
+ a gem has not changed.
266
+ * `system_bindir` (`BUNDLE_SYSTEM_BINDIR`):
267
+ The location where RubyGems installs binstubs. Defaults to `Gem.bindir`.
268
+ * `timeout` (`BUNDLE_TIMEOUT`):
269
+ The seconds allowed before timing out for network requests. Defaults to `10`.
270
+ * `unlock_source_unlocks_spec` (`BUNDLE_UNLOCK_SOURCE_UNLOCKS_SPEC`):
271
+ Whether running `bundle update --source NAME` unlocks a gem with the given
272
+ name. Defaults to `true`.
273
+ * `update_requires_all_flag` (`BUNDLE_UPDATE_REQUIRES_ALL_FLAG`)
274
+ Require passing `--all` to `bundle update` when everything should be updated,
275
+ and disallow passing no options to `bundle update`.
276
+ * `user_agent` (`BUNDLE_USER_AGENT`):
277
+ The custom user agent fragment Bundler includes in API requests.
278
+ * `with` (`BUNDLE_WITH`):
279
+ A `:`-separated list of groups whose gems bundler should install.
280
+ * `without` (`BUNDLE_WITHOUT`):
281
+ A `:`-separated list of groups whose gems bundler should not install.
172
282
 
173
283
  In general, you should set these settings per-application by using the applicable
174
- flag to the [bundle install(1)][bundle-install] or [bundle package(1)][bundle-package] command.
284
+ flag to the [bundle install(1)](bundle-install.1.html) or [bundle package(1)](bundle-package.1.html) command.
175
285
 
176
286
  You can set them globally either via environment variables or `bundle config`,
177
287
  whichever is preferable for your setup. If you use both, environment variables
@@ -197,6 +307,7 @@ revision in the `Gemfile.lock` to the local git repo revision. This
197
307
  requires the same attention as git submodules. Before pushing to
198
308
  the remote, you need to ensure the local override was pushed, otherwise
199
309
  you may point to a commit that only exists in your local machine.
310
+ You'll also need to CGI escape your usernames and passwords as well.
200
311
 
201
312
  Bundler does many checks to ensure a developer won't work with
202
313
  invalid references. Particularly, we force a developer to specify
@@ -218,10 +329,23 @@ mirror to fetch gems.
218
329
 
219
330
  bundle config mirror.SOURCE_URL MIRROR_URL
220
331
 
221
- For example, to use a mirror of rubygems.org hosted at
332
+ For example, to use a mirror of rubygems.org hosted at rubygems-mirror.org:
222
333
 
223
334
  bundle config mirror.http://rubygems.org http://rubygems-mirror.org
224
335
 
336
+ Each mirror also provides a fallback timeout setting. If the mirror does not
337
+ respond within the fallback timeout, Bundler will try to use the original
338
+ server instead of the mirror.
339
+
340
+ bundle config mirror.SOURCE_URL.fallback_timeout TIMEOUT
341
+
342
+ For example, to fall back to rubygems.org after 3 seconds:
343
+
344
+ bundle config mirror.https://rubygems.org.fallback_timeout 3
345
+
346
+ The default fallback timeout is 0.1 seconds, but the setting can currently
347
+ only accept whole seconds (for example, 1, 15, or 30).
348
+
225
349
  ## CREDENTIALS FOR GEM SOURCES
226
350
 
227
351
  Bundler allows you to configure credentials for any gem source, which allows
@@ -0,0 +1,33 @@
1
+ bundle-doctor(1) -- Checks the bundle for common problems
2
+ =========================================================
3
+
4
+ ## SYNOPSIS
5
+
6
+ `bundle doctor` [--quiet]
7
+ [--gemfile=GEMFILE]
8
+
9
+ ## DESCRIPTION
10
+
11
+ Checks your Gemfile and gem environment for common problems. If issues
12
+ are detected, Bundler prints them and exits status 1. Otherwise,
13
+ Bundler prints a success message and exits status 0.
14
+
15
+ Examples of common problems caught by bundle-doctor include:
16
+
17
+ * Invalid Bundler settings
18
+ * Mismatched Ruby versions
19
+ * Mismatched platforms
20
+ * Uninstalled gems
21
+ * Missing dependencies
22
+
23
+ ## OPTIONS
24
+
25
+ * `--quiet`:
26
+ Only output warnings and errors.
27
+
28
+ * `--gemfile=<gemfile>`:
29
+ The location of the Gemfile(5) which Bundler should use. This defaults
30
+ to a Gemfile(5) in the current working directory. In general, Bundler
31
+ will assume that the location of the Gemfile(5) is also the project's
32
+ root and will try to find `Gemfile.lock` and `vendor/cache` relative
33
+ to this location.
@@ -8,11 +8,11 @@ bundle-exec(1) -- Execute a command in the context of the bundle
8
8
  ## DESCRIPTION
9
9
 
10
10
  This command executes the command, making all gems specified in the
11
- `Gemfile(5)` available to `require` in Ruby programs.
11
+ [`Gemfile(5)`][Gemfile(5)] available to `require` in Ruby programs.
12
12
 
13
13
  Essentially, if you would normally have run something like
14
14
  `rspec spec/my_spec.rb`, and you want to use the gems specified
15
- in the `Gemfile(5)` and installed via [bundle install(1)][bundle-install], you
15
+ in the [`Gemfile(5)`][Gemfile(5)] and installed via [bundle install(1)](bundle-install.1.html), you
16
16
  should run `bundle exec rspec spec/my_spec.rb`.
17
17
 
18
18
  Note that `bundle exec` does not require that an executable is
@@ -27,7 +27,7 @@ available on your shell's `$PATH`.
27
27
 
28
28
  ## BUNDLE INSTALL --BINSTUBS
29
29
 
30
- If you use the `--binstubs` flag in [bundle install(1)][bundle-install], Bundler will
30
+ If you use the `--binstubs` flag in [bundle install(1)](bundle-install.1.html), Bundler will
31
31
  automatically create a directory (which defaults to `app_root/bin`)
32
32
  containing all of the executables available from gems in the bundle.
33
33
 
@@ -63,6 +63,13 @@ It also modifies Rubygems:
63
63
  making system executables work
64
64
  * Add all gems in the bundle into Gem.loaded_specs
65
65
 
66
+ Finally, `bundle exec` also implicitly modifies `Gemfile.lock` if the lockfile
67
+ and the Gemfile do not match. Bundler needs the Gemfile to determine things
68
+ such as a gem's groups, `autorequire`, and platforms, etc., and that
69
+ information isn't stored in the lockfile. The Gemfile and lockfile must be
70
+ synced in order to `bundle exec` successfully, so `bundle exec`
71
+ updates the lockfile beforehand.
72
+
66
73
  ### Loading
67
74
 
68
75
  By default, when attempting to `bundle exec` to a file with a ruby shebang,
@@ -11,7 +11,7 @@ Generates a directory named `GEM_NAME` with a `Rakefile`, `GEM_NAME.gemspec`,
11
11
  and other supporting files and directories that can be used to develop a
12
12
  rubygem with that name.
13
13
 
14
- Run `rake -T` in the resulting project for a list of Rake tasks that can used
14
+ Run `rake -T` in the resulting project for a list of Rake tasks that can be used
15
15
  to test and publish the gem to rubygems.org.
16
16
 
17
17
  The generated project skeleton can be customized with OPTIONS, as explained
@@ -67,6 +67,7 @@ configuration file using the following names:
67
67
  on this option. If this option is unspecified, an interactive prompt will be
68
68
  displayed and the answer will be saved in Bundler's global config for future
69
69
  `bundle gem` use.
70
+ If no option is specified, the default testing framework is RSpec.
70
71
 
71
72
  * `-e`, `--edit[=EDITOR]`:
72
73
  Open the resulting GEM_NAME.gemspec in EDITOR, or the default editor if not
@@ -74,4 +75,4 @@ configuration file using the following names:
74
75
 
75
76
  ## SEE ALSO
76
77
 
77
- * bundle-config(1)
78
+ * [bundle config(1)](bundle-config.1.html)
@@ -0,0 +1,17 @@
1
+ bundle-info(1) -- Show information for the given gem in your bundle
2
+ =========================================================================
3
+
4
+ ## SYNOPSIS
5
+
6
+ `bundle info` [GEM]
7
+ [--path]
8
+
9
+ ## DESCRIPTION
10
+
11
+ Print the basic information about the provided GEM such as homepage, version,
12
+ path and summary.
13
+
14
+ ## OPTIONS
15
+
16
+ * `--path`:
17
+ Print the path of the given gem
@@ -0,0 +1,29 @@
1
+ bundle-init(1) -- Generates a Gemfile into the current working directory
2
+ ========================================================================
3
+
4
+ ## SYNOPSIS
5
+
6
+ `bundle init` [--gemspec=FILE]
7
+
8
+ ## DESCRIPTION
9
+
10
+ Init generates a default [`Gemfile(5)`][Gemfile(5)] in the current working directory. When
11
+ adding a [`Gemfile(5)`][Gemfile(5)] to a gem with a gemspec, the `--gemspec` option will
12
+ automatically add each dependency listed in the gemspec file to the newly
13
+ created [`Gemfile(5)`][Gemfile(5)].
14
+
15
+ ## OPTIONS
16
+
17
+ * `--gemspec`:
18
+ Use the specified .gemspec to create the [`Gemfile(5)`][Gemfile(5)]
19
+
20
+ ## FILES
21
+
22
+ Included in the default [`Gemfile(5)`][Gemfile(5)]
23
+ generated is the line `# frozen_string_literal: true`. This is a magic comment
24
+ supported for the first time in Ruby 2.3. The presence of this line
25
+ results in all string literals in the file being implicitly frozen.
26
+
27
+ ## SEE ALSO
28
+
29
+ [Gemfile(5)](http://bundler.io/man/gemfile.5.html)