rubygems-update 2.4.4 → 2.7.4

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of rubygems-update might be problematic. Click here for more details.

Files changed (627) hide show
  1. checksums.yaml +5 -5
  2. data/.travis.yml +58 -0
  3. data/CODE_OF_CONDUCT.md +43 -0
  4. data/CONTRIBUTING.rdoc +130 -0
  5. data/CVE-2015-3900.txt +40 -0
  6. data/History.txt +814 -11
  7. data/MAINTAINERS.txt +12 -0
  8. data/Manifest.txt +299 -11
  9. data/POLICIES.rdoc +74 -0
  10. data/README.md +72 -0
  11. data/Rakefile +102 -18
  12. data/appveyor.yml +61 -24
  13. data/bin/gem +1 -1
  14. data/bin/update_rubygems +2 -2
  15. data/bundler/CHANGELOG.md +2847 -0
  16. data/bundler/CODE_OF_CONDUCT.md +42 -0
  17. data/bundler/CONTRIBUTING.md +17 -0
  18. data/bundler/LICENSE.md +23 -0
  19. data/bundler/README.md +59 -0
  20. data/bundler/bundler.gemspec +55 -0
  21. data/bundler/exe/bundle +31 -0
  22. data/bundler/exe/bundle_ruby +60 -0
  23. data/bundler/exe/bundler +4 -0
  24. data/bundler/lib/bundler/build_metadata.rb +36 -0
  25. data/bundler/lib/bundler/capistrano.rb +22 -0
  26. data/bundler/lib/bundler/cli/add.rb +25 -0
  27. data/bundler/lib/bundler/cli/binstubs.rb +43 -0
  28. data/bundler/lib/bundler/cli/cache.rb +36 -0
  29. data/bundler/lib/bundler/cli/check.rb +38 -0
  30. data/bundler/lib/bundler/cli/clean.rb +25 -0
  31. data/bundler/lib/bundler/cli/common.rb +102 -0
  32. data/bundler/lib/bundler/cli/config.rb +119 -0
  33. data/bundler/lib/bundler/cli/console.rb +43 -0
  34. data/bundler/lib/bundler/cli/doctor.rb +94 -0
  35. data/bundler/lib/bundler/cli/exec.rb +105 -0
  36. data/bundler/lib/bundler/cli/gem.rb +249 -0
  37. data/bundler/lib/bundler/cli/info.rb +50 -0
  38. data/bundler/lib/bundler/cli/init.rb +46 -0
  39. data/bundler/lib/bundler/cli/inject.rb +60 -0
  40. data/bundler/lib/bundler/cli/install.rb +214 -0
  41. data/bundler/lib/bundler/cli/issue.rb +40 -0
  42. data/bundler/lib/bundler/cli/list.rb +22 -0
  43. data/bundler/lib/bundler/cli/lock.rb +63 -0
  44. data/bundler/lib/bundler/cli/open.rb +26 -0
  45. data/bundler/lib/bundler/cli/outdated.rb +260 -0
  46. data/bundler/lib/bundler/cli/package.rb +49 -0
  47. data/bundler/lib/bundler/cli/platform.rb +46 -0
  48. data/bundler/lib/bundler/cli/plugin.rb +24 -0
  49. data/bundler/lib/bundler/cli/pristine.rb +43 -0
  50. data/bundler/lib/bundler/cli/show.rb +75 -0
  51. data/bundler/lib/bundler/cli/update.rb +89 -0
  52. data/bundler/lib/bundler/cli/viz.rb +31 -0
  53. data/bundler/lib/bundler/cli.rb +746 -0
  54. data/bundler/lib/bundler/compact_index_client/cache.rb +118 -0
  55. data/bundler/lib/bundler/compact_index_client/updater.rb +107 -0
  56. data/bundler/lib/bundler/compact_index_client.rb +109 -0
  57. data/bundler/lib/bundler/compatibility_guard.rb +14 -0
  58. data/bundler/lib/bundler/constants.rb +7 -0
  59. data/bundler/lib/bundler/current_ruby.rb +86 -0
  60. data/bundler/lib/bundler/definition.rb +984 -0
  61. data/bundler/lib/bundler/dep_proxy.rb +48 -0
  62. data/bundler/lib/bundler/dependency.rb +138 -0
  63. data/bundler/lib/bundler/deployment.rb +69 -0
  64. data/bundler/lib/bundler/deprecate.rb +43 -0
  65. data/bundler/lib/bundler/dsl.rb +599 -0
  66. data/bundler/lib/bundler/endpoint_specification.rb +141 -0
  67. data/bundler/lib/bundler/env.rb +153 -0
  68. data/bundler/lib/bundler/environment_preserver.rb +59 -0
  69. data/bundler/lib/bundler/errors.rb +158 -0
  70. data/bundler/lib/bundler/feature_flag.rb +67 -0
  71. data/bundler/lib/bundler/fetcher/base.rb +52 -0
  72. data/bundler/lib/bundler/fetcher/compact_index.rb +126 -0
  73. data/bundler/lib/bundler/fetcher/dependency.rb +82 -0
  74. data/bundler/lib/bundler/fetcher/downloader.rb +79 -0
  75. data/bundler/lib/bundler/fetcher/index.rb +52 -0
  76. data/bundler/lib/bundler/fetcher.rb +312 -0
  77. data/bundler/lib/bundler/friendly_errors.rb +129 -0
  78. data/bundler/lib/bundler/gem_helper.rb +202 -0
  79. data/bundler/lib/bundler/gem_helpers.rb +101 -0
  80. data/bundler/lib/bundler/gem_remote_fetcher.rb +43 -0
  81. data/bundler/lib/bundler/gem_tasks.rb +7 -0
  82. data/bundler/lib/bundler/gem_version_promoter.rb +176 -0
  83. data/bundler/lib/bundler/gemdeps.rb +29 -0
  84. data/bundler/lib/bundler/graph.rb +152 -0
  85. data/bundler/lib/bundler/index.rb +213 -0
  86. data/bundler/lib/bundler/injector.rb +94 -0
  87. data/bundler/lib/bundler/inline.rb +74 -0
  88. data/bundler/lib/bundler/installer/gem_installer.rb +78 -0
  89. data/bundler/lib/bundler/installer/parallel_installer.rb +228 -0
  90. data/bundler/lib/bundler/installer/standalone.rb +53 -0
  91. data/bundler/lib/bundler/installer.rb +287 -0
  92. data/bundler/lib/bundler/lazy_specification.rb +123 -0
  93. data/bundler/lib/bundler/lockfile_generator.rb +95 -0
  94. data/bundler/lib/bundler/lockfile_parser.rb +256 -0
  95. data/bundler/lib/bundler/match_platform.rb +24 -0
  96. data/bundler/lib/bundler/mirror.rb +223 -0
  97. data/bundler/lib/bundler/plugin/api/source.rb +306 -0
  98. data/bundler/lib/bundler/plugin/api.rb +81 -0
  99. data/bundler/lib/bundler/plugin/dsl.rb +53 -0
  100. data/bundler/lib/bundler/plugin/index.rb +157 -0
  101. data/bundler/lib/bundler/plugin/installer/git.rb +38 -0
  102. data/bundler/lib/bundler/plugin/installer/rubygems.rb +27 -0
  103. data/bundler/lib/bundler/plugin/installer.rb +96 -0
  104. data/bundler/lib/bundler/plugin/source_list.rb +27 -0
  105. data/bundler/lib/bundler/plugin.rb +285 -0
  106. data/bundler/lib/bundler/process_lock.rb +24 -0
  107. data/bundler/lib/bundler/psyched_yaml.rb +37 -0
  108. data/bundler/lib/bundler/remote_specification.rb +114 -0
  109. data/bundler/lib/bundler/resolver/spec_group.rb +111 -0
  110. data/bundler/lib/bundler/resolver.rb +369 -0
  111. data/bundler/lib/bundler/retry.rb +66 -0
  112. data/bundler/lib/bundler/ruby_dsl.rb +18 -0
  113. data/bundler/lib/bundler/ruby_version.rb +152 -0
  114. data/bundler/lib/bundler/rubygems_ext.rb +210 -0
  115. data/bundler/lib/bundler/rubygems_gem_installer.rb +99 -0
  116. data/bundler/lib/bundler/rubygems_integration.rb +892 -0
  117. data/bundler/lib/bundler/runtime.rb +316 -0
  118. data/bundler/lib/bundler/settings/validator.rb +79 -0
  119. data/bundler/lib/bundler/settings.rb +442 -0
  120. data/bundler/lib/bundler/setup.rb +28 -0
  121. data/bundler/lib/bundler/shared_helpers.rb +356 -0
  122. data/bundler/lib/bundler/similarity_detector.rb +63 -0
  123. data/bundler/lib/bundler/source/gemspec.rb +18 -0
  124. data/bundler/lib/bundler/source/git/git_proxy.rb +257 -0
  125. data/bundler/lib/bundler/source/git.rb +328 -0
  126. data/bundler/lib/bundler/source/metadata.rb +63 -0
  127. data/bundler/lib/bundler/source/path/installer.rb +74 -0
  128. data/bundler/lib/bundler/source/path.rb +249 -0
  129. data/bundler/lib/bundler/source/rubygems/remote.rb +66 -0
  130. data/bundler/lib/bundler/source/rubygems.rb +532 -0
  131. data/bundler/lib/bundler/source.rb +94 -0
  132. data/bundler/lib/bundler/source_list.rb +186 -0
  133. data/bundler/lib/bundler/spec_set.rb +189 -0
  134. data/bundler/lib/bundler/ssl_certs/.document +1 -0
  135. data/bundler/lib/bundler/ssl_certs/certificate_manager.rb +66 -0
  136. data/bundler/lib/bundler/ssl_certs/index.rubygems.org/GlobalSignRootCA.pem +21 -0
  137. data/{lib/rubygems/ssl_certs → bundler/lib/bundler/ssl_certs/rubygems.global.ssl.fastly.net}/DigiCertHighAssuranceEVRootCA.pem +0 -0
  138. data/{lib/rubygems/ssl_certs/AddTrustExternalCARoot-2048.pem → bundler/lib/bundler/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem} +0 -0
  139. data/bundler/lib/bundler/stub_specification.rb +108 -0
  140. data/bundler/lib/bundler/templates/Executable +21 -0
  141. data/bundler/lib/bundler/templates/Executable.bundler +105 -0
  142. data/bundler/lib/bundler/templates/Executable.standalone +14 -0
  143. data/bundler/lib/bundler/templates/Gemfile +7 -0
  144. data/bundler/lib/bundler/templates/gems.rb +8 -0
  145. data/bundler/lib/bundler/templates/newgem/.travis.yml.tt +5 -0
  146. data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +74 -0
  147. data/bundler/lib/bundler/templates/newgem/Gemfile.tt +6 -0
  148. data/bundler/lib/bundler/templates/newgem/LICENSE.txt.tt +21 -0
  149. data/bundler/lib/bundler/templates/newgem/README.md.tt +47 -0
  150. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +29 -0
  151. data/bundler/lib/bundler/templates/newgem/bin/console.tt +14 -0
  152. data/bundler/lib/bundler/templates/newgem/bin/setup.tt +8 -0
  153. data/bundler/lib/bundler/templates/newgem/exe/newgem.tt +3 -0
  154. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +3 -0
  155. data/bundler/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt +9 -0
  156. data/bundler/lib/bundler/templates/newgem/ext/newgem/newgem.h.tt +6 -0
  157. data/bundler/lib/bundler/templates/newgem/gitignore.tt +20 -0
  158. data/bundler/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +7 -0
  159. data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +12 -0
  160. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +49 -0
  161. data/bundler/lib/bundler/templates/newgem/rspec.tt +3 -0
  162. data/bundler/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +9 -0
  163. data/bundler/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +14 -0
  164. data/bundler/lib/bundler/templates/newgem/test/newgem_test.rb.tt +11 -0
  165. data/bundler/lib/bundler/templates/newgem/test/test_helper.rb.tt +4 -0
  166. data/bundler/lib/bundler/ui/rg_proxy.rb +19 -0
  167. data/bundler/lib/bundler/ui/shell.rb +144 -0
  168. data/bundler/lib/bundler/ui/silent.rb +69 -0
  169. data/bundler/lib/bundler/ui.rb +9 -0
  170. data/bundler/lib/bundler/uri_credentials_filter.rb +37 -0
  171. data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +1638 -0
  172. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +26 -0
  173. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +57 -0
  174. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +81 -0
  175. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +36 -0
  176. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +66 -0
  177. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +62 -0
  178. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +63 -0
  179. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +61 -0
  180. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +126 -0
  181. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +46 -0
  182. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +36 -0
  183. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +126 -0
  184. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +223 -0
  185. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +138 -0
  186. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +6 -0
  187. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +101 -0
  188. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +67 -0
  189. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +837 -0
  190. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +46 -0
  191. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +58 -0
  192. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +12 -0
  193. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/faster.rb +27 -0
  194. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/ssl_reuse.rb +129 -0
  195. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +1233 -0
  196. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb +104 -0
  197. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +60 -0
  198. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/directory.rb +118 -0
  199. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/empty_directory.rb +143 -0
  200. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +364 -0
  201. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +109 -0
  202. data/bundler/lib/bundler/vendor/thor/lib/thor/actions.rb +321 -0
  203. data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +679 -0
  204. data/bundler/lib/bundler/vendor/thor/lib/thor/command.rb +135 -0
  205. data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +97 -0
  206. data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/io_binary_read.rb +12 -0
  207. data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/ordered_hash.rb +129 -0
  208. data/bundler/lib/bundler/vendor/thor/lib/thor/error.rb +32 -0
  209. data/bundler/lib/bundler/vendor/thor/lib/thor/group.rb +281 -0
  210. data/bundler/lib/bundler/vendor/thor/lib/thor/invocation.rb +177 -0
  211. data/bundler/lib/bundler/vendor/thor/lib/thor/line_editor/basic.rb +37 -0
  212. data/bundler/lib/bundler/vendor/thor/lib/thor/line_editor/readline.rb +88 -0
  213. data/bundler/lib/bundler/vendor/thor/lib/thor/line_editor.rb +17 -0
  214. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/argument.rb +70 -0
  215. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +175 -0
  216. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/option.rb +146 -0
  217. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +221 -0
  218. data/bundler/lib/bundler/vendor/thor/lib/thor/parser.rb +4 -0
  219. data/bundler/lib/bundler/vendor/thor/lib/thor/rake_compat.rb +71 -0
  220. data/bundler/lib/bundler/vendor/thor/lib/thor/runner.rb +324 -0
  221. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +437 -0
  222. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/color.rb +149 -0
  223. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/html.rb +126 -0
  224. data/bundler/lib/bundler/vendor/thor/lib/thor/shell.rb +81 -0
  225. data/bundler/lib/bundler/vendor/thor/lib/thor/util.rb +268 -0
  226. data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +3 -0
  227. data/bundler/lib/bundler/vendor/thor/lib/thor.rb +509 -0
  228. data/bundler/lib/bundler/vendored_fileutils.rb +9 -0
  229. data/bundler/lib/bundler/vendored_molinillo.rb +4 -0
  230. data/bundler/lib/bundler/vendored_persistent.rb +52 -0
  231. data/bundler/lib/bundler/vendored_thor.rb +8 -0
  232. data/bundler/lib/bundler/version.rb +28 -0
  233. data/bundler/lib/bundler/version_ranges.rb +76 -0
  234. data/bundler/lib/bundler/vlad.rb +17 -0
  235. data/bundler/lib/bundler/worker.rb +106 -0
  236. data/bundler/lib/bundler/yaml_serializer.rb +90 -0
  237. data/bundler/lib/bundler.rb +545 -0
  238. data/bundler/man/bundle-add.ronn +29 -0
  239. data/bundler/man/bundle-binstubs.ronn +43 -0
  240. data/bundler/man/bundle-check.ronn +26 -0
  241. data/bundler/man/bundle-clean.ronn +18 -0
  242. data/bundler/man/bundle-config.ronn +372 -0
  243. data/bundler/man/bundle-exec.ronn +152 -0
  244. data/bundler/man/bundle-gem.ronn +78 -0
  245. data/bundler/man/bundle-info.ronn +17 -0
  246. data/bundler/man/bundle-init.ronn +18 -0
  247. data/bundler/man/bundle-inject.ronn +22 -0
  248. data/bundler/man/bundle-install.ronn +369 -0
  249. data/bundler/man/bundle-list.ronn +15 -0
  250. data/bundler/man/bundle-lock.ronn +94 -0
  251. data/bundler/man/bundle-open.ronn +19 -0
  252. data/bundler/man/bundle-outdated.ronn +107 -0
  253. data/bundler/man/bundle-package.ronn +72 -0
  254. data/bundler/man/bundle-platform.ronn +42 -0
  255. data/bundler/man/bundle-pristine.ronn +34 -0
  256. data/bundler/man/bundle-show.ronn +20 -0
  257. data/bundler/man/bundle-update.ronn +346 -0
  258. data/bundler/man/bundle-viz.ronn +30 -0
  259. data/bundler/man/bundle.ronn +108 -0
  260. data/bundler/man/gemfile.5.ronn +506 -0
  261. data/lib/rubygems/available_set.rb +1 -0
  262. data/lib/rubygems/basic_specification.rb +115 -43
  263. data/lib/rubygems/bundler_version_finder.rb +112 -0
  264. data/lib/rubygems/command.rb +23 -3
  265. data/lib/rubygems/command_manager.rb +4 -1
  266. data/lib/rubygems/commands/build_command.rb +5 -0
  267. data/lib/rubygems/commands/cert_command.rb +32 -6
  268. data/lib/rubygems/commands/check_command.rb +1 -0
  269. data/lib/rubygems/commands/cleanup_command.rb +19 -6
  270. data/lib/rubygems/commands/contents_command.rb +1 -1
  271. data/lib/rubygems/commands/dependency_command.rb +28 -17
  272. data/lib/rubygems/commands/environment_command.rb +5 -3
  273. data/lib/rubygems/commands/fetch_command.rb +1 -0
  274. data/lib/rubygems/commands/generate_index_command.rb +1 -0
  275. data/lib/rubygems/commands/help_command.rb +4 -13
  276. data/lib/rubygems/commands/install_command.rb +3 -47
  277. data/lib/rubygems/commands/list_command.rb +3 -2
  278. data/lib/rubygems/commands/lock_command.rb +1 -0
  279. data/lib/rubygems/commands/mirror_command.rb +1 -0
  280. data/lib/rubygems/commands/open_command.rb +9 -2
  281. data/lib/rubygems/commands/outdated_command.rb +1 -0
  282. data/lib/rubygems/commands/owner_command.rb +5 -3
  283. data/lib/rubygems/commands/pristine_command.rb +39 -11
  284. data/lib/rubygems/commands/push_command.rb +10 -4
  285. data/lib/rubygems/commands/query_command.rb +32 -16
  286. data/lib/rubygems/commands/rdoc_command.rb +1 -0
  287. data/lib/rubygems/commands/search_command.rb +1 -0
  288. data/lib/rubygems/commands/server_command.rb +1 -0
  289. data/lib/rubygems/commands/setup_command.rb +170 -70
  290. data/lib/rubygems/commands/signin_command.rb +33 -0
  291. data/lib/rubygems/commands/signout_command.rb +33 -0
  292. data/lib/rubygems/commands/sources_command.rb +3 -2
  293. data/lib/rubygems/commands/specification_command.rb +1 -0
  294. data/lib/rubygems/commands/stale_command.rb +1 -0
  295. data/lib/rubygems/commands/uninstall_command.rb +6 -4
  296. data/lib/rubygems/commands/unpack_command.rb +17 -4
  297. data/lib/rubygems/commands/update_command.rb +5 -5
  298. data/lib/rubygems/commands/which_command.rb +2 -1
  299. data/lib/rubygems/commands/yank_command.rb +14 -25
  300. data/lib/rubygems/compatibility.rb +2 -2
  301. data/lib/rubygems/config_file.rb +40 -36
  302. data/lib/rubygems/core_ext/kernel_gem.rb +9 -1
  303. data/lib/rubygems/core_ext/kernel_require.rb +19 -16
  304. data/lib/rubygems/defaults.rb +19 -0
  305. data/lib/rubygems/dependency.rb +22 -21
  306. data/lib/rubygems/dependency_installer.rb +16 -1
  307. data/lib/rubygems/dependency_list.rb +6 -6
  308. data/lib/rubygems/deprecate.rb +1 -0
  309. data/lib/rubygems/doctor.rb +1 -0
  310. data/lib/rubygems/errors.rb +48 -0
  311. data/lib/rubygems/exceptions.rb +8 -2
  312. data/lib/rubygems/ext/build_error.rb +1 -0
  313. data/lib/rubygems/ext/builder.rb +4 -1
  314. data/lib/rubygems/ext/cmake_builder.rb +1 -0
  315. data/lib/rubygems/ext/configure_builder.rb +1 -0
  316. data/lib/rubygems/ext/ext_conf_builder.rb +26 -10
  317. data/lib/rubygems/ext/rake_builder.rb +3 -2
  318. data/lib/rubygems/ext.rb +1 -0
  319. data/lib/rubygems/gem_runner.rb +6 -1
  320. data/lib/rubygems/gemcutter_utilities.rb +18 -4
  321. data/lib/rubygems/indexer.rb +28 -92
  322. data/lib/rubygems/install_default_message.rb +1 -0
  323. data/lib/rubygems/install_message.rb +1 -0
  324. data/lib/rubygems/install_update_options.rb +58 -28
  325. data/lib/rubygems/installer.rb +114 -52
  326. data/lib/rubygems/installer_test_case.rb +11 -5
  327. data/lib/rubygems/local_remote_options.rb +2 -1
  328. data/lib/rubygems/mock_gem_ui.rb +1 -0
  329. data/lib/rubygems/name_tuple.rb +2 -1
  330. data/lib/rubygems/package/digest_io.rb +1 -0
  331. data/lib/rubygems/package/file_source.rb +1 -0
  332. data/lib/rubygems/package/io_source.rb +1 -0
  333. data/lib/rubygems/package/old.rb +10 -10
  334. data/lib/rubygems/package/source.rb +1 -0
  335. data/lib/rubygems/package/tar_header.rb +1 -1
  336. data/lib/rubygems/package/tar_reader/entry.rb +8 -1
  337. data/lib/rubygems/package/tar_reader.rb +1 -1
  338. data/lib/rubygems/package/tar_test_case.rb +13 -3
  339. data/lib/rubygems/package/tar_writer.rb +37 -18
  340. data/lib/rubygems/package.rb +25 -9
  341. data/lib/rubygems/package_task.rb +1 -0
  342. data/lib/rubygems/path_support.rb +25 -32
  343. data/lib/rubygems/platform.rb +5 -3
  344. data/lib/rubygems/psych_additions.rb +2 -1
  345. data/lib/rubygems/psych_tree.rb +1 -0
  346. data/lib/rubygems/rdoc.rb +2 -2
  347. data/lib/rubygems/remote_fetcher.rb +37 -12
  348. data/lib/rubygems/request/connection_pools.rb +14 -5
  349. data/lib/rubygems/request/http_pool.rb +10 -0
  350. data/lib/rubygems/request/https_pool.rb +1 -0
  351. data/lib/rubygems/request.rb +55 -5
  352. data/lib/rubygems/request_set/gem_dependency_api.rb +63 -15
  353. data/lib/rubygems/request_set/lockfile/parser.rb +354 -0
  354. data/lib/rubygems/request_set/lockfile/tokenizer.rb +112 -0
  355. data/lib/rubygems/request_set/lockfile.rb +58 -457
  356. data/lib/rubygems/request_set.rb +43 -18
  357. data/lib/rubygems/requirement.rb +21 -5
  358. data/lib/rubygems/resolver/activation_request.rb +20 -6
  359. data/lib/rubygems/resolver/api_set.rb +2 -1
  360. data/lib/rubygems/resolver/api_specification.rb +2 -1
  361. data/lib/rubygems/resolver/best_set.rb +1 -0
  362. data/lib/rubygems/resolver/composed_set.rb +1 -0
  363. data/lib/rubygems/resolver/conflict.rb +1 -1
  364. data/lib/rubygems/resolver/current_set.rb +1 -0
  365. data/lib/rubygems/resolver/dependency_request.rb +5 -1
  366. data/lib/rubygems/resolver/git_set.rb +1 -0
  367. data/lib/rubygems/resolver/git_specification.rb +2 -2
  368. data/lib/rubygems/resolver/index_set.rb +1 -0
  369. data/lib/rubygems/resolver/index_specification.rb +1 -0
  370. data/lib/rubygems/resolver/installed_specification.rb +1 -0
  371. data/lib/rubygems/resolver/installer_set.rb +12 -9
  372. data/lib/rubygems/resolver/local_specification.rb +1 -0
  373. data/lib/rubygems/resolver/lock_set.rb +4 -5
  374. data/lib/rubygems/resolver/lock_specification.rb +6 -2
  375. data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb +50 -0
  376. data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb +80 -0
  377. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/action.rb +35 -0
  378. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +65 -0
  379. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +61 -0
  380. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +62 -0
  381. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +60 -0
  382. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb +125 -0
  383. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/set_payload.rb +45 -0
  384. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/tag.rb +35 -0
  385. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb +125 -0
  386. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +222 -0
  387. data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +75 -0
  388. data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +5 -0
  389. data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb +100 -0
  390. data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb +65 -0
  391. data/lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb +494 -0
  392. data/lib/rubygems/resolver/molinillo/lib/molinillo/resolver.rb +45 -0
  393. data/lib/rubygems/resolver/molinillo/lib/molinillo/state.rb +54 -0
  394. data/lib/rubygems/resolver/molinillo/lib/molinillo.rb +10 -0
  395. data/lib/rubygems/resolver/molinillo.rb +2 -0
  396. data/lib/rubygems/resolver/requirement_list.rb +1 -0
  397. data/lib/rubygems/resolver/set.rb +2 -1
  398. data/lib/rubygems/resolver/source_set.rb +48 -0
  399. data/lib/rubygems/resolver/spec_specification.rb +1 -0
  400. data/lib/rubygems/resolver/specification.rb +2 -1
  401. data/lib/rubygems/resolver/stats.rb +1 -0
  402. data/lib/rubygems/resolver/vendor_set.rb +1 -0
  403. data/lib/rubygems/resolver/vendor_specification.rb +1 -0
  404. data/lib/rubygems/resolver.rb +96 -233
  405. data/lib/rubygems/safe_yaml.rb +51 -0
  406. data/lib/rubygems/security/policies.rb +1 -0
  407. data/lib/rubygems/security/policy.rb +2 -2
  408. data/lib/rubygems/security/signer.rb +4 -1
  409. data/lib/rubygems/security/trust_dir.rb +1 -0
  410. data/lib/rubygems/security.rb +13 -5
  411. data/lib/rubygems/security_option.rb +43 -0
  412. data/lib/rubygems/server.rb +34 -36
  413. data/lib/rubygems/source/git.rb +3 -1
  414. data/lib/rubygems/source/installed.rb +1 -0
  415. data/lib/rubygems/source/local.rb +39 -35
  416. data/lib/rubygems/source/lock.rb +5 -1
  417. data/lib/rubygems/source/specific_file.rb +1 -0
  418. data/lib/rubygems/source/vendor.rb +1 -0
  419. data/lib/rubygems/source.rb +14 -6
  420. data/lib/rubygems/source_list.rb +3 -2
  421. data/lib/rubygems/source_local.rb +4 -1
  422. data/lib/rubygems/source_specific_file.rb +4 -2
  423. data/lib/rubygems/spec_fetcher.rb +8 -3
  424. data/lib/rubygems/specification.rb +632 -345
  425. data/lib/rubygems/ssl_certs/index.rubygems.org/GlobalSignRootCA.pem +21 -0
  426. data/lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +23 -0
  427. data/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +25 -0
  428. data/lib/rubygems/stub_specification.rb +105 -79
  429. data/lib/rubygems/syck_hack.rb +1 -0
  430. data/lib/rubygems/test_case.rb +165 -32
  431. data/lib/rubygems/test_utilities.rb +19 -18
  432. data/lib/rubygems/text.rb +17 -6
  433. data/lib/rubygems/uninstaller.rb +2 -1
  434. data/lib/rubygems/uri_formatter.rb +1 -0
  435. data/lib/rubygems/user_interaction.rb +19 -29
  436. data/lib/rubygems/util/licenses.rb +380 -0
  437. data/lib/rubygems/util/list.rb +10 -21
  438. data/lib/rubygems/util.rb +11 -21
  439. data/lib/rubygems/validator.rb +1 -0
  440. data/lib/rubygems/version.rb +65 -29
  441. data/lib/rubygems/version_option.rb +7 -1
  442. data/lib/rubygems.rb +231 -60
  443. data/lib/ubygems.rb +1 -0
  444. data/setup.rb +2 -1
  445. data/test/rubygems/alternate_cert.pem +10 -9
  446. data/test/rubygems/alternate_cert_32.pem +10 -9
  447. data/test/rubygems/bad_rake.rb +1 -0
  448. data/test/rubygems/bogussources.rb +1 -0
  449. data/test/rubygems/child_cert.pem +11 -9
  450. data/test/rubygems/child_cert_32.pem +11 -9
  451. data/test/rubygems/encrypted_private_key.pem +26 -26
  452. data/test/rubygems/expired_cert.pem +9 -8
  453. data/test/rubygems/fake_certlib/openssl.rb +1 -0
  454. data/test/rubygems/fix_openssl_warnings.rb +1 -0
  455. data/test/rubygems/foo/discover.rb +1 -0
  456. data/test/rubygems/future_cert.pem +9 -8
  457. data/test/rubygems/future_cert_32.pem +9 -8
  458. data/test/rubygems/good_rake.rb +1 -0
  459. data/test/rubygems/grandchild_cert.pem +11 -9
  460. data/test/rubygems/grandchild_cert_32.pem +11 -9
  461. data/test/rubygems/invalid_issuer_cert.pem +11 -9
  462. data/test/rubygems/invalid_issuer_cert_32.pem +11 -9
  463. data/test/rubygems/invalid_signer_cert.pem +10 -9
  464. data/test/rubygems/invalid_signer_cert_32.pem +10 -9
  465. data/test/rubygems/invalidchild_cert.pem +11 -9
  466. data/test/rubygems/invalidchild_cert_32.pem +11 -9
  467. data/test/rubygems/plugin/exception/rubygems_plugin.rb +1 -0
  468. data/test/rubygems/plugin/load/rubygems_plugin.rb +1 -0
  469. data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +1 -0
  470. data/test/rubygems/private3072_key.pem +40 -0
  471. data/test/rubygems/public3072_cert.pem +25 -0
  472. data/test/rubygems/public_cert.pem +11 -9
  473. data/test/rubygems/public_cert_32.pem +10 -9
  474. data/test/rubygems/rubygems/commands/crash_command.rb +1 -0
  475. data/test/rubygems/rubygems_plugin.rb +5 -0
  476. data/test/rubygems/sff/discover.rb +1 -0
  477. data/test/rubygems/simple_gem.rb +2 -1
  478. data/test/rubygems/specifications/{foo-0.0.1.gemspec → foo-0.0.1-x86-mswin32.gemspec} +0 -0
  479. data/test/rubygems/test_bundled_ca.rb +43 -40
  480. data/test/rubygems/test_config.rb +12 -2
  481. data/test/rubygems/test_deprecate.rb +1 -0
  482. data/test/rubygems/test_gem.rb +353 -80
  483. data/test/rubygems/test_gem_available_set.rb +3 -1
  484. data/test/rubygems/test_gem_bundler_version_finder.rb +125 -0
  485. data/test/rubygems/test_gem_command.rb +11 -0
  486. data/test/rubygems/test_gem_command_manager.rb +1 -0
  487. data/test/rubygems/test_gem_commands_build_command.rb +38 -1
  488. data/test/rubygems/test_gem_commands_cert_command.rb +65 -0
  489. data/test/rubygems/test_gem_commands_check_command.rb +1 -0
  490. data/test/rubygems/test_gem_commands_cleanup_command.rb +79 -6
  491. data/test/rubygems/test_gem_commands_contents_command.rb +1 -0
  492. data/test/rubygems/test_gem_commands_dependency_command.rb +10 -1
  493. data/test/rubygems/test_gem_commands_environment_command.rb +2 -1
  494. data/test/rubygems/test_gem_commands_fetch_command.rb +1 -0
  495. data/test/rubygems/test_gem_commands_generate_index_command.rb +1 -0
  496. data/test/rubygems/test_gem_commands_help_command.rb +1 -0
  497. data/test/rubygems/test_gem_commands_install_command.rb +73 -30
  498. data/test/rubygems/test_gem_commands_list_command.rb +1 -0
  499. data/test/rubygems/test_gem_commands_lock_command.rb +1 -0
  500. data/test/rubygems/test_gem_commands_mirror.rb +1 -13
  501. data/test/rubygems/test_gem_commands_open_command.rb +29 -4
  502. data/test/rubygems/test_gem_commands_outdated_command.rb +3 -3
  503. data/test/rubygems/test_gem_commands_owner_command.rb +8 -0
  504. data/test/rubygems/test_gem_commands_pristine_command.rb +126 -5
  505. data/test/rubygems/test_gem_commands_push_command.rb +75 -7
  506. data/test/rubygems/test_gem_commands_query_command.rb +261 -99
  507. data/test/rubygems/test_gem_commands_search_command.rb +1 -0
  508. data/test/rubygems/test_gem_commands_server_command.rb +3 -2
  509. data/test/rubygems/test_gem_commands_setup_command.rb +130 -5
  510. data/test/rubygems/test_gem_commands_signin_command.rb +98 -0
  511. data/test/rubygems/test_gem_commands_signout_command.rb +37 -0
  512. data/test/rubygems/test_gem_commands_sources_command.rb +53 -0
  513. data/test/rubygems/test_gem_commands_specification_command.rb +5 -4
  514. data/test/rubygems/test_gem_commands_stale_command.rb +3 -0
  515. data/test/rubygems/test_gem_commands_uninstall_command.rb +18 -4
  516. data/test/rubygems/test_gem_commands_unpack_command.rb +7 -8
  517. data/test/rubygems/test_gem_commands_update_command.rb +24 -59
  518. data/test/rubygems/test_gem_commands_which_command.rb +5 -3
  519. data/test/rubygems/test_gem_commands_yank_command.rb +13 -10
  520. data/test/rubygems/test_gem_config_file.rb +26 -3
  521. data/test/rubygems/test_gem_dependency.rb +38 -5
  522. data/test/rubygems/test_gem_dependency_installer.rb +33 -6
  523. data/test/rubygems/test_gem_dependency_list.rb +1 -0
  524. data/test/rubygems/test_gem_dependency_resolution_error.rb +1 -0
  525. data/test/rubygems/test_gem_doctor.rb +2 -1
  526. data/test/rubygems/test_gem_ext_builder.rb +10 -3
  527. data/test/rubygems/test_gem_ext_cmake_builder.rb +5 -2
  528. data/test/rubygems/test_gem_ext_configure_builder.rb +10 -5
  529. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +49 -21
  530. data/test/rubygems/test_gem_ext_rake_builder.rb +34 -16
  531. data/test/rubygems/test_gem_gem_runner.rb +1 -0
  532. data/test/rubygems/test_gem_gemcutter_utilities.rb +3 -2
  533. data/test/rubygems/test_gem_impossible_dependencies_error.rb +1 -0
  534. data/test/rubygems/test_gem_indexer.rb +5 -4
  535. data/test/rubygems/test_gem_install_update_options.rb +17 -3
  536. data/test/rubygems/test_gem_installer.rb +325 -63
  537. data/test/rubygems/test_gem_local_remote_options.rb +1 -0
  538. data/test/rubygems/test_gem_name_tuple.rb +1 -0
  539. data/test/rubygems/test_gem_package.rb +67 -9
  540. data/test/rubygems/test_gem_package_old.rb +1 -0
  541. data/test/rubygems/test_gem_package_tar_header.rb +1 -0
  542. data/test/rubygems/test_gem_package_tar_reader.rb +1 -0
  543. data/test/rubygems/test_gem_package_tar_reader_entry.rb +10 -2
  544. data/test/rubygems/test_gem_package_tar_writer.rb +45 -7
  545. data/test/rubygems/test_gem_package_task.rb +6 -2
  546. data/test/rubygems/test_gem_path_support.rb +43 -6
  547. data/test/rubygems/test_gem_platform.rb +12 -0
  548. data/test/rubygems/test_gem_rdoc.rb +1 -0
  549. data/test/rubygems/test_gem_remote_fetcher.rb +161 -10
  550. data/test/rubygems/test_gem_request.rb +134 -1
  551. data/test/rubygems/test_gem_request_connection_pools.rb +11 -1
  552. data/test/rubygems/test_gem_request_set.rb +8 -10
  553. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +54 -46
  554. data/test/rubygems/test_gem_request_set_lockfile.rb +22 -800
  555. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +549 -0
  556. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +306 -0
  557. data/test/rubygems/test_gem_requirement.rb +17 -0
  558. data/test/rubygems/test_gem_resolver.rb +49 -29
  559. data/test/rubygems/test_gem_resolver_activation_request.rb +1 -0
  560. data/test/rubygems/test_gem_resolver_api_set.rb +1 -0
  561. data/test/rubygems/test_gem_resolver_api_specification.rb +3 -2
  562. data/test/rubygems/test_gem_resolver_best_set.rb +1 -0
  563. data/test/rubygems/test_gem_resolver_composed_set.rb +1 -0
  564. data/test/rubygems/test_gem_resolver_conflict.rb +2 -1
  565. data/test/rubygems/test_gem_resolver_dependency_request.rb +1 -0
  566. data/test/rubygems/test_gem_resolver_git_set.rb +1 -0
  567. data/test/rubygems/test_gem_resolver_git_specification.rb +2 -0
  568. data/test/rubygems/test_gem_resolver_index_set.rb +1 -0
  569. data/test/rubygems/test_gem_resolver_index_specification.rb +1 -0
  570. data/test/rubygems/test_gem_resolver_installed_specification.rb +1 -0
  571. data/test/rubygems/test_gem_resolver_installer_set.rb +22 -11
  572. data/test/rubygems/test_gem_resolver_local_specification.rb +1 -0
  573. data/test/rubygems/test_gem_resolver_lock_set.rb +1 -0
  574. data/test/rubygems/test_gem_resolver_lock_specification.rb +10 -8
  575. data/test/rubygems/test_gem_resolver_requirement_list.rb +1 -0
  576. data/test/rubygems/test_gem_resolver_specification.rb +1 -0
  577. data/test/rubygems/test_gem_resolver_vendor_set.rb +1 -0
  578. data/test/rubygems/test_gem_resolver_vendor_specification.rb +1 -0
  579. data/test/rubygems/test_gem_security.rb +6 -0
  580. data/test/rubygems/test_gem_security_policy.rb +25 -24
  581. data/test/rubygems/test_gem_security_signer.rb +15 -6
  582. data/test/rubygems/test_gem_security_trust_dir.rb +5 -2
  583. data/test/rubygems/test_gem_server.rb +39 -1
  584. data/test/rubygems/test_gem_silent_ui.rb +1 -0
  585. data/test/rubygems/test_gem_source.rb +24 -0
  586. data/test/rubygems/test_gem_source_fetch_problem.rb +9 -0
  587. data/test/rubygems/test_gem_source_git.rb +1 -0
  588. data/test/rubygems/test_gem_source_installed.rb +1 -0
  589. data/test/rubygems/test_gem_source_list.rb +7 -0
  590. data/test/rubygems/test_gem_source_local.rb +1 -0
  591. data/test/rubygems/test_gem_source_lock.rb +1 -0
  592. data/test/rubygems/test_gem_source_specific_file.rb +1 -0
  593. data/test/rubygems/test_gem_source_vendor.rb +1 -0
  594. data/test/rubygems/test_gem_spec_fetcher.rb +21 -0
  595. data/test/rubygems/test_gem_specification.rb +692 -139
  596. data/test/rubygems/test_gem_stream_ui.rb +13 -12
  597. data/test/rubygems/test_gem_stub_specification.rb +115 -10
  598. data/test/rubygems/test_gem_text.rb +30 -0
  599. data/test/rubygems/test_gem_uninstaller.rb +5 -3
  600. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +1 -0
  601. data/test/rubygems/test_gem_uri_formatter.rb +1 -0
  602. data/test/rubygems/test_gem_util.rb +10 -0
  603. data/test/rubygems/test_gem_validator.rb +1 -0
  604. data/test/rubygems/test_gem_version.rb +43 -7
  605. data/test/rubygems/test_gem_version_option.rb +16 -0
  606. data/test/rubygems/test_kernel.rb +62 -0
  607. data/test/rubygems/test_remote_fetch_error.rb +21 -0
  608. data/test/rubygems/test_require.rb +275 -120
  609. data/test/rubygems/wrong_key_cert.pem +10 -9
  610. data/test/rubygems/wrong_key_cert_32.pem +10 -9
  611. data/util/ci +73 -0
  612. data/util/create_certs.rb +65 -49
  613. data/util/create_encrypted_key.rb +1 -0
  614. data/util/generate_spdx_license_list.rb +52 -0
  615. data/util/patch_with_prs.rb +77 -0
  616. data/util/update_bundled_ca_certificates.rb +28 -5
  617. data/util/update_changelog.rb +67 -0
  618. metadata +338 -189
  619. data/.gemtest +0 -0
  620. data/CONTRIBUTING +0 -32
  621. data/README.rdoc +0 -54
  622. data/lib/gauntlet_rubygems.rb +0 -50
  623. data/lib/rubygems/ssl_certs/AddTrustExternalCARoot.pem +0 -32
  624. data/lib/rubygems/ssl_certs/Class3PublicPrimaryCertificationAuthority.pem +0 -14
  625. data/lib/rubygems/ssl_certs/EntrustnetSecureServerCertificationAuthority.pem +0 -28
  626. data/lib/rubygems/ssl_certs/GeoTrustGlobalCA.pem +0 -20
  627. data/lib/rubygems/util/stringio.rb +0 -34
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: d45335473804839a55a75fa236d648bcd9f33b17
4
- data.tar.gz: ace593b2f7f8b001fe67f038b0f6f9a3a837411a
2
+ SHA256:
3
+ metadata.gz: 2fd65b08de35370803c876822126dbfa9022a6702679170bb7b0438d2fa2e6c9
4
+ data.tar.gz: f3a0661f0e4df43931639f54ed9b27fe1c25d358f1fe336dfec1f836188a4887
5
5
  SHA512:
6
- metadata.gz: d255ea71d77bd18fa781c6076dec28c3383818575e53876d912ff07b4ce504cfbf0d56c3cfe529d8bd09cadc7e46309bafd146fdaf9c20b8164a2f8d57a38848
7
- data.tar.gz: e625369d791159e76f18eaab91d52d3cdb8f4519e1cabeb27903e38ad25db9ff0614ca3796d33dd3e1ecae297e8a2afca7d741f5187f041a8ce91aa09acdc71b
6
+ metadata.gz: 65f66d7f93527f0bc04a19d788a7aeb43488348951b6d507f31dfbb97d80bba52a0c9dfc6eda7e8d4a1906ce2b39ed1d1182bc9e16031cf40d89e3ae2591dc14
7
+ data.tar.gz: 8d069f6b20f3210fe3332343077b5cba38df8c601599479ad82f79075f6d132ce040163286a5588222b6b6b8c37a234d9eac9411e3734a6166033954f8b4b957
data/.travis.yml ADDED
@@ -0,0 +1,58 @@
1
+ ---
2
+ after_script:
3
+ - util/ci after_script
4
+ before_script:
5
+ - util/ci before_script
6
+ language: ruby
7
+ dist: trusty
8
+ sudo: required
9
+ branches:
10
+ only:
11
+ - master
12
+ - auto
13
+ - /^[\d.]+$/
14
+ - /.+-stable$/
15
+ rvm:
16
+ - 1.8.7
17
+ - 1.9.2
18
+ - 1.9.3
19
+ - 2.0.0
20
+ - 2.1.10
21
+ - 2.2.9
22
+ - 2.3.6
23
+ - 2.4.3
24
+ - ruby-head
25
+ env:
26
+ - "TEST_TOOL=rubygems YAML=syck"
27
+ - "TEST_TOOL=rubygems YAML=psych"
28
+ - "TEST_TOOL=bundler RGV=master"
29
+ script:
30
+ - util/ci script
31
+ matrix:
32
+ exclude:
33
+ - rvm: 1.8.7
34
+ env: "TEST_TOOL=rubygems YAML=psych"
35
+ - rvm: 1.9.2
36
+ env: "TEST_TOOL=bundler RGV=master"
37
+ - rvm: 2.0.0
38
+ env: "TEST_TOOL=rubygems YAML=syck"
39
+ - rvm: 2.1.10
40
+ env: "TEST_TOOL=rubygems YAML=syck"
41
+ - rvm: 2.2.9
42
+ env: "TEST_TOOL=rubygems YAML=syck"
43
+ - rvm: 2.3.6
44
+ env: "TEST_TOOL=rubygems YAML=syck"
45
+ - rvm: 2.4.3
46
+ env: "TEST_TOOL=rubygems YAML=syck"
47
+ - rvm: ruby-head
48
+ env: "TEST_TOOL=rubygems YAML=syck"
49
+ allow_failures:
50
+ - rvm: 1.8.7
51
+ env: "TEST_TOOL=bundler RGV=master"
52
+ - rvm: 1.9.3
53
+ env: "TEST_TOOL=bundler RGV=master"
54
+ - rvm: 2.0.0
55
+ env: "TEST_TOOL=bundler RGV=master"
56
+ - rvm: 2.1.10
57
+ env: "TEST_TOOL=bundler RGV=master"
58
+ - rvm: ruby-head
@@ -0,0 +1,43 @@
1
+ # Contributor Code of Conduct
2
+
3
+ ### Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
6
+
7
+ ### Our Standards
8
+
9
+ Examples of behavior that contributes to creating a positive environment include:
10
+
11
+ * Using welcoming and inclusive language
12
+ * Being respectful of differing viewpoints and experiences
13
+ * Gracefully accepting constructive criticism
14
+ * Focusing on what is best for the community
15
+ * Showing empathy towards other community members
16
+
17
+ Examples of unacceptable behavior by participants include:
18
+
19
+ * The use of sexualized language or imagery and unwelcome sexual attention or advances
20
+ * Trolling, insulting/derogatory comments, and personal or political attacks
21
+ * Public or private harassment
22
+ * Publishing others' private information, such as a physical or electronic address, without explicit permission
23
+ * Other conduct which could reasonably be considered inappropriate in a professional setting
24
+
25
+ ### Our Responsibilities
26
+
27
+ Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
28
+
29
+ Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
30
+
31
+ ### Scope
32
+
33
+ This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
34
+
35
+ ### Enforcement
36
+
37
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the [project team](MAINTAINERS.txt). All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
38
+
39
+ Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
40
+
41
+ ### Attribution
42
+
43
+ This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4.
data/CONTRIBUTING.rdoc ADDED
@@ -0,0 +1,130 @@
1
+ = How to contribute
2
+
3
+ Community involvement is essential to RubyGems. We want to keep it as easy
4
+ as possible to contribute changes. There are a few guidelines that we need
5
+ contributors to follow to reduce the time it takes to get changes merged in.
6
+
7
+ == Guidelines
8
+
9
+ 1. New features should be coupled with tests.
10
+
11
+ 2. Ensure that your code blends well with ours:
12
+ * No trailing whitespace
13
+ * Match indentation (two spaces)
14
+ * Match coding style (+if+, +elsif+, +when+ need trailing +then+)
15
+
16
+ 3. If any new files are added or existing files removed in a commit or PR, please update the +Manifest.txt+ accordingly.
17
+
18
+ 4. Don't modify the history file or version number.
19
+
20
+ 5. If you have any questions, just ask on IRC in #rubygems on Freenode or file
21
+ an issue here: http://github.com/rubygems/rubygems/issues
22
+
23
+ For more information and ideas on how to contribute to RubyGems ecosystem, see
24
+ here: http://guides.rubygems.org/contributing/
25
+
26
+ == Getting Started
27
+
28
+ $ gem install hoe
29
+ $ rake newb
30
+
31
+ To run commands like <tt>gem install</tt> from the repo:
32
+
33
+ $ ruby -Ilib bin/gem install
34
+
35
+ == Issues
36
+
37
+ RubyGems uses labels to track all issues and pull requests. In order to provide
38
+ guidance to the community this is documentation of how labels are used in the
39
+ rubygems repository.
40
+
41
+ === Contribution
42
+
43
+ These labels are made to guide contributors to issue/pull requests that they
44
+ can help with. That are marked with a light gray <tt>contribution: *</tt>
45
+
46
+ * *small* - The issue described here will take a small amount of work to resolve,
47
+ and is a good option for a new contributor
48
+ * *unclaimed* - The issue has not been claimed for work, and is awaiting willing
49
+ volunteers!
50
+
51
+ === Type
52
+
53
+ Most Issues or pull requests will have a light green <tt>type: *</tt> label,
54
+ which describes the type of the issue or pull request.
55
+
56
+ * <b>bug report</b> - An issue describing a bug in rubygems. This would be something
57
+ that is broken, confusing, unexpected behavior etc.
58
+ * <b>bug fix</b> - A pull request that fixes a bug report.
59
+ * <b>feature request</b> - An issue describing a request for a new feature or
60
+ enhancement.
61
+ * <b>feature implementation</b> - A pull request implementing a feature request.
62
+ * *question* - An issue that is a more of a question than a call for specific
63
+ changes in the codebase.
64
+ * *cleanup* - Generally for a pull request that improves the code base without
65
+ fixing a bug or implementing a feature.
66
+ * <b>major bump</b> - This issue or pull request requires a major version bump
67
+ * *administrative* - This issue relates to administrative tasks that need to
68
+ take place as it relates to rubygems
69
+ * *documentation* - This issue relates to improving the documentation for
70
+ in this repo. Note that much of the rubygems documentation is here:
71
+ https://github.com/rubygems/guides
72
+
73
+ === Workflow / Status
74
+
75
+ The light yellow <tt>status: *</tt> labels that indicate the state of an
76
+ issue, where it is in the process from being submitted to being closed.
77
+ These are listed in rough progression order from submitted to closed.
78
+
79
+ * *triage* - This is an issue or pull request that needs to be properly
80
+ labeled by by a maintainer.
81
+ * *confirmed* - This issue/pull request has been accepted as valid, but
82
+ is not yet immediately ready for work.
83
+ * <b>ready</b> - An issue that is available for collaboration. This issue
84
+ should have existing discussion on the problem, and a description of how to go
85
+ about solving it.
86
+ * <b>working</b> - An issue that has a specific invidual assigned to and planning
87
+ to do work on it.
88
+ * <b>user feedback required</b> - The issue/pull request is blocked pending more
89
+ feedback from an end user
90
+ * <b>blocked / backlog</b> - the issue/pull request is currently unable to move forward
91
+ because of some specific reason, generally this will be a reason that is outside
92
+ RubyGems or needs feedback from some specific individual or group, and it may
93
+ be a while before something it is resolved.
94
+
95
+ === Closed Reason
96
+
97
+ Reasons are why an issue / pull request was closed without being worked on or
98
+ accepted. There should also be more detailed information in the comments. The
99
+ closed reason labels are maroon <tt>closed: *</tt>.
100
+
101
+ * *duplicate* - This is a duplicate of an existing bug. The comments must
102
+ reference the existing issue.
103
+ * *abandonded* - This is an issue/pull request that has aged off, is no longer
104
+ applicable or similar.
105
+ * *declined* - An issue that won't be fixed/implemented or a pull request that
106
+ is not accepted.
107
+ * *deprecated* - An issue/pull request that no longer applies to the actively
108
+ maintained codebase.
109
+ * *discussion* - An issue/pull that is no longer about a concrete change, and
110
+ is instead being used for discussion.
111
+
112
+ === Categories
113
+
114
+ These are aspects of the codebase, or what general area the issue or pull
115
+ request pertains too. Not all issues will have a category. All categorized
116
+ issues have a blue <tt>category: *</tt> label.
117
+
118
+ * *gemspec* - related to the gem specification itself
119
+ * *API* - related to the public supported rubygems API. This is the code API,
120
+ not a network related API.
121
+ * *command* - related to something in <tt>Gem::Commands</tt>
122
+ * *install* - related to gem installations
123
+ * *documentation* - related to updating / fixing / clarifying documentation or
124
+ guides
125
+
126
+ === Platforms
127
+
128
+ If an issue or pull request pertains to only one platform, then it should have
129
+ an appropriate purple <tt>platform: *</tt> label. Current platform labels:
130
+ *windows*, *java*, *osx*, *linux*
data/CVE-2015-3900.txt ADDED
@@ -0,0 +1,40 @@
1
+ = Request hijacking vulnerability in RubyGems 2.4.6 and earlier
2
+
3
+ RubyGems provides the ability of a domain to direct clients to a separate
4
+ host that is used to fetch gems and make API calls against. This mechanism
5
+ is implemented via DNS, specificly a SRV record _rubygems._tcp under the
6
+ original requested domain.
7
+
8
+ For example, this is the one that users who use rubygems.org see:
9
+
10
+ > dig _rubygems._tcp.rubygems.org SRV
11
+
12
+ ;; ANSWER SECTION:
13
+ _rubygems._tcp.rubygems.org. 600 IN SRV 0 1 80 api.rubygems.org.
14
+
15
+ RubyGems did not validate the hostname returned in the SRV record before
16
+ sending requests to it.
17
+
18
+ This left clients open to a DNS hijack attack, whereby an attacker could
19
+ return a SRV of their choosing and get the client to use it. For example:
20
+
21
+ > dig _rubygems._tcp.rubygems.org SRV
22
+
23
+ ;; ANSWER SECTION:
24
+ _rubygems._tcp.rubygems.org. 600 IN SRV 0 1 80 gems.nottobetrusted.wtf
25
+
26
+ The fix, detailed at https://github.com/rubygems/rubygems/commit/6bbee35,
27
+ shows that we validate the record now to be under the original domain. This
28
+ restricts the client to be using the original trust/security domain as they
29
+ would have otherwise.
30
+
31
+ RubyGems versions between 2.0 and 2.4.6 are vulnerable.
32
+
33
+ RubyGems version 2.0.16, 2.2.4, and 2.4.7 have been released that fix this
34
+ issue.
35
+
36
+ Ruby versions 1.9.0 through 2.2.0 are vulnerable as they contain embedded
37
+ versions of RubyGems.
38
+
39
+ This vulnerability was reported by Jonathan Claudius <JClaudius@trustwave.com>.
40
+