rubygems-update 3.1.2 → 3.2.6

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 (562) hide show
  1. checksums.yaml +4 -4
  2. data/{History.txt → CHANGELOG.md} +756 -489
  3. data/CODE_OF_CONDUCT.md +55 -19
  4. data/CONTRIBUTING.md +25 -11
  5. data/Manifest.txt +75 -104
  6. data/POLICIES.md +6 -12
  7. data/README.md +5 -5
  8. data/Rakefile +64 -92
  9. data/bin/update_rubygems +1 -1
  10. data/bundler/CHANGELOG.md +1636 -1422
  11. data/bundler/README.md +6 -8
  12. data/bundler/UPGRADING.md +18 -32
  13. data/bundler/bundler.gemspec +4 -4
  14. data/bundler/exe/bundle +3 -0
  15. data/bundler/lib/bundler.rb +32 -8
  16. data/bundler/lib/bundler/build_metadata.rb +4 -12
  17. data/bundler/lib/bundler/cli.rb +55 -21
  18. data/bundler/lib/bundler/cli/add.rb +1 -1
  19. data/bundler/lib/bundler/cli/binstubs.rb +6 -2
  20. data/bundler/lib/bundler/cli/cache.rb +1 -7
  21. data/bundler/lib/bundler/cli/clean.rb +1 -1
  22. data/bundler/lib/bundler/cli/common.rb +14 -0
  23. data/bundler/lib/bundler/cli/console.rb +1 -1
  24. data/bundler/lib/bundler/cli/doctor.rb +1 -1
  25. data/bundler/lib/bundler/cli/exec.rb +4 -4
  26. data/bundler/lib/bundler/cli/fund.rb +36 -0
  27. data/bundler/lib/bundler/cli/gem.rb +86 -11
  28. data/bundler/lib/bundler/cli/info.rb +15 -4
  29. data/bundler/lib/bundler/cli/init.rb +2 -2
  30. data/bundler/lib/bundler/cli/inject.rb +1 -1
  31. data/bundler/lib/bundler/cli/install.rb +16 -13
  32. data/bundler/lib/bundler/cli/issue.rb +2 -2
  33. data/bundler/lib/bundler/cli/list.rb +12 -10
  34. data/bundler/lib/bundler/cli/outdated.rb +87 -66
  35. data/bundler/lib/bundler/cli/plugin.rb +10 -0
  36. data/bundler/lib/bundler/cli/pristine.rb +5 -0
  37. data/bundler/lib/bundler/cli/show.rb +1 -1
  38. data/bundler/lib/bundler/cli/update.rb +3 -1
  39. data/bundler/lib/bundler/compact_index_client.rb +1 -1
  40. data/bundler/lib/bundler/compact_index_client/cache.rb +6 -14
  41. data/bundler/lib/bundler/compact_index_client/gem_parser.rb +28 -0
  42. data/bundler/lib/bundler/compact_index_client/updater.rb +5 -13
  43. data/bundler/lib/bundler/definition.rb +66 -82
  44. data/bundler/lib/bundler/dep_proxy.rb +16 -9
  45. data/bundler/lib/bundler/dependency.rb +3 -10
  46. data/bundler/lib/bundler/dsl.rb +5 -9
  47. data/bundler/lib/bundler/endpoint_specification.rb +1 -1
  48. data/bundler/lib/bundler/env.rb +1 -1
  49. data/bundler/lib/bundler/environment_preserver.rb +26 -2
  50. data/bundler/lib/bundler/errors.rb +1 -0
  51. data/bundler/lib/bundler/feature_flag.rb +0 -3
  52. data/bundler/lib/bundler/fetcher.rb +4 -3
  53. data/bundler/lib/bundler/fetcher/base.rb +1 -1
  54. data/bundler/lib/bundler/fetcher/compact_index.rb +1 -1
  55. data/bundler/lib/bundler/fetcher/downloader.rb +1 -1
  56. data/bundler/lib/bundler/fetcher/index.rb +3 -4
  57. data/bundler/lib/bundler/friendly_errors.rb +22 -13
  58. data/bundler/lib/bundler/gem_helper.rb +33 -19
  59. data/bundler/lib/bundler/gem_helpers.rb +36 -25
  60. data/bundler/lib/bundler/gem_version_promoter.rb +4 -4
  61. data/bundler/lib/bundler/graph.rb +1 -1
  62. data/bundler/lib/bundler/index.rb +6 -2
  63. data/bundler/lib/bundler/injector.rb +22 -4
  64. data/bundler/lib/bundler/inline.rb +2 -2
  65. data/bundler/lib/bundler/installer.rb +35 -32
  66. data/bundler/lib/bundler/installer/gem_installer.rb +3 -3
  67. data/bundler/lib/bundler/installer/parallel_installer.rb +10 -10
  68. data/bundler/lib/bundler/installer/standalone.rb +2 -2
  69. data/bundler/lib/bundler/lazy_specification.rb +35 -11
  70. data/bundler/lib/bundler/lockfile_generator.rb +1 -1
  71. data/bundler/lib/bundler/lockfile_parser.rb +1 -1
  72. data/bundler/lib/bundler/man/.document +1 -0
  73. data/bundler/{man → lib/bundler/man}/bundle-add.1 +1 -1
  74. data/bundler/{man/bundle-add.ronn → lib/bundler/man/bundle-add.1.ronn} +0 -0
  75. data/bundler/{man → lib/bundler/man}/bundle-binstubs.1 +5 -3
  76. data/bundler/{man/bundle-binstubs.ronn → lib/bundler/man/bundle-binstubs.1.ronn} +2 -4
  77. data/bundler/{man → lib/bundler/man}/bundle-cache.1 +1 -1
  78. data/bundler/{man/bundle-cache.ronn → lib/bundler/man/bundle-cache.1.ronn} +0 -0
  79. data/bundler/{man → lib/bundler/man}/bundle-check.1 +1 -1
  80. data/bundler/{man/bundle-check.ronn → lib/bundler/man/bundle-check.1.ronn} +0 -0
  81. data/bundler/{man → lib/bundler/man}/bundle-clean.1 +1 -1
  82. data/bundler/{man/bundle-clean.ronn → lib/bundler/man/bundle-clean.1.ronn} +0 -0
  83. data/bundler/{man → lib/bundler/man}/bundle-config.1 +16 -25
  84. data/bundler/{man/bundle-config.ronn → lib/bundler/man/bundle-config.1.ronn} +19 -30
  85. data/bundler/{man → lib/bundler/man}/bundle-doctor.1 +1 -1
  86. data/bundler/{man/bundle-doctor.ronn → lib/bundler/man/bundle-doctor.1.ronn} +0 -0
  87. data/bundler/{man → lib/bundler/man}/bundle-exec.1 +1 -1
  88. data/bundler/{man/bundle-exec.ronn → lib/bundler/man/bundle-exec.1.ronn} +0 -0
  89. data/bundler/{man → lib/bundler/man}/bundle-gem.1 +25 -3
  90. data/bundler/{man/bundle-gem.ronn → lib/bundler/man/bundle-gem.1.ronn} +30 -7
  91. data/bundler/{man → lib/bundler/man}/bundle-info.1 +1 -1
  92. data/bundler/{man/bundle-info.ronn → lib/bundler/man/bundle-info.1.ronn} +0 -0
  93. data/bundler/{man → lib/bundler/man}/bundle-init.1 +1 -1
  94. data/bundler/{man/bundle-init.ronn → lib/bundler/man/bundle-init.1.ronn} +0 -0
  95. data/bundler/{man → lib/bundler/man}/bundle-inject.1 +1 -1
  96. data/bundler/{man/bundle-inject.ronn → lib/bundler/man/bundle-inject.1.ronn} +0 -0
  97. data/bundler/{man → lib/bundler/man}/bundle-install.1 +30 -3
  98. data/bundler/{man/bundle-install.ronn → lib/bundler/man/bundle-install.1.ronn} +25 -3
  99. data/bundler/{man → lib/bundler/man}/bundle-list.1 +7 -7
  100. data/bundler/{man/bundle-list.ronn → lib/bundler/man/bundle-list.1.ronn} +6 -6
  101. data/bundler/{man → lib/bundler/man}/bundle-lock.1 +1 -1
  102. data/bundler/{man/bundle-lock.ronn → lib/bundler/man/bundle-lock.1.ronn} +0 -0
  103. data/bundler/{man → lib/bundler/man}/bundle-open.1 +1 -1
  104. data/bundler/{man/bundle-open.ronn → lib/bundler/man/bundle-open.1.ronn} +0 -0
  105. data/bundler/{man → lib/bundler/man}/bundle-outdated.1 +1 -1
  106. data/bundler/{man/bundle-outdated.ronn → lib/bundler/man/bundle-outdated.1.ronn} +0 -0
  107. data/bundler/{man → lib/bundler/man}/bundle-platform.1 +1 -1
  108. data/bundler/{man/bundle-platform.ronn → lib/bundler/man/bundle-platform.1.ronn} +0 -0
  109. data/bundler/{man → lib/bundler/man}/bundle-pristine.1 +1 -1
  110. data/bundler/{man/bundle-pristine.ronn → lib/bundler/man/bundle-pristine.1.ronn} +0 -0
  111. data/bundler/{man → lib/bundler/man}/bundle-remove.1 +1 -1
  112. data/bundler/{man/bundle-remove.ronn → lib/bundler/man/bundle-remove.1.ronn} +0 -0
  113. data/bundler/{man → lib/bundler/man}/bundle-show.1 +1 -1
  114. data/bundler/{man/bundle-show.ronn → lib/bundler/man/bundle-show.1.ronn} +0 -0
  115. data/bundler/{man → lib/bundler/man}/bundle-update.1 +1 -1
  116. data/bundler/{man/bundle-update.ronn → lib/bundler/man/bundle-update.1.ronn} +0 -0
  117. data/bundler/{man → lib/bundler/man}/bundle-viz.1 +1 -1
  118. data/bundler/{man/bundle-viz.ronn → lib/bundler/man/bundle-viz.1.ronn} +0 -0
  119. data/bundler/{man → lib/bundler/man}/bundle.1 +1 -1
  120. data/bundler/{man/bundle.ronn → lib/bundler/man/bundle.1.ronn} +0 -0
  121. data/bundler/{man → lib/bundler/man}/gemfile.5 +4 -4
  122. data/bundler/{man → lib/bundler/man}/gemfile.5.ronn +4 -4
  123. data/bundler/{man → lib/bundler/man}/index.txt +0 -0
  124. data/bundler/lib/bundler/mirror.rb +2 -2
  125. data/bundler/lib/bundler/plugin.rb +30 -5
  126. data/bundler/lib/bundler/plugin/api/source.rb +1 -1
  127. data/bundler/lib/bundler/plugin/dsl.rb +1 -1
  128. data/bundler/lib/bundler/plugin/index.rb +10 -1
  129. data/bundler/lib/bundler/plugin/installer.rb +1 -1
  130. data/bundler/lib/bundler/plugin/installer/rubygems.rb +1 -1
  131. data/bundler/lib/bundler/plugin/source_list.rb +1 -1
  132. data/bundler/lib/bundler/psyched_yaml.rb +0 -15
  133. data/bundler/lib/bundler/remote_specification.rb +5 -2
  134. data/bundler/lib/bundler/resolver.rb +43 -19
  135. data/bundler/lib/bundler/resolver/spec_group.rb +39 -24
  136. data/bundler/lib/bundler/retry.rb +1 -1
  137. data/bundler/lib/bundler/ruby_version.rb +1 -1
  138. data/bundler/lib/bundler/rubygems_ext.rb +69 -9
  139. data/bundler/lib/bundler/rubygems_gem_installer.rb +3 -9
  140. data/bundler/lib/bundler/rubygems_integration.rb +26 -61
  141. data/bundler/lib/bundler/runtime.rb +4 -14
  142. data/bundler/lib/bundler/settings.rb +49 -46
  143. data/bundler/lib/bundler/shared_helpers.rb +2 -2
  144. data/bundler/lib/bundler/similarity_detector.rb +1 -1
  145. data/bundler/lib/bundler/source.rb +1 -1
  146. data/bundler/lib/bundler/source/git.rb +23 -21
  147. data/bundler/lib/bundler/source/git/git_proxy.rb +82 -80
  148. data/bundler/lib/bundler/source/path.rb +7 -3
  149. data/bundler/lib/bundler/source/path/installer.rb +10 -10
  150. data/bundler/lib/bundler/source/rubygems.rb +23 -17
  151. data/bundler/lib/bundler/source/rubygems/remote.rb +1 -1
  152. data/bundler/lib/bundler/source_list.rb +2 -2
  153. data/bundler/lib/bundler/spec_set.rb +8 -10
  154. data/bundler/lib/bundler/stub_specification.rb +17 -7
  155. data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +57 -47
  156. data/bundler/lib/bundler/templates/newgem/Gemfile.tt +9 -1
  157. data/bundler/lib/bundler/templates/newgem/README.md.tt +1 -2
  158. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +19 -5
  159. data/bundler/lib/bundler/templates/newgem/bin/console.tt +1 -0
  160. data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +13 -0
  161. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +2 -0
  162. data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +18 -0
  163. data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +9 -0
  164. data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +4 -2
  165. data/bundler/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +2 -0
  166. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +15 -7
  167. data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +13 -0
  168. data/bundler/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +2 -0
  169. data/bundler/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +2 -1
  170. data/bundler/lib/bundler/templates/newgem/test/{newgem_test.rb.tt → minitest/newgem_test.rb.tt} +2 -0
  171. data/bundler/lib/bundler/templates/newgem/test/{test_helper.rb.tt → minitest/test_helper.rb.tt} +2 -0
  172. data/bundler/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt +15 -0
  173. data/bundler/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt +6 -0
  174. data/bundler/lib/bundler/ui/shell.rb +5 -5
  175. data/bundler/lib/bundler/uri_credentials_filter.rb +3 -1
  176. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -1
  177. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +34 -1
  178. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +2 -2
  179. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +1 -1
  180. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +1 -1
  181. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +48 -46
  182. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +79 -208
  183. data/bundler/lib/bundler/vendor/thor/lib/thor.rb +0 -7
  184. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +2 -1
  185. data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +9 -0
  186. data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
  187. data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +154 -0
  188. data/bundler/lib/bundler/vendored_persistent.rb +0 -7
  189. data/bundler/lib/bundler/vendored_tmpdir.rb +4 -0
  190. data/bundler/lib/bundler/version.rb +1 -1
  191. data/bundler/lib/bundler/worker.rb +1 -1
  192. data/bundler/lib/bundler/yaml_serializer.rb +1 -1
  193. data/lib/rubygems.rb +138 -187
  194. data/lib/rubygems/available_set.rb +4 -6
  195. data/lib/rubygems/basic_specification.rb +12 -10
  196. data/lib/rubygems/bundler_version_finder.rb +14 -9
  197. data/lib/rubygems/command.rb +17 -17
  198. data/lib/rubygems/command_manager.rb +5 -6
  199. data/lib/rubygems/commands/build_command.rb +40 -20
  200. data/lib/rubygems/commands/cert_command.rb +2 -10
  201. data/lib/rubygems/commands/check_command.rb +0 -2
  202. data/lib/rubygems/commands/cleanup_command.rb +11 -7
  203. data/lib/rubygems/commands/contents_command.rb +4 -6
  204. data/lib/rubygems/commands/dependency_command.rb +6 -8
  205. data/lib/rubygems/commands/environment_command.rb +1 -3
  206. data/lib/rubygems/commands/fetch_command.rb +2 -4
  207. data/lib/rubygems/commands/generate_index_command.rb +0 -2
  208. data/lib/rubygems/commands/help_command.rb +4 -4
  209. data/lib/rubygems/commands/info_command.rb +8 -5
  210. data/lib/rubygems/commands/install_command.rb +3 -5
  211. data/lib/rubygems/commands/list_command.rb +8 -7
  212. data/lib/rubygems/commands/lock_command.rb +1 -3
  213. data/lib/rubygems/commands/mirror_command.rb +0 -2
  214. data/lib/rubygems/commands/open_command.rb +0 -4
  215. data/lib/rubygems/commands/outdated_command.rb +0 -2
  216. data/lib/rubygems/commands/owner_command.rb +9 -4
  217. data/lib/rubygems/commands/pristine_command.rb +11 -5
  218. data/lib/rubygems/commands/push_command.rb +10 -47
  219. data/lib/rubygems/commands/query_command.rb +14 -344
  220. data/lib/rubygems/commands/rdoc_command.rb +0 -2
  221. data/lib/rubygems/commands/search_command.rb +7 -7
  222. data/lib/rubygems/commands/server_command.rb +3 -1
  223. data/lib/rubygems/commands/setup_command.rb +101 -74
  224. data/lib/rubygems/commands/signin_command.rb +0 -2
  225. data/lib/rubygems/commands/signout_command.rb +0 -2
  226. data/lib/rubygems/commands/sources_command.rb +9 -7
  227. data/lib/rubygems/commands/specification_command.rb +8 -4
  228. data/lib/rubygems/commands/stale_command.rb +1 -3
  229. data/lib/rubygems/commands/uninstall_command.rb +2 -4
  230. data/lib/rubygems/commands/unpack_command.rb +1 -3
  231. data/lib/rubygems/commands/update_command.rb +59 -14
  232. data/lib/rubygems/commands/which_command.rb +0 -2
  233. data/lib/rubygems/commands/yank_command.rb +4 -7
  234. data/lib/rubygems/config_file.rb +11 -4
  235. data/lib/rubygems/core_ext/kernel_require.rb +29 -36
  236. data/lib/rubygems/core_ext/kernel_warn.rb +12 -13
  237. data/lib/rubygems/defaults.rb +101 -7
  238. data/lib/rubygems/dependency.rb +3 -8
  239. data/lib/rubygems/dependency_installer.rb +6 -78
  240. data/lib/rubygems/dependency_list.rb +7 -9
  241. data/lib/rubygems/deprecate.rb +46 -1
  242. data/lib/rubygems/doctor.rb +4 -4
  243. data/lib/rubygems/errors.rb +3 -14
  244. data/lib/rubygems/exceptions.rb +2 -33
  245. data/lib/rubygems/ext.rb +6 -6
  246. data/lib/rubygems/ext/build_error.rb +2 -0
  247. data/lib/rubygems/ext/builder.rb +21 -39
  248. data/lib/rubygems/ext/cmake_builder.rb +6 -9
  249. data/lib/rubygems/ext/configure_builder.rb +5 -8
  250. data/lib/rubygems/ext/ext_conf_builder.rb +21 -19
  251. data/lib/rubygems/ext/rake_builder.rb +4 -6
  252. data/lib/rubygems/gem_runner.rb +3 -10
  253. data/lib/rubygems/gemcutter_utilities.rb +102 -21
  254. data/lib/rubygems/indexer.rb +1 -22
  255. data/lib/rubygems/install_update_options.rb +7 -7
  256. data/lib/rubygems/installer.rb +59 -80
  257. data/lib/rubygems/installer_test_case.rb +25 -11
  258. data/lib/rubygems/installer_uninstaller_utils.rb +24 -0
  259. data/lib/rubygems/local_remote_options.rb +1 -1
  260. data/lib/rubygems/mock_gem_ui.rb +0 -6
  261. data/lib/rubygems/name_tuple.rb +3 -7
  262. data/lib/rubygems/openssl.rb +7 -0
  263. data/lib/rubygems/package.rb +14 -25
  264. data/lib/rubygems/package/digest_io.rb +0 -2
  265. data/lib/rubygems/package/file_source.rb +0 -2
  266. data/lib/rubygems/package/io_source.rb +0 -2
  267. data/lib/rubygems/package/old.rb +1 -3
  268. data/lib/rubygems/package/tar_header.rb +4 -6
  269. data/lib/rubygems/package/tar_reader.rb +0 -3
  270. data/lib/rubygems/package/tar_reader/entry.rb +0 -3
  271. data/lib/rubygems/package/tar_test_case.rb +2 -4
  272. data/lib/rubygems/package/tar_writer.rb +2 -12
  273. data/lib/rubygems/package_task.rb +1 -7
  274. data/lib/rubygems/path_support.rb +1 -3
  275. data/lib/rubygems/platform.rb +21 -16
  276. data/lib/rubygems/psych_tree.rb +0 -2
  277. data/lib/rubygems/query_utils.rb +353 -0
  278. data/lib/rubygems/rdoc.rb +0 -12
  279. data/lib/rubygems/remote_fetcher.rb +14 -29
  280. data/lib/rubygems/request.rb +4 -11
  281. data/lib/rubygems/request/connection_pools.rb +1 -5
  282. data/lib/rubygems/request/http_pool.rb +0 -2
  283. data/lib/rubygems/request/https_pool.rb +0 -2
  284. data/lib/rubygems/request_set.rb +7 -20
  285. data/lib/rubygems/request_set/gem_dependency_api.rb +6 -8
  286. data/lib/rubygems/request_set/lockfile.rb +8 -12
  287. data/lib/rubygems/request_set/lockfile/parser.rb +0 -2
  288. data/lib/rubygems/request_set/lockfile/tokenizer.rb +1 -3
  289. data/lib/rubygems/requirement.rb +21 -22
  290. data/lib/rubygems/resolver.rb +14 -12
  291. data/lib/rubygems/resolver/activation_request.rb +9 -3
  292. data/lib/rubygems/resolver/api_set.rb +31 -24
  293. data/lib/rubygems/resolver/api_set/gem_parser.rb +20 -0
  294. data/lib/rubygems/resolver/api_specification.rb +24 -10
  295. data/lib/rubygems/resolver/best_set.rb +2 -4
  296. data/lib/rubygems/resolver/composed_set.rb +3 -5
  297. data/lib/rubygems/resolver/conflict.rb +2 -4
  298. data/lib/rubygems/resolver/current_set.rb +0 -2
  299. data/lib/rubygems/resolver/dependency_request.rb +1 -3
  300. data/lib/rubygems/resolver/git_set.rb +0 -2
  301. data/lib/rubygems/resolver/git_specification.rb +0 -2
  302. data/lib/rubygems/resolver/index_set.rb +1 -3
  303. data/lib/rubygems/resolver/index_specification.rb +29 -2
  304. data/lib/rubygems/resolver/installed_specification.rb +0 -2
  305. data/lib/rubygems/resolver/installer_set.rb +60 -13
  306. data/lib/rubygems/resolver/local_specification.rb +0 -2
  307. data/lib/rubygems/resolver/lock_set.rb +2 -4
  308. data/lib/rubygems/resolver/lock_specification.rb +0 -2
  309. data/lib/rubygems/resolver/molinillo/lib/molinillo.rb +6 -5
  310. data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb +7 -0
  311. data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb +1 -0
  312. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +39 -5
  313. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/action.rb +1 -0
  314. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +2 -1
  315. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +2 -1
  316. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +2 -1
  317. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +2 -1
  318. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb +7 -6
  319. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/set_payload.rb +2 -1
  320. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/tag.rb +4 -3
  321. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb +43 -10
  322. data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +75 -7
  323. data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +2 -1
  324. data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb +1 -0
  325. data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb +3 -1
  326. data/lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb +506 -165
  327. data/lib/rubygems/resolver/molinillo/lib/molinillo/resolver.rb +3 -2
  328. data/lib/rubygems/resolver/molinillo/lib/molinillo/state.rb +8 -4
  329. data/lib/rubygems/resolver/requirement_list.rb +0 -2
  330. data/lib/rubygems/resolver/set.rb +0 -2
  331. data/lib/rubygems/resolver/source_set.rb +0 -2
  332. data/lib/rubygems/resolver/spec_specification.rb +14 -2
  333. data/lib/rubygems/resolver/specification.rb +13 -3
  334. data/lib/rubygems/resolver/stats.rb +0 -2
  335. data/lib/rubygems/resolver/vendor_set.rb +0 -2
  336. data/lib/rubygems/resolver/vendor_specification.rb +0 -2
  337. data/lib/rubygems/s3_uri_signer.rb +2 -8
  338. data/lib/rubygems/safe_yaml.rb +4 -4
  339. data/lib/rubygems/security.rb +27 -34
  340. data/lib/rubygems/security/policy.rb +4 -8
  341. data/lib/rubygems/security/signer.rb +5 -7
  342. data/lib/rubygems/security/trust_dir.rb +1 -3
  343. data/lib/rubygems/server.rb +16 -13
  344. data/lib/rubygems/source.rb +23 -12
  345. data/lib/rubygems/source/git.rb +7 -8
  346. data/lib/rubygems/source/installed.rb +0 -2
  347. data/lib/rubygems/source/local.rb +2 -4
  348. data/lib/rubygems/source/lock.rb +0 -2
  349. data/lib/rubygems/source/specific_file.rb +0 -2
  350. data/lib/rubygems/source/vendor.rb +0 -2
  351. data/lib/rubygems/source_list.rb +4 -7
  352. data/lib/rubygems/spec_fetcher.rb +19 -18
  353. data/lib/rubygems/specification.rb +122 -131
  354. data/lib/rubygems/specification_policy.rb +88 -30
  355. data/lib/rubygems/ssl_certs/{index.rubygems.org → rubygems.org}/GlobalSignRootCA.pem +0 -0
  356. data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem +21 -0
  357. data/lib/rubygems/stub_specification.rb +1 -5
  358. data/lib/rubygems/syck_hack.rb +0 -2
  359. data/lib/rubygems/test_case.rb +120 -134
  360. data/lib/rubygems/test_utilities.rb +12 -19
  361. data/lib/rubygems/uninstaller.rb +35 -16
  362. data/lib/rubygems/uri_formatter.rb +2 -3
  363. data/lib/rubygems/uri_parser.rb +0 -2
  364. data/lib/rubygems/user_interaction.rb +1 -26
  365. data/lib/rubygems/util.rb +15 -3
  366. data/lib/rubygems/util/licenses.rb +4 -6
  367. data/lib/rubygems/util/list.rb +0 -2
  368. data/lib/rubygems/validator.rb +1 -3
  369. data/lib/rubygems/version.rb +5 -7
  370. data/lib/rubygems/version_option.rb +6 -0
  371. data/rubygems-update.gemspec +3 -3
  372. data/setup.rb +2 -7
  373. data/test/rubygems/data/null-required-rubygems-version.gemspec.rz +0 -0
  374. data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -2
  375. data/test/rubygems/rubygems/commands/crash_command.rb +0 -2
  376. data/test/rubygems/rubygems_plugin.rb +0 -2
  377. data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -2
  378. data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +12 -0
  379. data/test/rubygems/test_bundled_ca.rb +42 -45
  380. data/test/rubygems/test_config.rb +0 -2
  381. data/test/rubygems/test_deprecate.rb +40 -7
  382. data/test/rubygems/test_gem.rb +156 -99
  383. data/test/rubygems/test_gem_available_set.rb +3 -5
  384. data/test/rubygems/test_gem_bundler_version_finder.rb +19 -3
  385. data/test/rubygems/test_gem_command.rb +24 -7
  386. data/test/rubygems/test_gem_command_manager.rb +36 -5
  387. data/test/rubygems/test_gem_commands_build_command.rb +250 -15
  388. data/test/rubygems/test_gem_commands_cert_command.rb +4 -6
  389. data/test/rubygems/test_gem_commands_check_command.rb +0 -2
  390. data/test/rubygems/test_gem_commands_cleanup_command.rb +14 -5
  391. data/test/rubygems/test_gem_commands_contents_command.rb +50 -19
  392. data/test/rubygems/test_gem_commands_dependency_command.rb +0 -2
  393. data/test/rubygems/test_gem_commands_environment_command.rb +21 -23
  394. data/test/rubygems/test_gem_commands_fetch_command.rb +0 -2
  395. data/test/rubygems/test_gem_commands_generate_index_command.rb +1 -7
  396. data/test/rubygems/test_gem_commands_help_command.rb +15 -4
  397. data/test/rubygems/test_gem_commands_info_command.rb +6 -8
  398. data/test/rubygems/test_gem_commands_install_command.rb +163 -34
  399. data/test/rubygems/test_gem_commands_list_command.rb +0 -2
  400. data/test/rubygems/test_gem_commands_lock_command.rb +0 -2
  401. data/test/rubygems/test_gem_commands_mirror.rb +1 -3
  402. data/test/rubygems/test_gem_commands_open_command.rb +4 -6
  403. data/test/rubygems/test_gem_commands_outdated_command.rb +0 -2
  404. data/test/rubygems/test_gem_commands_owner_command.rb +59 -5
  405. data/test/rubygems/test_gem_commands_pristine_command.rb +43 -12
  406. data/test/rubygems/test_gem_commands_push_command.rb +77 -9
  407. data/test/rubygems/test_gem_commands_query_command.rb +12 -12
  408. data/test/rubygems/test_gem_commands_search_command.rb +0 -2
  409. data/test/rubygems/test_gem_commands_server_command.rb +0 -2
  410. data/test/rubygems/test_gem_commands_setup_command.rb +160 -135
  411. data/test/rubygems/test_gem_commands_signin_command.rb +33 -9
  412. data/test/rubygems/test_gem_commands_signout_command.rb +0 -7
  413. data/test/rubygems/test_gem_commands_sources_command.rb +99 -3
  414. data/test/rubygems/test_gem_commands_specification_command.rb +46 -20
  415. data/test/rubygems/test_gem_commands_stale_command.rb +0 -2
  416. data/test/rubygems/test_gem_commands_uninstall_command.rb +2 -3
  417. data/test/rubygems/test_gem_commands_unpack_command.rb +0 -2
  418. data/test/rubygems/test_gem_commands_update_command.rb +116 -7
  419. data/test/rubygems/test_gem_commands_which_command.rb +3 -5
  420. data/test/rubygems/test_gem_commands_yank_command.rb +44 -8
  421. data/test/rubygems/test_gem_config_file.rb +7 -12
  422. data/test/rubygems/test_gem_dependency.rb +0 -2
  423. data/test/rubygems/test_gem_dependency_installer.rb +116 -239
  424. data/test/rubygems/test_gem_dependency_list.rb +10 -12
  425. data/test/rubygems/test_gem_dependency_resolution_error.rb +1 -3
  426. data/test/rubygems/test_gem_doctor.rb +28 -2
  427. data/test/rubygems/test_gem_ext_builder.rb +50 -47
  428. data/test/rubygems/test_gem_ext_cmake_builder.rb +16 -25
  429. data/test/rubygems/test_gem_ext_configure_builder.rb +6 -22
  430. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +9 -29
  431. data/test/rubygems/test_gem_ext_rake_builder.rb +39 -24
  432. data/test/rubygems/test_gem_gem_runner.rb +44 -1
  433. data/test/rubygems/test_gem_gemcutter_utilities.rb +8 -5
  434. data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -2
  435. data/test/rubygems/test_gem_indexer.rb +9 -15
  436. data/test/rubygems/test_gem_install_update_options.rb +14 -4
  437. data/test/rubygems/test_gem_installer.rb +258 -115
  438. data/test/rubygems/test_gem_local_remote_options.rb +0 -2
  439. data/test/rubygems/test_gem_name_tuple.rb +0 -2
  440. data/test/rubygems/test_gem_package.rb +41 -39
  441. data/test/rubygems/test_gem_package_old.rb +4 -6
  442. data/test/rubygems/test_gem_package_tar_header.rb +18 -1
  443. data/test/rubygems/test_gem_package_tar_reader.rb +0 -2
  444. data/test/rubygems/test_gem_package_tar_reader_entry.rb +0 -2
  445. data/test/rubygems/test_gem_package_tar_writer.rb +9 -6
  446. data/test/rubygems/test_gem_package_task.rb +46 -13
  447. data/test/rubygems/test_gem_path_support.rb +0 -2
  448. data/test/rubygems/test_gem_platform.rb +71 -6
  449. data/test/rubygems/test_gem_rdoc.rb +0 -2
  450. data/test/rubygems/test_gem_remote_fetcher.rb +169 -212
  451. data/test/rubygems/test_gem_request.rb +13 -17
  452. data/test/rubygems/test_gem_request_connection_pools.rb +0 -4
  453. data/test/rubygems/test_gem_request_set.rb +72 -22
  454. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +3 -5
  455. data/test/rubygems/test_gem_request_set_lockfile.rb +4 -6
  456. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +9 -11
  457. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +118 -120
  458. data/test/rubygems/test_gem_requirement.rb +43 -3
  459. data/test/rubygems/test_gem_resolver.rb +6 -8
  460. data/test/rubygems/test_gem_resolver_activation_request.rb +0 -2
  461. data/test/rubygems/test_gem_resolver_api_set.rb +60 -59
  462. data/test/rubygems/test_gem_resolver_api_specification.rb +3 -5
  463. data/test/rubygems/test_gem_resolver_best_set.rb +27 -6
  464. data/test/rubygems/test_gem_resolver_composed_set.rb +0 -2
  465. data/test/rubygems/test_gem_resolver_conflict.rb +1 -3
  466. data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -2
  467. data/test/rubygems/test_gem_resolver_git_set.rb +0 -2
  468. data/test/rubygems/test_gem_resolver_git_specification.rb +0 -2
  469. data/test/rubygems/test_gem_resolver_index_set.rb +2 -4
  470. data/test/rubygems/test_gem_resolver_index_specification.rb +0 -2
  471. data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -2
  472. data/test/rubygems/test_gem_resolver_installer_set.rb +7 -9
  473. data/test/rubygems/test_gem_resolver_local_specification.rb +0 -2
  474. data/test/rubygems/test_gem_resolver_lock_set.rb +3 -5
  475. data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -2
  476. data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -2
  477. data/test/rubygems/test_gem_resolver_specification.rb +0 -4
  478. data/test/rubygems/test_gem_resolver_vendor_set.rb +1 -3
  479. data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -2
  480. data/test/rubygems/test_gem_security.rb +22 -24
  481. data/test/rubygems/test_gem_security_policy.rb +7 -12
  482. data/test/rubygems/test_gem_security_signer.rb +10 -12
  483. data/test/rubygems/test_gem_security_trust_dir.rb +4 -6
  484. data/test/rubygems/test_gem_server.rb +10 -14
  485. data/test/rubygems/test_gem_silent_ui.rb +0 -2
  486. data/test/rubygems/test_gem_source.rb +19 -18
  487. data/test/rubygems/test_gem_source_fetch_problem.rb +0 -2
  488. data/test/rubygems/test_gem_source_git.rb +12 -13
  489. data/test/rubygems/test_gem_source_installed.rb +7 -9
  490. data/test/rubygems/test_gem_source_list.rb +1 -2
  491. data/test/rubygems/test_gem_source_local.rb +8 -10
  492. data/test/rubygems/test_gem_source_lock.rb +10 -12
  493. data/test/rubygems/test_gem_source_specific_file.rb +7 -9
  494. data/test/rubygems/test_gem_source_subpath_problem.rb +49 -0
  495. data/test/rubygems/test_gem_source_vendor.rb +7 -9
  496. data/test/rubygems/test_gem_spec_fetcher.rb +11 -4
  497. data/test/rubygems/test_gem_specification.rb +188 -131
  498. data/test/rubygems/test_gem_stream_ui.rb +3 -3
  499. data/test/rubygems/test_gem_stub_specification.rb +4 -7
  500. data/test/rubygems/test_gem_text.rb +1 -3
  501. data/test/rubygems/test_gem_uninstaller.rb +134 -12
  502. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -2
  503. data/test/rubygems/test_gem_uri_formatter.rb +0 -2
  504. data/test/rubygems/test_gem_util.rb +7 -7
  505. data/test/rubygems/test_gem_validator.rb +1 -3
  506. data/test/rubygems/test_gem_version.rb +1 -3
  507. data/test/rubygems/test_gem_version_option.rb +1 -3
  508. data/test/rubygems/test_kernel.rb +25 -10
  509. data/test/rubygems/test_project_sanity.rb +7 -2
  510. data/test/rubygems/test_remote_fetch_error.rb +0 -2
  511. data/test/rubygems/test_require.rb +291 -56
  512. data/test/test_changelog_generator.rb +17 -0
  513. metadata +79 -133
  514. data/.bundle/config +0 -2
  515. data/.rubocop.yml +0 -91
  516. data/Gemfile +0 -8
  517. data/Gemfile.lock +0 -43
  518. data/bundler/CODE_OF_CONDUCT.md +0 -136
  519. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +0 -26
  520. data/bundler/man/bundle-add.1.txt +0 -58
  521. data/bundler/man/bundle-binstubs.1.txt +0 -48
  522. data/bundler/man/bundle-cache.1.txt +0 -78
  523. data/bundler/man/bundle-check.1.txt +0 -33
  524. data/bundler/man/bundle-clean.1.txt +0 -26
  525. data/bundler/man/bundle-config.1.txt +0 -528
  526. data/bundler/man/bundle-doctor.1.txt +0 -44
  527. data/bundler/man/bundle-exec.1.txt +0 -178
  528. data/bundler/man/bundle-gem.1.txt +0 -91
  529. data/bundler/man/bundle-info.1.txt +0 -21
  530. data/bundler/man/bundle-init.1.txt +0 -34
  531. data/bundler/man/bundle-inject.1.txt +0 -32
  532. data/bundler/man/bundle-install.1.txt +0 -401
  533. data/bundler/man/bundle-list.1.txt +0 -43
  534. data/bundler/man/bundle-lock.1.txt +0 -93
  535. data/bundler/man/bundle-open.1.txt +0 -29
  536. data/bundler/man/bundle-outdated.1.txt +0 -131
  537. data/bundler/man/bundle-platform.1.txt +0 -57
  538. data/bundler/man/bundle-pristine.1.txt +0 -44
  539. data/bundler/man/bundle-remove.1.txt +0 -34
  540. data/bundler/man/bundle-show.1.txt +0 -27
  541. data/bundler/man/bundle-update.1.txt +0 -390
  542. data/bundler/man/bundle-viz.1.txt +0 -39
  543. data/bundler/man/bundle.1.txt +0 -116
  544. data/bundler/man/gemfile.5.txt +0 -649
  545. data/lib/rubygems/source_local.rb +0 -7
  546. data/lib/rubygems/source_specific_file.rb +0 -6
  547. data/lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -23
  548. data/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -25
  549. data/lib/ubygems.rb +0 -14
  550. data/tmp/.keep +0 -0
  551. data/util/CL2notes +0 -55
  552. data/util/bisect +0 -10
  553. data/util/ci.sh +0 -62
  554. data/util/cops/deprecations.rb +0 -52
  555. data/util/create_certs.rb +0 -171
  556. data/util/create_certs.sh +0 -27
  557. data/util/create_encrypted_key.rb +0 -16
  558. data/util/generate_spdx_license_list.rb +0 -63
  559. data/util/patch_with_prs.rb +0 -77
  560. data/util/rubocop +0 -8
  561. data/util/update_bundled_ca_certificates.rb +0 -139
  562. data/util/update_changelog.rb +0 -67
@@ -4,12 +4,11 @@ require 'rubygems/request'
4
4
  require 'ostruct'
5
5
  require 'base64'
6
6
 
7
- unless defined?(OpenSSL::SSL)
7
+ unless Gem::HAVE_OPENSSL
8
8
  warn 'Skipping Gem::Request tests. openssl not found.'
9
9
  end
10
10
 
11
11
  class TestGemRequest < Gem::TestCase
12
-
13
12
  CA_CERT_FILE = cert_path 'ca'
14
13
  CHILD_CERT = load_cert 'child'
15
14
  EXPIRED_CERT = load_cert 'expired'
@@ -251,11 +250,11 @@ class TestGemRequest < Gem::TestCase
251
250
  def test_user_agent
252
251
  ua = make_request(@uri, nil, nil, nil).user_agent
253
252
 
254
- assert_match %r%^RubyGems/\S+ \S+ Ruby/\S+ \(.*?\)%, ua
255
- assert_match %r%RubyGems/#{Regexp.escape Gem::VERSION}%, ua
256
- assert_match %r% #{Regexp.escape Gem::Platform.local.to_s} %, ua
257
- assert_match %r%Ruby/#{Regexp.escape RUBY_VERSION}%, ua
258
- assert_match %r%\(#{Regexp.escape RUBY_RELEASE_DATE} %, ua
253
+ assert_match %r{^RubyGems/\S+ \S+ Ruby/\S+ \(.*?\)}, ua
254
+ assert_match %r{RubyGems/#{Regexp.escape Gem::VERSION}}, ua
255
+ assert_match %r{ #{Regexp.escape Gem::Platform.local.to_s} }, ua
256
+ assert_match %r{Ruby/#{Regexp.escape RUBY_VERSION}}, ua
257
+ assert_match %r{\(#{Regexp.escape RUBY_RELEASE_DATE} }, ua
259
258
  end
260
259
 
261
260
  def test_user_agent_engine
@@ -266,7 +265,7 @@ class TestGemRequest < Gem::TestCase
266
265
 
267
266
  ua = make_request(@uri, nil, nil, nil).user_agent
268
267
 
269
- assert_match %r%\) vroom%, ua
268
+ assert_match %r{\) vroom}, ua
270
269
  ensure
271
270
  util_restore_version
272
271
  end
@@ -279,7 +278,7 @@ class TestGemRequest < Gem::TestCase
279
278
 
280
279
  ua = make_request(@uri, nil, nil, nil).user_agent
281
280
 
282
- assert_match %r%\)%, ua
281
+ assert_match %r{\)}, ua
283
282
  ensure
284
283
  util_restore_version
285
284
  end
@@ -292,7 +291,7 @@ class TestGemRequest < Gem::TestCase
292
291
 
293
292
  ua = make_request(@uri, nil, nil, nil).user_agent
294
293
 
295
- assert_match %r% patchlevel 5\)%, ua
294
+ assert_match %r{ patchlevel 5\)}, ua
296
295
  ensure
297
296
  util_restore_version
298
297
  end
@@ -307,8 +306,8 @@ class TestGemRequest < Gem::TestCase
307
306
 
308
307
  ua = make_request(@uri, nil, nil, nil).user_agent
309
308
 
310
- assert_match %r% revision 6\)%, ua
311
- assert_match %r%Ruby/#{Regexp.escape RUBY_VERSION}dev%, ua
309
+ assert_match %r{ revision 6\)}, ua
310
+ assert_match %r{Ruby/#{Regexp.escape RUBY_VERSION}dev}, ua
312
311
  ensure
313
312
  util_restore_version
314
313
  end
@@ -322,7 +321,7 @@ class TestGemRequest < Gem::TestCase
322
321
 
323
322
  ua = make_request(@uri, nil, nil, nil).user_agent
324
323
 
325
- assert_match %r%\(#{Regexp.escape RUBY_RELEASE_DATE}\)%, ua
324
+ assert_match %r{\(#{Regexp.escape RUBY_RELEASE_DATE}\)}, ua
326
325
  ensure
327
326
  util_restore_version
328
327
  end
@@ -488,7 +487,6 @@ ERROR: Certificate is an invalid CA certificate
488
487
  end
489
488
 
490
489
  class Conn
491
-
492
490
  attr_accessor :payload
493
491
 
494
492
  def new(*args); self; end
@@ -507,7 +505,5 @@ ERROR: Certificate is an invalid CA certificate
507
505
  self.payload = req
508
506
  @response
509
507
  end
510
-
511
508
  end
512
-
513
- end if defined?(OpenSSL::SSL)
509
+ end if Gem::HAVE_OPENSSL
@@ -4,15 +4,12 @@ require 'rubygems/request'
4
4
  require 'timeout'
5
5
 
6
6
  class TestGemRequestConnectionPool < Gem::TestCase
7
-
8
7
  class FakeHttp
9
-
10
8
  def initialize(*args)
11
9
  end
12
10
 
13
11
  def start
14
12
  end
15
-
16
13
  end
17
14
 
18
15
  def setup
@@ -150,5 +147,4 @@ class TestGemRequestConnectionPool < Gem::TestCase
150
147
  end
151
148
  end.join
152
149
  end
153
-
154
150
  end
@@ -3,7 +3,6 @@ require 'rubygems/test_case'
3
3
  require 'rubygems/request_set'
4
4
 
5
5
  class TestGemRequestSet < Gem::TestCase
6
-
7
6
  def setup
8
7
  super
9
8
 
@@ -183,6 +182,58 @@ DEPENDENCIES
183
182
  assert_path_exists File.join @gemhome, 'specifications', 'b-1.gemspec'
184
183
  end
185
184
 
185
+ def test_install_from_gemdeps_complex_dependencies
186
+ quick_gem("z", 1)
187
+ quick_gem("z", "1.0.1")
188
+ quick_gem("z", "1.0.2")
189
+ quick_gem("z", "1.0.3")
190
+ quick_gem("z", 2)
191
+
192
+ spec_fetcher do |fetcher|
193
+ fetcher.download "z", 1
194
+ end
195
+
196
+ rs = Gem::RequestSet.new
197
+ installed = []
198
+
199
+ File.open 'Gemfile.lock', 'w' do |io|
200
+ io.puts <<-LOCKFILE
201
+ GEM
202
+ remote: #{@gem_repo}
203
+ specs:
204
+ z (1)
205
+
206
+ PLATFORMS
207
+ #{Gem::Platform::RUBY}
208
+
209
+ DEPENDENCIES
210
+ z (~> 1.0, >= 1.0.1)
211
+ LOCKFILE
212
+ end
213
+
214
+ File.open 'testo.gemspec', 'w' do |io|
215
+ io.puts <<-LOCKFILE
216
+ Gem::Specification.new do |spec|
217
+ spec.name = 'testo'
218
+ spec.version = '1.0.0'
219
+ spec.add_dependency('z', '~> 1.0', '>= 1.0.1')
220
+ end
221
+ LOCKFILE
222
+ end
223
+
224
+ File.open 'Gemfile', 'w' do |io|
225
+ io.puts("gemspec")
226
+ end
227
+
228
+ rs.install_from_gemdeps :gemdeps => 'Gemfile' do |req, installer|
229
+ installed << req.full_name
230
+ end
231
+
232
+ assert_includes installed, 'z-1.0.3'
233
+
234
+ assert_path_exists File.join @gemhome, 'specifications', 'z-1.0.3.gemspec'
235
+ end
236
+
186
237
  def test_install_from_gemdeps_version_mismatch
187
238
  spec_fetcher do |fetcher|
188
239
  fetcher.gem 'a', 2
@@ -272,7 +323,7 @@ ruby "0"
272
323
  res = rs.resolve StaticSet.new([a, b])
273
324
  assert_equal 2, res.size
274
325
 
275
- names = res.map { |s| s.full_name }.sort
326
+ names = res.map {|s| s.full_name }.sort
276
327
 
277
328
  assert_equal ["a-2", "b-2"], names
278
329
 
@@ -291,7 +342,7 @@ ruby "0"
291
342
  res = rs.resolve StaticSet.new([a, b, c])
292
343
  assert_equal 3, res.size
293
344
 
294
- names = res.map { |s| s.full_name }.sort
345
+ names = res.map {|s| s.full_name }.sort
295
346
 
296
347
  assert_equal %w[a-1.b b-1.b c-1.1.b], names
297
348
  end
@@ -344,9 +395,9 @@ ruby "0"
344
395
  rs = Gem::RequestSet.new
345
396
 
346
397
  tf = Tempfile.open 'gem.deps.rb' do |io|
347
- io.puts <<-gems_deps_rb
398
+ io.puts <<-GEMS_DEPS_RB
348
399
  gem "#{name}", :git => "#{repository}"
349
- gems_deps_rb
400
+ GEMS_DEPS_RB
350
401
 
351
402
  io.flush
352
403
 
@@ -358,12 +409,12 @@ ruby "0"
358
409
  res = rs.resolve
359
410
  assert_equal 1, res.size
360
411
 
361
- names = res.map { |s| s.full_name }.sort
412
+ names = res.map {|s| s.full_name }.sort
362
413
 
363
414
  assert_equal %w[a-1], names
364
415
 
365
416
  assert_equal [@DR::BestSet, @DR::GitSet, @DR::VendorSet, @DR::SourceSet],
366
- rs.sets.map { |set| set.class }
417
+ rs.sets.map {|set| set.class }
367
418
  end
368
419
 
369
420
  def test_resolve_ignore_dependencies
@@ -377,7 +428,7 @@ ruby "0"
377
428
  res = rs.resolve StaticSet.new([a, b])
378
429
  assert_equal 1, res.size
379
430
 
380
- names = res.map { |s| s.full_name }.sort
431
+ names = res.map {|s| s.full_name }.sort
381
432
 
382
433
  assert_equal %w[a-2], names
383
434
  end
@@ -407,10 +458,10 @@ ruby "0"
407
458
  rs = Gem::RequestSet.new
408
459
 
409
460
  tf = Tempfile.open 'gem.deps.rb' do |io|
410
- io.puts <<-gems_deps_rb
461
+ io.puts <<-GEMS_DEPS_RB
411
462
  gem "#{a_name}", :path => "#{a_directory}"
412
463
  gem "#{b_name}", :path => "#{b_directory}"
413
- gems_deps_rb
464
+ GEMS_DEPS_RB
414
465
 
415
466
  io.flush
416
467
 
@@ -422,12 +473,12 @@ ruby "0"
422
473
  res = rs.resolve
423
474
  assert_equal 2, res.size
424
475
 
425
- names = res.map { |s| s.full_name }.sort
476
+ names = res.map {|s| s.full_name }.sort
426
477
 
427
478
  assert_equal ["a-1", "b-2"], names
428
479
 
429
480
  assert_equal [@DR::BestSet, @DR::GitSet, @DR::VendorSet, @DR::SourceSet],
430
- rs.sets.map { |set| set.class }
481
+ rs.sets.map {|set| set.class }
431
482
  end
432
483
 
433
484
  def test_sorted_requests
@@ -440,8 +491,8 @@ ruby "0"
440
491
 
441
492
  rs.resolve StaticSet.new([a, b, c])
442
493
 
443
- names = rs.sorted_requests.map { |s| s.full_name }
444
- assert_equal %w!c-2 b-2 a-2!, names
494
+ names = rs.sorted_requests.map {|s| s.full_name }
495
+ assert_equal %w[c-2 b-2 a-2], names
445
496
  end
446
497
 
447
498
  def test_install
@@ -469,14 +520,14 @@ ruby "0"
469
520
  installers << installer
470
521
  end
471
522
 
472
- assert_equal %w[b-1 a-1], reqs.map { |req| req.full_name }
523
+ assert_equal %w[b-1 a-1], reqs.map {|req| req.full_name }
473
524
  assert_equal %w[b-1 a-1],
474
- installers.map { |installer| installer.spec.full_name }
525
+ installers.map {|installer| installer.spec.full_name }
475
526
 
476
527
  assert_path_exists File.join @gemhome, 'specifications', 'a-1.gemspec'
477
528
  assert_path_exists File.join @gemhome, 'specifications', 'b-1.gemspec'
478
529
 
479
- assert_equal %w[b-1 a-1], installed.map { |s| s.full_name }
530
+ assert_equal %w[b-1 a-1], installed.map {|s| s.full_name }
480
531
 
481
532
  assert done_installing_ran
482
533
  end
@@ -499,7 +550,7 @@ ruby "0"
499
550
  assert_path_exists File.join @tempdir, 'specifications', 'a-1.gemspec'
500
551
  assert_path_exists File.join @tempdir, 'specifications', 'b-1.gemspec'
501
552
 
502
- assert_equal %w!b-1 a-1!, installed.map { |s| s.full_name }
553
+ assert_equal %w[b-1 a-1], installed.map {|s| s.full_name }
503
554
  end
504
555
 
505
556
  def test_install_into_development_shallow
@@ -531,7 +582,7 @@ ruby "0"
531
582
  assert_equal @tempdir, ENV['GEM_HOME']
532
583
  end
533
584
 
534
- assert_equal %w[a-1 b-1], installed.map { |s| s.full_name }.sort
585
+ assert_equal %w[a-1 b-1], installed.map {|s| s.full_name }.sort
535
586
  end
536
587
 
537
588
  def test_sorted_requests_development_shallow
@@ -556,7 +607,7 @@ ruby "0"
556
607
 
557
608
  rs.resolve StaticSet.new [a_spec, b_spec, c_spec]
558
609
 
559
- assert_equal %w[b-1 a-1], rs.sorted_requests.map { |req| req.full_name }
610
+ assert_equal %w[b-1 a-1], rs.sorted_requests.map {|req| req.full_name }
560
611
  end
561
612
 
562
613
  def test_tsort_each_child_development
@@ -585,7 +636,7 @@ ruby "0"
585
636
 
586
637
  deps = rs.enum_for(:tsort_each_child, a_req).to_a
587
638
 
588
- assert_equal %w[b], deps.map { |dep| dep.name }
639
+ assert_equal %w[b], deps.map {|dep| dep.name }
589
640
  end
590
641
 
591
642
  def test_tsort_each_child_development_shallow
@@ -616,5 +667,4 @@ ruby "0"
616
667
 
617
668
  assert_empty deps
618
669
  end
619
-
620
670
  end
@@ -3,7 +3,6 @@ require 'rubygems/test_case'
3
3
  require 'rubygems/request_set'
4
4
 
5
5
  class TestGemRequestSetGemDependencyAPI < Gem::TestCase
6
-
7
6
  def setup
8
7
  super
9
8
 
@@ -49,8 +48,8 @@ class TestGemRequestSetGemDependencyAPI < Gem::TestCase
49
48
  s.add_runtime_dependency 'bar', '>= 1.6.0', '< 1.6.4'
50
49
  end
51
50
  @gda.gemspec
52
- assert_equal %w{ foo bar }.sort, @set.dependencies.map(&:name).sort
53
- bar = @set.dependencies.find { |d| d.name == 'bar' }
51
+ assert_equal %w[ foo bar ].sort, @set.dependencies.map(&:name).sort
52
+ bar = @set.dependencies.find {|d| d.name == 'bar' }
54
53
  assert_equal [["<", Gem::Version.create('1.6.4')],
55
54
  [">=", Gem::Version.create('1.6.0')]], bar.requirement.requirements.sort
56
55
  end
@@ -490,7 +489,7 @@ class TestGemRequestSetGemDependencyAPI < Gem::TestCase
490
489
  groups = @gda.send :gem_group, 'a', :group => :b, :groups => [:c, :d]
491
490
  end
492
491
 
493
- assert_equal [:a, :b, :c, :d], groups.sort_by { |group| group.to_s }
492
+ assert_equal [:a, :b, :c, :d], groups.sort_by {|group| group.to_s }
494
493
  end
495
494
 
496
495
  def test_gemspec
@@ -845,5 +844,4 @@ end
845
844
 
846
845
  assert_equal engine_version, RUBY_ENGINE_VERSION if engine
847
846
  end
848
-
849
847
  end unless Gem.java_platform?
@@ -4,7 +4,6 @@ require 'rubygems/request_set'
4
4
  require 'rubygems/request_set/lockfile'
5
5
 
6
6
  class TestGemRequestSetLockfile < Gem::TestCase
7
-
8
7
  def setup
9
8
  super
10
9
 
@@ -52,7 +51,7 @@ class TestGemRequestSetLockfile < Gem::TestCase
52
51
  expected = [
53
52
  'DEPENDENCIES',
54
53
  ' a',
55
- nil
54
+ nil,
56
55
  ]
57
56
 
58
57
  assert_equal expected, out
@@ -79,7 +78,7 @@ class TestGemRequestSetLockfile < Gem::TestCase
79
78
  expected = [
80
79
  'DEPENDENCIES',
81
80
  ' a (~> 2.0)',
82
- nil
81
+ nil,
83
82
  ]
84
83
 
85
84
  assert_equal expected, out
@@ -112,7 +111,7 @@ class TestGemRequestSetLockfile < Gem::TestCase
112
111
  ' a (2)',
113
112
  ' b',
114
113
  ' b (2)',
115
- nil
114
+ nil,
116
115
  ]
117
116
 
118
117
  assert_equal expected, out
@@ -140,7 +139,7 @@ class TestGemRequestSetLockfile < Gem::TestCase
140
139
  'PLATFORMS',
141
140
  ' ruby',
142
141
  ' x86-darwin-8',
143
- nil
142
+ nil,
144
143
  ]
145
144
 
146
145
  assert_equal expected, out
@@ -466,5 +465,4 @@ DEPENDENCIES
466
465
 
467
466
  assert_equal 'hello', File.read(gem_deps_lock_file)
468
467
  end
469
-
470
468
  end
@@ -6,7 +6,6 @@ require 'rubygems/request_set/lockfile/tokenizer'
6
6
  require 'rubygems/request_set/lockfile/parser'
7
7
 
8
8
  class TestGemRequestSetLockfileParser < Gem::TestCase
9
-
10
9
  def setup
11
10
  super
12
11
  @gem_deps_file = 'gem.deps.rb'
@@ -94,7 +93,7 @@ DEPENDENCIES
94
93
 
95
94
  assert lockfile_set, 'could not find a LockSet'
96
95
 
97
- assert_equal %w[a-2], lockfile_set.specs.map { |tuple| tuple.full_name }
96
+ assert_equal %w[a-2], lockfile_set.specs.map {|tuple| tuple.full_name }
98
97
  end
99
98
 
100
99
  def test_parse_dependencies
@@ -124,7 +123,7 @@ DEPENDENCIES
124
123
 
125
124
  assert lockfile_set, 'could not find a LockSet'
126
125
 
127
- assert_equal %w[a-2], lockfile_set.specs.map { |tuple| tuple.full_name }
126
+ assert_equal %w[a-2], lockfile_set.specs.map {|tuple| tuple.full_name }
128
127
  end
129
128
 
130
129
  def test_parse_DEPENDENCIES_git
@@ -218,7 +217,7 @@ DEPENDENCIES
218
217
 
219
218
  assert lockfile_set, 'found a LockSet'
220
219
 
221
- assert_equal %w[a-2], lockfile_set.specs.map { |s| s.full_name }
220
+ assert_equal %w[a-2], lockfile_set.specs.map {|s| s.full_name }
222
221
  end
223
222
 
224
223
  def test_parse_GEM_remote_multiple
@@ -246,10 +245,10 @@ DEPENDENCIES
246
245
 
247
246
  assert lockfile_set, 'found a LockSet'
248
247
 
249
- assert_equal %w[a-2], lockfile_set.specs.map { |s| s.full_name }
248
+ assert_equal %w[a-2], lockfile_set.specs.map {|s| s.full_name }
250
249
 
251
250
  assert_equal %w[https://gems.example/ https://other.example/],
252
- lockfile_set.specs.flat_map { |s| s.sources.map{ |src| src.uri.to_s } }
251
+ lockfile_set.specs.flat_map {|s| s.sources.map{|src| src.uri.to_s } }
253
252
  end
254
253
 
255
254
  def test_parse_GIT
@@ -284,7 +283,7 @@ DEPENDENCIES
284
283
 
285
284
  assert git_set, 'could not find a GitSet'
286
285
 
287
- assert_equal %w[a-2], git_set.specs.values.map { |s| s.full_name }
286
+ assert_equal %w[a-2], git_set.specs.values.map {|s| s.full_name }
288
287
 
289
288
  assert_equal [dep('b', '>= 3'), dep('c')],
290
289
  git_set.specs.values.first.dependencies
@@ -438,7 +437,7 @@ DEPENDENCIES
438
437
 
439
438
  assert vendor_set, 'could not find a VendorSet'
440
439
 
441
- assert_equal %w[a-1], vendor_set.specs.values.map { |s| s.full_name }
440
+ assert_equal %w[a-1], vendor_set.specs.values.map {|s| s.full_name }
442
441
 
443
442
  spec = vendor_set.load_spec 'a', nil, nil, nil
444
443
 
@@ -497,14 +496,14 @@ DEPENDENCIES
497
496
 
498
497
  assert lockfile_set, 'could not find a LockSet'
499
498
 
500
- assert_equal %w[a-2 b-3], lockfile_set.specs.map { |tuple| tuple.full_name }
499
+ assert_equal %w[a-2 b-3], lockfile_set.specs.map {|tuple| tuple.full_name }
501
500
 
502
501
  expected = [
503
502
  Gem::Platform::RUBY,
504
503
  Gem::Platform.new('x86_64-linux'),
505
504
  ]
506
505
 
507
- assert_equal expected, lockfile_set.specs.map { |tuple| tuple.platform }
506
+ assert_equal expected, lockfile_set.specs.map {|tuple| tuple.platform }
508
507
 
509
508
  spec = lockfile_set.specs.first
510
509
 
@@ -541,5 +540,4 @@ DEPENDENCIES
541
540
  parser = tokenizer.make_parser set, platforms
542
541
  parser.parse
543
542
  end
544
-
545
543
  end