rubygems-update 3.3.18 → 3.3.22
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/CHANGELOG.md +65 -0
- data/Manifest.txt +11 -0
- data/bin/gem +2 -2
- data/bin/update_rubygems +4 -4
- data/bundler/CHANGELOG.md +100 -0
- data/bundler/UPGRADING.md +11 -4
- data/bundler/bundler.gemspec +6 -8
- data/bundler/lib/bundler/build_metadata.rb +2 -2
- data/bundler/lib/bundler/cli/common.rb +1 -0
- data/bundler/lib/bundler/cli/install.rb +5 -2
- data/bundler/lib/bundler/cli/outdated.rb +12 -3
- data/bundler/lib/bundler/cli/platform.rb +1 -1
- data/bundler/lib/bundler/cli.rb +7 -4
- data/bundler/lib/bundler/current_ruby.rb +14 -5
- data/bundler/lib/bundler/definition.rb +102 -31
- data/bundler/lib/bundler/dependency.rb +18 -85
- data/bundler/lib/bundler/dsl.rb +2 -2
- data/bundler/lib/bundler/endpoint_specification.rb +2 -13
- data/bundler/lib/bundler/feature_flag.rb +0 -1
- data/bundler/lib/bundler/fetcher.rb +6 -6
- data/bundler/lib/bundler/gem_helpers.rb +7 -1
- data/bundler/lib/bundler/gem_version_promoter.rb +8 -18
- data/bundler/lib/bundler/index.rb +10 -12
- data/bundler/lib/bundler/injector.rb +2 -1
- data/bundler/lib/bundler/inline.rb +1 -1
- data/bundler/lib/bundler/installer/standalone.rb +1 -1
- data/bundler/lib/bundler/installer.rb +14 -12
- data/bundler/lib/bundler/lazy_specification.rb +30 -23
- data/bundler/lib/bundler/lockfile_generator.rb +1 -1
- data/bundler/lib/bundler/man/bundle-add.1 +6 -2
- data/bundler/lib/bundler/man/bundle-add.1.ronn +4 -1
- data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
- data/bundler/lib/bundler/man/bundle-cache.1 +7 -1
- data/bundler/lib/bundler/man/bundle-cache.1.ronn +7 -0
- data/bundler/lib/bundler/man/bundle-check.1 +1 -1
- data/bundler/lib/bundler/man/bundle-clean.1 +1 -1
- data/bundler/lib/bundler/man/bundle-config.1 +25 -6
- data/bundler/lib/bundler/man/bundle-config.1.ronn +16 -6
- data/bundler/lib/bundler/man/bundle-console.1 +53 -0
- data/bundler/lib/bundler/man/bundle-console.1.ronn +44 -0
- data/bundler/lib/bundler/man/bundle-doctor.1 +1 -1
- data/bundler/lib/bundler/man/bundle-exec.1 +2 -2
- data/bundler/lib/bundler/man/bundle-exec.1.ronn +1 -1
- data/bundler/lib/bundler/man/bundle-gem.1 +1 -1
- data/bundler/lib/bundler/man/bundle-help.1 +13 -0
- data/bundler/lib/bundler/man/bundle-help.1.ronn +12 -0
- data/bundler/lib/bundler/man/bundle-info.1 +1 -1
- data/bundler/lib/bundler/man/bundle-init.1 +1 -1
- data/bundler/lib/bundler/man/bundle-inject.1 +5 -2
- data/bundler/lib/bundler/man/bundle-inject.1.ronn +3 -1
- data/bundler/lib/bundler/man/bundle-install.1 +5 -1
- data/bundler/lib/bundler/man/bundle-install.1.ronn +6 -0
- data/bundler/lib/bundler/man/bundle-list.1 +1 -1
- data/bundler/lib/bundler/man/bundle-lock.1 +1 -1
- data/bundler/lib/bundler/man/bundle-open.1 +1 -1
- data/bundler/lib/bundler/man/bundle-outdated.1 +1 -1
- data/bundler/lib/bundler/man/bundle-platform.1 +16 -6
- data/bundler/lib/bundler/man/bundle-platform.1.ronn +14 -7
- data/bundler/lib/bundler/man/bundle-plugin.1 +81 -0
- data/bundler/lib/bundler/man/bundle-plugin.1.ronn +59 -0
- data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
- data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
- data/bundler/lib/bundler/man/bundle-show.1 +1 -1
- data/bundler/lib/bundler/man/bundle-update.1 +1 -1
- data/bundler/lib/bundler/man/bundle-version.1 +35 -0
- data/bundler/lib/bundler/man/bundle-version.1.ronn +24 -0
- data/bundler/lib/bundler/man/bundle-viz.1 +4 -1
- data/bundler/lib/bundler/man/bundle-viz.1.ronn +2 -0
- data/bundler/lib/bundler/man/bundle.1 +15 -10
- data/bundler/lib/bundler/man/bundle.1.ronn +12 -7
- data/bundler/lib/bundler/man/gemfile.5 +23 -47
- data/bundler/lib/bundler/man/gemfile.5.ronn +32 -43
- data/bundler/lib/bundler/man/index.txt +4 -0
- data/bundler/lib/bundler/match_metadata.rb +13 -0
- data/bundler/lib/bundler/match_remote_metadata.rb +29 -0
- data/bundler/lib/bundler/plugin.rb +2 -0
- data/bundler/lib/bundler/remote_specification.rb +6 -11
- data/bundler/lib/bundler/resolver/base.rb +50 -0
- data/bundler/lib/bundler/resolver/spec_group.rb +11 -8
- data/bundler/lib/bundler/resolver.rb +95 -90
- data/bundler/lib/bundler/ruby_dsl.rb +1 -1
- data/bundler/lib/bundler/ruby_version.rb +5 -5
- data/bundler/lib/bundler/rubygems_ext.rb +52 -1
- data/bundler/lib/bundler/rubygems_gem_installer.rb +19 -12
- data/bundler/lib/bundler/settings.rb +1 -1
- data/bundler/lib/bundler/source/metadata.rb +1 -1
- data/bundler/lib/bundler/source_list.rb +4 -0
- data/bundler/lib/bundler/spec_set.rb +48 -33
- data/bundler/lib/bundler/version.rb +1 -1
- data/bundler/lib/bundler.rb +3 -3
- data/lib/rubygems/available_set.rb +3 -3
- data/lib/rubygems/basic_specification.rb +4 -4
- data/lib/rubygems/command.rb +25 -25
- data/lib/rubygems/command_manager.rb +9 -9
- data/lib/rubygems/commands/build_command.rb +8 -8
- data/lib/rubygems/commands/cert_command.rb +33 -33
- data/lib/rubygems/commands/check_command.rb +20 -20
- data/lib/rubygems/commands/cleanup_command.rb +17 -17
- data/lib/rubygems/commands/contents_command.rb +13 -13
- data/lib/rubygems/commands/dependency_command.rb +16 -16
- data/lib/rubygems/commands/environment_command.rb +5 -5
- data/lib/rubygems/commands/fetch_command.rb +8 -8
- data/lib/rubygems/commands/generate_index_command.rb +17 -17
- data/lib/rubygems/commands/help_command.rb +3 -3
- data/lib/rubygems/commands/info_command.rb +3 -3
- data/lib/rubygems/commands/install_command.rb +20 -20
- data/lib/rubygems/commands/list_command.rb +3 -3
- data/lib/rubygems/commands/lock_command.rb +4 -4
- data/lib/rubygems/commands/mirror_command.rb +3 -3
- data/lib/rubygems/commands/open_command.rb +9 -9
- data/lib/rubygems/commands/outdated_command.rb +5 -5
- data/lib/rubygems/commands/owner_command.rb +11 -11
- data/lib/rubygems/commands/pristine_command.rb +36 -36
- data/lib/rubygems/commands/push_command.rb +8 -8
- data/lib/rubygems/commands/query_command.rb +8 -8
- data/lib/rubygems/commands/rdoc_command.rb +17 -17
- data/lib/rubygems/commands/search_command.rb +3 -3
- data/lib/rubygems/commands/server_command.rb +3 -3
- data/lib/rubygems/commands/setup_command.rb +96 -106
- data/lib/rubygems/commands/signin_command.rb +9 -9
- data/lib/rubygems/commands/signout_command.rb +7 -7
- data/lib/rubygems/commands/sources_command.rb +21 -21
- data/lib/rubygems/commands/specification_command.rb +13 -13
- data/lib/rubygems/commands/stale_command.rb +2 -2
- data/lib/rubygems/commands/uninstall_command.rb +40 -40
- data/lib/rubygems/commands/unpack_command.rb +12 -12
- data/lib/rubygems/commands/update_command.rb +40 -56
- data/lib/rubygems/commands/which_command.rb +7 -7
- data/lib/rubygems/commands/yank_command.rb +11 -11
- data/lib/rubygems/config_file.rb +21 -21
- data/lib/rubygems/core_ext/kernel_gem.rb +1 -1
- data/lib/rubygems/core_ext/kernel_require.rb +1 -1
- data/lib/rubygems/core_ext/kernel_warn.rb +1 -1
- data/lib/rubygems/core_ext/tcpsocket_init.rb +1 -1
- data/lib/rubygems/defaults.rb +16 -16
- data/lib/rubygems/dependency.rb +9 -9
- data/lib/rubygems/dependency_installer.rb +13 -13
- data/lib/rubygems/dependency_list.rb +6 -6
- data/lib/rubygems/doctor.rb +18 -18
- data/lib/rubygems/errors.rb +2 -2
- data/lib/rubygems/exceptions.rb +5 -5
- data/lib/rubygems/ext/build_error.rb +1 -1
- data/lib/rubygems/ext/builder.rb +16 -16
- data/lib/rubygems/ext/cargo_builder.rb +7 -7
- data/lib/rubygems/ext/cmake_builder.rb +2 -2
- data/lib/rubygems/ext/configure_builder.rb +1 -1
- data/lib/rubygems/ext/ext_conf_builder.rb +8 -8
- data/lib/rubygems/ext/rake_builder.rb +3 -3
- data/lib/rubygems/ext.rb +7 -7
- data/lib/rubygems/gem_runner.rb +5 -5
- data/lib/rubygems/gemcutter_utilities.rb +31 -28
- data/lib/rubygems/indexer.rb +27 -27
- data/lib/rubygems/install_default_message.rb +2 -2
- data/lib/rubygems/install_message.rb +2 -2
- data/lib/rubygems/install_update_options.rb +55 -55
- data/lib/rubygems/installer.rb +32 -40
- data/lib/rubygems/installer_uninstaller_utils.rb +2 -2
- data/lib/rubygems/local_remote_options.rb +18 -20
- data/lib/rubygems/mock_gem_ui.rb +2 -2
- data/lib/rubygems/name_tuple.rb +4 -4
- data/lib/rubygems/optparse.rb +1 -1
- data/lib/rubygems/package/file_source.rb +2 -2
- data/lib/rubygems/package/old.rb +8 -8
- data/lib/rubygems/package/tar_header.rb +50 -50
- data/lib/rubygems/package/tar_reader/entry.rb +2 -2
- data/lib/rubygems/package/tar_reader.rb +1 -1
- data/lib/rubygems/package/tar_writer.rb +7 -7
- data/lib/rubygems/package.rb +54 -43
- data/lib/rubygems/package_task.rb +4 -4
- data/lib/rubygems/platform.rb +66 -55
- data/lib/rubygems/psych_tree.rb +1 -1
- data/lib/rubygems/query_utils.rb +35 -35
- data/lib/rubygems/rdoc.rb +2 -2
- data/lib/rubygems/remote_fetcher.rb +22 -22
- data/lib/rubygems/request/connection_pools.rb +4 -4
- data/lib/rubygems/request/http_pool.rb +1 -1
- data/lib/rubygems/request.rb +22 -22
- data/lib/rubygems/request_set/gem_dependency_api.rb +18 -18
- data/lib/rubygems/request_set/lockfile/parser.rb +26 -26
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +4 -4
- data/lib/rubygems/request_set/lockfile.rb +5 -5
- data/lib/rubygems/request_set.rb +17 -17
- data/lib/rubygems/requirement.rb +6 -6
- data/lib/rubygems/resolver/activation_request.rb +3 -3
- data/lib/rubygems/resolver/api_set.rb +4 -4
- data/lib/rubygems/resolver/api_specification.rb +6 -6
- data/lib/rubygems/resolver/best_set.rb +5 -5
- data/lib/rubygems/resolver/conflict.rb +10 -10
- data/lib/rubygems/resolver/dependency_request.rb +2 -2
- data/lib/rubygems/resolver/git_set.rb +2 -2
- data/lib/rubygems/resolver/git_specification.rb +6 -6
- data/lib/rubygems/resolver/index_set.rb +3 -3
- data/lib/rubygems/resolver/index_specification.rb +6 -5
- data/lib/rubygems/resolver/installed_specification.rb +4 -4
- data/lib/rubygems/resolver/installer_set.rb +11 -16
- data/lib/rubygems/resolver/local_specification.rb +2 -2
- data/lib/rubygems/resolver/lock_set.rb +4 -4
- data/lib/rubygems/resolver/lock_specification.rb +4 -4
- data/lib/rubygems/resolver/molinillo.rb +1 -1
- data/lib/rubygems/resolver/specification.rb +1 -1
- data/lib/rubygems/resolver/vendor_set.rb +1 -1
- data/lib/rubygems/resolver/vendor_specification.rb +3 -3
- data/lib/rubygems/resolver.rb +39 -39
- data/lib/rubygems/s3_uri_signer.rb +6 -6
- data/lib/rubygems/safe_yaml.rb +2 -2
- data/lib/rubygems/security/policies.rb +11 -11
- data/lib/rubygems/security/policy.rb +18 -18
- data/lib/rubygems/security/signer.rb +5 -5
- data/lib/rubygems/security/trust_dir.rb +3 -3
- data/lib/rubygems/security.rb +28 -28
- data/lib/rubygems/security_option.rb +5 -5
- data/lib/rubygems/source/git.rb +21 -21
- data/lib/rubygems/source/installed.rb +1 -1
- data/lib/rubygems/source/local.rb +2 -2
- data/lib/rubygems/source/specific_file.rb +1 -1
- data/lib/rubygems/source.rb +16 -16
- data/lib/rubygems/spec_fetcher.rb +9 -9
- data/lib/rubygems/specification.rb +63 -62
- data/lib/rubygems/specification_policy.rb +15 -15
- data/lib/rubygems/stub_specification.rb +5 -5
- data/lib/rubygems/tsort.rb +1 -1
- data/lib/rubygems/uninstaller.rb +18 -18
- data/lib/rubygems/uri.rb +4 -4
- data/lib/rubygems/uri_formatter.rb +1 -1
- data/lib/rubygems/user_interaction.rb +33 -19
- data/lib/rubygems/util/licenses.rb +3 -3
- data/lib/rubygems/util.rb +10 -10
- data/lib/rubygems/validator.rb +5 -5
- data/lib/rubygems/version.rb +15 -9
- data/lib/rubygems/version_option.rb +3 -3
- data/lib/rubygems.rb +62 -61
- data/rubygems-update.gemspec +2 -2
- data/setup.rb +9 -9
- data/test/rubygems/helper.rb +132 -134
- data/test/rubygems/installer_test_case.rb +13 -13
- data/test/rubygems/package/tar_test_case.rb +2 -2
- data/test/rubygems/plugin/exception/rubygems_plugin.rb +1 -1
- data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +1 -1
- data/test/rubygems/rubygems_plugin.rb +2 -2
- data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +4 -4
- data/test/rubygems/test_bundled_ca.rb +10 -10
- data/test/rubygems/test_config.rb +3 -3
- data/test/rubygems/test_deprecate.rb +3 -3
- data/test/rubygems/test_exit.rb +2 -2
- data/test/rubygems/test_gem.rb +342 -342
- data/test/rubygems/test_gem_available_set.rb +21 -21
- data/test/rubygems/test_gem_bundler_version_finder.rb +1 -1
- data/test/rubygems/test_gem_command.rb +44 -44
- data/test/rubygems/test_gem_command_manager.rb +29 -29
- data/test/rubygems/test_gem_commands_build_command.rb +63 -63
- data/test/rubygems/test_gem_commands_cert_command.rb +97 -99
- data/test/rubygems/test_gem_commands_check_command.rb +4 -4
- data/test/rubygems/test_gem_commands_cleanup_command.rb +40 -40
- data/test/rubygems/test_gem_commands_contents_command.rb +27 -27
- data/test/rubygems/test_gem_commands_dependency_command.rb +36 -36
- data/test/rubygems/test_gem_commands_environment_command.rb +16 -16
- data/test/rubygems/test_gem_commands_fetch_command.rb +37 -37
- data/test/rubygems/test_gem_commands_generate_index_command.rb +7 -7
- data/test/rubygems/test_gem_commands_help_command.rb +13 -13
- data/test/rubygems/test_gem_commands_info_command.rb +28 -2
- data/test/rubygems/test_gem_commands_install_command.rb +131 -131
- data/test/rubygems/test_gem_commands_list_command.rb +4 -4
- data/test/rubygems/test_gem_commands_lock_command.rb +10 -10
- data/test/rubygems/test_gem_commands_mirror.rb +2 -2
- data/test/rubygems/test_gem_commands_open_command.rb +4 -4
- data/test/rubygems/test_gem_commands_outdated_command.rb +9 -9
- data/test/rubygems/test_gem_commands_owner_command.rb +41 -41
- data/test/rubygems/test_gem_commands_pristine_command.rb +92 -92
- data/test/rubygems/test_gem_commands_push_command.rb +54 -54
- data/test/rubygems/test_gem_commands_query_command.rb +73 -73
- data/test/rubygems/test_gem_commands_search_command.rb +2 -2
- data/test/rubygems/test_gem_commands_server_command.rb +2 -2
- data/test/rubygems/test_gem_commands_setup_command.rb +119 -85
- data/test/rubygems/test_gem_commands_signin_command.rb +45 -31
- data/test/rubygems/test_gem_commands_signout_command.rb +3 -3
- data/test/rubygems/test_gem_commands_sources_command.rb +28 -29
- data/test/rubygems/test_gem_commands_specification_command.rb +32 -32
- data/test/rubygems/test_gem_commands_stale_command.rb +4 -4
- data/test/rubygems/test_gem_commands_uninstall_command.rb +75 -75
- data/test/rubygems/test_gem_commands_unpack_command.rb +31 -31
- data/test/rubygems/test_gem_commands_update_command.rb +89 -89
- data/test/rubygems/test_gem_commands_which_command.rb +6 -6
- data/test/rubygems/test_gem_commands_yank_command.rb +40 -40
- data/test/rubygems/test_gem_config_file.rb +93 -81
- data/test/rubygems/test_gem_dependency.rb +73 -73
- data/test/rubygems/test_gem_dependency_installer.rb +165 -165
- data/test/rubygems/test_gem_dependency_list.rb +47 -47
- data/test/rubygems/test_gem_dependency_resolution_error.rb +4 -4
- data/test/rubygems/test_gem_doctor.rb +26 -26
- data/test/rubygems/test_gem_ext_builder.rb +59 -59
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.lock +6 -6
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.toml +1 -1
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/build.rb +8 -8
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +1 -1
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +6 -6
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +1 -1
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/build.rb +8 -8
- data/test/rubygems/test_gem_ext_cargo_builder.rb +26 -26
- data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +3 -3
- data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +23 -23
- data/test/rubygems/test_gem_ext_cmake_builder.rb +15 -15
- data/test/rubygems/test_gem_ext_configure_builder.rb +13 -13
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +51 -52
- data/test/rubygems/test_gem_ext_rake_builder.rb +15 -15
- data/test/rubygems/test_gem_gem_runner.rb +7 -7
- data/test/rubygems/test_gem_gemcutter_utilities.rb +66 -66
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +4 -4
- data/test/rubygems/test_gem_indexer.rb +48 -48
- data/test/rubygems/test_gem_install_update_options.rb +16 -16
- data/test/rubygems/test_gem_installer.rb +303 -300
- data/test/rubygems/test_gem_local_remote_options.rb +10 -10
- data/test/rubygems/test_gem_name_tuple.rb +4 -4
- data/test/rubygems/test_gem_package.rb +228 -206
- data/test/rubygems/test_gem_package_old.rb +13 -13
- data/test/rubygems/test_gem_package_tar_header.rb +42 -42
- data/test/rubygems/test_gem_package_tar_reader.rb +8 -8
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +10 -10
- data/test/rubygems/test_gem_package_tar_writer.rb +76 -76
- data/test/rubygems/test_gem_package_task.rb +18 -18
- data/test/rubygems/test_gem_path_support.rb +14 -14
- data/test/rubygems/test_gem_platform.rb +298 -227
- data/test/rubygems/test_gem_rdoc.rb +14 -14
- data/test/rubygems/test_gem_remote_fetcher.rb +149 -149
- data/test/rubygems/test_gem_request.rb +55 -55
- data/test/rubygems/test_gem_request_connection_pools.rb +29 -29
- data/test/rubygems/test_gem_request_set.rb +99 -99
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +204 -206
- data/test/rubygems/test_gem_request_set_lockfile.rb +86 -86
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +56 -56
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +62 -62
- data/test/rubygems/test_gem_requirement.rb +47 -41
- data/test/rubygems/test_gem_resolver.rb +133 -99
- data/test/rubygems/test_gem_resolver_activation_request.rb +6 -6
- data/test/rubygems/test_gem_resolver_api_set.rb +33 -33
- data/test/rubygems/test_gem_resolver_api_specification.rb +47 -47
- data/test/rubygems/test_gem_resolver_best_set.rb +22 -22
- data/test/rubygems/test_gem_resolver_composed_set.rb +1 -1
- data/test/rubygems/test_gem_resolver_conflict.rb +12 -12
- data/test/rubygems/test_gem_resolver_dependency_request.rb +15 -15
- data/test/rubygems/test_gem_resolver_git_set.rb +21 -21
- data/test/rubygems/test_gem_resolver_git_specification.rb +21 -21
- data/test/rubygems/test_gem_resolver_index_set.rb +12 -12
- data/test/rubygems/test_gem_resolver_index_specification.rb +16 -16
- data/test/rubygems/test_gem_resolver_installed_specification.rb +5 -5
- data/test/rubygems/test_gem_resolver_installer_set.rb +78 -34
- data/test/rubygems/test_gem_resolver_local_specification.rb +7 -7
- data/test/rubygems/test_gem_resolver_lock_set.rb +12 -12
- data/test/rubygems/test_gem_resolver_lock_specification.rb +17 -17
- data/test/rubygems/test_gem_resolver_requirement_list.rb +1 -1
- data/test/rubygems/test_gem_resolver_specification.rb +8 -8
- data/test/rubygems/test_gem_resolver_vendor_set.rb +6 -6
- data/test/rubygems/test_gem_resolver_vendor_specification.rb +10 -10
- data/test/rubygems/test_gem_security.rb +67 -67
- data/test/rubygems/test_gem_security_policy.rb +62 -62
- data/test/rubygems/test_gem_security_signer.rb +28 -28
- data/test/rubygems/test_gem_security_trust_dir.rb +4 -4
- data/test/rubygems/test_gem_silent_ui.rb +38 -32
- data/test/rubygems/test_gem_source.rb +44 -44
- data/test/rubygems/test_gem_source_fetch_problem.rb +9 -9
- data/test/rubygems/test_gem_source_git.rb +59 -59
- data/test/rubygems/test_gem_source_installed.rb +16 -16
- data/test/rubygems/test_gem_source_list.rb +5 -5
- data/test/rubygems/test_gem_source_local.rb +14 -14
- data/test/rubygems/test_gem_source_lock.rb +31 -31
- data/test/rubygems/test_gem_source_specific_file.rb +17 -17
- data/test/rubygems/test_gem_source_subpath_problem.rb +7 -7
- data/test/rubygems/test_gem_source_vendor.rb +13 -13
- data/test/rubygems/test_gem_spec_fetcher.rb +72 -72
- data/test/rubygems/test_gem_specification.rb +444 -436
- data/test/rubygems/test_gem_stream_ui.rb +19 -19
- data/test/rubygems/test_gem_stub_specification.rb +32 -32
- data/test/rubygems/test_gem_text.rb +1 -1
- data/test/rubygems/test_gem_uninstaller.rb +112 -112
- data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +3 -3
- data/test/rubygems/test_gem_uri.rb +4 -4
- data/test/rubygems/test_gem_uri_formatter.rb +14 -14
- data/test/rubygems/test_gem_util.rb +23 -23
- data/test/rubygems/test_gem_validator.rb +8 -8
- data/test/rubygems/test_gem_version.rb +22 -15
- data/test/rubygems/test_gem_version_option.rb +15 -15
- data/test/rubygems/test_kernel.rb +31 -31
- data/test/rubygems/test_project_sanity.rb +1 -1
- data/test/rubygems/test_remote_fetch_error.rb +6 -6
- data/test/rubygems/test_require.rb +43 -43
- data/test/rubygems/test_rubygems.rb +8 -8
- data/test/rubygems/utilities.rb +19 -19
- metadata +14 -3
@@ -1,14 +1,14 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require_relative
|
2
|
+
require_relative "helper"
|
3
3
|
require "rubygems/requirement"
|
4
4
|
|
5
5
|
class TestGemRequirement < Gem::TestCase
|
6
6
|
def test_concat
|
7
|
-
r = req
|
7
|
+
r = req ">= 1"
|
8
8
|
|
9
|
-
r.concat [
|
9
|
+
r.concat ["< 2"]
|
10
10
|
|
11
|
-
assert_equal [[
|
11
|
+
assert_equal [[">=", v(1)], ["<", v(2)]], r.requirements
|
12
12
|
end
|
13
13
|
|
14
14
|
def test_equals2
|
@@ -60,42 +60,42 @@ class TestGemRequirement < Gem::TestCase
|
|
60
60
|
end
|
61
61
|
|
62
62
|
def test_for_lockfile
|
63
|
-
assert_equal
|
63
|
+
assert_equal " (~> 1.0)", req("~> 1.0").for_lockfile
|
64
64
|
|
65
|
-
assert_equal
|
65
|
+
assert_equal " (~> 1.0, >= 1.0.1)", req(">= 1.0.1", "~> 1.0").for_lockfile
|
66
66
|
|
67
|
-
duped = req
|
68
|
-
duped.requirements << [
|
67
|
+
duped = req "= 1.0"
|
68
|
+
duped.requirements << ["=", v("1.0")]
|
69
69
|
|
70
|
-
assert_equal
|
70
|
+
assert_equal " (= 1.0)", duped.for_lockfile
|
71
71
|
|
72
72
|
assert_nil Gem::Requirement.default.for_lockfile
|
73
73
|
end
|
74
74
|
|
75
75
|
def test_parse
|
76
|
-
assert_equal [
|
77
|
-
assert_equal [
|
78
|
-
assert_equal [
|
79
|
-
assert_equal [
|
80
|
-
assert_equal [
|
76
|
+
assert_equal ["=", Gem::Version.new(1)], Gem::Requirement.parse(" 1")
|
77
|
+
assert_equal ["=", Gem::Version.new(1)], Gem::Requirement.parse("= 1")
|
78
|
+
assert_equal [">", Gem::Version.new(1)], Gem::Requirement.parse("> 1")
|
79
|
+
assert_equal ["=", Gem::Version.new(1)], Gem::Requirement.parse("=\n1")
|
80
|
+
assert_equal ["=", Gem::Version.new(1)], Gem::Requirement.parse("1.0")
|
81
81
|
|
82
|
-
assert_equal [
|
83
|
-
Gem::Requirement.parse(Gem::Version.new(
|
82
|
+
assert_equal ["=", Gem::Version.new(2)],
|
83
|
+
Gem::Requirement.parse(Gem::Version.new("2"))
|
84
84
|
end
|
85
85
|
|
86
|
-
if RUBY_VERSION >=
|
86
|
+
if RUBY_VERSION >= "2.5" && !(Gem.java_platform? && ENV["JRUBY_OPTS"] =~ /--debug/)
|
87
87
|
def test_parse_deduplication
|
88
|
-
assert_same
|
88
|
+
assert_same "~>", Gem::Requirement.parse("~> 1").first
|
89
89
|
end
|
90
90
|
end
|
91
91
|
|
92
92
|
def test_parse_bad
|
93
93
|
[
|
94
94
|
nil,
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
95
|
+
"",
|
96
|
+
"! 1",
|
97
|
+
"= junk",
|
98
|
+
"1..2",
|
99
99
|
].each do |bad|
|
100
100
|
e = assert_raise Gem::Requirement::BadRequirementError do
|
101
101
|
Gem::Requirement.parse bad
|
@@ -108,28 +108,30 @@ class TestGemRequirement < Gem::TestCase
|
|
108
108
|
end
|
109
109
|
|
110
110
|
def test_prerelease_eh
|
111
|
-
r = req
|
111
|
+
r = req "= 1"
|
112
112
|
|
113
113
|
refute r.prerelease?
|
114
114
|
|
115
|
-
r = req
|
115
|
+
r = req "= 1.a"
|
116
116
|
|
117
117
|
assert r.prerelease?
|
118
118
|
|
119
|
-
r = req
|
119
|
+
r = req "> 1.a", "< 2"
|
120
120
|
|
121
121
|
assert r.prerelease?
|
122
122
|
end
|
123
123
|
|
124
124
|
def test_satisfied_by_eh_bang_equal
|
125
|
-
r = req
|
125
|
+
r = req "!= 1.2"
|
126
126
|
|
127
127
|
assert_satisfied_by "1.1", r
|
128
128
|
refute_satisfied_by "1.2", r
|
129
129
|
assert_satisfied_by "1.3", r
|
130
130
|
|
131
131
|
assert_raise ArgumentError do
|
132
|
-
|
132
|
+
Gem::Deprecate.skip_during do
|
133
|
+
assert_satisfied_by nil, r
|
134
|
+
end
|
133
135
|
end
|
134
136
|
end
|
135
137
|
|
@@ -141,7 +143,9 @@ class TestGemRequirement < Gem::TestCase
|
|
141
143
|
refute_satisfied_by "1.3", r
|
142
144
|
|
143
145
|
assert_raise ArgumentError do
|
144
|
-
|
146
|
+
Gem::Deprecate.skip_during do
|
147
|
+
assert_satisfied_by nil, r
|
148
|
+
end
|
145
149
|
end
|
146
150
|
end
|
147
151
|
|
@@ -153,7 +157,9 @@ class TestGemRequirement < Gem::TestCase
|
|
153
157
|
refute_satisfied_by "1.3", r
|
154
158
|
|
155
159
|
assert_raise ArgumentError do
|
156
|
-
|
160
|
+
Gem::Deprecate.skip_during do
|
161
|
+
assert_satisfied_by nil, r
|
162
|
+
end
|
157
163
|
end
|
158
164
|
end
|
159
165
|
|
@@ -362,16 +368,16 @@ class TestGemRequirement < Gem::TestCase
|
|
362
368
|
end
|
363
369
|
|
364
370
|
def test_specific
|
365
|
-
refute req(
|
366
|
-
refute req(
|
371
|
+
refute req("> 1") .specific?
|
372
|
+
refute req(">= 1").specific?
|
367
373
|
|
368
|
-
assert req(
|
369
|
-
assert req(
|
370
|
-
assert req(
|
371
|
-
assert req(
|
372
|
-
assert req(
|
374
|
+
assert req("!= 1").specific?
|
375
|
+
assert req("< 1") .specific?
|
376
|
+
assert req("<= 1").specific?
|
377
|
+
assert req("= 1") .specific?
|
378
|
+
assert req("~> 1").specific?
|
373
379
|
|
374
|
-
assert req(
|
380
|
+
assert req("> 1", "> 2").specific? # GIGO
|
375
381
|
end
|
376
382
|
|
377
383
|
def test_bad
|
@@ -392,12 +398,12 @@ class TestGemRequirement < Gem::TestCase
|
|
392
398
|
end
|
393
399
|
|
394
400
|
def test_hash_with_multiple_versions
|
395
|
-
r1 = req(
|
396
|
-
r2 = req(
|
401
|
+
r1 = req("1.0", "2.0")
|
402
|
+
r2 = req("2.0", "1.0")
|
397
403
|
assert_equal r1.hash, r2.hash
|
398
404
|
|
399
|
-
r1 = req(
|
400
|
-
r2 = req(
|
405
|
+
r1 = req("1.0", "2.0").tap {|r| r.concat(["3.0"]) }
|
406
|
+
r2 = req("3.0", "1.0").tap {|r| r.concat(["2.0"]) }
|
401
407
|
assert_equal r1.hash, r2.hash
|
402
408
|
end
|
403
409
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require_relative
|
2
|
+
require_relative "helper"
|
3
3
|
|
4
4
|
class TestGemResolver < Gem::TestCase
|
5
5
|
def setup
|
@@ -80,7 +80,7 @@ class TestGemResolver < Gem::TestCase
|
|
80
80
|
@DR.compose_sets nil
|
81
81
|
end
|
82
82
|
|
83
|
-
assert_equal
|
83
|
+
assert_equal "one set in the composition must be non-nil", e.message
|
84
84
|
end
|
85
85
|
|
86
86
|
def test_self_compose_sets_single
|
@@ -92,9 +92,9 @@ class TestGemResolver < Gem::TestCase
|
|
92
92
|
end
|
93
93
|
|
94
94
|
def test_requests
|
95
|
-
a1 = util_spec
|
95
|
+
a1 = util_spec "a", 1, "b" => 2
|
96
96
|
|
97
|
-
r1 = Gem::Resolver::DependencyRequest.new dep(
|
97
|
+
r1 = Gem::Resolver::DependencyRequest.new dep("a", "= 1"), nil
|
98
98
|
|
99
99
|
act = Gem::Resolver::ActivationRequest.new a1, r1
|
100
100
|
|
@@ -104,18 +104,18 @@ class TestGemResolver < Gem::TestCase
|
|
104
104
|
|
105
105
|
res.requests a1, act, reqs
|
106
106
|
|
107
|
-
assert_equal [
|
107
|
+
assert_equal ["b (= 2)"], reqs.map {|req| req.to_s }
|
108
108
|
end
|
109
109
|
|
110
110
|
def test_requests_development
|
111
|
-
a1 = util_spec
|
111
|
+
a1 = util_spec "a", 1, "b" => 2
|
112
112
|
|
113
113
|
spec = Gem::Resolver::SpecSpecification.new nil, a1
|
114
114
|
def spec.fetch_development_dependencies
|
115
115
|
@called = true
|
116
116
|
end
|
117
117
|
|
118
|
-
r1 = Gem::Resolver::DependencyRequest.new dep(
|
118
|
+
r1 = Gem::Resolver::DependencyRequest.new dep("a", "= 1"), nil
|
119
119
|
|
120
120
|
act = Gem::Resolver::ActivationRequest.new spec, r1
|
121
121
|
|
@@ -126,15 +126,15 @@ class TestGemResolver < Gem::TestCase
|
|
126
126
|
|
127
127
|
res.requests spec, act, reqs
|
128
128
|
|
129
|
-
assert_equal [
|
129
|
+
assert_equal ["b (= 2)"], reqs.map {|req| req.to_s }
|
130
130
|
|
131
131
|
assert spec.instance_variable_defined? :@called
|
132
132
|
end
|
133
133
|
|
134
134
|
def test_requests_ignore_dependencies
|
135
|
-
a1 = util_spec
|
135
|
+
a1 = util_spec "a", 1, "b" => 2
|
136
136
|
|
137
|
-
r1 = Gem::Resolver::DependencyRequest.new dep(
|
137
|
+
r1 = Gem::Resolver::DependencyRequest.new dep("a", "= 1"), nil
|
138
138
|
|
139
139
|
act = Gem::Resolver::ActivationRequest.new a1, r1
|
140
140
|
|
@@ -149,37 +149,37 @@ class TestGemResolver < Gem::TestCase
|
|
149
149
|
end
|
150
150
|
|
151
151
|
def test_resolve_conservative
|
152
|
-
a1_spec = util_spec
|
152
|
+
a1_spec = util_spec "a", 1
|
153
153
|
|
154
|
-
a2_spec = util_spec
|
155
|
-
s.add_dependency
|
156
|
-
s.add_dependency
|
154
|
+
a2_spec = util_spec "a", 2 do |s|
|
155
|
+
s.add_dependency "b", 2
|
156
|
+
s.add_dependency "c"
|
157
157
|
end
|
158
158
|
|
159
|
-
b1_spec = util_spec
|
160
|
-
b2_spec = util_spec
|
159
|
+
b1_spec = util_spec "b", 1
|
160
|
+
b2_spec = util_spec "b", 2
|
161
161
|
|
162
|
-
c1_spec = util_spec
|
163
|
-
s.add_dependency
|
162
|
+
c1_spec = util_spec "c", 1 do |s|
|
163
|
+
s.add_dependency "d", 2
|
164
164
|
end
|
165
165
|
|
166
|
-
c2_spec = util_spec
|
167
|
-
s.add_dependency
|
166
|
+
c2_spec = util_spec "c", 2 do |s|
|
167
|
+
s.add_dependency "d", 2
|
168
168
|
end
|
169
169
|
|
170
|
-
d1_spec = util_spec
|
171
|
-
s.add_dependency
|
170
|
+
d1_spec = util_spec "d", 1 do |s|
|
171
|
+
s.add_dependency "e"
|
172
172
|
end
|
173
173
|
|
174
|
-
d2_spec = util_spec
|
175
|
-
s.add_dependency
|
174
|
+
d2_spec = util_spec "d", 2 do |s|
|
175
|
+
s.add_dependency "e"
|
176
176
|
end
|
177
177
|
|
178
|
-
e1_spec = util_spec
|
179
|
-
e2_spec = util_spec
|
178
|
+
e1_spec = util_spec "e", 1
|
179
|
+
e2_spec = util_spec "e", 2
|
180
180
|
|
181
|
-
a_dep = make_dep
|
182
|
-
e_dep = make_dep
|
181
|
+
a_dep = make_dep "a", "= 2"
|
182
|
+
e_dep = make_dep "e"
|
183
183
|
|
184
184
|
# When requesting to install:
|
185
185
|
# a-2, e
|
@@ -191,7 +191,7 @@ class TestGemResolver < Gem::TestCase
|
|
191
191
|
|
192
192
|
# With the following gems already installed:
|
193
193
|
# a-1, b-1, c-1, e-1
|
194
|
-
res.skip_gems = {
|
194
|
+
res.skip_gems = { "a" => [a1_spec], "b" => [b1_spec], "c" => [c1_spec], "e" => [e1_spec] }
|
195
195
|
|
196
196
|
# Make sure the following gems end up getting used/installed/upgraded:
|
197
197
|
# a-2 (upgraded)
|
@@ -203,17 +203,17 @@ class TestGemResolver < Gem::TestCase
|
|
203
203
|
end
|
204
204
|
|
205
205
|
def test_resolve_development
|
206
|
-
a_spec = util_spec
|
207
|
-
s.add_development_dependency
|
206
|
+
a_spec = util_spec "a", 1 do |s|
|
207
|
+
s.add_development_dependency "b"
|
208
208
|
end
|
209
209
|
|
210
|
-
b_spec = util_spec
|
211
|
-
|s| s.add_development_dependency
|
210
|
+
b_spec = util_spec "b", 1 do
|
211
|
+
|s| s.add_development_dependency "c"
|
212
212
|
end
|
213
213
|
|
214
|
-
c_spec = util_spec
|
214
|
+
c_spec = util_spec "c", 1
|
215
215
|
|
216
|
-
a_dep = make_dep
|
216
|
+
a_dep = make_dep "a", "= 1"
|
217
217
|
|
218
218
|
deps = [a_dep]
|
219
219
|
|
@@ -227,24 +227,24 @@ class TestGemResolver < Gem::TestCase
|
|
227
227
|
end
|
228
228
|
|
229
229
|
def test_resolve_development_shallow
|
230
|
-
a_spec = util_spec
|
231
|
-
s.add_development_dependency
|
232
|
-
s.add_runtime_dependency
|
230
|
+
a_spec = util_spec "a", 1 do |s|
|
231
|
+
s.add_development_dependency "b"
|
232
|
+
s.add_runtime_dependency "d"
|
233
233
|
end
|
234
234
|
|
235
|
-
b_spec = util_spec
|
236
|
-
s.add_development_dependency
|
235
|
+
b_spec = util_spec "b", 1 do |s|
|
236
|
+
s.add_development_dependency "c"
|
237
237
|
end
|
238
238
|
|
239
|
-
c_spec = util_spec
|
239
|
+
c_spec = util_spec "c", 1
|
240
240
|
|
241
|
-
d_spec = util_spec
|
242
|
-
s.add_development_dependency
|
241
|
+
d_spec = util_spec "d", 1 do |s|
|
242
|
+
s.add_development_dependency "e"
|
243
243
|
end
|
244
244
|
|
245
|
-
e_spec = util_spec
|
245
|
+
e_spec = util_spec "e", 1
|
246
246
|
|
247
|
-
a_dep = make_dep
|
247
|
+
a_dep = make_dep "a", "= 1"
|
248
248
|
|
249
249
|
deps = [a_dep]
|
250
250
|
|
@@ -262,7 +262,7 @@ class TestGemResolver < Gem::TestCase
|
|
262
262
|
@fetcher = Gem::FakeFetcher.new
|
263
263
|
Gem::RemoteFetcher.fetcher = @fetcher
|
264
264
|
|
265
|
-
a_dep = make_dep
|
265
|
+
a_dep = make_dep "a", "= 1"
|
266
266
|
|
267
267
|
res = Gem::Resolver.new [a_dep], Gem::Resolver::IndexSet.new
|
268
268
|
|
@@ -274,7 +274,7 @@ class TestGemResolver < Gem::TestCase
|
|
274
274
|
end
|
275
275
|
|
276
276
|
def test_no_overlap_specifically
|
277
|
-
a = util_spec "a",
|
277
|
+
a = util_spec "a", "1"
|
278
278
|
b = util_spec "b", "1"
|
279
279
|
|
280
280
|
ad = make_dep "a", "= 1"
|
@@ -290,7 +290,7 @@ class TestGemResolver < Gem::TestCase
|
|
290
290
|
end
|
291
291
|
|
292
292
|
def test_pulls_in_dependencies
|
293
|
-
a = util_spec "a",
|
293
|
+
a = util_spec "a", "1"
|
294
294
|
b = util_spec "b", "1", "c" => "= 1"
|
295
295
|
c = util_spec "c", "1"
|
296
296
|
|
@@ -307,8 +307,8 @@ class TestGemResolver < Gem::TestCase
|
|
307
307
|
end
|
308
308
|
|
309
309
|
def test_picks_highest_version
|
310
|
-
a1 = util_spec "a",
|
311
|
-
a2 = util_spec "a",
|
310
|
+
a1 = util_spec "a", "1"
|
311
|
+
a2 = util_spec "a", "2"
|
312
312
|
|
313
313
|
s = set(a1, a2)
|
314
314
|
|
@@ -321,17 +321,16 @@ class TestGemResolver < Gem::TestCase
|
|
321
321
|
|
322
322
|
def test_picks_best_platform
|
323
323
|
is = Gem::Resolver::IndexSpecification
|
324
|
-
unknown = Gem::Platform.new
|
325
|
-
a2_p1 = a3_p2 = nil
|
324
|
+
unknown = Gem::Platform.new "unknown"
|
326
325
|
|
327
326
|
spec_fetcher do |fetcher|
|
328
|
-
fetcher.spec
|
327
|
+
fetcher.spec "a", 2
|
329
328
|
|
330
|
-
|
329
|
+
fetcher.spec "a", 2 do |s|
|
331
330
|
s.platform = Gem::Platform.local
|
332
331
|
end
|
333
332
|
|
334
|
-
|
333
|
+
fetcher.spec "a", 3 do |s|
|
335
334
|
s.platform = unknown
|
336
335
|
end
|
337
336
|
end
|
@@ -342,9 +341,9 @@ class TestGemResolver < Gem::TestCase
|
|
342
341
|
|
343
342
|
s = set
|
344
343
|
|
345
|
-
a2 = is.new s,
|
346
|
-
a2_p1 = is.new s,
|
347
|
-
a3_p2 = is.new s,
|
344
|
+
a2 = is.new s, "a", v2, source, Gem::Platform::RUBY
|
345
|
+
a2_p1 = is.new s, "a", v2, source, Gem::Platform.local.to_s
|
346
|
+
a3_p2 = is.new s, "a", v3, source, unknown
|
348
347
|
|
349
348
|
s.add a3_p2
|
350
349
|
s.add a2_p1
|
@@ -357,6 +356,41 @@ class TestGemResolver < Gem::TestCase
|
|
357
356
|
assert_resolves_to [a2_p1.spec], res
|
358
357
|
end
|
359
358
|
|
359
|
+
def test_does_not_pick_musl_variants_on_non_musl_linux
|
360
|
+
util_set_arch "aarch64-linux" do
|
361
|
+
is = Gem::Resolver::IndexSpecification
|
362
|
+
|
363
|
+
linux_musl = Gem::Platform.new("aarch64-linux-musl")
|
364
|
+
|
365
|
+
spec_fetcher do |fetcher|
|
366
|
+
fetcher.spec "libv8-node", "15.14.0.1" do |s|
|
367
|
+
s.platform = Gem::Platform.local
|
368
|
+
end
|
369
|
+
|
370
|
+
fetcher.spec "libv8-node", "15.14.0.1" do |s|
|
371
|
+
s.platform = linux_musl
|
372
|
+
end
|
373
|
+
end
|
374
|
+
|
375
|
+
v15 = v("15.14.0.1")
|
376
|
+
source = Gem::Source.new @gem_repo
|
377
|
+
|
378
|
+
s = set
|
379
|
+
|
380
|
+
v15_linux = is.new s, "libv8-node", v15, source, Gem::Platform.local.to_s
|
381
|
+
v15_linux_musl = is.new s, "libv8-node", v15, source, linux_musl.to_s
|
382
|
+
|
383
|
+
s.add v15_linux
|
384
|
+
s.add v15_linux_musl
|
385
|
+
|
386
|
+
ad = make_dep "libv8-node", "= 15.14.0.1"
|
387
|
+
|
388
|
+
res = Gem::Resolver.new([ad], s)
|
389
|
+
|
390
|
+
assert_resolves_to [v15_linux.spec], res
|
391
|
+
end
|
392
|
+
end
|
393
|
+
|
360
394
|
def test_only_returns_spec_once
|
361
395
|
a1 = util_spec "a", "1", "c" => "= 1"
|
362
396
|
b1 = util_spec "b", "1", "c" => "= 1"
|
@@ -509,7 +543,7 @@ class TestGemResolver < Gem::TestCase
|
|
509
543
|
|
510
544
|
def test_raises_and_reports_an_implicit_request_properly
|
511
545
|
a1 = util_spec "a", "1" do |s|
|
512
|
-
s.add_runtime_dependency
|
546
|
+
s.add_runtime_dependency "b", "= 2"
|
513
547
|
end
|
514
548
|
|
515
549
|
ad = make_dep "a", "= 1"
|
@@ -546,14 +580,14 @@ class TestGemResolver < Gem::TestCase
|
|
546
580
|
dependency = e.conflict.dependency
|
547
581
|
|
548
582
|
assert_includes %w[a b], dependency.name
|
549
|
-
assert_equal req(
|
583
|
+
assert_equal req(">= 0"), dependency.requirement
|
550
584
|
|
551
585
|
activated = e.conflict.activated
|
552
|
-
assert_equal
|
586
|
+
assert_equal "c-1", activated.full_name
|
553
587
|
|
554
|
-
assert_equal dep(
|
588
|
+
assert_equal dep("c", "= 1"), activated.request.dependency
|
555
589
|
|
556
|
-
assert_equal [dep(
|
590
|
+
assert_equal [dep("c", ">= 2"), dep("c", "= 1")],
|
557
591
|
e.conflict.conflicting_dependencies
|
558
592
|
end
|
559
593
|
|
@@ -617,15 +651,15 @@ class TestGemResolver < Gem::TestCase
|
|
617
651
|
end
|
618
652
|
|
619
653
|
def test_resolve_conflict
|
620
|
-
a1 = util_spec
|
621
|
-
a2 = util_spec
|
654
|
+
a1 = util_spec "a", 1
|
655
|
+
a2 = util_spec "a", 2
|
622
656
|
|
623
|
-
b2 = util_spec
|
657
|
+
b2 = util_spec "b", 2, "a" => "~> 2.0"
|
624
658
|
|
625
659
|
s = set a1, a2, b2
|
626
660
|
|
627
|
-
a_dep = dep
|
628
|
-
b_dep = dep
|
661
|
+
a_dep = dep "a", "~> 1.0"
|
662
|
+
b_dep = dep "b"
|
629
663
|
|
630
664
|
r = Gem::Resolver.new [a_dep, b_dep], s
|
631
665
|
|
@@ -635,18 +669,18 @@ class TestGemResolver < Gem::TestCase
|
|
635
669
|
end
|
636
670
|
|
637
671
|
def test_resolve_bug_699
|
638
|
-
a1 = util_spec
|
639
|
-
|
672
|
+
a1 = util_spec "a", "1", "b" => "= 2",
|
673
|
+
"c" => "~> 1.0.3"
|
640
674
|
|
641
|
-
b1 = util_spec
|
675
|
+
b1 = util_spec "b", "2", "c" => "~> 1.0"
|
642
676
|
|
643
|
-
c1 = util_spec
|
644
|
-
c2 = util_spec
|
645
|
-
c3 = util_spec
|
677
|
+
c1 = util_spec "c", "1.0.9"
|
678
|
+
c2 = util_spec "c", "1.1.0"
|
679
|
+
c3 = util_spec "c", "1.2.0"
|
646
680
|
|
647
681
|
s = set a1, b1, c1, c2, c3
|
648
682
|
|
649
|
-
a_dep = dep
|
683
|
+
a_dep = dep "a", "= 1"
|
650
684
|
|
651
685
|
r = Gem::Resolver.new [a_dep], s
|
652
686
|
|
@@ -654,16 +688,16 @@ class TestGemResolver < Gem::TestCase
|
|
654
688
|
end
|
655
689
|
|
656
690
|
def test_resolve_rollback
|
657
|
-
a1 = util_spec
|
658
|
-
a2 = util_spec
|
691
|
+
a1 = util_spec "a", 1
|
692
|
+
a2 = util_spec "a", 2
|
659
693
|
|
660
|
-
b1 = util_spec
|
661
|
-
b2 = util_spec
|
694
|
+
b1 = util_spec "b", 1, "a" => "~> 1.0"
|
695
|
+
b2 = util_spec "b", 2, "a" => "~> 2.0"
|
662
696
|
|
663
697
|
s = set a1, a2, b1, b2
|
664
698
|
|
665
|
-
a_dep = dep
|
666
|
-
b_dep = dep
|
699
|
+
a_dep = dep "a", "~> 1.0"
|
700
|
+
b_dep = dep "b"
|
667
701
|
|
668
702
|
r = Gem::Resolver.new [a_dep, b_dep], s
|
669
703
|
|
@@ -711,15 +745,15 @@ class TestGemResolver < Gem::TestCase
|
|
711
745
|
end
|
712
746
|
|
713
747
|
def test_sorts_by_source_then_version
|
714
|
-
sourceA = Gem::Source.new
|
715
|
-
sourceB = Gem::Source.new
|
716
|
-
sourceC = Gem::Source.new
|
748
|
+
sourceA = Gem::Source.new "http://example.com/a"
|
749
|
+
sourceB = Gem::Source.new "http://example.com/b"
|
750
|
+
sourceC = Gem::Source.new "http://example.com/c"
|
717
751
|
|
718
|
-
spec_A_1 = util_spec
|
719
|
-
spec_A_2 = util_spec
|
720
|
-
spec_B_1 = util_spec
|
721
|
-
spec_B_2 = util_spec
|
722
|
-
spec_C_1 = util_spec
|
752
|
+
spec_A_1 = util_spec "some-dep", "0.0.1"
|
753
|
+
spec_A_2 = util_spec "some-dep", "1.0.0"
|
754
|
+
spec_B_1 = util_spec "some-dep", "0.0.1"
|
755
|
+
spec_B_2 = util_spec "some-dep", "0.0.2"
|
756
|
+
spec_C_1 = util_spec "some-dep", "0.1.0"
|
723
757
|
|
724
758
|
set = StaticSet.new [
|
725
759
|
Gem::Resolver::SpecSpecification.new(nil, spec_B_1, sourceB),
|
@@ -729,7 +763,7 @@ class TestGemResolver < Gem::TestCase
|
|
729
763
|
Gem::Resolver::SpecSpecification.new(nil, spec_A_1, sourceA),
|
730
764
|
]
|
731
765
|
|
732
|
-
dependency = make_dep
|
766
|
+
dependency = make_dep "some-dep", "> 0"
|
733
767
|
|
734
768
|
resolver = Gem::Resolver.new [dependency], set
|
735
769
|
|
@@ -739,14 +773,14 @@ class TestGemResolver < Gem::TestCase
|
|
739
773
|
def test_select_local_platforms
|
740
774
|
r = Gem::Resolver.new nil, nil
|
741
775
|
|
742
|
-
a1 = util_spec
|
776
|
+
a1 = util_spec "a", 1
|
743
777
|
|
744
|
-
a1_p1 = util_spec
|
778
|
+
a1_p1 = util_spec "a", 1 do |s|
|
745
779
|
s.platform = Gem::Platform.local
|
746
780
|
end
|
747
781
|
|
748
|
-
a1_p2 = util_spec
|
749
|
-
s.platform =
|
782
|
+
a1_p2 = util_spec "a", 1 do |s|
|
783
|
+
s.platform = "unknown"
|
750
784
|
end
|
751
785
|
|
752
786
|
selected = r.select_local_platforms [a1, a1_p1, a1_p2]
|
@@ -755,18 +789,18 @@ class TestGemResolver < Gem::TestCase
|
|
755
789
|
end
|
756
790
|
|
757
791
|
def test_search_for_local_platform_partial_string_match
|
758
|
-
a1 = util_spec
|
792
|
+
a1 = util_spec "a", 1
|
759
793
|
|
760
|
-
a1_p1 = util_spec
|
794
|
+
a1_p1 = util_spec "a", 1 do |s|
|
761
795
|
s.platform = Gem::Platform.local.os
|
762
796
|
end
|
763
797
|
|
764
|
-
a1_p2 = util_spec
|
765
|
-
s.platform =
|
798
|
+
a1_p2 = util_spec "a", 1 do |s|
|
799
|
+
s.platform = "unknown"
|
766
800
|
end
|
767
801
|
|
768
802
|
s = set(a1_p1, a1_p2, a1)
|
769
|
-
d = [make_dep(
|
803
|
+
d = [make_dep("a")]
|
770
804
|
r = Gem::Resolver.new(d, s)
|
771
805
|
|
772
806
|
assert_resolves_to [a1_p1], r
|