rubygems-update 3.0.3 → 3.4.7

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 (795) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +5556 -0
  3. data/CODE_OF_CONDUCT.md +62 -24
  4. data/CONTRIBUTING.md +111 -21
  5. data/MAINTAINERS.txt +1 -6
  6. data/Manifest.txt +209 -101
  7. data/POLICIES.md +65 -22
  8. data/README.md +23 -15
  9. data/UPGRADING.md +5 -81
  10. data/bin/gem +2 -16
  11. data/bin/update_rubygems +5 -5
  12. data/bundler/CHANGELOG.md +2619 -1256
  13. data/bundler/LICENSE.md +18 -19
  14. data/bundler/README.md +11 -12
  15. data/bundler/UPGRADING.md +222 -0
  16. data/bundler/bundler.gemspec +13 -33
  17. data/bundler/exe/bundle +26 -11
  18. data/bundler/exe/bundler +1 -1
  19. data/bundler/lib/bundler/.document +1 -0
  20. data/bundler/lib/bundler/build_metadata.rb +5 -13
  21. data/bundler/lib/bundler/capistrano.rb +4 -4
  22. data/bundler/lib/bundler/cli/add.rb +28 -16
  23. data/bundler/lib/bundler/cli/binstubs.rb +11 -3
  24. data/bundler/lib/bundler/cli/cache.rb +24 -17
  25. data/bundler/lib/bundler/cli/check.rb +5 -3
  26. data/bundler/lib/bundler/cli/clean.rb +1 -1
  27. data/bundler/lib/bundler/cli/common.rb +41 -13
  28. data/bundler/lib/bundler/cli/config.rb +170 -86
  29. data/bundler/lib/bundler/cli/console.rb +3 -3
  30. data/bundler/lib/bundler/cli/doctor.rb +27 -10
  31. data/bundler/lib/bundler/cli/exec.rb +8 -25
  32. data/bundler/lib/bundler/cli/fund.rb +36 -0
  33. data/bundler/lib/bundler/cli/gem.rb +261 -48
  34. data/bundler/lib/bundler/cli/info.rb +52 -8
  35. data/bundler/lib/bundler/cli/init.rb +7 -3
  36. data/bundler/lib/bundler/cli/inject.rb +1 -1
  37. data/bundler/lib/bundler/cli/install.rb +38 -66
  38. data/bundler/lib/bundler/cli/issue.rb +8 -7
  39. data/bundler/lib/bundler/cli/list.rb +19 -11
  40. data/bundler/lib/bundler/cli/lock.rb +11 -4
  41. data/bundler/lib/bundler/cli/open.rb +14 -9
  42. data/bundler/lib/bundler/cli/outdated.rb +152 -121
  43. data/bundler/lib/bundler/cli/platform.rb +2 -2
  44. data/bundler/lib/bundler/cli/plugin.rb +19 -2
  45. data/bundler/lib/bundler/cli/pristine.rb +6 -1
  46. data/bundler/lib/bundler/cli/remove.rb +1 -2
  47. data/bundler/lib/bundler/cli/show.rb +3 -3
  48. data/bundler/lib/bundler/cli/update.rb +49 -18
  49. data/bundler/lib/bundler/cli/viz.rb +1 -1
  50. data/bundler/lib/bundler/cli.rb +269 -165
  51. data/bundler/lib/bundler/compact_index_client/cache.rb +7 -24
  52. data/bundler/lib/bundler/compact_index_client/gem_parser.rb +28 -0
  53. data/bundler/lib/bundler/compact_index_client/updater.rb +58 -57
  54. data/bundler/lib/bundler/compact_index_client.rb +28 -18
  55. data/bundler/lib/bundler/constants.rb +1 -1
  56. data/bundler/lib/bundler/current_ruby.rb +26 -11
  57. data/bundler/lib/bundler/definition.rb +359 -441
  58. data/bundler/lib/bundler/dependency.rb +29 -71
  59. data/bundler/lib/bundler/deployment.rb +1 -1
  60. data/bundler/lib/bundler/digest.rb +71 -0
  61. data/bundler/lib/bundler/dsl.rb +84 -116
  62. data/bundler/lib/bundler/endpoint_specification.rb +20 -14
  63. data/bundler/lib/bundler/env.rb +10 -15
  64. data/bundler/lib/bundler/environment_preserver.rb +30 -3
  65. data/bundler/lib/bundler/errors.rb +31 -14
  66. data/bundler/lib/bundler/feature_flag.rb +13 -33
  67. data/bundler/lib/bundler/fetcher/base.rb +7 -9
  68. data/bundler/lib/bundler/fetcher/compact_index.rb +46 -39
  69. data/bundler/lib/bundler/fetcher/dependency.rb +2 -2
  70. data/bundler/lib/bundler/fetcher/downloader.rb +15 -12
  71. data/bundler/lib/bundler/fetcher/index.rb +4 -30
  72. data/bundler/lib/bundler/fetcher.rb +39 -41
  73. data/bundler/lib/bundler/force_platform.rb +18 -0
  74. data/bundler/lib/bundler/friendly_errors.rb +49 -54
  75. data/bundler/lib/bundler/gem_helper.rb +79 -43
  76. data/bundler/lib/bundler/gem_helpers.rb +44 -28
  77. data/bundler/lib/bundler/gem_tasks.rb +1 -1
  78. data/bundler/lib/bundler/gem_version_promoter.rb +54 -99
  79. data/bundler/lib/bundler/graph.rb +5 -5
  80. data/bundler/lib/bundler/index.rb +14 -52
  81. data/bundler/lib/bundler/injector.rb +50 -16
  82. data/bundler/lib/bundler/inline.rb +28 -29
  83. data/bundler/lib/bundler/installer/gem_installer.rb +22 -23
  84. data/bundler/lib/bundler/installer/parallel_installer.rb +51 -51
  85. data/bundler/lib/bundler/installer/standalone.rb +62 -12
  86. data/bundler/lib/bundler/installer.rb +46 -97
  87. data/bundler/lib/bundler/lazy_specification.rb +88 -48
  88. data/bundler/lib/bundler/lockfile_generator.rb +3 -3
  89. data/bundler/lib/bundler/lockfile_parser.rb +30 -62
  90. data/bundler/{man → lib/bundler/man}/bundle-add.1 +29 -5
  91. data/bundler/{man/bundle-add.ronn → lib/bundler/man/bundle-add.1.ronn} +22 -4
  92. data/bundler/{man → lib/bundler/man}/bundle-binstubs.1 +6 -4
  93. data/bundler/{man/bundle-binstubs.ronn → lib/bundler/man/bundle-binstubs.1.ronn} +3 -5
  94. data/bundler/lib/bundler/man/bundle-cache.1 +61 -0
  95. data/bundler/{man/bundle-package.ronn → lib/bundler/man/bundle-cache.1.ronn} +22 -15
  96. data/bundler/{man → lib/bundler/man}/bundle-check.1 +1 -1
  97. data/bundler/{man → lib/bundler/man}/bundle-clean.1 +2 -2
  98. data/bundler/{man/bundle-clean.ronn → lib/bundler/man/bundle-clean.1.ronn} +1 -1
  99. data/bundler/{man → lib/bundler/man}/bundle-config.1 +78 -60
  100. data/bundler/{man/bundle-config.ronn → lib/bundler/man/bundle-config.1.ronn} +96 -85
  101. data/bundler/lib/bundler/man/bundle-console.1 +53 -0
  102. data/bundler/lib/bundler/man/bundle-console.1.ronn +44 -0
  103. data/bundler/{man → lib/bundler/man}/bundle-doctor.1 +1 -1
  104. data/bundler/{man → lib/bundler/man}/bundle-exec.1 +6 -6
  105. data/bundler/{man/bundle-exec.ronn → lib/bundler/man/bundle-exec.1.ronn} +6 -6
  106. data/bundler/lib/bundler/man/bundle-gem.1 +105 -0
  107. data/bundler/lib/bundler/man/bundle-gem.1.ronn +117 -0
  108. data/bundler/lib/bundler/man/bundle-help.1 +13 -0
  109. data/bundler/lib/bundler/man/bundle-help.1.ronn +12 -0
  110. data/bundler/{man → lib/bundler/man}/bundle-info.1 +1 -1
  111. data/bundler/{man → lib/bundler/man}/bundle-init.1 +6 -2
  112. data/bundler/{man/bundle-init.ronn → lib/bundler/man/bundle-init.1.ronn} +3 -1
  113. data/bundler/{man → lib/bundler/man}/bundle-inject.1 +5 -2
  114. data/bundler/{man/bundle-inject.ronn → lib/bundler/man/bundle-inject.1.ronn} +3 -1
  115. data/bundler/{man → lib/bundler/man}/bundle-install.1 +42 -37
  116. data/bundler/{man/bundle-install.ronn → lib/bundler/man/bundle-install.1.ronn} +42 -38
  117. data/bundler/{man → lib/bundler/man}/bundle-list.1 +7 -7
  118. data/bundler/{man/bundle-list.ronn → lib/bundler/man/bundle-list.1.ronn} +6 -6
  119. data/bundler/{man → lib/bundler/man}/bundle-lock.1 +1 -1
  120. data/bundler/{man → lib/bundler/man}/bundle-open.1 +22 -2
  121. data/bundler/{man/bundle-open.ronn → lib/bundler/man/bundle-open.1.ronn} +9 -1
  122. data/bundler/{man → lib/bundler/man}/bundle-outdated.1 +3 -10
  123. data/bundler/{man/bundle-outdated.ronn → lib/bundler/man/bundle-outdated.1.ronn} +1 -10
  124. data/bundler/{man → lib/bundler/man}/bundle-platform.1 +16 -6
  125. data/bundler/{man/bundle-platform.ronn → lib/bundler/man/bundle-platform.1.ronn} +14 -7
  126. data/bundler/lib/bundler/man/bundle-plugin.1 +81 -0
  127. data/bundler/lib/bundler/man/bundle-plugin.1.ronn +59 -0
  128. data/bundler/{man → lib/bundler/man}/bundle-pristine.1 +1 -1
  129. data/bundler/{man → lib/bundler/man}/bundle-remove.1 +1 -1
  130. data/bundler/{man → lib/bundler/man}/bundle-show.1 +1 -1
  131. data/bundler/{man → lib/bundler/man}/bundle-update.1 +8 -8
  132. data/bundler/{man/bundle-update.ronn → lib/bundler/man/bundle-update.1.ronn} +8 -7
  133. data/bundler/lib/bundler/man/bundle-version.1 +35 -0
  134. data/bundler/lib/bundler/man/bundle-version.1.ronn +24 -0
  135. data/bundler/{man → lib/bundler/man}/bundle-viz.1 +4 -1
  136. data/bundler/{man/bundle-viz.ronn → lib/bundler/man/bundle-viz.1.ronn} +2 -0
  137. data/bundler/{man → lib/bundler/man}/bundle.1 +17 -12
  138. data/bundler/{man/bundle.ronn → lib/bundler/man/bundle.1.ronn} +14 -9
  139. data/bundler/lib/bundler/man/gemfile.5 +723 -0
  140. data/bundler/{man → lib/bundler/man}/gemfile.5.ronn +112 -95
  141. data/bundler/lib/bundler/man/index.txt +29 -0
  142. data/bundler/lib/bundler/match_metadata.rb +13 -0
  143. data/bundler/lib/bundler/match_platform.rb +1 -2
  144. data/bundler/lib/bundler/match_remote_metadata.rb +29 -0
  145. data/bundler/lib/bundler/mirror.rb +10 -12
  146. data/bundler/lib/bundler/plugin/api/source.rb +29 -15
  147. data/bundler/lib/bundler/plugin/api.rb +1 -1
  148. data/bundler/lib/bundler/plugin/dsl.rb +1 -1
  149. data/bundler/lib/bundler/plugin/index.rb +31 -8
  150. data/bundler/lib/bundler/plugin/installer/git.rb +0 -4
  151. data/bundler/lib/bundler/plugin/installer/rubygems.rb +1 -9
  152. data/bundler/lib/bundler/plugin/installer.rb +35 -22
  153. data/bundler/lib/bundler/plugin/source_list.rb +5 -1
  154. data/bundler/lib/bundler/plugin.rb +102 -42
  155. data/bundler/lib/bundler/process_lock.rb +1 -1
  156. data/bundler/lib/bundler/remote_specification.rb +15 -8
  157. data/bundler/lib/bundler/resolver/base.rb +77 -0
  158. data/bundler/lib/bundler/resolver/candidate.rb +94 -0
  159. data/bundler/lib/bundler/resolver/incompatibility.rb +15 -0
  160. data/bundler/lib/bundler/resolver/package.rb +72 -0
  161. data/bundler/lib/bundler/resolver/root.rb +25 -0
  162. data/bundler/lib/bundler/resolver/spec_group.rb +49 -73
  163. data/bundler/lib/bundler/resolver.rb +343 -300
  164. data/bundler/lib/bundler/retry.rb +4 -4
  165. data/bundler/lib/bundler/ruby_dsl.rb +1 -1
  166. data/bundler/lib/bundler/ruby_version.rb +9 -37
  167. data/bundler/lib/bundler/rubygems_ext.rb +235 -92
  168. data/bundler/lib/bundler/rubygems_gem_installer.rb +87 -21
  169. data/bundler/lib/bundler/rubygems_integration.rb +179 -515
  170. data/bundler/lib/bundler/runtime.rb +25 -40
  171. data/bundler/lib/bundler/self_manager.rb +168 -0
  172. data/bundler/lib/bundler/settings.rb +162 -118
  173. data/bundler/lib/bundler/setup.rb +11 -12
  174. data/bundler/lib/bundler/shared_helpers.rb +61 -102
  175. data/bundler/lib/bundler/similarity_detector.rb +3 -3
  176. data/bundler/lib/bundler/source/git/git_proxy.rb +257 -128
  177. data/bundler/lib/bundler/source/git.rb +84 -61
  178. data/bundler/lib/bundler/source/metadata.rb +9 -9
  179. data/bundler/lib/bundler/source/path/installer.rb +11 -32
  180. data/bundler/lib/bundler/source/path.rb +28 -17
  181. data/bundler/lib/bundler/source/rubygems/remote.rb +3 -4
  182. data/bundler/lib/bundler/source/rubygems.rb +171 -197
  183. data/bundler/lib/bundler/source/rubygems_aggregate.rb +68 -0
  184. data/bundler/lib/bundler/source.rb +30 -10
  185. data/bundler/lib/bundler/source_list.rb +112 -67
  186. data/bundler/lib/bundler/source_map.rb +71 -0
  187. data/bundler/lib/bundler/spec_set.rb +86 -72
  188. data/bundler/lib/bundler/stub_specification.rb +45 -37
  189. data/bundler/lib/bundler/templates/Executable +3 -5
  190. data/bundler/lib/bundler/templates/Executable.bundler +21 -17
  191. data/bundler/lib/bundler/templates/Executable.standalone +4 -4
  192. data/bundler/lib/bundler/templates/Gemfile +0 -2
  193. data/bundler/lib/bundler/templates/newgem/CHANGELOG.md.tt +5 -0
  194. data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +57 -47
  195. data/bundler/lib/bundler/templates/newgem/Cargo.toml.tt +7 -0
  196. data/bundler/lib/bundler/templates/newgem/Gemfile.tt +22 -2
  197. data/bundler/lib/bundler/templates/newgem/README.md.tt +13 -15
  198. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +33 -5
  199. data/bundler/lib/bundler/templates/newgem/bin/console.tt +1 -0
  200. data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +25 -0
  201. data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +15 -0
  202. data/bundler/lib/bundler/templates/newgem/ext/newgem/{extconf.rb.tt → extconf-c.rb.tt} +2 -0
  203. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +6 -0
  204. data/bundler/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +12 -0
  205. data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +37 -0
  206. data/bundler/lib/bundler/templates/newgem/gitignore.tt +3 -0
  207. data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +18 -0
  208. data/bundler/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +2 -0
  209. data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +4 -2
  210. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +36 -41
  211. data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +13 -0
  212. data/bundler/lib/bundler/templates/newgem/sig/newgem.rbs.tt +8 -0
  213. data/bundler/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +2 -0
  214. data/bundler/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +2 -1
  215. data/bundler/lib/bundler/templates/newgem/standard.yml.tt +3 -0
  216. data/bundler/lib/bundler/templates/newgem/test/minitest/test_helper.rb.tt +6 -0
  217. data/bundler/lib/bundler/templates/newgem/test/{newgem_test.rb.tt → minitest/test_newgem.rb.tt} +3 -1
  218. data/bundler/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt +15 -0
  219. data/bundler/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt +6 -0
  220. data/bundler/lib/bundler/ui/rg_proxy.rb +1 -1
  221. data/bundler/lib/bundler/ui/shell.rb +39 -20
  222. data/bundler/lib/bundler/ui/silent.rb +21 -5
  223. data/bundler/lib/bundler/ui.rb +3 -3
  224. data/bundler/lib/bundler/uri_credentials_filter.rb +10 -4
  225. data/bundler/lib/bundler/vendor/.document +1 -0
  226. data/bundler/lib/bundler/vendor/connection_pool/LICENSE +20 -0
  227. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +174 -0
  228. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +3 -0
  229. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +56 -0
  230. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +128 -0
  231. data/bundler/lib/bundler/vendor/fileutils/LICENSE.txt +22 -0
  232. data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +1493 -425
  233. data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +82 -0
  234. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +40 -0
  235. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +53 -0
  236. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +79 -0
  237. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +302 -462
  238. data/bundler/lib/bundler/vendor/pub_grub/LICENSE.txt +21 -0
  239. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb +20 -0
  240. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +189 -0
  241. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb +182 -0
  242. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb +155 -0
  243. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb +43 -0
  244. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb +121 -0
  245. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb +45 -0
  246. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb +19 -0
  247. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +60 -0
  248. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb +105 -0
  249. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb +3 -0
  250. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb +129 -0
  251. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +411 -0
  252. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +243 -0
  253. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb +178 -0
  254. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +31 -0
  255. data/bundler/lib/bundler/vendor/thor/LICENSE.md +20 -0
  256. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb +1 -1
  257. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +3 -2
  258. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/directory.rb +7 -17
  259. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +25 -14
  260. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +20 -10
  261. data/bundler/lib/bundler/vendor/thor/lib/thor/actions.rb +34 -15
  262. data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +63 -43
  263. data/bundler/lib/bundler/vendor/thor/lib/thor/command.rb +21 -14
  264. data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +6 -0
  265. data/bundler/lib/bundler/vendor/thor/lib/thor/error.rb +83 -0
  266. data/bundler/lib/bundler/vendor/thor/lib/thor/group.rb +3 -3
  267. data/bundler/lib/bundler/vendor/thor/lib/thor/invocation.rb +1 -0
  268. data/bundler/lib/bundler/vendor/thor/lib/thor/line_editor/basic.rb +1 -1
  269. data/bundler/lib/bundler/vendor/thor/lib/thor/line_editor/readline.rb +6 -6
  270. data/bundler/lib/bundler/vendor/thor/lib/thor/line_editor.rb +2 -2
  271. data/bundler/lib/bundler/vendor/thor/lib/thor/nested_context.rb +29 -0
  272. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +7 -3
  273. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/option.rb +20 -7
  274. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +40 -6
  275. data/bundler/lib/bundler/vendor/thor/lib/thor/parser.rb +4 -4
  276. data/bundler/lib/bundler/vendor/thor/lib/thor/rake_compat.rb +1 -0
  277. data/bundler/lib/bundler/vendor/thor/lib/thor/runner.rb +15 -14
  278. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +88 -13
  279. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/color.rb +10 -2
  280. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/html.rb +3 -3
  281. data/bundler/lib/bundler/vendor/thor/lib/thor/shell.rb +5 -5
  282. data/bundler/lib/bundler/vendor/thor/lib/thor/util.rb +18 -2
  283. data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
  284. data/bundler/lib/bundler/vendor/thor/lib/thor.rb +16 -9
  285. data/bundler/lib/bundler/vendor/tsort/LICENSE.txt +22 -0
  286. data/bundler/lib/bundler/vendor/tsort/lib/tsort.rb +452 -0
  287. data/bundler/lib/bundler/vendor/uri/LICENSE.txt +22 -0
  288. data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +729 -0
  289. data/bundler/lib/bundler/vendor/uri/lib/uri/file.rb +100 -0
  290. data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +267 -0
  291. data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +1587 -0
  292. data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +125 -0
  293. data/bundler/lib/bundler/vendor/uri/lib/uri/https.rb +23 -0
  294. data/bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb +261 -0
  295. data/bundler/lib/bundler/vendor/uri/lib/uri/ldaps.rb +22 -0
  296. data/bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb +293 -0
  297. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +539 -0
  298. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +119 -0
  299. data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +6 -0
  300. data/bundler/lib/bundler/vendor/uri/lib/uri/ws.rb +83 -0
  301. data/bundler/lib/bundler/vendor/uri/lib/uri/wss.rb +23 -0
  302. data/bundler/lib/bundler/vendor/uri/lib/uri.rb +104 -0
  303. data/bundler/lib/bundler/vendored_fileutils.rb +1 -6
  304. data/bundler/lib/bundler/vendored_persistent.rb +2 -39
  305. data/bundler/lib/bundler/{vendored_molinillo.rb → vendored_pub_grub.rb} +1 -1
  306. data/bundler/lib/bundler/vendored_thor.rb +2 -2
  307. data/bundler/lib/bundler/vendored_tsort.rb +4 -0
  308. data/bundler/lib/bundler/vendored_uri.rb +4 -0
  309. data/bundler/lib/bundler/version.rb +5 -20
  310. data/bundler/lib/bundler/vlad.rb +2 -2
  311. data/bundler/lib/bundler/worker.rb +26 -15
  312. data/bundler/lib/bundler/yaml_serializer.rb +3 -4
  313. data/bundler/lib/bundler.rb +285 -183
  314. data/hide_lib_for_update/note.txt +0 -4
  315. data/lib/rubygems/available_set.rb +7 -8
  316. data/lib/rubygems/basic_specification.rb +44 -31
  317. data/lib/rubygems/bundler_version_finder.rb +28 -50
  318. data/lib/rubygems/command.rb +104 -46
  319. data/lib/rubygems/command_manager.rb +35 -16
  320. data/lib/rubygems/commands/build_command.rb +77 -26
  321. data/lib/rubygems/commands/cert_command.rb +78 -76
  322. data/lib/rubygems/commands/check_command.rb +20 -22
  323. data/lib/rubygems/commands/cleanup_command.rb +36 -32
  324. data/lib/rubygems/commands/contents_command.rb +16 -18
  325. data/lib/rubygems/commands/dependency_command.rb +39 -50
  326. data/lib/rubygems/commands/environment_command.rb +11 -13
  327. data/lib/rubygems/commands/fetch_command.rb +33 -16
  328. data/lib/rubygems/commands/generate_index_command.rb +18 -17
  329. data/lib/rubygems/commands/help_command.rb +7 -7
  330. data/lib/rubygems/commands/info_command.rb +11 -6
  331. data/lib/rubygems/commands/install_command.rb +45 -79
  332. data/lib/rubygems/commands/list_command.rb +9 -8
  333. data/lib/rubygems/commands/lock_command.rb +7 -9
  334. data/lib/rubygems/commands/mirror_command.rb +3 -4
  335. data/lib/rubygems/commands/open_command.rb +11 -14
  336. data/lib/rubygems/commands/outdated_command.rb +5 -6
  337. data/lib/rubygems/commands/owner_command.rb +29 -22
  338. data/lib/rubygems/commands/pristine_command.rb +61 -51
  339. data/lib/rubygems/commands/push_command.rb +26 -63
  340. data/lib/rubygems/commands/query_command.rb +21 -337
  341. data/lib/rubygems/commands/rdoc_command.rb +26 -26
  342. data/lib/rubygems/commands/search_command.rb +8 -8
  343. data/lib/rubygems/commands/server_command.rb +16 -77
  344. data/lib/rubygems/commands/setup_command.rb +282 -241
  345. data/lib/rubygems/commands/signin_command.rb +9 -10
  346. data/lib/rubygems/commands/signout_command.rb +7 -9
  347. data/lib/rubygems/commands/sources_command.rb +42 -26
  348. data/lib/rubygems/commands/specification_command.rb +25 -20
  349. data/lib/rubygems/commands/stale_command.rb +3 -3
  350. data/lib/rubygems/commands/uninstall_command.rb +58 -49
  351. data/lib/rubygems/commands/unpack_command.rb +15 -44
  352. data/lib/rubygems/commands/update_command.rb +133 -81
  353. data/lib/rubygems/commands/which_command.rb +8 -11
  354. data/lib/rubygems/commands/yank_command.rb +22 -19
  355. data/lib/rubygems/compatibility.rb +7 -5
  356. data/lib/rubygems/config_file.rb +101 -47
  357. data/lib/rubygems/core_ext/kernel_gem.rb +8 -12
  358. data/lib/rubygems/core_ext/kernel_require.rb +124 -83
  359. data/lib/rubygems/core_ext/kernel_warn.rb +35 -30
  360. data/lib/rubygems/core_ext/tcpsocket_init.rb +52 -0
  361. data/lib/rubygems/defaults.rb +131 -55
  362. data/lib/rubygems/dependency.rb +44 -27
  363. data/lib/rubygems/dependency_installer.rb +49 -205
  364. data/lib/rubygems/dependency_list.rb +24 -25
  365. data/lib/rubygems/deprecate.rb +106 -12
  366. data/lib/rubygems/doctor.rb +22 -22
  367. data/lib/rubygems/errors.rb +8 -14
  368. data/lib/rubygems/exceptions.rb +35 -33
  369. data/lib/rubygems/ext/build_error.rb +2 -0
  370. data/lib/rubygems/ext/builder.rb +71 -95
  371. data/lib/rubygems/ext/cargo_builder/link_flag_converter.rb +27 -0
  372. data/lib/rubygems/ext/cargo_builder.rb +360 -0
  373. data/lib/rubygems/ext/cmake_builder.rb +6 -7
  374. data/lib/rubygems/ext/configure_builder.rb +5 -8
  375. data/lib/rubygems/ext/ext_conf_builder.rb +45 -65
  376. data/lib/rubygems/ext/rake_builder.rb +7 -10
  377. data/lib/rubygems/ext.rb +7 -6
  378. data/lib/rubygems/gem_runner.rb +15 -26
  379. data/lib/rubygems/gemcutter_utilities.rb +179 -54
  380. data/lib/rubygems/indexer.rb +38 -53
  381. data/lib/rubygems/install_default_message.rb +2 -2
  382. data/lib/rubygems/install_message.rb +2 -2
  383. data/lib/rubygems/install_update_options.rb +73 -64
  384. data/lib/rubygems/installer.rb +230 -173
  385. data/lib/rubygems/installer_uninstaller_utils.rb +29 -0
  386. data/lib/rubygems/local_remote_options.rb +22 -24
  387. data/lib/rubygems/mock_gem_ui.rb +2 -5
  388. data/lib/rubygems/name_tuple.rb +10 -14
  389. data/lib/rubygems/openssl.rb +7 -0
  390. data/lib/rubygems/optparse/.document +1 -0
  391. data/lib/rubygems/optparse/COPYING +56 -0
  392. data/lib/rubygems/optparse/lib/optionparser.rb +2 -0
  393. data/lib/rubygems/optparse/lib/optparse/ac.rb +54 -0
  394. data/lib/rubygems/optparse/lib/optparse/date.rb +18 -0
  395. data/lib/rubygems/optparse/lib/optparse/kwargs.rb +22 -0
  396. data/lib/rubygems/optparse/lib/optparse/shellwords.rb +7 -0
  397. data/lib/rubygems/optparse/lib/optparse/time.rb +11 -0
  398. data/lib/rubygems/optparse/lib/optparse/uri.rb +7 -0
  399. data/lib/rubygems/optparse/lib/optparse/version.rb +71 -0
  400. data/lib/rubygems/optparse/lib/optparse.rb +2308 -0
  401. data/lib/rubygems/optparse.rb +3 -0
  402. data/lib/rubygems/package/digest_io.rb +0 -2
  403. data/lib/rubygems/package/file_source.rb +2 -4
  404. data/lib/rubygems/package/io_source.rb +4 -2
  405. data/lib/rubygems/package/old.rb +9 -11
  406. data/lib/rubygems/package/tar_header.rb +73 -66
  407. data/lib/rubygems/package/tar_reader/entry.rb +8 -9
  408. data/lib/rubygems/package/tar_reader.rb +16 -13
  409. data/lib/rubygems/package/tar_writer.rb +12 -22
  410. data/lib/rubygems/package.rb +142 -125
  411. data/lib/rubygems/package_task.rb +5 -11
  412. data/lib/rubygems/path_support.rb +3 -8
  413. data/lib/rubygems/platform.rb +113 -73
  414. data/lib/rubygems/psych_tree.rb +1 -1
  415. data/lib/rubygems/query_utils.rb +351 -0
  416. data/lib/rubygems/rdoc.rb +4 -16
  417. data/lib/rubygems/remote_fetcher.rb +64 -136
  418. data/lib/rubygems/request/connection_pools.rb +7 -11
  419. data/lib/rubygems/request/http_pool.rb +2 -3
  420. data/lib/rubygems/request.rb +31 -32
  421. data/lib/rubygems/request_set/gem_dependency_api.rb +135 -136
  422. data/lib/rubygems/request_set/lockfile/parser.rb +28 -28
  423. data/lib/rubygems/request_set/lockfile/tokenizer.rb +5 -5
  424. data/lib/rubygems/request_set/lockfile.rb +21 -20
  425. data/lib/rubygems/request_set.rb +30 -43
  426. data/lib/rubygems/requirement.rb +42 -64
  427. data/lib/rubygems/resolver/activation_request.rb +29 -53
  428. data/lib/rubygems/resolver/api_set/gem_parser.rb +20 -0
  429. data/lib/rubygems/resolver/api_set.rb +33 -26
  430. data/lib/rubygems/resolver/api_specification.rb +30 -16
  431. data/lib/rubygems/resolver/best_set.rb +9 -11
  432. data/lib/rubygems/resolver/composed_set.rb +3 -5
  433. data/lib/rubygems/resolver/conflict.rb +12 -19
  434. data/lib/rubygems/resolver/current_set.rb +0 -2
  435. data/lib/rubygems/resolver/dependency_request.rb +3 -5
  436. data/lib/rubygems/resolver/git_set.rb +2 -4
  437. data/lib/rubygems/resolver/git_specification.rb +6 -8
  438. data/lib/rubygems/resolver/index_set.rb +4 -6
  439. data/lib/rubygems/resolver/index_specification.rb +38 -7
  440. data/lib/rubygems/resolver/installed_specification.rb +4 -6
  441. data/lib/rubygems/resolver/installer_set.rb +69 -27
  442. data/lib/rubygems/resolver/local_specification.rb +2 -4
  443. data/lib/rubygems/resolver/lock_set.rb +7 -9
  444. data/lib/rubygems/resolver/lock_specification.rb +6 -8
  445. data/lib/rubygems/resolver/molinillo/LICENSE +9 -0
  446. data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb +7 -0
  447. data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb +8 -0
  448. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/action.rb +1 -0
  449. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +2 -1
  450. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +2 -1
  451. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +2 -1
  452. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +2 -1
  453. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb +7 -6
  454. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/set_payload.rb +2 -1
  455. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/tag.rb +4 -3
  456. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb +51 -12
  457. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +42 -9
  458. data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +82 -8
  459. data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +2 -1
  460. data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb +13 -1
  461. data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb +3 -1
  462. data/lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb +510 -165
  463. data/lib/rubygems/resolver/molinillo/lib/molinillo/resolver.rb +3 -2
  464. data/lib/rubygems/resolver/molinillo/lib/molinillo/state.rb +8 -4
  465. data/lib/rubygems/resolver/molinillo/lib/molinillo.rb +6 -5
  466. data/lib/rubygems/resolver/molinillo.rb +1 -1
  467. data/lib/rubygems/resolver/requirement_list.rb +0 -1
  468. data/lib/rubygems/resolver/set.rb +0 -3
  469. data/lib/rubygems/resolver/source_set.rb +0 -2
  470. data/lib/rubygems/resolver/spec_specification.rb +14 -2
  471. data/lib/rubygems/resolver/specification.rb +14 -3
  472. data/lib/rubygems/resolver/vendor_set.rb +1 -3
  473. data/lib/rubygems/resolver/vendor_specification.rb +3 -5
  474. data/lib/rubygems/resolver.rb +58 -54
  475. data/lib/rubygems/s3_uri_signer.rb +175 -0
  476. data/lib/rubygems/safe_yaml.rb +14 -16
  477. data/lib/rubygems/security/policies.rb +47 -47
  478. data/lib/rubygems/security/policy.rb +25 -29
  479. data/lib/rubygems/security/signer.rb +16 -18
  480. data/lib/rubygems/security/trust_dir.rb +5 -6
  481. data/lib/rubygems/security.rb +90 -69
  482. data/lib/rubygems/security_option.rb +7 -8
  483. data/lib/rubygems/source/git.rb +30 -30
  484. data/lib/rubygems/source/installed.rb +1 -3
  485. data/lib/rubygems/source/local.rb +4 -6
  486. data/lib/rubygems/source/lock.rb +0 -2
  487. data/lib/rubygems/source/specific_file.rb +1 -3
  488. data/lib/rubygems/source/vendor.rb +0 -2
  489. data/lib/rubygems/source.rb +50 -38
  490. data/lib/rubygems/source_list.rb +9 -13
  491. data/lib/rubygems/spec_fetcher.rb +52 -64
  492. data/lib/rubygems/specification.rb +432 -463
  493. data/lib/rubygems/specification_policy.rb +185 -87
  494. data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem +21 -0
  495. data/lib/rubygems/stub_specification.rb +24 -29
  496. data/lib/rubygems/text.rb +21 -21
  497. data/lib/rubygems/tsort/.document +1 -0
  498. data/lib/rubygems/tsort/LICENSE.txt +22 -0
  499. data/lib/rubygems/tsort/lib/tsort.rb +452 -0
  500. data/lib/rubygems/tsort.rb +3 -0
  501. data/lib/rubygems/uninstaller.rb +110 -57
  502. data/lib/rubygems/unknown_command_spell_checker.rb +21 -0
  503. data/lib/rubygems/update_suggestion.rb +69 -0
  504. data/lib/rubygems/uri.rb +126 -0
  505. data/lib/rubygems/uri_formatter.rb +2 -4
  506. data/lib/rubygems/user_interaction.rb +46 -49
  507. data/lib/rubygems/util/licenses.rb +511 -404
  508. data/lib/rubygems/util.rb +40 -56
  509. data/lib/rubygems/validator.rb +15 -37
  510. data/lib/rubygems/version.rb +48 -29
  511. data/lib/rubygems/version_option.rb +11 -5
  512. data/lib/rubygems.rb +305 -332
  513. data/rubygems-update.gemspec +6 -13
  514. data/setup.rb +11 -22
  515. data/test/rubygems/alternate_cert.pem +14 -14
  516. data/test/rubygems/alternate_cert_32.pem +15 -15
  517. data/test/rubygems/alternate_key.pem +25 -25
  518. data/test/rubygems/bundler_test_gem.rb +419 -0
  519. data/test/rubygems/ca_cert.pem +74 -65
  520. data/test/rubygems/child_cert.pem +15 -16
  521. data/test/rubygems/child_cert_32.pem +15 -16
  522. data/test/rubygems/child_key.pem +25 -25
  523. data/test/rubygems/client.pem +103 -45
  524. data/test/rubygems/data/excon-0.7.7.gemspec.rz +0 -0
  525. data/test/rubygems/data/null-required-ruby-version.gemspec.rz +0 -0
  526. data/test/rubygems/data/null-required-rubygems-version.gemspec.rz +0 -0
  527. data/test/rubygems/data/pry-0.4.7.gemspec.rz +0 -0
  528. data/test/rubygems/encrypted_private_key.pem +26 -26
  529. data/test/rubygems/expired_cert.pem +15 -15
  530. data/test/rubygems/future_cert.pem +15 -15
  531. data/test/rubygems/future_cert_32.pem +15 -15
  532. data/test/rubygems/grandchild_cert.pem +15 -16
  533. data/test/rubygems/grandchild_cert_32.pem +15 -16
  534. data/test/rubygems/grandchild_key.pem +25 -25
  535. data/{lib/rubygems/test_case.rb → test/rubygems/helper.rb} +505 -507
  536. data/{lib → test}/rubygems/installer_test_case.rb +115 -53
  537. data/test/rubygems/invalid_issuer_cert.pem +16 -16
  538. data/test/rubygems/invalid_issuer_cert_32.pem +16 -16
  539. data/test/rubygems/invalid_key.pem +25 -25
  540. data/test/rubygems/invalid_signer_cert.pem +15 -15
  541. data/test/rubygems/invalid_signer_cert_32.pem +15 -15
  542. data/test/rubygems/invalidchild_cert.pem +15 -16
  543. data/test/rubygems/invalidchild_cert_32.pem +15 -16
  544. data/test/rubygems/invalidchild_key.pem +25 -25
  545. data/{lib → test}/rubygems/package/tar_test_case.rb +4 -6
  546. data/test/rubygems/packages/Bluebie-legs-0.6.2.gem +0 -0
  547. data/test/rubygems/packages/ascii_binder-0.1.10.1.gem +0 -0
  548. data/test/rubygems/packages/ill-formatted-platform-1.0.0.10.gem +0 -0
  549. data/test/rubygems/plugin/exception/rubygems_plugin.rb +1 -1
  550. data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +1 -1
  551. data/test/rubygems/private_ec_key.pem +9 -0
  552. data/test/rubygems/private_key.pem +25 -25
  553. data/test/rubygems/public_cert.pem +16 -16
  554. data/test/rubygems/public_cert_32.pem +15 -15
  555. data/test/rubygems/public_key.pem +7 -7
  556. data/test/rubygems/rubygems/commands/crash_command.rb +0 -2
  557. data/test/rubygems/rubygems_plugin.rb +2 -4
  558. data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -2
  559. data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +12 -0
  560. data/test/rubygems/ssl_cert.pem +78 -17
  561. data/test/rubygems/ssl_key.pem +25 -13
  562. data/test/rubygems/test_bundled_ca.rb +44 -47
  563. data/test/rubygems/test_config.rb +5 -7
  564. data/test/rubygems/test_deprecate.rb +90 -10
  565. data/test/rubygems/test_exit.rb +17 -0
  566. data/test/rubygems/test_gem.rb +679 -885
  567. data/test/rubygems/test_gem_available_set.rb +24 -25
  568. data/test/rubygems/test_gem_bundler_version_finder.rb +42 -42
  569. data/test/rubygems/test_gem_command.rb +186 -39
  570. data/test/rubygems/test_gem_command_manager.rb +166 -36
  571. data/test/rubygems/test_gem_commands_build_command.rb +436 -52
  572. data/test/rubygems/test_gem_commands_cert_command.rb +193 -124
  573. data/test/rubygems/test_gem_commands_check_command.rb +9 -11
  574. data/test/rubygems/test_gem_commands_cleanup_command.rb +87 -62
  575. data/test/rubygems/test_gem_commands_contents_command.rb +73 -42
  576. data/test/rubygems/test_gem_commands_dependency_command.rb +39 -41
  577. data/test/rubygems/test_gem_commands_environment_command.rb +60 -48
  578. data/test/rubygems/test_gem_commands_fetch_command.rb +163 -32
  579. data/test/rubygems/test_gem_commands_generate_index_command.rb +39 -9
  580. data/test/rubygems/test_gem_commands_help_command.rb +34 -19
  581. data/test/rubygems/test_gem_commands_info_command.rb +34 -9
  582. data/test/rubygems/test_gem_commands_install_command.rb +600 -173
  583. data/test/rubygems/test_gem_commands_list_command.rb +5 -7
  584. data/test/rubygems/test_gem_commands_lock_command.rb +11 -13
  585. data/test/rubygems/test_gem_commands_mirror.rb +3 -4
  586. data/test/rubygems/test_gem_commands_open_command.rb +16 -19
  587. data/test/rubygems/test_gem_commands_outdated_command.rb +24 -7
  588. data/test/rubygems/test_gem_commands_owner_command.rb +183 -49
  589. data/test/rubygems/test_gem_commands_pristine_command.rb +222 -89
  590. data/test/rubygems/test_gem_commands_push_command.rb +178 -69
  591. data/test/rubygems/test_gem_commands_query_command.rb +114 -89
  592. data/test/rubygems/test_gem_commands_search_command.rb +2 -4
  593. data/test/rubygems/test_gem_commands_server_command.rb +6 -46
  594. data/test/rubygems/test_gem_commands_setup_command.rb +334 -157
  595. data/test/rubygems/test_gem_commands_signin_command.rb +187 -27
  596. data/test/rubygems/test_gem_commands_signout_command.rb +3 -10
  597. data/test/rubygems/test_gem_commands_sources_command.rb +266 -33
  598. data/test/rubygems/test_gem_commands_specification_command.rb +81 -55
  599. data/test/rubygems/test_gem_commands_stale_command.rb +4 -6
  600. data/test/rubygems/test_gem_commands_uninstall_command.rb +230 -95
  601. data/test/rubygems/test_gem_commands_unpack_command.rb +32 -34
  602. data/test/rubygems/test_gem_commands_update_command.rb +412 -102
  603. data/test/rubygems/test_gem_commands_which_command.rb +12 -14
  604. data/test/rubygems/test_gem_commands_yank_command.rb +107 -26
  605. data/test/rubygems/test_gem_config_file.rb +120 -96
  606. data/test/rubygems/test_gem_dependency.rb +94 -86
  607. data/test/rubygems/test_gem_dependency_installer.rb +305 -388
  608. data/test/rubygems/test_gem_dependency_list.rb +66 -61
  609. data/test/rubygems/test_gem_dependency_resolution_error.rb +5 -7
  610. data/test/rubygems/test_gem_doctor.rb +73 -47
  611. data/test/rubygems/test_gem_ext_builder.rb +116 -106
  612. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore +1 -0
  613. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +8 -0
  614. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.lock +233 -0
  615. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.toml +10 -0
  616. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/src/lib.rs +27 -0
  617. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb +1 -0
  618. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/.gitignore +1 -0
  619. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +233 -0
  620. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +10 -0
  621. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +8 -0
  622. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +51 -0
  623. data/test/rubygems/test_gem_ext_cargo_builder.rb +166 -0
  624. data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +33 -0
  625. data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +60 -0
  626. data/test/rubygems/test_gem_ext_cmake_builder.rb +32 -37
  627. data/test/rubygems/test_gem_ext_configure_builder.rb +23 -31
  628. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +75 -79
  629. data/test/rubygems/test_gem_ext_rake_builder.rb +49 -30
  630. data/test/rubygems/test_gem_gem_runner.rb +52 -7
  631. data/test/rubygems/test_gem_gemcutter_utilities.rb +91 -76
  632. data/test/rubygems/test_gem_impossible_dependencies_error.rb +4 -6
  633. data/test/rubygems/test_gem_indexer.rb +120 -105
  634. data/test/rubygems/test_gem_install_update_options.rb +57 -33
  635. data/test/rubygems/test_gem_installer.rb +1230 -644
  636. data/test/rubygems/test_gem_local_remote_options.rb +11 -13
  637. data/test/rubygems/test_gem_name_tuple.rb +4 -6
  638. data/test/rubygems/test_gem_package.rb +396 -266
  639. data/test/rubygems/test_gem_package_old.rb +57 -56
  640. data/test/rubygems/test_gem_package_tar_header.rb +108 -50
  641. data/test/rubygems/test_gem_package_tar_reader.rb +8 -10
  642. data/test/rubygems/test_gem_package_tar_reader_entry.rb +77 -20
  643. data/test/rubygems/test_gem_package_tar_writer.rb +107 -101
  644. data/test/rubygems/test_gem_package_task.rb +58 -25
  645. data/test/rubygems/test_gem_path_support.rb +29 -29
  646. data/test/rubygems/test_gem_platform.rb +388 -199
  647. data/test/rubygems/test_gem_rdoc.rb +20 -155
  648. data/test/rubygems/test_gem_remote_fetcher.rb +474 -303
  649. data/test/rubygems/test_gem_request.rb +128 -85
  650. data/test/rubygems/test_gem_request_connection_pools.rb +32 -32
  651. data/test/rubygems/test_gem_request_set.rb +186 -110
  652. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +280 -261
  653. data/test/rubygems/test_gem_request_set_lockfile.rb +93 -94
  654. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +68 -69
  655. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +136 -136
  656. data/test/rubygems/test_gem_requirement.rb +140 -55
  657. data/test/rubygems/test_gem_resolver.rb +224 -115
  658. data/test/rubygems/test_gem_resolver_activation_request.rb +9 -40
  659. data/test/rubygems/test_gem_resolver_api_set.rb +79 -78
  660. data/test/rubygems/test_gem_resolver_api_specification.rb +47 -49
  661. data/test/rubygems/test_gem_resolver_best_set.rb +43 -22
  662. data/test/rubygems/test_gem_resolver_composed_set.rb +1 -3
  663. data/test/rubygems/test_gem_resolver_conflict.rb +12 -18
  664. data/test/rubygems/test_gem_resolver_dependency_request.rb +15 -17
  665. data/test/rubygems/test_gem_resolver_git_set.rb +22 -24
  666. data/test/rubygems/test_gem_resolver_git_specification.rb +22 -22
  667. data/test/rubygems/test_gem_resolver_index_set.rb +14 -16
  668. data/test/rubygems/test_gem_resolver_index_specification.rb +21 -18
  669. data/test/rubygems/test_gem_resolver_installed_specification.rb +5 -8
  670. data/test/rubygems/test_gem_resolver_installer_set.rb +106 -44
  671. data/test/rubygems/test_gem_resolver_local_specification.rb +7 -9
  672. data/test/rubygems/test_gem_resolver_lock_set.rb +15 -17
  673. data/test/rubygems/test_gem_resolver_lock_specification.rb +17 -19
  674. data/test/rubygems/test_gem_resolver_requirement_list.rb +1 -3
  675. data/test/rubygems/test_gem_resolver_specification.rb +8 -10
  676. data/test/rubygems/test_gem_resolver_vendor_set.rb +9 -11
  677. data/test/rubygems/test_gem_resolver_vendor_specification.rb +10 -12
  678. data/test/rubygems/test_gem_security.rb +109 -79
  679. data/test/rubygems/test_gem_security_policy.rb +102 -107
  680. data/test/rubygems/test_gem_security_signer.rb +51 -52
  681. data/test/rubygems/test_gem_security_trust_dir.rb +14 -16
  682. data/test/rubygems/test_gem_silent_ui.rb +47 -42
  683. data/test/rubygems/test_gem_source.rb +66 -51
  684. data/test/rubygems/test_gem_source_fetch_problem.rb +17 -8
  685. data/test/rubygems/test_gem_source_git.rb +74 -74
  686. data/test/rubygems/test_gem_source_installed.rb +16 -18
  687. data/test/rubygems/test_gem_source_list.rb +5 -5
  688. data/test/rubygems/test_gem_source_local.rb +15 -16
  689. data/test/rubygems/test_gem_source_lock.rb +31 -33
  690. data/test/rubygems/test_gem_source_specific_file.rb +18 -19
  691. data/test/rubygems/test_gem_source_subpath_problem.rb +49 -0
  692. data/test/rubygems/test_gem_source_vendor.rb +13 -15
  693. data/test/rubygems/test_gem_spec_fetcher.rb +74 -67
  694. data/test/rubygems/test_gem_specification.rb +1051 -1071
  695. data/test/rubygems/test_gem_stream_ui.rb +25 -23
  696. data/test/rubygems/test_gem_stub_specification.rb +39 -56
  697. data/test/rubygems/test_gem_text.rb +8 -3
  698. data/test/rubygems/test_gem_uninstaller.rb +269 -100
  699. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +3 -5
  700. data/test/rubygems/test_gem_update_suggestion.rb +208 -0
  701. data/test/rubygems/test_gem_uri.rb +39 -0
  702. data/test/rubygems/test_gem_uri_formatter.rb +14 -16
  703. data/test/rubygems/test_gem_util.rb +46 -34
  704. data/test/rubygems/test_gem_validator.rb +12 -15
  705. data/test/rubygems/test_gem_version.rb +49 -34
  706. data/test/rubygems/test_gem_version_option.rb +16 -18
  707. data/test/rubygems/test_kernel.rb +61 -53
  708. data/test/rubygems/test_project_sanity.rb +20 -0
  709. data/test/rubygems/test_remote_fetch_error.rb +7 -8
  710. data/test/rubygems/test_require.rb +415 -121
  711. data/test/rubygems/test_rubygems.rb +74 -0
  712. data/{lib/rubygems/test_utilities.rb → test/rubygems/utilities.rb} +74 -50
  713. data/test/rubygems/wrong_key_cert.pem +15 -15
  714. data/test/rubygems/wrong_key_cert_32.pem +15 -15
  715. data/test/test_changelog_generator.rb +17 -0
  716. metadata +218 -244
  717. data/.rubocop.yml +0 -66
  718. data/.travis.yml +0 -38
  719. data/History.txt +0 -3965
  720. data/Rakefile +0 -372
  721. data/appveyor.yml +0 -43
  722. data/bundler/CODE_OF_CONDUCT.md +0 -42
  723. data/bundler/CONTRIBUTING.md +0 -17
  724. data/bundler/exe/bundle_ruby +0 -60
  725. data/bundler/lib/bundler/cli/package.rb +0 -49
  726. data/bundler/lib/bundler/compatibility_guard.rb +0 -14
  727. data/bundler/lib/bundler/dep_proxy.rb +0 -48
  728. data/bundler/lib/bundler/gem_remote_fetcher.rb +0 -43
  729. data/bundler/lib/bundler/gemdeps.rb +0 -29
  730. data/bundler/lib/bundler/psyched_yaml.rb +0 -37
  731. data/bundler/lib/bundler/ssl_certs/certificate_manager.rb +0 -66
  732. data/bundler/lib/bundler/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -23
  733. data/bundler/lib/bundler/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -25
  734. data/bundler/lib/bundler/templates/gems.rb +0 -8
  735. data/bundler/lib/bundler/templates/newgem/test/test_helper.rb.tt +0 -4
  736. data/bundler/lib/bundler/templates/newgem/travis.yml.tt +0 -7
  737. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +0 -26
  738. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
  739. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +0 -81
  740. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +0 -36
  741. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +0 -66
  742. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +0 -62
  743. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +0 -63
  744. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +0 -61
  745. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +0 -126
  746. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +0 -46
  747. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +0 -36
  748. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +0 -136
  749. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +0 -223
  750. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +0 -143
  751. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +0 -6
  752. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +0 -101
  753. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +0 -67
  754. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +0 -837
  755. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +0 -46
  756. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +0 -58
  757. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -12
  758. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/faster.rb +0 -27
  759. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/ssl_reuse.rb +0 -129
  760. data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/io_binary_read.rb +0 -12
  761. data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/ordered_hash.rb +0 -129
  762. data/bundler/lib/bundler/version_ranges.rb +0 -76
  763. data/bundler/man/bundle-gem.1 +0 -80
  764. data/bundler/man/bundle-gem.ronn +0 -78
  765. data/bundler/man/bundle-package.1 +0 -55
  766. data/lib/rubygems/psych_additions.rb +0 -10
  767. data/lib/rubygems/server.rb +0 -878
  768. data/lib/rubygems/source_local.rb +0 -7
  769. data/lib/rubygems/source_specific_file.rb +0 -6
  770. data/lib/rubygems/ssl_certs/index.rubygems.org/GlobalSignRootCA.pem +0 -21
  771. data/lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -23
  772. data/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -25
  773. data/lib/rubygems/syck_hack.rb +0 -77
  774. data/lib/ubygems.rb +0 -14
  775. data/test/rubygems/bogussources.rb +0 -9
  776. data/test/rubygems/data/null-type.gemspec.rz +0 -0
  777. data/test/rubygems/test_gem_server.rb +0 -607
  778. data/util/CL2notes +0 -55
  779. data/util/ci +0 -77
  780. data/util/create_certs.rb +0 -171
  781. data/util/create_encrypted_key.rb +0 -16
  782. data/util/generate_spdx_license_list.rb +0 -61
  783. data/util/patch_with_prs.rb +0 -77
  784. data/util/rubocop +0 -8
  785. data/util/update_bundled_ca_certificates.rb +0 -139
  786. data/util/update_changelog.rb +0 -67
  787. /data/bundler/lib/bundler/{ssl_certs → man}/.document +0 -0
  788. /data/bundler/{man/bundle-check.ronn → lib/bundler/man/bundle-check.1.ronn} +0 -0
  789. /data/bundler/{man/bundle-doctor.ronn → lib/bundler/man/bundle-doctor.1.ronn} +0 -0
  790. /data/bundler/{man/bundle-info.ronn → lib/bundler/man/bundle-info.1.ronn} +0 -0
  791. /data/bundler/{man/bundle-lock.ronn → lib/bundler/man/bundle-lock.1.ronn} +0 -0
  792. /data/bundler/{man/bundle-pristine.ronn → lib/bundler/man/bundle-pristine.1.ronn} +0 -0
  793. /data/bundler/{man/bundle-remove.ronn → lib/bundler/man/bundle-remove.1.ronn} +0 -0
  794. /data/bundler/{man/bundle-show.ronn → lib/bundler/man/bundle-show.1.ronn} +0 -0
  795. /data/{bundler/lib/bundler/ssl_certs/index.rubygems.org → lib/rubygems/ssl_certs/rubygems.org}/GlobalSignRootCA.pem +0 -0
@@ -1,14 +1,17 @@
1
1
  # frozen_string_literal: true
2
- require 'rubygems/package/tar_test_case'
3
- require 'rubygems/package/tar_writer'
4
- require 'minitest/mock'
2
+ require_relative "package/tar_test_case"
3
+ require "rubygems/package/tar_writer"
5
4
 
6
5
  class TestGemPackageTarWriter < Gem::Package::TarTestCase
7
-
8
6
  def setup
9
7
  super
10
8
 
11
- @data = 'abcde12345'
9
+ # Setting `@default_source_date_epoch` to `nil` effectively resets the
10
+ # value used for `Gem.source_date_epoch` whenever `$SOURCE_DATE_EPOCH`
11
+ # is not set.
12
+ Gem.instance_variable_set(:'@default_source_date_epoch', nil)
13
+
14
+ @data = "abcde12345"
12
15
  @io = TempIO.new
13
16
  @tar_writer = Gem::Package::TarWriter.new @io
14
17
  @epoch = ENV["SOURCE_DATE_EPOCH"]
@@ -25,9 +28,11 @@ class TestGemPackageTarWriter < Gem::Package::TarTestCase
25
28
 
26
29
  def test_add_file
27
30
  Time.stub :now, Time.at(1458518157) do
28
- @tar_writer.add_file 'x', 0644 do |f| f.write 'a' * 10 end
31
+ @tar_writer.add_file "x", 0644 do |f|
32
+ f.write "a" * 10
33
+ end
29
34
 
30
- assert_headers_equal(tar_file_header('x', '', 0644, 10, Time.now),
35
+ assert_headers_equal(tar_file_header("x", "", 0644, 10, Time.now),
31
36
  @io.string[0, 512])
32
37
  end
33
38
  assert_equal "aaaaaaaaaa#{"\0" * 502}", @io.string[512, 512]
@@ -37,18 +42,18 @@ class TestGemPackageTarWriter < Gem::Package::TarTestCase
37
42
  def test_add_file_source_date_epoch
38
43
  ENV["SOURCE_DATE_EPOCH"] = "123456789"
39
44
  Time.stub :now, Time.at(1458518157) do
40
- @tar_writer.mkdir 'foo', 0644
45
+ @tar_writer.mkdir "foo", 0644
41
46
 
42
- assert_headers_equal tar_dir_header('foo', '', 0644, Time.at(ENV["SOURCE_DATE_EPOCH"].to_i).utc),
47
+ assert_headers_equal tar_dir_header("foo", "", 0644, Time.at(ENV["SOURCE_DATE_EPOCH"].to_i).utc),
43
48
  @io.string[0, 512]
44
49
  end
45
50
  end
46
51
 
47
52
  def test_add_symlink
48
53
  Time.stub :now, Time.at(1458518157) do
49
- @tar_writer.add_symlink 'x', 'y', 0644
54
+ @tar_writer.add_symlink "x", "y", 0644
50
55
 
51
- assert_headers_equal(tar_symlink_header('x', '', 0644, Time.now, 'y'),
56
+ assert_headers_equal(tar_symlink_header("x", "", 0644, Time.now, "y"),
52
57
  @io.string[0, 512])
53
58
  end
54
59
  assert_equal 512, @io.pos
@@ -57,30 +62,30 @@ class TestGemPackageTarWriter < Gem::Package::TarTestCase
57
62
  def test_add_symlink_source_date_epoch
58
63
  ENV["SOURCE_DATE_EPOCH"] = "123456789"
59
64
  Time.stub :now, Time.at(1458518157) do
60
- @tar_writer.add_symlink 'x', 'y', 0644
65
+ @tar_writer.add_symlink "x", "y", 0644
61
66
 
62
- assert_headers_equal(tar_symlink_header('x', '', 0644, Time.at(ENV["SOURCE_DATE_EPOCH"].to_i).utc, 'y'),
67
+ assert_headers_equal(tar_symlink_header("x", "", 0644, Time.at(ENV["SOURCE_DATE_EPOCH"].to_i).utc, "y"),
63
68
  @io.string[0, 512])
64
69
  end
65
70
  end
66
71
 
67
72
  def test_add_file_digest
68
- digest_algorithms = Digest::SHA1, Digest::SHA512
73
+ digest_algorithms = Digest::SHA1.new, Digest::SHA512.new
69
74
 
70
75
  Time.stub :now, Time.at(1458518157) do
71
- digests = @tar_writer.add_file_digest 'x', 0644, digest_algorithms do |io|
72
- io.write 'a' * 10
76
+ digests = @tar_writer.add_file_digest "x", 0644, digest_algorithms do |io|
77
+ io.write "a" * 10
73
78
  end
74
79
 
75
- assert_equal '3495ff69d34671d1e15b33a63c1379fdedd3a32a',
76
- digests['SHA1'].hexdigest
77
- assert_equal '4714870aff6c97ca09d135834fdb58a6389a50c1' \
78
- '1fef8ec4afef466fb60a23ac6b7a9c92658f14df' \
79
- '4993d6b40a4e4d8424196afc347e97640d68de61' \
80
- 'e1cf14b0',
81
- digests['SHA512'].hexdigest
80
+ assert_equal "3495ff69d34671d1e15b33a63c1379fdedd3a32a",
81
+ digests["SHA1"].hexdigest
82
+ assert_equal "4714870aff6c97ca09d135834fdb58a6389a50c1" \
83
+ "1fef8ec4afef466fb60a23ac6b7a9c92658f14df" \
84
+ "4993d6b40a4e4d8424196afc347e97640d68de61" \
85
+ "e1cf14b0",
86
+ digests["SHA512"].hexdigest
82
87
 
83
- assert_headers_equal(tar_file_header('x', '', 0644, 10, Time.now),
88
+ assert_headers_equal(tar_file_header("x", "", 0644, 10, Time.now),
84
89
  @io.string[0, 512])
85
90
  end
86
91
  assert_equal "aaaaaaaaaa#{"\0" * 502}", @io.string[512, 512]
@@ -88,22 +93,22 @@ class TestGemPackageTarWriter < Gem::Package::TarTestCase
88
93
  end
89
94
 
90
95
  def test_add_file_digest_multiple
91
- digest_algorithms = [Digest::SHA1, Digest::SHA512]
96
+ digest_algorithms = [Digest::SHA1.new, Digest::SHA512.new]
92
97
 
93
98
  Time.stub :now, Time.at(1458518157) do
94
- digests = @tar_writer.add_file_digest 'x', 0644, digest_algorithms do |io|
95
- io.write 'a' * 10
99
+ digests = @tar_writer.add_file_digest "x", 0644, digest_algorithms do |io|
100
+ io.write "a" * 10
96
101
  end
97
102
 
98
- assert_equal '3495ff69d34671d1e15b33a63c1379fdedd3a32a',
99
- digests['SHA1'].hexdigest
100
- assert_equal '4714870aff6c97ca09d135834fdb58a6389a50c1' \
101
- '1fef8ec4afef466fb60a23ac6b7a9c92658f14df' \
102
- '4993d6b40a4e4d8424196afc347e97640d68de61' \
103
- 'e1cf14b0',
104
- digests['SHA512'].hexdigest
103
+ assert_equal "3495ff69d34671d1e15b33a63c1379fdedd3a32a",
104
+ digests["SHA1"].hexdigest
105
+ assert_equal "4714870aff6c97ca09d135834fdb58a6389a50c1" \
106
+ "1fef8ec4afef466fb60a23ac6b7a9c92658f14df" \
107
+ "4993d6b40a4e4d8424196afc347e97640d68de61" \
108
+ "e1cf14b0",
109
+ digests["SHA512"].hexdigest
105
110
 
106
- assert_headers_equal(tar_file_header('x', '', 0644, 10, Time.now),
111
+ assert_headers_equal(tar_file_header("x", "", 0644, 10, Time.now),
107
112
  @io.string[0, 512])
108
113
  end
109
114
  assert_equal "aaaaaaaaaa#{"\0" * 502}", @io.string[512, 512]
@@ -111,27 +116,26 @@ class TestGemPackageTarWriter < Gem::Package::TarTestCase
111
116
  end
112
117
 
113
118
  def test_add_file_signer
114
- skip 'openssl is missing' unless defined?(OpenSSL::SSL)
119
+ pend "openssl is missing" unless Gem::HAVE_OPENSSL
115
120
 
116
121
  signer = Gem::Security::Signer.new PRIVATE_KEY, [PUBLIC_CERT]
117
122
 
118
123
  Time.stub :now, Time.at(1458518157) do
119
- @tar_writer.add_file_signed 'x', 0644, signer do |io|
120
- io.write 'a' * 10
124
+ @tar_writer.add_file_signed "x", 0644, signer do |io|
125
+ io.write "a" * 10
121
126
  end
122
127
 
123
- assert_headers_equal(tar_file_header('x', '', 0644, 10, Time.now),
128
+ assert_headers_equal(tar_file_header("x", "", 0644, 10, Time.now),
124
129
  @io.string[0, 512])
125
130
 
126
-
127
131
  assert_equal "aaaaaaaaaa#{"\0" * 502}", @io.string[512, 512]
128
132
 
129
133
  digest = signer.digest_algorithm.new
130
- digest.update 'a' * 10
134
+ digest.update "a" * 10
131
135
 
132
136
  signature = signer.sign digest.digest
133
137
 
134
- assert_headers_equal(tar_file_header('x.sig', '', 0444, signature.length,
138
+ assert_headers_equal(tar_file_header("x.sig", "", 0444, signature.length,
135
139
  Time.now),
136
140
  @io.string[1024, 512])
137
141
  assert_equal "#{signature}#{"\0" * (512 - signature.length)}",
@@ -145,13 +149,12 @@ class TestGemPackageTarWriter < Gem::Package::TarTestCase
145
149
  signer = Gem::Security::Signer.new nil, nil
146
150
 
147
151
  Time.stub :now, Time.at(1458518157) do
148
-
149
- @tar_writer.add_file_signed 'x', 0644, signer do |io|
150
- io.write 'a' * 10
152
+ @tar_writer.add_file_signed "x", 0644, signer do |io|
153
+ io.write "a" * 10
151
154
  end
152
155
 
153
- assert_headers_equal(tar_file_header('x', '', 0644, 10, Time.now),
154
- @io.string[0, 512])
156
+ assert_headers_equal(tar_file_header("x", "", 0644, 10, Time.now),
157
+ @io.string[0, 512])
155
158
  end
156
159
  assert_equal "aaaaaaaaaa#{"\0" * 502}", @io.string[512, 512]
157
160
 
@@ -160,47 +163,51 @@ class TestGemPackageTarWriter < Gem::Package::TarTestCase
160
163
 
161
164
  def test_add_file_simple
162
165
  Time.stub :now, Time.at(1458518157) do
163
- @tar_writer.add_file_simple 'x', 0644, 10 do |io| io.write "a" * 10 end
166
+ @tar_writer.add_file_simple "x", 0644, 10 do |io|
167
+ io.write "a" * 10
168
+ end
164
169
 
165
- assert_headers_equal(tar_file_header('x', '', 0644, 10, Time.now),
166
- @io.string[0, 512])
167
- end
170
+ assert_headers_equal(tar_file_header("x", "", 0644, 10, Time.now),
171
+ @io.string[0, 512])
168
172
 
169
- assert_equal "aaaaaaaaaa#{"\0" * 502}", @io.string[512, 512]
170
- assert_equal 1024, @io.pos
173
+ assert_equal "aaaaaaaaaa#{"\0" * 502}", @io.string[512, 512]
174
+ assert_equal 1024, @io.pos
175
+ end
171
176
  end
172
177
 
173
178
  def test_add_file_simple_source_date_epoch
174
179
  ENV["SOURCE_DATE_EPOCH"] = "123456789"
175
180
  Time.stub :now, Time.at(1458518157) do
176
- @tar_writer.add_file_simple 'x', 0644, 10 do |io| io.write "a" * 10 end
181
+ @tar_writer.add_file_simple "x", 0644, 10 do |io|
182
+ io.write "a" * 10
183
+ end
177
184
 
178
- assert_headers_equal(tar_file_header('x', '', 0644, 10, Time.at(ENV["SOURCE_DATE_EPOCH"].to_i).utc),
179
- @io.string[0, 512])
185
+ assert_headers_equal(tar_file_header("x", "", 0644, 10, Time.at(ENV["SOURCE_DATE_EPOCH"].to_i).utc),
186
+ @io.string[0, 512])
180
187
  end
181
188
  end
182
189
 
183
190
  def test_add_file_simple_padding
184
191
  Time.stub :now, Time.at(1458518157) do
185
- @tar_writer.add_file_simple 'x', 0, 100
192
+ @tar_writer.add_file_simple "x", 0, 100
186
193
 
187
- assert_headers_equal tar_file_header('x', '', 0, 100, Time.now),
188
- @io.string[0, 512]
194
+ assert_headers_equal tar_file_header("x", "", 0, 100, Time.now),
195
+ @io.string[0, 512]
189
196
  end
190
197
 
191
198
  assert_equal "\0" * 512, @io.string[512, 512]
192
199
  end
193
200
 
194
201
  def test_add_file_simple_data
195
- @tar_writer.add_file_simple("lib/foo/bar", 0, 10) { |f| f.write @data }
202
+ @tar_writer.add_file_simple("lib/foo/bar", 0, 10) {|f| f.write @data }
196
203
  @tar_writer.flush
197
204
 
198
- assert_equal @data + ("\0" * (512-@data.size)),
205
+ assert_equal @data + ("\0" * (512 - @data.size)),
199
206
  @io.string[512, 512]
200
207
  end
201
208
 
202
209
  def test_add_file_simple_size
203
- assert_raises Gem::Package::TarWriter::FileOverflow do
210
+ assert_raise Gem::Package::TarWriter::FileOverflow do
204
211
  @tar_writer.add_file_simple("lib/foo/bar", 0, 10) do |io|
205
212
  io.write "1" * 11
206
213
  end
@@ -212,37 +219,37 @@ class TestGemPackageTarWriter < Gem::Package::TarTestCase
212
219
 
213
220
  assert_equal "\0" * 1024, @io.string
214
221
 
215
- e = assert_raises IOError do
222
+ e = assert_raise IOError do
216
223
  @tar_writer.close
217
224
  end
218
- assert_equal 'closed Gem::Package::TarWriter', e.message
225
+ assert_equal "closed Gem::Package::TarWriter", e.message
219
226
 
220
- e = assert_raises IOError do
227
+ e = assert_raise IOError do
221
228
  @tar_writer.flush
222
229
  end
223
- assert_equal 'closed Gem::Package::TarWriter', e.message
230
+ assert_equal "closed Gem::Package::TarWriter", e.message
224
231
 
225
- e = assert_raises IOError do
226
- @tar_writer.add_file 'x', 0
232
+ e = assert_raise IOError do
233
+ @tar_writer.add_file "x", 0
227
234
  end
228
- assert_equal 'closed Gem::Package::TarWriter', e.message
235
+ assert_equal "closed Gem::Package::TarWriter", e.message
229
236
 
230
- e = assert_raises IOError do
231
- @tar_writer.add_file_simple 'x', 0, 0
237
+ e = assert_raise IOError do
238
+ @tar_writer.add_file_simple "x", 0, 0
232
239
  end
233
- assert_equal 'closed Gem::Package::TarWriter', e.message
240
+ assert_equal "closed Gem::Package::TarWriter", e.message
234
241
 
235
- e = assert_raises IOError do
236
- @tar_writer.mkdir 'x', 0
242
+ e = assert_raise IOError do
243
+ @tar_writer.mkdir "x", 0
237
244
  end
238
- assert_equal 'closed Gem::Package::TarWriter', e.message
245
+ assert_equal "closed Gem::Package::TarWriter", e.message
239
246
  end
240
247
 
241
248
  def test_mkdir
242
249
  Time.stub :now, Time.at(1458518157) do
243
- @tar_writer.mkdir 'foo', 0644
250
+ @tar_writer.mkdir "foo", 0644
244
251
 
245
- assert_headers_equal tar_dir_header('foo', '', 0644, Time.now),
252
+ assert_headers_equal tar_dir_header("foo", "", 0644, Time.now),
246
253
  @io.string[0, 512]
247
254
 
248
255
  assert_equal 512, @io.pos
@@ -252,73 +259,72 @@ class TestGemPackageTarWriter < Gem::Package::TarTestCase
252
259
  def test_mkdir_source_date_epoch
253
260
  ENV["SOURCE_DATE_EPOCH"] = "123456789"
254
261
  Time.stub :now, Time.at(1458518157) do
255
- @tar_writer.mkdir 'foo', 0644
262
+ @tar_writer.mkdir "foo", 0644
256
263
 
257
- assert_headers_equal tar_dir_header('foo', '', 0644, Time.at(ENV["SOURCE_DATE_EPOCH"].to_i).utc),
264
+ assert_headers_equal tar_dir_header("foo", "", 0644, Time.at(ENV["SOURCE_DATE_EPOCH"].to_i).utc),
258
265
  @io.string[0, 512]
259
266
  end
260
267
  end
261
268
 
262
269
  def test_split_name
263
- assert_equal ['b' * 100, 'a' * 155],
270
+ assert_equal ["b" * 100, "a" * 155],
264
271
  @tar_writer.split_name("#{'a' * 155}/#{'b' * 100}")
265
272
 
266
- assert_equal ["#{'qwer/' * 19}bla", 'a' * 151],
273
+ assert_equal ["#{'qwer/' * 19}bla", "a" * 151],
267
274
  @tar_writer.split_name("#{'a' * 151}/#{'qwer/' * 19}bla")
268
275
  names = [
269
- ([''] + ['123456789'] * 9 + ['1234567890']).join('/'), # 101 bytes (several pieces)
270
- (['123456789'] * 9 + ['1234567890'] + ['']).join('/'), # 101 bytes (several pieces)
271
- '/' * 99,
272
- '/' * 100,
273
- '/' * 101,
274
- '/' * 102,
276
+ ([""] + ["123456789"] * 9 + ["1234567890"]).join("/"), # 101 bytes (several pieces)
277
+ (["123456789"] * 9 + ["1234567890"] + [""]).join("/"), # 101 bytes (several pieces)
278
+ "/" * 99,
279
+ "/" * 100,
280
+ "/" * 101,
281
+ "/" * 102,
275
282
  ]
276
283
  names.each do |name|
277
284
  newname, prefix = @tar_writer.split_name(name)
278
285
  assert(!(newname.empty?), "split_name() returned empty name")
279
286
  assert(newname.bytesize <= 100, "split_name() returned name longer than 100 bytes: '#{newname}' for '#{name}'")
280
287
  assert(prefix.bytesize <= 155, "split_name() returned prefix longer than 155 bytes: '#{prefix}' for '#{name}'")
281
- newname = [prefix, newname].join('/') unless prefix.empty?
288
+ newname = [prefix, newname].join("/") unless prefix.empty?
282
289
  assert_equal name, newname
283
290
  end
284
291
  end
285
292
 
286
293
  def test_split_name_too_long_name
287
- name = File.join 'a', 'b' * 100
288
- assert_equal ['b' * 100, 'a'], @tar_writer.split_name(name)
294
+ name = File.join "a", "b" * 100
295
+ assert_equal ["b" * 100, "a"], @tar_writer.split_name(name)
289
296
 
290
- name = File.join 'a', 'b' * 101
291
- exception = assert_raises Gem::Package::TooLongFileName do
297
+ name = File.join "a", "b" * 101
298
+ exception = assert_raise Gem::Package::TooLongFileName do
292
299
  @tar_writer.split_name name
293
300
  end
294
301
  assert_includes exception.message, name
295
302
 
296
303
  # note, GNU tar 1.28 is unable to handle this case too,
297
304
  # tested with "tar --format=ustar -cPf /tmp/foo.tartar -- /aaaaaa....a"
298
- name = '/' + 'a' * 100
299
- exception = assert_raises Gem::Package::TooLongFileName do
305
+ name = "/" + "a" * 100
306
+ exception = assert_raise Gem::Package::TooLongFileName do
300
307
  @tar_writer.split_name name
301
308
  end
302
309
  assert_includes exception.message, name
303
310
  end
304
311
 
305
312
  def test_split_name_too_long_prefix
306
- name = File.join 'a' * 155, 'b'
307
- assert_equal ['b', 'a' * 155], @tar_writer.split_name(name)
313
+ name = File.join "a" * 155, "b"
314
+ assert_equal ["b", "a" * 155], @tar_writer.split_name(name)
308
315
 
309
- name = File.join 'a' * 156, 'b'
310
- exception = assert_raises Gem::Package::TooLongFileName do
316
+ name = File.join "a" * 156, "b"
317
+ exception = assert_raise Gem::Package::TooLongFileName do
311
318
  @tar_writer.split_name name
312
319
  end
313
320
  assert_includes exception.message, name
314
321
  end
315
322
 
316
323
  def test_split_name_too_long_total
317
- name = 'a' * 257
318
- exception = assert_raises Gem::Package::TooLongFileName do
324
+ name = "a" * 257
325
+ exception = assert_raise Gem::Package::TooLongFileName do
319
326
  @tar_writer.split_name name
320
327
  end
321
328
  assert_includes exception.message, name
322
329
  end
323
-
324
330
  end
@@ -1,45 +1,79 @@
1
1
  # frozen_string_literal: true
2
- require 'rubygems/test_case'
3
- require 'rubygems'
4
- require 'bundler/errors'
2
+ require_relative "helper"
3
+ require "rubygems"
4
+
5
5
  begin
6
- require 'rubygems/package_task'
7
- rescue LoadError, Bundler::GemfileNotFound
6
+ require "rubygems/package_task"
7
+ rescue LoadError => e
8
+ raise unless e.path == "rake/packagetask"
8
9
  end
9
10
 
10
- class TestGemPackageTask < Gem::TestCase
11
-
12
- def setup
13
- super
11
+ unless defined?(Rake::PackageTask)
12
+ warn "Skipping Gem::PackageTask tests. rake not found."
13
+ end
14
14
 
15
- Rake.application = Rake::Application.new
15
+ class TestGemPackageTask < Gem::TestCase
16
+ def test_gem_package
17
+ original_rake_fileutils_verbosity = RakeFileUtils.verbose_flag
16
18
  RakeFileUtils.verbose_flag = false
17
- end
18
19
 
19
- def test_gem_package
20
20
  gem = Gem::Specification.new do |g|
21
21
  g.name = "pkgr"
22
22
  g.version = "1.2.3"
23
23
 
24
24
  g.authors = %w[author]
25
25
  g.files = %w[x]
26
- g.summary = 'summary'
26
+ g.summary = "summary"
27
27
  end
28
28
 
29
- pkg = Gem::PackageTask.new(gem) do |p|
29
+ Rake.application = Rake::Application.new
30
+
31
+ pkg = Gem::PackageTask.new(gem) do |p|
30
32
  p.package_files << "y"
31
33
  end
32
34
 
33
35
  assert_equal %w[x y], pkg.package_files
34
36
 
35
37
  Dir.chdir @tempdir do
36
- FileUtils.touch 'x'
37
- FileUtils.touch 'y'
38
+ FileUtils.touch "x"
39
+ FileUtils.touch "y"
40
+
41
+ Rake.application["package"].invoke
42
+
43
+ assert_path_exist "pkg/pkgr-1.2.3.gem"
44
+ end
45
+ ensure
46
+ RakeFileUtils.verbose_flag = original_rake_fileutils_verbosity
47
+ end
48
+
49
+ def test_gem_package_prints_to_stdout_by_default
50
+ gem = Gem::Specification.new do |g|
51
+ g.name = "pkgr"
52
+ g.version = "1.2.3"
53
+
54
+ g.authors = %w[author]
55
+ g.files = %w[x]
56
+ g.summary = "summary"
57
+ end
58
+
59
+ _, err = capture_output do
60
+ Rake.application = Rake::Application.new
61
+
62
+ pkg = Gem::PackageTask.new(gem) do |p|
63
+ p.package_files << "y"
64
+ end
38
65
 
39
- Rake.application['package'].invoke
66
+ assert_equal %w[x y], pkg.package_files
40
67
 
41
- assert_path_exists 'pkg/pkgr-1.2.3.gem'
68
+ Dir.chdir @tempdir do
69
+ FileUtils.touch "x"
70
+ FileUtils.touch "y"
71
+
72
+ Rake.application["package"].invoke
73
+ end
42
74
  end
75
+
76
+ assert_empty err
43
77
  end
44
78
 
45
79
  def test_gem_package_with_current_platform
@@ -49,7 +83,7 @@ class TestGemPackageTask < Gem::TestCase
49
83
  g.files = Rake::FileList["x"].resolve
50
84
  g.platform = Gem::Platform::CURRENT
51
85
  end
52
- pkg = Gem::PackageTask.new(gem) do |p|
86
+ pkg = Gem::PackageTask.new(gem) do |p|
53
87
  p.package_files << "y"
54
88
  end
55
89
  assert_equal ["x", "y"], pkg.package_files
@@ -62,7 +96,7 @@ class TestGemPackageTask < Gem::TestCase
62
96
  g.files = Rake::FileList["x"].resolve
63
97
  g.platform = Gem::Platform::RUBY
64
98
  end
65
- pkg = Gem::PackageTask.new(gem) do |p|
99
+ pkg = Gem::PackageTask.new(gem) do |p|
66
100
  p.package_files << "y"
67
101
  end
68
102
  assert_equal ["x", "y"], pkg.package_files
@@ -70,15 +104,14 @@ class TestGemPackageTask < Gem::TestCase
70
104
 
71
105
  def test_package_dir_path
72
106
  gem = Gem::Specification.new do |g|
73
- g.name = 'nokogiri'
74
- g.version = '1.5.0'
75
- g.platform = 'java'
107
+ g.name = "nokogiri"
108
+ g.version = "1.5.0"
109
+ g.platform = "java"
76
110
  end
77
111
 
78
112
  pkg = Gem::PackageTask.new gem
79
113
  pkg.define
80
114
 
81
- assert_equal 'pkg/nokogiri-1.5.0-java', pkg.package_dir_path
115
+ assert_equal "pkg/nokogiri-1.5.0-java", pkg.package_dir_path
82
116
  end
83
-
84
117
  end if defined?(Rake::PackageTask)
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
- require 'rubygems/test_case'
3
- require 'rubygems'
4
- require 'fileutils'
2
+ require_relative "helper"
3
+ require "rubygems"
4
+ require "fileutils"
5
5
 
6
6
  class TestGemPathSupport < Gem::TestCase
7
7
  def setup
@@ -16,7 +16,7 @@ class TestGemPathSupport < Gem::TestCase
16
16
 
17
17
  assert_equal ENV["GEM_HOME"], ps.home
18
18
 
19
- expected = util_path
19
+ expected = ENV["GEM_PATH"].split(File::PATH_SEPARATOR)
20
20
  assert_equal expected, ps.path, "defaults to GEM_PATH"
21
21
  end
22
22
 
@@ -25,7 +25,7 @@ class TestGemPathSupport < Gem::TestCase
25
25
 
26
26
  assert_equal File.join(@tempdir, "foo"), ps.home
27
27
 
28
- expected = util_path + [File.join(@tempdir, 'foo')]
28
+ expected = ENV["GEM_PATH"].split(File::PATH_SEPARATOR) + [File.join(@tempdir, "foo")]
29
29
  assert_equal expected, ps.path
30
30
  end
31
31
 
@@ -39,17 +39,19 @@ class TestGemPathSupport < Gem::TestCase
39
39
  end
40
40
 
41
41
  def test_initialize_path
42
- ps = Gem::PathSupport.new ENV.to_hash.merge("GEM_PATH" => %W[#{@tempdir}/foo #{@tempdir}/bar].join(Gem.path_separator))
42
+ Gem.stub(:path_separator, File::PATH_SEPARATOR) do
43
+ ps = Gem::PathSupport.new ENV.to_hash.merge("GEM_PATH" => %W[#{@tempdir}/foo #{@tempdir}/bar].join(Gem.path_separator))
43
44
 
44
- assert_equal ENV["GEM_HOME"], ps.home
45
+ assert_equal ENV["GEM_HOME"], ps.home
45
46
 
46
- expected = [
47
- File.join(@tempdir, 'foo'),
48
- File.join(@tempdir, 'bar'),
49
- ENV["GEM_HOME"],
50
- ]
47
+ expected = [
48
+ File.join(@tempdir, "foo"),
49
+ File.join(@tempdir, "bar"),
50
+ ENV["GEM_HOME"],
51
+ ]
51
52
 
52
- assert_equal expected, ps.path
53
+ assert_equal expected, ps.path
54
+ end
53
55
  end
54
56
 
55
57
  def test_initialize_regexp_path_separator
@@ -63,8 +65,8 @@ class TestGemPathSupport < Gem::TestCase
63
65
  assert_equal ENV["GEM_HOME"], ps.home
64
66
 
65
67
  expected = [
66
- File.join(@tempdir, 'foo'),
67
- File.join(@tempdir, 'bar'),
68
+ File.join(@tempdir, "foo"),
69
+ File.join(@tempdir, "bar"),
68
70
  ] + Gem.default_path << ENV["GEM_HOME"]
69
71
 
70
72
  assert_equal expected, ps.path
@@ -81,25 +83,23 @@ class TestGemPathSupport < Gem::TestCase
81
83
  assert_equal ENV["GEM_HOME"], ps.home
82
84
 
83
85
  expected = [
84
- File.join(@tempdir, 'foo'),
85
- File.join(@tempdir, 'bar'),
86
+ File.join(@tempdir, "foo"),
87
+ File.join(@tempdir, "bar"),
86
88
  ] + Gem.default_path << ENV["GEM_HOME"]
87
89
 
88
90
  assert_equal expected, ps.path
89
91
  end
90
92
 
91
93
  def test_initialize_home_path
92
- ps = Gem::PathSupport.new("GEM_HOME" => "#{@tempdir}/foo",
93
- "GEM_PATH" => %W[#{@tempdir}/foo #{@tempdir}/bar].join(Gem.path_separator))
94
+ Gem.stub(:path_separator, File::PATH_SEPARATOR) do
95
+ ps = Gem::PathSupport.new("GEM_HOME" => "#{@tempdir}/foo",
96
+ "GEM_PATH" => %W[#{@tempdir}/foo #{@tempdir}/bar].join(Gem.path_separator))
94
97
 
95
- assert_equal File.join(@tempdir, "foo"), ps.home
96
-
97
- expected = [File.join(@tempdir, 'foo'), File.join(@tempdir, 'bar')]
98
- assert_equal expected, ps.path
99
- end
98
+ assert_equal File.join(@tempdir, "foo"), ps.home
100
99
 
101
- def util_path
102
- ENV["GEM_PATH"].split(File::PATH_SEPARATOR)
100
+ expected = [File.join(@tempdir, "foo"), File.join(@tempdir, "bar")]
101
+ assert_equal expected, ps.path
102
+ end
103
103
  end
104
104
 
105
105
  def test_initialize_spec
@@ -108,12 +108,12 @@ class TestGemPathSupport < Gem::TestCase
108
108
  ps = Gem::PathSupport.new ENV
109
109
  assert_equal Gem.default_spec_cache_dir, ps.spec_cache_dir
110
110
 
111
- ENV["GEM_SPEC_CACHE"] = 'bar'
111
+ ENV["GEM_SPEC_CACHE"] = "bar"
112
112
 
113
113
  ps = Gem::PathSupport.new ENV
114
114
  assert_equal ENV["GEM_SPEC_CACHE"], ps.spec_cache_dir
115
115
 
116
- ENV["GEM_SPEC_CACHE"] = File.join @tempdir, 'spec_cache'
116
+ ENV["GEM_SPEC_CACHE"] = File.join @tempdir, "spec_cache"
117
117
 
118
118
  ps = Gem::PathSupport.new "GEM_SPEC_CACHE" => "foo"
119
119
  assert_equal "foo", ps.spec_cache_dir
@@ -126,7 +126,7 @@ class TestGemPathSupport < Gem::TestCase
126
126
  begin
127
127
  File.symlink(dir, symlink)
128
128
  rescue NotImplementedError, SystemCallError
129
- skip 'symlinks not supported'
129
+ pend "symlinks not supported"
130
130
  end
131
131
  not_existing = "#{@tempdir}/does_not_exist"
132
132
  path = "#{symlink}#{File::PATH_SEPARATOR}#{not_existing}"