rubygems-update 3.1.1 → 3.2.0.rc.2
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 +4 -4
- data/CODE_OF_CONDUCT.md +55 -19
- data/CONTRIBUTING.md +25 -11
- data/History.txt +389 -144
- data/Manifest.txt +37 -73
- data/POLICIES.md +2 -9
- data/README.md +5 -5
- data/Rakefile +47 -82
- data/bin/update_rubygems +2 -2
- data/bundler/CHANGELOG.md +1546 -1414
- data/bundler/README.md +6 -8
- data/bundler/UPGRADING.md +18 -32
- data/bundler/bundler.gemspec +3 -3
- data/bundler/exe/bundle +3 -0
- data/bundler/lib/bundler.rb +21 -7
- data/bundler/lib/bundler/build_metadata.rb +4 -12
- data/bundler/lib/bundler/cli.rb +54 -20
- data/bundler/lib/bundler/cli/add.rb +1 -1
- data/bundler/lib/bundler/cli/cache.rb +1 -7
- data/bundler/lib/bundler/cli/clean.rb +1 -1
- data/bundler/lib/bundler/cli/common.rb +14 -0
- data/bundler/lib/bundler/cli/console.rb +1 -1
- data/bundler/lib/bundler/cli/doctor.rb +1 -1
- data/bundler/lib/bundler/cli/exec.rb +4 -13
- data/bundler/lib/bundler/cli/fund.rb +36 -0
- data/bundler/lib/bundler/cli/gem.rb +84 -11
- data/bundler/lib/bundler/cli/info.rb +15 -4
- data/bundler/lib/bundler/cli/init.rb +2 -2
- data/bundler/lib/bundler/cli/inject.rb +1 -1
- data/bundler/lib/bundler/cli/install.rb +12 -18
- data/bundler/lib/bundler/cli/issue.rb +2 -2
- data/bundler/lib/bundler/cli/list.rb +12 -10
- data/bundler/lib/bundler/cli/outdated.rb +89 -66
- data/bundler/lib/bundler/cli/plugin.rb +10 -0
- data/bundler/lib/bundler/cli/pristine.rb +5 -0
- data/bundler/lib/bundler/cli/show.rb +1 -1
- data/bundler/lib/bundler/cli/update.rb +2 -0
- data/bundler/lib/bundler/compact_index_client.rb +1 -1
- data/bundler/lib/bundler/compact_index_client/cache.rb +1 -1
- data/bundler/lib/bundler/definition.rb +51 -60
- data/bundler/lib/bundler/dep_proxy.rb +1 -1
- data/bundler/lib/bundler/dependency.rb +0 -9
- data/bundler/lib/bundler/dsl.rb +5 -9
- data/bundler/lib/bundler/endpoint_specification.rb +1 -1
- data/bundler/lib/bundler/environment_preserver.rb +26 -2
- data/bundler/lib/bundler/errors.rb +1 -0
- data/bundler/lib/bundler/feature_flag.rb +0 -2
- data/bundler/lib/bundler/fetcher.rb +4 -3
- data/bundler/lib/bundler/fetcher/base.rb +1 -1
- data/bundler/lib/bundler/fetcher/compact_index.rb +1 -1
- data/bundler/lib/bundler/fetcher/downloader.rb +1 -1
- data/bundler/lib/bundler/fetcher/index.rb +1 -1
- data/bundler/lib/bundler/friendly_errors.rb +7 -13
- data/bundler/lib/bundler/gem_helper.rb +33 -19
- data/bundler/lib/bundler/gem_helpers.rb +6 -1
- data/bundler/lib/bundler/gem_version_promoter.rb +2 -2
- data/bundler/lib/bundler/graph.rb +1 -1
- data/bundler/lib/bundler/index.rb +1 -1
- data/bundler/lib/bundler/injector.rb +15 -4
- data/bundler/lib/bundler/inline.rb +2 -2
- data/bundler/lib/bundler/installer.rb +30 -29
- data/bundler/lib/bundler/installer/gem_installer.rb +3 -3
- data/bundler/lib/bundler/installer/parallel_installer.rb +10 -10
- data/bundler/lib/bundler/installer/standalone.rb +2 -2
- data/bundler/lib/bundler/lazy_specification.rb +19 -6
- data/bundler/lib/bundler/lockfile_generator.rb +1 -1
- data/bundler/lib/bundler/lockfile_parser.rb +1 -1
- data/bundler/lib/bundler/mirror.rb +2 -2
- data/bundler/lib/bundler/plugin.rb +30 -5
- data/bundler/lib/bundler/plugin/index.rb +10 -1
- data/bundler/lib/bundler/plugin/installer.rb +1 -1
- data/bundler/lib/bundler/plugin/installer/rubygems.rb +1 -1
- data/bundler/lib/bundler/plugin/source_list.rb +1 -1
- data/bundler/lib/bundler/psyched_yaml.rb +0 -15
- data/bundler/lib/bundler/remote_specification.rb +5 -2
- data/bundler/lib/bundler/resolver.rb +32 -9
- data/bundler/lib/bundler/resolver/spec_group.rb +27 -6
- data/bundler/lib/bundler/retry.rb +1 -1
- data/bundler/lib/bundler/ruby_version.rb +1 -1
- data/bundler/lib/bundler/rubygems_ext.rb +53 -9
- data/bundler/lib/bundler/rubygems_gem_installer.rb +3 -9
- data/bundler/lib/bundler/rubygems_integration.rb +31 -54
- data/bundler/lib/bundler/runtime.rb +4 -14
- data/bundler/lib/bundler/settings.rb +49 -45
- data/bundler/lib/bundler/setup.rb +5 -0
- data/bundler/lib/bundler/shared_helpers.rb +2 -2
- data/bundler/lib/bundler/similarity_detector.rb +1 -1
- data/bundler/lib/bundler/source.rb +1 -1
- data/bundler/lib/bundler/source/git.rb +5 -5
- data/bundler/lib/bundler/source/git/git_proxy.rb +56 -59
- data/bundler/lib/bundler/source/path.rb +7 -3
- data/bundler/lib/bundler/source/path/installer.rb +8 -10
- data/bundler/lib/bundler/source/rubygems.rb +13 -16
- data/bundler/lib/bundler/source/rubygems/remote.rb +1 -1
- data/bundler/lib/bundler/source_list.rb +2 -2
- data/bundler/lib/bundler/spec_set.rb +1 -1
- data/bundler/lib/bundler/stub_specification.rb +17 -5
- data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +57 -47
- data/bundler/lib/bundler/templates/newgem/Gemfile.tt +9 -1
- data/bundler/lib/bundler/templates/newgem/README.md.tt +1 -1
- data/bundler/lib/bundler/templates/newgem/Rakefile.tt +19 -5
- data/bundler/lib/bundler/templates/newgem/bin/console.tt +1 -0
- data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +13 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +2 -0
- data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +18 -0
- data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +9 -0
- data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +2 -0
- data/bundler/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +2 -0
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +8 -6
- data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +10 -0
- data/bundler/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +2 -0
- data/bundler/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +2 -1
- data/bundler/lib/bundler/templates/newgem/test/{newgem_test.rb.tt → minitest/newgem_test.rb.tt} +2 -0
- data/bundler/lib/bundler/templates/newgem/test/{test_helper.rb.tt → minitest/test_helper.rb.tt} +2 -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/shell.rb +5 -5
- data/bundler/lib/bundler/uri_credentials_filter.rb +1 -1
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +79 -212
- data/bundler/lib/bundler/vendor/thor/lib/thor.rb +0 -7
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +2 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +9 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
- data/bundler/lib/bundler/vendored_persistent.rb +0 -7
- data/bundler/lib/bundler/version.rb +1 -1
- data/bundler/lib/bundler/worker.rb +1 -1
- data/bundler/lib/bundler/yaml_serializer.rb +1 -1
- data/bundler/man/bundle-add.1 +1 -1
- data/bundler/man/{bundle-add.ronn → bundle-add.1.ronn} +0 -0
- data/bundler/man/bundle-binstubs.1 +5 -3
- data/bundler/man/{bundle-binstubs.ronn → bundle-binstubs.1.ronn} +2 -4
- data/bundler/man/bundle-cache.1 +1 -1
- data/bundler/man/{bundle-cache.ronn → bundle-cache.1.ronn} +0 -0
- data/bundler/man/bundle-check.1 +1 -1
- data/bundler/man/{bundle-check.ronn → bundle-check.1.ronn} +0 -0
- data/bundler/man/bundle-clean.1 +1 -1
- data/bundler/man/{bundle-clean.ronn → bundle-clean.1.ronn} +0 -0
- data/bundler/man/bundle-config.1 +16 -22
- data/bundler/man/{bundle-config.ronn → bundle-config.1.ronn} +19 -22
- data/bundler/man/bundle-doctor.1 +1 -1
- data/bundler/man/{bundle-doctor.ronn → bundle-doctor.1.ronn} +0 -0
- data/bundler/man/bundle-exec.1 +1 -1
- data/bundler/man/{bundle-exec.ronn → bundle-exec.1.ronn} +0 -0
- data/bundler/man/bundle-gem.1 +25 -3
- data/bundler/man/{bundle-gem.ronn → bundle-gem.1.ronn} +30 -7
- data/bundler/man/bundle-info.1 +1 -1
- data/bundler/man/{bundle-info.ronn → bundle-info.1.ronn} +0 -0
- data/bundler/man/bundle-init.1 +1 -1
- data/bundler/man/{bundle-init.ronn → bundle-init.1.ronn} +0 -0
- data/bundler/man/bundle-inject.1 +1 -1
- data/bundler/man/{bundle-inject.ronn → bundle-inject.1.ronn} +0 -0
- data/bundler/man/bundle-install.1 +29 -2
- data/bundler/man/{bundle-install.ronn → bundle-install.1.ronn} +24 -2
- data/bundler/man/bundle-list.1 +7 -7
- data/bundler/man/{bundle-list.ronn → bundle-list.1.ronn} +6 -6
- data/bundler/man/bundle-lock.1 +1 -1
- data/bundler/man/{bundle-lock.ronn → bundle-lock.1.ronn} +0 -0
- data/bundler/man/bundle-open.1 +1 -1
- data/bundler/man/{bundle-open.ronn → bundle-open.1.ronn} +0 -0
- data/bundler/man/bundle-outdated.1 +1 -1
- data/bundler/man/{bundle-outdated.ronn → bundle-outdated.1.ronn} +0 -0
- data/bundler/man/bundle-platform.1 +1 -1
- data/bundler/man/{bundle-platform.ronn → bundle-platform.1.ronn} +0 -0
- data/bundler/man/bundle-pristine.1 +1 -1
- data/bundler/man/{bundle-pristine.ronn → bundle-pristine.1.ronn} +0 -0
- data/bundler/man/bundle-remove.1 +1 -1
- data/bundler/man/{bundle-remove.ronn → bundle-remove.1.ronn} +0 -0
- data/bundler/man/bundle-show.1 +1 -1
- data/bundler/man/{bundle-show.ronn → bundle-show.1.ronn} +0 -0
- data/bundler/man/bundle-update.1 +1 -1
- data/bundler/man/{bundle-update.ronn → bundle-update.1.ronn} +0 -0
- data/bundler/man/bundle-viz.1 +1 -1
- data/bundler/man/{bundle-viz.ronn → bundle-viz.1.ronn} +0 -0
- data/bundler/man/bundle.1 +1 -1
- data/bundler/man/{bundle.ronn → bundle.1.ronn} +0 -0
- data/bundler/man/gemfile.5 +4 -4
- data/bundler/man/gemfile.5.ronn +4 -4
- data/lib/rubygems.rb +133 -186
- data/lib/rubygems/available_set.rb +4 -6
- data/lib/rubygems/basic_specification.rb +12 -10
- data/lib/rubygems/bundler_version_finder.rb +14 -9
- data/lib/rubygems/command.rb +17 -17
- data/lib/rubygems/command_manager.rb +4 -5
- data/lib/rubygems/commands/build_command.rb +4 -1
- data/lib/rubygems/commands/cert_command.rb +1 -9
- data/lib/rubygems/commands/check_command.rb +0 -2
- data/lib/rubygems/commands/cleanup_command.rb +11 -7
- data/lib/rubygems/commands/contents_command.rb +4 -6
- data/lib/rubygems/commands/dependency_command.rb +6 -8
- data/lib/rubygems/commands/environment_command.rb +1 -3
- data/lib/rubygems/commands/fetch_command.rb +2 -4
- data/lib/rubygems/commands/generate_index_command.rb +0 -2
- data/lib/rubygems/commands/help_command.rb +2 -4
- data/lib/rubygems/commands/info_command.rb +8 -5
- data/lib/rubygems/commands/install_command.rb +3 -5
- data/lib/rubygems/commands/list_command.rb +8 -7
- data/lib/rubygems/commands/lock_command.rb +1 -3
- data/lib/rubygems/commands/mirror_command.rb +0 -2
- data/lib/rubygems/commands/open_command.rb +0 -4
- data/lib/rubygems/commands/outdated_command.rb +0 -2
- data/lib/rubygems/commands/owner_command.rb +0 -2
- data/lib/rubygems/commands/pristine_command.rb +10 -4
- data/lib/rubygems/commands/push_command.rb +4 -44
- data/lib/rubygems/commands/query_command.rb +6 -353
- data/lib/rubygems/commands/rdoc_command.rb +0 -2
- data/lib/rubygems/commands/search_command.rb +7 -7
- data/lib/rubygems/commands/server_command.rb +0 -2
- data/lib/rubygems/commands/setup_command.rb +156 -48
- data/lib/rubygems/commands/signin_command.rb +0 -2
- data/lib/rubygems/commands/signout_command.rb +0 -2
- data/lib/rubygems/commands/sources_command.rb +3 -5
- data/lib/rubygems/commands/specification_command.rb +2 -4
- data/lib/rubygems/commands/stale_command.rb +1 -3
- data/lib/rubygems/commands/uninstall_command.rb +2 -4
- data/lib/rubygems/commands/unpack_command.rb +1 -3
- data/lib/rubygems/commands/update_command.rb +59 -14
- data/lib/rubygems/commands/which_command.rb +0 -2
- data/lib/rubygems/commands/yank_command.rb +0 -2
- data/lib/rubygems/config_file.rb +11 -4
- data/lib/rubygems/core_ext/kernel_require.rb +26 -36
- data/lib/rubygems/core_ext/kernel_warn.rb +6 -6
- data/lib/rubygems/defaults.rb +99 -5
- data/lib/rubygems/dependency.rb +2 -7
- data/lib/rubygems/dependency_installer.rb +1 -75
- data/lib/rubygems/dependency_list.rb +7 -9
- data/lib/rubygems/deprecate.rb +46 -1
- data/lib/rubygems/doctor.rb +4 -4
- data/lib/rubygems/errors.rb +3 -14
- data/lib/rubygems/exceptions.rb +2 -33
- data/lib/rubygems/ext.rb +6 -6
- data/lib/rubygems/ext/build_error.rb +2 -0
- data/lib/rubygems/ext/builder.rb +4 -4
- data/lib/rubygems/ext/cmake_builder.rb +1 -3
- data/lib/rubygems/ext/configure_builder.rb +0 -2
- data/lib/rubygems/ext/ext_conf_builder.rb +6 -9
- data/lib/rubygems/ext/rake_builder.rb +0 -2
- data/lib/rubygems/gem_runner.rb +3 -10
- data/lib/rubygems/gemcutter_utilities.rb +1 -1
- data/lib/rubygems/indexer.rb +1 -21
- data/lib/rubygems/install_update_options.rb +5 -5
- data/lib/rubygems/installer.rb +47 -48
- data/lib/rubygems/installer_test_case.rb +18 -5
- data/lib/rubygems/installer_uninstaller_utils.rb +24 -0
- data/lib/rubygems/local_remote_options.rb +1 -1
- data/lib/rubygems/mock_gem_ui.rb +0 -6
- data/lib/rubygems/name_tuple.rb +2 -6
- data/lib/rubygems/openssl.rb +7 -0
- data/lib/rubygems/package.rb +11 -23
- data/lib/rubygems/package/digest_io.rb +0 -2
- data/lib/rubygems/package/file_source.rb +0 -2
- data/lib/rubygems/package/io_source.rb +0 -2
- data/lib/rubygems/package/old.rb +1 -3
- data/lib/rubygems/package/tar_header.rb +3 -5
- data/lib/rubygems/package/tar_reader.rb +0 -3
- data/lib/rubygems/package/tar_reader/entry.rb +0 -3
- data/lib/rubygems/package/tar_test_case.rb +1 -3
- data/lib/rubygems/package/tar_writer.rb +2 -12
- data/lib/rubygems/package_task.rb +1 -7
- data/lib/rubygems/path_support.rb +1 -3
- data/lib/rubygems/platform.rb +3 -5
- data/lib/rubygems/psych_tree.rb +0 -2
- data/lib/rubygems/query_utils.rb +362 -0
- data/lib/rubygems/rdoc.rb +0 -12
- data/lib/rubygems/remote_fetcher.rb +9 -25
- data/lib/rubygems/request.rb +1 -9
- data/lib/rubygems/request/connection_pools.rb +1 -5
- data/lib/rubygems/request/http_pool.rb +0 -2
- data/lib/rubygems/request/https_pool.rb +0 -2
- data/lib/rubygems/request_set.rb +5 -7
- data/lib/rubygems/request_set/gem_dependency_api.rb +2 -4
- data/lib/rubygems/request_set/lockfile.rb +8 -12
- data/lib/rubygems/request_set/lockfile/parser.rb +0 -2
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +1 -3
- data/lib/rubygems/requirement.rb +20 -21
- data/lib/rubygems/resolver.rb +7 -10
- data/lib/rubygems/resolver/activation_request.rb +0 -2
- data/lib/rubygems/resolver/api_set.rb +4 -6
- data/lib/rubygems/resolver/api_specification.rb +16 -7
- data/lib/rubygems/resolver/best_set.rb +0 -2
- data/lib/rubygems/resolver/composed_set.rb +3 -5
- data/lib/rubygems/resolver/conflict.rb +1 -3
- data/lib/rubygems/resolver/current_set.rb +0 -2
- data/lib/rubygems/resolver/dependency_request.rb +0 -2
- data/lib/rubygems/resolver/git_set.rb +0 -2
- data/lib/rubygems/resolver/git_specification.rb +0 -2
- data/lib/rubygems/resolver/index_set.rb +1 -3
- data/lib/rubygems/resolver/index_specification.rb +0 -2
- data/lib/rubygems/resolver/installed_specification.rb +0 -2
- data/lib/rubygems/resolver/installer_set.rb +3 -5
- data/lib/rubygems/resolver/local_specification.rb +0 -2
- data/lib/rubygems/resolver/lock_set.rb +1 -3
- data/lib/rubygems/resolver/lock_specification.rb +0 -2
- data/lib/rubygems/resolver/requirement_list.rb +0 -2
- data/lib/rubygems/resolver/set.rb +0 -2
- data/lib/rubygems/resolver/source_set.rb +0 -2
- data/lib/rubygems/resolver/spec_specification.rb +0 -2
- data/lib/rubygems/resolver/specification.rb +0 -2
- data/lib/rubygems/resolver/stats.rb +0 -2
- data/lib/rubygems/resolver/vendor_set.rb +0 -2
- data/lib/rubygems/resolver/vendor_specification.rb +0 -2
- data/lib/rubygems/s3_uri_signer.rb +1 -7
- data/lib/rubygems/safe_yaml.rb +4 -4
- data/lib/rubygems/security.rb +26 -32
- data/lib/rubygems/security/policy.rb +3 -7
- data/lib/rubygems/security/signer.rb +4 -6
- data/lib/rubygems/security/trust_dir.rb +1 -3
- data/lib/rubygems/server.rb +9 -11
- data/lib/rubygems/source.rb +4 -4
- data/lib/rubygems/source/git.rb +7 -8
- data/lib/rubygems/source/installed.rb +0 -2
- data/lib/rubygems/source/local.rb +2 -4
- data/lib/rubygems/source/lock.rb +0 -2
- data/lib/rubygems/source/specific_file.rb +0 -2
- data/lib/rubygems/source/vendor.rb +0 -2
- data/lib/rubygems/source_list.rb +6 -7
- data/lib/rubygems/spec_fetcher.rb +18 -17
- data/lib/rubygems/specification.rb +107 -120
- data/lib/rubygems/specification_policy.rb +88 -30
- data/lib/rubygems/stub_specification.rb +0 -4
- data/lib/rubygems/syck_hack.rb +0 -2
- data/lib/rubygems/test_case.rb +122 -92
- data/lib/rubygems/test_utilities.rb +6 -14
- data/lib/rubygems/uninstaller.rb +35 -16
- data/lib/rubygems/uri_formatter.rb +0 -2
- data/lib/rubygems/uri_parser.rb +0 -2
- data/lib/rubygems/user_interaction.rb +1 -26
- data/lib/rubygems/util.rb +15 -3
- data/lib/rubygems/util/licenses.rb +4 -6
- data/lib/rubygems/util/list.rb +0 -2
- data/lib/rubygems/validator.rb +1 -3
- data/lib/rubygems/version.rb +5 -7
- data/rubygems-update.gemspec +2 -2
- data/setup.rb +2 -7
- data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -2
- data/test/rubygems/rubygems/commands/crash_command.rb +0 -2
- data/test/rubygems/rubygems_plugin.rb +0 -2
- data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -2
- data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +12 -0
- data/test/rubygems/test_bundled_ca.rb +38 -45
- data/test/rubygems/test_config.rb +0 -2
- data/test/rubygems/test_deprecate.rb +40 -7
- data/test/rubygems/test_gem.rb +150 -103
- data/test/rubygems/test_gem_available_set.rb +3 -5
- data/test/rubygems/test_gem_bundler_version_finder.rb +19 -3
- data/test/rubygems/test_gem_command.rb +24 -7
- data/test/rubygems/test_gem_command_manager.rb +36 -5
- data/test/rubygems/test_gem_commands_build_command.rb +53 -10
- data/test/rubygems/test_gem_commands_cert_command.rb +2 -4
- data/test/rubygems/test_gem_commands_check_command.rb +0 -2
- data/test/rubygems/test_gem_commands_cleanup_command.rb +13 -4
- data/test/rubygems/test_gem_commands_contents_command.rb +48 -17
- data/test/rubygems/test_gem_commands_dependency_command.rb +0 -2
- data/test/rubygems/test_gem_commands_environment_command.rb +21 -23
- data/test/rubygems/test_gem_commands_fetch_command.rb +0 -2
- data/test/rubygems/test_gem_commands_generate_index_command.rb +1 -7
- data/test/rubygems/test_gem_commands_help_command.rb +0 -2
- data/test/rubygems/test_gem_commands_info_command.rb +6 -8
- data/test/rubygems/test_gem_commands_install_command.rb +31 -33
- data/test/rubygems/test_gem_commands_list_command.rb +0 -2
- data/test/rubygems/test_gem_commands_lock_command.rb +0 -2
- data/test/rubygems/test_gem_commands_mirror.rb +1 -3
- data/test/rubygems/test_gem_commands_open_command.rb +4 -6
- data/test/rubygems/test_gem_commands_outdated_command.rb +0 -2
- data/test/rubygems/test_gem_commands_owner_command.rb +11 -5
- data/test/rubygems/test_gem_commands_pristine_command.rb +41 -10
- data/test/rubygems/test_gem_commands_push_command.rb +7 -4
- data/test/rubygems/test_gem_commands_query_command.rb +9 -9
- data/test/rubygems/test_gem_commands_search_command.rb +0 -2
- data/test/rubygems/test_gem_commands_server_command.rb +0 -2
- data/test/rubygems/test_gem_commands_setup_command.rb +210 -118
- data/test/rubygems/test_gem_commands_signin_command.rb +6 -6
- data/test/rubygems/test_gem_commands_signout_command.rb +0 -7
- data/test/rubygems/test_gem_commands_sources_command.rb +39 -3
- data/test/rubygems/test_gem_commands_specification_command.rb +18 -20
- data/test/rubygems/test_gem_commands_stale_command.rb +0 -2
- data/test/rubygems/test_gem_commands_uninstall_command.rb +2 -3
- data/test/rubygems/test_gem_commands_unpack_command.rb +0 -2
- data/test/rubygems/test_gem_commands_update_command.rb +116 -7
- data/test/rubygems/test_gem_commands_which_command.rb +3 -5
- data/test/rubygems/test_gem_commands_yank_command.rb +14 -8
- data/test/rubygems/test_gem_config_file.rb +7 -12
- data/test/rubygems/test_gem_dependency.rb +0 -2
- data/test/rubygems/test_gem_dependency_installer.rb +54 -191
- data/test/rubygems/test_gem_dependency_list.rb +8 -10
- data/test/rubygems/test_gem_dependency_resolution_error.rb +1 -3
- data/test/rubygems/test_gem_doctor.rb +28 -2
- data/test/rubygems/test_gem_ext_builder.rb +16 -33
- data/test/rubygems/test_gem_ext_cmake_builder.rb +13 -14
- data/test/rubygems/test_gem_ext_configure_builder.rb +1 -11
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +0 -3
- data/test/rubygems/test_gem_ext_rake_builder.rb +9 -11
- data/test/rubygems/test_gem_gem_runner.rb +43 -1
- data/test/rubygems/test_gem_gemcutter_utilities.rb +5 -2
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -2
- data/test/rubygems/test_gem_indexer.rb +9 -15
- data/test/rubygems/test_gem_install_update_options.rb +0 -2
- data/test/rubygems/test_gem_installer.rb +192 -71
- data/test/rubygems/test_gem_local_remote_options.rb +0 -2
- data/test/rubygems/test_gem_name_tuple.rb +0 -2
- data/test/rubygems/test_gem_package.rb +33 -31
- data/test/rubygems/test_gem_package_old.rb +0 -2
- data/test/rubygems/test_gem_package_tar_header.rb +18 -1
- data/test/rubygems/test_gem_package_tar_reader.rb +0 -2
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +0 -2
- data/test/rubygems/test_gem_package_tar_writer.rb +8 -5
- data/test/rubygems/test_gem_package_task.rb +46 -13
- data/test/rubygems/test_gem_path_support.rb +0 -2
- data/test/rubygems/test_gem_platform.rb +0 -2
- data/test/rubygems/test_gem_rdoc.rb +0 -2
- data/test/rubygems/test_gem_remote_fetcher.rb +156 -195
- data/test/rubygems/test_gem_request.rb +11 -15
- data/test/rubygems/test_gem_request_connection_pools.rb +0 -4
- data/test/rubygems/test_gem_request_set.rb +72 -22
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +3 -5
- data/test/rubygems/test_gem_request_set_lockfile.rb +0 -2
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +9 -11
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +118 -120
- data/test/rubygems/test_gem_requirement.rb +10 -4
- data/test/rubygems/test_gem_resolver.rb +6 -8
- data/test/rubygems/test_gem_resolver_activation_request.rb +0 -2
- data/test/rubygems/test_gem_resolver_api_set.rb +3 -5
- data/test/rubygems/test_gem_resolver_api_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_best_set.rb +2 -4
- data/test/rubygems/test_gem_resolver_composed_set.rb +0 -2
- data/test/rubygems/test_gem_resolver_conflict.rb +0 -2
- data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -2
- data/test/rubygems/test_gem_resolver_git_set.rb +0 -2
- data/test/rubygems/test_gem_resolver_git_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_index_set.rb +2 -4
- data/test/rubygems/test_gem_resolver_index_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_installer_set.rb +7 -9
- data/test/rubygems/test_gem_resolver_local_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_lock_set.rb +3 -5
- data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -2
- data/test/rubygems/test_gem_resolver_specification.rb +0 -4
- data/test/rubygems/test_gem_resolver_vendor_set.rb +0 -2
- data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -2
- data/test/rubygems/test_gem_security.rb +20 -22
- data/test/rubygems/test_gem_security_policy.rb +5 -10
- data/test/rubygems/test_gem_security_signer.rb +8 -10
- data/test/rubygems/test_gem_security_trust_dir.rb +2 -4
- data/test/rubygems/test_gem_server.rb +10 -14
- data/test/rubygems/test_gem_silent_ui.rb +0 -2
- data/test/rubygems/test_gem_source.rb +12 -16
- data/test/rubygems/test_gem_source_fetch_problem.rb +0 -2
- data/test/rubygems/test_gem_source_git.rb +12 -13
- data/test/rubygems/test_gem_source_installed.rb +7 -9
- data/test/rubygems/test_gem_source_list.rb +1 -2
- data/test/rubygems/test_gem_source_local.rb +8 -10
- data/test/rubygems/test_gem_source_lock.rb +10 -12
- data/test/rubygems/test_gem_source_specific_file.rb +7 -9
- data/test/rubygems/test_gem_source_vendor.rb +7 -9
- data/test/rubygems/test_gem_spec_fetcher.rb +11 -4
- data/test/rubygems/test_gem_specification.rb +179 -129
- data/test/rubygems/test_gem_stream_ui.rb +3 -3
- data/test/rubygems/test_gem_stub_specification.rb +4 -7
- data/test/rubygems/test_gem_text.rb +1 -3
- data/test/rubygems/test_gem_uninstaller.rb +133 -11
- data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -2
- data/test/rubygems/test_gem_uri_formatter.rb +0 -2
- data/test/rubygems/test_gem_util.rb +7 -7
- data/test/rubygems/test_gem_validator.rb +0 -2
- data/test/rubygems/test_gem_version.rb +1 -3
- data/test/rubygems/test_gem_version_option.rb +0 -2
- data/test/rubygems/test_kernel.rb +25 -10
- data/test/rubygems/test_project_sanity.rb +7 -2
- data/test/rubygems/test_remote_fetch_error.rb +0 -2
- data/test/rubygems/test_require.rb +241 -47
- metadata +59 -96
- data/.bundle/config +0 -2
- data/.rubocop.yml +0 -91
- data/Gemfile +0 -8
- data/Gemfile.lock +0 -43
- data/bundler/CODE_OF_CONDUCT.md +0 -136
- data/bundler/man/bundle-add.1.txt +0 -58
- data/bundler/man/bundle-binstubs.1.txt +0 -48
- data/bundler/man/bundle-cache.1.txt +0 -78
- data/bundler/man/bundle-check.1.txt +0 -33
- data/bundler/man/bundle-clean.1.txt +0 -26
- data/bundler/man/bundle-config.1.txt +0 -528
- data/bundler/man/bundle-doctor.1.txt +0 -44
- data/bundler/man/bundle-exec.1.txt +0 -178
- data/bundler/man/bundle-gem.1.txt +0 -91
- data/bundler/man/bundle-info.1.txt +0 -21
- data/bundler/man/bundle-init.1.txt +0 -34
- data/bundler/man/bundle-inject.1.txt +0 -32
- data/bundler/man/bundle-install.1.txt +0 -401
- data/bundler/man/bundle-list.1.txt +0 -43
- data/bundler/man/bundle-lock.1.txt +0 -93
- data/bundler/man/bundle-open.1.txt +0 -29
- data/bundler/man/bundle-outdated.1.txt +0 -131
- data/bundler/man/bundle-platform.1.txt +0 -57
- data/bundler/man/bundle-pristine.1.txt +0 -44
- data/bundler/man/bundle-remove.1.txt +0 -34
- data/bundler/man/bundle-show.1.txt +0 -27
- data/bundler/man/bundle-update.1.txt +0 -390
- data/bundler/man/bundle-viz.1.txt +0 -39
- data/bundler/man/bundle.1.txt +0 -116
- data/bundler/man/gemfile.5.txt +0 -649
- data/bundler/man/index.txt +0 -25
- data/lib/rubygems/source_local.rb +0 -7
- data/lib/rubygems/source_specific_file.rb +0 -6
- data/lib/ubygems.rb +0 -14
- data/tmp/.keep +0 -0
- data/util/CL2notes +0 -55
- data/util/bisect +0 -10
- data/util/ci.sh +0 -62
- data/util/cops/deprecations.rb +0 -52
- data/util/create_certs.rb +0 -171
- data/util/create_certs.sh +0 -27
- data/util/create_encrypted_key.rb +0 -16
- data/util/generate_spdx_license_list.rb +0 -63
- data/util/patch_with_prs.rb +0 -77
- data/util/rubocop +0 -8
- data/util/update_bundled_ca_certificates.rb +0 -139
- data/util/update_changelog.rb +0 -67
@@ -4,16 +4,14 @@
|
|
4
4
|
if RUBY_VERSION >= "2.5"
|
5
5
|
|
6
6
|
module Kernel
|
7
|
-
|
7
|
+
rubygems_path = "#{__dir__}/" # Frames to be skipped start with this path.
|
8
8
|
|
9
9
|
original_warn = method(:warn)
|
10
10
|
|
11
11
|
remove_method :warn
|
12
12
|
|
13
13
|
class << self
|
14
|
-
|
15
14
|
remove_method :warn
|
16
|
-
|
17
15
|
end
|
18
16
|
|
19
17
|
module_function define_method(:warn) {|*messages, **kw|
|
@@ -40,9 +38,11 @@ if RUBY_VERSION >= "2.5"
|
|
40
38
|
|
41
39
|
start += 1
|
42
40
|
|
43
|
-
|
44
|
-
|
45
|
-
|
41
|
+
if path = loc.path
|
42
|
+
unless path.start_with?(rubygems_path) or path.start_with?('<internal:')
|
43
|
+
# Non-rubygems frames
|
44
|
+
uplevel -= 1
|
45
|
+
end
|
46
46
|
end
|
47
47
|
end
|
48
48
|
uplevel = start
|
data/lib/rubygems/defaults.rb
CHANGED
@@ -20,7 +20,13 @@ module Gem
|
|
20
20
|
# specified in the environment
|
21
21
|
|
22
22
|
def self.default_spec_cache_dir
|
23
|
-
File.join Gem.user_home, '.gem', 'specs'
|
23
|
+
default_spec_cache_dir = File.join Gem.user_home, '.gem', 'specs'
|
24
|
+
|
25
|
+
unless File.exist?(default_spec_cache_dir)
|
26
|
+
default_spec_cache_dir = File.join Gem.data_home, 'gem', 'specs'
|
27
|
+
end
|
28
|
+
|
29
|
+
default_spec_cache_dir
|
24
30
|
end
|
25
31
|
|
26
32
|
##
|
@@ -70,15 +76,91 @@ module Gem
|
|
70
76
|
File.join(Gem.default_dir, "specifications", "default")
|
71
77
|
end
|
72
78
|
|
79
|
+
##
|
80
|
+
# Finds the user's home directory.
|
81
|
+
#--
|
82
|
+
# Some comments from the ruby-talk list regarding finding the home
|
83
|
+
# directory:
|
84
|
+
#
|
85
|
+
# I have HOME, USERPROFILE and HOMEDRIVE + HOMEPATH. Ruby seems
|
86
|
+
# to be depending on HOME in those code samples. I propose that
|
87
|
+
# it should fallback to USERPROFILE and HOMEDRIVE + HOMEPATH (at
|
88
|
+
# least on Win32).
|
89
|
+
#++
|
90
|
+
#--
|
91
|
+
#
|
92
|
+
#++
|
93
|
+
|
94
|
+
def self.find_home
|
95
|
+
Dir.home.dup
|
96
|
+
rescue
|
97
|
+
if Gem.win_platform?
|
98
|
+
File.expand_path File.join(ENV['HOMEDRIVE'] || ENV['SystemDrive'], '/')
|
99
|
+
else
|
100
|
+
File.expand_path "/"
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
private_class_method :find_home
|
105
|
+
|
106
|
+
##
|
107
|
+
# The home directory for the user.
|
108
|
+
|
109
|
+
def self.user_home
|
110
|
+
@user_home ||= find_home.tap(&Gem::UNTAINT)
|
111
|
+
end
|
112
|
+
|
73
113
|
##
|
74
114
|
# Path for gems in the user's home directory
|
75
115
|
|
76
116
|
def self.user_dir
|
77
|
-
|
117
|
+
gem_dir = File.join(Gem.user_home, ".gem")
|
118
|
+
gem_dir = File.join(Gem.data_home, "gem") unless File.exist?(gem_dir)
|
119
|
+
parts = [gem_dir, ruby_engine]
|
78
120
|
parts << RbConfig::CONFIG['ruby_version'] unless RbConfig::CONFIG['ruby_version'].empty?
|
79
121
|
File.join parts
|
80
122
|
end
|
81
123
|
|
124
|
+
##
|
125
|
+
# The path to standard location of the user's configuration directory.
|
126
|
+
|
127
|
+
def self.config_home
|
128
|
+
@config_home ||= (ENV["XDG_CONFIG_HOME"] || File.join(Gem.user_home, '.config'))
|
129
|
+
end
|
130
|
+
|
131
|
+
##
|
132
|
+
# Finds the user's config file
|
133
|
+
|
134
|
+
def self.find_config_file
|
135
|
+
gemrc = File.join Gem.user_home, '.gemrc'
|
136
|
+
if File.exist? gemrc
|
137
|
+
gemrc
|
138
|
+
else
|
139
|
+
File.join Gem.config_home, "gem", "gemrc"
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
143
|
+
##
|
144
|
+
# The path to standard location of the user's .gemrc file.
|
145
|
+
|
146
|
+
def self.config_file
|
147
|
+
@config_file ||= find_config_file.tap(&Gem::UNTAINT)
|
148
|
+
end
|
149
|
+
|
150
|
+
##
|
151
|
+
# The path to standard location of the user's cache directory.
|
152
|
+
|
153
|
+
def self.cache_home
|
154
|
+
@cache_home ||= (ENV["XDG_CACHE_HOME"] || File.join(Gem.user_home, '.cache'))
|
155
|
+
end
|
156
|
+
|
157
|
+
##
|
158
|
+
# The path to standard location of the user's data directory.
|
159
|
+
|
160
|
+
def self.data_home
|
161
|
+
@data_home ||= (ENV["XDG_DATA_HOME"] || File.join(Gem.user_home, '.local', 'share'))
|
162
|
+
end
|
163
|
+
|
82
164
|
##
|
83
165
|
# How String Gem paths should be split. Overridable for esoteric platforms.
|
84
166
|
|
@@ -115,7 +197,7 @@ module Gem
|
|
115
197
|
# The default directory for binaries
|
116
198
|
|
117
199
|
def self.default_bindir
|
118
|
-
if defined? RUBY_FRAMEWORK_VERSION
|
200
|
+
if defined? RUBY_FRAMEWORK_VERSION # mac framework support
|
119
201
|
'/usr/bin'
|
120
202
|
else # generic install
|
121
203
|
RbConfig::CONFIG['bindir']
|
@@ -130,14 +212,26 @@ module Gem
|
|
130
212
|
# The default signing key path
|
131
213
|
|
132
214
|
def self.default_key_path
|
133
|
-
File.join Gem.user_home, ".gem", "gem-private_key.pem"
|
215
|
+
default_key_path = File.join Gem.user_home, ".gem", "gem-private_key.pem"
|
216
|
+
|
217
|
+
unless File.exist?(default_key_path)
|
218
|
+
default_key_path = File.join Gem.data_home, "gem", "gem-private_key.pem"
|
219
|
+
end
|
220
|
+
|
221
|
+
default_key_path
|
134
222
|
end
|
135
223
|
|
136
224
|
##
|
137
225
|
# The default signing certificate chain path
|
138
226
|
|
139
227
|
def self.default_cert_path
|
140
|
-
File.join Gem.user_home, ".gem", "gem-public_cert.pem"
|
228
|
+
default_cert_path = File.join Gem.user_home, ".gem", "gem-public_cert.pem"
|
229
|
+
|
230
|
+
unless File.exist?(default_cert_path)
|
231
|
+
default_cert_path = File.join Gem.data_home, "gem", "gem-public_cert.pem"
|
232
|
+
end
|
233
|
+
|
234
|
+
default_cert_path
|
141
235
|
end
|
142
236
|
|
143
237
|
##
|
data/lib/rubygems/dependency.rb
CHANGED
@@ -2,11 +2,7 @@
|
|
2
2
|
##
|
3
3
|
# The Dependency class holds a Gem name and a Gem::Requirement.
|
4
4
|
|
5
|
-
require "rubygems/bundler_version_finder"
|
6
|
-
require "rubygems/requirement"
|
7
|
-
|
8
5
|
class Gem::Dependency
|
9
|
-
|
10
6
|
##
|
11
7
|
# Valid dependency types.
|
12
8
|
#--
|
@@ -322,13 +318,13 @@ class Gem::Dependency
|
|
322
318
|
def to_spec
|
323
319
|
matches = self.to_specs.compact
|
324
320
|
|
325
|
-
active = matches.find {
|
321
|
+
active = matches.find {|spec| spec.activated? }
|
326
322
|
return active if active
|
327
323
|
|
328
324
|
return matches.first if prerelease?
|
329
325
|
|
330
326
|
# Move prereleases to the end of the list for >= 0 requirements
|
331
|
-
pre, matches = matches.partition {
|
327
|
+
pre, matches = matches.partition {|spec| spec.version.prerelease? }
|
332
328
|
matches += pre if requirement == Gem::Requirement.default
|
333
329
|
|
334
330
|
matches.first
|
@@ -347,5 +343,4 @@ class Gem::Dependency
|
|
347
343
|
:released
|
348
344
|
end
|
349
345
|
end
|
350
|
-
|
351
346
|
end
|
@@ -5,7 +5,6 @@ require 'rubygems/package'
|
|
5
5
|
require 'rubygems/installer'
|
6
6
|
require 'rubygems/spec_fetcher'
|
7
7
|
require 'rubygems/user_interaction'
|
8
|
-
require 'rubygems/source'
|
9
8
|
require 'rubygems/available_set'
|
10
9
|
require 'rubygems/deprecate'
|
11
10
|
|
@@ -13,7 +12,6 @@ require 'rubygems/deprecate'
|
|
13
12
|
# Installs a gem along with all its dependencies from local and remote gems.
|
14
13
|
|
15
14
|
class Gem::DependencyInstaller
|
16
|
-
|
17
15
|
include Gem::UserInteraction
|
18
16
|
extend Gem::Deprecate
|
19
17
|
|
@@ -106,27 +104,6 @@ class Gem::DependencyInstaller
|
|
106
104
|
@errors = []
|
107
105
|
end
|
108
106
|
|
109
|
-
##
|
110
|
-
# Creates an AvailableSet to install from based on +dep_or_name+ and
|
111
|
-
# +version+
|
112
|
-
|
113
|
-
def available_set_for(dep_or_name, version) # :nodoc:
|
114
|
-
if String === dep_or_name
|
115
|
-
Gem::Deprecate.skip_during do
|
116
|
-
find_spec_by_name_and_version dep_or_name, version, @prerelease
|
117
|
-
end
|
118
|
-
else
|
119
|
-
dep = dep_or_name.dup
|
120
|
-
dep.prerelease = @prerelease
|
121
|
-
@available = Gem::Deprecate.skip_during do
|
122
|
-
find_gems_with_sources dep
|
123
|
-
end
|
124
|
-
end
|
125
|
-
|
126
|
-
@available.pick_best!
|
127
|
-
end
|
128
|
-
deprecate :available_set_for, :none, 2019, 12
|
129
|
-
|
130
107
|
##
|
131
108
|
# Indicated, based on the requested domain, if local
|
132
109
|
# gems should be considered.
|
@@ -216,57 +193,7 @@ class Gem::DependencyInstaller
|
|
216
193
|
|
217
194
|
set
|
218
195
|
end
|
219
|
-
|
220
|
-
|
221
|
-
##
|
222
|
-
# Finds a spec and the source_uri it came from for gem +gem_name+ and
|
223
|
-
# +version+. Returns an Array of specs and sources required for
|
224
|
-
# installation of the gem.
|
225
|
-
|
226
|
-
def find_spec_by_name_and_version(gem_name,
|
227
|
-
version = Gem::Requirement.default,
|
228
|
-
prerelease = false)
|
229
|
-
set = Gem::AvailableSet.new
|
230
|
-
|
231
|
-
if consider_local?
|
232
|
-
if gem_name =~ /\.gem$/ and File.file? gem_name
|
233
|
-
src = Gem::Source::SpecificFile.new(gem_name)
|
234
|
-
set.add src.spec, src
|
235
|
-
elsif gem_name =~ /\.gem$/
|
236
|
-
Dir[gem_name].each do |name|
|
237
|
-
begin
|
238
|
-
src = Gem::Source::SpecificFile.new name
|
239
|
-
set.add src.spec, src
|
240
|
-
rescue Gem::Package::FormatError
|
241
|
-
end
|
242
|
-
end
|
243
|
-
else
|
244
|
-
local = Gem::Source::Local.new
|
245
|
-
|
246
|
-
if s = local.find_gem(gem_name, version)
|
247
|
-
set.add s, local
|
248
|
-
end
|
249
|
-
end
|
250
|
-
end
|
251
|
-
|
252
|
-
if set.empty?
|
253
|
-
dep = Gem::Dependency.new gem_name, version
|
254
|
-
dep.prerelease = true if prerelease
|
255
|
-
|
256
|
-
set = Gem::Deprecate.skip_during do
|
257
|
-
find_gems_with_sources(dep, true)
|
258
|
-
end
|
259
|
-
|
260
|
-
set.match_platform!
|
261
|
-
end
|
262
|
-
|
263
|
-
if set.empty?
|
264
|
-
raise Gem::SpecificGemNotFoundException.new(gem_name, version, @errors)
|
265
|
-
end
|
266
|
-
|
267
|
-
@available = set
|
268
|
-
end
|
269
|
-
deprecate :find_spec_by_name_and_version, :none, 2019, 12
|
196
|
+
rubygems_deprecate :find_gems_with_sources
|
270
197
|
|
271
198
|
def in_background(what) # :nodoc:
|
272
199
|
fork_happened = false
|
@@ -407,5 +334,4 @@ class Gem::DependencyInstaller
|
|
407
334
|
|
408
335
|
request_set
|
409
336
|
end
|
410
|
-
|
411
337
|
end
|
@@ -17,7 +17,6 @@ require 'rubygems/deprecate'
|
|
17
17
|
# this class necessary anymore? Especially #ok?, #why_not_ok?
|
18
18
|
|
19
19
|
class Gem::DependencyList
|
20
|
-
|
21
20
|
attr_reader :specs
|
22
21
|
|
23
22
|
include Enumerable
|
@@ -101,11 +100,11 @@ class Gem::DependencyList
|
|
101
100
|
end
|
102
101
|
|
103
102
|
def find_name(full_name)
|
104
|
-
@specs.find {
|
103
|
+
@specs.find {|spec| spec.full_name == full_name }
|
105
104
|
end
|
106
105
|
|
107
106
|
def inspect # :nodoc:
|
108
|
-
"%s %p>" % [super[0..-2], map {
|
107
|
+
"%s %p>" % [super[0..-2], map {|s| s.full_name }]
|
109
108
|
end
|
110
109
|
|
111
110
|
##
|
@@ -116,7 +115,7 @@ class Gem::DependencyList
|
|
116
115
|
end
|
117
116
|
|
118
117
|
def why_not_ok?(quick = false)
|
119
|
-
unsatisfied = Hash.new {
|
118
|
+
unsatisfied = Hash.new {|h,k| h[k] = [] }
|
120
119
|
each do |spec|
|
121
120
|
spec.runtime_dependencies.each do |dep|
|
122
121
|
inst = Gem::Specification.any? do |installed_spec|
|
@@ -124,7 +123,7 @@ class Gem::DependencyList
|
|
124
123
|
dep.requirement.satisfied_by? installed_spec.version
|
125
124
|
end
|
126
125
|
|
127
|
-
unless inst or @specs.find {
|
126
|
+
unless inst or @specs.find {|s| s.satisfies_requirement? dep }
|
128
127
|
unsatisfied[spec.name] << dep
|
129
128
|
return unsatisfied if quick
|
130
129
|
end
|
@@ -184,7 +183,7 @@ class Gem::DependencyList
|
|
184
183
|
# Removes the gemspec matching +full_name+ from the dependency list
|
185
184
|
|
186
185
|
def remove_by_name(full_name)
|
187
|
-
@specs.delete_if {
|
186
|
+
@specs.delete_if {|spec| spec.full_name == full_name }
|
188
187
|
end
|
189
188
|
|
190
189
|
##
|
@@ -192,7 +191,7 @@ class Gem::DependencyList
|
|
192
191
|
# gemspecs that have a dependency satisfied by the named gemspec.
|
193
192
|
|
194
193
|
def spec_predecessors
|
195
|
-
result = Hash.new {
|
194
|
+
result = Hash.new {|h,k| h[k] = [] }
|
196
195
|
|
197
196
|
specs = @specs.sort.reverse
|
198
197
|
|
@@ -238,7 +237,6 @@ class Gem::DependencyList
|
|
238
237
|
# +ignored+.
|
239
238
|
|
240
239
|
def active_count(specs, ignored)
|
241
|
-
specs.count {
|
240
|
+
specs.count {|spec| ignored[spec.full_name].nil? }
|
242
241
|
end
|
243
|
-
|
244
242
|
end
|
data/lib/rubygems/deprecate.rb
CHANGED
@@ -41,6 +41,10 @@ module Gem::Deprecate
|
|
41
41
|
Gem::Deprecate.skip = original
|
42
42
|
end
|
43
43
|
|
44
|
+
def self.next_rubygems_major_version # :nodoc:
|
45
|
+
Gem::Version.new(Gem.rubygems_version.segments.first).bump
|
46
|
+
end
|
47
|
+
|
44
48
|
##
|
45
49
|
# Simple deprecation method that deprecates +name+ by wrapping it up
|
46
50
|
# in a dummy method. It warns on each call to the dummy method
|
@@ -65,6 +69,47 @@ module Gem::Deprecate
|
|
65
69
|
end
|
66
70
|
end
|
67
71
|
|
68
|
-
|
72
|
+
##
|
73
|
+
# Simple deprecation method that deprecates +name+ by wrapping it up
|
74
|
+
# in a dummy method. It warns on each call to the dummy method
|
75
|
+
# telling the user of +repl+ (unless +repl+ is :none) and the
|
76
|
+
# Rubygems version that it is planned to go away.
|
77
|
+
|
78
|
+
def rubygems_deprecate(name, replacement=:none)
|
79
|
+
class_eval do
|
80
|
+
old = "_deprecated_#{name}"
|
81
|
+
alias_method old, name
|
82
|
+
define_method name do |*args, &block|
|
83
|
+
klass = self.kind_of? Module
|
84
|
+
target = klass ? "#{self}." : "#{self.class}#"
|
85
|
+
msg = [ "NOTE: #{target}#{name} is deprecated",
|
86
|
+
replacement == :none ? " with no replacement" : "; use #{replacement} instead",
|
87
|
+
". It will be removed in Rubygems #{Gem::Deprecate.next_rubygems_major_version}",
|
88
|
+
"\n#{target}#{name} called from #{Gem.location_of_caller.join(":")}",
|
89
|
+
]
|
90
|
+
warn "#{msg.join}." unless Gem::Deprecate.skip
|
91
|
+
send old, *args, &block
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
# Deprecation method to deprecate Rubygems commands
|
97
|
+
def rubygems_deprecate_command
|
98
|
+
class_eval do
|
99
|
+
define_method "deprecated?" do
|
100
|
+
true
|
101
|
+
end
|
102
|
+
|
103
|
+
define_method "deprecation_warning" do
|
104
|
+
msg = [ "#{self.command} command is deprecated",
|
105
|
+
". It will be removed in Rubygems #{Gem::Deprecate.next_rubygems_major_version}.\n",
|
106
|
+
]
|
107
|
+
|
108
|
+
alert_warning "#{msg.join}" unless Gem::Deprecate.skip
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
module_function :rubygems_deprecate, :rubygems_deprecate_command, :skip_during
|
69
114
|
|
70
115
|
end
|
data/lib/rubygems/doctor.rb
CHANGED
@@ -12,7 +12,6 @@ require 'rubygems/user_interaction'
|
|
12
12
|
# removing the bogus specification.
|
13
13
|
|
14
14
|
class Gem::Doctor
|
15
|
-
|
16
15
|
include Gem::UserInteraction
|
17
16
|
|
18
17
|
##
|
@@ -26,11 +25,12 @@ class Gem::Doctor
|
|
26
25
|
['doc', ''],
|
27
26
|
['extensions', ''],
|
28
27
|
['gems', ''],
|
28
|
+
['plugins', ''],
|
29
29
|
].freeze
|
30
30
|
|
31
31
|
missing =
|
32
32
|
Gem::REPOSITORY_SUBDIRECTORIES.sort -
|
33
|
-
REPOSITORY_EXTENSION_MAP.map {
|
33
|
+
REPOSITORY_EXTENSION_MAP.map {|(k,_)| k }.sort
|
34
34
|
|
35
35
|
raise "Update REPOSITORY_EXTENSION_MAP, missing: #{missing.join ', '}" unless
|
36
36
|
missing.empty?
|
@@ -52,7 +52,7 @@ class Gem::Doctor
|
|
52
52
|
# Specs installed in this gem repository
|
53
53
|
|
54
54
|
def installed_specs # :nodoc:
|
55
|
-
@installed_specs ||= Gem::Specification.map {
|
55
|
+
@installed_specs ||= Gem::Specification.map {|s| s.full_name }
|
56
56
|
end
|
57
57
|
|
58
58
|
##
|
@@ -112,6 +112,7 @@ class Gem::Doctor
|
|
112
112
|
next if installed_specs.include? basename
|
113
113
|
next if /^rubygems-\d/ =~ basename
|
114
114
|
next if 'specifications' == sub_directory and 'default' == basename
|
115
|
+
next if 'plugins' == sub_directory and Gem.plugin_suffix_regexp =~ basename
|
115
116
|
|
116
117
|
type = File.directory?(child) ? 'directory' : 'file'
|
117
118
|
|
@@ -127,5 +128,4 @@ class Gem::Doctor
|
|
127
128
|
rescue Errno::ENOENT
|
128
129
|
# ignore
|
129
130
|
end
|
130
|
-
|
131
131
|
end
|