rubygems-update 4.0.21 → 4.1.0.beta1

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 (496) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +590 -53
  3. data/CONTRIBUTING.md +66 -5
  4. data/MIT.txt +4 -3
  5. data/Manifest.txt +332 -375
  6. data/README.md +26 -6
  7. data/bundler.gemspec +63 -0
  8. data/doc/POLICIES.md +147 -0
  9. data/doc/UPGRADING.md +4 -4
  10. data/{bundler/lib → lib}/bundler/build_metadata.rb +2 -2
  11. data/{bundler/lib → lib}/bundler/checksum.rb +40 -25
  12. data/{bundler/lib → lib}/bundler/ci_detector.rb +1 -1
  13. data/{bundler/lib → lib}/bundler/cli/add.rb +3 -4
  14. data/{bundler/lib → lib}/bundler/cli/cache.rb +4 -0
  15. data/{bundler/lib → lib}/bundler/cli/clean.rb +5 -0
  16. data/{bundler/lib → lib}/bundler/cli/common.rb +37 -1
  17. data/{bundler/lib → lib}/bundler/cli/config.rb +4 -2
  18. data/{bundler/lib → lib}/bundler/cli/gem.rb +0 -17
  19. data/{bundler/lib → lib}/bundler/cli/install.rb +4 -5
  20. data/{bundler/lib → lib}/bundler/cli/lock.rb +1 -2
  21. data/{bundler/lib → lib}/bundler/cli/outdated.rb +8 -3
  22. data/{bundler/lib → lib}/bundler/cli/pristine.rb +2 -1
  23. data/{bundler/lib → lib}/bundler/cli/update.rb +21 -12
  24. data/{bundler/lib → lib}/bundler/cli.rb +14 -11
  25. data/{bundler/lib → lib}/bundler/definition.rb +61 -24
  26. data/{bundler/lib → lib}/bundler/dependency.rb +4 -0
  27. data/{bundler/lib → lib}/bundler/dsl.rb +77 -11
  28. data/{bundler/lib → lib}/bundler/endpoint_specification.rb +51 -14
  29. data/{bundler/lib → lib}/bundler/env.rb +7 -24
  30. data/{bundler/lib → lib}/bundler/errors.rb +34 -5
  31. data/{bundler/lib → lib}/bundler/fetcher/compact_index.rb +14 -5
  32. data/lib/bundler/fetcher/connection_pools.rb +150 -0
  33. data/{bundler/lib → lib}/bundler/fetcher/downloader.rb +31 -16
  34. data/{bundler/lib → lib}/bundler/fetcher.rb +8 -47
  35. data/{bundler/lib → lib}/bundler/injector.rb +3 -3
  36. data/{bundler/lib → lib}/bundler/inline.rb +44 -4
  37. data/{bundler/lib → lib}/bundler/installer/parallel_installer.rb +25 -30
  38. data/{bundler/lib → lib}/bundler/installer.rb +20 -6
  39. data/{bundler/lib → lib}/bundler/lazy_specification.rb +44 -17
  40. data/{bundler/lib → lib}/bundler/lockfile_generator.rb +24 -2
  41. data/{bundler/lib → lib}/bundler/lockfile_parser.rb +43 -5
  42. data/{bundler/lib → lib}/bundler/man/bundle-add.1 +7 -4
  43. data/{bundler/lib → lib}/bundler/man/bundle-add.1.ronn +8 -4
  44. data/{bundler/lib → lib}/bundler/man/bundle-binstubs.1 +1 -1
  45. data/{bundler/lib → lib}/bundler/man/bundle-cache.1 +2 -2
  46. data/{bundler/lib → lib}/bundler/man/bundle-cache.1.ronn +2 -2
  47. data/{bundler/lib → lib}/bundler/man/bundle-check.1 +1 -1
  48. data/{bundler/lib → lib}/bundler/man/bundle-clean.1 +1 -1
  49. data/{bundler/lib → lib}/bundler/man/bundle-config.1 +38 -6
  50. data/{bundler/lib → lib}/bundler/man/bundle-config.1.ronn +143 -10
  51. data/{bundler/lib → lib}/bundler/man/bundle-console.1 +1 -1
  52. data/{bundler/lib → lib}/bundler/man/bundle-doctor.1 +1 -1
  53. data/{bundler/lib → lib}/bundler/man/bundle-env.1 +1 -1
  54. data/{bundler/lib → lib}/bundler/man/bundle-exec.1 +1 -1
  55. data/{bundler/lib → lib}/bundler/man/bundle-fund.1 +1 -1
  56. data/{bundler/lib → lib}/bundler/man/bundle-gem.1 +1 -1
  57. data/{bundler/lib → lib}/bundler/man/bundle-help.1 +1 -1
  58. data/{bundler/lib → lib}/bundler/man/bundle-info.1 +1 -1
  59. data/{bundler/lib → lib}/bundler/man/bundle-init.1 +1 -1
  60. data/{bundler/lib → lib}/bundler/man/bundle-install.1 +2 -2
  61. data/{bundler/lib → lib}/bundler/man/bundle-install.1.ronn +4 -4
  62. data/{bundler/lib → lib}/bundler/man/bundle-issue.1 +1 -1
  63. data/{bundler/lib → lib}/bundler/man/bundle-licenses.1 +1 -1
  64. data/{bundler/lib → lib}/bundler/man/bundle-list.1 +1 -1
  65. data/{bundler/lib → lib}/bundler/man/bundle-lock.1 +3 -3
  66. data/{bundler/lib → lib}/bundler/man/bundle-lock.1.ronn +5 -5
  67. data/{bundler/lib → lib}/bundler/man/bundle-open.1 +1 -1
  68. data/{bundler/lib → lib}/bundler/man/bundle-outdated.1 +1 -1
  69. data/{bundler/lib → lib}/bundler/man/bundle-platform.1 +1 -1
  70. data/{bundler/lib → lib}/bundler/man/bundle-plugin.1 +1 -1
  71. data/{bundler/lib → lib}/bundler/man/bundle-pristine.1 +1 -1
  72. data/{bundler/lib → lib}/bundler/man/bundle-remove.1 +1 -1
  73. data/{bundler/lib → lib}/bundler/man/bundle-show.1 +1 -1
  74. data/{bundler/lib → lib}/bundler/man/bundle-update.1 +3 -3
  75. data/{bundler/lib → lib}/bundler/man/bundle-update.1.ronn +3 -5
  76. data/{bundler/lib → lib}/bundler/man/bundle-version.1 +1 -1
  77. data/{bundler/lib → lib}/bundler/man/bundle.1 +1 -1
  78. data/{bundler/lib → lib}/bundler/man/gemfile.5 +45 -1
  79. data/{bundler/lib → lib}/bundler/man/gemfile.5.ronn +53 -0
  80. data/lib/bundler/match_metadata.rb +50 -0
  81. data/{bundler/lib → lib}/bundler/match_platform.rb +25 -2
  82. data/lib/bundler/match_remote_metadata.rb +44 -0
  83. data/{bundler/lib → lib}/bundler/materialization.rb +2 -1
  84. data/lib/bundler/override.rb +69 -0
  85. data/{bundler/lib → lib}/bundler/plugin/dsl.rb +3 -5
  86. data/{bundler/lib → lib}/bundler/plugin/events.rb +55 -13
  87. data/{bundler/lib → lib}/bundler/plugin/index.rb +87 -11
  88. data/{bundler/lib → lib}/bundler/plugin/installer/path.rb +1 -1
  89. data/{bundler/lib → lib}/bundler/plugin/installer.rb +13 -5
  90. data/{bundler/lib → lib}/bundler/plugin.rb +58 -30
  91. data/{bundler/lib → lib}/bundler/remote_specification.rb +6 -3
  92. data/{bundler/lib → lib}/bundler/resolver/base.rb +2 -1
  93. data/{bundler/lib → lib}/bundler/resolver/incompatibility.rb +1 -1
  94. data/{bundler/lib → lib}/bundler/resolver.rb +73 -23
  95. data/{bundler/lib → lib}/bundler/ruby_version.rb +0 -2
  96. data/{bundler/lib → lib}/bundler/rubygems_ext.rb +71 -1
  97. data/{bundler/lib → lib}/bundler/rubygems_gem_installer.rb +41 -2
  98. data/{bundler/lib → lib}/bundler/rubygems_integration.rb +7 -2
  99. data/{bundler/lib → lib}/bundler/runtime.rb +69 -2
  100. data/{bundler/lib → lib}/bundler/self_manager.rb +9 -15
  101. data/{bundler/lib → lib}/bundler/settings.rb +373 -30
  102. data/{bundler/lib → lib}/bundler/shared_helpers.rb +2 -1
  103. data/{bundler/lib → lib}/bundler/source/git/git_proxy.rb +2 -10
  104. data/{bundler/lib → lib}/bundler/source/git.rb +15 -6
  105. data/{bundler/lib → lib}/bundler/source/path/installer.rb +1 -1
  106. data/{bundler/lib → lib}/bundler/source/rubygems/remote.rb +10 -5
  107. data/{bundler/lib → lib}/bundler/source/rubygems.rb +48 -12
  108. data/{bundler/lib → lib}/bundler/spec_set.rb +16 -4
  109. data/{bundler/lib → lib}/bundler/stub_specification.rb +2 -1
  110. data/{bundler/lib → lib}/bundler/templates/newgem/Gemfile.tt +4 -4
  111. data/{bundler/lib → lib}/bundler/templates/newgem/newgem.gemspec.tt +3 -3
  112. data/{bundler/lib → lib}/bundler/templates/newgem/spec/newgem_spec.rb.tt +1 -1
  113. data/{bundler/lib → lib}/bundler/templates/newgem/test/minitest/test_newgem.rb.tt +1 -1
  114. data/{bundler/lib → lib}/bundler/ui/shell.rb +0 -4
  115. data/{bundler/lib → lib}/bundler/ui/silent.rb +0 -4
  116. data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +35 -2
  117. data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/base.rb +2 -1
  118. data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/shell/basic.rb +14 -6
  119. data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/shell/color.rb +2 -0
  120. data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/version.rb +1 -1
  121. data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor.rb +34 -1
  122. data/lib/bundler/vendored_pub_grub.rb +7 -0
  123. data/lib/bundler/vendored_securerandom.rb +15 -0
  124. data/lib/bundler/vendored_uri.rb +21 -0
  125. data/{bundler/lib → lib}/bundler/version.rb +1 -1
  126. data/{bundler/lib → lib}/bundler/worker.rb +3 -2
  127. data/{bundler/lib → lib}/bundler.rb +1 -1
  128. data/lib/rubygems/basic_specification.rb +15 -14
  129. data/lib/rubygems/bundler_settings.rb +137 -0
  130. data/lib/rubygems/bundler_version_finder.rb +13 -55
  131. data/lib/rubygems/ci_detector.rb +1 -1
  132. data/lib/rubygems/commands/build_command.rb +8 -1
  133. data/lib/rubygems/commands/cert_command.rb +9 -7
  134. data/lib/rubygems/commands/contents_command.rb +1 -1
  135. data/lib/rubygems/commands/dependency_command.rb +15 -3
  136. data/lib/rubygems/commands/environment_command.rb +1 -0
  137. data/lib/rubygems/commands/exec_command.rb +3 -0
  138. data/lib/rubygems/commands/fetch_command.rb +1 -1
  139. data/lib/rubygems/commands/help_command.rb +3 -1
  140. data/lib/rubygems/commands/install_command.rb +13 -3
  141. data/lib/rubygems/commands/lock_command.rb +2 -2
  142. data/lib/rubygems/commands/outdated_command.rb +77 -2
  143. data/lib/rubygems/commands/owner_command.rb +1 -1
  144. data/lib/rubygems/commands/push_command.rb +159 -21
  145. data/lib/rubygems/commands/setup_command.rb +20 -23
  146. data/lib/rubygems/commands/signin_command.rb +3 -1
  147. data/lib/rubygems/commands/signout_command.rb +26 -6
  148. data/lib/rubygems/commands/specification_command.rb +1 -1
  149. data/lib/rubygems/commands/uninstall_command.rb +1 -1
  150. data/lib/rubygems/commands/update_command.rb +84 -2
  151. data/lib/rubygems/commands/yank_command.rb +10 -7
  152. data/lib/rubygems/compact_index_client/cache.rb +122 -0
  153. data/lib/rubygems/compact_index_client/cache_file.rb +147 -0
  154. data/lib/rubygems/compact_index_client/http_fetcher.rb +88 -0
  155. data/lib/rubygems/compact_index_client/parser.rb +90 -0
  156. data/lib/rubygems/compact_index_client/updater.rb +113 -0
  157. data/lib/rubygems/compact_index_client.rb +111 -0
  158. data/lib/rubygems/config_file.rb +304 -22
  159. data/lib/rubygems/content_address.rb +194 -0
  160. data/lib/rubygems/cooldown.rb +173 -0
  161. data/lib/rubygems/cooldown_option.rb +27 -0
  162. data/lib/rubygems/cooldown_settings.rb +57 -0
  163. data/lib/rubygems/credential_store/native/linux.rb +97 -0
  164. data/lib/rubygems/credential_store/native/macos.rb +88 -0
  165. data/lib/rubygems/credential_store/native/windows.rb +130 -0
  166. data/lib/rubygems/credential_store.rb +332 -0
  167. data/lib/rubygems/defaults.rb +9 -0
  168. data/lib/rubygems/dependency_installer.rb +15 -0
  169. data/lib/rubygems/doctor.rb +23 -6
  170. data/lib/rubygems/exceptions.rb +11 -43
  171. data/lib/rubygems/ext/builder.rb +70 -5
  172. data/lib/rubygems/ext/cargo_builder.rb +0 -9
  173. data/lib/rubygems/ext/ext_conf_builder.rb +8 -15
  174. data/lib/rubygems/gemcutter_utilities.rb +44 -2
  175. data/lib/rubygems/install_update_options.rb +16 -0
  176. data/lib/rubygems/installer.rb +90 -11
  177. data/lib/rubygems/installer_uninstaller_utils.rb +24 -3
  178. data/lib/rubygems/name_tuple.rb +55 -18
  179. data/lib/rubygems/package/old.rb +1 -1
  180. data/lib/rubygems/package.rb +200 -47
  181. data/lib/rubygems/package_task.rb +2 -2
  182. data/lib/rubygems/platform.rb +2 -2
  183. data/lib/rubygems/query_utils.rb +84 -24
  184. data/lib/rubygems/remote_fetcher.rb +65 -17
  185. data/lib/rubygems/request/connection_pools.rb +3 -0
  186. data/lib/rubygems/request_set/gem_dependency_api.rb +1 -1
  187. data/lib/rubygems/request_set/lockfile.rb +0 -2
  188. data/lib/rubygems/request_set.rb +105 -17
  189. data/lib/rubygems/resolver/api_set.rb +14 -26
  190. data/lib/rubygems/resolver/api_specification.rb +56 -15
  191. data/lib/rubygems/resolver/incompatibility.rb +10 -0
  192. data/lib/rubygems/resolver/index_specification.rb +6 -4
  193. data/lib/rubygems/resolver/installer_set.rb +2 -2
  194. data/lib/rubygems/resolver/lock_specification.rb +5 -1
  195. data/lib/rubygems/resolver/spec_specification.rb +4 -0
  196. data/lib/rubygems/resolver/specification.rb +16 -1
  197. data/lib/rubygems/resolver/strategy.rb +44 -0
  198. data/lib/rubygems/resolver.rb +471 -145
  199. data/lib/rubygems/safe_marshal.rb +2 -1
  200. data/lib/rubygems/safe_yaml.rb +20 -3
  201. data/lib/rubygems/security/policy.rb +11 -3
  202. data/lib/rubygems/security/signer.rb +15 -7
  203. data/lib/rubygems/security.rb +111 -17
  204. data/lib/rubygems/source/local.rb +7 -2
  205. data/lib/rubygems/source.rb +270 -23
  206. data/lib/rubygems/spec_fetcher.rb +47 -12
  207. data/lib/rubygems/specification.rb +76 -32
  208. data/lib/rubygems/specification_policy.rb +33 -6
  209. data/lib/rubygems/specification_record.rb +41 -2
  210. data/lib/rubygems/stub_specification.rb +39 -16
  211. data/lib/rubygems/uninstaller.rb +2 -0
  212. data/lib/rubygems/util/atomic_file_writer.rb +109 -0
  213. data/lib/rubygems/vendor/net-http/lib/net/http/exceptions.rb +2 -1
  214. data/lib/rubygems/vendor/net-http/lib/net/http/generic_request.rb +5 -6
  215. data/lib/rubygems/vendor/net-http/lib/net/http/header.rb +8 -4
  216. data/lib/rubygems/vendor/net-http/lib/net/http/requests.rb +15 -1
  217. data/lib/rubygems/vendor/net-http/lib/net/http/response.rb +2 -1
  218. data/lib/rubygems/vendor/net-http/lib/net/http/responses.rb +68 -0
  219. data/lib/rubygems/vendor/net-http/lib/net/http.rb +60 -49
  220. data/lib/rubygems/vendor/optparse/lib/optparse.rb +23 -30
  221. data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/assignment.rb +1 -1
  222. data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +7 -7
  223. data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/failure_writer.rb +1 -1
  224. data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/incompatibility.rb +4 -4
  225. data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/package.rb +1 -1
  226. data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/partial_solution.rb +1 -1
  227. data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/rubygems.rb +3 -3
  228. data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/solve_failure.rb +1 -1
  229. data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/static_package_source.rb +3 -3
  230. data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/strategy.rb +2 -2
  231. data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/term.rb +1 -1
  232. data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/version.rb +1 -1
  233. data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/version_constraint.rb +3 -3
  234. data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/version_range.rb +1 -1
  235. data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/version_solver.rb +2 -2
  236. data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/version_union.rb +1 -1
  237. data/lib/rubygems/vendor/pub_grub/lib/pub_grub.rb +57 -0
  238. data/lib/rubygems/vendor/resolv/lib/resolv.rb +3508 -0
  239. data/lib/rubygems/vendor/securerandom/lib/securerandom.rb +4 -0
  240. data/lib/rubygems/vendor/timeout/lib/timeout.rb +190 -77
  241. data/lib/rubygems/vendor/uri/lib/uri.rb +4 -0
  242. data/{bundler/lib/bundler → lib/rubygems}/vendored_pub_grub.rb +0 -1
  243. data/lib/rubygems/version.rb +129 -111
  244. data/lib/rubygems/version_option.rb +14 -0
  245. data/lib/rubygems/yaml_serializer.rb +853 -71
  246. data/lib/rubygems.rb +45 -11
  247. data/rubygems-update.gemspec +3 -4
  248. data/setup.rb +1 -0
  249. metadata +365 -410
  250. data/bundler/CHANGELOG.md +0 -5784
  251. data/bundler/LICENSE.md +0 -22
  252. data/bundler/README.md +0 -58
  253. data/bundler/bundler.gemspec +0 -46
  254. data/bundler/lib/bundler/compact_index_client/cache.rb +0 -107
  255. data/bundler/lib/bundler/compact_index_client/cache_file.rb +0 -148
  256. data/bundler/lib/bundler/compact_index_client/parser.rb +0 -87
  257. data/bundler/lib/bundler/compact_index_client/updater.rb +0 -105
  258. data/bundler/lib/bundler/compact_index_client.rb +0 -92
  259. data/bundler/lib/bundler/match_metadata.rb +0 -30
  260. data/bundler/lib/bundler/match_remote_metadata.rb +0 -29
  261. data/bundler/lib/bundler/vendor/connection_pool/LICENSE +0 -20
  262. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +0 -227
  263. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +0 -3
  264. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +0 -56
  265. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +0 -230
  266. data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +0 -82
  267. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +0 -41
  268. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +0 -65
  269. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +0 -80
  270. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +0 -1153
  271. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +0 -31
  272. data/bundler/lib/bundler/vendor/securerandom/lib/securerandom.rb +0 -102
  273. data/bundler/lib/bundler/vendor/uri/COPYING +0 -56
  274. data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +0 -922
  275. data/bundler/lib/bundler/vendor/uri/lib/uri/file.rb +0 -100
  276. data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +0 -267
  277. data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +0 -1592
  278. data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +0 -137
  279. data/bundler/lib/bundler/vendor/uri/lib/uri/https.rb +0 -23
  280. data/bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb +0 -261
  281. data/bundler/lib/bundler/vendor/uri/lib/uri/ldaps.rb +0 -22
  282. data/bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb +0 -293
  283. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +0 -547
  284. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +0 -206
  285. data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +0 -6
  286. data/bundler/lib/bundler/vendor/uri/lib/uri/ws.rb +0 -83
  287. data/bundler/lib/bundler/vendor/uri/lib/uri/wss.rb +0 -23
  288. data/bundler/lib/bundler/vendor/uri/lib/uri.rb +0 -104
  289. data/bundler/lib/bundler/vendored_persistent.rb +0 -11
  290. data/bundler/lib/bundler/vendored_securerandom.rb +0 -12
  291. data/bundler/lib/bundler/vendored_uri.rb +0 -21
  292. data/bundler/lib/bundler/yaml_serializer.rb +0 -98
  293. data/doc/rubygems/CONTRIBUTING.md +0 -231
  294. data/doc/rubygems/POLICIES.md +0 -60
  295. data/lib/rubygems/request_set/lockfile/parser.rb +0 -344
  296. data/lib/rubygems/request_set/lockfile/tokenizer.rb +0 -122
  297. data/lib/rubygems/resolver/conflict.rb +0 -146
  298. data/lib/rubygems/resolver/stats.rb +0 -46
  299. data/lib/rubygems/util/list.rb +0 -40
  300. data/lib/rubygems/vendor/molinillo/LICENSE +0 -9
  301. data/lib/rubygems/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
  302. data/lib/rubygems/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +0 -88
  303. data/lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +0 -36
  304. data/lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +0 -66
  305. data/lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +0 -62
  306. data/lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +0 -63
  307. data/lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +0 -61
  308. data/lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +0 -126
  309. data/lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +0 -46
  310. data/lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +0 -36
  311. data/lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +0 -164
  312. data/lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph.rb +0 -255
  313. data/lib/rubygems/vendor/molinillo/lib/molinillo/errors.rb +0 -149
  314. data/lib/rubygems/vendor/molinillo/lib/molinillo/gem_metadata.rb +0 -6
  315. data/lib/rubygems/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +0 -112
  316. data/lib/rubygems/vendor/molinillo/lib/molinillo/modules/ui.rb +0 -67
  317. data/lib/rubygems/vendor/molinillo/lib/molinillo/resolution.rb +0 -839
  318. data/lib/rubygems/vendor/molinillo/lib/molinillo/resolver.rb +0 -46
  319. data/lib/rubygems/vendor/molinillo/lib/molinillo/state.rb +0 -58
  320. data/lib/rubygems/vendor/molinillo/lib/molinillo.rb +0 -11
  321. data/lib/rubygems/vendored_molinillo.rb +0 -3
  322. /data/{bundler/exe → exe}/bundle +0 -0
  323. /data/{bundler/exe → exe}/bundler +0 -0
  324. /data/{bundler/lib → lib}/bundler/.document +0 -0
  325. /data/{bundler/lib → lib}/bundler/capistrano.rb +0 -0
  326. /data/{bundler/lib → lib}/bundler/cli/binstubs.rb +0 -0
  327. /data/{bundler/lib → lib}/bundler/cli/check.rb +0 -0
  328. /data/{bundler/lib → lib}/bundler/cli/console.rb +0 -0
  329. /data/{bundler/lib → lib}/bundler/cli/doctor/diagnose.rb +0 -0
  330. /data/{bundler/lib → lib}/bundler/cli/doctor/ssl.rb +0 -0
  331. /data/{bundler/lib → lib}/bundler/cli/doctor.rb +0 -0
  332. /data/{bundler/lib → lib}/bundler/cli/exec.rb +0 -0
  333. /data/{bundler/lib → lib}/bundler/cli/fund.rb +0 -0
  334. /data/{bundler/lib → lib}/bundler/cli/info.rb +0 -0
  335. /data/{bundler/lib → lib}/bundler/cli/init.rb +0 -0
  336. /data/{bundler/lib → lib}/bundler/cli/issue.rb +0 -0
  337. /data/{bundler/lib → lib}/bundler/cli/list.rb +0 -0
  338. /data/{bundler/lib → lib}/bundler/cli/open.rb +0 -0
  339. /data/{bundler/lib → lib}/bundler/cli/platform.rb +0 -0
  340. /data/{bundler/lib → lib}/bundler/cli/plugin.rb +0 -0
  341. /data/{bundler/lib → lib}/bundler/cli/remove.rb +0 -0
  342. /data/{bundler/lib → lib}/bundler/cli/show.rb +0 -0
  343. /data/{bundler/lib → lib}/bundler/constants.rb +0 -0
  344. /data/{bundler/lib → lib}/bundler/current_ruby.rb +0 -0
  345. /data/{bundler/lib → lib}/bundler/deployment.rb +0 -0
  346. /data/{bundler/lib → lib}/bundler/deprecate.rb +0 -0
  347. /data/{bundler/lib → lib}/bundler/digest.rb +0 -0
  348. /data/{bundler/lib → lib}/bundler/environment_preserver.rb +0 -0
  349. /data/{bundler/lib → lib}/bundler/feature_flag.rb +0 -0
  350. /data/{bundler/lib → lib}/bundler/fetcher/base.rb +0 -0
  351. /data/{bundler/lib → lib}/bundler/fetcher/dependency.rb +0 -0
  352. /data/{bundler/lib → lib}/bundler/fetcher/gem_remote_fetcher.rb +0 -0
  353. /data/{bundler/lib → lib}/bundler/fetcher/index.rb +0 -0
  354. /data/{bundler/lib → lib}/bundler/force_platform.rb +0 -0
  355. /data/{bundler/lib → lib}/bundler/friendly_errors.rb +0 -0
  356. /data/{bundler/lib → lib}/bundler/gem_helper.rb +0 -0
  357. /data/{bundler/lib → lib}/bundler/gem_tasks.rb +0 -0
  358. /data/{bundler/lib → lib}/bundler/gem_version_promoter.rb +0 -0
  359. /data/{bundler/lib → lib}/bundler/index.rb +0 -0
  360. /data/{bundler/lib → lib}/bundler/installer/gem_installer.rb +0 -0
  361. /data/{bundler/lib → lib}/bundler/installer/standalone.rb +0 -0
  362. /data/{bundler/lib → lib}/bundler/man/.document +0 -0
  363. /data/{bundler/lib → lib}/bundler/man/bundle-binstubs.1.ronn +0 -0
  364. /data/{bundler/lib → lib}/bundler/man/bundle-check.1.ronn +0 -0
  365. /data/{bundler/lib → lib}/bundler/man/bundle-clean.1.ronn +0 -0
  366. /data/{bundler/lib → lib}/bundler/man/bundle-console.1.ronn +0 -0
  367. /data/{bundler/lib → lib}/bundler/man/bundle-doctor.1.ronn +0 -0
  368. /data/{bundler/lib → lib}/bundler/man/bundle-env.1.ronn +0 -0
  369. /data/{bundler/lib → lib}/bundler/man/bundle-exec.1.ronn +0 -0
  370. /data/{bundler/lib → lib}/bundler/man/bundle-fund.1.ronn +0 -0
  371. /data/{bundler/lib → lib}/bundler/man/bundle-gem.1.ronn +0 -0
  372. /data/{bundler/lib → lib}/bundler/man/bundle-help.1.ronn +0 -0
  373. /data/{bundler/lib → lib}/bundler/man/bundle-info.1.ronn +0 -0
  374. /data/{bundler/lib → lib}/bundler/man/bundle-init.1.ronn +0 -0
  375. /data/{bundler/lib → lib}/bundler/man/bundle-issue.1.ronn +0 -0
  376. /data/{bundler/lib → lib}/bundler/man/bundle-licenses.1.ronn +0 -0
  377. /data/{bundler/lib → lib}/bundler/man/bundle-list.1.ronn +0 -0
  378. /data/{bundler/lib → lib}/bundler/man/bundle-open.1.ronn +0 -0
  379. /data/{bundler/lib → lib}/bundler/man/bundle-outdated.1.ronn +0 -0
  380. /data/{bundler/lib → lib}/bundler/man/bundle-platform.1.ronn +0 -0
  381. /data/{bundler/lib → lib}/bundler/man/bundle-plugin.1.ronn +0 -0
  382. /data/{bundler/lib → lib}/bundler/man/bundle-pristine.1.ronn +0 -0
  383. /data/{bundler/lib → lib}/bundler/man/bundle-remove.1.ronn +0 -0
  384. /data/{bundler/lib → lib}/bundler/man/bundle-show.1.ronn +0 -0
  385. /data/{bundler/lib → lib}/bundler/man/bundle-version.1.ronn +0 -0
  386. /data/{bundler/lib → lib}/bundler/man/bundle.1.ronn +0 -0
  387. /data/{bundler/lib → lib}/bundler/man/index.txt +0 -0
  388. /data/{bundler/lib → lib}/bundler/mirror.rb +0 -0
  389. /data/{bundler/lib → lib}/bundler/plugin/api/source.rb +0 -0
  390. /data/{bundler/lib → lib}/bundler/plugin/api.rb +0 -0
  391. /data/{bundler/lib → lib}/bundler/plugin/installer/git.rb +0 -0
  392. /data/{bundler/lib → lib}/bundler/plugin/installer/rubygems.rb +0 -0
  393. /data/{bundler/lib → lib}/bundler/plugin/source_list.rb +0 -0
  394. /data/{bundler/lib → lib}/bundler/plugin/unloaded_source.rb +0 -0
  395. /data/{bundler/lib → lib}/bundler/process_lock.rb +0 -0
  396. /data/{bundler/lib → lib}/bundler/resolver/candidate.rb +0 -0
  397. /data/{bundler/lib → lib}/bundler/resolver/package.rb +0 -0
  398. /data/{bundler/lib → lib}/bundler/resolver/root.rb +0 -0
  399. /data/{bundler/lib → lib}/bundler/resolver/spec_group.rb +0 -0
  400. /data/{bundler/lib → lib}/bundler/resolver/strategy.rb +0 -0
  401. /data/{bundler/lib → lib}/bundler/retry.rb +0 -0
  402. /data/{bundler/lib → lib}/bundler/ruby_dsl.rb +0 -0
  403. /data/{bundler/lib → lib}/bundler/safe_marshal.rb +0 -0
  404. /data/{bundler/lib → lib}/bundler/settings/validator.rb +0 -0
  405. /data/{bundler/lib → lib}/bundler/setup.rb +0 -0
  406. /data/{bundler/lib → lib}/bundler/source/gemspec.rb +0 -0
  407. /data/{bundler/lib → lib}/bundler/source/metadata.rb +0 -0
  408. /data/{bundler/lib → lib}/bundler/source/path.rb +0 -0
  409. /data/{bundler/lib → lib}/bundler/source/rubygems_aggregate.rb +0 -0
  410. /data/{bundler/lib → lib}/bundler/source.rb +0 -0
  411. /data/{bundler/lib → lib}/bundler/source_list.rb +0 -0
  412. /data/{bundler/lib → lib}/bundler/source_map.rb +0 -0
  413. /data/{bundler/lib → lib}/bundler/templates/.document +0 -0
  414. /data/{bundler/lib → lib}/bundler/templates/Executable +0 -0
  415. /data/{bundler/lib → lib}/bundler/templates/Executable.standalone +0 -0
  416. /data/{bundler/lib → lib}/bundler/templates/Gemfile +0 -0
  417. /data/{bundler/lib → lib}/bundler/templates/newgem/CHANGELOG.md.tt +0 -0
  418. /data/{bundler/lib → lib}/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +0 -0
  419. /data/{bundler/lib → lib}/bundler/templates/newgem/Cargo.toml.tt +0 -0
  420. /data/{bundler/lib → lib}/bundler/templates/newgem/LICENSE.txt.tt +0 -0
  421. /data/{bundler/lib → lib}/bundler/templates/newgem/README.md.tt +0 -0
  422. /data/{bundler/lib → lib}/bundler/templates/newgem/Rakefile.tt +0 -0
  423. /data/{bundler/lib → lib}/bundler/templates/newgem/bin/console.tt +0 -0
  424. /data/{bundler/lib → lib}/bundler/templates/newgem/bin/setup.tt +0 -0
  425. /data/{bundler/lib → lib}/bundler/templates/newgem/circleci/config.yml.tt +0 -0
  426. /data/{bundler/lib → lib}/bundler/templates/newgem/exe/newgem.tt +0 -0
  427. /data/{bundler/lib → lib}/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +0 -0
  428. /data/{bundler/lib → lib}/bundler/templates/newgem/ext/newgem/build.rs.tt +0 -0
  429. /data/{bundler/lib → lib}/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt +0 -0
  430. /data/{bundler/lib → lib}/bundler/templates/newgem/ext/newgem/extconf-go.rb.tt +0 -0
  431. /data/{bundler/lib → lib}/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +0 -0
  432. /data/{bundler/lib → lib}/bundler/templates/newgem/ext/newgem/go.mod.tt +0 -0
  433. /data/{bundler/lib → lib}/bundler/templates/newgem/ext/newgem/newgem-go.c.tt +0 -0
  434. /data/{bundler/lib → lib}/bundler/templates/newgem/ext/newgem/newgem.c.tt +0 -0
  435. /data/{bundler/lib → lib}/bundler/templates/newgem/ext/newgem/newgem.go.tt +0 -0
  436. /data/{bundler/lib → lib}/bundler/templates/newgem/ext/newgem/newgem.h.tt +0 -0
  437. /data/{bundler/lib → lib}/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +0 -0
  438. /data/{bundler/lib → lib}/bundler/templates/newgem/github/workflows/build-gems.yml.tt +0 -0
  439. /data/{bundler/lib → lib}/bundler/templates/newgem/github/workflows/main.yml.tt +0 -0
  440. /data/{bundler/lib → lib}/bundler/templates/newgem/gitignore.tt +0 -0
  441. /data/{bundler/lib → lib}/bundler/templates/newgem/gitlab-ci.yml.tt +0 -0
  442. /data/{bundler/lib → lib}/bundler/templates/newgem/lib/newgem/version.rb.tt +0 -0
  443. /data/{bundler/lib → lib}/bundler/templates/newgem/lib/newgem.rb.tt +0 -0
  444. /data/{bundler/lib → lib}/bundler/templates/newgem/rspec.tt +0 -0
  445. /data/{bundler/lib → lib}/bundler/templates/newgem/rubocop.yml.tt +0 -0
  446. /data/{bundler/lib → lib}/bundler/templates/newgem/sig/newgem.rbs.tt +0 -0
  447. /data/{bundler/lib → lib}/bundler/templates/newgem/spec/spec_helper.rb.tt +0 -0
  448. /data/{bundler/lib → lib}/bundler/templates/newgem/standard.yml.tt +0 -0
  449. /data/{bundler/lib → lib}/bundler/templates/newgem/test/minitest/test_helper.rb.tt +0 -0
  450. /data/{bundler/lib → lib}/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt +0 -0
  451. /data/{bundler/lib → lib}/bundler/templates/newgem/test/test-unit/test_helper.rb.tt +0 -0
  452. /data/{bundler/lib → lib}/bundler/ui/rg_proxy.rb +0 -0
  453. /data/{bundler/lib → lib}/bundler/ui.rb +0 -0
  454. /data/{bundler/lib → lib}/bundler/uri_credentials_filter.rb +0 -0
  455. /data/{bundler/lib → lib}/bundler/uri_normalizer.rb +0 -0
  456. /data/{bundler/lib → lib}/bundler/vendor/.document +0 -0
  457. /data/{bundler/lib → lib}/bundler/vendor/fileutils/COPYING +0 -0
  458. /data/{bundler/lib → lib}/bundler/vendor/fileutils/lib/fileutils.rb +0 -0
  459. /data/{bundler/lib → lib}/bundler/vendor/thor/LICENSE.md +0 -0
  460. /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/actions/create_file.rb +0 -0
  461. /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/actions/create_link.rb +0 -0
  462. /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/actions/directory.rb +0 -0
  463. /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/actions/empty_directory.rb +0 -0
  464. /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +0 -0
  465. /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/actions.rb +0 -0
  466. /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/command.rb +0 -0
  467. /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +0 -0
  468. /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/error.rb +0 -0
  469. /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/group.rb +0 -0
  470. /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/invocation.rb +0 -0
  471. /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/line_editor/basic.rb +0 -0
  472. /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/line_editor/readline.rb +0 -0
  473. /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/line_editor.rb +0 -0
  474. /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/nested_context.rb +0 -0
  475. /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/parser/argument.rb +0 -0
  476. /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/parser/arguments.rb +0 -0
  477. /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/parser/option.rb +0 -0
  478. /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/parser/options.rb +0 -0
  479. /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/parser.rb +0 -0
  480. /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/rake_compat.rb +0 -0
  481. /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/runner.rb +0 -0
  482. /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/shell/column_printer.rb +0 -0
  483. /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/shell/html.rb +0 -0
  484. /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/shell/table_printer.rb +0 -0
  485. /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/shell/terminal.rb +0 -0
  486. /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/shell/wrapped_printer.rb +0 -0
  487. /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/shell.rb +0 -0
  488. /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/util.rb +0 -0
  489. /data/{bundler/lib → lib}/bundler/vendored_fileutils.rb +0 -0
  490. /data/{bundler/lib → lib}/bundler/vendored_net_http.rb +0 -0
  491. /data/{bundler/lib → lib}/bundler/vendored_thor.rb +0 -0
  492. /data/{bundler/lib → lib}/bundler/vendored_timeout.rb +0 -0
  493. /data/{bundler/lib → lib}/bundler/vendored_tsort.rb +0 -0
  494. /data/{bundler/lib → lib}/bundler/vlad.rb +0 -0
  495. /data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/LICENSE.txt +0 -0
  496. /data/{bundler/lib/bundler/vendor/securerandom → lib/rubygems/vendor/resolv}/COPYING +0 -0
@@ -1,231 +0,0 @@
1
- # How to contribute
2
-
3
- Community involvement is essential to RubyGems. We want to keep it as easy as
4
- 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 (run `bin/rake rubocop`)
15
-
16
- 3. If any new files are added or existing files removed in a commit or PR,
17
- please update the `Manifest.txt` accordingly. This can be done by running
18
- `bin/rake update_manifest`
19
-
20
- 4. Don't modify the history file or version number.
21
-
22
- 5. If you have any questions, Feel free to join us on Slack, you can register
23
- by signing up at http://slack.bundler.io or file an issue here:
24
- http://github.com/ruby/rubygems/issues
25
-
26
-
27
- For more information and ideas on how to contribute to RubyGems ecosystem, see
28
- here: https://guides.rubygems.org/contributing/
29
-
30
- ## Getting Started
31
-
32
- ### Installing dependencies
33
-
34
- bin/rake setup
35
-
36
- > **NOTE**: If the above fails with permission related errors, you're most
37
- > likely using a global Ruby installation (like the one packaged by your OS),
38
- > which sets `GEM_HOME` to a location regular users can't write to. Consider
39
- > using a Ruby version manager like [RVM](https://github.com/rvm/rvm),
40
- > [rbenv](https://github.com/rbenv/rbenv),
41
- > [chruby](https://github.com/postmodern/chruby) or [asdf](https://github.com/asdf-vm/asdf-ruby). These will install Ruby to a
42
- > location regular users can write to, so you won't run into permission issues.
43
- > Alternatively, consider setting `GEM_HOME` environment variable to a writable
44
- > location with something like `export GEM_HOME=/tmp/rubygems.gems` and try
45
- > again.
46
-
47
- ### Manually trying your local changes
48
-
49
- To run commands like `gem install` from the repo:
50
-
51
- ruby -Ilib exe/gem install
52
-
53
- To run commands like `bundle install` from the repo:
54
-
55
- bundler/bin/bundle install
56
-
57
- ### Running Tests
58
-
59
- To run the entire test suite you can use:
60
-
61
- bin/rake test
62
-
63
- To run an individual test file located for example in `test/rubygems/test_deprecate.rb` you can use:
64
-
65
- ruby -Ilib:test:bundler/lib test/rubygems/test_deprecate.rb
66
-
67
- And to run an individual test method named `test_default` within a test file, you can use:
68
-
69
- ruby -Ilib:test:bundler/lib test/rubygems/test_deprecate.rb -n /test_default/
70
-
71
- ### Running bundler tests
72
-
73
- To run the entire bundler test suite in parallel (it takes a while), run the following from the `bundler/` subfolder:
74
-
75
- bin/parallel_rspec
76
-
77
- There are some realworld higher level specs run in CI, but not run by `bin/parallel_rspec`. You can run those with:
78
-
79
- bin/rake spec:realworld
80
-
81
- To run an individual test file location for example in `spec/install/gems/standalone_spec.rb` you can use the following from the `bundler/` subfolder:
82
-
83
- bin/rspec spec/install/gems/standalone_spec.rb
84
-
85
- To test Rubygems changes in bundler, set the path to your local Rubygems copy using the `RGV` environment variable:
86
-
87
- RGV=.. bin/rspec spec/install/gems/standalone_spec.rb
88
-
89
- ### Checking code style
90
-
91
- You can check compliance with our code style with
92
-
93
- bin/rake rubocop
94
-
95
- Optionally you can configure git hooks with to check this before every commit with
96
-
97
- bin/rake git_hooks
98
-
99
- For more information, check [SETUP.md](../bundler/development/SETUP.md) and [DEBUGGING.md](../bundler/development/DEBUGGING.md).
100
-
101
- ## Issues
102
-
103
- RubyGems uses labels to track all issues and pull requests. In order to
104
- provide guidance to the community this is documentation of how labels are used
105
- in the rubygems repository.
106
-
107
- ### Contribution
108
-
109
- These labels are made to guide contributors to issue/pull requests that they
110
- can help with.
111
-
112
- * **good first issue** - The issue described here is considered a good option
113
- for a new contributor. We encourage new contributors though to work on
114
- whichever issue they find most interesting, the ones labeled here as just
115
- estimated to have a reasonable level of complexity for someone new to the
116
- code base.
117
- * **help wanted** - The issue has not been claimed for work, and is awaiting
118
- willing volunteers!
119
-
120
-
121
- ### Type
122
-
123
- Issues might have a light green `type: *` label, which describes the type of
124
- the issue.
125
-
126
- * **bug report** - An issue describing a bug in rubygems. This would be
127
- something that is broken, confusing, unexpected behavior etc.
128
- * **feature request** - An issue describing a request for a new feature or
129
- enhancement.
130
- * **question** - An issue that is a more of a question than a call for
131
- specific changes in the codebase.
132
- * **cleanup** - An issue that proposes cleanups to the code base without
133
- fixing a bug or implementing a feature.
134
- * **major bump** - This issue request requires a major version bump
135
- * **administrative** - This issue relates to administrative tasks that need
136
- to take place as it relates to rubygems
137
- * **documentation** - This issue relates to improving the documentation for
138
- in this repo. Note that much of the rubygems documentation is here:
139
- https://github.com/rubygems/guides
140
-
141
- Pull request might have a light orange `rubygems: *` or a light blue `bundler:
142
- *` label which describes the pull request according to the following criteria:
143
-
144
- * **security fix** - A pull request that fixes a security issue.
145
- * **breaking change** - A pull request including any change that requires a
146
- major version bump.
147
- * **major enhancement** - A pull request including a backwards compatible
148
- change worth a special mention in the changelog
149
- * **deprecation** - A pull request that introduces a deprecation.
150
- * **feature** - A pull request implementing a feature request.
151
- * **deprecation** - A pull request that implements a performance improvement.
152
- * **documentation** - A pull request introducing documentation improvements
153
- worth mentioning to end users.
154
- * **minor enhancements** - A pull request introducing small but user visible changes.
155
- * **bug fix** - A pull request that fixes a bug report.
156
-
157
- In the case of `bundler`, these labels are set by maintainers on PRs and have
158
- special importance because they are used to automatically build the changelog.
159
-
160
- ### Workflow / Status
161
-
162
- The light yellow `status: *` labels that indicate the state of an issue,
163
- where it is in the process from being submitted to being closed. These are
164
- listed in rough progression order from submitted to closed.
165
-
166
- * **triage** - This is an issue or pull request that needs to be properly
167
- labeled by a maintainer.
168
- * **confirmed** - This issue/pull request has been accepted as valid, but is
169
- not yet immediately ready for work.
170
- * **ready** - An issue that is available for collaboration. This issue
171
- should have existing discussion on the problem, and a description of how
172
- to go about solving it.
173
- * **working** - An issue that has a specific individual assigned to and
174
- planning to do work on it.
175
- * **user feedback required** - The issue/pull request is blocked pending
176
- more feedback from an end user
177
- * **blocked / backlog** - the issue/pull request is currently unable to move
178
- forward because of some specific reason, generally this will be a reason
179
- that is outside RubyGems or needs feedback from some specific individual
180
- or group, and it may be a while before something it is resolved.
181
-
182
-
183
- ### Closed Reason
184
-
185
- Reasons are why an issue / pull request was closed without being worked on or
186
- accepted. There should also be more detailed information in the comments. The
187
- closed reason labels are maroon `closed: *`.
188
-
189
- * **duplicate** - This is a duplicate of an existing bug. The comments must
190
- reference the existing issue.
191
- * **abandoned** - This is an issue/pull request that has aged off, is no
192
- longer applicable or similar.
193
- * **declined** - An issue that won't be fixed/implemented or a pull request
194
- that is not accepted.
195
- * **deprecated** - An issue/pull request that no longer applies to the
196
- actively maintained codebase.
197
- * **discussion** - An issue/pull that is no longer about a concrete change,
198
- and is instead being used for discussion.
199
-
200
-
201
- ### Categories
202
-
203
- These are aspects of the codebase, or what general area the issue or pull
204
- request pertains too. Not all issues will have a category. All categorized
205
- issues have a blue `category: *` label.
206
-
207
- * **gemspec** - related to the gem specification itself
208
- * **API** - related to the public supported rubygems API. This is the code
209
- API, not a network related API.
210
- * **command** - related to something in `Gem::Commands`
211
- * **install** - related to gem installations
212
- * **documentation** - related to updating / fixing / clarifying
213
- documentation or guides
214
-
215
-
216
- ### Platforms
217
-
218
- If an issue or pull request pertains to only one platform, then it should have
219
- an appropriate purple `platform: *` label. Current platform labels:
220
- **windows**, **java**, **osx**, **linux**
221
-
222
- ### Git
223
-
224
- Please sign your commits. Although not required in order for you to contribute,
225
- it ensures that any code submitted by you wasn't altered while you were
226
- transferring it, and proves that it was you who submitted it and not someone
227
- else.
228
-
229
- Please see https://git-scm.com/book/en/v2/Git-Tools-Signing-Your-Work or
230
- https://help.github.com/en/articles/signing-commits for details on how to
231
- to generate a signature and automatically sign your commits.
@@ -1,60 +0,0 @@
1
- ## Pull Requests
2
-
3
- Contributions to RubyGems are made via GitHub pull requests, which must be
4
- approved by a project committer other than the author. To approve a PR, a
5
- maintainer can use GitHubs PR review feature. After that, if the original author
6
- is happy to merge the PR, she can press the merge button.
7
-
8
- ## Long-Term Support
9
-
10
- RubyGems will support Ruby versions for as long as the Ruby team supports that
11
- Ruby version. That means that the latest RubyGems release will always support
12
- the currently-supported Ruby versions, and RubyGems security fixes will be
13
- released for any RubyGems version that shipped inside a currently-supported
14
- Ruby version.
15
-
16
- ### Bugfix Releases
17
-
18
- RubyGems generally releases bugfixes from the master branch. We may mix bug
19
- fixes and new features in the same release. RubyGems does not guarantee it
20
- will ship bugfix releases for previous minor or major versions.
21
-
22
- For example, after RubyGems 2.5 is released, the RubyGems team will not
23
- provide non-security fixes for RubyGems 2.4, or any earlier versions.
24
-
25
- ### Security Releases
26
-
27
- Security releases will be made for RubyGems minor versions that were included
28
- in a currently-supported Ruby release.
29
-
30
- For example, since RubyGems 2.0 was shipped in Ruby 2.0, RubyGems 2.0 will
31
- receive security fixes until Ruby 2.0 reaches end-of-life.
32
-
33
- ### Ruby Version Support
34
-
35
- When a Ruby version reaches end-of-life the following minor release of
36
- RubyGems will drop backwards compatibility with that Ruby version.
37
-
38
- For example, since Ruby 2.2 has reached end-of-life, future RubyGems minor
39
- releases will only support Ruby 2.3 and above. As of this writing RubyGems is
40
- at version 2.7, so when RubyGems 2.8 is released, it will only support Ruby
41
- 2.3 and later.
42
-
43
- ## Committer Access
44
-
45
- RubyGems committers may lose their commit privileges if they are inactive for
46
- longer than 12 months. Committer permission may be restored upon request by
47
- having a pull request merged.
48
-
49
- This is designed to improve the maintainability of RubyGems by requiring
50
- committers to maintain familiarity with RubyGems activity and to improve the
51
- security of RubyGems by preventing idle committers from having their commit
52
- permissions compromised or exposed.
53
-
54
- ## Changing These Policies
55
-
56
- These policies were set in order to reduce the burden of maintenance and to keep
57
- committers current with existing development and policies. RubyGems work is
58
- primarily volunteer-driven which limits the ability to provide long-term
59
- support. By joining [Ruby Central](https://rubycentral.org/#/portal/signup) you
60
- can help extend support for older RubyGems versions.
@@ -1,344 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class Gem::RequestSet::Lockfile::Parser
4
- ###
5
- # Parses lockfiles
6
-
7
- def initialize(tokenizer, set, platforms, filename = nil)
8
- @tokens = tokenizer
9
- @filename = filename
10
- @set = set
11
- @platforms = platforms
12
- end
13
-
14
- def parse
15
- until @tokens.empty? do
16
- token = get
17
-
18
- case token.type
19
- when :section then
20
- @tokens.skip :newline
21
-
22
- case token.value
23
- when "DEPENDENCIES" then
24
- parse_DEPENDENCIES
25
- when "GIT" then
26
- parse_GIT
27
- when "GEM" then
28
- parse_GEM
29
- when "PATH" then
30
- parse_PATH
31
- when "PLATFORMS" then
32
- parse_PLATFORMS
33
- else
34
- token = get until @tokens.empty? || peek.first == :section
35
- end
36
- else
37
- raise "BUG: unhandled token #{token.type} (#{token.value.inspect}) at line #{token.line} column #{token.column}"
38
- end
39
- end
40
- end
41
-
42
- ##
43
- # Gets the next token for a Lockfile
44
-
45
- def get(expected_types = nil, expected_value = nil) # :nodoc:
46
- token = @tokens.shift
47
-
48
- if expected_types && !Array(expected_types).include?(token.type)
49
- unget token
50
-
51
- message = "unexpected token [#{token.type.inspect}, #{token.value.inspect}], " \
52
- "expected #{expected_types.inspect}"
53
-
54
- raise Gem::RequestSet::Lockfile::ParseError.new message, token.column, token.line, @filename
55
- end
56
-
57
- if expected_value && expected_value != token.value
58
- unget token
59
-
60
- message = "unexpected token [#{token.type.inspect}, #{token.value.inspect}], " \
61
- "expected [#{expected_types.inspect}, " \
62
- "#{expected_value.inspect}]"
63
-
64
- raise Gem::RequestSet::Lockfile::ParseError.new message, token.column, token.line, @filename
65
- end
66
-
67
- token
68
- end
69
-
70
- def parse_DEPENDENCIES # :nodoc:
71
- while !@tokens.empty? && peek.type == :text do
72
- token = get :text
73
-
74
- requirements = []
75
-
76
- case peek[0]
77
- when :bang then
78
- get :bang
79
-
80
- requirements << pinned_requirement(token.value)
81
- when :l_paren then
82
- get :l_paren
83
-
84
- loop do
85
- op = get(:requirement).value
86
- version = get(:text).value
87
-
88
- requirements << "#{op} #{version}"
89
-
90
- break unless peek.type == :comma
91
-
92
- get :comma
93
- end
94
-
95
- get :r_paren
96
-
97
- if peek[0] == :bang
98
- requirements.clear
99
- requirements << pinned_requirement(token.value)
100
-
101
- get :bang
102
- end
103
- end
104
-
105
- @set.gem token.value, *requirements
106
-
107
- skip :newline
108
- end
109
- end
110
-
111
- def parse_GEM # :nodoc:
112
- sources = []
113
-
114
- while peek.first(2) == [:entry, "remote"] do
115
- get :entry, "remote"
116
- data = get(:text).value
117
- skip :newline
118
-
119
- sources << Gem::Source.new(data)
120
- end
121
-
122
- sources << Gem::Source.new(Gem::DEFAULT_HOST) if sources.empty?
123
-
124
- get :entry, "specs"
125
-
126
- skip :newline
127
-
128
- set = Gem::Resolver::LockSet.new sources
129
- last_specs = nil
130
-
131
- while !@tokens.empty? && peek.type == :text do
132
- token = get :text
133
- name = token.value
134
- column = token.column
135
-
136
- case peek[0]
137
- when :newline then
138
- last_specs.each do |spec|
139
- spec.add_dependency Gem::Dependency.new name if column == 6
140
- end
141
- when :l_paren then
142
- get :l_paren
143
-
144
- token = get [:text, :requirement]
145
- type = token.type
146
- data = token.value
147
-
148
- if type == :text && column == 4
149
- version, platform = data.split "-", 2
150
-
151
- platform =
152
- platform ? Gem::Platform.new(platform) : Gem::Platform::RUBY
153
-
154
- last_specs = set.add name, version, platform
155
- else
156
- dependency = parse_dependency name, data
157
-
158
- last_specs.each do |spec|
159
- spec.add_dependency dependency
160
- end
161
- end
162
-
163
- get :r_paren
164
- else
165
- raise "BUG: unknown token #{peek}"
166
- end
167
-
168
- skip :newline
169
- end
170
-
171
- @set.sets << set
172
- end
173
-
174
- def parse_GIT # :nodoc:
175
- get :entry, "remote"
176
- repository = get(:text).value
177
-
178
- skip :newline
179
-
180
- get :entry, "revision"
181
- revision = get(:text).value
182
-
183
- skip :newline
184
-
185
- type = peek.type
186
- value = peek.value
187
- if type == :entry && %w[branch ref tag].include?(value)
188
- get
189
- get :text
190
-
191
- skip :newline
192
- end
193
-
194
- get :entry, "specs"
195
-
196
- skip :newline
197
-
198
- set = Gem::Resolver::GitSet.new
199
- set.root_dir = @set.install_dir
200
-
201
- last_spec = nil
202
-
203
- while !@tokens.empty? && peek.type == :text do
204
- token = get :text
205
- name = token.value
206
- column = token.column
207
-
208
- case peek[0]
209
- when :newline then
210
- last_spec.add_dependency Gem::Dependency.new name if column == 6
211
- when :l_paren then
212
- get :l_paren
213
-
214
- token = get [:text, :requirement]
215
- type = token.type
216
- data = token.value
217
-
218
- if type == :text && column == 4
219
- last_spec = set.add_git_spec name, data, repository, revision, true
220
- else
221
- dependency = parse_dependency name, data
222
-
223
- last_spec.add_dependency dependency
224
- end
225
-
226
- get :r_paren
227
- else
228
- raise "BUG: unknown token #{peek}"
229
- end
230
-
231
- skip :newline
232
- end
233
-
234
- @set.sets << set
235
- end
236
-
237
- def parse_PATH # :nodoc:
238
- get :entry, "remote"
239
- directory = get(:text).value
240
-
241
- skip :newline
242
-
243
- get :entry, "specs"
244
-
245
- skip :newline
246
-
247
- set = Gem::Resolver::VendorSet.new
248
- last_spec = nil
249
-
250
- while !@tokens.empty? && peek.first == :text do
251
- token = get :text
252
- name = token.value
253
- column = token.column
254
-
255
- case peek[0]
256
- when :newline then
257
- last_spec.add_dependency Gem::Dependency.new name if column == 6
258
- when :l_paren then
259
- get :l_paren
260
-
261
- token = get [:text, :requirement]
262
- type = token.type
263
- data = token.value
264
-
265
- if type == :text && column == 4
266
- last_spec = set.add_vendor_gem name, directory
267
- else
268
- dependency = parse_dependency name, data
269
-
270
- last_spec.dependencies << dependency
271
- end
272
-
273
- get :r_paren
274
- else
275
- raise "BUG: unknown token #{peek}"
276
- end
277
-
278
- skip :newline
279
- end
280
-
281
- @set.sets << set
282
- end
283
-
284
- def parse_PLATFORMS # :nodoc:
285
- while !@tokens.empty? && peek.first == :text do
286
- name = get(:text).value
287
-
288
- @platforms << name
289
-
290
- skip :newline
291
- end
292
- end
293
-
294
- ##
295
- # Parses the requirements following the dependency +name+ and the +op+ for
296
- # the first token of the requirements and returns a Gem::Dependency object.
297
-
298
- def parse_dependency(name, op) # :nodoc:
299
- return Gem::Dependency.new name, op unless peek[0] == :text
300
-
301
- version = get(:text).value
302
-
303
- requirements = ["#{op} #{version}"]
304
-
305
- while peek.type == :comma do
306
- get :comma
307
- op = get(:requirement).value
308
- version = get(:text).value
309
-
310
- requirements << "#{op} #{version}"
311
- end
312
-
313
- Gem::Dependency.new name, requirements
314
- end
315
-
316
- private
317
-
318
- def skip(type) # :nodoc:
319
- @tokens.skip type
320
- end
321
-
322
- ##
323
- # Peeks at the next token for Lockfile
324
-
325
- def peek # :nodoc:
326
- @tokens.peek
327
- end
328
-
329
- def pinned_requirement(name) # :nodoc:
330
- requirement = Gem::Dependency.new name
331
- specification = @set.sets.flat_map do |set|
332
- set.find_all(requirement)
333
- end.compact.first
334
-
335
- specification&.version
336
- end
337
-
338
- ##
339
- # Ungets the last token retrieved by #get
340
-
341
- def unget(token) # :nodoc:
342
- @tokens.unshift token
343
- end
344
- end