rubygems-update 2.6.1 → 3.5.0
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.
- checksums.yaml +5 -5
- data/CHANGELOG.md +5899 -0
- data/CODE_OF_CONDUCT.md +76 -35
- data/CONTRIBUTING.md +231 -0
- data/MAINTAINERS.txt +8 -0
- data/Manifest.txt +428 -216
- data/POLICIES.md +135 -0
- data/README.md +112 -0
- data/UPGRADING.md +15 -0
- data/bundler/CHANGELOG.md +4719 -0
- data/bundler/LICENSE.md +22 -0
- data/bundler/README.md +58 -0
- data/bundler/UPGRADING.md +222 -0
- data/bundler/bundler.gemspec +46 -0
- data/bundler/exe/bundle +29 -0
- data/bundler/exe/bundler +4 -0
- data/bundler/lib/bundler/.document +1 -0
- data/bundler/lib/bundler/build_metadata.rb +45 -0
- data/bundler/lib/bundler/capistrano.rb +22 -0
- data/bundler/lib/bundler/checksum.rb +245 -0
- data/bundler/lib/bundler/ci_detector.rb +75 -0
- data/bundler/lib/bundler/cli/add.rb +47 -0
- data/bundler/lib/bundler/cli/binstubs.rb +57 -0
- data/bundler/lib/bundler/cli/cache.rb +43 -0
- data/bundler/lib/bundler/cli/check.rb +40 -0
- data/bundler/lib/bundler/cli/clean.rb +25 -0
- data/bundler/lib/bundler/cli/common.rb +138 -0
- data/bundler/lib/bundler/cli/config.rb +204 -0
- data/bundler/lib/bundler/cli/console.rb +44 -0
- data/bundler/lib/bundler/cli/doctor.rb +157 -0
- data/bundler/lib/bundler/cli/exec.rb +88 -0
- data/bundler/lib/bundler/cli/fund.rb +36 -0
- data/bundler/lib/bundler/cli/gem.rb +471 -0
- data/bundler/lib/bundler/cli/info.rb +83 -0
- data/bundler/lib/bundler/cli/init.rb +51 -0
- data/bundler/lib/bundler/cli/inject.rb +60 -0
- data/bundler/lib/bundler/cli/install.rb +190 -0
- data/bundler/lib/bundler/cli/issue.rb +41 -0
- data/bundler/lib/bundler/cli/list.rb +66 -0
- data/bundler/lib/bundler/cli/lock.rb +73 -0
- data/bundler/lib/bundler/cli/open.rb +29 -0
- data/bundler/lib/bundler/cli/outdated.rb +297 -0
- data/bundler/lib/bundler/cli/platform.rb +48 -0
- data/bundler/lib/bundler/cli/plugin.rb +34 -0
- data/bundler/lib/bundler/cli/pristine.rb +60 -0
- data/bundler/lib/bundler/cli/remove.rb +17 -0
- data/bundler/lib/bundler/cli/show.rb +75 -0
- data/bundler/lib/bundler/cli/update.rb +123 -0
- data/bundler/lib/bundler/cli/viz.rb +31 -0
- data/bundler/lib/bundler/cli.rb +846 -0
- data/bundler/lib/bundler/compact_index_client/cache.rb +121 -0
- data/bundler/lib/bundler/compact_index_client/cache_file.rb +153 -0
- data/bundler/lib/bundler/compact_index_client/gem_parser.rb +32 -0
- data/bundler/lib/bundler/compact_index_client/updater.rb +115 -0
- data/bundler/lib/bundler/compact_index_client.rb +126 -0
- data/bundler/lib/bundler/constants.rb +7 -0
- data/bundler/lib/bundler/current_ruby.rb +92 -0
- data/bundler/lib/bundler/definition.rb +1005 -0
- data/bundler/lib/bundler/dependency.rb +101 -0
- data/bundler/lib/bundler/deployment.rb +69 -0
- data/bundler/lib/bundler/deprecate.rb +44 -0
- data/bundler/lib/bundler/digest.rb +71 -0
- data/bundler/lib/bundler/dsl.rb +601 -0
- data/bundler/lib/bundler/endpoint_specification.rb +147 -0
- data/bundler/lib/bundler/env.rb +148 -0
- data/bundler/lib/bundler/environment_preserver.rb +86 -0
- data/bundler/lib/bundler/errors.rb +233 -0
- data/bundler/lib/bundler/feature_flag.rb +53 -0
- data/bundler/lib/bundler/fetcher/base.rb +52 -0
- data/bundler/lib/bundler/fetcher/compact_index.rb +129 -0
- data/bundler/lib/bundler/fetcher/dependency.rb +78 -0
- data/bundler/lib/bundler/fetcher/downloader.rb +91 -0
- data/bundler/lib/bundler/fetcher/gem_remote_fetcher.rb +16 -0
- data/bundler/lib/bundler/fetcher/index.rb +25 -0
- data/bundler/lib/bundler/fetcher.rb +324 -0
- data/bundler/lib/bundler/force_platform.rb +18 -0
- data/bundler/lib/bundler/friendly_errors.rb +126 -0
- data/bundler/lib/bundler/gem_helper.rb +237 -0
- data/bundler/lib/bundler/gem_helpers.rb +127 -0
- data/bundler/lib/bundler/gem_tasks.rb +7 -0
- data/bundler/lib/bundler/gem_version_promoter.rb +145 -0
- data/bundler/lib/bundler/graph.rb +152 -0
- data/bundler/lib/bundler/index.rb +205 -0
- data/bundler/lib/bundler/injector.rb +287 -0
- data/bundler/lib/bundler/inline.rb +73 -0
- data/bundler/lib/bundler/installer/gem_installer.rb +84 -0
- data/bundler/lib/bundler/installer/parallel_installer.rb +202 -0
- data/bundler/lib/bundler/installer/standalone.rb +116 -0
- data/bundler/lib/bundler/installer.rb +267 -0
- data/bundler/lib/bundler/lazy_specification.rb +170 -0
- data/bundler/lib/bundler/lockfile_generator.rb +104 -0
- data/bundler/lib/bundler/lockfile_parser.rb +289 -0
- data/bundler/lib/bundler/man/.document +1 -0
- data/bundler/lib/bundler/man/bundle-add.1 +59 -0
- data/bundler/lib/bundler/man/bundle-add.1.ronn +58 -0
- data/bundler/lib/bundler/man/bundle-binstubs.1 +30 -0
- data/bundler/lib/bundler/man/bundle-binstubs.1.ronn +41 -0
- data/bundler/lib/bundler/man/bundle-cache.1 +40 -0
- data/bundler/lib/bundler/man/bundle-cache.1.ronn +79 -0
- data/bundler/lib/bundler/man/bundle-check.1 +22 -0
- data/bundler/lib/bundler/man/bundle-check.1.ronn +26 -0
- data/bundler/lib/bundler/man/bundle-clean.1 +17 -0
- data/bundler/lib/bundler/man/bundle-clean.1.ronn +18 -0
- data/bundler/lib/bundler/man/bundle-config.1 +321 -0
- data/bundler/lib/bundler/man/bundle-config.1.ronn +411 -0
- data/bundler/lib/bundler/man/bundle-console.1 +35 -0
- data/bundler/lib/bundler/man/bundle-console.1.ronn +44 -0
- data/bundler/lib/bundler/man/bundle-doctor.1 +30 -0
- data/bundler/lib/bundler/man/bundle-doctor.1.ronn +33 -0
- data/bundler/lib/bundler/man/bundle-exec.1 +104 -0
- data/bundler/lib/bundler/man/bundle-exec.1.ronn +151 -0
- data/bundler/lib/bundler/man/bundle-gem.1 +69 -0
- data/bundler/lib/bundler/man/bundle-gem.1.ronn +117 -0
- data/bundler/lib/bundler/man/bundle-help.1 +9 -0
- data/bundler/lib/bundler/man/bundle-help.1.ronn +12 -0
- data/bundler/lib/bundler/man/bundle-info.1 +14 -0
- data/bundler/lib/bundler/man/bundle-info.1.ronn +17 -0
- data/bundler/lib/bundler/man/bundle-init.1 +20 -0
- data/bundler/lib/bundler/man/bundle-init.1.ronn +31 -0
- data/bundler/lib/bundler/man/bundle-inject.1 +23 -0
- data/bundler/lib/bundler/man/bundle-inject.1.ronn +24 -0
- data/bundler/lib/bundler/man/bundle-install.1 +215 -0
- data/bundler/lib/bundler/man/bundle-install.1.ronn +383 -0
- data/bundler/lib/bundler/man/bundle-list.1 +35 -0
- data/bundler/lib/bundler/man/bundle-list.1.ronn +33 -0
- data/bundler/lib/bundler/man/bundle-lock.1 +60 -0
- data/bundler/lib/bundler/man/bundle-lock.1.ronn +94 -0
- data/bundler/lib/bundler/man/bundle-open.1 +32 -0
- data/bundler/lib/bundler/man/bundle-open.1.ronn +27 -0
- data/bundler/lib/bundler/man/bundle-outdated.1 +100 -0
- data/bundler/lib/bundler/man/bundle-outdated.1.ronn +106 -0
- data/bundler/lib/bundler/man/bundle-platform.1 +49 -0
- data/bundler/lib/bundler/man/bundle-platform.1.ronn +49 -0
- data/bundler/lib/bundler/man/bundle-plugin.1 +55 -0
- data/bundler/lib/bundler/man/bundle-plugin.1.ronn +59 -0
- data/bundler/lib/bundler/man/bundle-pristine.1 +23 -0
- data/bundler/lib/bundler/man/bundle-pristine.1.ronn +34 -0
- data/bundler/lib/bundler/man/bundle-remove.1 +21 -0
- data/bundler/lib/bundler/man/bundle-remove.1.ronn +23 -0
- data/bundler/lib/bundler/man/bundle-show.1 +16 -0
- data/bundler/lib/bundler/man/bundle-show.1.ronn +21 -0
- data/bundler/lib/bundler/man/bundle-update.1 +275 -0
- data/bundler/lib/bundler/man/bundle-update.1.ronn +351 -0
- data/bundler/lib/bundler/man/bundle-version.1 +22 -0
- data/bundler/lib/bundler/man/bundle-version.1.ronn +24 -0
- data/bundler/lib/bundler/man/bundle-viz.1 +30 -0
- data/bundler/lib/bundler/man/bundle-viz.1.ronn +32 -0
- data/bundler/lib/bundler/man/bundle.1 +102 -0
- data/bundler/lib/bundler/man/bundle.1.ronn +116 -0
- data/bundler/lib/bundler/man/gemfile.5 +470 -0
- data/bundler/lib/bundler/man/gemfile.5.ronn +552 -0
- data/bundler/lib/bundler/man/index.txt +29 -0
- data/bundler/lib/bundler/match_metadata.rb +17 -0
- data/bundler/lib/bundler/match_platform.rb +23 -0
- data/bundler/lib/bundler/match_remote_metadata.rb +29 -0
- data/bundler/lib/bundler/mirror.rb +221 -0
- data/bundler/lib/bundler/plugin/api/source.rb +321 -0
- data/bundler/lib/bundler/plugin/api.rb +81 -0
- data/bundler/lib/bundler/plugin/dsl.rb +53 -0
- data/bundler/lib/bundler/plugin/events.rb +61 -0
- data/bundler/lib/bundler/plugin/index.rb +193 -0
- data/bundler/lib/bundler/plugin/installer/git.rb +34 -0
- data/bundler/lib/bundler/plugin/installer/rubygems.rb +19 -0
- data/bundler/lib/bundler/plugin/installer.rb +112 -0
- data/bundler/lib/bundler/plugin/source_list.rb +31 -0
- data/bundler/lib/bundler/plugin.rb +359 -0
- data/bundler/lib/bundler/process_lock.rb +24 -0
- data/bundler/lib/bundler/remote_specification.rb +117 -0
- data/bundler/lib/bundler/resolver/base.rb +107 -0
- data/bundler/lib/bundler/resolver/candidate.rb +94 -0
- data/bundler/lib/bundler/resolver/incompatibility.rb +15 -0
- data/bundler/lib/bundler/resolver/package.rb +77 -0
- data/bundler/lib/bundler/resolver/root.rb +25 -0
- data/bundler/lib/bundler/resolver/spec_group.rb +79 -0
- data/bundler/lib/bundler/resolver.rb +462 -0
- data/bundler/lib/bundler/retry.rb +66 -0
- data/bundler/lib/bundler/ruby_dsl.rb +53 -0
- data/bundler/lib/bundler/ruby_version.rb +131 -0
- data/bundler/lib/bundler/rubygems_ext.rb +328 -0
- data/bundler/lib/bundler/rubygems_gem_installer.rb +137 -0
- data/bundler/lib/bundler/rubygems_integration.rb +493 -0
- data/bundler/lib/bundler/runtime.rb +307 -0
- data/bundler/lib/bundler/safe_marshal.rb +31 -0
- data/bundler/lib/bundler/self_manager.rb +186 -0
- data/bundler/lib/bundler/settings/validator.rb +102 -0
- data/bundler/lib/bundler/settings.rb +588 -0
- data/bundler/lib/bundler/setup.rb +33 -0
- data/bundler/lib/bundler/shared_helpers.rb +380 -0
- data/bundler/lib/bundler/similarity_detector.rb +63 -0
- data/bundler/lib/bundler/source/gemspec.rb +18 -0
- data/bundler/lib/bundler/source/git/git_proxy.rb +455 -0
- data/bundler/lib/bundler/source/git.rb +380 -0
- data/bundler/lib/bundler/source/metadata.rb +62 -0
- data/bundler/lib/bundler/source/path/installer.rb +53 -0
- data/bundler/lib/bundler/source/path.rb +261 -0
- data/bundler/lib/bundler/source/rubygems/remote.rb +68 -0
- data/bundler/lib/bundler/source/rubygems.rb +516 -0
- data/bundler/lib/bundler/source/rubygems_aggregate.rb +68 -0
- data/bundler/lib/bundler/source.rb +116 -0
- data/bundler/lib/bundler/source_list.rb +227 -0
- data/bundler/lib/bundler/source_map.rb +71 -0
- data/bundler/lib/bundler/spec_set.rb +247 -0
- data/bundler/lib/bundler/stub_specification.rb +119 -0
- data/bundler/lib/bundler/templates/.document +1 -0
- data/bundler/lib/bundler/templates/Executable +27 -0
- data/bundler/lib/bundler/templates/Executable.bundler +109 -0
- data/bundler/lib/bundler/templates/Executable.standalone +14 -0
- data/bundler/lib/bundler/templates/Gemfile +5 -0
- data/bundler/lib/bundler/templates/newgem/CHANGELOG.md.tt +5 -0
- data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +84 -0
- data/bundler/lib/bundler/templates/newgem/Cargo.toml.tt +7 -0
- data/bundler/lib/bundler/templates/newgem/Gemfile.tt +26 -0
- data/bundler/lib/bundler/templates/newgem/LICENSE.txt.tt +21 -0
- data/bundler/lib/bundler/templates/newgem/README.md.tt +45 -0
- data/bundler/lib/bundler/templates/newgem/Rakefile.tt +67 -0
- data/bundler/lib/bundler/templates/newgem/bin/console.tt +11 -0
- data/bundler/lib/bundler/templates/newgem/bin/setup.tt +8 -0
- data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +25 -0
- data/bundler/lib/bundler/templates/newgem/exe/newgem.tt +3 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +15 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt +10 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +6 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt +9 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/newgem.h.tt +6 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +12 -0
- data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +37 -0
- data/bundler/lib/bundler/templates/newgem/gitignore.tt +23 -0
- data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +18 -0
- data/bundler/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +9 -0
- data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +15 -0
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +51 -0
- data/bundler/lib/bundler/templates/newgem/rspec.tt +3 -0
- data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +13 -0
- data/bundler/lib/bundler/templates/newgem/sig/newgem.rbs.tt +8 -0
- data/bundler/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +11 -0
- data/bundler/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +15 -0
- data/bundler/lib/bundler/templates/newgem/standard.yml.tt +3 -0
- data/bundler/lib/bundler/templates/newgem/test/minitest/test_helper.rb.tt +6 -0
- data/bundler/lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt +13 -0
- data/bundler/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt +15 -0
- data/bundler/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt +6 -0
- data/bundler/lib/bundler/ui/rg_proxy.rb +19 -0
- data/bundler/lib/bundler/ui/shell.rb +165 -0
- data/bundler/lib/bundler/ui/silent.rb +85 -0
- data/bundler/lib/bundler/ui.rb +9 -0
- data/bundler/lib/bundler/uri_credentials_filter.rb +43 -0
- data/bundler/lib/bundler/uri_normalizer.rb +23 -0
- data/bundler/lib/bundler/vendor/.document +1 -0
- data/bundler/lib/bundler/vendor/connection_pool/LICENSE +20 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +174 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +3 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +56 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +175 -0
- data/bundler/lib/bundler/vendor/fileutils/LICENSE.txt +22 -0
- data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +2694 -0
- data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +82 -0
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +41 -0
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +65 -0
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +79 -0
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +1073 -0
- data/bundler/lib/bundler/vendor/pub_grub/LICENSE.txt +21 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb +20 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +189 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb +182 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb +150 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb +43 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb +121 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb +45 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb +19 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +60 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb +105 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb +3 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb +129 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +411 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +248 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb +178 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +31 -0
- data/bundler/lib/bundler/vendor/thor/LICENSE.md +20 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb +105 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +61 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/directory.rb +108 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/empty_directory.rb +143 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +373 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +130 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions.rb +340 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +825 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/command.rb +151 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +107 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/error.rb +106 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/group.rb +281 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/invocation.rb +178 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/line_editor/basic.rb +37 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/line_editor/readline.rb +88 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/line_editor.rb +17 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/nested_context.rb +29 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/argument.rb +89 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +195 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/option.rb +178 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +293 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser.rb +4 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/rake_compat.rb +72 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/runner.rb +335 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +388 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/color.rb +115 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/column_printer.rb +29 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/html.rb +84 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/lcs_diff.rb +49 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/table_printer.rb +134 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/terminal.rb +42 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/wrapped_printer.rb +38 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell.rb +81 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/util.rb +285 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +3 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor.rb +663 -0
- data/bundler/lib/bundler/vendor/tsort/LICENSE.txt +22 -0
- data/bundler/lib/bundler/vendor/tsort/lib/tsort.rb +455 -0
- data/bundler/lib/bundler/vendor/uri/LICENSE.txt +22 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +853 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/file.rb +100 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +267 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +1588 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +125 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/https.rb +23 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb +261 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/ldaps.rb +22 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb +293 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +539 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +183 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +6 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/ws.rb +83 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/wss.rb +23 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri.rb +104 -0
- data/bundler/lib/bundler/vendored_fileutils.rb +4 -0
- data/bundler/lib/bundler/vendored_net_http.rb +8 -0
- data/bundler/lib/bundler/vendored_persistent.rb +11 -0
- data/bundler/lib/bundler/vendored_pub_grub.rb +4 -0
- data/bundler/lib/bundler/vendored_thor.rb +8 -0
- data/bundler/lib/bundler/vendored_timeout.rb +8 -0
- data/bundler/lib/bundler/vendored_tsort.rb +4 -0
- data/bundler/lib/bundler/vendored_uri.rb +4 -0
- data/bundler/lib/bundler/version.rb +13 -0
- data/bundler/lib/bundler/vlad.rb +17 -0
- data/bundler/lib/bundler/worker.rb +117 -0
- data/bundler/lib/bundler/yaml_serializer.rb +93 -0
- data/bundler/lib/bundler.rb +665 -0
- data/{test/rubygems/bogussources.rb → exe/gem} +5 -2
- data/exe/update_rubygems +38 -0
- data/hide_lib_for_update/note.txt +0 -4
- data/lib/rubygems/available_set.rb +12 -12
- data/lib/rubygems/basic_specification.rb +75 -58
- data/lib/rubygems/bundler_version_finder.rb +77 -0
- data/lib/rubygems/ci_detector.rb +75 -0
- data/lib/rubygems/command.rb +144 -71
- data/lib/rubygems/command_manager.rb +64 -27
- data/lib/rubygems/commands/build_command.rb +88 -17
- data/lib/rubygems/commands/cert_command.rb +131 -83
- data/lib/rubygems/commands/check_command.rb +30 -27
- data/lib/rubygems/commands/cleanup_command.rb +57 -40
- data/lib/rubygems/commands/contents_command.rb +37 -39
- data/lib/rubygems/commands/dependency_command.rb +53 -65
- data/lib/rubygems/commands/environment_command.rb +32 -16
- data/lib/rubygems/commands/exec_command.rb +249 -0
- data/lib/rubygems/commands/fetch_command.rb +36 -19
- data/lib/rubygems/commands/generate_index_command.rb +40 -74
- data/lib/rubygems/commands/help_command.rb +22 -22
- data/lib/rubygems/commands/info_command.rb +38 -0
- data/lib/rubygems/commands/install_command.rb +67 -143
- data/lib/rubygems/commands/list_command.rb +10 -9
- data/lib/rubygems/commands/lock_command.rb +12 -14
- data/lib/rubygems/commands/mirror_command.rb +4 -4
- data/lib/rubygems/commands/open_command.rb +28 -26
- data/lib/rubygems/commands/outdated_command.rb +6 -6
- data/lib/rubygems/commands/owner_command.rb +51 -27
- data/lib/rubygems/commands/pristine_command.rb +99 -71
- data/lib/rubygems/commands/push_command.rb +53 -46
- data/lib/rubygems/commands/query_command.rb +21 -328
- data/lib/rubygems/commands/rdoc_command.rb +33 -33
- data/lib/rubygems/commands/search_command.rb +9 -9
- data/lib/rubygems/commands/server_command.rb +15 -76
- data/lib/rubygems/commands/setup_command.rb +370 -186
- data/lib/rubygems/commands/signin_command.rb +34 -0
- data/lib/rubygems/commands/signout_command.rb +32 -0
- data/lib/rubygems/commands/sources_command.rb +57 -41
- data/lib/rubygems/commands/specification_command.rb +38 -28
- data/lib/rubygems/commands/stale_command.rb +6 -5
- data/lib/rubygems/commands/uninstall_command.rb +96 -62
- data/lib/rubygems/commands/unpack_command.rb +44 -53
- data/lib/rubygems/commands/update_command.rb +155 -99
- data/lib/rubygems/commands/which_command.rb +14 -17
- data/lib/rubygems/commands/yank_command.rb +28 -32
- data/lib/rubygems/compatibility.rb +13 -32
- data/lib/rubygems/config_file.rb +214 -119
- data/lib/rubygems/core_ext/kernel_gem.rb +10 -16
- data/lib/rubygems/core_ext/kernel_require.rb +92 -90
- data/lib/rubygems/core_ext/kernel_warn.rb +49 -0
- data/lib/rubygems/core_ext/tcpsocket_init.rb +54 -0
- data/lib/rubygems/defaults.rb +184 -54
- data/lib/rubygems/dependency.rb +75 -62
- data/lib/rubygems/dependency_installer.rb +74 -230
- data/lib/rubygems/dependency_list.rb +32 -33
- data/lib/rubygems/deprecate.rb +113 -17
- data/lib/rubygems/doctor.rb +31 -31
- data/lib/rubygems/errors.rb +51 -13
- data/lib/rubygems/exceptions.rb +65 -35
- data/lib/rubygems/ext/build_error.rb +3 -1
- data/lib/rubygems/ext/builder.rb +103 -77
- data/lib/rubygems/ext/cargo_builder/link_flag_converter.rb +27 -0
- data/lib/rubygems/ext/cargo_builder.rb +360 -0
- data/lib/rubygems/ext/cmake_builder.rb +6 -7
- data/lib/rubygems/ext/configure_builder.rb +6 -9
- data/lib/rubygems/ext/ext_conf_builder.rb +40 -61
- data/lib/rubygems/ext/rake_builder.rb +18 -21
- data/lib/rubygems/ext.rb +8 -7
- data/lib/rubygems/gem_runner.rb +19 -21
- data/lib/rubygems/gemcutter_utilities/webauthn_listener/response.rb +163 -0
- data/lib/rubygems/gemcutter_utilities/webauthn_listener.rb +105 -0
- data/lib/rubygems/gemcutter_utilities/webauthn_poller.rb +78 -0
- data/lib/rubygems/gemcutter_utilities.rb +246 -43
- data/lib/rubygems/install_default_message.rb +3 -3
- data/lib/rubygems/install_message.rb +3 -3
- data/lib/rubygems/install_update_options.rb +104 -98
- data/lib/rubygems/installer.rb +407 -225
- data/lib/rubygems/installer_uninstaller_utils.rb +27 -0
- data/lib/rubygems/local_remote_options.rb +29 -32
- data/lib/rubygems/name_tuple.rb +18 -23
- data/lib/rubygems/net/http.rb +3 -0
- data/lib/rubygems/net-http/LICENSE.txt +22 -0
- data/lib/rubygems/net-http/lib/net/http/backward.rb +40 -0
- data/lib/rubygems/net-http/lib/net/http/exceptions.rb +34 -0
- data/lib/rubygems/net-http/lib/net/http/generic_request.rb +414 -0
- data/lib/rubygems/net-http/lib/net/http/header.rb +981 -0
- data/lib/rubygems/net-http/lib/net/http/proxy_delta.rb +17 -0
- data/lib/rubygems/net-http/lib/net/http/request.rb +88 -0
- data/lib/rubygems/net-http/lib/net/http/requests.rb +425 -0
- data/lib/rubygems/net-http/lib/net/http/response.rb +738 -0
- data/lib/rubygems/net-http/lib/net/http/responses.rb +1174 -0
- data/lib/rubygems/net-http/lib/net/http/status.rb +84 -0
- data/lib/rubygems/net-http/lib/net/http.rb +2496 -0
- data/lib/rubygems/net-http/lib/net/https.rb +23 -0
- data/lib/rubygems/net-protocol/LICENSE.txt +22 -0
- data/lib/rubygems/net-protocol/lib/net/protocol.rb +544 -0
- data/lib/rubygems/openssl.rb +7 -0
- data/lib/rubygems/optparse/.document +1 -0
- data/lib/rubygems/optparse/COPYING +56 -0
- data/lib/rubygems/optparse/lib/optionparser.rb +2 -0
- data/lib/rubygems/optparse/lib/optparse/ac.rb +54 -0
- data/lib/rubygems/optparse/lib/optparse/date.rb +18 -0
- data/lib/rubygems/optparse/lib/optparse/kwargs.rb +22 -0
- data/lib/rubygems/optparse/lib/optparse/shellwords.rb +7 -0
- data/lib/rubygems/optparse/lib/optparse/time.rb +11 -0
- data/lib/rubygems/optparse/lib/optparse/uri.rb +7 -0
- data/lib/rubygems/optparse/lib/optparse/version.rb +71 -0
- data/lib/rubygems/optparse/lib/optparse.rb +2330 -0
- data/lib/rubygems/optparse.rb +3 -0
- data/lib/rubygems/package/digest_io.rb +5 -7
- data/lib/rubygems/package/file_source.rb +6 -8
- data/lib/rubygems/package/io_source.rb +6 -4
- data/lib/rubygems/package/old.rb +19 -28
- data/lib/rubygems/package/source.rb +1 -1
- data/lib/rubygems/package/tar_header.rb +114 -93
- data/lib/rubygems/package/tar_reader/entry.rb +116 -22
- data/lib/rubygems/package/tar_reader.rb +18 -40
- data/lib/rubygems/package/tar_writer.rb +42 -56
- data/lib/rubygems/package.rb +245 -145
- data/lib/rubygems/package_task.rb +8 -14
- data/lib/rubygems/path_support.rb +21 -16
- data/lib/rubygems/platform.rb +135 -74
- data/lib/rubygems/psych_tree.rb +3 -2
- data/lib/rubygems/query_utils.rb +349 -0
- data/lib/rubygems/rdoc.rb +4 -326
- data/lib/rubygems/remote_fetcher.rb +99 -181
- data/lib/rubygems/request/connection_pools.rb +31 -24
- data/lib/rubygems/request/http_pool.rb +6 -7
- data/lib/rubygems/request/https_pool.rb +2 -3
- data/lib/rubygems/request.rb +103 -53
- data/lib/rubygems/request_set/gem_dependency_api.rb +182 -190
- data/lib/rubygems/request_set/lockfile/parser.rb +42 -52
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +34 -24
- data/lib/rubygems/request_set/lockfile.rb +32 -35
- data/lib/rubygems/request_set.rb +115 -71
- data/lib/rubygems/requirement.rb +77 -68
- data/lib/rubygems/resolv/LICENSE.txt +22 -0
- data/lib/rubygems/resolv/lib/resolv.rb +3387 -0
- data/lib/rubygems/resolver/activation_request.rb +34 -61
- data/lib/rubygems/resolver/api_set/gem_parser.rb +24 -0
- data/lib/rubygems/resolver/api_set.rb +40 -32
- data/lib/rubygems/resolver/api_specification.rb +37 -18
- data/lib/rubygems/resolver/best_set.rb +15 -17
- data/lib/rubygems/resolver/composed_set.rb +9 -11
- data/lib/rubygems/resolver/conflict.rb +19 -33
- data/lib/rubygems/resolver/current_set.rb +2 -4
- data/lib/rubygems/resolver/dependency_request.rb +8 -9
- data/lib/rubygems/resolver/git_set.rb +8 -10
- data/lib/rubygems/resolver/git_specification.rb +11 -13
- data/lib/rubygems/resolver/index_set.rb +13 -15
- data/lib/rubygems/resolver/index_specification.rb +42 -11
- data/lib/rubygems/resolver/installed_specification.rb +9 -11
- data/lib/rubygems/resolver/installer_set.rb +87 -45
- data/lib/rubygems/resolver/local_specification.rb +5 -7
- data/lib/rubygems/resolver/lock_set.rb +13 -15
- data/lib/rubygems/resolver/lock_specification.rb +13 -15
- data/lib/rubygems/resolver/molinillo/LICENSE +9 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb +57 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb +88 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/action.rb +36 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +66 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +62 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +63 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +61 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb +126 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/set_payload.rb +46 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/tag.rb +36 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb +164 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +110 -146
- data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +83 -9
- data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb +13 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb +3 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb +552 -172
- data/lib/rubygems/resolver/molinillo/lib/molinillo/resolver.rb +3 -2
- data/lib/rubygems/resolver/molinillo/lib/molinillo/state.rb +12 -6
- data/lib/rubygems/resolver/molinillo/lib/molinillo.rb +6 -5
- data/lib/rubygems/resolver/molinillo.rb +2 -1
- data/lib/rubygems/resolver/requirement_list.rb +2 -2
- data/lib/rubygems/resolver/set.rb +3 -5
- data/lib/rubygems/resolver/source_set.rb +6 -7
- data/lib/rubygems/resolver/spec_specification.rb +16 -4
- data/lib/rubygems/resolver/specification.rb +25 -10
- data/lib/rubygems/resolver/stats.rb +1 -0
- data/lib/rubygems/resolver/vendor_set.rb +6 -8
- data/lib/rubygems/resolver/vendor_specification.rb +6 -8
- data/lib/rubygems/resolver.rb +121 -72
- data/lib/rubygems/s3_uri_signer.rb +177 -0
- data/lib/rubygems/safe_marshal/elements.rb +138 -0
- data/lib/rubygems/safe_marshal/reader.rb +306 -0
- data/lib/rubygems/safe_marshal/visitors/stream_printer.rb +31 -0
- data/lib/rubygems/safe_marshal/visitors/to_ruby.rb +385 -0
- data/lib/rubygems/safe_marshal/visitors/visitor.rb +74 -0
- data/lib/rubygems/safe_marshal.rb +74 -0
- data/lib/rubygems/safe_yaml.rb +36 -0
- data/lib/rubygems/security/policies.rb +49 -51
- data/lib/rubygems/security/policy.rb +46 -53
- data/lib/rubygems/security/signer.rb +86 -29
- data/lib/rubygems/security/trust_dir.rb +22 -24
- data/lib/rubygems/security.rb +101 -82
- data/lib/rubygems/security_option.rb +43 -0
- data/lib/rubygems/shellwords.rb +3 -0
- data/lib/rubygems/source/git.rb +40 -42
- data/lib/rubygems/source/installed.rb +5 -9
- data/lib/rubygems/source/local.rb +30 -33
- data/lib/rubygems/source/lock.rb +10 -10
- data/lib/rubygems/source/specific_file.rb +7 -9
- data/lib/rubygems/source/vendor.rb +3 -7
- data/lib/rubygems/source.rb +78 -68
- data/lib/rubygems/source_list.rb +11 -15
- data/lib/rubygems/spec_fetcher.rb +71 -83
- data/lib/rubygems/specification.rb +833 -1115
- data/lib/rubygems/specification_policy.rb +538 -0
- data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA.pem +21 -0
- data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem +21 -0
- data/lib/rubygems/stub_specification.rb +55 -57
- data/lib/rubygems/text.rb +39 -27
- data/lib/rubygems/timeout/LICENSE.txt +22 -0
- data/lib/rubygems/timeout/lib/timeout.rb +199 -0
- data/lib/rubygems/timeout.rb +3 -0
- data/lib/rubygems/tsort/.document +1 -0
- data/lib/rubygems/tsort/LICENSE.txt +22 -0
- data/lib/rubygems/tsort/lib/tsort.rb +455 -0
- data/lib/rubygems/tsort.rb +3 -0
- data/lib/rubygems/uninstaller.rb +150 -87
- data/lib/rubygems/unknown_command_spell_checker.rb +21 -0
- data/lib/rubygems/update_suggestion.rb +56 -0
- data/lib/rubygems/uri.rb +126 -0
- data/lib/rubygems/uri_formatter.rb +4 -7
- data/lib/rubygems/user_interaction.rb +92 -146
- data/lib/rubygems/util/licenses.rb +712 -317
- data/lib/rubygems/util/list.rb +5 -2
- data/lib/rubygems/util.rb +58 -75
- data/lib/rubygems/validator.rb +26 -48
- data/lib/rubygems/version.rb +106 -56
- data/lib/rubygems/version_option.rb +22 -14
- data/lib/rubygems/yaml_serializer.rb +93 -0
- data/lib/rubygems.rb +427 -361
- data/rubygems-update.gemspec +38 -0
- data/setup.rb +13 -27
- metadata +500 -363
- data/.autotest +0 -71
- data/.document +0 -5
- data/.travis.yml +0 -46
- data/CONTRIBUTING.rdoc +0 -129
- data/CVE-2013-4287.txt +0 -35
- data/CVE-2013-4363.txt +0 -45
- data/CVE-2015-3900.txt +0 -40
- data/History.txt +0 -3105
- data/MAINTAINERS.md +0 -5
- data/POLICIES.rdoc +0 -61
- data/README.rdoc +0 -54
- data/Rakefile +0 -449
- data/UPGRADING.rdoc +0 -92
- data/appveyor.yml +0 -36
- data/bin/gem +0 -25
- data/bin/update_rubygems +0 -37
- data/lib/gauntlet_rubygems.rb +0 -51
- data/lib/rubygems/indexer.rb +0 -434
- data/lib/rubygems/installer_test_case.rb +0 -194
- data/lib/rubygems/mock_gem_ui.rb +0 -89
- data/lib/rubygems/package/tar_test_case.rb +0 -147
- data/lib/rubygems/psych_additions.rb +0 -10
- data/lib/rubygems/server.rb +0 -869
- data/lib/rubygems/source_local.rb +0 -6
- data/lib/rubygems/source_specific_file.rb +0 -5
- data/lib/rubygems/ssl_certs/AddTrustExternalCARoot-2048.pem +0 -25
- data/lib/rubygems/ssl_certs/AddTrustExternalCARoot.pem +0 -32
- data/lib/rubygems/ssl_certs/Class3PublicPrimaryCertificationAuthority.pem +0 -14
- data/lib/rubygems/ssl_certs/DigiCertHighAssuranceEVRootCA.pem +0 -23
- data/lib/rubygems/ssl_certs/EntrustnetSecureServerCertificationAuthority.pem +0 -28
- data/lib/rubygems/ssl_certs/GeoTrustGlobalCA.pem +0 -20
- data/lib/rubygems/syck_hack.rb +0 -77
- data/lib/rubygems/test_case.rb +0 -1496
- data/lib/rubygems/test_utilities.rb +0 -384
- data/lib/ubygems.rb +0 -11
- data/test/rubygems/alternate_cert.pem +0 -18
- data/test/rubygems/alternate_cert_32.pem +0 -18
- data/test/rubygems/alternate_key.pem +0 -27
- data/test/rubygems/bad_rake.rb +0 -2
- data/test/rubygems/ca_cert.pem +0 -68
- data/test/rubygems/child_cert.pem +0 -18
- data/test/rubygems/child_cert_32.pem +0 -18
- data/test/rubygems/child_key.pem +0 -27
- data/test/rubygems/client.pem +0 -49
- data/test/rubygems/data/gem-private_key.pem +0 -27
- data/test/rubygems/data/gem-public_cert.pem +0 -20
- data/test/rubygems/data/null-type.gemspec.rz +0 -0
- data/test/rubygems/encrypted_private_key.pem +0 -30
- data/test/rubygems/expired_cert.pem +0 -18
- data/test/rubygems/fake_certlib/openssl.rb +0 -8
- data/test/rubygems/fix_openssl_warnings.rb +0 -13
- data/test/rubygems/foo/discover.rb +0 -1
- data/test/rubygems/future_cert.pem +0 -18
- data/test/rubygems/future_cert_32.pem +0 -18
- data/test/rubygems/good_rake.rb +0 -2
- data/test/rubygems/grandchild_cert.pem +0 -18
- data/test/rubygems/grandchild_cert_32.pem +0 -18
- data/test/rubygems/grandchild_key.pem +0 -27
- data/test/rubygems/invalid_client.pem +0 -49
- data/test/rubygems/invalid_issuer_cert.pem +0 -18
- data/test/rubygems/invalid_issuer_cert_32.pem +0 -18
- data/test/rubygems/invalid_key.pem +0 -27
- data/test/rubygems/invalid_signer_cert.pem +0 -18
- data/test/rubygems/invalid_signer_cert_32.pem +0 -18
- data/test/rubygems/invalidchild_cert.pem +0 -18
- data/test/rubygems/invalidchild_cert_32.pem +0 -18
- data/test/rubygems/invalidchild_key.pem +0 -27
- data/test/rubygems/plugin/exception/rubygems_plugin.rb +0 -3
- data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -4
- data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +0 -3
- data/test/rubygems/private_key.pem +0 -27
- data/test/rubygems/public_cert.pem +0 -18
- data/test/rubygems/public_cert_32.pem +0 -18
- data/test/rubygems/public_key.pem +0 -9
- data/test/rubygems/rubygems/commands/crash_command.rb +0 -6
- data/test/rubygems/rubygems_plugin.rb +0 -22
- data/test/rubygems/sff/discover.rb +0 -1
- data/test/rubygems/simple_gem.rb +0 -67
- data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -9
- data/test/rubygems/specifications/foo-0.0.1-x86-mswin32.gemspec +0 -0
- data/test/rubygems/ssl_cert.pem +0 -19
- data/test/rubygems/ssl_key.pem +0 -15
- data/test/rubygems/test_bundled_ca.rb +0 -59
- data/test/rubygems/test_config.rb +0 -24
- data/test/rubygems/test_deprecate.rb +0 -77
- data/test/rubygems/test_gem.rb +0 -1718
- data/test/rubygems/test_gem_available_set.rb +0 -130
- data/test/rubygems/test_gem_command.rb +0 -248
- data/test/rubygems/test_gem_command_manager.rb +0 -264
- data/test/rubygems/test_gem_commands_build_command.rb +0 -121
- data/test/rubygems/test_gem_commands_cert_command.rb +0 -671
- data/test/rubygems/test_gem_commands_check_command.rb +0 -69
- data/test/rubygems/test_gem_commands_cleanup_command.rb +0 -197
- data/test/rubygems/test_gem_commands_contents_command.rb +0 -240
- data/test/rubygems/test_gem_commands_dependency_command.rb +0 -230
- data/test/rubygems/test_gem_commands_environment_command.rb +0 -154
- data/test/rubygems/test_gem_commands_fetch_command.rb +0 -127
- data/test/rubygems/test_gem_commands_generate_index_command.rb +0 -51
- data/test/rubygems/test_gem_commands_help_command.rb +0 -75
- data/test/rubygems/test_gem_commands_install_command.rb +0 -1007
- data/test/rubygems/test_gem_commands_list_command.rb +0 -34
- data/test/rubygems/test_gem_commands_lock_command.rb +0 -69
- data/test/rubygems/test_gem_commands_mirror.rb +0 -20
- data/test/rubygems/test_gem_commands_open_command.rb +0 -70
- data/test/rubygems/test_gem_commands_outdated_command.rb +0 -33
- data/test/rubygems/test_gem_commands_owner_command.rb +0 -205
- data/test/rubygems/test_gem_commands_pristine_command.rb +0 -491
- data/test/rubygems/test_gem_commands_push_command.rb +0 -330
- data/test/rubygems/test_gem_commands_query_command.rb +0 -657
- data/test/rubygems/test_gem_commands_search_command.rb +0 -18
- data/test/rubygems/test_gem_commands_server_command.rb +0 -60
- data/test/rubygems/test_gem_commands_setup_command.rb +0 -136
- data/test/rubygems/test_gem_commands_sources_command.rb +0 -249
- data/test/rubygems/test_gem_commands_specification_command.rb +0 -251
- data/test/rubygems/test_gem_commands_stale_command.rb +0 -43
- data/test/rubygems/test_gem_commands_uninstall_command.rb +0 -283
- data/test/rubygems/test_gem_commands_unpack_command.rb +0 -209
- data/test/rubygems/test_gem_commands_update_command.rb +0 -514
- data/test/rubygems/test_gem_commands_which_command.rb +0 -87
- data/test/rubygems/test_gem_commands_yank_command.rb +0 -100
- data/test/rubygems/test_gem_config_file.rb +0 -491
- data/test/rubygems/test_gem_dependency.rb +0 -362
- data/test/rubygems/test_gem_dependency_installer.rb +0 -1235
- data/test/rubygems/test_gem_dependency_list.rb +0 -260
- data/test/rubygems/test_gem_dependency_resolution_error.rb +0 -29
- data/test/rubygems/test_gem_doctor.rb +0 -169
- data/test/rubygems/test_gem_ext_builder.rb +0 -341
- data/test/rubygems/test_gem_ext_cmake_builder.rb +0 -87
- data/test/rubygems/test_gem_ext_configure_builder.rb +0 -87
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +0 -211
- data/test/rubygems/test_gem_ext_rake_builder.rb +0 -65
- data/test/rubygems/test_gem_gem_runner.rb +0 -69
- data/test/rubygems/test_gem_gemcutter_utilities.rb +0 -235
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -62
- data/test/rubygems/test_gem_indexer.rb +0 -367
- data/test/rubygems/test_gem_install_update_options.rb +0 -197
- data/test/rubygems/test_gem_installer.rb +0 -1552
- data/test/rubygems/test_gem_local_remote_options.rb +0 -134
- data/test/rubygems/test_gem_name_tuple.rb +0 -45
- data/test/rubygems/test_gem_package.rb +0 -876
- data/test/rubygems/test_gem_package_old.rb +0 -90
- data/test/rubygems/test_gem_package_tar_header.rb +0 -147
- data/test/rubygems/test_gem_package_tar_reader.rb +0 -90
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +0 -142
- data/test/rubygems/test_gem_package_tar_writer.rb +0 -264
- data/test/rubygems/test_gem_package_task.rb +0 -84
- data/test/rubygems/test_gem_path_support.rb +0 -121
- data/test/rubygems/test_gem_platform.rb +0 -308
- data/test/rubygems/test_gem_rdoc.rb +0 -270
- data/test/rubygems/test_gem_remote_fetcher.rb +0 -1051
- data/test/rubygems/test_gem_request.rb +0 -363
- data/test/rubygems/test_gem_request_connection_pools.rb +0 -130
- data/test/rubygems/test_gem_request_set.rb +0 -595
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +0 -831
- data/test/rubygems/test_gem_request_set_lockfile.rb +0 -470
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +0 -549
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +0 -306
- data/test/rubygems/test_gem_requirement.rb +0 -387
- data/test/rubygems/test_gem_resolver.rb +0 -715
- data/test/rubygems/test_gem_resolver_activation_request.rb +0 -74
- data/test/rubygems/test_gem_resolver_api_set.rb +0 -209
- data/test/rubygems/test_gem_resolver_api_specification.rb +0 -145
- data/test/rubygems/test_gem_resolver_best_set.rb +0 -138
- data/test/rubygems/test_gem_resolver_composed_set.rb +0 -46
- data/test/rubygems/test_gem_resolver_conflict.rb +0 -88
- data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -85
- data/test/rubygems/test_gem_resolver_git_set.rb +0 -190
- data/test/rubygems/test_gem_resolver_git_specification.rb +0 -114
- data/test/rubygems/test_gem_resolver_index_set.rb +0 -90
- data/test/rubygems/test_gem_resolver_index_specification.rb +0 -90
- data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -50
- data/test/rubygems/test_gem_resolver_installer_set.rb +0 -258
- data/test/rubygems/test_gem_resolver_local_specification.rb +0 -46
- data/test/rubygems/test_gem_resolver_lock_set.rb +0 -64
- data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -100
- data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -21
- data/test/rubygems/test_gem_resolver_specification.rb +0 -65
- data/test/rubygems/test_gem_resolver_vendor_set.rb +0 -84
- data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -84
- data/test/rubygems/test_gem_security.rb +0 -307
- data/test/rubygems/test_gem_security_policy.rb +0 -541
- data/test/rubygems/test_gem_security_signer.rb +0 -209
- data/test/rubygems/test_gem_security_trust_dir.rb +0 -101
- data/test/rubygems/test_gem_server.rb +0 -409
- data/test/rubygems/test_gem_silent_ui.rb +0 -117
- data/test/rubygems/test_gem_source.rb +0 -242
- data/test/rubygems/test_gem_source_fetch_problem.rb +0 -20
- data/test/rubygems/test_gem_source_git.rb +0 -309
- data/test/rubygems/test_gem_source_installed.rb +0 -37
- data/test/rubygems/test_gem_source_list.rb +0 -118
- data/test/rubygems/test_gem_source_local.rb +0 -107
- data/test/rubygems/test_gem_source_lock.rb +0 -115
- data/test/rubygems/test_gem_source_specific_file.rb +0 -76
- data/test/rubygems/test_gem_source_vendor.rb +0 -32
- data/test/rubygems/test_gem_spec_fetcher.rb +0 -311
- data/test/rubygems/test_gem_specification.rb +0 -3519
- data/test/rubygems/test_gem_stream_ui.rb +0 -239
- data/test/rubygems/test_gem_stub_specification.rb +0 -217
- data/test/rubygems/test_gem_text.rb +0 -77
- data/test/rubygems/test_gem_uninstaller.rb +0 -485
- data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -33
- data/test/rubygems/test_gem_uri_formatter.rb +0 -29
- data/test/rubygems/test_gem_util.rb +0 -40
- data/test/rubygems/test_gem_validator.rb +0 -46
- data/test/rubygems/test_gem_version.rb +0 -222
- data/test/rubygems/test_gem_version_option.rb +0 -152
- data/test/rubygems/test_kernel.rb +0 -86
- data/test/rubygems/test_require.rb +0 -322
- data/test/rubygems/wrong_key_cert.pem +0 -18
- data/test/rubygems/wrong_key_cert_32.pem +0 -18
- data/util/CL2notes +0 -56
- data/util/create_certs.rb +0 -157
- data/util/create_encrypted_key.rb +0 -17
- data/util/generate_spdx_license_list.rb +0 -51
- data/util/update_bundled_ca_certificates.rb +0 -118
data/lib/rubygems/deprecate.rb
CHANGED
@@ -1,33 +1,80 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
##
|
3
|
-
# Provides
|
4
|
-
#
|
4
|
+
# Provides 3 methods for declaring when something is going away.
|
5
|
+
#
|
6
|
+
# +deprecate(name, repl, year, month)+:
|
7
|
+
# Indicate something may be removed on/after a certain date.
|
8
|
+
#
|
9
|
+
# +rubygems_deprecate(name, replacement=:none)+:
|
10
|
+
# Indicate something will be removed in the next major RubyGems version,
|
11
|
+
# and (optionally) a replacement for it.
|
12
|
+
#
|
13
|
+
# +rubygems_deprecate_command+:
|
14
|
+
# Indicate a RubyGems command (in +lib/rubygems/commands/*.rb+) will be
|
15
|
+
# removed in the next RubyGems version.
|
16
|
+
#
|
17
|
+
# Also provides +skip_during+ for temporarily turning off deprecation warnings.
|
18
|
+
# This is intended to be used in the test suite, so deprecation warnings
|
19
|
+
# don't cause test failures if you need to make sure stderr is otherwise empty.
|
20
|
+
#
|
21
|
+
#
|
22
|
+
# Example usage of +deprecate+ and +rubygems_deprecate+:
|
5
23
|
#
|
6
24
|
# class Legacy
|
7
|
-
# def self.
|
25
|
+
# def self.some_class_method
|
26
|
+
# # ...
|
27
|
+
# end
|
28
|
+
#
|
29
|
+
# def some_instance_method
|
8
30
|
# # ...
|
9
31
|
# end
|
10
32
|
#
|
11
|
-
# def
|
33
|
+
# def some_old_method
|
12
34
|
# # ...
|
13
35
|
# end
|
14
36
|
#
|
15
37
|
# extend Gem::Deprecate
|
16
|
-
# deprecate :
|
38
|
+
# deprecate :some_instance_method, "X.z", 2011, 4
|
39
|
+
# rubygems_deprecate :some_old_method, "Modern#some_new_method"
|
17
40
|
#
|
18
41
|
# class << self
|
19
42
|
# extend Gem::Deprecate
|
20
|
-
# deprecate :
|
43
|
+
# deprecate :some_class_method, :none, 2011, 4
|
44
|
+
# end
|
45
|
+
# end
|
46
|
+
#
|
47
|
+
#
|
48
|
+
# Example usage of +rubygems_deprecate_command+:
|
49
|
+
#
|
50
|
+
# class Gem::Commands::QueryCommand < Gem::Command
|
51
|
+
# extend Gem::Deprecate
|
52
|
+
# rubygems_deprecate_command
|
53
|
+
#
|
54
|
+
# # ...
|
55
|
+
# end
|
56
|
+
#
|
57
|
+
#
|
58
|
+
# Example usage of +skip_during+:
|
59
|
+
#
|
60
|
+
# class TestSomething < Gem::Testcase
|
61
|
+
# def test_some_thing_with_deprecations
|
62
|
+
# Gem::Deprecate.skip_during do
|
63
|
+
# actual_stdout, actual_stderr = capture_output do
|
64
|
+
# Gem.something_deprecated
|
65
|
+
# end
|
66
|
+
# assert_empty actual_stdout
|
67
|
+
# assert_equal(expected, actual_stderr)
|
68
|
+
# end
|
21
69
|
# end
|
22
70
|
# end
|
23
71
|
|
24
72
|
module Gem::Deprecate
|
25
|
-
|
26
73
|
def self.skip # :nodoc:
|
27
74
|
@skip ||= false
|
28
75
|
end
|
29
76
|
|
30
|
-
def self.skip=
|
77
|
+
def self.skip=(v) # :nodoc:
|
31
78
|
@skip = v
|
32
79
|
end
|
33
80
|
|
@@ -35,37 +82,86 @@ module Gem::Deprecate
|
|
35
82
|
# Temporarily turn off warnings. Intended for tests only.
|
36
83
|
|
37
84
|
def skip_during
|
38
|
-
|
85
|
+
original = Gem::Deprecate.skip
|
86
|
+
Gem::Deprecate.skip = true
|
39
87
|
yield
|
40
88
|
ensure
|
41
89
|
Gem::Deprecate.skip = original
|
42
90
|
end
|
43
91
|
|
92
|
+
def self.next_rubygems_major_version # :nodoc:
|
93
|
+
Gem::Version.new(Gem.rubygems_version.segments.first).bump
|
94
|
+
end
|
95
|
+
|
44
96
|
##
|
45
97
|
# Simple deprecation method that deprecates +name+ by wrapping it up
|
46
98
|
# in a dummy method. It warns on each call to the dummy method
|
47
99
|
# telling the user of +repl+ (unless +repl+ is :none) and the
|
48
100
|
# year/month that it is planned to go away.
|
49
101
|
|
50
|
-
def deprecate
|
51
|
-
class_eval
|
102
|
+
def deprecate(name, repl, year, month)
|
103
|
+
class_eval do
|
52
104
|
old = "_deprecated_#{name}"
|
53
105
|
alias_method old, name
|
54
106
|
define_method name do |*args, &block|
|
55
|
-
klass =
|
107
|
+
klass = is_a? Module
|
56
108
|
target = klass ? "#{self}." : "#{self.class}#"
|
57
|
-
msg = [
|
109
|
+
msg = [
|
110
|
+
"NOTE: #{target}#{name} is deprecated",
|
58
111
|
repl == :none ? " with no replacement" : "; use #{repl} instead",
|
59
|
-
". It will be removed on or after %4d-%02d
|
112
|
+
format(". It will be removed on or after %4d-%02d.", year, month),
|
60
113
|
"\n#{target}#{name} called from #{Gem.location_of_caller.join(":")}",
|
61
114
|
]
|
62
115
|
warn "#{msg.join}." unless Gem::Deprecate.skip
|
63
116
|
send old, *args, &block
|
64
117
|
end
|
65
|
-
|
118
|
+
ruby2_keywords name if respond_to?(:ruby2_keywords, true)
|
119
|
+
end
|
66
120
|
end
|
67
121
|
|
68
|
-
|
122
|
+
##
|
123
|
+
# Simple deprecation method that deprecates +name+ by wrapping it up
|
124
|
+
# in a dummy method. It warns on each call to the dummy method
|
125
|
+
# telling the user of +repl+ (unless +repl+ is :none) and the
|
126
|
+
# Rubygems version that it is planned to go away.
|
69
127
|
|
70
|
-
|
128
|
+
def rubygems_deprecate(name, replacement=:none)
|
129
|
+
class_eval do
|
130
|
+
old = "_deprecated_#{name}"
|
131
|
+
alias_method old, name
|
132
|
+
define_method name do |*args, &block|
|
133
|
+
klass = is_a? Module
|
134
|
+
target = klass ? "#{self}." : "#{self.class}#"
|
135
|
+
msg = [
|
136
|
+
"NOTE: #{target}#{name} is deprecated",
|
137
|
+
replacement == :none ? " with no replacement" : "; use #{replacement} instead",
|
138
|
+
". It will be removed in Rubygems #{Gem::Deprecate.next_rubygems_major_version}",
|
139
|
+
"\n#{target}#{name} called from #{Gem.location_of_caller.join(":")}",
|
140
|
+
]
|
141
|
+
warn "#{msg.join}." unless Gem::Deprecate.skip
|
142
|
+
send old, *args, &block
|
143
|
+
end
|
144
|
+
ruby2_keywords name if respond_to?(:ruby2_keywords, true)
|
145
|
+
end
|
146
|
+
end
|
71
147
|
|
148
|
+
# Deprecation method to deprecate Rubygems commands
|
149
|
+
def rubygems_deprecate_command(version = Gem::Deprecate.next_rubygems_major_version)
|
150
|
+
class_eval do
|
151
|
+
define_method "deprecated?" do
|
152
|
+
true
|
153
|
+
end
|
154
|
+
|
155
|
+
define_method "deprecation_warning" do
|
156
|
+
msg = [
|
157
|
+
"#{command} command is deprecated",
|
158
|
+
". It will be removed in Rubygems #{version}.\n",
|
159
|
+
]
|
160
|
+
|
161
|
+
alert_warning msg.join.to_s unless Gem::Deprecate.skip
|
162
|
+
end
|
163
|
+
end
|
164
|
+
end
|
165
|
+
|
166
|
+
module_function :rubygems_deprecate, :rubygems_deprecate_command, :skip_during
|
167
|
+
end
|
data/lib/rubygems/doctor.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
|
3
|
-
|
2
|
+
|
3
|
+
require_relative "../rubygems"
|
4
|
+
require_relative "user_interaction"
|
4
5
|
|
5
6
|
##
|
6
7
|
# Cleans up after a partially-failed uninstall or for an invalid
|
@@ -12,7 +13,6 @@ require 'rubygems/user_interaction'
|
|
12
13
|
# removing the bogus specification.
|
13
14
|
|
14
15
|
class Gem::Doctor
|
15
|
-
|
16
16
|
include Gem::UserInteraction
|
17
17
|
|
18
18
|
##
|
@@ -20,19 +20,20 @@ class Gem::Doctor
|
|
20
20
|
# subdirectory.
|
21
21
|
|
22
22
|
REPOSITORY_EXTENSION_MAP = [ # :nodoc:
|
23
|
-
[
|
24
|
-
[
|
25
|
-
[
|
26
|
-
[
|
27
|
-
[
|
28
|
-
[
|
29
|
-
|
23
|
+
["specifications", ".gemspec"],
|
24
|
+
["build_info", ".info"],
|
25
|
+
["cache", ".gem"],
|
26
|
+
["doc", ""],
|
27
|
+
["extensions", ""],
|
28
|
+
["gems", ""],
|
29
|
+
["plugins", ""],
|
30
|
+
].freeze
|
30
31
|
|
31
32
|
missing =
|
32
33
|
Gem::REPOSITORY_SUBDIRECTORIES.sort -
|
33
|
-
|
34
|
+
REPOSITORY_EXTENSION_MAP.map {|(k,_)| k }.sort
|
34
35
|
|
35
|
-
raise "Update REPOSITORY_EXTENSION_MAP, missing: #{missing.join
|
36
|
+
raise "Update REPOSITORY_EXTENSION_MAP, missing: #{missing.join ", "}" unless
|
36
37
|
missing.empty?
|
37
38
|
|
38
39
|
##
|
@@ -41,7 +42,7 @@ class Gem::Doctor
|
|
41
42
|
#
|
42
43
|
# If +dry_run+ is true no files or directories will be removed.
|
43
44
|
|
44
|
-
def initialize
|
45
|
+
def initialize(gem_repository, dry_run = false)
|
45
46
|
@gem_repository = gem_repository
|
46
47
|
@dry_run = dry_run
|
47
48
|
|
@@ -52,14 +53,14 @@ class Gem::Doctor
|
|
52
53
|
# Specs installed in this gem repository
|
53
54
|
|
54
55
|
def installed_specs # :nodoc:
|
55
|
-
@installed_specs ||= Gem::Specification.map
|
56
|
+
@installed_specs ||= Gem::Specification.map(&:full_name)
|
56
57
|
end
|
57
58
|
|
58
59
|
##
|
59
60
|
# Are we doctoring a gem repository?
|
60
61
|
|
61
62
|
def gem_repository?
|
62
|
-
|
63
|
+
!installed_specs.empty?
|
63
64
|
end
|
64
65
|
|
65
66
|
##
|
@@ -73,9 +74,9 @@ class Gem::Doctor
|
|
73
74
|
|
74
75
|
Gem.use_paths @gem_repository.to_s
|
75
76
|
|
76
|
-
unless gem_repository?
|
77
|
-
say
|
78
|
-
|
77
|
+
unless gem_repository?
|
78
|
+
say "This directory does not appear to be a RubyGems repository, " \
|
79
|
+
"skipping"
|
79
80
|
say
|
80
81
|
return
|
81
82
|
end
|
@@ -99,34 +100,33 @@ class Gem::Doctor
|
|
99
100
|
##
|
100
101
|
# Removes files in +sub_directory+ with +extension+
|
101
102
|
|
102
|
-
def doctor_child
|
103
|
+
def doctor_child(sub_directory, extension) # :nodoc:
|
103
104
|
directory = File.join(@gem_repository, sub_directory)
|
104
105
|
|
105
106
|
Dir.entries(directory).sort.each do |ent|
|
106
|
-
next if
|
107
|
+
next if [".", ".."].include?(ent)
|
107
108
|
|
108
109
|
child = File.join(directory, ent)
|
109
110
|
next unless File.exist?(child)
|
110
111
|
|
111
112
|
basename = File.basename(child, extension)
|
112
113
|
next if installed_specs.include? basename
|
113
|
-
next if /^rubygems-\d
|
114
|
-
next if
|
114
|
+
next if /^rubygems-\d/.match?(basename)
|
115
|
+
next if sub_directory == "specifications" && basename == "default"
|
116
|
+
next if sub_directory == "plugins" && Gem.plugin_suffix_regexp =~ (basename)
|
115
117
|
|
116
|
-
type = File.directory?(child) ?
|
118
|
+
type = File.directory?(child) ? "directory" : "file"
|
117
119
|
|
118
|
-
action = if @dry_run
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
120
|
+
action = if @dry_run
|
121
|
+
"Extra"
|
122
|
+
else
|
123
|
+
FileUtils.rm_r(child)
|
124
|
+
"Removed"
|
125
|
+
end
|
124
126
|
|
125
127
|
say "#{action} #{type} #{sub_directory}/#{File.basename(child)}"
|
126
128
|
end
|
127
129
|
rescue Errno::ENOENT
|
128
130
|
# ignore
|
129
131
|
end
|
130
|
-
|
131
132
|
end
|
132
|
-
|
data/lib/rubygems/errors.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
#--
|
3
4
|
# This file contains all the various exceptions and other errors that are used
|
4
5
|
# inside of RubyGems.
|
@@ -20,10 +21,53 @@ module Gem
|
|
20
21
|
attr_accessor :requirement
|
21
22
|
end
|
22
23
|
|
24
|
+
##
|
25
|
+
# Raised when trying to activate a gem, and that gem does not exist on the
|
26
|
+
# system. Instead of rescuing from this class, make sure to rescue from the
|
27
|
+
# superclass Gem::LoadError to catch all types of load errors.
|
28
|
+
class MissingSpecError < Gem::LoadError
|
29
|
+
def initialize(name, requirement, extra_message=nil)
|
30
|
+
@name = name
|
31
|
+
@requirement = requirement
|
32
|
+
@extra_message = extra_message
|
33
|
+
end
|
34
|
+
|
35
|
+
def message # :nodoc:
|
36
|
+
build_message +
|
37
|
+
"Checked in 'GEM_PATH=#{Gem.path.join(File::PATH_SEPARATOR)}' #{@extra_message}, execute `gem env` for more information"
|
38
|
+
end
|
39
|
+
|
40
|
+
private
|
41
|
+
|
42
|
+
def build_message
|
43
|
+
total = Gem::Specification.stubs.size
|
44
|
+
"Could not find '#{name}' (#{requirement}) among #{total} total gem(s)\n"
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
##
|
49
|
+
# Raised when trying to activate a gem, and the gem exists on the system, but
|
50
|
+
# not the requested version. Instead of rescuing from this class, make sure to
|
51
|
+
# rescue from the superclass Gem::LoadError to catch all types of load errors.
|
52
|
+
class MissingSpecVersionError < MissingSpecError
|
53
|
+
attr_reader :specs
|
54
|
+
|
55
|
+
def initialize(name, requirement, specs)
|
56
|
+
super(name, requirement)
|
57
|
+
@specs = specs
|
58
|
+
end
|
59
|
+
|
60
|
+
private
|
61
|
+
|
62
|
+
def build_message
|
63
|
+
names = specs.map(&:full_name)
|
64
|
+
"Could not find '#{name}' (#{requirement}) - did find: [#{names.join ","}]\n"
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
23
68
|
# Raised when there are conflicting gem specs loaded
|
24
69
|
|
25
70
|
class ConflictError < LoadError
|
26
|
-
|
27
71
|
##
|
28
72
|
# A Hash mapping conflicting specifications to the dependencies that
|
29
73
|
# caused the conflict
|
@@ -35,14 +79,14 @@ module Gem
|
|
35
79
|
|
36
80
|
attr_reader :target
|
37
81
|
|
38
|
-
def initialize
|
82
|
+
def initialize(target, conflicts)
|
39
83
|
@target = target
|
40
84
|
@conflicts = conflicts
|
41
85
|
@name = target.name
|
42
86
|
|
43
|
-
reason = conflicts.map
|
87
|
+
reason = conflicts.map do |act, dependencies|
|
44
88
|
"#{act.full_name} conflicts with #{dependencies.join(", ")}"
|
45
|
-
|
89
|
+
end.join ", "
|
46
90
|
|
47
91
|
# TODO: improve message by saying who activated `con`
|
48
92
|
|
@@ -59,7 +103,6 @@ module Gem
|
|
59
103
|
# in figuring out why a gem couldn't be installed.
|
60
104
|
#
|
61
105
|
class PlatformMismatch < ErrorReason
|
62
|
-
|
63
106
|
##
|
64
107
|
# the name of the gem
|
65
108
|
attr_reader :name
|
@@ -91,11 +134,7 @@ module Gem
|
|
91
134
|
##
|
92
135
|
# A wordy description of the error.
|
93
136
|
def wordy
|
94
|
-
"Found %s (%s), but was for platform%s %s"
|
95
|
-
[@name,
|
96
|
-
@version,
|
97
|
-
@platforms.size == 1 ? '' : 's',
|
98
|
-
@platforms.join(' ,')]
|
137
|
+
format("Found %s (%s), but was for platform%s %s", @name, @version, @platforms.size == 1 ? "" : "s", @platforms.join(" ,"))
|
99
138
|
end
|
100
139
|
end
|
101
140
|
|
@@ -104,7 +143,6 @@ module Gem
|
|
104
143
|
# data from a source
|
105
144
|
|
106
145
|
class SourceFetchProblem < ErrorReason
|
107
|
-
|
108
146
|
##
|
109
147
|
# Creates a new SourceFetchProblem for the given +source+ and +error+.
|
110
148
|
|
@@ -127,12 +165,12 @@ module Gem
|
|
127
165
|
# An English description of the error.
|
128
166
|
|
129
167
|
def wordy
|
130
|
-
"Unable to download data from #{@source.uri} - #{@error.message}"
|
168
|
+
"Unable to download data from #{Gem::Uri.redact(@source.uri)} - #{@error.message}"
|
131
169
|
end
|
132
170
|
|
133
171
|
##
|
134
172
|
# The "exception" alias allows you to call raise on a SourceFetchProblem.
|
135
173
|
|
136
|
-
|
174
|
+
alias_method :exception, :error
|
137
175
|
end
|
138
176
|
end
|
data/lib/rubygems/exceptions.rb
CHANGED
@@ -1,23 +1,42 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
# likely to be raised
|
2
|
+
|
3
|
+
require_relative "deprecate"
|
4
|
+
require_relative "unknown_command_spell_checker"
|
6
5
|
|
7
6
|
##
|
8
7
|
# Base exception class for RubyGems. All exception raised by RubyGems are a
|
9
8
|
# subclass of this one.
|
10
|
-
class Gem::Exception < RuntimeError
|
9
|
+
class Gem::Exception < RuntimeError; end
|
11
10
|
|
12
|
-
|
13
|
-
#--
|
14
|
-
# TODO: remove in RubyGems 3, nobody sets this
|
11
|
+
class Gem::CommandLineError < Gem::Exception; end
|
15
12
|
|
16
|
-
|
13
|
+
class Gem::UnknownCommandError < Gem::Exception
|
14
|
+
attr_reader :unknown_command
|
17
15
|
|
18
|
-
|
16
|
+
def initialize(unknown_command)
|
17
|
+
self.class.attach_correctable
|
19
18
|
|
20
|
-
|
19
|
+
@unknown_command = unknown_command
|
20
|
+
super("Unknown command #{unknown_command}")
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.attach_correctable
|
24
|
+
return if defined?(@attached)
|
25
|
+
|
26
|
+
if defined?(DidYouMean::SPELL_CHECKERS) && defined?(DidYouMean::Correctable)
|
27
|
+
if DidYouMean.respond_to?(:correct_error)
|
28
|
+
DidYouMean.correct_error(Gem::UnknownCommandError, Gem::UnknownCommandSpellChecker)
|
29
|
+
else
|
30
|
+
DidYouMean::SPELL_CHECKERS["Gem::UnknownCommandError"] =
|
31
|
+
Gem::UnknownCommandSpellChecker
|
32
|
+
|
33
|
+
prepend DidYouMean::Correctable
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
@attached = true
|
38
|
+
end
|
39
|
+
end
|
21
40
|
|
22
41
|
class Gem::DependencyError < Gem::Exception; end
|
23
42
|
|
@@ -29,10 +48,9 @@ class Gem::DependencyRemovalException < Gem::Exception; end
|
|
29
48
|
# and #conflicting_dependencies
|
30
49
|
|
31
50
|
class Gem::DependencyResolutionError < Gem::DependencyError
|
32
|
-
|
33
51
|
attr_reader :conflict
|
34
52
|
|
35
|
-
def initialize
|
53
|
+
def initialize(conflict)
|
36
54
|
@conflict = conflict
|
37
55
|
a, b = conflicting_dependencies
|
38
56
|
|
@@ -42,7 +60,6 @@ class Gem::DependencyResolutionError < Gem::DependencyError
|
|
42
60
|
def conflicting_dependencies
|
43
61
|
@conflict.conflicting_dependencies
|
44
62
|
end
|
45
|
-
|
46
63
|
end
|
47
64
|
|
48
65
|
##
|
@@ -52,6 +69,13 @@ class Gem::GemNotInHomeException < Gem::Exception
|
|
52
69
|
attr_accessor :spec
|
53
70
|
end
|
54
71
|
|
72
|
+
###
|
73
|
+
# Raised when removing a gem with the uninstall command fails
|
74
|
+
|
75
|
+
class Gem::UninstallError < Gem::Exception
|
76
|
+
attr_accessor :spec
|
77
|
+
end
|
78
|
+
|
55
79
|
class Gem::DocumentError < Gem::Exception; end
|
56
80
|
|
57
81
|
##
|
@@ -63,15 +87,13 @@ class Gem::EndOfYAMLException < Gem::Exception; end
|
|
63
87
|
# operating on the given directory.
|
64
88
|
|
65
89
|
class Gem::FilePermissionError < Gem::Exception
|
66
|
-
|
67
90
|
attr_reader :directory
|
68
91
|
|
69
|
-
def initialize
|
92
|
+
def initialize(directory)
|
70
93
|
@directory = directory
|
71
94
|
|
72
95
|
super "You don't have write permissions for the #{directory} directory."
|
73
96
|
end
|
74
|
-
|
75
97
|
end
|
76
98
|
|
77
99
|
##
|
@@ -86,7 +108,6 @@ class Gem::GemNotFoundException < Gem::Exception; end
|
|
86
108
|
# Raised by the DependencyInstaller when a specific gem cannot be found
|
87
109
|
|
88
110
|
class Gem::SpecificGemNotFoundException < Gem::GemNotFoundException
|
89
|
-
|
90
111
|
##
|
91
112
|
# Creates a new SpecificGemNotFoundException for a gem with the given +name+
|
92
113
|
# and +version+. Any +errors+ encountered when attempting to find the gem
|
@@ -114,7 +135,6 @@ class Gem::SpecificGemNotFoundException < Gem::GemNotFoundException
|
|
114
135
|
# Errors encountered attempting to find the gem.
|
115
136
|
|
116
137
|
attr_reader :errors
|
117
|
-
|
118
138
|
end
|
119
139
|
|
120
140
|
##
|
@@ -122,11 +142,10 @@ end
|
|
122
142
|
# inability to find a valid possible spec for a request.
|
123
143
|
|
124
144
|
class Gem::ImpossibleDependenciesError < Gem::Exception
|
125
|
-
|
126
145
|
attr_reader :conflicts
|
127
146
|
attr_reader :request
|
128
147
|
|
129
|
-
def initialize
|
148
|
+
def initialize(request, conflicts)
|
130
149
|
@request = request
|
131
150
|
@conflicts = conflicts
|
132
151
|
|
@@ -135,7 +154,7 @@ class Gem::ImpossibleDependenciesError < Gem::Exception
|
|
135
154
|
|
136
155
|
def build_message # :nodoc:
|
137
156
|
requester = @request.requester
|
138
|
-
requester = requester ? requester.spec.full_name :
|
157
|
+
requester = requester ? requester.spec.full_name : "The user"
|
139
158
|
dependency = @request.dependency
|
140
159
|
|
141
160
|
message = "#{requester} requires #{dependency} but it conflicted:\n".dup
|
@@ -150,11 +169,17 @@ class Gem::ImpossibleDependenciesError < Gem::Exception
|
|
150
169
|
def dependency
|
151
170
|
@request.dependency
|
152
171
|
end
|
153
|
-
|
154
172
|
end
|
155
173
|
|
156
174
|
class Gem::InstallError < Gem::Exception; end
|
157
175
|
|
176
|
+
class Gem::RuntimeRequirementNotMetError < Gem::InstallError
|
177
|
+
attr_accessor :suggestion
|
178
|
+
def message
|
179
|
+
[suggestion, super].compact.join("\n\t")
|
180
|
+
end
|
181
|
+
end
|
182
|
+
|
158
183
|
##
|
159
184
|
# Potentially raised when a specification is validated.
|
160
185
|
class Gem::InvalidSpecificationException < Gem::Exception; end
|
@@ -189,26 +214,32 @@ class Gem::RubyVersionMismatch < Gem::Exception; end
|
|
189
214
|
|
190
215
|
class Gem::VerificationError < Gem::Exception; end
|
191
216
|
|
217
|
+
##
|
218
|
+
# Raised by Gem::WebauthnListener when an error occurs during security
|
219
|
+
# device verification.
|
220
|
+
|
221
|
+
class Gem::WebauthnVerificationError < Gem::Exception
|
222
|
+
def initialize(message)
|
223
|
+
super "Security device verification failed: #{message}"
|
224
|
+
end
|
225
|
+
end
|
226
|
+
|
192
227
|
##
|
193
228
|
# Raised to indicate that a system exit should occur with the specified
|
194
229
|
# exit_code
|
195
230
|
|
196
231
|
class Gem::SystemExitException < SystemExit
|
197
|
-
|
198
232
|
##
|
199
233
|
# The exit code for the process
|
200
234
|
|
201
|
-
|
235
|
+
alias_method :exit_code, :status
|
202
236
|
|
203
237
|
##
|
204
238
|
# Creates a new SystemExitException with the given +exit_code+
|
205
239
|
|
206
240
|
def initialize(exit_code)
|
207
|
-
|
208
|
-
|
209
|
-
super "Exiting RubyGems with exit_code #{exit_code}"
|
241
|
+
super exit_code, "Exiting RubyGems with exit_code #{exit_code}"
|
210
242
|
end
|
211
|
-
|
212
243
|
end
|
213
244
|
|
214
245
|
##
|
@@ -216,7 +247,6 @@ end
|
|
216
247
|
# there is no spec.
|
217
248
|
|
218
249
|
class Gem::UnsatisfiableDependencyError < Gem::DependencyError
|
219
|
-
|
220
250
|
##
|
221
251
|
# The unsatisfiable dependency. This is a
|
222
252
|
# Gem::Resolver::DependencyRequest, not a Gem::Dependency
|
@@ -232,10 +262,10 @@ class Gem::UnsatisfiableDependencyError < Gem::DependencyError
|
|
232
262
|
# Creates a new UnsatisfiableDependencyError for the unsatisfiable
|
233
263
|
# Gem::Resolver::DependencyRequest +dep+
|
234
264
|
|
235
|
-
def initialize
|
236
|
-
if platform_mismatch
|
237
|
-
plats = platform_mismatch.map {
|
238
|
-
super "Unable to resolve dependency: No match for '#{dep}' on this platform. Found: #{plats.join(
|
265
|
+
def initialize(dep, platform_mismatch=nil)
|
266
|
+
if platform_mismatch && !platform_mismatch.empty?
|
267
|
+
plats = platform_mismatch.map {|x| x.platform.to_s }.sort.uniq
|
268
|
+
super "Unable to resolve dependency: No match for '#{dep}' on this platform. Found: #{plats.join(", ")}"
|
239
269
|
else
|
240
270
|
if dep.explicit?
|
241
271
|
super "Unable to resolve dependency: user requested '#{dep}'"
|
@@ -261,10 +291,10 @@ class Gem::UnsatisfiableDependencyError < Gem::DependencyError
|
|
261
291
|
def version
|
262
292
|
@dependency.requirement
|
263
293
|
end
|
264
|
-
|
265
294
|
end
|
266
295
|
|
267
296
|
##
|
268
297
|
# Backwards compatible typo'd exception class for early RubyGems 2.0.x
|
269
298
|
|
270
299
|
Gem::UnsatisfiableDepedencyError = Gem::UnsatisfiableDependencyError # :nodoc:
|
300
|
+
Gem.deprecate_constant :UnsatisfiableDepedencyError
|