rubygems-update 3.0.9 → 3.1.0.pre1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (428) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +31 -8
  3. data/.travis.yml +9 -27
  4. data/CONTRIBUTING.md +13 -0
  5. data/History.txt +24 -28
  6. data/MAINTAINERS.txt +1 -6
  7. data/Manifest.txt +65 -15
  8. data/Rakefile +39 -23
  9. data/bin/gem +0 -6
  10. data/bundler/CHANGELOG.md +746 -570
  11. data/bundler/CODE_OF_CONDUCT.md +117 -23
  12. data/bundler/LICENSE.md +18 -19
  13. data/bundler/README.md +9 -8
  14. data/bundler/bundler.gemspec +8 -25
  15. data/bundler/exe/bundle +19 -3
  16. data/bundler/lib/bundler.rb +120 -67
  17. data/bundler/lib/bundler/build_metadata.rb +1 -3
  18. data/bundler/lib/bundler/capistrano.rb +4 -4
  19. data/bundler/lib/bundler/cli.rb +129 -121
  20. data/bundler/lib/bundler/cli/add.rb +27 -16
  21. data/bundler/lib/bundler/cli/common.rb +11 -12
  22. data/bundler/lib/bundler/cli/config.rb +161 -86
  23. data/bundler/lib/bundler/cli/console.rb +1 -1
  24. data/bundler/lib/bundler/cli/doctor.rb +4 -4
  25. data/bundler/lib/bundler/cli/exec.rb +4 -9
  26. data/bundler/lib/bundler/cli/gem.rb +5 -5
  27. data/bundler/lib/bundler/cli/info.rb +17 -5
  28. data/bundler/lib/bundler/cli/init.rb +1 -1
  29. data/bundler/lib/bundler/cli/install.rb +11 -10
  30. data/bundler/lib/bundler/cli/issue.rb +3 -3
  31. data/bundler/lib/bundler/cli/open.rb +10 -6
  32. data/bundler/lib/bundler/cli/outdated.rb +85 -81
  33. data/bundler/lib/bundler/cli/package.rb +8 -9
  34. data/bundler/lib/bundler/cli/plugin.rb +9 -2
  35. data/bundler/lib/bundler/cli/pristine.rb +1 -1
  36. data/bundler/lib/bundler/cli/show.rb +1 -1
  37. data/bundler/lib/bundler/cli/update.rb +31 -11
  38. data/bundler/lib/bundler/compact_index_client.rb +25 -9
  39. data/bundler/lib/bundler/compact_index_client/updater.rb +2 -6
  40. data/bundler/lib/bundler/current_ruby.rb +9 -7
  41. data/bundler/lib/bundler/definition.rb +35 -26
  42. data/bundler/lib/bundler/dependency.rb +16 -4
  43. data/bundler/lib/bundler/deployment.rb +1 -1
  44. data/bundler/lib/bundler/dsl.rb +15 -39
  45. data/bundler/lib/bundler/env.rb +8 -13
  46. data/bundler/lib/bundler/environment_preserver.rb +0 -1
  47. data/bundler/lib/bundler/feature_flag.rb +23 -34
  48. data/bundler/lib/bundler/fetcher.rb +14 -11
  49. data/bundler/lib/bundler/fetcher/compact_index.rb +26 -12
  50. data/bundler/lib/bundler/fetcher/dependency.rb +1 -1
  51. data/bundler/lib/bundler/fetcher/downloader.rb +4 -1
  52. data/bundler/lib/bundler/fetcher/index.rb +4 -2
  53. data/bundler/lib/bundler/friendly_errors.rb +4 -5
  54. data/bundler/lib/bundler/gem_helper.rb +39 -24
  55. data/bundler/lib/bundler/gem_helpers.rb +2 -4
  56. data/bundler/lib/bundler/gem_tasks.rb +1 -1
  57. data/bundler/lib/bundler/gem_version_promoter.rb +3 -3
  58. data/bundler/lib/bundler/graph.rb +2 -2
  59. data/bundler/lib/bundler/injector.rb +10 -8
  60. data/bundler/lib/bundler/inline.rb +19 -18
  61. data/bundler/lib/bundler/installer.rb +7 -14
  62. data/bundler/lib/bundler/installer/gem_installer.rb +5 -1
  63. data/bundler/lib/bundler/installer/parallel_installer.rb +4 -8
  64. data/bundler/lib/bundler/installer/standalone.rb +1 -2
  65. data/bundler/lib/bundler/lazy_specification.rb +2 -2
  66. data/bundler/lib/bundler/lockfile_parser.rb +13 -21
  67. data/bundler/lib/bundler/match_platform.rb +1 -1
  68. data/bundler/lib/bundler/plugin.rb +42 -29
  69. data/bundler/lib/bundler/plugin/api.rb +1 -1
  70. data/bundler/lib/bundler/plugin/api/source.rb +2 -2
  71. data/bundler/lib/bundler/plugin/index.rb +14 -3
  72. data/bundler/lib/bundler/plugin/installer.rb +28 -15
  73. data/bundler/lib/bundler/psyched_yaml.rb +1 -1
  74. data/bundler/lib/bundler/resolver.rb +72 -24
  75. data/bundler/lib/bundler/resolver/spec_group.rb +3 -2
  76. data/bundler/lib/bundler/retry.rb +2 -2
  77. data/bundler/lib/bundler/ruby_version.rb +4 -19
  78. data/bundler/lib/bundler/rubygems_ext.rb +10 -66
  79. data/bundler/lib/bundler/rubygems_gem_installer.rb +1 -8
  80. data/bundler/lib/bundler/rubygems_integration.rb +144 -395
  81. data/bundler/lib/bundler/runtime.rb +2 -9
  82. data/bundler/lib/bundler/settings.rb +15 -47
  83. data/bundler/lib/bundler/setup.rb +6 -5
  84. data/bundler/lib/bundler/shared_helpers.rb +58 -71
  85. data/bundler/lib/bundler/similarity_detector.rb +2 -2
  86. data/bundler/lib/bundler/source.rb +5 -5
  87. data/bundler/lib/bundler/source/git.rb +19 -12
  88. data/bundler/lib/bundler/source/git/git_proxy.rb +35 -39
  89. data/bundler/lib/bundler/source/metadata.rb +7 -2
  90. data/bundler/lib/bundler/source/path.rb +13 -8
  91. data/bundler/lib/bundler/source/rubygems.rb +11 -5
  92. data/bundler/lib/bundler/source/rubygems/remote.rb +1 -2
  93. data/bundler/lib/bundler/source_list.rb +9 -12
  94. data/bundler/lib/bundler/spec_set.rb +23 -12
  95. data/bundler/lib/bundler/stub_specification.rb +18 -30
  96. data/bundler/lib/bundler/templates/Executable.bundler +23 -14
  97. data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +3 -3
  98. data/bundler/lib/bundler/templates/newgem/Gemfile.tt +8 -2
  99. data/bundler/lib/bundler/templates/newgem/README.md.tt +4 -3
  100. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +6 -27
  101. data/bundler/lib/bundler/templates/newgem/test/test_helper.rb.tt +1 -1
  102. data/bundler/lib/bundler/templates/newgem/travis.yml.tt +0 -1
  103. data/bundler/lib/bundler/ui.rb +3 -3
  104. data/bundler/lib/bundler/ui/rg_proxy.rb +1 -1
  105. data/bundler/lib/bundler/ui/shell.rb +4 -8
  106. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +161 -0
  107. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/monotonic_time.rb +66 -0
  108. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +176 -0
  109. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +3 -0
  110. data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +151 -48
  111. data/bundler/lib/bundler/vendor/fileutils/lib/fileutils/version.rb +5 -0
  112. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +6 -6
  113. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +2 -2
  114. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +1 -1
  115. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +1 -1
  116. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +1 -1
  117. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +1 -1
  118. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +6 -6
  119. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +1 -1
  120. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +1 -1
  121. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +30 -8
  122. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +1 -1
  123. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +4 -4
  124. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +2 -2
  125. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +248 -279
  126. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +40 -0
  127. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +53 -0
  128. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +79 -0
  129. data/bundler/lib/bundler/vendor/thor/lib/thor.rb +7 -2
  130. data/bundler/lib/bundler/vendor/thor/lib/thor/actions.rb +21 -11
  131. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb +1 -1
  132. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +1 -1
  133. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/directory.rb +1 -1
  134. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +11 -2
  135. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +1 -1
  136. data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +16 -17
  137. data/bundler/lib/bundler/vendor/thor/lib/thor/error.rb +82 -0
  138. data/bundler/lib/bundler/vendor/thor/lib/thor/group.rb +3 -3
  139. data/bundler/lib/bundler/vendor/thor/lib/thor/line_editor.rb +2 -2
  140. data/bundler/lib/bundler/vendor/thor/lib/thor/parser.rb +4 -4
  141. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +7 -2
  142. data/bundler/lib/bundler/vendor/thor/lib/thor/runner.rb +6 -6
  143. data/bundler/lib/bundler/vendor/thor/lib/thor/shell.rb +4 -4
  144. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +52 -7
  145. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/color.rb +1 -1
  146. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/html.rb +1 -1
  147. data/bundler/lib/bundler/vendor/thor/lib/thor/util.rb +1 -1
  148. data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
  149. data/bundler/lib/bundler/vendored_fileutils.rb +1 -6
  150. data/bundler/lib/bundler/vendored_molinillo.rb +1 -1
  151. data/bundler/lib/bundler/vendored_persistent.rb +7 -5
  152. data/bundler/lib/bundler/vendored_thor.rb +2 -2
  153. data/bundler/lib/bundler/version.rb +1 -20
  154. data/bundler/lib/bundler/version_ranges.rb +51 -5
  155. data/bundler/lib/bundler/vlad.rb +2 -2
  156. data/bundler/lib/bundler/worker.rb +1 -3
  157. data/bundler/lib/bundler/yaml_serializer.rb +2 -3
  158. data/bundler/man/bundle-add.1 +66 -0
  159. data/bundler/man/bundle-add.1.txt +58 -0
  160. data/bundler/man/bundle-add.ronn +7 -1
  161. data/bundler/man/bundle-binstubs.1 +40 -0
  162. data/bundler/man/bundle-binstubs.1.txt +48 -0
  163. data/bundler/man/bundle-binstubs.ronn +1 -1
  164. data/bundler/man/bundle-check.1 +31 -0
  165. data/bundler/man/bundle-check.1.txt +33 -0
  166. data/bundler/man/bundle-clean.1 +24 -0
  167. data/bundler/man/bundle-clean.1.txt +26 -0
  168. data/bundler/man/bundle-config.1 +497 -0
  169. data/bundler/man/bundle-config.1.txt +528 -0
  170. data/bundler/man/bundle-config.ronn +42 -40
  171. data/bundler/man/bundle-doctor.1 +44 -0
  172. data/bundler/man/bundle-doctor.1.txt +44 -0
  173. data/bundler/man/bundle-exec.1 +165 -0
  174. data/bundler/man/bundle-exec.1.txt +178 -0
  175. data/bundler/man/bundle-exec.ronn +1 -1
  176. data/bundler/man/bundle-gem.1 +80 -0
  177. data/bundler/man/bundle-gem.1.txt +91 -0
  178. data/bundler/man/bundle-info.1 +20 -0
  179. data/bundler/man/bundle-info.1.txt +21 -0
  180. data/bundler/man/bundle-init.1 +25 -0
  181. data/bundler/man/bundle-init.1.txt +34 -0
  182. data/bundler/man/bundle-init.ronn +1 -1
  183. data/bundler/man/bundle-inject.1 +33 -0
  184. data/bundler/man/bundle-inject.1.txt +32 -0
  185. data/bundler/man/bundle-install.1 +311 -0
  186. data/bundler/man/bundle-install.1.txt +401 -0
  187. data/bundler/man/bundle-install.ronn +9 -4
  188. data/bundler/man/bundle-list.1 +50 -0
  189. data/bundler/man/bundle-list.1.txt +43 -0
  190. data/bundler/man/bundle-lock.1 +84 -0
  191. data/bundler/man/bundle-lock.1.txt +93 -0
  192. data/bundler/man/bundle-open.1 +32 -0
  193. data/bundler/man/bundle-open.1.txt +29 -0
  194. data/bundler/man/bundle-outdated.1 +155 -0
  195. data/bundler/man/bundle-outdated.1.txt +131 -0
  196. data/bundler/man/bundle-package.1 +55 -0
  197. data/bundler/man/bundle-package.1.txt +79 -0
  198. data/bundler/man/bundle-platform.1 +61 -0
  199. data/bundler/man/bundle-platform.1.txt +57 -0
  200. data/bundler/man/bundle-pristine.1 +34 -0
  201. data/bundler/man/bundle-pristine.1.txt +44 -0
  202. data/bundler/man/bundle-remove.1 +31 -0
  203. data/bundler/man/bundle-remove.1.txt +34 -0
  204. data/bundler/man/bundle-show.1 +23 -0
  205. data/bundler/man/bundle-show.1.txt +27 -0
  206. data/bundler/man/bundle-update.1 +394 -0
  207. data/bundler/man/bundle-update.1.txt +390 -0
  208. data/bundler/man/bundle-update.ronn +3 -3
  209. data/bundler/man/bundle-viz.1 +39 -0
  210. data/bundler/man/bundle-viz.1.txt +39 -0
  211. data/bundler/man/bundle.1 +136 -0
  212. data/bundler/man/bundle.1.txt +116 -0
  213. data/bundler/man/bundle.ronn +2 -2
  214. data/bundler/man/gemfile.5 +686 -0
  215. data/bundler/man/gemfile.5.ronn +14 -18
  216. data/bundler/man/gemfile.5.txt +649 -0
  217. data/bundler/man/index.txt +25 -0
  218. data/lib/rubygems.rb +80 -48
  219. data/lib/rubygems/available_set.rb +1 -0
  220. data/lib/rubygems/basic_specification.rb +17 -6
  221. data/lib/rubygems/bundler_version_finder.rb +5 -0
  222. data/lib/rubygems/command.rb +34 -5
  223. data/lib/rubygems/command_manager.rb +0 -6
  224. data/lib/rubygems/commands/build_command.rb +21 -8
  225. data/lib/rubygems/commands/cert_command.rb +0 -1
  226. data/lib/rubygems/commands/cleanup_command.rb +7 -7
  227. data/lib/rubygems/commands/contents_command.rb +3 -3
  228. data/lib/rubygems/commands/dependency_command.rb +4 -3
  229. data/lib/rubygems/commands/environment_command.rb +0 -3
  230. data/lib/rubygems/commands/info_command.rb +2 -0
  231. data/lib/rubygems/commands/install_command.rb +12 -52
  232. data/lib/rubygems/commands/lock_command.rb +2 -2
  233. data/lib/rubygems/commands/mirror_command.rb +1 -0
  234. data/lib/rubygems/commands/open_command.rb +2 -1
  235. data/lib/rubygems/commands/outdated_command.rb +1 -0
  236. data/lib/rubygems/commands/owner_command.rb +2 -7
  237. data/lib/rubygems/commands/pristine_command.rb +3 -0
  238. data/lib/rubygems/commands/push_command.rb +4 -6
  239. data/lib/rubygems/commands/query_command.rb +94 -80
  240. data/lib/rubygems/commands/rdoc_command.rb +1 -0
  241. data/lib/rubygems/commands/setup_command.rb +10 -8
  242. data/lib/rubygems/commands/signin_command.rb +1 -0
  243. data/lib/rubygems/commands/specification_command.rb +1 -0
  244. data/lib/rubygems/commands/stale_command.rb +2 -0
  245. data/lib/rubygems/commands/uninstall_command.rb +1 -0
  246. data/lib/rubygems/commands/unpack_command.rb +2 -29
  247. data/lib/rubygems/commands/update_command.rb +14 -14
  248. data/lib/rubygems/commands/which_command.rb +1 -0
  249. data/lib/rubygems/commands/yank_command.rb +8 -2
  250. data/lib/rubygems/compatibility.rb +4 -4
  251. data/lib/rubygems/config_file.rb +28 -23
  252. data/lib/rubygems/core_ext/kernel_gem.rb +2 -5
  253. data/lib/rubygems/core_ext/kernel_require.rb +29 -2
  254. data/lib/rubygems/core_ext/kernel_warn.rb +10 -4
  255. data/lib/rubygems/defaults.rb +10 -17
  256. data/lib/rubygems/dependency.rb +21 -6
  257. data/lib/rubygems/dependency_installer.rb +19 -102
  258. data/lib/rubygems/dependency_list.rb +11 -10
  259. data/lib/rubygems/deprecate.rb +5 -5
  260. data/lib/rubygems/errors.rb +11 -2
  261. data/lib/rubygems/exceptions.rb +9 -0
  262. data/lib/rubygems/ext/builder.rb +24 -43
  263. data/lib/rubygems/ext/cmake_builder.rb +2 -0
  264. data/lib/rubygems/ext/ext_conf_builder.rb +11 -9
  265. data/lib/rubygems/ext/rake_builder.rb +1 -1
  266. data/lib/rubygems/gemcutter_utilities.rb +19 -26
  267. data/lib/rubygems/indexer.rb +9 -5
  268. data/lib/rubygems/installer.rb +26 -13
  269. data/lib/rubygems/installer_test_case.rb +86 -38
  270. data/lib/rubygems/local_remote_options.rb +1 -1
  271. data/lib/rubygems/mock_gem_ui.rb +4 -1
  272. data/lib/rubygems/name_tuple.rb +1 -0
  273. data/lib/rubygems/package.rb +37 -9
  274. data/lib/rubygems/package/tar_writer.rb +4 -4
  275. data/lib/rubygems/path_support.rb +2 -0
  276. data/lib/rubygems/platform.rb +2 -1
  277. data/lib/rubygems/psych_tree.rb +2 -0
  278. data/lib/rubygems/remote_fetcher.rb +5 -1
  279. data/lib/rubygems/request.rb +5 -3
  280. data/lib/rubygems/request/connection_pools.rb +4 -4
  281. data/lib/rubygems/request/http_pool.rb +1 -0
  282. data/lib/rubygems/request/https_pool.rb +2 -0
  283. data/lib/rubygems/request_set.rb +2 -2
  284. data/lib/rubygems/request_set/gem_dependency_api.rb +2 -2
  285. data/lib/rubygems/request_set/lockfile.rb +5 -2
  286. data/lib/rubygems/request_set/lockfile/parser.rb +4 -2
  287. data/lib/rubygems/request_set/lockfile/tokenizer.rb +2 -0
  288. data/lib/rubygems/requirement.rb +20 -18
  289. data/lib/rubygems/resolver.rb +4 -5
  290. data/lib/rubygems/resolver/activation_request.rb +19 -49
  291. data/lib/rubygems/resolver/best_set.rb +2 -2
  292. data/lib/rubygems/resolver/conflict.rb +0 -5
  293. data/lib/rubygems/resolver/installer_set.rb +3 -3
  294. data/lib/rubygems/resolver/lock_set.rb +1 -1
  295. data/lib/rubygems/resolver/lock_specification.rb +2 -2
  296. data/lib/rubygems/resolver/requirement_list.rb +1 -0
  297. data/lib/rubygems/resolver/specification.rb +1 -0
  298. data/lib/rubygems/resolver/stats.rb +2 -0
  299. data/lib/rubygems/security/signer.rb +3 -2
  300. data/lib/rubygems/server.rb +5 -4
  301. data/lib/rubygems/source_list.rb +1 -0
  302. data/lib/rubygems/spec_fetcher.rb +3 -16
  303. data/lib/rubygems/specification.rb +69 -133
  304. data/lib/rubygems/specification_policy.rb +7 -2
  305. data/{bundler/lib/bundler → lib/rubygems}/ssl_certs/index.rubygems.org/GlobalSignRootCA.pem +0 -0
  306. data/{bundler/lib/bundler → lib/rubygems}/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -0
  307. data/{bundler/lib/bundler → lib/rubygems}/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -0
  308. data/lib/rubygems/stub_specification.rb +5 -2
  309. data/lib/rubygems/syck_hack.rb +2 -0
  310. data/lib/rubygems/test_case.rb +78 -227
  311. data/lib/rubygems/test_utilities.rb +17 -6
  312. data/lib/rubygems/text.rb +2 -3
  313. data/lib/rubygems/uninstaller.rb +15 -15
  314. data/lib/rubygems/user_interaction.rb +9 -1
  315. data/lib/rubygems/util.rb +5 -41
  316. data/lib/rubygems/util/licenses.rb +398 -396
  317. data/lib/rubygems/util/list.rb +2 -0
  318. data/lib/rubygems/validator.rb +9 -29
  319. data/lib/rubygems/version.rb +5 -3
  320. data/rubygems-update.gemspec +3 -3
  321. data/test/rubygems/plugin/load/rubygems_plugin.rb +2 -0
  322. data/test/rubygems/test_bundled_ca.rb +4 -7
  323. data/test/rubygems/test_deprecate.rb +3 -0
  324. data/test/rubygems/test_gem.rb +183 -176
  325. data/test/rubygems/test_gem_available_set.rb +3 -2
  326. data/test/rubygems/test_gem_bundler_version_finder.rb +3 -1
  327. data/test/rubygems/test_gem_command.rb +94 -5
  328. data/test/rubygems/test_gem_command_manager.rb +5 -13
  329. data/test/rubygems/test_gem_commands_build_command.rb +142 -4
  330. data/test/rubygems/test_gem_commands_cert_command.rb +15 -1
  331. data/test/rubygems/test_gem_commands_cleanup_command.rb +22 -6
  332. data/test/rubygems/test_gem_commands_dependency_command.rb +1 -1
  333. data/test/rubygems/test_gem_commands_environment_command.rb +1 -11
  334. data/test/rubygems/test_gem_commands_help_command.rb +2 -0
  335. data/test/rubygems/test_gem_commands_info_command.rb +1 -0
  336. data/test/rubygems/test_gem_commands_install_command.rb +207 -2
  337. data/test/rubygems/test_gem_commands_mirror.rb +1 -0
  338. data/test/rubygems/test_gem_commands_outdated_command.rb +1 -0
  339. data/test/rubygems/test_gem_commands_owner_command.rb +4 -5
  340. data/test/rubygems/test_gem_commands_pristine_command.rb +56 -4
  341. data/test/rubygems/test_gem_commands_push_command.rb +19 -14
  342. data/test/rubygems/test_gem_commands_query_command.rb +27 -2
  343. data/test/rubygems/test_gem_commands_setup_command.rb +62 -37
  344. data/test/rubygems/test_gem_commands_signin_command.rb +5 -4
  345. data/test/rubygems/test_gem_commands_sources_command.rb +20 -6
  346. data/test/rubygems/test_gem_commands_uninstall_command.rb +107 -50
  347. data/test/rubygems/test_gem_commands_update_command.rb +86 -23
  348. data/test/rubygems/test_gem_commands_yank_command.rb +46 -1
  349. data/test/rubygems/test_gem_config_file.rb +9 -2
  350. data/test/rubygems/test_gem_dependency.rb +6 -0
  351. data/test/rubygems/test_gem_dependency_installer.rb +67 -36
  352. data/test/rubygems/test_gem_dependency_list.rb +21 -14
  353. data/test/rubygems/test_gem_ext_builder.rb +5 -1
  354. data/test/rubygems/test_gem_ext_cmake_builder.rb +2 -0
  355. data/test/rubygems/test_gem_ext_configure_builder.rb +8 -0
  356. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +12 -0
  357. data/test/rubygems/test_gem_ext_rake_builder.rb +2 -0
  358. data/test/rubygems/test_gem_gemcutter_utilities.rb +8 -8
  359. data/test/rubygems/test_gem_indexer.rb +31 -40
  360. data/test/rubygems/test_gem_install_update_options.rb +31 -17
  361. data/test/rubygems/test_gem_installer.rb +383 -223
  362. data/test/rubygems/test_gem_package.rb +99 -14
  363. data/test/rubygems/test_gem_package_old.rb +57 -54
  364. data/test/rubygems/test_gem_package_tar_reader_entry.rb +6 -5
  365. data/test/rubygems/test_gem_package_tar_writer.rb +11 -6
  366. data/test/rubygems/test_gem_path_support.rb +19 -13
  367. data/test/rubygems/test_gem_platform.rb +4 -2
  368. data/test/rubygems/test_gem_rdoc.rb +1 -0
  369. data/test/rubygems/test_gem_remote_fetcher.rb +29 -16
  370. data/test/rubygems/test_gem_request.rb +19 -4
  371. data/test/rubygems/test_gem_request_connection_pools.rb +6 -2
  372. data/test/rubygems/test_gem_request_set.rb +33 -8
  373. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +1 -1
  374. data/test/rubygems/test_gem_request_set_lockfile.rb +1 -0
  375. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +2 -1
  376. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +2 -0
  377. data/test/rubygems/test_gem_requirement.rb +7 -1
  378. data/test/rubygems/test_gem_resolver.rb +67 -23
  379. data/test/rubygems/test_gem_resolver_activation_request.rb +3 -32
  380. data/test/rubygems/test_gem_resolver_conflict.rb +0 -4
  381. data/test/rubygems/test_gem_resolver_git_specification.rb +1 -0
  382. data/test/rubygems/test_gem_resolver_index_specification.rb +7 -2
  383. data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -1
  384. data/test/rubygems/test_gem_resolver_installer_set.rb +3 -1
  385. data/test/rubygems/test_gem_resolver_specification.rb +2 -0
  386. data/test/rubygems/test_gem_security.rb +6 -2
  387. data/test/rubygems/test_gem_security_signer.rb +1 -0
  388. data/test/rubygems/test_gem_server.rb +7 -2
  389. data/test/rubygems/test_gem_silent_ui.rb +1 -0
  390. data/test/rubygems/test_gem_source.rb +7 -7
  391. data/test/rubygems/test_gem_source_fetch_problem.rb +1 -0
  392. data/test/rubygems/test_gem_source_git.rb +4 -9
  393. data/test/rubygems/test_gem_source_installed.rb +6 -6
  394. data/test/rubygems/test_gem_source_list.rb +1 -0
  395. data/test/rubygems/test_gem_source_local.rb +5 -4
  396. data/test/rubygems/test_gem_source_lock.rb +12 -12
  397. data/test/rubygems/test_gem_source_specific_file.rb +7 -6
  398. data/test/rubygems/test_gem_source_vendor.rb +4 -4
  399. data/test/rubygems/test_gem_specification.rb +75 -43
  400. data/test/rubygems/test_gem_stream_ui.rb +2 -0
  401. data/test/rubygems/test_gem_stub_specification.rb +3 -1
  402. data/test/rubygems/test_gem_text.rb +1 -0
  403. data/test/rubygems/test_gem_uninstaller.rb +31 -10
  404. data/test/rubygems/test_gem_util.rb +6 -4
  405. data/test/rubygems/test_gem_validator.rb +3 -4
  406. data/test/rubygems/test_gem_version.rb +16 -8
  407. data/test/rubygems/test_kernel.rb +1 -0
  408. data/test/rubygems/test_rake_package.rb +26 -0
  409. data/test/rubygems/test_remote_fetch_error.rb +1 -0
  410. data/test/rubygems/test_require.rb +107 -3
  411. data/util/bisect +31 -0
  412. data/util/ci.sh +50 -0
  413. data/util/generate_spdx_license_list.rb +4 -2
  414. data/util/rubocop +2 -2
  415. data/util/update_bundled_ca_certificates.rb +3 -1
  416. metadata +97 -25
  417. data/appveyor.yml +0 -43
  418. data/bundler/CONTRIBUTING.md +0 -17
  419. data/bundler/exe/bundle_ruby +0 -60
  420. data/bundler/lib/bundler/cli/cache.rb +0 -36
  421. data/bundler/lib/bundler/compatibility_guard.rb +0 -14
  422. data/bundler/lib/bundler/ssl_certs/.document +0 -1
  423. data/bundler/lib/bundler/ssl_certs/certificate_manager.rb +0 -66
  424. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/faster.rb +0 -27
  425. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/ssl_reuse.rb +0 -129
  426. data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA.pem +0 -21
  427. data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem +0 -21
  428. data/util/ci +0 -82
@@ -0,0 +1,131 @@
1
+ BUNDLE-OUTDATED(1) BUNDLE-OUTDATED(1)
2
+
3
+
4
+
5
+ NAME
6
+ bundle-outdated - List installed gems with newer versions available
7
+
8
+ SYNOPSIS
9
+ bundle outdated [GEM] [--local] [--pre] [--source] [--strict]
10
+ [--parseable | --porcelain] [--group=GROUP] [--groups]
11
+ [--update-strict] [--patch|--minor|--major] [--filter-major] [--fil-
12
+ ter-minor] [--filter-patch] [--only-explicit]
13
+
14
+ DESCRIPTION
15
+ Outdated lists the names and versions of gems that have a newer version
16
+ available in the given source. Calling outdated with [GEM [GEM]] will
17
+ only check for newer versions of the given gems. Prerelease gems are
18
+ ignored by default. If your gems are up to date, Bundler will exit with
19
+ a status of 0. Otherwise, it will exit 1.
20
+
21
+ OPTIONS
22
+ --local
23
+ Do not attempt to fetch gems remotely and use the gem cache
24
+ instead.
25
+
26
+ --pre Check for newer pre-release gems.
27
+
28
+ --source
29
+ Check against a specific source.
30
+
31
+ --strict
32
+ Only list newer versions allowed by your Gemfile requirements.
33
+
34
+ --parseable, --porcelain
35
+ Use minimal formatting for more parseable output.
36
+
37
+ --group
38
+ List gems from a specific group.
39
+
40
+ --groups
41
+ List gems organized by groups.
42
+
43
+ --update-strict
44
+ Strict conservative resolution, do not allow any gem to be
45
+ updated past latest --patch | --minor| --major.
46
+
47
+ --minor
48
+ Prefer updating only to next minor version.
49
+
50
+ --major
51
+ Prefer updating to next major version (default).
52
+
53
+ --patch
54
+ Prefer updating only to next patch version.
55
+
56
+ --filter-major
57
+ Only list major newer versions.
58
+
59
+ --filter-minor
60
+ Only list minor newer versions.
61
+
62
+ --filter-patch
63
+ Only list patch newer versions.
64
+
65
+ --only-explicit
66
+ Only list gems specified in your Gemfile, not their dependen-
67
+ cies.
68
+
69
+ PATCH LEVEL OPTIONS
70
+ See bundle update(1) bundle-update.1.html for details.
71
+
72
+ One difference between the patch level options in bundle update and
73
+ here is the --strict option. --strict was already an option on outdated
74
+ before the patch level options were added. --strict wasn't altered, and
75
+ the --update-strict option on outdated reflects what --strict does on
76
+ bundle update.
77
+
78
+ FILTERING OUTPUT
79
+ The 3 filtering options do not affect the resolution of versions,
80
+ merely what versions are shown in the output.
81
+
82
+ If the regular output shows the following:
83
+
84
+
85
+
86
+ * faker (newest 1.6.6, installed 1.6.5, requested ~> 1.4) in groups "development, test"
87
+ * hashie (newest 3.4.6, installed 1.2.0, requested = 1.2.0) in groups "default"
88
+ * headless (newest 2.3.1, installed 2.2.3) in groups "test"
89
+
90
+
91
+
92
+ --filter-major would only show:
93
+
94
+
95
+
96
+ * hashie (newest 3.4.6, installed 1.2.0, requested = 1.2.0) in groups "default"
97
+
98
+
99
+
100
+ --filter-minor would only show:
101
+
102
+
103
+
104
+ * headless (newest 2.3.1, installed 2.2.3) in groups "test"
105
+
106
+
107
+
108
+ --filter-patch would only show:
109
+
110
+
111
+
112
+ * faker (newest 1.6.6, installed 1.6.5, requested ~> 1.4) in groups "development, test"
113
+
114
+
115
+
116
+ Filter options can be combined. --filter-minor and --filter-patch would
117
+ show:
118
+
119
+
120
+
121
+ * faker (newest 1.6.6, installed 1.6.5, requested ~> 1.4) in groups "development, test"
122
+ * headless (newest 2.3.1, installed 2.2.3) in groups "test"
123
+
124
+
125
+
126
+ Combining all three filter options would be the same result as provid-
127
+ ing none of them.
128
+
129
+
130
+
131
+ September 2019 BUNDLE-OUTDATED(1)
@@ -0,0 +1,55 @@
1
+ .\" generated with Ronn/v0.7.3
2
+ .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
+ .
4
+ .TH "BUNDLE\-PACKAGE" "1" "September 2019" "" ""
5
+ .
6
+ .SH "NAME"
7
+ \fBbundle\-package\fR \- Package your needed \fB\.gem\fR files into your application
8
+ .
9
+ .SH "SYNOPSIS"
10
+ \fBbundle package\fR
11
+ .
12
+ .SH "DESCRIPTION"
13
+ Copy all of the \fB\.gem\fR files needed to run the application into the \fBvendor/cache\fR directory\. In the future, when running [bundle install(1)][bundle\-install], use the gems in the cache in preference to the ones on \fBrubygems\.org\fR\.
14
+ .
15
+ .SH "GIT AND PATH GEMS"
16
+ Since Bundler 1\.2, the \fBbundle package\fR command can also package \fB:git\fR and \fB:path\fR dependencies besides \.gem files\. This needs to be explicitly enabled via the \fB\-\-all\fR option\. Once used, the \fB\-\-all\fR option will be remembered\.
17
+ .
18
+ .SH "SUPPORT FOR MULTIPLE PLATFORMS"
19
+ When using gems that have different packages for different platforms, Bundler 1\.8 and newer support caching of gems for other platforms where the Gemfile has been resolved (i\.e\. present in the lockfile) in \fBvendor/cache\fR\. This needs to be enabled via the \fB\-\-all\-platforms\fR option\. This setting will be remembered in your local bundler configuration\.
20
+ .
21
+ .SH "REMOTE FETCHING"
22
+ By default, if you run \fBbundle install(1)\fR](bundle\-install\.1\.html) after running bundle package(1) \fIbundle\-package\.1\.html\fR, bundler will still connect to \fBrubygems\.org\fR to check whether a platform\-specific gem exists for any of the gems in \fBvendor/cache\fR\.
23
+ .
24
+ .P
25
+ For instance, consider this Gemfile(5):
26
+ .
27
+ .IP "" 4
28
+ .
29
+ .nf
30
+
31
+ source "https://rubygems\.org"
32
+
33
+ gem "nokogiri"
34
+ .
35
+ .fi
36
+ .
37
+ .IP "" 0
38
+ .
39
+ .P
40
+ If you run \fBbundle package\fR under C Ruby, bundler will retrieve the version of \fBnokogiri\fR for the \fB"ruby"\fR platform\. If you deploy to JRuby and run \fBbundle install\fR, bundler is forced to check to see whether a \fB"java"\fR platformed \fBnokogiri\fR exists\.
41
+ .
42
+ .P
43
+ Even though the \fBnokogiri\fR gem for the Ruby platform is \fItechnically\fR acceptable on JRuby, it has a C extension that does not run on JRuby\. As a result, bundler will, by default, still connect to \fBrubygems\.org\fR to check whether it has a version of one of your gems more specific to your platform\.
44
+ .
45
+ .P
46
+ This problem is also not limited to the \fB"java"\fR platform\. A similar (common) problem can happen when developing on Windows and deploying to Linux, or even when developing on OSX and deploying to Linux\.
47
+ .
48
+ .P
49
+ If you know for sure that the gems packaged in \fBvendor/cache\fR are appropriate for the platform you are on, you can run \fBbundle install \-\-local\fR to skip checking for more appropriate gems, and use the ones in \fBvendor/cache\fR\.
50
+ .
51
+ .P
52
+ One way to be sure that you have the right platformed versions of all your gems is to run \fBbundle package\fR on an identical machine and check in the gems\. For instance, you can run \fBbundle package\fR on an identical staging box during your staging process, and check in the \fBvendor/cache\fR before deploying to production\.
53
+ .
54
+ .P
55
+ By default, bundle package(1) \fIbundle\-package\.1\.html\fR fetches and also installs the gems to the default location\. To package the dependencies to \fBvendor/cache\fR without installing them to the local install location, you can run \fBbundle package \-\-no\-install\fR\.
@@ -0,0 +1,79 @@
1
+ BUNDLE-PACKAGE(1) BUNDLE-PACKAGE(1)
2
+
3
+
4
+
5
+ NAME
6
+ bundle-package - Package your needed .gem files into your application
7
+
8
+ SYNOPSIS
9
+ bundle package
10
+
11
+ DESCRIPTION
12
+ Copy all of the .gem files needed to run the application into the ven-
13
+ dor/cache directory. In the future, when running [bundle
14
+ install(1)][bundle-install], use the gems in the cache in preference to
15
+ the ones on rubygems.org.
16
+
17
+ GIT AND PATH GEMS
18
+ Since Bundler 1.2, the bundle package command can also package :git and
19
+ :path dependencies besides .gem files. This needs to be explicitly
20
+ enabled via the --all option. Once used, the --all option will be
21
+ remembered.
22
+
23
+ SUPPORT FOR MULTIPLE PLATFORMS
24
+ When using gems that have different packages for different platforms,
25
+ Bundler 1.8 and newer support caching of gems for other platforms where
26
+ the Gemfile has been resolved (i.e. present in the lockfile) in ven-
27
+ dor/cache. This needs to be enabled via the --all-platforms option.
28
+ This setting will be remembered in your local bundler configuration.
29
+
30
+ REMOTE FETCHING
31
+ By default, if you run bundle install(1)](bundle-install.1.html) after
32
+ running bundle package(1) bundle-package.1.html, bundler will still
33
+ connect to rubygems.org to check whether a platform-specific gem exists
34
+ for any of the gems in vendor/cache.
35
+
36
+ For instance, consider this Gemfile(5):
37
+
38
+
39
+
40
+ source "https://rubygems.org"
41
+
42
+ gem "nokogiri"
43
+
44
+
45
+
46
+ If you run bundle package under C Ruby, bundler will retrieve the ver-
47
+ sion of nokogiri for the "ruby" platform. If you deploy to JRuby and
48
+ run bundle install, bundler is forced to check to see whether a "java"
49
+ platformed nokogiri exists.
50
+
51
+ Even though the nokogiri gem for the Ruby platform is technically
52
+ acceptable on JRuby, it has a C extension that does not run on JRuby.
53
+ As a result, bundler will, by default, still connect to rubygems.org to
54
+ check whether it has a version of one of your gems more specific to
55
+ your platform.
56
+
57
+ This problem is also not limited to the "java" platform. A similar
58
+ (common) problem can happen when developing on Windows and deploying to
59
+ Linux, or even when developing on OSX and deploying to Linux.
60
+
61
+ If you know for sure that the gems packaged in vendor/cache are appro-
62
+ priate for the platform you are on, you can run bundle install --local
63
+ to skip checking for more appropriate gems, and use the ones in ven-
64
+ dor/cache.
65
+
66
+ One way to be sure that you have the right platformed versions of all
67
+ your gems is to run bundle package on an identical machine and check in
68
+ the gems. For instance, you can run bundle package on an identical
69
+ staging box during your staging process, and check in the vendor/cache
70
+ before deploying to production.
71
+
72
+ By default, bundle package(1) bundle-package.1.html fetches and also
73
+ installs the gems to the default location. To package the dependencies
74
+ to vendor/cache without installing them to the local install location,
75
+ you can run bundle package --no-install.
76
+
77
+
78
+
79
+ September 2019 BUNDLE-PACKAGE(1)
@@ -0,0 +1,61 @@
1
+ .\" generated with Ronn/v0.7.3
2
+ .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
+ .
4
+ .TH "BUNDLE\-PLATFORM" "1" "September 2019" "" ""
5
+ .
6
+ .SH "NAME"
7
+ \fBbundle\-platform\fR \- Displays platform compatibility information
8
+ .
9
+ .SH "SYNOPSIS"
10
+ \fBbundle platform\fR [\-\-ruby]
11
+ .
12
+ .SH "DESCRIPTION"
13
+ \fBplatform\fR will display information from your Gemfile, Gemfile\.lock, and Ruby VM about your platform\.
14
+ .
15
+ .P
16
+ For instance, using this Gemfile(5):
17
+ .
18
+ .IP "" 4
19
+ .
20
+ .nf
21
+
22
+ source "https://rubygems\.org"
23
+
24
+ ruby "1\.9\.3"
25
+
26
+ gem "rack"
27
+ .
28
+ .fi
29
+ .
30
+ .IP "" 0
31
+ .
32
+ .P
33
+ If you run \fBbundle platform\fR on Ruby 1\.9\.3, it will display the following output:
34
+ .
35
+ .IP "" 4
36
+ .
37
+ .nf
38
+
39
+ Your platform is: x86_64\-linux
40
+
41
+ Your app has gems that work on these platforms:
42
+ * ruby
43
+
44
+ Your Gemfile specifies a Ruby version requirement:
45
+ * ruby 1\.9\.3
46
+
47
+ Your current platform satisfies the Ruby version requirement\.
48
+ .
49
+ .fi
50
+ .
51
+ .IP "" 0
52
+ .
53
+ .P
54
+ \fBplatform\fR will list all the platforms in your \fBGemfile\.lock\fR as well as the \fBruby\fR directive if applicable from your Gemfile(5)\. It will also let you know if the \fBruby\fR directive requirement has been met\. If \fBruby\fR directive doesn\'t match the running Ruby VM, it will tell you what part does not\.
55
+ .
56
+ .SH "OPTIONS"
57
+ .
58
+ .TP
59
+ \fB\-\-ruby\fR
60
+ It will display the ruby directive information, so you don\'t have to parse it from the Gemfile(5)\.
61
+
@@ -0,0 +1,57 @@
1
+ BUNDLE-PLATFORM(1) BUNDLE-PLATFORM(1)
2
+
3
+
4
+
5
+ NAME
6
+ bundle-platform - Displays platform compatibility information
7
+
8
+ SYNOPSIS
9
+ bundle platform [--ruby]
10
+
11
+ DESCRIPTION
12
+ platform will display information from your Gemfile, Gemfile.lock, and
13
+ Ruby VM about your platform.
14
+
15
+ For instance, using this Gemfile(5):
16
+
17
+
18
+
19
+ source "https://rubygems.org"
20
+
21
+ ruby "1.9.3"
22
+
23
+ gem "rack"
24
+
25
+
26
+
27
+ If you run bundle platform on Ruby 1.9.3, it will display the following
28
+ output:
29
+
30
+
31
+
32
+ Your platform is: x86_64-linux
33
+
34
+ Your app has gems that work on these platforms:
35
+ * ruby
36
+
37
+ Your Gemfile specifies a Ruby version requirement:
38
+ * ruby 1.9.3
39
+
40
+ Your current platform satisfies the Ruby version requirement.
41
+
42
+
43
+
44
+ platform will list all the platforms in your Gemfile.lock as well as
45
+ the ruby directive if applicable from your Gemfile(5). It will also let
46
+ you know if the ruby directive requirement has been met. If ruby direc-
47
+ tive doesn't match the running Ruby VM, it will tell you what part does
48
+ not.
49
+
50
+ OPTIONS
51
+ --ruby It will display the ruby directive information, so you don't
52
+ have to parse it from the Gemfile(5).
53
+
54
+
55
+
56
+
57
+ September 2019 BUNDLE-PLATFORM(1)
@@ -0,0 +1,34 @@
1
+ .\" generated with Ronn/v0.7.3
2
+ .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
+ .
4
+ .TH "BUNDLE\-PRISTINE" "1" "September 2019" "" ""
5
+ .
6
+ .SH "NAME"
7
+ \fBbundle\-pristine\fR \- Restores installed gems to their pristine condition
8
+ .
9
+ .SH "SYNOPSIS"
10
+ \fBbundle pristine\fR
11
+ .
12
+ .SH "DESCRIPTION"
13
+ \fBpristine\fR restores the installed gems in the bundle to their pristine condition using the local gem cache from RubyGems\. For git gems, a forced checkout will be performed\.
14
+ .
15
+ .P
16
+ For further explanation, \fBbundle pristine\fR ignores unpacked files on disk\. In other words, this command utilizes the local \fB\.gem\fR cache or the gem\'s git repository as if one were installing from scratch\.
17
+ .
18
+ .P
19
+ Note: the Bundler gem cannot be restored to its original state with \fBpristine\fR\. One also cannot use \fBbundle pristine\fR on gems with a \'path\' option in the Gemfile, because bundler has no original copy it can restore from\.
20
+ .
21
+ .P
22
+ When is it practical to use \fBbundle pristine\fR?
23
+ .
24
+ .P
25
+ It comes in handy when a developer is debugging a gem\. \fBbundle pristine\fR is a great way to get rid of experimental changes to a gem that one may not want\.
26
+ .
27
+ .P
28
+ Why use \fBbundle pristine\fR over \fBgem pristine \-\-all\fR?
29
+ .
30
+ .P
31
+ Both commands are very similar\. For context: \fBbundle pristine\fR, without arguments, cleans all gems from the lockfile\. Meanwhile, \fBgem pristine \-\-all\fR cleans all installed gems for that Ruby version\.
32
+ .
33
+ .P
34
+ If a developer forgets which gems in their project they might have been debugging, the Rubygems \fBgem pristine [GEMNAME]\fR command may be inconvenient\. One can avoid waiting for \fBgem pristine \-\-all\fR, and instead run \fBbundle pristine\fR\.
@@ -0,0 +1,44 @@
1
+ BUNDLE-PRISTINE(1) BUNDLE-PRISTINE(1)
2
+
3
+
4
+
5
+ NAME
6
+ bundle-pristine - Restores installed gems to their pristine condition
7
+
8
+ SYNOPSIS
9
+ bundle pristine
10
+
11
+ DESCRIPTION
12
+ pristine restores the installed gems in the bundle to their pristine
13
+ condition using the local gem cache from RubyGems. For git gems, a
14
+ forced checkout will be performed.
15
+
16
+ For further explanation, bundle pristine ignores unpacked files on
17
+ disk. In other words, this command utilizes the local .gem cache or the
18
+ gem's git repository as if one were installing from scratch.
19
+
20
+ Note: the Bundler gem cannot be restored to its original state with
21
+ pristine. One also cannot use bundle pristine on gems with a 'path'
22
+ option in the Gemfile, because bundler has no original copy it can
23
+ restore from.
24
+
25
+ When is it practical to use bundle pristine?
26
+
27
+ It comes in handy when a developer is debugging a gem. bundle pristine
28
+ is a great way to get rid of experimental changes to a gem that one may
29
+ not want.
30
+
31
+ Why use bundle pristine over gem pristine --all?
32
+
33
+ Both commands are very similar. For context: bundle pristine, without
34
+ arguments, cleans all gems from the lockfile. Meanwhile, gem pristine
35
+ --all cleans all installed gems for that Ruby version.
36
+
37
+ If a developer forgets which gems in their project they might have been
38
+ debugging, the Rubygems gem pristine [GEMNAME] command may be inconve-
39
+ nient. One can avoid waiting for gem pristine --all, and instead run
40
+ bundle pristine.
41
+
42
+
43
+
44
+ September 2019 BUNDLE-PRISTINE(1)