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
@@ -1,9 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
require 'rubygems'
|
2
3
|
require 'rubygems/source_list'
|
3
4
|
require 'rubygems/test_case'
|
4
5
|
|
5
6
|
class TestGemSourceList < Gem::TestCase
|
6
|
-
|
7
7
|
def setup
|
8
8
|
super
|
9
9
|
|
@@ -115,5 +115,4 @@ class TestGemSourceList < Gem::TestCase
|
|
115
115
|
@sl.delete Gem::Source.new(@uri)
|
116
116
|
assert_equal @sl.sources, []
|
117
117
|
end
|
118
|
-
|
119
118
|
end
|
@@ -5,7 +5,6 @@ require 'rubygems/source'
|
|
5
5
|
require 'fileutils'
|
6
6
|
|
7
7
|
class TestGemSourceLocal < Gem::TestCase
|
8
|
-
|
9
8
|
def setup
|
10
9
|
super
|
11
10
|
|
@@ -73,7 +72,7 @@ class TestGemSourceLocal < Gem::TestCase
|
|
73
72
|
|
74
73
|
@sl.load_specs :released
|
75
74
|
|
76
|
-
inner = [@a, @ap, @b].map {
|
75
|
+
inner = [@a, @ap, @b].map {|t| t.name_tuple }.inspect
|
77
76
|
|
78
77
|
assert_equal "#<Gem::Source::Local specs: #{inner}>", @sl.inspect
|
79
78
|
end
|
@@ -93,16 +92,15 @@ class TestGemSourceLocal < Gem::TestCase
|
|
93
92
|
installed = Gem::Source::Installed.new
|
94
93
|
local = Gem::Source::Local.new
|
95
94
|
|
96
|
-
assert_equal(0, local
|
95
|
+
assert_equal(0, local.<=>(local), 'local <=> local')
|
97
96
|
|
98
|
-
assert_equal(-1, remote
|
99
|
-
assert_equal(1, local
|
97
|
+
assert_equal(-1, remote.<=>(local), 'remote <=> local')
|
98
|
+
assert_equal(1, local.<=>(remote), 'local <=> remote')
|
100
99
|
|
101
|
-
assert_equal(1, installed.<=>(local),
|
102
|
-
assert_equal(-1, local
|
100
|
+
assert_equal(1, installed.<=>(local), 'installed <=> local')
|
101
|
+
assert_equal(-1, local.<=>(installed), 'local <=> installed')
|
103
102
|
|
104
|
-
assert_equal(-1, specific
|
105
|
-
assert_equal(1, local
|
103
|
+
assert_equal(-1, specific.<=>(local), 'specific <=> local')
|
104
|
+
assert_equal(1, local.<=>(specific), 'local <=> specific')
|
106
105
|
end
|
107
|
-
|
108
106
|
end
|
@@ -2,7 +2,6 @@
|
|
2
2
|
require 'rubygems/test_case'
|
3
3
|
|
4
4
|
class TestGemSourceLock < Gem::TestCase
|
5
|
-
|
6
5
|
def test_fetch_spec
|
7
6
|
spec_fetcher do |fetcher|
|
8
7
|
fetcher.spec 'a', 1
|
@@ -59,31 +58,31 @@ class TestGemSourceLock < Gem::TestCase
|
|
59
58
|
lock = Gem::Source::Lock.new git
|
60
59
|
|
61
60
|
assert_equal(1, lock.<=>(git), 'lock <=> git')
|
62
|
-
assert_equal(-1, git
|
61
|
+
assert_equal(-1, git.<=>(lock), 'git <=> lock')
|
63
62
|
end
|
64
63
|
|
65
64
|
def test_spaceship_installed
|
66
65
|
installed = Gem::Source::Installed.new
|
67
66
|
lock = Gem::Source::Lock.new installed
|
68
67
|
|
69
|
-
assert_equal(1, lock
|
70
|
-
assert_equal(-1, installed.<=>(lock),
|
68
|
+
assert_equal(1, lock.<=>(installed), 'lock <=> installed')
|
69
|
+
assert_equal(-1, installed.<=>(lock), 'installed <=> lock')
|
71
70
|
end
|
72
71
|
|
73
72
|
def test_spaceship_local
|
74
73
|
local = Gem::Source::Local.new
|
75
74
|
lock = Gem::Source::Lock.new local # nonsense
|
76
75
|
|
77
|
-
assert_equal(1, lock
|
78
|
-
assert_equal(-1, local.<=>(lock),
|
76
|
+
assert_equal(1, lock.<=>(local), 'lock <=> local')
|
77
|
+
assert_equal(-1, local.<=>(lock), 'local <=> lock')
|
79
78
|
end
|
80
79
|
|
81
80
|
def test_spaceship_remote
|
82
81
|
remote = Gem::Source.new @gem_repo
|
83
82
|
lock = Gem::Source::Lock.new remote
|
84
83
|
|
85
|
-
assert_equal(1, lock
|
86
|
-
assert_equal(-1, remote.<=>(lock),
|
84
|
+
assert_equal(1, lock.<=>(remote), 'lock <=> remote')
|
85
|
+
assert_equal(-1, remote.<=>(lock), 'remote <=> lock')
|
87
86
|
end
|
88
87
|
|
89
88
|
def test_spaceship_specific_file
|
@@ -92,7 +91,7 @@ class TestGemSourceLock < Gem::TestCase
|
|
92
91
|
specific = Gem::Source::SpecificFile.new gem
|
93
92
|
lock = Gem::Source::Lock.new specific # nonsense
|
94
93
|
|
95
|
-
assert_equal(1, lock
|
94
|
+
assert_equal(1, lock.<=>(specific), 'lock <=> specific')
|
96
95
|
assert_equal(-1, specific.<=>(lock), 'specific <=> lock')
|
97
96
|
end
|
98
97
|
|
@@ -100,8 +99,8 @@ class TestGemSourceLock < Gem::TestCase
|
|
100
99
|
vendor = Gem::Source::Vendor.new 'vendor/a'
|
101
100
|
lock = Gem::Source::Lock.new vendor
|
102
101
|
|
103
|
-
assert_equal(1, lock
|
104
|
-
assert_equal(-1, vendor.<=>(lock),
|
102
|
+
assert_equal(1, lock.<=>(vendor), 'lock <=> vendor')
|
103
|
+
assert_equal(-1, vendor.<=>(lock), 'vendor <=> lock')
|
105
104
|
end
|
106
105
|
|
107
106
|
def test_uri
|
@@ -110,5 +109,4 @@ class TestGemSourceLock < Gem::TestCase
|
|
110
109
|
|
111
110
|
assert_equal URI(@gem_repo), lock.uri
|
112
111
|
end
|
113
|
-
|
114
112
|
end
|
@@ -3,7 +3,6 @@ require 'rubygems/test_case'
|
|
3
3
|
require 'rubygems/source'
|
4
4
|
|
5
5
|
class TestGemSourceSpecificFile < Gem::TestCase
|
6
|
-
|
7
6
|
def setup
|
8
7
|
super
|
9
8
|
|
@@ -46,16 +45,16 @@ class TestGemSourceSpecificFile < Gem::TestCase
|
|
46
45
|
installed = Gem::Source::Installed.new
|
47
46
|
local = Gem::Source::Local.new
|
48
47
|
|
49
|
-
assert_equal(0, specific
|
48
|
+
assert_equal(0, specific.<=>(specific), 'specific <=> specific')
|
50
49
|
|
51
|
-
assert_equal(-1, remote
|
52
|
-
assert_equal(1, specific
|
50
|
+
assert_equal(-1, remote.<=>(specific), 'remote <=> specific')
|
51
|
+
assert_equal(1, specific.<=>(remote), 'specific <=> remote')
|
53
52
|
|
54
|
-
assert_equal(-1, specific
|
55
|
-
assert_equal(1, local. <=>(specific), 'local
|
53
|
+
assert_equal(-1, specific.<=>(local), 'specific <=> local')
|
54
|
+
assert_equal(1, local. <=>(specific), 'local <=> specific')
|
56
55
|
|
57
|
-
assert_equal(-1, specific. <=>(installed), 'specific
|
58
|
-
assert_equal(1, installed.<=>(specific),
|
56
|
+
assert_equal(-1, specific. <=>(installed), 'specific <=> installed')
|
57
|
+
assert_equal(1, installed.<=>(specific), 'installed <=> specific')
|
59
58
|
|
60
59
|
a2 = quick_gem 'a', '2'
|
61
60
|
util_build_gem a2
|
@@ -73,5 +72,4 @@ class TestGemSourceSpecificFile < Gem::TestCase
|
|
73
72
|
assert_equal(0, a1_source.<=>(a1_source), 'a1_source <=> a1_source')
|
74
73
|
assert_equal(1, a2_source.<=>(a1_source), 'a2_source <=> a1_source')
|
75
74
|
end
|
76
|
-
|
77
75
|
end
|
@@ -3,7 +3,6 @@ require 'rubygems/test_case'
|
|
3
3
|
require 'rubygems/source'
|
4
4
|
|
5
5
|
class TestGemSourceVendor < Gem::TestCase
|
6
|
-
|
7
6
|
def test_initialize
|
8
7
|
source = Gem::Source::Vendor.new 'vendor/foo'
|
9
8
|
|
@@ -16,16 +15,15 @@ class TestGemSourceVendor < Gem::TestCase
|
|
16
15
|
git = Gem::Source::Git.new 'a', 'a', 'master'
|
17
16
|
installed = Gem::Source::Installed.new
|
18
17
|
|
19
|
-
assert_equal(0, vendor
|
18
|
+
assert_equal(0, vendor.<=>(vendor), 'vendor <=> vendor')
|
20
19
|
|
21
|
-
assert_equal(1, vendor
|
22
|
-
assert_equal(-1, remote
|
20
|
+
assert_equal(1, vendor.<=>(remote), 'vendor <=> remote')
|
21
|
+
assert_equal(-1, remote.<=>(vendor), 'remote <=> vendor')
|
23
22
|
|
24
|
-
assert_equal(1, vendor
|
25
|
-
assert_equal(-1, git
|
23
|
+
assert_equal(1, vendor.<=>(git), 'vendor <=> git')
|
24
|
+
assert_equal(-1, git.<=>(vendor), 'git <=> vendor')
|
26
25
|
|
27
|
-
assert_equal(1, vendor
|
28
|
-
assert_equal(-1, installed.<=>(vendor),
|
26
|
+
assert_equal(1, vendor.<=>(installed), 'vendor <=> installed')
|
27
|
+
assert_equal(-1, installed.<=>(vendor), 'installed <=> vendor')
|
29
28
|
end
|
30
|
-
|
31
29
|
end
|
@@ -3,7 +3,6 @@ require 'rubygems/test_case'
|
|
3
3
|
require 'rubygems/spec_fetcher'
|
4
4
|
|
5
5
|
class TestGemSpecFetcher < Gem::TestCase
|
6
|
-
|
7
6
|
def tuple(*args)
|
8
7
|
Gem::NameTuple.new(*args)
|
9
8
|
end
|
@@ -173,10 +172,19 @@ class TestGemSpecFetcher < Gem::TestCase
|
|
173
172
|
spec_fetcher do|fetcher|
|
174
173
|
fetcher.spec 'example', 1
|
175
174
|
fetcher.spec 'other-example', 1
|
175
|
+
fetcher.spec 'examp', 1
|
176
176
|
end
|
177
177
|
|
178
|
-
suggestions = @sf.suggest_gems_from_name('examplw')
|
178
|
+
suggestions = @sf.suggest_gems_from_name('examplw', :latest, 1)
|
179
179
|
assert_equal ['example'], suggestions
|
180
|
+
|
181
|
+
suggestions = @sf.suggest_gems_from_name('other')
|
182
|
+
assert_equal ['other-example'], suggestions
|
183
|
+
|
184
|
+
suggestions = @sf.suggest_gems_from_name('exam')
|
185
|
+
assert suggestions.any? { ['examp'] }
|
186
|
+
assert suggestions.any? { ['example'] }
|
187
|
+
assert suggestions.any? { ['other-example'] }
|
180
188
|
end
|
181
189
|
|
182
190
|
def test_suggest_gems_from_name_prerelease
|
@@ -313,7 +321,7 @@ class TestGemSpecFetcher < Gem::TestCase
|
|
313
321
|
specs, _ = @sf.available_specs(:prerelease)
|
314
322
|
|
315
323
|
expected = Gem::NameTuple.from_list \
|
316
|
-
[['a',
|
324
|
+
[['a', v('2.a'), Gem::Platform::RUBY]]
|
317
325
|
|
318
326
|
assert_equal expected, specs[@source]
|
319
327
|
end
|
@@ -326,5 +334,4 @@ class TestGemSpecFetcher < Gem::TestCase
|
|
326
334
|
assert_equal({}, specs)
|
327
335
|
assert_kind_of Gem::SourceFetchProblem, errors.first
|
328
336
|
end
|
329
|
-
|
330
337
|
end
|
@@ -9,7 +9,6 @@ require 'rubygems/installer'
|
|
9
9
|
require 'rubygems/platform'
|
10
10
|
|
11
11
|
class TestGemSpecification < Gem::TestCase
|
12
|
-
|
13
12
|
LEGACY_YAML_SPEC = <<-EOF.freeze
|
14
13
|
--- !ruby/object:Gem::Specification
|
15
14
|
rubygems_version: "1.0"
|
@@ -83,6 +82,11 @@ end
|
|
83
82
|
def setup
|
84
83
|
super
|
85
84
|
|
85
|
+
# Setting `@default_source_date_epoch` to `nil` effectively resets the
|
86
|
+
# value used for `Gem.source_date_epoch` whenever `$SOURCE_DATE_EPOCH`
|
87
|
+
# is not set.
|
88
|
+
Gem.instance_variable_set(:'@default_source_date_epoch', nil)
|
89
|
+
|
86
90
|
@a1 = util_spec 'a', '1' do |s|
|
87
91
|
s.executable = 'exec'
|
88
92
|
s.test_file = 'test/suite.rb'
|
@@ -135,12 +139,12 @@ end
|
|
135
139
|
install_specs c1, c2, b1, b2, a1
|
136
140
|
|
137
141
|
a1.activate
|
138
|
-
assert_equal %w
|
142
|
+
assert_equal %w[a-1], loaded_spec_names
|
139
143
|
assert_equal ["b (> 0)"], unresolved_names
|
140
144
|
|
141
145
|
require "d#{$$}"
|
142
146
|
|
143
|
-
assert_equal %w
|
147
|
+
assert_equal %w[a-1 b-2 c-2], loaded_spec_names
|
144
148
|
assert_equal [], unresolved_names
|
145
149
|
end
|
146
150
|
end
|
@@ -182,12 +186,12 @@ end
|
|
182
186
|
install_specs c1, c2, b1, b2, a1
|
183
187
|
|
184
188
|
a1.activate
|
185
|
-
assert_equal %w
|
189
|
+
assert_equal %w[a-1], loaded_spec_names
|
186
190
|
assert_equal ["b (> 0)"], unresolved_names
|
187
191
|
|
188
192
|
require "d#{$$}"
|
189
193
|
|
190
|
-
assert_equal %w
|
194
|
+
assert_equal %w[a-1 b-2 c-2], loaded_spec_names
|
191
195
|
assert_equal [], unresolved_names
|
192
196
|
end
|
193
197
|
end
|
@@ -204,12 +208,12 @@ end
|
|
204
208
|
install_specs c1, b1, a1, a2, c2, b2
|
205
209
|
|
206
210
|
a2.activate
|
207
|
-
assert_equal %w
|
211
|
+
assert_equal %w[a-2], loaded_spec_names
|
208
212
|
assert_equal ["b (> 0)"], unresolved_names
|
209
213
|
|
210
214
|
require "d#{$$}"
|
211
215
|
|
212
|
-
assert_equal %w
|
216
|
+
assert_equal %w[a-2 b-1 c-1], loaded_spec_names
|
213
217
|
assert_equal [], unresolved_names
|
214
218
|
end
|
215
219
|
end
|
@@ -226,12 +230,12 @@ end
|
|
226
230
|
install_specs d1, c1, c2, b1, b2, a1
|
227
231
|
|
228
232
|
a1.activate
|
229
|
-
assert_equal %w
|
233
|
+
assert_equal %w[a-1], loaded_spec_names
|
230
234
|
assert_equal ["b (> 0)"], unresolved_names
|
231
235
|
|
232
236
|
require "d#{$$}"
|
233
237
|
|
234
|
-
assert_equal %w
|
238
|
+
assert_equal %w[a-1 d-1], loaded_spec_names
|
235
239
|
assert_equal ["b (> 0)"], unresolved_names
|
236
240
|
end
|
237
241
|
end
|
@@ -241,7 +245,7 @@ end
|
|
241
245
|
a1 = util_spec "a", "1", "b" => "> 0"
|
242
246
|
b1 = util_spec "b", "1", "c" => ">= 0" # unresolved
|
243
247
|
b2 = util_spec "b", "2", "c" => ">= 0"
|
244
|
-
c1 = util_spec "c", "1", nil, "lib/c#{$$}.rb"
|
248
|
+
c1 = util_spec "c", "1", nil, "lib/c#{$$}.rb" # 1st level
|
245
249
|
c2 = util_spec "c", "2", nil, "lib/c#{$$}.rb"
|
246
250
|
|
247
251
|
install_specs c1, c2, b1, b2, a1
|
@@ -250,7 +254,7 @@ end
|
|
250
254
|
|
251
255
|
require "c#{$$}"
|
252
256
|
|
253
|
-
assert_equal %w
|
257
|
+
assert_equal %w[a-1 b-2 c-2], loaded_spec_names
|
254
258
|
end
|
255
259
|
end
|
256
260
|
|
@@ -259,7 +263,7 @@ end
|
|
259
263
|
a1 = util_spec "a", "1", "b" => "> 0"
|
260
264
|
b1 = util_spec "b", "1", "c" => ">= 0" # unresolved
|
261
265
|
b2 = util_spec "b", "2", "c" => ">= 0"
|
262
|
-
c1 = util_spec "c", "1", "d" => ">= 0"
|
266
|
+
c1 = util_spec "c", "1", "d" => ">= 0" # 1st level
|
263
267
|
c2 = util_spec "c", "2", "d" => ">= 0"
|
264
268
|
d1 = util_spec "d", "1", nil, "lib/d#{$$}.rb" # 2nd level
|
265
269
|
d2 = util_spec "d", "2", nil, "lib/d#{$$}.rb"
|
@@ -270,7 +274,7 @@ end
|
|
270
274
|
|
271
275
|
require "d#{$$}"
|
272
276
|
|
273
|
-
assert_equal %w
|
277
|
+
assert_equal %w[a-1 b-2 c-2 d-2], loaded_spec_names
|
274
278
|
end
|
275
279
|
end
|
276
280
|
|
@@ -291,7 +295,7 @@ end
|
|
291
295
|
|
292
296
|
require "d#{$$}"
|
293
297
|
|
294
|
-
assert_equal %w
|
298
|
+
assert_equal %w[a-1 b-2 c-2 d-2], loaded_spec_names
|
295
299
|
end
|
296
300
|
end
|
297
301
|
|
@@ -313,7 +317,7 @@ end
|
|
313
317
|
|
314
318
|
require "d#{$$}"
|
315
319
|
|
316
|
-
assert_equal %w
|
320
|
+
assert_equal %w[a-1 b-2 c-2 d-2], loaded_spec_names
|
317
321
|
end
|
318
322
|
end
|
319
323
|
|
@@ -331,12 +335,12 @@ end
|
|
331
335
|
install_specs c1, c2, c3, b1, b2, a1, a2, base
|
332
336
|
|
333
337
|
base.activate
|
334
|
-
assert_equal %w
|
338
|
+
assert_equal %w[0-1], loaded_spec_names
|
335
339
|
assert_equal ["A (>= 1)"], unresolved_names
|
336
340
|
|
337
341
|
require "d#{$$}"
|
338
342
|
|
339
|
-
assert_equal %w
|
343
|
+
assert_equal %w[0-1 A-2 b-2 c-2], loaded_spec_names
|
340
344
|
assert_equal [], unresolved_names
|
341
345
|
end
|
342
346
|
end
|
@@ -359,7 +363,7 @@ end
|
|
359
363
|
|
360
364
|
require "d#{$$}"
|
361
365
|
|
362
|
-
assert_includes [%w
|
366
|
+
assert_includes [%w[a-1 b-2 c-3 d-2],%w[a-1 b-2 d-2]], loaded_spec_names
|
363
367
|
end
|
364
368
|
end
|
365
369
|
|
@@ -381,7 +385,7 @@ end
|
|
381
385
|
|
382
386
|
require "d#{$$}"
|
383
387
|
|
384
|
-
assert_includes [%w
|
388
|
+
assert_includes [%w[a-1 b-2 d-2 xc-3], %w[a-1 b-2 d-2]], loaded_spec_names
|
385
389
|
end
|
386
390
|
end
|
387
391
|
|
@@ -510,16 +514,16 @@ end
|
|
510
514
|
require "b/c"
|
511
515
|
end
|
512
516
|
|
513
|
-
assert_equal %w
|
517
|
+
assert_equal %w[a-1 b-1], loaded_spec_names
|
514
518
|
end
|
515
519
|
|
516
520
|
def test_self_activate_via_require_wtf
|
517
521
|
save_loaded_features do
|
518
|
-
a1 = util_spec "a", "1", "b" => "> 0", "d" => "> 0"
|
522
|
+
a1 = util_spec "a", "1", "b" => "> 0", "d" => "> 0" # this
|
519
523
|
b1 = util_spec "b", "1", { "c" => ">= 1" }, "lib/b#{$$}.rb"
|
520
524
|
b2 = util_spec "b", "2", { "c" => ">= 2" }, "lib/b#{$$}.rb" # this
|
521
525
|
c1 = util_spec "c", "1"
|
522
|
-
c2 = util_spec "c", "2"
|
526
|
+
c2 = util_spec "c", "2" # this
|
523
527
|
d1 = util_spec "d", "1", { "c" => "< 2" }, "lib/d#{$$}.rb"
|
524
528
|
d2 = util_spec "d", "2", { "c" => "< 2" }, "lib/d#{$$}.rb" # this
|
525
529
|
|
@@ -527,7 +531,7 @@ end
|
|
527
531
|
|
528
532
|
a1.activate
|
529
533
|
|
530
|
-
assert_equal %w
|
534
|
+
assert_equal %w[a-1], loaded_spec_names
|
531
535
|
assert_equal ["b (> 0)", "d (> 0)"], unresolved_names
|
532
536
|
|
533
537
|
require "b#{$$}"
|
@@ -538,7 +542,7 @@ end
|
|
538
542
|
|
539
543
|
assert_equal "unable to find a version of 'd' to activate", e.message
|
540
544
|
|
541
|
-
assert_equal %w
|
545
|
+
assert_equal %w[a-1 b-2 c-2], loaded_spec_names
|
542
546
|
assert_equal ["d (> 0)"], unresolved_names
|
543
547
|
end
|
544
548
|
end
|
@@ -553,7 +557,7 @@ end
|
|
553
557
|
install_specs c1, c2, b1, b2, a1
|
554
558
|
|
555
559
|
a1.activate
|
556
|
-
assert_equal %w
|
560
|
+
assert_equal %w[a-1 b-1 c-1], loaded_spec_names
|
557
561
|
end
|
558
562
|
|
559
563
|
def test_self_activate_loaded
|
@@ -715,7 +719,7 @@ end
|
|
715
719
|
version
|
716
720
|
]
|
717
721
|
|
718
|
-
actual_value = Gem::Specification.attribute_names.map {
|
722
|
+
actual_value = Gem::Specification.attribute_names.map {|a| a.to_s }.sort
|
719
723
|
|
720
724
|
assert_equal expected_value, actual_value
|
721
725
|
end
|
@@ -790,7 +794,7 @@ bindir:
|
|
790
794
|
op = spec.dependencies.first.requirement.requirements.first.first
|
791
795
|
refute_kind_of YAML::Syck::DefaultKey, op
|
792
796
|
|
793
|
-
refute_match %r
|
797
|
+
refute_match %r{DefaultKey}, spec.to_ruby
|
794
798
|
end
|
795
799
|
|
796
800
|
def test_self_from_yaml_cleans_up_defaultkey
|
@@ -824,7 +828,7 @@ bindir:
|
|
824
828
|
op = spec.dependencies.first.requirement.requirements.first.first
|
825
829
|
refute_kind_of YAML::Syck::DefaultKey, op
|
826
830
|
|
827
|
-
refute_match %r
|
831
|
+
refute_match %r{DefaultKey}, spec.to_ruby
|
828
832
|
end
|
829
833
|
|
830
834
|
def test_self_from_yaml_cleans_up_defaultkey_from_newer_192
|
@@ -858,7 +862,7 @@ bindir:
|
|
858
862
|
op = spec.dependencies.first.requirement.requirements.first.first
|
859
863
|
refute_kind_of YAML::Syck::DefaultKey, op
|
860
864
|
|
861
|
-
refute_match %r
|
865
|
+
refute_match %r{DefaultKey}, spec.to_ruby
|
862
866
|
end
|
863
867
|
|
864
868
|
def test_self_from_yaml_cleans_up_Date_objects
|
@@ -939,7 +943,7 @@ dependencies: []
|
|
939
943
|
assert_equal File.join(@tempdir, 'a-2.gemspec'), spec.loaded_from
|
940
944
|
end
|
941
945
|
|
942
|
-
if RUBY_VERSION < '2.7'
|
946
|
+
if RUBY_ENGINE == 'ruby' and RUBY_VERSION < '2.7'
|
943
947
|
def test_self_load_tainted
|
944
948
|
full_path = @a2.spec_file
|
945
949
|
write_file full_path do |io|
|
@@ -1108,13 +1112,13 @@ dependencies: []
|
|
1108
1112
|
install_specs @a1
|
1109
1113
|
|
1110
1114
|
assert_includes Gem::Specification.all_names, 'a-1'
|
1111
|
-
assert_includes Gem::Specification.stubs.map {
|
1115
|
+
assert_includes Gem::Specification.stubs.map {|s| s.full_name }, 'a-1'
|
1112
1116
|
|
1113
1117
|
uninstall_gem @a1
|
1114
1118
|
Gem::Specification.reset
|
1115
1119
|
|
1116
1120
|
refute_includes Gem::Specification.all_names, 'a-1'
|
1117
|
-
refute_includes Gem::Specification.stubs.map {
|
1121
|
+
refute_includes Gem::Specification.stubs.map {|s| s.full_name }, 'a-1'
|
1118
1122
|
end
|
1119
1123
|
|
1120
1124
|
def test_self_remove_spec_removed
|
@@ -1129,48 +1133,30 @@ dependencies: []
|
|
1129
1133
|
Gem::Specification.reset
|
1130
1134
|
|
1131
1135
|
refute_includes Gem::Specification.all_names, 'a-1'
|
1132
|
-
refute_includes Gem::Specification.stubs.map {
|
1133
|
-
end
|
1134
|
-
|
1135
|
-
def test_self_stubs
|
1136
|
-
Gem.loaded_specs.clear
|
1137
|
-
Gem::Specification.class_variable_set(:@@stubs, nil)
|
1138
|
-
|
1139
|
-
dir_standard_specs = File.join Gem.dir, 'specifications'
|
1140
|
-
dir_default_specs = Gem.default_specifications_dir
|
1141
|
-
|
1142
|
-
# Create gemspecs in three locations used in stubs
|
1143
|
-
loaded_spec = Gem::Specification.new 'a', '3'
|
1144
|
-
Gem.loaded_specs['a'] = loaded_spec
|
1145
|
-
save_gemspec 'a', '2', dir_default_specs
|
1146
|
-
save_gemspec 'a', '1', dir_standard_specs
|
1147
|
-
|
1148
|
-
full_names = ['a-3', 'a-2', 'a-1']
|
1149
|
-
assert_equal full_names, Gem::Specification.stubs.map { |s| s.full_name }
|
1150
|
-
|
1151
|
-
Gem.loaded_specs.delete 'a'
|
1152
|
-
Gem::Specification.class_variable_set(:@@stubs, nil)
|
1136
|
+
refute_includes Gem::Specification.stubs.map {|s| s.full_name }, 'a-1'
|
1153
1137
|
end
|
1154
1138
|
|
1155
|
-
def
|
1139
|
+
def test_self_stubs_for_lazy_loading
|
1156
1140
|
Gem.loaded_specs.clear
|
1157
1141
|
Gem::Specification.class_variable_set(:@@stubs, nil)
|
1158
1142
|
|
1159
1143
|
dir_standard_specs = File.join Gem.dir, 'specifications'
|
1160
|
-
dir_default_specs = Gem.default_specifications_dir
|
1161
|
-
|
1162
|
-
# Create gemspecs in three locations used in stubs
|
1163
|
-
loaded_spec = Gem::Specification.new 'a', '3'
|
1164
|
-
Gem.loaded_specs['a'] = loaded_spec
|
1165
|
-
save_gemspec('a-2', '2', dir_default_specs) { |s| s.name = 'a' }
|
1166
|
-
save_gemspec('a-1', '1', dir_standard_specs) { |s| s.name = 'a' }
|
1167
1144
|
|
1168
|
-
|
1145
|
+
save_gemspec('a-1', '1', dir_standard_specs){|s| s.name = 'a' }
|
1146
|
+
save_gemspec('b-1', '1', dir_standard_specs){|s| s.name = 'b' }
|
1169
1147
|
|
1170
|
-
assert_equal
|
1148
|
+
assert_equal ['a-1'], Gem::Specification.stubs_for('a').map {|s| s.full_name }
|
1171
1149
|
assert_equal 1, Gem::Specification.class_variable_get(:@@stubs_by_name).length
|
1150
|
+
assert_equal ['b-1'], Gem::Specification.stubs_for('b').map {|s| s.full_name }
|
1151
|
+
assert_equal 2, Gem::Specification.class_variable_get(:@@stubs_by_name).length
|
1152
|
+
|
1153
|
+
assert_equal(
|
1154
|
+
Gem::Specification.stubs_for('a').map {|s| s.object_id },
|
1155
|
+
Gem::Specification.stubs_for('a').map {|s| s.object_id }
|
1156
|
+
)
|
1172
1157
|
|
1173
1158
|
Gem.loaded_specs.delete 'a'
|
1159
|
+
Gem.loaded_specs.delete 'b'
|
1174
1160
|
Gem::Specification.class_variable_set(:@@stubs, nil)
|
1175
1161
|
end
|
1176
1162
|
|
@@ -1182,7 +1168,7 @@ dependencies: []
|
|
1182
1168
|
|
1183
1169
|
# create user spec
|
1184
1170
|
user_spec_dir = File.join Gem.user_dir, 'specifications'
|
1185
|
-
FileUtils.mkdir_p(user_spec_dir)
|
1171
|
+
FileUtils.mkdir_p(user_spec_dir) unless Dir.exist? user_spec_dir
|
1186
1172
|
# dirs doesn't include user ?
|
1187
1173
|
Gem::Specification.dirs << user_spec_dir
|
1188
1174
|
|
@@ -1192,7 +1178,7 @@ dependencies: []
|
|
1192
1178
|
|
1193
1179
|
#create specs
|
1194
1180
|
platforms.each do |plat|
|
1195
|
-
spec = Gem::Specification.new(gem, v) {
|
1181
|
+
spec = Gem::Specification.new(gem, v) {|s| s.platform = plat }
|
1196
1182
|
File.open File.join(user_spec_dir, "#{gem}-#{v}-#{plat}.gemspec"), 'w' do |io|
|
1197
1183
|
io.write spec.to_ruby
|
1198
1184
|
end
|
@@ -1383,12 +1369,12 @@ dependencies: []
|
|
1383
1369
|
awesome.add_dependency :gem_name
|
1384
1370
|
end
|
1385
1371
|
|
1386
|
-
assert_equal %w[true gem_name], gem.dependencies.map {
|
1372
|
+
assert_equal %w[true gem_name], gem.dependencies.map {|dep| dep.name }
|
1387
1373
|
end
|
1388
1374
|
|
1389
1375
|
def test_add_dependency_from_existing_dependency
|
1390
1376
|
dep = Gem::Dependency.new("existing_dep", Gem::Requirement.new('> 1'), :runtime)
|
1391
|
-
spec = Gem::Specification.new {
|
1377
|
+
spec = Gem::Specification.new {|s| s.add_dependency dep }
|
1392
1378
|
assert_equal dep, spec.dependencies.first
|
1393
1379
|
end
|
1394
1380
|
|
@@ -1397,7 +1383,7 @@ dependencies: []
|
|
1397
1383
|
awesome.add_development_dependency "monkey"
|
1398
1384
|
end
|
1399
1385
|
|
1400
|
-
monkey = gem.dependencies.detect {
|
1386
|
+
monkey = gem.dependencies.detect {|d| d.name == "monkey" }
|
1401
1387
|
assert_equal(:development, monkey.type)
|
1402
1388
|
end
|
1403
1389
|
|
@@ -1495,7 +1481,7 @@ dependencies: []
|
|
1495
1481
|
default = new_default_spec 'default', 2
|
1496
1482
|
install_default_gems default
|
1497
1483
|
|
1498
|
-
stub = Gem::Specification.stubs.find {
|
1484
|
+
stub = Gem::Specification.stubs.find {|s| s.name == 'default' }
|
1499
1485
|
assert_predicate stub, :default_gem?
|
1500
1486
|
|
1501
1487
|
stub = Gem::Specification.find_all_by_name('default').first
|
@@ -1850,7 +1836,6 @@ dependencies: []
|
|
1850
1836
|
RbConfig::CONFIG['ENABLE_SHARED'], 'no'
|
1851
1837
|
|
1852
1838
|
class << Gem
|
1853
|
-
|
1854
1839
|
alias orig_default_ext_dir_for default_ext_dir_for
|
1855
1840
|
|
1856
1841
|
remove_method :default_ext_dir_for
|
@@ -1858,7 +1843,6 @@ dependencies: []
|
|
1858
1843
|
def Gem.default_ext_dir_for(base_dir)
|
1859
1844
|
'elsewhere'
|
1860
1845
|
end
|
1861
|
-
|
1862
1846
|
end
|
1863
1847
|
|
1864
1848
|
ext_spec
|
@@ -1872,20 +1856,18 @@ dependencies: []
|
|
1872
1856
|
RbConfig::CONFIG['ENABLE_SHARED'] = enable_shared
|
1873
1857
|
|
1874
1858
|
class << Gem
|
1875
|
-
|
1876
1859
|
remove_method :default_ext_dir_for
|
1877
1860
|
|
1878
1861
|
alias default_ext_dir_for orig_default_ext_dir_for
|
1879
|
-
|
1880
1862
|
end
|
1881
1863
|
end
|
1882
1864
|
|
1883
1865
|
def test_files
|
1884
|
-
@a1.files = %w
|
1885
|
-
@a1.test_files = %w
|
1886
|
-
@a1.executables = %w
|
1887
|
-
@a1.extra_rdoc_files = %w
|
1888
|
-
@a1.extensions = %w
|
1866
|
+
@a1.files = %w[files bin/common]
|
1867
|
+
@a1.test_files = %w[test_files bin/common]
|
1868
|
+
@a1.executables = %w[executables common]
|
1869
|
+
@a1.extra_rdoc_files = %w[extra_rdoc_files bin/common]
|
1870
|
+
@a1.extensions = %w[extensions bin/common]
|
1889
1871
|
|
1890
1872
|
expected = %w[
|
1891
1873
|
bin/common
|
@@ -1899,11 +1881,11 @@ dependencies: []
|
|
1899
1881
|
end
|
1900
1882
|
|
1901
1883
|
def test_files_append
|
1902
|
-
@a1.files = %w
|
1903
|
-
@a1.test_files = %w
|
1904
|
-
@a1.executables = %w
|
1905
|
-
@a1.extra_rdoc_files = %w
|
1906
|
-
@a1.extensions = %w
|
1884
|
+
@a1.files = %w[files bin/common]
|
1885
|
+
@a1.test_files = %w[test_files bin/common]
|
1886
|
+
@a1.executables = %w[executables common]
|
1887
|
+
@a1.extra_rdoc_files = %w[extra_rdoc_files bin/common]
|
1888
|
+
@a1.extensions = %w[extensions bin/common]
|
1907
1889
|
|
1908
1890
|
expected = %w[
|
1909
1891
|
bin/common
|
@@ -2166,11 +2148,9 @@ dependencies: []
|
|
2166
2148
|
|
2167
2149
|
def test_require_paths_default_ext_dir_for
|
2168
2150
|
class << Gem
|
2169
|
-
|
2170
2151
|
send :alias_method, :orig_default_ext_dir_for, :default_ext_dir_for
|
2171
2152
|
|
2172
2153
|
remove_method :default_ext_dir_for
|
2173
|
-
|
2174
2154
|
end
|
2175
2155
|
|
2176
2156
|
def Gem.default_ext_dir_for(base_dir)
|
@@ -2186,11 +2166,9 @@ dependencies: []
|
|
2186
2166
|
end
|
2187
2167
|
ensure
|
2188
2168
|
class << Gem
|
2189
|
-
|
2190
2169
|
send :remove_method, :default_ext_dir_for
|
2191
2170
|
send :alias_method, :default_ext_dir_for, :orig_default_ext_dir_for
|
2192
2171
|
send :remove_method, :orig_default_ext_dir_for
|
2193
|
-
|
2194
2172
|
end
|
2195
2173
|
end
|
2196
2174
|
|
@@ -2292,12 +2270,12 @@ dependencies: []
|
|
2292
2270
|
install_specs a1 # , a2, b1, b2, c1, c2
|
2293
2271
|
|
2294
2272
|
a1.activate
|
2295
|
-
assert_equal %w
|
2273
|
+
assert_equal %w[a-1], loaded_spec_names
|
2296
2274
|
assert_equal [], unresolved_names
|
2297
2275
|
|
2298
2276
|
assert require "d#{$$}"
|
2299
2277
|
|
2300
|
-
assert_equal %w
|
2278
|
+
assert_equal %w[a-1], loaded_spec_names
|
2301
2279
|
assert_equal [], unresolved_names
|
2302
2280
|
end
|
2303
2281
|
end
|
@@ -2315,12 +2293,12 @@ dependencies: []
|
|
2315
2293
|
|
2316
2294
|
a1.activate
|
2317
2295
|
c1.activate
|
2318
|
-
assert_equal %w
|
2296
|
+
assert_equal %w[a-1 c-1], loaded_spec_names
|
2319
2297
|
assert_equal ["b (> 0)"], unresolved_names
|
2320
2298
|
|
2321
2299
|
assert require "d#{$$}"
|
2322
2300
|
|
2323
|
-
assert_equal %w
|
2301
|
+
assert_equal %w[a-1 c-1], loaded_spec_names
|
2324
2302
|
assert_equal ["b (> 0)"], unresolved_names
|
2325
2303
|
end
|
2326
2304
|
end
|
@@ -2343,7 +2321,7 @@ dependencies: []
|
|
2343
2321
|
|
2344
2322
|
expected = %w[rake jabber4r pqa]
|
2345
2323
|
|
2346
|
-
assert_equal expected, @c1.runtime_dependencies.map {
|
2324
|
+
assert_equal expected, @c1.runtime_dependencies.map {|d| d.name }
|
2347
2325
|
end
|
2348
2326
|
|
2349
2327
|
def test_spaceship_name
|
@@ -2453,6 +2431,9 @@ end
|
|
2453
2431
|
end
|
2454
2432
|
|
2455
2433
|
def test_to_ruby_with_rsa_key
|
2434
|
+
require 'rubygems/openssl'
|
2435
|
+
skip 'openssl is missing' unless defined?(OpenSSL::PKey::RSA)
|
2436
|
+
|
2456
2437
|
rsa_key = OpenSSL::PKey::RSA.new(2048)
|
2457
2438
|
@a2.signing_key = rsa_key
|
2458
2439
|
ruby_code = @a2.to_ruby
|
@@ -2656,7 +2637,7 @@ end
|
|
2656
2637
|
def test_to_yaml_platform_empty_string
|
2657
2638
|
@a1.instance_variable_set :@original_platform, ''
|
2658
2639
|
|
2659
|
-
assert_match %r
|
2640
|
+
assert_match %r{^platform: ruby$}, @a1.to_yaml
|
2660
2641
|
end
|
2661
2642
|
|
2662
2643
|
def test_to_yaml_platform_legacy
|
@@ -2674,7 +2655,7 @@ end
|
|
2674
2655
|
def test_to_yaml_platform_nil
|
2675
2656
|
@a1.instance_variable_set :@original_platform, nil
|
2676
2657
|
|
2677
|
-
assert_match %r
|
2658
|
+
assert_match %r{^platform: ruby$}, @a1.to_yaml
|
2678
2659
|
end
|
2679
2660
|
|
2680
2661
|
def test_validate
|
@@ -2718,7 +2699,7 @@ end
|
|
2718
2699
|
@a1.validate
|
2719
2700
|
end
|
2720
2701
|
|
2721
|
-
assert_equal %
|
2702
|
+
assert_equal %("#{f}" or "#{t}" is not an author), e.message
|
2722
2703
|
|
2723
2704
|
@a1.authors = ["#{t} (who is writing this software)"]
|
2724
2705
|
|
@@ -2726,7 +2707,7 @@ end
|
|
2726
2707
|
@a1.validate
|
2727
2708
|
end
|
2728
2709
|
|
2729
|
-
assert_equal %
|
2710
|
+
assert_equal %("#{f}" or "#{t}" is not an author), e.message
|
2730
2711
|
end
|
2731
2712
|
end
|
2732
2713
|
|
@@ -2784,7 +2765,7 @@ end
|
|
2784
2765
|
add_runtime_dependency 'l', '~> 1.2', '> 1.2.3'
|
2785
2766
|
#{w}: open-ended dependency on o (>= 0) is not recommended
|
2786
2767
|
use a bounded requirement, such as '~> x.y'
|
2787
|
-
#{w}: See
|
2768
|
+
#{w}: See https://guides.rubygems.org/specification-reference/ for help
|
2788
2769
|
EXPECTED
|
2789
2770
|
|
2790
2771
|
assert_equal expected, @ui.error, 'warning'
|
@@ -2816,7 +2797,7 @@ duplicate dependency on c (>= 1.2.3, development), (~> 1.2) use:
|
|
2816
2797
|
end
|
2817
2798
|
|
2818
2799
|
assert_equal <<-EXPECTED, @ui.error
|
2819
|
-
#{w}: See
|
2800
|
+
#{w}: See https://guides.rubygems.org/specification-reference/ for help
|
2820
2801
|
EXPECTED
|
2821
2802
|
end
|
2822
2803
|
end
|
@@ -2851,6 +2832,37 @@ duplicate dependency on c (>= 1.2.3, development), (~> 1.2) use:
|
|
2851
2832
|
end
|
2852
2833
|
end
|
2853
2834
|
|
2835
|
+
def test_validate_rake_extension_have_rake_dependency_warning
|
2836
|
+
util_setup_validate
|
2837
|
+
|
2838
|
+
Dir.chdir @tempdir do
|
2839
|
+
@a1.extensions = ['Rakefile']
|
2840
|
+
File.write File.join(@tempdir, 'Rakefile'), ''
|
2841
|
+
|
2842
|
+
use_ui @ui do
|
2843
|
+
@a1.validate
|
2844
|
+
end
|
2845
|
+
|
2846
|
+
assert_match(/add rake as a dependency/, @ui.error)
|
2847
|
+
end
|
2848
|
+
end
|
2849
|
+
|
2850
|
+
def test_validate_rake_extension_have_rake_dependency_no_warning
|
2851
|
+
util_setup_validate
|
2852
|
+
|
2853
|
+
Dir.chdir @tempdir do
|
2854
|
+
@a1.extensions = ['Rakefile']
|
2855
|
+
@a1.add_runtime_dependency 'rake'
|
2856
|
+
File.write File.join(@tempdir, 'Rakefile'), ''
|
2857
|
+
|
2858
|
+
use_ui @ui do
|
2859
|
+
@a1.validate
|
2860
|
+
end
|
2861
|
+
|
2862
|
+
refute_match(/add rake as a dependency/, @ui.error)
|
2863
|
+
end
|
2864
|
+
end
|
2865
|
+
|
2854
2866
|
def test_validate_description
|
2855
2867
|
util_setup_validate
|
2856
2868
|
|
@@ -2878,7 +2890,7 @@ duplicate dependency on c (>= 1.2.3, development), (~> 1.2) use:
|
|
2878
2890
|
@a1.validate
|
2879
2891
|
end
|
2880
2892
|
|
2881
|
-
assert_equal %
|
2893
|
+
assert_equal %("#{f}" or "#{t}" is not a description), e.message
|
2882
2894
|
|
2883
2895
|
@a1.description = "#{t} (describe your package)"
|
2884
2896
|
|
@@ -2886,7 +2898,7 @@ duplicate dependency on c (>= 1.2.3, development), (~> 1.2) use:
|
|
2886
2898
|
@a1.validate
|
2887
2899
|
end
|
2888
2900
|
|
2889
|
-
assert_equal %
|
2901
|
+
assert_equal %("#{f}" or "#{t}" is not a description), e.message
|
2890
2902
|
end
|
2891
2903
|
end
|
2892
2904
|
|
@@ -2900,7 +2912,7 @@ duplicate dependency on c (>= 1.2.3, development), (~> 1.2) use:
|
|
2900
2912
|
@a1.validate
|
2901
2913
|
end
|
2902
2914
|
|
2903
|
-
assert_equal %
|
2915
|
+
assert_equal %("#{f}" or "#{t}" is not an email), e.message
|
2904
2916
|
|
2905
2917
|
@a1.email = "#{t} (your e-mail)"
|
2906
2918
|
|
@@ -2908,7 +2920,7 @@ duplicate dependency on c (>= 1.2.3, development), (~> 1.2) use:
|
|
2908
2920
|
@a1.validate
|
2909
2921
|
end
|
2910
2922
|
|
2911
|
-
assert_equal %
|
2923
|
+
assert_equal %("#{f}" or "#{t}" is not an email), e.message
|
2912
2924
|
end
|
2913
2925
|
end
|
2914
2926
|
|
@@ -2927,7 +2939,7 @@ duplicate dependency on c (>= 1.2.3, development), (~> 1.2) use:
|
|
2927
2939
|
end
|
2928
2940
|
end
|
2929
2941
|
|
2930
|
-
assert_match 'See
|
2942
|
+
assert_match 'See https://guides.rubygems.org/specification-reference/ for help', @ui.error
|
2931
2943
|
end
|
2932
2944
|
|
2933
2945
|
def test_validate_executables
|
@@ -3022,8 +3034,8 @@ Please report a bug if this causes problems.
|
|
3022
3034
|
|
3023
3035
|
specification.define_singleton_method(:find_all_by_name) do |dep_name|
|
3024
3036
|
[
|
3025
|
-
specification.new {
|
3026
|
-
specification.new {
|
3037
|
+
specification.new {|s| s.name = "z", s.version = Gem::Version.new("1") },
|
3038
|
+
specification.new {|s| s.name = "z", s.version = Gem::Version.new("2") }
|
3027
3039
|
]
|
3028
3040
|
end
|
3029
3041
|
|
@@ -3042,6 +3054,13 @@ Please report a bug if this causes problems.
|
|
3042
3054
|
end
|
3043
3055
|
end
|
3044
3056
|
|
3057
|
+
def test_duplicate_runtime_dependency
|
3058
|
+
expected = "WARNING: duplicated b dependency [\"~> 3.0\", \"~> 3.0\"]\n"
|
3059
|
+
assert_output nil, expected do
|
3060
|
+
@a1.add_runtime_dependency "b", "~> 3.0", "~> 3.0"
|
3061
|
+
end
|
3062
|
+
end
|
3063
|
+
|
3045
3064
|
def set_orig(cls)
|
3046
3065
|
s_cls = cls.singleton_class
|
3047
3066
|
s_cls.send :alias_method, :orig_unresolved_deps , :unresolved_deps
|
@@ -3100,7 +3119,7 @@ Please report a bug if this causes problems.
|
|
3100
3119
|
|
3101
3120
|
assert_equal '"ftp://rubygems.org" is not a valid HTTP URI', e.message
|
3102
3121
|
|
3103
|
-
@a1.homepage = '
|
3122
|
+
@a1.homepage = 'https://rubygems.org/'
|
3104
3123
|
assert_equal true, @a1.validate
|
3105
3124
|
|
3106
3125
|
@a1.homepage = 'https://rubygems.org'
|
@@ -3117,10 +3136,36 @@ Please report a bug if this causes problems.
|
|
3117
3136
|
@a1.validate
|
3118
3137
|
end
|
3119
3138
|
|
3120
|
-
assert_match <<-
|
3139
|
+
assert_match <<-WARNING, @ui.error
|
3121
3140
|
WARNING: licenses is empty, but is recommended. Use a license identifier from
|
3122
3141
|
http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
|
3123
|
-
|
3142
|
+
WARNING
|
3143
|
+
end
|
3144
|
+
|
3145
|
+
def test_validate_license_in_a_non_packaging_context
|
3146
|
+
util_setup_validate
|
3147
|
+
|
3148
|
+
use_ui @ui do
|
3149
|
+
@a1.licenses.clear
|
3150
|
+
@a1.validate(false)
|
3151
|
+
end
|
3152
|
+
|
3153
|
+
assert_empty @ui.error
|
3154
|
+
end
|
3155
|
+
|
3156
|
+
def test_removed_methods
|
3157
|
+
assert_equal Gem::Specification::REMOVED_METHODS, [:rubyforge_project=]
|
3158
|
+
end
|
3159
|
+
|
3160
|
+
def test_validate_removed_rubyforge_project
|
3161
|
+
util_setup_validate
|
3162
|
+
|
3163
|
+
use_ui @ui do
|
3164
|
+
@a1.rubyforge_project = 'invalid-attribute'
|
3165
|
+
@a1.validate
|
3166
|
+
end
|
3167
|
+
|
3168
|
+
assert_match "rubyforge_project= is deprecated", @ui.error
|
3124
3169
|
end
|
3125
3170
|
|
3126
3171
|
def test_validate_license_values
|
@@ -3131,10 +3176,10 @@ http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
|
|
3131
3176
|
@a1.validate
|
3132
3177
|
end
|
3133
3178
|
|
3134
|
-
assert_match <<-
|
3179
|
+
assert_match <<-WARNING, @ui.error
|
3135
3180
|
WARNING: license value 'BSD' is invalid. Use a license identifier from
|
3136
3181
|
http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
|
3137
|
-
|
3182
|
+
WARNING
|
3138
3183
|
end
|
3139
3184
|
|
3140
3185
|
def test_validate_license_values_plus
|
@@ -3178,14 +3223,14 @@ http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
|
|
3178
3223
|
@a1.validate
|
3179
3224
|
end
|
3180
3225
|
|
3181
|
-
assert_match <<-
|
3226
|
+
assert_match <<-WARNING, @ui.error
|
3182
3227
|
WARNING: license value 'GPL-2.0+ FOO' is invalid. Use a license identifier from
|
3183
3228
|
http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
|
3184
|
-
|
3185
|
-
assert_match <<-
|
3229
|
+
WARNING
|
3230
|
+
assert_match <<-WARNING, @ui.error
|
3186
3231
|
WARNING: license value 'GPL-2.0 FOO' is invalid. Use a license identifier from
|
3187
3232
|
http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
|
3188
|
-
|
3233
|
+
WARNING
|
3189
3234
|
end
|
3190
3235
|
|
3191
3236
|
def test_validate_license_with_invalid_exception
|
@@ -3196,10 +3241,10 @@ http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
|
|
3196
3241
|
@a1.validate
|
3197
3242
|
end
|
3198
3243
|
|
3199
|
-
assert_match <<-
|
3244
|
+
assert_match <<-WARNING, @ui.error
|
3200
3245
|
WARNING: license value 'GPL-2.0+ WITH Autocofn-exception-2.0' is invalid. Use a license identifier from
|
3201
3246
|
http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
|
3202
|
-
|
3247
|
+
WARNING
|
3203
3248
|
end
|
3204
3249
|
|
3205
3250
|
def test_validate_license_gives_suggestions
|
@@ -3210,11 +3255,11 @@ http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
|
|
3210
3255
|
@a1.validate
|
3211
3256
|
end
|
3212
3257
|
|
3213
|
-
assert_match <<-
|
3258
|
+
assert_match <<-WARNING, @ui.error
|
3214
3259
|
WARNING: license value 'ruby' is invalid. Use a license identifier from
|
3215
3260
|
http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
|
3216
3261
|
Did you mean 'Ruby'?
|
3217
|
-
|
3262
|
+
WARNING
|
3218
3263
|
end
|
3219
3264
|
|
3220
3265
|
def test_validate_empty_files
|
@@ -3310,7 +3355,7 @@ Did you mean 'Ruby'?
|
|
3310
3355
|
spec.validate
|
3311
3356
|
end
|
3312
3357
|
|
3313
|
-
assert_match %r
|
3358
|
+
assert_match %r{^#{name}}, e.message
|
3314
3359
|
end
|
3315
3360
|
end
|
3316
3361
|
end
|
@@ -3410,7 +3455,7 @@ Did you mean 'Ruby'?
|
|
3410
3455
|
@a1.validate
|
3411
3456
|
end
|
3412
3457
|
|
3413
|
-
assert_equal %
|
3458
|
+
assert_equal %("#{f}" or "#{t}" is not a summary), e.message
|
3414
3459
|
|
3415
3460
|
@a1.summary = "#{t} (describe your package)"
|
3416
3461
|
|
@@ -3418,7 +3463,7 @@ Did you mean 'Ruby'?
|
|
3418
3463
|
@a1.validate
|
3419
3464
|
end
|
3420
3465
|
|
3421
|
-
assert_equal %
|
3466
|
+
assert_equal %("#{f}" or "#{t}" is not a summary), e.message
|
3422
3467
|
end
|
3423
3468
|
end
|
3424
3469
|
|
@@ -3430,7 +3475,7 @@ Did you mean 'Ruby'?
|
|
3430
3475
|
@a1.validate
|
3431
3476
|
end
|
3432
3477
|
|
3433
|
-
assert_match 'See
|
3478
|
+
assert_match 'See https://guides.rubygems.org/specification-reference/ for help', @ui.error
|
3434
3479
|
end
|
3435
3480
|
|
3436
3481
|
def test_version
|
@@ -3532,7 +3577,8 @@ Did you mean 'Ruby'?
|
|
3532
3577
|
s.metadata = {
|
3533
3578
|
"one" => "two",
|
3534
3579
|
"home" => "three",
|
3535
|
-
"homepage_uri" => "https://example.com/user/repo"
|
3580
|
+
"homepage_uri" => "https://example.com/user/repo",
|
3581
|
+
"funding_uri" => "https://example.com/donate"
|
3536
3582
|
}
|
3537
3583
|
end
|
3538
3584
|
|
@@ -3817,12 +3863,17 @@ end
|
|
3817
3863
|
FileUtils.mkdir_p "test"
|
3818
3864
|
FileUtils.mkdir_p "bin"
|
3819
3865
|
|
3820
|
-
|
3821
|
-
|
3822
|
-
|
3866
|
+
begin
|
3867
|
+
umask_orig = File.umask(2)
|
3868
|
+
FileUtils.touch File.join("ext", "a", "extconf.rb")
|
3869
|
+
FileUtils.touch File.join("lib", "code.rb")
|
3870
|
+
FileUtils.touch File.join("test", "suite.rb")
|
3823
3871
|
|
3824
|
-
|
3825
|
-
|
3872
|
+
File.open "bin/exec", "w", 0755 do |fp|
|
3873
|
+
fp.puts "#!#{Gem.ruby}"
|
3874
|
+
end
|
3875
|
+
ensure
|
3876
|
+
File.umask(umask_orig)
|
3826
3877
|
end
|
3827
3878
|
end
|
3828
3879
|
end
|
@@ -3876,5 +3927,4 @@ end
|
|
3876
3927
|
ensure
|
3877
3928
|
$VERBOSE = old_verbose
|
3878
3929
|
end
|
3879
|
-
|
3880
3930
|
end
|