rubygems-update 3.2.30 → 3.4.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (641) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1666 -994
  3. data/CONTRIBUTING.md +71 -15
  4. data/Manifest.txt +93 -37
  5. data/POLICIES.md +65 -16
  6. data/README.md +28 -13
  7. data/UPGRADING.md +5 -81
  8. data/bin/gem +2 -10
  9. data/bin/update_rubygems +5 -5
  10. data/bundler/CHANGELOG.md +647 -1
  11. data/bundler/README.md +3 -6
  12. data/bundler/UPGRADING.md +11 -4
  13. data/bundler/bundler.gemspec +8 -10
  14. data/bundler/exe/bundle +7 -11
  15. data/bundler/exe/bundler +1 -1
  16. data/bundler/lib/bundler/.document +1 -0
  17. data/bundler/lib/bundler/build_metadata.rb +3 -3
  18. data/bundler/lib/bundler/cli/add.rb +1 -1
  19. data/bundler/lib/bundler/cli/binstubs.rb +5 -1
  20. data/bundler/lib/bundler/cli/check.rb +1 -1
  21. data/bundler/lib/bundler/cli/common.rb +4 -2
  22. data/bundler/lib/bundler/cli/config.rb +10 -1
  23. data/bundler/lib/bundler/cli/console.rb +2 -2
  24. data/bundler/lib/bundler/cli/doctor.rb +10 -3
  25. data/bundler/lib/bundler/cli/gem.rb +136 -42
  26. data/bundler/lib/bundler/cli/info.rb +17 -3
  27. data/bundler/lib/bundler/cli/init.rb +6 -2
  28. data/bundler/lib/bundler/cli/install.rb +15 -33
  29. data/bundler/lib/bundler/cli/lock.rb +8 -5
  30. data/bundler/lib/bundler/cli/open.rb +6 -4
  31. data/bundler/lib/bundler/cli/outdated.rb +13 -6
  32. data/bundler/lib/bundler/cli/platform.rb +2 -2
  33. data/bundler/lib/bundler/cli/show.rb +1 -1
  34. data/bundler/lib/bundler/cli/update.rb +8 -4
  35. data/bundler/lib/bundler/cli/viz.rb +1 -1
  36. data/bundler/lib/bundler/cli.rb +67 -21
  37. data/bundler/lib/bundler/compact_index_client/cache.rb +1 -10
  38. data/bundler/lib/bundler/compact_index_client/updater.rb +53 -44
  39. data/bundler/lib/bundler/compact_index_client.rb +0 -6
  40. data/bundler/lib/bundler/constants.rb +1 -1
  41. data/bundler/lib/bundler/current_ruby.rb +18 -6
  42. data/bundler/lib/bundler/definition.rb +259 -242
  43. data/bundler/lib/bundler/dependency.rb +24 -71
  44. data/bundler/lib/bundler/digest.rb +1 -1
  45. data/bundler/lib/bundler/dsl.rb +29 -46
  46. data/bundler/lib/bundler/endpoint_specification.rb +15 -13
  47. data/bundler/lib/bundler/env.rb +2 -2
  48. data/bundler/lib/bundler/environment_preserver.rb +7 -3
  49. data/bundler/lib/bundler/errors.rb +15 -15
  50. data/bundler/lib/bundler/feature_flag.rb +0 -1
  51. data/bundler/lib/bundler/fetcher/base.rb +6 -8
  52. data/bundler/lib/bundler/fetcher/compact_index.rb +18 -25
  53. data/bundler/lib/bundler/fetcher/dependency.rb +2 -6
  54. data/bundler/lib/bundler/fetcher/downloader.rb +2 -5
  55. data/bundler/lib/bundler/fetcher/index.rb +0 -26
  56. data/bundler/lib/bundler/fetcher.rb +22 -29
  57. data/bundler/lib/bundler/force_platform.rb +18 -0
  58. data/bundler/lib/bundler/friendly_errors.rb +21 -7
  59. data/bundler/lib/bundler/gem_helper.rb +4 -4
  60. data/bundler/lib/bundler/gem_helpers.rb +9 -2
  61. data/bundler/lib/bundler/gem_version_promoter.rb +53 -98
  62. data/bundler/lib/bundler/graph.rb +3 -3
  63. data/bundler/lib/bundler/index.rb +13 -51
  64. data/bundler/lib/bundler/injector.rb +18 -4
  65. data/bundler/lib/bundler/inline.rb +9 -21
  66. data/bundler/lib/bundler/installer/gem_installer.rb +13 -5
  67. data/bundler/lib/bundler/installer/parallel_installer.rb +3 -33
  68. data/bundler/lib/bundler/installer/standalone.rb +42 -11
  69. data/bundler/lib/bundler/installer.rb +20 -44
  70. data/bundler/lib/bundler/lazy_specification.rb +72 -55
  71. data/bundler/lib/bundler/lockfile_generator.rb +3 -3
  72. data/bundler/lib/bundler/lockfile_parser.rb +28 -26
  73. data/bundler/lib/bundler/man/bundle-add.1 +21 -5
  74. data/bundler/lib/bundler/man/bundle-add.1.ronn +16 -4
  75. data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
  76. data/bundler/lib/bundler/man/bundle-cache.1 +7 -1
  77. data/bundler/lib/bundler/man/bundle-cache.1.ronn +7 -0
  78. data/bundler/lib/bundler/man/bundle-check.1 +1 -1
  79. data/bundler/lib/bundler/man/bundle-clean.1 +2 -2
  80. data/bundler/lib/bundler/man/bundle-clean.1.ronn +1 -1
  81. data/bundler/lib/bundler/man/bundle-config.1 +34 -15
  82. data/bundler/lib/bundler/man/bundle-config.1.ronn +31 -19
  83. data/bundler/lib/bundler/man/bundle-console.1 +53 -0
  84. data/bundler/lib/bundler/man/bundle-console.1.ronn +44 -0
  85. data/bundler/lib/bundler/man/bundle-doctor.1 +1 -1
  86. data/bundler/lib/bundler/man/bundle-exec.1 +6 -6
  87. data/bundler/lib/bundler/man/bundle-exec.1.ronn +6 -6
  88. data/bundler/lib/bundler/man/bundle-gem.1 +37 -34
  89. data/bundler/lib/bundler/man/bundle-gem.1.ronn +21 -5
  90. data/bundler/lib/bundler/man/bundle-help.1 +13 -0
  91. data/bundler/lib/bundler/man/bundle-help.1.ronn +12 -0
  92. data/bundler/lib/bundler/man/bundle-info.1 +1 -1
  93. data/bundler/lib/bundler/man/bundle-init.1 +5 -1
  94. data/bundler/lib/bundler/man/bundle-init.1.ronn +2 -0
  95. data/bundler/lib/bundler/man/bundle-inject.1 +5 -2
  96. data/bundler/lib/bundler/man/bundle-inject.1.ronn +3 -1
  97. data/bundler/lib/bundler/man/bundle-install.1 +6 -31
  98. data/bundler/lib/bundler/man/bundle-install.1.ronn +8 -31
  99. data/bundler/lib/bundler/man/bundle-list.1 +1 -1
  100. data/bundler/lib/bundler/man/bundle-lock.1 +1 -1
  101. data/bundler/lib/bundler/man/bundle-open.1 +22 -2
  102. data/bundler/lib/bundler/man/bundle-open.1.ronn +9 -1
  103. data/bundler/lib/bundler/man/bundle-outdated.1 +3 -10
  104. data/bundler/lib/bundler/man/bundle-outdated.1.ronn +1 -10
  105. data/bundler/lib/bundler/man/bundle-platform.1 +16 -6
  106. data/bundler/lib/bundler/man/bundle-platform.1.ronn +14 -7
  107. data/bundler/lib/bundler/man/bundle-plugin.1 +81 -0
  108. data/bundler/lib/bundler/man/bundle-plugin.1.ronn +59 -0
  109. data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
  110. data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
  111. data/bundler/lib/bundler/man/bundle-show.1 +1 -1
  112. data/bundler/lib/bundler/man/bundle-update.1 +2 -2
  113. data/bundler/lib/bundler/man/bundle-update.1.ronn +2 -1
  114. data/bundler/lib/bundler/man/bundle-version.1 +35 -0
  115. data/bundler/lib/bundler/man/bundle-version.1.ronn +24 -0
  116. data/bundler/lib/bundler/man/bundle-viz.1 +4 -1
  117. data/bundler/lib/bundler/man/bundle-viz.1.ronn +2 -0
  118. data/bundler/lib/bundler/man/bundle.1 +15 -10
  119. data/bundler/lib/bundler/man/bundle.1.ronn +12 -7
  120. data/bundler/lib/bundler/man/gemfile.5 +117 -80
  121. data/bundler/lib/bundler/man/gemfile.5.ronn +105 -84
  122. data/bundler/lib/bundler/man/index.txt +4 -0
  123. data/bundler/lib/bundler/match_metadata.rb +13 -0
  124. data/bundler/lib/bundler/match_platform.rb +0 -1
  125. data/bundler/lib/bundler/match_remote_metadata.rb +29 -0
  126. data/bundler/lib/bundler/mirror.rb +5 -7
  127. data/bundler/lib/bundler/plugin/api/source.rb +4 -9
  128. data/bundler/lib/bundler/plugin/index.rb +4 -4
  129. data/bundler/lib/bundler/plugin/installer/git.rb +0 -4
  130. data/bundler/lib/bundler/plugin/installer/rubygems.rb +0 -8
  131. data/bundler/lib/bundler/plugin/installer.rb +6 -3
  132. data/bundler/lib/bundler/plugin.rb +3 -1
  133. data/bundler/lib/bundler/process_lock.rb +1 -1
  134. data/bundler/lib/bundler/remote_specification.rb +7 -5
  135. data/bundler/lib/bundler/resolver/base.rb +109 -0
  136. data/bundler/lib/bundler/resolver/candidate.rb +94 -0
  137. data/bundler/lib/bundler/resolver/incompatibility.rb +15 -0
  138. data/bundler/lib/bundler/resolver/package.rb +72 -0
  139. data/bundler/lib/bundler/resolver/root.rb +25 -0
  140. data/bundler/lib/bundler/resolver/spec_group.rb +43 -71
  141. data/bundler/lib/bundler/resolver.rb +332 -308
  142. data/bundler/lib/bundler/ruby_dsl.rb +1 -1
  143. data/bundler/lib/bundler/ruby_version.rb +5 -18
  144. data/bundler/lib/bundler/rubygems_ext.rb +144 -25
  145. data/bundler/lib/bundler/rubygems_gem_installer.rb +32 -20
  146. data/bundler/lib/bundler/rubygems_integration.rb +24 -95
  147. data/bundler/lib/bundler/runtime.rb +2 -7
  148. data/bundler/lib/bundler/self_manager.rb +168 -0
  149. data/bundler/lib/bundler/settings.rb +5 -10
  150. data/bundler/lib/bundler/setup.rb +4 -1
  151. data/bundler/lib/bundler/shared_helpers.rb +17 -25
  152. data/bundler/lib/bundler/source/git/git_proxy.rb +219 -71
  153. data/bundler/lib/bundler/source/git.rb +23 -26
  154. data/bundler/lib/bundler/source/metadata.rb +3 -4
  155. data/bundler/lib/bundler/source/path/installer.rb +1 -22
  156. data/bundler/lib/bundler/source/path.rb +7 -7
  157. data/bundler/lib/bundler/source/rubygems.rb +91 -130
  158. data/bundler/lib/bundler/source/rubygems_aggregate.rb +1 -1
  159. data/bundler/lib/bundler/source.rb +4 -5
  160. data/bundler/lib/bundler/source_list.rb +19 -31
  161. data/bundler/lib/bundler/source_map.rb +15 -2
  162. data/bundler/lib/bundler/spec_set.rb +63 -35
  163. data/bundler/lib/bundler/stub_specification.rb +5 -3
  164. data/bundler/lib/bundler/templates/Executable +3 -5
  165. data/bundler/lib/bundler/templates/Executable.bundler +6 -11
  166. data/bundler/lib/bundler/templates/Executable.standalone +4 -4
  167. data/bundler/lib/bundler/templates/Gemfile +0 -2
  168. data/bundler/lib/bundler/templates/newgem/Cargo.toml.tt +7 -0
  169. data/bundler/lib/bundler/templates/newgem/Gemfile.tt +8 -2
  170. data/bundler/lib/bundler/templates/newgem/README.md.tt +7 -11
  171. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +27 -3
  172. data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +12 -0
  173. data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +15 -0
  174. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +6 -0
  175. data/bundler/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +12 -0
  176. data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +13 -3
  177. data/bundler/lib/bundler/templates/newgem/gitignore.tt +3 -0
  178. data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +13 -4
  179. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +22 -16
  180. data/bundler/lib/bundler/templates/newgem/sig/newgem.rbs.tt +8 -0
  181. data/bundler/lib/bundler/templates/newgem/standard.yml.tt +3 -0
  182. data/bundler/lib/bundler/templates/newgem/test/minitest/{newgem_test.rb.tt → test_newgem.rb.tt} +1 -1
  183. data/bundler/lib/bundler/ui/shell.rb +36 -13
  184. data/bundler/lib/bundler/ui/silent.rb +21 -5
  185. data/bundler/lib/bundler/uri_normalizer.rb +23 -0
  186. data/bundler/lib/bundler/vendor/.document +1 -0
  187. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +3 -3
  188. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +0 -1
  189. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +3 -1
  190. data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +1350 -408
  191. data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +1 -1
  192. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +1 -1
  193. data/bundler/lib/bundler/vendor/pub_grub/LICENSE.txt +21 -0
  194. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb +20 -0
  195. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +189 -0
  196. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb +182 -0
  197. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb +150 -0
  198. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb +43 -0
  199. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb +121 -0
  200. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb +45 -0
  201. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb +19 -0
  202. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +60 -0
  203. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb +105 -0
  204. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb +3 -0
  205. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb +129 -0
  206. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +411 -0
  207. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +243 -0
  208. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb +178 -0
  209. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +31 -0
  210. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +6 -6
  211. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +1 -2
  212. data/bundler/lib/bundler/vendor/thor/lib/thor/actions.rb +6 -2
  213. data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +6 -0
  214. data/bundler/lib/bundler/vendor/thor/lib/thor/error.rb +9 -4
  215. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +19 -1
  216. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +23 -5
  217. data/bundler/lib/bundler/vendor/thor/lib/thor/shell.rb +1 -1
  218. data/bundler/lib/bundler/vendor/thor/lib/thor/util.rb +1 -1
  219. data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
  220. data/bundler/lib/bundler/vendor/tsort/LICENSE.txt +22 -0
  221. data/bundler/lib/bundler/vendor/tsort/lib/tsort.rb +452 -0
  222. data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +76 -91
  223. data/bundler/lib/bundler/vendor/uri/lib/uri/file.rb +7 -1
  224. data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +2 -2
  225. data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +32 -13
  226. data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +40 -3
  227. data/bundler/lib/bundler/vendor/uri/lib/uri/https.rb +2 -2
  228. data/bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb +2 -2
  229. data/bundler/lib/bundler/vendor/uri/lib/uri/ldaps.rb +2 -1
  230. data/bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb +2 -3
  231. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +14 -21
  232. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +11 -17
  233. data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
  234. data/bundler/lib/bundler/vendor/uri/lib/uri/ws.rb +83 -0
  235. data/bundler/lib/bundler/vendor/uri/lib/uri/wss.rb +23 -0
  236. data/bundler/lib/bundler/vendor/uri/lib/uri.rb +3 -3
  237. data/bundler/lib/bundler/vendored_persistent.rb +1 -33
  238. data/bundler/lib/bundler/{vendored_molinillo.rb → vendored_pub_grub.rb} +1 -1
  239. data/bundler/lib/bundler/{vendored_tmpdir.rb → vendored_tsort.rb} +1 -1
  240. data/bundler/lib/bundler/version.rb +5 -1
  241. data/bundler/lib/bundler/worker.rb +5 -7
  242. data/bundler/lib/bundler.rb +50 -77
  243. data/hide_lib_for_update/note.txt +0 -4
  244. data/lib/rubygems/available_set.rb +3 -3
  245. data/lib/rubygems/basic_specification.rb +12 -12
  246. data/lib/rubygems/bundler_version_finder.rb +14 -46
  247. data/lib/rubygems/command.rb +47 -39
  248. data/lib/rubygems/command_manager.rb +34 -13
  249. data/lib/rubygems/commands/build_command.rb +11 -8
  250. data/lib/rubygems/commands/cert_command.rb +39 -39
  251. data/lib/rubygems/commands/check_command.rb +20 -20
  252. data/lib/rubygems/commands/cleanup_command.rb +23 -23
  253. data/lib/rubygems/commands/contents_command.rb +13 -13
  254. data/lib/rubygems/commands/dependency_command.rb +35 -45
  255. data/lib/rubygems/commands/environment_command.rb +10 -7
  256. data/lib/rubygems/commands/exec_command.rb +248 -0
  257. data/lib/rubygems/commands/fetch_command.rb +32 -13
  258. data/lib/rubygems/commands/generate_index_command.rb +17 -17
  259. data/lib/rubygems/commands/help_command.rb +6 -6
  260. data/lib/rubygems/commands/info_command.rb +3 -3
  261. data/lib/rubygems/commands/install_command.rb +31 -24
  262. data/lib/rubygems/commands/list_command.rb +4 -4
  263. data/lib/rubygems/commands/lock_command.rb +4 -4
  264. data/lib/rubygems/commands/mirror_command.rb +3 -3
  265. data/lib/rubygems/commands/open_command.rb +9 -9
  266. data/lib/rubygems/commands/outdated_command.rb +5 -5
  267. data/lib/rubygems/commands/owner_command.rb +17 -12
  268. data/lib/rubygems/commands/pristine_command.rb +64 -49
  269. data/lib/rubygems/commands/push_command.rb +16 -16
  270. data/lib/rubygems/commands/query_command.rb +9 -9
  271. data/lib/rubygems/commands/rdoc_command.rb +26 -25
  272. data/lib/rubygems/commands/search_command.rb +4 -4
  273. data/lib/rubygems/commands/server_command.rb +16 -79
  274. data/lib/rubygems/commands/setup_command.rb +172 -173
  275. data/lib/rubygems/commands/signin_command.rb +9 -9
  276. data/lib/rubygems/commands/signout_command.rb +7 -7
  277. data/lib/rubygems/commands/sources_command.rb +22 -22
  278. data/lib/rubygems/commands/specification_command.rb +18 -18
  279. data/lib/rubygems/commands/stale_command.rb +2 -2
  280. data/lib/rubygems/commands/uninstall_command.rb +43 -40
  281. data/lib/rubygems/commands/unpack_command.rb +13 -13
  282. data/lib/rubygems/commands/update_command.rb +61 -72
  283. data/lib/rubygems/commands/which_command.rb +7 -7
  284. data/lib/rubygems/commands/yank_command.rb +11 -11
  285. data/lib/rubygems/compatibility.rb +4 -2
  286. data/lib/rubygems/config_file.rb +58 -25
  287. data/lib/rubygems/core_ext/kernel_gem.rb +1 -6
  288. data/lib/rubygems/core_ext/kernel_require.rb +108 -115
  289. data/lib/rubygems/core_ext/kernel_warn.rb +33 -37
  290. data/lib/rubygems/core_ext/tcpsocket_init.rb +1 -1
  291. data/lib/rubygems/defaults.rb +32 -36
  292. data/lib/rubygems/dependency.rb +20 -17
  293. data/lib/rubygems/dependency_installer.rb +37 -37
  294. data/lib/rubygems/dependency_list.rb +7 -7
  295. data/lib/rubygems/deprecate.rb +55 -8
  296. data/lib/rubygems/doctor.rb +21 -21
  297. data/lib/rubygems/errors.rb +3 -6
  298. data/lib/rubygems/exceptions.rb +35 -7
  299. data/lib/rubygems/ext/build_error.rb +1 -1
  300. data/lib/rubygems/ext/builder.rb +51 -22
  301. data/lib/rubygems/ext/cargo_builder/link_flag_converter.rb +27 -0
  302. data/lib/rubygems/ext/cargo_builder.rb +360 -0
  303. data/lib/rubygems/ext/cmake_builder.rb +2 -2
  304. data/lib/rubygems/ext/configure_builder.rb +1 -1
  305. data/lib/rubygems/ext/ext_conf_builder.rb +35 -59
  306. data/lib/rubygems/ext/rake_builder.rb +3 -3
  307. data/lib/rubygems/ext.rb +7 -6
  308. data/lib/rubygems/gem_runner.rb +12 -16
  309. data/lib/rubygems/gemcutter_utilities.rb +60 -21
  310. data/lib/rubygems/indexer.rb +30 -28
  311. data/lib/rubygems/install_default_message.rb +2 -2
  312. data/lib/rubygems/install_message.rb +2 -2
  313. data/lib/rubygems/install_update_options.rb +70 -61
  314. data/lib/rubygems/installer.rb +135 -87
  315. data/lib/rubygems/installer_uninstaller_utils.rb +2 -2
  316. data/lib/rubygems/local_remote_options.rb +22 -24
  317. data/lib/rubygems/mock_gem_ui.rb +2 -2
  318. data/lib/rubygems/name_tuple.rb +6 -7
  319. data/lib/rubygems/optparse/.document +1 -0
  320. data/lib/rubygems/optparse/COPYING +56 -0
  321. data/lib/rubygems/optparse/lib/optionparser.rb +2 -0
  322. data/lib/rubygems/optparse/lib/optparse/ac.rb +54 -0
  323. data/lib/rubygems/optparse/lib/optparse/date.rb +18 -0
  324. data/lib/rubygems/optparse/lib/optparse/kwargs.rb +22 -0
  325. data/lib/rubygems/optparse/lib/optparse/shellwords.rb +7 -0
  326. data/lib/rubygems/optparse/lib/optparse/time.rb +11 -0
  327. data/lib/rubygems/optparse/lib/optparse/uri.rb +7 -0
  328. data/lib/rubygems/optparse/lib/optparse/version.rb +71 -0
  329. data/lib/rubygems/optparse/lib/optparse.rb +2308 -0
  330. data/lib/rubygems/optparse.rb +3 -0
  331. data/lib/rubygems/package/file_source.rb +2 -2
  332. data/lib/rubygems/package/old.rb +9 -9
  333. data/lib/rubygems/package/tar_header.rb +62 -62
  334. data/lib/rubygems/package/tar_reader/entry.rb +90 -9
  335. data/lib/rubygems/package/tar_reader.rb +1 -29
  336. data/lib/rubygems/package/tar_writer.rb +7 -7
  337. data/lib/rubygems/package.rb +77 -60
  338. data/lib/rubygems/package_task.rb +4 -4
  339. data/lib/rubygems/path_support.rb +1 -6
  340. data/lib/rubygems/platform.rb +94 -61
  341. data/lib/rubygems/psych_tree.rb +1 -1
  342. data/lib/rubygems/query_utils.rb +49 -51
  343. data/lib/rubygems/rdoc.rb +2 -2
  344. data/lib/rubygems/remote_fetcher.rb +27 -27
  345. data/lib/rubygems/request/connection_pools.rb +4 -4
  346. data/lib/rubygems/request/http_pool.rb +1 -1
  347. data/lib/rubygems/request.rb +24 -24
  348. data/lib/rubygems/request_set/gem_dependency_api.rb +122 -123
  349. data/lib/rubygems/request_set/lockfile/parser.rb +26 -26
  350. data/lib/rubygems/request_set/lockfile/tokenizer.rb +4 -4
  351. data/lib/rubygems/request_set/lockfile.rb +9 -9
  352. data/lib/rubygems/request_set.rb +18 -18
  353. data/lib/rubygems/requirement.rb +15 -15
  354. data/lib/rubygems/resolver/activation_request.rb +3 -3
  355. data/lib/rubygems/resolver/api_set.rb +4 -4
  356. data/lib/rubygems/resolver/api_specification.rb +6 -6
  357. data/lib/rubygems/resolver/best_set.rb +5 -5
  358. data/lib/rubygems/resolver/conflict.rb +10 -10
  359. data/lib/rubygems/resolver/dependency_request.rb +2 -2
  360. data/lib/rubygems/resolver/git_set.rb +2 -2
  361. data/lib/rubygems/resolver/git_specification.rb +6 -6
  362. data/lib/rubygems/resolver/index_set.rb +3 -3
  363. data/lib/rubygems/resolver/index_specification.rb +6 -5
  364. data/lib/rubygems/resolver/installed_specification.rb +4 -4
  365. data/lib/rubygems/resolver/installer_set.rb +21 -26
  366. data/lib/rubygems/resolver/local_specification.rb +2 -2
  367. data/lib/rubygems/resolver/lock_set.rb +4 -4
  368. data/lib/rubygems/resolver/lock_specification.rb +4 -4
  369. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +3 -3
  370. data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +32 -26
  371. data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +1 -1
  372. data/lib/rubygems/resolver/molinillo.rb +1 -1
  373. data/lib/rubygems/resolver/specification.rb +1 -1
  374. data/lib/rubygems/resolver/stats.rb +1 -1
  375. data/lib/rubygems/resolver/vendor_set.rb +1 -1
  376. data/lib/rubygems/resolver/vendor_specification.rb +3 -3
  377. data/lib/rubygems/resolver.rb +40 -40
  378. data/lib/rubygems/s3_uri_signer.rb +6 -6
  379. data/lib/rubygems/safe_yaml.rb +10 -10
  380. data/lib/rubygems/security/policies.rb +47 -47
  381. data/lib/rubygems/security/policy.rb +19 -21
  382. data/lib/rubygems/security/signer.rb +5 -5
  383. data/lib/rubygems/security/trust_dir.rb +4 -4
  384. data/lib/rubygems/security.rb +37 -43
  385. data/lib/rubygems/security_option.rb +7 -7
  386. data/lib/rubygems/source/git.rb +25 -24
  387. data/lib/rubygems/source/installed.rb +1 -1
  388. data/lib/rubygems/source/local.rb +2 -2
  389. data/lib/rubygems/source/specific_file.rb +1 -1
  390. data/lib/rubygems/source.rb +27 -32
  391. data/lib/rubygems/source_list.rb +5 -9
  392. data/lib/rubygems/spec_fetcher.rb +37 -37
  393. data/lib/rubygems/specification.rb +265 -211
  394. data/lib/rubygems/specification_policy.rb +49 -30
  395. data/lib/rubygems/stub_specification.rb +24 -27
  396. data/lib/rubygems/text.rb +22 -21
  397. data/lib/rubygems/tsort/.document +1 -0
  398. data/lib/rubygems/tsort/LICENSE.txt +22 -0
  399. data/lib/rubygems/tsort/lib/tsort.rb +452 -0
  400. data/lib/rubygems/tsort.rb +3 -0
  401. data/lib/rubygems/uninstaller.rb +29 -26
  402. data/lib/rubygems/unknown_command_spell_checker.rb +21 -0
  403. data/lib/rubygems/update_suggestion.rb +69 -0
  404. data/lib/rubygems/uri.rb +45 -30
  405. data/lib/rubygems/uri_formatter.rb +1 -1
  406. data/lib/rubygems/user_interaction.rb +42 -28
  407. data/lib/rubygems/util/licenses.rb +4 -2
  408. data/lib/rubygems/util.rb +12 -16
  409. data/lib/rubygems/validator.rb +6 -6
  410. data/lib/rubygems/version.rb +28 -17
  411. data/lib/rubygems/version_option.rb +5 -5
  412. data/lib/rubygems.rb +129 -117
  413. data/rubygems-update.gemspec +3 -3
  414. data/setup.rb +11 -16
  415. data/test/rubygems/alternate_cert.pem +14 -14
  416. data/test/rubygems/alternate_cert_32.pem +15 -15
  417. data/test/rubygems/alternate_key.pem +25 -25
  418. data/test/rubygems/bundler_test_gem.rb +419 -0
  419. data/test/rubygems/child_cert.pem +15 -16
  420. data/test/rubygems/child_cert_32.pem +15 -16
  421. data/test/rubygems/child_key.pem +25 -25
  422. data/test/rubygems/data/excon-0.7.7.gemspec.rz +0 -0
  423. data/test/rubygems/data/pry-0.4.7.gemspec.rz +0 -0
  424. data/test/rubygems/encrypted_private_key.pem +26 -26
  425. data/test/rubygems/expired_cert.pem +15 -15
  426. data/test/rubygems/future_cert.pem +15 -15
  427. data/test/rubygems/future_cert_32.pem +15 -15
  428. data/test/rubygems/grandchild_cert.pem +15 -16
  429. data/test/rubygems/grandchild_cert_32.pem +15 -16
  430. data/test/rubygems/grandchild_key.pem +25 -25
  431. data/test/rubygems/helper.rb +237 -207
  432. data/test/rubygems/installer_test_case.rb +13 -13
  433. data/test/rubygems/invalid_issuer_cert.pem +16 -16
  434. data/test/rubygems/invalid_issuer_cert_32.pem +16 -16
  435. data/test/rubygems/invalid_key.pem +25 -25
  436. data/test/rubygems/invalid_signer_cert.pem +15 -15
  437. data/test/rubygems/invalid_signer_cert_32.pem +15 -15
  438. data/test/rubygems/invalidchild_cert.pem +15 -16
  439. data/test/rubygems/invalidchild_cert_32.pem +15 -16
  440. data/test/rubygems/invalidchild_key.pem +25 -25
  441. data/test/rubygems/package/tar_test_case.rb +52 -17
  442. data/test/rubygems/packages/Bluebie-legs-0.6.2.gem +0 -0
  443. data/test/rubygems/plugin/exception/rubygems_plugin.rb +1 -1
  444. data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +1 -1
  445. data/test/rubygems/private_key.pem +25 -25
  446. data/test/rubygems/public_cert.pem +16 -16
  447. data/test/rubygems/public_cert_32.pem +15 -15
  448. data/test/rubygems/public_key.pem +7 -7
  449. data/test/rubygems/rubygems_plugin.rb +2 -2
  450. data/test/rubygems/simple_gem.rb +1 -1
  451. data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +4 -4
  452. data/test/rubygems/test_bundled_ca.rb +11 -11
  453. data/test/rubygems/test_config.rb +5 -5
  454. data/test/rubygems/test_deprecate.rb +3 -3
  455. data/test/rubygems/test_exit.rb +17 -0
  456. data/test/rubygems/test_gem.rb +367 -757
  457. data/test/rubygems/test_gem_available_set.rb +21 -21
  458. data/test/rubygems/test_gem_bundler_version_finder.rb +27 -47
  459. data/test/rubygems/test_gem_command.rb +45 -45
  460. data/test/rubygems/test_gem_command_manager.rb +124 -27
  461. data/test/rubygems/test_gem_commands_build_command.rb +73 -63
  462. data/test/rubygems/test_gem_commands_cert_command.rb +105 -107
  463. data/test/rubygems/test_gem_commands_check_command.rb +4 -4
  464. data/test/rubygems/test_gem_commands_cleanup_command.rb +40 -40
  465. data/test/rubygems/test_gem_commands_contents_command.rb +28 -28
  466. data/test/rubygems/test_gem_commands_dependency_command.rb +36 -36
  467. data/test/rubygems/test_gem_commands_environment_command.rb +38 -14
  468. data/test/rubygems/test_gem_commands_exec_command.rb +851 -0
  469. data/test/rubygems/test_gem_commands_fetch_command.rb +159 -26
  470. data/test/rubygems/test_gem_commands_generate_index_command.rb +7 -7
  471. data/test/rubygems/test_gem_commands_help_command.rb +13 -13
  472. data/test/rubygems/test_gem_commands_info_command.rb +28 -2
  473. data/test/rubygems/test_gem_commands_install_command.rb +200 -132
  474. data/test/rubygems/test_gem_commands_list_command.rb +4 -4
  475. data/test/rubygems/test_gem_commands_lock_command.rb +10 -10
  476. data/test/rubygems/test_gem_commands_mirror.rb +2 -2
  477. data/test/rubygems/test_gem_commands_open_command.rb +5 -5
  478. data/test/rubygems/test_gem_commands_outdated_command.rb +9 -9
  479. data/test/rubygems/test_gem_commands_owner_command.rb +126 -45
  480. data/test/rubygems/test_gem_commands_pristine_command.rb +141 -92
  481. data/test/rubygems/test_gem_commands_push_command.rb +85 -59
  482. data/test/rubygems/test_gem_commands_query_command.rb +73 -73
  483. data/test/rubygems/test_gem_commands_search_command.rb +2 -2
  484. data/test/rubygems/test_gem_commands_server_command.rb +6 -48
  485. data/test/rubygems/test_gem_commands_setup_command.rb +169 -92
  486. data/test/rubygems/test_gem_commands_signin_command.rb +154 -26
  487. data/test/rubygems/test_gem_commands_signout_command.rb +3 -3
  488. data/test/rubygems/test_gem_commands_sources_command.rb +74 -25
  489. data/test/rubygems/test_gem_commands_specification_command.rb +32 -32
  490. data/test/rubygems/test_gem_commands_stale_command.rb +4 -4
  491. data/test/rubygems/test_gem_commands_uninstall_command.rb +99 -82
  492. data/test/rubygems/test_gem_commands_unpack_command.rb +31 -31
  493. data/test/rubygems/test_gem_commands_update_command.rb +202 -91
  494. data/test/rubygems/test_gem_commands_which_command.rb +6 -6
  495. data/test/rubygems/test_gem_commands_yank_command.rb +43 -43
  496. data/test/rubygems/test_gem_config_file.rb +93 -81
  497. data/test/rubygems/test_gem_dependency.rb +78 -80
  498. data/test/rubygems/test_gem_dependency_installer.rb +165 -165
  499. data/test/rubygems/test_gem_dependency_list.rb +47 -47
  500. data/test/rubygems/test_gem_dependency_resolution_error.rb +4 -4
  501. data/test/rubygems/test_gem_doctor.rb +26 -26
  502. data/test/rubygems/test_gem_ext_builder.rb +60 -62
  503. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore +1 -0
  504. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +8 -0
  505. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.lock +233 -0
  506. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.toml +10 -0
  507. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/src/lib.rs +27 -0
  508. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb +1 -0
  509. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/.gitignore +1 -0
  510. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +247 -0
  511. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +10 -0
  512. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +8 -0
  513. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +51 -0
  514. data/test/rubygems/test_gem_ext_cargo_builder.rb +166 -0
  515. data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +33 -0
  516. data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +60 -0
  517. data/test/rubygems/test_gem_ext_cmake_builder.rb +17 -15
  518. data/test/rubygems/test_gem_ext_configure_builder.rb +13 -13
  519. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +53 -50
  520. data/test/rubygems/test_gem_ext_rake_builder.rb +15 -15
  521. data/test/rubygems/test_gem_gem_runner.rb +13 -8
  522. data/test/rubygems/test_gem_gemcutter_utilities.rb +71 -65
  523. data/test/rubygems/test_gem_impossible_dependencies_error.rb +4 -4
  524. data/test/rubygems/test_gem_indexer.rb +90 -67
  525. data/test/rubygems/test_gem_install_update_options.rb +18 -18
  526. data/test/rubygems/test_gem_installer.rb +511 -327
  527. data/test/rubygems/test_gem_local_remote_options.rb +10 -10
  528. data/test/rubygems/test_gem_name_tuple.rb +4 -4
  529. data/test/rubygems/test_gem_package.rb +246 -236
  530. data/test/rubygems/test_gem_package_old.rb +13 -13
  531. data/test/rubygems/test_gem_package_tar_header.rb +47 -47
  532. data/test/rubygems/test_gem_package_tar_reader.rb +55 -8
  533. data/test/rubygems/test_gem_package_tar_reader_entry.rb +161 -16
  534. data/test/rubygems/test_gem_package_tar_writer.rb +76 -76
  535. data/test/rubygems/test_gem_package_task.rb +18 -18
  536. data/test/rubygems/test_gem_path_support.rb +15 -19
  537. data/test/rubygems/test_gem_platform.rb +335 -214
  538. data/test/rubygems/test_gem_rdoc.rb +14 -14
  539. data/test/rubygems/test_gem_remote_fetcher.rb +169 -154
  540. data/test/rubygems/test_gem_request.rb +65 -59
  541. data/test/rubygems/test_gem_request_connection_pools.rb +29 -29
  542. data/test/rubygems/test_gem_request_set.rb +100 -100
  543. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +209 -211
  544. data/test/rubygems/test_gem_request_set_lockfile.rb +86 -86
  545. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +58 -58
  546. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +62 -62
  547. data/test/rubygems/test_gem_requirement.rb +47 -42
  548. data/test/rubygems/test_gem_resolver.rb +173 -106
  549. data/test/rubygems/test_gem_resolver_activation_request.rb +6 -6
  550. data/test/rubygems/test_gem_resolver_api_set.rb +33 -33
  551. data/test/rubygems/test_gem_resolver_api_specification.rb +47 -47
  552. data/test/rubygems/test_gem_resolver_best_set.rb +22 -22
  553. data/test/rubygems/test_gem_resolver_composed_set.rb +1 -1
  554. data/test/rubygems/test_gem_resolver_conflict.rb +12 -12
  555. data/test/rubygems/test_gem_resolver_dependency_request.rb +15 -15
  556. data/test/rubygems/test_gem_resolver_git_set.rb +21 -21
  557. data/test/rubygems/test_gem_resolver_git_specification.rb +21 -21
  558. data/test/rubygems/test_gem_resolver_index_set.rb +12 -12
  559. data/test/rubygems/test_gem_resolver_index_specification.rb +16 -16
  560. data/test/rubygems/test_gem_resolver_installed_specification.rb +5 -5
  561. data/test/rubygems/test_gem_resolver_installer_set.rb +79 -35
  562. data/test/rubygems/test_gem_resolver_local_specification.rb +7 -7
  563. data/test/rubygems/test_gem_resolver_lock_set.rb +12 -12
  564. data/test/rubygems/test_gem_resolver_lock_specification.rb +17 -17
  565. data/test/rubygems/test_gem_resolver_requirement_list.rb +1 -1
  566. data/test/rubygems/test_gem_resolver_specification.rb +8 -8
  567. data/test/rubygems/test_gem_resolver_vendor_set.rb +6 -6
  568. data/test/rubygems/test_gem_resolver_vendor_specification.rb +10 -10
  569. data/test/rubygems/test_gem_security.rb +69 -69
  570. data/test/rubygems/test_gem_security_policy.rb +72 -72
  571. data/test/rubygems/test_gem_security_signer.rb +34 -34
  572. data/test/rubygems/test_gem_security_trust_dir.rb +6 -6
  573. data/test/rubygems/test_gem_silent_ui.rb +38 -32
  574. data/test/rubygems/test_gem_source.rb +44 -44
  575. data/test/rubygems/test_gem_source_fetch_problem.rb +9 -9
  576. data/test/rubygems/test_gem_source_git.rb +69 -62
  577. data/test/rubygems/test_gem_source_installed.rb +16 -16
  578. data/test/rubygems/test_gem_source_list.rb +5 -5
  579. data/test/rubygems/test_gem_source_local.rb +14 -14
  580. data/test/rubygems/test_gem_source_lock.rb +31 -31
  581. data/test/rubygems/test_gem_source_specific_file.rb +17 -17
  582. data/test/rubygems/test_gem_source_subpath_problem.rb +7 -7
  583. data/test/rubygems/test_gem_source_vendor.rb +13 -13
  584. data/test/rubygems/test_gem_spec_fetcher.rb +72 -72
  585. data/test/rubygems/test_gem_specification.rb +560 -493
  586. data/test/rubygems/test_gem_stream_ui.rb +20 -20
  587. data/test/rubygems/test_gem_stub_specification.rb +32 -48
  588. data/test/rubygems/test_gem_text.rb +7 -1
  589. data/test/rubygems/test_gem_uninstaller.rb +113 -113
  590. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +3 -3
  591. data/test/rubygems/test_gem_update_suggestion.rb +208 -0
  592. data/test/rubygems/test_gem_uri.rb +4 -4
  593. data/test/rubygems/test_gem_uri_formatter.rb +14 -14
  594. data/test/rubygems/test_gem_util.rb +23 -23
  595. data/test/rubygems/test_gem_validator.rb +8 -8
  596. data/test/rubygems/test_gem_version.rb +27 -16
  597. data/test/rubygems/test_gem_version_option.rb +15 -15
  598. data/test/rubygems/test_kernel.rb +42 -60
  599. data/test/rubygems/test_project_sanity.rb +2 -2
  600. data/test/rubygems/test_remote_fetch_error.rb +6 -6
  601. data/test/rubygems/test_require.rb +132 -174
  602. data/test/rubygems/test_rubygems.rb +42 -12
  603. data/test/rubygems/utilities.rb +59 -37
  604. data/test/rubygems/wrong_key_cert.pem +15 -15
  605. data/test/rubygems/wrong_key_cert_32.pem +15 -15
  606. data/test/test_changelog_generator.rb +1 -0
  607. metadata +97 -41
  608. data/bundler/lib/bundler/dep_proxy.rb +0 -55
  609. data/bundler/lib/bundler/gemdeps.rb +0 -29
  610. data/bundler/lib/bundler/psyched_yaml.rb +0 -22
  611. data/bundler/lib/bundler/templates/gems.rb +0 -8
  612. data/bundler/lib/bundler/templates/newgem/travis.yml.tt +0 -6
  613. data/bundler/lib/bundler/vendor/molinillo/LICENSE +0 -9
  614. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
  615. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +0 -88
  616. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +0 -36
  617. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +0 -66
  618. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +0 -62
  619. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +0 -63
  620. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +0 -61
  621. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +0 -126
  622. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +0 -46
  623. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +0 -36
  624. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +0 -164
  625. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +0 -255
  626. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +0 -143
  627. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +0 -6
  628. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +0 -112
  629. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +0 -67
  630. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +0 -839
  631. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +0 -46
  632. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +0 -58
  633. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -11
  634. data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +0 -154
  635. data/bundler/lib/bundler/version_ranges.rb +0 -122
  636. data/lib/rubygems/psych_additions.rb +0 -10
  637. data/lib/rubygems/server.rb +0 -882
  638. data/test/rubygems/bogussources.rb +0 -9
  639. data/test/rubygems/data/null-type.gemspec.rz +0 -0
  640. data/test/rubygems/test_gem_server.rb +0 -608
  641. /data/bundler/lib/bundler/templates/newgem/ext/newgem/{extconf.rb.tt → extconf-c.rb.tt} +0 -0
data/CONTRIBUTING.md CHANGED
@@ -13,7 +13,6 @@ contributors to follow to reduce the time it takes to get changes merged in.
13
13
  * Match indentation (two spaces)
14
14
  * Match coding style (run `rake rubocop`)
15
15
 
16
-
17
16
  3. If any new files are added or existing files removed in a commit or PR,
18
17
  please update the `Manifest.txt` accordingly. This can be done by running
19
18
  `rake update_manifest`
@@ -30,20 +29,74 @@ here: https://guides.rubygems.org/contributing/
30
29
 
31
30
  ## Getting Started
32
31
 
33
- $ rake setup
34
- $ rake test
32
+ ### Installing dependencies
33
+
34
+ rake setup
35
35
 
36
- > Optional you can configure git hooks with: rake git_hooks
36
+ > **NOTE**: If the above fails with permission related errors, you're most
37
+ > likely using a global Ruby installation (like the one packaged by your OS),
38
+ > which sets `GEM_HOME` to a location regular users can't write to. Consider
39
+ > using a Ruby version manager like [RVM](https://github.com/rvm/rvm),
40
+ > [rbenv](https://github.com/rbenv/rbenv),
41
+ > [chruby](https://github.com/postmodern/chruby) or [asdf](https://github.com/asdf-vm/asdf-ruby). These will install Ruby to a
42
+ > location regular users can write to, so you won't run into permission issues.
43
+ > Alternatively, consider setting `GEM_HOME` environment variable to a writable
44
+ > location with something like `export GEM_HOME=/tmp/rubygems.gems` and try
45
+ > again.
46
+
47
+ ### Manually trying your local changes
37
48
 
38
49
  To run commands like `gem install` from the repo:
39
50
 
40
- $ ruby -Ilib bin/gem install
51
+ ruby -Ilib bin/gem install
52
+
53
+ To run commands like `bundle install` from the repo:
54
+
55
+ ruby bundler/spec/support/bundle.rb install
56
+
57
+ ### Running Tests
58
+
59
+ To run the entire test suite you can use:
60
+
61
+ rake test
62
+
63
+ To run an individual test file located for example in `test/rubygems/test_deprecate.rb` you can use:
64
+
65
+ ruby -Ilib:test:bundler/lib test/rubygems/test_deprecate.rb
66
+
67
+ And to run an individual test method named `test_default` within a test file, you can use:
68
+
69
+ ruby -Ilib:test:bundler/lib test/rubygems/test_deprecate.rb -n /test_default/
70
+
71
+ ### Running bundler tests
41
72
 
42
- To run bundler test:
73
+ Everything needs to be run from the `bundler/` subfolder.
43
74
 
44
- $ cd bundler
45
- $ bin/rake spec:deps
46
- $ bin/rspec spec
75
+ To setup bundler tests:
76
+
77
+ rake spec:parallel_deps
78
+
79
+ To run the entire bundler test suite in parallel (it takes a while):
80
+
81
+ bin/parallel_rspec
82
+
83
+ There are some realworld higher level specs run in CI, but not run by `bin/parallel_rspec`. You can run those with:
84
+
85
+ bin/rake spec:realworld
86
+
87
+ To run an individual test file location for example in `spec/install/gems/standalone_spec.rb` you can use:
88
+
89
+ bin/rspec spec/install/gems/standalone_spec.rb
90
+
91
+ ### Checking code style
92
+
93
+ You can check compliance with our code style with
94
+
95
+ rake rubocop
96
+
97
+ Optionally you can configure git hooks with to check this before every commit with
98
+
99
+ rake git_hooks
47
100
 
48
101
  ## Issues
49
102
 
@@ -54,11 +107,14 @@ in the rubygems repository.
54
107
  ### Contribution
55
108
 
56
109
  These labels are made to guide contributors to issue/pull requests that they
57
- can help with. That are marked with a light gray `contribution: *`
58
-
59
- * **small** - The issue described here will take a small amount of work to
60
- resolve, and is a good option for a new contributor
61
- * **unclaimed** - The issue has not been claimed for work, and is awaiting
110
+ can help with.
111
+
112
+ * **good first issue** - The issue described here is considered a good option
113
+ for a new contributor. We encourage new contributors though to work on
114
+ whichever issue they find most interesting, the ones labeled here as just
115
+ estimated to have a reasonable level of complexity for someone new to the
116
+ code base.
117
+ * **help wanted** - The issue has not been claimed for work, and is awaiting
62
118
  willing volunteers!
63
119
 
64
120
 
@@ -108,7 +164,7 @@ where it is in the process from being submitted to being closed. These are
108
164
  listed in rough progression order from submitted to closed.
109
165
 
110
166
  * **triage** - This is an issue or pull request that needs to be properly
111
- labeled by by a maintainer.
167
+ labeled by a maintainer.
112
168
  * **confirmed** - This issue/pull request has been accepted as valid, but is
113
169
  not yet immediately ready for work.
114
170
  * **ready** - An issue that is available for collaboration. This issue
data/Manifest.txt CHANGED
@@ -18,6 +18,7 @@ bundler/bundler.gemspec
18
18
  bundler/exe/bundle
19
19
  bundler/exe/bundler
20
20
  bundler/lib/bundler.rb
21
+ bundler/lib/bundler/.document
21
22
  bundler/lib/bundler/build_metadata.rb
22
23
  bundler/lib/bundler/capistrano.rb
23
24
  bundler/lib/bundler/cli.rb
@@ -56,7 +57,6 @@ bundler/lib/bundler/compact_index_client/updater.rb
56
57
  bundler/lib/bundler/constants.rb
57
58
  bundler/lib/bundler/current_ruby.rb
58
59
  bundler/lib/bundler/definition.rb
59
- bundler/lib/bundler/dep_proxy.rb
60
60
  bundler/lib/bundler/dependency.rb
61
61
  bundler/lib/bundler/deployment.rb
62
62
  bundler/lib/bundler/deprecate.rb
@@ -73,12 +73,12 @@ bundler/lib/bundler/fetcher/compact_index.rb
73
73
  bundler/lib/bundler/fetcher/dependency.rb
74
74
  bundler/lib/bundler/fetcher/downloader.rb
75
75
  bundler/lib/bundler/fetcher/index.rb
76
+ bundler/lib/bundler/force_platform.rb
76
77
  bundler/lib/bundler/friendly_errors.rb
77
78
  bundler/lib/bundler/gem_helper.rb
78
79
  bundler/lib/bundler/gem_helpers.rb
79
80
  bundler/lib/bundler/gem_tasks.rb
80
81
  bundler/lib/bundler/gem_version_promoter.rb
81
- bundler/lib/bundler/gemdeps.rb
82
82
  bundler/lib/bundler/graph.rb
83
83
  bundler/lib/bundler/index.rb
84
84
  bundler/lib/bundler/injector.rb
@@ -103,12 +103,16 @@ bundler/lib/bundler/man/bundle-clean.1
103
103
  bundler/lib/bundler/man/bundle-clean.1.ronn
104
104
  bundler/lib/bundler/man/bundle-config.1
105
105
  bundler/lib/bundler/man/bundle-config.1.ronn
106
+ bundler/lib/bundler/man/bundle-console.1
107
+ bundler/lib/bundler/man/bundle-console.1.ronn
106
108
  bundler/lib/bundler/man/bundle-doctor.1
107
109
  bundler/lib/bundler/man/bundle-doctor.1.ronn
108
110
  bundler/lib/bundler/man/bundle-exec.1
109
111
  bundler/lib/bundler/man/bundle-exec.1.ronn
110
112
  bundler/lib/bundler/man/bundle-gem.1
111
113
  bundler/lib/bundler/man/bundle-gem.1.ronn
114
+ bundler/lib/bundler/man/bundle-help.1
115
+ bundler/lib/bundler/man/bundle-help.1.ronn
112
116
  bundler/lib/bundler/man/bundle-info.1
113
117
  bundler/lib/bundler/man/bundle-info.1.ronn
114
118
  bundler/lib/bundler/man/bundle-init.1
@@ -127,6 +131,8 @@ bundler/lib/bundler/man/bundle-outdated.1
127
131
  bundler/lib/bundler/man/bundle-outdated.1.ronn
128
132
  bundler/lib/bundler/man/bundle-platform.1
129
133
  bundler/lib/bundler/man/bundle-platform.1.ronn
134
+ bundler/lib/bundler/man/bundle-plugin.1
135
+ bundler/lib/bundler/man/bundle-plugin.1.ronn
130
136
  bundler/lib/bundler/man/bundle-pristine.1
131
137
  bundler/lib/bundler/man/bundle-pristine.1.ronn
132
138
  bundler/lib/bundler/man/bundle-remove.1
@@ -135,6 +141,8 @@ bundler/lib/bundler/man/bundle-show.1
135
141
  bundler/lib/bundler/man/bundle-show.1.ronn
136
142
  bundler/lib/bundler/man/bundle-update.1
137
143
  bundler/lib/bundler/man/bundle-update.1.ronn
144
+ bundler/lib/bundler/man/bundle-version.1
145
+ bundler/lib/bundler/man/bundle-version.1.ronn
138
146
  bundler/lib/bundler/man/bundle-viz.1
139
147
  bundler/lib/bundler/man/bundle-viz.1.ronn
140
148
  bundler/lib/bundler/man/bundle.1
@@ -142,7 +150,9 @@ bundler/lib/bundler/man/bundle.1.ronn
142
150
  bundler/lib/bundler/man/gemfile.5
143
151
  bundler/lib/bundler/man/gemfile.5.ronn
144
152
  bundler/lib/bundler/man/index.txt
153
+ bundler/lib/bundler/match_metadata.rb
145
154
  bundler/lib/bundler/match_platform.rb
155
+ bundler/lib/bundler/match_remote_metadata.rb
146
156
  bundler/lib/bundler/mirror.rb
147
157
  bundler/lib/bundler/plugin.rb
148
158
  bundler/lib/bundler/plugin/api.rb
@@ -155,9 +165,13 @@ bundler/lib/bundler/plugin/installer/git.rb
155
165
  bundler/lib/bundler/plugin/installer/rubygems.rb
156
166
  bundler/lib/bundler/plugin/source_list.rb
157
167
  bundler/lib/bundler/process_lock.rb
158
- bundler/lib/bundler/psyched_yaml.rb
159
168
  bundler/lib/bundler/remote_specification.rb
160
169
  bundler/lib/bundler/resolver.rb
170
+ bundler/lib/bundler/resolver/base.rb
171
+ bundler/lib/bundler/resolver/candidate.rb
172
+ bundler/lib/bundler/resolver/incompatibility.rb
173
+ bundler/lib/bundler/resolver/package.rb
174
+ bundler/lib/bundler/resolver/root.rb
161
175
  bundler/lib/bundler/resolver/spec_group.rb
162
176
  bundler/lib/bundler/retry.rb
163
177
  bundler/lib/bundler/ruby_dsl.rb
@@ -166,6 +180,7 @@ bundler/lib/bundler/rubygems_ext.rb
166
180
  bundler/lib/bundler/rubygems_gem_installer.rb
167
181
  bundler/lib/bundler/rubygems_integration.rb
168
182
  bundler/lib/bundler/runtime.rb
183
+ bundler/lib/bundler/self_manager.rb
169
184
  bundler/lib/bundler/settings.rb
170
185
  bundler/lib/bundler/settings/validator.rb
171
186
  bundler/lib/bundler/setup.rb
@@ -190,9 +205,9 @@ bundler/lib/bundler/templates/Executable
190
205
  bundler/lib/bundler/templates/Executable.bundler
191
206
  bundler/lib/bundler/templates/Executable.standalone
192
207
  bundler/lib/bundler/templates/Gemfile
193
- bundler/lib/bundler/templates/gems.rb
194
208
  bundler/lib/bundler/templates/newgem/CHANGELOG.md.tt
195
209
  bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt
210
+ bundler/lib/bundler/templates/newgem/Cargo.toml.tt
196
211
  bundler/lib/bundler/templates/newgem/Gemfile.tt
197
212
  bundler/lib/bundler/templates/newgem/LICENSE.txt.tt
198
213
  bundler/lib/bundler/templates/newgem/README.md.tt
@@ -201,9 +216,12 @@ bundler/lib/bundler/templates/newgem/bin/console.tt
201
216
  bundler/lib/bundler/templates/newgem/bin/setup.tt
202
217
  bundler/lib/bundler/templates/newgem/circleci/config.yml.tt
203
218
  bundler/lib/bundler/templates/newgem/exe/newgem.tt
204
- bundler/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt
219
+ bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt
220
+ bundler/lib/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt
221
+ bundler/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt
205
222
  bundler/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt
206
223
  bundler/lib/bundler/templates/newgem/ext/newgem/newgem.h.tt
224
+ bundler/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt
207
225
  bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt
208
226
  bundler/lib/bundler/templates/newgem/gitignore.tt
209
227
  bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt
@@ -212,18 +230,21 @@ bundler/lib/bundler/templates/newgem/lib/newgem/version.rb.tt
212
230
  bundler/lib/bundler/templates/newgem/newgem.gemspec.tt
213
231
  bundler/lib/bundler/templates/newgem/rspec.tt
214
232
  bundler/lib/bundler/templates/newgem/rubocop.yml.tt
233
+ bundler/lib/bundler/templates/newgem/sig/newgem.rbs.tt
215
234
  bundler/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt
216
235
  bundler/lib/bundler/templates/newgem/spec/spec_helper.rb.tt
217
- bundler/lib/bundler/templates/newgem/test/minitest/newgem_test.rb.tt
236
+ bundler/lib/bundler/templates/newgem/standard.yml.tt
218
237
  bundler/lib/bundler/templates/newgem/test/minitest/test_helper.rb.tt
238
+ bundler/lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt
219
239
  bundler/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt
220
240
  bundler/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt
221
- bundler/lib/bundler/templates/newgem/travis.yml.tt
222
241
  bundler/lib/bundler/ui.rb
223
242
  bundler/lib/bundler/ui/rg_proxy.rb
224
243
  bundler/lib/bundler/ui/shell.rb
225
244
  bundler/lib/bundler/ui/silent.rb
226
245
  bundler/lib/bundler/uri_credentials_filter.rb
246
+ bundler/lib/bundler/uri_normalizer.rb
247
+ bundler/lib/bundler/vendor/.document
227
248
  bundler/lib/bundler/vendor/connection_pool/LICENSE
228
249
  bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb
229
250
  bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb
@@ -231,32 +252,28 @@ bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb
231
252
  bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb
232
253
  bundler/lib/bundler/vendor/fileutils/LICENSE.txt
233
254
  bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb
234
- bundler/lib/bundler/vendor/molinillo/LICENSE
235
- bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb
236
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb
237
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb
238
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb
239
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb
240
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb
241
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
242
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb
243
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb
244
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb
245
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb
246
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb
247
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb
248
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb
249
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb
250
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb
251
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb
252
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb
253
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb
254
- bundler/lib/bundler/vendor/molinillo/lib/molinillo/state.rb
255
255
  bundler/lib/bundler/vendor/net-http-persistent/README.rdoc
256
256
  bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb
257
257
  bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb
258
258
  bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb
259
259
  bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb
260
+ bundler/lib/bundler/vendor/pub_grub/LICENSE.txt
261
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub.rb
262
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb
263
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb
264
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb
265
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb
266
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb
267
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb
268
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb
269
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb
270
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb
271
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb
272
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb
273
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb
274
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb
275
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb
276
+ bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb
260
277
  bundler/lib/bundler/vendor/thor/LICENSE.md
261
278
  bundler/lib/bundler/vendor/thor/lib/thor.rb
262
279
  bundler/lib/bundler/vendor/thor/lib/thor/actions.rb
@@ -289,7 +306,8 @@ bundler/lib/bundler/vendor/thor/lib/thor/shell/color.rb
289
306
  bundler/lib/bundler/vendor/thor/lib/thor/shell/html.rb
290
307
  bundler/lib/bundler/vendor/thor/lib/thor/util.rb
291
308
  bundler/lib/bundler/vendor/thor/lib/thor/version.rb
292
- bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb
309
+ bundler/lib/bundler/vendor/tsort/LICENSE.txt
310
+ bundler/lib/bundler/vendor/tsort/lib/tsort.rb
293
311
  bundler/lib/bundler/vendor/uri/LICENSE.txt
294
312
  bundler/lib/bundler/vendor/uri/lib/uri.rb
295
313
  bundler/lib/bundler/vendor/uri/lib/uri/common.rb
@@ -304,14 +322,15 @@ bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb
304
322
  bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb
305
323
  bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb
306
324
  bundler/lib/bundler/vendor/uri/lib/uri/version.rb
325
+ bundler/lib/bundler/vendor/uri/lib/uri/ws.rb
326
+ bundler/lib/bundler/vendor/uri/lib/uri/wss.rb
307
327
  bundler/lib/bundler/vendored_fileutils.rb
308
- bundler/lib/bundler/vendored_molinillo.rb
309
328
  bundler/lib/bundler/vendored_persistent.rb
329
+ bundler/lib/bundler/vendored_pub_grub.rb
310
330
  bundler/lib/bundler/vendored_thor.rb
311
- bundler/lib/bundler/vendored_tmpdir.rb
331
+ bundler/lib/bundler/vendored_tsort.rb
312
332
  bundler/lib/bundler/vendored_uri.rb
313
333
  bundler/lib/bundler/version.rb
314
- bundler/lib/bundler/version_ranges.rb
315
334
  bundler/lib/bundler/vlad.rb
316
335
  bundler/lib/bundler/worker.rb
317
336
  bundler/lib/bundler/yaml_serializer.rb
@@ -329,6 +348,7 @@ lib/rubygems/commands/cleanup_command.rb
329
348
  lib/rubygems/commands/contents_command.rb
330
349
  lib/rubygems/commands/dependency_command.rb
331
350
  lib/rubygems/commands/environment_command.rb
351
+ lib/rubygems/commands/exec_command.rb
332
352
  lib/rubygems/commands/fetch_command.rb
333
353
  lib/rubygems/commands/generate_index_command.rb
334
354
  lib/rubygems/commands/help_command.rb
@@ -374,6 +394,8 @@ lib/rubygems/exceptions.rb
374
394
  lib/rubygems/ext.rb
375
395
  lib/rubygems/ext/build_error.rb
376
396
  lib/rubygems/ext/builder.rb
397
+ lib/rubygems/ext/cargo_builder.rb
398
+ lib/rubygems/ext/cargo_builder/link_flag_converter.rb
377
399
  lib/rubygems/ext/cmake_builder.rb
378
400
  lib/rubygems/ext/configure_builder.rb
379
401
  lib/rubygems/ext/ext_conf_builder.rb
@@ -390,6 +412,18 @@ lib/rubygems/local_remote_options.rb
390
412
  lib/rubygems/mock_gem_ui.rb
391
413
  lib/rubygems/name_tuple.rb
392
414
  lib/rubygems/openssl.rb
415
+ lib/rubygems/optparse.rb
416
+ lib/rubygems/optparse/.document
417
+ lib/rubygems/optparse/COPYING
418
+ lib/rubygems/optparse/lib/optionparser.rb
419
+ lib/rubygems/optparse/lib/optparse.rb
420
+ lib/rubygems/optparse/lib/optparse/ac.rb
421
+ lib/rubygems/optparse/lib/optparse/date.rb
422
+ lib/rubygems/optparse/lib/optparse/kwargs.rb
423
+ lib/rubygems/optparse/lib/optparse/shellwords.rb
424
+ lib/rubygems/optparse/lib/optparse/time.rb
425
+ lib/rubygems/optparse/lib/optparse/uri.rb
426
+ lib/rubygems/optparse/lib/optparse/version.rb
393
427
  lib/rubygems/package.rb
394
428
  lib/rubygems/package/digest_io.rb
395
429
  lib/rubygems/package/file_source.rb
@@ -403,7 +437,6 @@ lib/rubygems/package/tar_writer.rb
403
437
  lib/rubygems/package_task.rb
404
438
  lib/rubygems/path_support.rb
405
439
  lib/rubygems/platform.rb
406
- lib/rubygems/psych_additions.rb
407
440
  lib/rubygems/psych_tree.rb
408
441
  lib/rubygems/query_utils.rb
409
442
  lib/rubygems/rdoc.rb
@@ -475,7 +508,6 @@ lib/rubygems/security/policy.rb
475
508
  lib/rubygems/security/signer.rb
476
509
  lib/rubygems/security/trust_dir.rb
477
510
  lib/rubygems/security_option.rb
478
- lib/rubygems/server.rb
479
511
  lib/rubygems/source.rb
480
512
  lib/rubygems/source/git.rb
481
513
  lib/rubygems/source/installed.rb
@@ -492,7 +524,13 @@ lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA.pem
492
524
  lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem
493
525
  lib/rubygems/stub_specification.rb
494
526
  lib/rubygems/text.rb
527
+ lib/rubygems/tsort.rb
528
+ lib/rubygems/tsort/.document
529
+ lib/rubygems/tsort/LICENSE.txt
530
+ lib/rubygems/tsort/lib/tsort.rb
495
531
  lib/rubygems/uninstaller.rb
532
+ lib/rubygems/unknown_command_spell_checker.rb
533
+ lib/rubygems/update_suggestion.rb
496
534
  lib/rubygems/uri.rb
497
535
  lib/rubygems/uri_formatter.rb
498
536
  lib/rubygems/user_interaction.rb
@@ -508,17 +546,18 @@ test/rubygems/alternate_cert.pem
508
546
  test/rubygems/alternate_cert_32.pem
509
547
  test/rubygems/alternate_key.pem
510
548
  test/rubygems/bad_rake.rb
511
- test/rubygems/bogussources.rb
549
+ test/rubygems/bundler_test_gem.rb
512
550
  test/rubygems/ca_cert.pem
513
551
  test/rubygems/child_cert.pem
514
552
  test/rubygems/child_cert_32.pem
515
553
  test/rubygems/child_key.pem
516
554
  test/rubygems/client.pem
555
+ test/rubygems/data/excon-0.7.7.gemspec.rz
517
556
  test/rubygems/data/gem-private_key.pem
518
557
  test/rubygems/data/gem-public_cert.pem
519
558
  test/rubygems/data/null-required-ruby-version.gemspec.rz
520
559
  test/rubygems/data/null-required-rubygems-version.gemspec.rz
521
- test/rubygems/data/null-type.gemspec.rz
560
+ test/rubygems/data/pry-0.4.7.gemspec.rz
522
561
  test/rubygems/encrypted_private_key.pem
523
562
  test/rubygems/expired_cert.pem
524
563
  test/rubygems/fake_certlib/openssl.rb
@@ -541,6 +580,7 @@ test/rubygems/invalidchild_cert.pem
541
580
  test/rubygems/invalidchild_cert_32.pem
542
581
  test/rubygems/invalidchild_key.pem
543
582
  test/rubygems/package/tar_test_case.rb
583
+ test/rubygems/packages/Bluebie-legs-0.6.2.gem
544
584
  test/rubygems/packages/ascii_binder-0.1.10.1.gem
545
585
  test/rubygems/packages/ill-formatted-platform-1.0.0.10.gem
546
586
  test/rubygems/plugin/exception/rubygems_plugin.rb
@@ -565,6 +605,7 @@ test/rubygems/ssl_key.pem
565
605
  test/rubygems/test_bundled_ca.rb
566
606
  test/rubygems/test_config.rb
567
607
  test/rubygems/test_deprecate.rb
608
+ test/rubygems/test_exit.rb
568
609
  test/rubygems/test_gem.rb
569
610
  test/rubygems/test_gem_available_set.rb
570
611
  test/rubygems/test_gem_bundler_version_finder.rb
@@ -577,6 +618,7 @@ test/rubygems/test_gem_commands_cleanup_command.rb
577
618
  test/rubygems/test_gem_commands_contents_command.rb
578
619
  test/rubygems/test_gem_commands_dependency_command.rb
579
620
  test/rubygems/test_gem_commands_environment_command.rb
621
+ test/rubygems/test_gem_commands_exec_command.rb
580
622
  test/rubygems/test_gem_commands_fetch_command.rb
581
623
  test/rubygems/test_gem_commands_generate_index_command.rb
582
624
  test/rubygems/test_gem_commands_help_command.rb
@@ -611,6 +653,20 @@ test/rubygems/test_gem_dependency_list.rb
611
653
  test/rubygems/test_gem_dependency_resolution_error.rb
612
654
  test/rubygems/test_gem_doctor.rb
613
655
  test/rubygems/test_gem_ext_builder.rb
656
+ test/rubygems/test_gem_ext_cargo_builder.rb
657
+ test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore
658
+ test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec
659
+ test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.lock
660
+ test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.toml
661
+ test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/src/lib.rs
662
+ test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb
663
+ test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/.gitignore
664
+ test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock
665
+ test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml
666
+ test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec
667
+ test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs
668
+ test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb
669
+ test/rubygems/test_gem_ext_cargo_builder_unit.rb
614
670
  test/rubygems/test_gem_ext_cmake_builder.rb
615
671
  test/rubygems/test_gem_ext_configure_builder.rb
616
672
  test/rubygems/test_gem_ext_ext_conf_builder.rb
@@ -667,7 +723,6 @@ test/rubygems/test_gem_security.rb
667
723
  test/rubygems/test_gem_security_policy.rb
668
724
  test/rubygems/test_gem_security_signer.rb
669
725
  test/rubygems/test_gem_security_trust_dir.rb
670
- test/rubygems/test_gem_server.rb
671
726
  test/rubygems/test_gem_silent_ui.rb
672
727
  test/rubygems/test_gem_source.rb
673
728
  test/rubygems/test_gem_source_fetch_problem.rb
@@ -686,6 +741,7 @@ test/rubygems/test_gem_stub_specification.rb
686
741
  test/rubygems/test_gem_text.rb
687
742
  test/rubygems/test_gem_uninstaller.rb
688
743
  test/rubygems/test_gem_unsatisfiable_dependency_error.rb
744
+ test/rubygems/test_gem_update_suggestion.rb
689
745
  test/rubygems/test_gem_uri.rb
690
746
  test/rubygems/test_gem_uri_formatter.rb
691
747
  test/rubygems/test_gem_util.rb
data/POLICIES.md CHANGED
@@ -42,10 +42,21 @@ at version 2.7, so when RubyGems 2.8 is released, it will only support Ruby
42
42
 
43
43
  ## Release Process
44
44
 
45
- Releases of new versions should follow these steps, to ensure the process is
46
- smooth and no needed steps are missed.
45
+ ### Permissions
47
46
 
48
- ### Steps for security releases
47
+ You'll need the following environment variables set to release RubyGems &
48
+ Bundler:
49
+
50
+ * AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY: to be able to push RubyGems zip
51
+ files to s3 so that they appear at RubyGems [download page].
52
+
53
+ * GITHUB_RELEASE_PAT: A [GitHub PAT] with repo permissions, in order to push
54
+ GitHub releases and to use the GitHub API for changelog generation.
55
+
56
+ [download page]: https://rubygems.org/pages/download
57
+ [GitHub PAT]: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token
58
+
59
+ ### Recommendations for security releases
49
60
 
50
61
  * Obtain CVE numbers as needed from HackerOne or Red Hat.
51
62
  * Agree on a release date with ruby-core, so patches can be backported to
@@ -54,17 +65,55 @@ smooth and no needed steps are missed.
54
65
  have to work on weekends.
55
66
  * Continue with the regular release process below.
56
67
 
68
+ ### Automatic changelog and backport generation
57
69
 
58
- ### Steps for all releases
70
+ PR labels and titles are used to automatically generate changelogs for patch and
71
+ minor releases.
59
72
 
60
- * Confirm all PRs that you want backported are properly tagged with `rubygems:
61
- <type>` labels at GitHub.
62
- * Run `rake prepare_stable_branch[<target_version>]`, create a PR and merge it
63
- to the stable branch once CI passes.
64
- * Create and push git tag
65
- * Create and push `rubygems-update` gem and tgz
66
- * Publish blog post
73
+ When releasing, a changelog generation script goes through all PRs that have
74
+ never made it into a release, and selects only the ones with specific labels as
75
+ detailed in the `.changelog.yml` and `bundler/.changelog.yml` files. Those
76
+ particular PRs get backported to the stable branch and included in the release
77
+ changelog.
67
78
 
79
+ If PRs don't have a proper label, they won't be backported to patch releases.
80
+
81
+ If you want a PR to be backported to a patch level release, but don't want to
82
+ include it in the changelog, you can use the special `rubygems: backport` and
83
+ `bundler: backport` labels. For example, this is useful when backporting a PR
84
+ generates conflicts that are solved by backporting another PR with no user
85
+ visible changes. You can use these special labels to also backport the other PR
86
+ and not get any conflicts.
87
+
88
+ ### Steps for patch releases
89
+
90
+ * Confirm all PRs that you want backported are properly tagged with `rubygems:
91
+ <type>` or `bundler: <type>` labels at GitHub.
92
+ * Run `rake prepare_release[<target_version>]`. This will create a PR to the
93
+ stable branch with the backports included in the release, and proper
94
+ changelogs and version bumps. It will also create a PR to merge release
95
+ changelogs into master.
96
+ * Once CI passes, merge the release PR, switch to the stable branch and pull
97
+ the PR just merged.
98
+ * Release `bundler` with `(cd bundler && bin/rake release)`.
99
+ * Release `rubygems` with `rake release`.
100
+
101
+ ### Steps for minor and major releases
102
+
103
+ * Confirm all PRs that you want listed in changelogs are properly tagged with
104
+ `rubygems: <type>` or `bundler: <type>` labels at GitHub.
105
+ * Run `rake prepare_release[<target_version>]`. This will create a new stable
106
+ branch off the master branch, and create a PR to it with the proper version
107
+ bumps and changelogs. It will also create a PR to merge release changelogs
108
+ into master.
109
+ * Replace the stable branch in the workflows with the new stable branch, and
110
+ push that change to the release PR.
111
+ * Replace version numbers with the next ".dev" version, and push that change
112
+ to the master PR.
113
+ * Once CI passes, merge the release PR, switch to the stable branch and pull
114
+ the PR just merged.
115
+ * Release `bundler` with `(cd bundler && bin/rake release)`.
116
+ * Release `rubygems` with `rake release`.
68
117
 
69
118
  ## Committer Access
70
119
 
@@ -79,8 +128,8 @@ permissions compromised or exposed.
79
128
 
80
129
  ## Changing These Policies
81
130
 
82
- These policies were set in order to reduce the burden of maintenance and to
83
- keep committers current with existing development and policies. RubyGems work
84
- is primarily volunteer-driven which limits the ability to provide long-term
85
- support. By joining [Ruby Together](https://rubytogether.org) you can help
86
- extend support for older RubyGems versions.
131
+ These policies were set in order to reduce the burden of maintenance and to keep
132
+ committers current with existing development and policies. RubyGems work is
133
+ primarily volunteer-driven which limits the ability to provide long-term
134
+ support. By joining [Ruby Central](https://rubycentral.org/#/portal/signup) you
135
+ can help extend support for older RubyGems versions.