rubygems-update 2.7.11 → 3.0.9
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/.rubocop.yml +67 -0
- data/.travis.yml +24 -18
- data/CODE_OF_CONDUCT.md +10 -8
- data/CONTRIBUTING.md +148 -0
- data/History.txt +458 -8
- data/MAINTAINERS.txt +1 -0
- data/Manifest.txt +16 -9
- data/POLICIES.md +92 -0
- data/README.md +53 -26
- data/Rakefile +77 -211
- data/{UPGRADING.rdoc → UPGRADING.md} +31 -32
- data/appveyor.yml +20 -45
- data/bin/gem +1 -2
- data/bin/update_rubygems +2 -3
- data/bundler/CHANGELOG.md +65 -0
- data/bundler/bundler.gemspec +7 -1
- data/bundler/lib/bundler/build_metadata.rb +1 -1
- data/bundler/lib/bundler/cli/add.rb +15 -5
- data/bundler/lib/bundler/cli/binstubs.rb +8 -2
- data/bundler/lib/bundler/cli/doctor.rb +47 -1
- data/bundler/lib/bundler/cli/install.rb +8 -5
- data/bundler/lib/bundler/cli/list.rb +41 -5
- data/bundler/lib/bundler/cli/outdated.rb +7 -1
- data/bundler/lib/bundler/cli/pristine.rb +4 -0
- data/bundler/lib/bundler/cli/remove.rb +18 -0
- data/bundler/lib/bundler/cli.rb +63 -21
- data/bundler/lib/bundler/definition.rb +15 -16
- data/bundler/lib/bundler/dependency.rb +2 -2
- data/bundler/lib/bundler/dsl.rb +19 -3
- data/bundler/lib/bundler/feature_flag.rb +7 -0
- data/bundler/lib/bundler/gem_version_promoter.rb +4 -2
- data/bundler/lib/bundler/injector.rb +168 -9
- data/bundler/lib/bundler/installer/parallel_installer.rb +5 -0
- data/bundler/lib/bundler/installer.rb +29 -6
- data/bundler/lib/bundler/plugin/events.rb +61 -0
- data/bundler/lib/bundler/plugin.rb +10 -3
- data/bundler/lib/bundler/resolver.rb +2 -2
- data/bundler/lib/bundler/rubygems_gem_installer.rb +7 -0
- data/bundler/lib/bundler/runtime.rb +8 -2
- data/bundler/lib/bundler/settings/validator.rb +23 -0
- data/bundler/lib/bundler/settings.rb +24 -3
- data/bundler/lib/bundler/shared_helpers.rb +19 -3
- data/bundler/lib/bundler/source/metadata.rb +2 -3
- data/bundler/lib/bundler/source.rb +9 -9
- data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +1 -0
- data/bundler/lib/bundler/version.rb +1 -1
- data/bundler/lib/bundler.rb +26 -8
- data/bundler/man/bundle-add.ronn +13 -2
- data/bundler/man/bundle-config.ronn +21 -0
- data/bundler/man/bundle-install.ronn +1 -1
- data/bundler/man/bundle-list.ronn +19 -1
- data/bundler/man/bundle-outdated.ronn +4 -0
- data/bundler/man/bundle-remove.ronn +23 -0
- data/bundler/man/bundle-update.ronn +1 -1
- data/bundler/man/bundle.ronn +3 -0
- data/lib/rubygems/available_set.rb +1 -1
- data/lib/rubygems/basic_specification.rb +12 -12
- data/lib/rubygems/bundler_version_finder.rb +3 -3
- data/lib/rubygems/command.rb +22 -15
- data/lib/rubygems/command_manager.rb +22 -5
- data/lib/rubygems/commands/build_command.rb +41 -7
- data/lib/rubygems/commands/cert_command.rb +45 -24
- data/lib/rubygems/commands/check_command.rb +1 -1
- data/lib/rubygems/commands/cleanup_command.rb +14 -7
- data/lib/rubygems/commands/contents_command.rb +14 -15
- data/lib/rubygems/commands/dependency_command.rb +17 -17
- data/lib/rubygems/commands/environment_command.rb +20 -1
- data/lib/rubygems/commands/fetch_command.rb +2 -3
- data/lib/rubygems/commands/generate_index_command.rb +2 -3
- data/lib/rubygems/commands/help_command.rb +12 -13
- data/lib/rubygems/commands/info_command.rb +33 -0
- data/lib/rubygems/commands/install_command.rb +21 -17
- data/lib/rubygems/commands/list_command.rb +0 -1
- data/lib/rubygems/commands/lock_command.rb +3 -4
- data/lib/rubygems/commands/open_command.rb +16 -10
- data/lib/rubygems/commands/owner_command.rb +21 -7
- data/lib/rubygems/commands/pristine_command.rb +23 -16
- data/lib/rubygems/commands/push_command.rb +19 -8
- data/lib/rubygems/commands/query_command.rb +24 -24
- data/lib/rubygems/commands/rdoc_command.rb +3 -4
- data/lib/rubygems/commands/search_command.rb +0 -1
- data/lib/rubygems/commands/server_command.rb +1 -2
- data/lib/rubygems/commands/setup_command.rb +86 -48
- data/lib/rubygems/commands/signin_command.rb +2 -1
- data/lib/rubygems/commands/signout_command.rb +2 -2
- data/lib/rubygems/commands/sources_command.rb +11 -12
- data/lib/rubygems/commands/specification_command.rb +7 -7
- data/lib/rubygems/commands/uninstall_command.rb +50 -18
- data/lib/rubygems/commands/unpack_command.rb +16 -7
- data/lib/rubygems/commands/update_command.rb +28 -23
- data/lib/rubygems/commands/which_command.rb +5 -8
- data/lib/rubygems/commands/yank_command.rb +1 -2
- data/lib/rubygems/compatibility.rb +1 -21
- data/lib/rubygems/config_file.rb +36 -36
- data/lib/rubygems/core_ext/kernel_require.rb +6 -6
- data/lib/rubygems/core_ext/kernel_warn.rb +45 -0
- data/lib/rubygems/defaults.rb +31 -19
- data/lib/rubygems/dependency.rb +15 -15
- data/lib/rubygems/dependency_installer.rb +30 -33
- data/lib/rubygems/dependency_list.rb +9 -10
- data/lib/rubygems/deprecate.rb +2 -3
- data/lib/rubygems/doctor.rb +5 -6
- data/lib/rubygems/errors.rb +3 -3
- data/lib/rubygems/exceptions.rb +11 -8
- data/lib/rubygems/ext/build_error.rb +0 -1
- data/lib/rubygems/ext/builder.rb +50 -23
- data/lib/rubygems/ext/cmake_builder.rb +2 -2
- data/lib/rubygems/ext/configure_builder.rb +2 -3
- data/lib/rubygems/ext/ext_conf_builder.rb +8 -7
- data/lib/rubygems/ext/rake_builder.rb +16 -18
- data/lib/rubygems/ext.rb +0 -1
- data/lib/rubygems/gem_runner.rb +2 -2
- data/lib/rubygems/gemcutter_utilities.rb +46 -12
- data/lib/rubygems/indexer.rb +19 -12
- data/lib/rubygems/install_default_message.rb +0 -1
- data/lib/rubygems/install_message.rb +0 -1
- data/lib/rubygems/install_update_options.rb +3 -29
- data/lib/rubygems/installer.rb +97 -55
- data/lib/rubygems/installer_test_case.rb +2 -16
- data/lib/rubygems/local_remote_options.rb +5 -4
- data/lib/rubygems/mock_gem_ui.rb +3 -4
- data/lib/rubygems/name_tuple.rb +4 -4
- data/lib/rubygems/package/digest_io.rb +3 -4
- data/lib/rubygems/package/file_source.rb +3 -4
- data/lib/rubygems/package/io_source.rb +1 -2
- data/lib/rubygems/package/old.rb +8 -16
- data/lib/rubygems/package/source.rb +0 -1
- data/lib/rubygems/package/tar_header.rb +13 -4
- data/lib/rubygems/package/tar_reader/entry.rb +20 -4
- data/lib/rubygems/package/tar_reader.rb +2 -4
- data/lib/rubygems/package/tar_test_case.rb +2 -8
- data/lib/rubygems/package/tar_writer.rb +13 -15
- data/lib/rubygems/package.rb +90 -63
- data/lib/rubygems/package_task.rb +0 -1
- data/lib/rubygems/path_support.rb +16 -6
- data/lib/rubygems/platform.rb +4 -5
- data/lib/rubygems/psych_tree.rb +1 -1
- data/lib/rubygems/rdoc.rb +2 -313
- data/lib/rubygems/remote_fetcher.rb +29 -82
- data/lib/rubygems/request/connection_pools.rb +24 -13
- data/lib/rubygems/request/http_pool.rb +3 -4
- data/lib/rubygems/request/https_pool.rb +1 -3
- data/lib/rubygems/request.rb +17 -16
- data/lib/rubygems/request_set/gem_dependency_api.rb +46 -49
- data/lib/rubygems/request_set/lockfile/parser.rb +18 -29
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +9 -9
- data/lib/rubygems/request_set/lockfile.rb +12 -12
- data/lib/rubygems/request_set.rb +52 -25
- data/lib/rubygems/requirement.rb +32 -21
- data/lib/rubygems/resolver/activation_request.rb +6 -6
- data/lib/rubygems/resolver/api_set.rb +5 -6
- data/lib/rubygems/resolver/api_specification.rb +2 -3
- data/lib/rubygems/resolver/best_set.rb +5 -6
- data/lib/rubygems/resolver/composed_set.rb +5 -6
- data/lib/rubygems/resolver/conflict.rb +5 -5
- data/lib/rubygems/resolver/current_set.rb +1 -2
- data/lib/rubygems/resolver/dependency_request.rb +4 -4
- data/lib/rubygems/resolver/git_set.rb +5 -6
- data/lib/rubygems/resolver/git_specification.rb +4 -5
- data/lib/rubygems/resolver/index_set.rb +5 -6
- data/lib/rubygems/resolver/index_specification.rb +3 -4
- data/lib/rubygems/resolver/installed_specification.rb +3 -4
- data/lib/rubygems/resolver/installer_set.rb +12 -12
- data/lib/rubygems/resolver/local_specification.rb +1 -2
- data/lib/rubygems/resolver/lock_set.rb +5 -6
- data/lib/rubygems/resolver/lock_specification.rb +7 -8
- data/lib/rubygems/resolver/requirement_list.rb +1 -1
- data/lib/rubygems/resolver/set.rb +2 -2
- data/lib/rubygems/resolver/source_set.rb +4 -5
- data/lib/rubygems/resolver/spec_specification.rb +1 -2
- data/lib/rubygems/resolver/specification.rb +10 -7
- data/lib/rubygems/resolver/stats.rb +1 -1
- data/lib/rubygems/resolver/vendor_set.rb +4 -5
- data/lib/rubygems/resolver/vendor_specification.rb +2 -3
- data/lib/rubygems/resolver.rb +14 -16
- data/lib/rubygems/s3_uri_signer.rb +183 -0
- data/lib/rubygems/safe_yaml.rb +18 -10
- data/lib/rubygems/security/policies.rb +1 -2
- data/lib/rubygems/security/policy.rb +25 -25
- data/lib/rubygems/security/signer.rb +72 -24
- data/lib/rubygems/security/trust_dir.rb +10 -10
- data/lib/rubygems/security.rb +21 -22
- data/lib/rubygems/security_option.rb +0 -1
- data/lib/rubygems/server.rb +21 -21
- data/lib/rubygems/source/git.rb +9 -10
- data/lib/rubygems/source/installed.rb +3 -4
- data/lib/rubygems/source/local.rb +7 -7
- data/lib/rubygems/source/lock.rb +4 -4
- data/lib/rubygems/source/specific_file.rb +5 -5
- data/lib/rubygems/source/vendor.rb +2 -3
- data/lib/rubygems/source.rb +16 -25
- data/lib/rubygems/source_list.rb +2 -2
- data/lib/rubygems/source_local.rb +0 -1
- data/lib/rubygems/spec_fetcher.rb +5 -6
- data/lib/rubygems/specification.rb +219 -558
- data/lib/rubygems/specification_policy.rb +407 -0
- data/lib/rubygems/stub_specification.rb +12 -17
- data/lib/rubygems/test_case.rb +161 -75
- data/lib/rubygems/test_utilities.rb +20 -35
- data/lib/rubygems/text.rb +6 -6
- data/lib/rubygems/uninstaller.rb +38 -27
- data/lib/rubygems/uri_formatter.rb +1 -2
- data/lib/rubygems/user_interaction.rb +37 -89
- data/lib/rubygems/util/licenses.rb +27 -1
- data/lib/rubygems/util/list.rb +1 -1
- data/lib/rubygems/util.rb +32 -14
- data/lib/rubygems/validator.rb +4 -5
- data/lib/rubygems/version.rb +15 -15
- data/lib/rubygems/version_option.rb +2 -3
- data/lib/rubygems.rb +71 -102
- data/rubygems-update.gemspec +43 -0
- data/setup.rb +2 -8
- data/test/rubygems/ca_cert.pem +74 -65
- data/test/rubygems/client.pem +103 -45
- data/test/rubygems/rubygems_plugin.rb +0 -1
- data/test/rubygems/simple_gem.rb +1 -1
- data/test/rubygems/ssl_cert.pem +78 -17
- data/test/rubygems/ssl_key.pem +25 -13
- data/test/rubygems/test_bundled_ca.rb +1 -1
- data/test/rubygems/test_config.rb +7 -2
- data/test/rubygems/test_gem.rb +205 -132
- data/test/rubygems/test_gem_bundler_version_finder.rb +4 -0
- data/test/rubygems/test_gem_command.rb +0 -1
- data/test/rubygems/test_gem_command_manager.rb +18 -3
- data/test/rubygems/test_gem_commands_build_command.rb +220 -15
- data/test/rubygems/test_gem_commands_cert_command.rb +69 -8
- data/test/rubygems/test_gem_commands_check_command.rb +1 -1
- data/test/rubygems/test_gem_commands_cleanup_command.rb +27 -1
- data/test/rubygems/test_gem_commands_contents_command.rb +1 -2
- data/test/rubygems/test_gem_commands_dependency_command.rb +33 -34
- data/test/rubygems/test_gem_commands_environment_command.rb +1 -0
- data/test/rubygems/test_gem_commands_fetch_command.rb +0 -1
- data/test/rubygems/test_gem_commands_generate_index_command.rb +0 -1
- data/test/rubygems/test_gem_commands_help_command.rb +7 -4
- data/test/rubygems/test_gem_commands_info_command.rb +44 -0
- data/test/rubygems/test_gem_commands_install_command.rb +79 -12
- data/test/rubygems/test_gem_commands_lock_command.rb +0 -1
- data/test/rubygems/test_gem_commands_open_command.rb +29 -0
- data/test/rubygems/test_gem_commands_outdated_command.rb +0 -1
- data/test/rubygems/test_gem_commands_owner_command.rb +93 -57
- data/test/rubygems/test_gem_commands_pristine_command.rb +65 -30
- data/test/rubygems/test_gem_commands_push_command.rb +54 -0
- data/test/rubygems/test_gem_commands_query_command.rb +102 -100
- data/test/rubygems/test_gem_commands_search_command.rb +0 -1
- data/test/rubygems/test_gem_commands_server_command.rb +0 -1
- data/test/rubygems/test_gem_commands_setup_command.rb +50 -15
- data/test/rubygems/test_gem_commands_signin_command.rb +1 -1
- data/test/rubygems/test_gem_commands_sources_command.rb +0 -1
- data/test/rubygems/test_gem_commands_specification_command.rb +2 -3
- data/test/rubygems/test_gem_commands_stale_command.rb +3 -2
- data/test/rubygems/test_gem_commands_uninstall_command.rb +161 -8
- data/test/rubygems/test_gem_commands_unpack_command.rb +17 -1
- data/test/rubygems/test_gem_commands_update_command.rb +19 -2
- data/test/rubygems/test_gem_commands_which_command.rb +0 -1
- data/test/rubygems/test_gem_commands_yank_command.rb +0 -1
- data/test/rubygems/test_gem_config_file.rb +4 -2
- data/test/rubygems/test_gem_dependency.rb +0 -1
- data/test/rubygems/test_gem_dependency_installer.rb +8 -5
- data/test/rubygems/test_gem_dependency_list.rb +6 -7
- data/test/rubygems/test_gem_dependency_resolution_error.rb +0 -1
- data/test/rubygems/test_gem_doctor.rb +1 -2
- data/test/rubygems/test_gem_ext_builder.rb +10 -23
- data/test/rubygems/test_gem_ext_cmake_builder.rb +5 -4
- data/test/rubygems/test_gem_ext_configure_builder.rb +3 -3
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +8 -9
- data/test/rubygems/test_gem_ext_rake_builder.rb +20 -5
- data/test/rubygems/test_gem_gem_runner.rb +0 -1
- data/test/rubygems/test_gem_gemcutter_utilities.rb +32 -6
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -1
- data/test/rubygems/test_gem_indexer.rb +16 -10
- data/test/rubygems/test_gem_install_update_options.rb +1 -20
- data/test/rubygems/test_gem_installer.rb +154 -119
- data/test/rubygems/test_gem_local_remote_options.rb +3 -3
- data/test/rubygems/test_gem_name_tuple.rb +0 -1
- data/test/rubygems/test_gem_package.rb +77 -31
- data/test/rubygems/test_gem_package_old.rb +0 -1
- data/test/rubygems/test_gem_package_tar_header.rb +42 -2
- data/test/rubygems/test_gem_package_tar_reader.rb +0 -1
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +11 -0
- data/test/rubygems/test_gem_package_tar_writer.rb +43 -7
- data/test/rubygems/test_gem_package_task.rb +2 -2
- data/test/rubygems/test_gem_path_support.rb +28 -11
- data/test/rubygems/test_gem_platform.rb +4 -5
- data/test/rubygems/test_gem_rdoc.rb +1 -136
- data/test/rubygems/test_gem_remote_fetcher.rb +241 -141
- data/test/rubygems/test_gem_request.rb +9 -9
- data/test/rubygems/test_gem_request_connection_pools.rb +24 -3
- data/test/rubygems/test_gem_request_set.rb +5 -5
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +82 -64
- data/test/rubygems/test_gem_request_set_lockfile.rb +1 -2
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +4 -9
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +1 -1
- data/test/rubygems/test_gem_requirement.rb +24 -4
- data/test/rubygems/test_gem_resolver.rb +13 -17
- data/test/rubygems/test_gem_resolver_activation_request.rb +0 -1
- data/test/rubygems/test_gem_resolver_api_set.rb +0 -1
- data/test/rubygems/test_gem_resolver_api_specification.rb +0 -1
- data/test/rubygems/test_gem_resolver_best_set.rb +0 -1
- data/test/rubygems/test_gem_resolver_composed_set.rb +0 -1
- data/test/rubygems/test_gem_resolver_conflict.rb +0 -1
- data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -1
- data/test/rubygems/test_gem_resolver_git_set.rb +0 -1
- data/test/rubygems/test_gem_resolver_git_specification.rb +0 -1
- data/test/rubygems/test_gem_resolver_index_set.rb +0 -1
- data/test/rubygems/test_gem_resolver_index_specification.rb +0 -1
- data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -1
- data/test/rubygems/test_gem_resolver_installer_set.rb +2 -3
- data/test/rubygems/test_gem_resolver_local_specification.rb +0 -1
- data/test/rubygems/test_gem_resolver_lock_set.rb +0 -1
- data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -1
- data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -1
- data/test/rubygems/test_gem_resolver_specification.rb +1 -2
- data/test/rubygems/test_gem_resolver_vendor_set.rb +0 -1
- data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -1
- data/test/rubygems/test_gem_security.rb +1 -3
- data/test/rubygems/test_gem_security_policy.rb +5 -6
- data/test/rubygems/test_gem_security_signer.rb +4 -3
- data/test/rubygems/test_gem_security_trust_dir.rb +1 -2
- data/test/rubygems/test_gem_server.rb +4 -4
- data/test/rubygems/test_gem_source.rb +0 -13
- data/test/rubygems/test_gem_source_fetch_problem.rb +0 -1
- data/test/rubygems/test_gem_source_git.rb +0 -1
- data/test/rubygems/test_gem_source_installed.rb +0 -1
- data/test/rubygems/test_gem_source_lock.rb +0 -1
- data/test/rubygems/test_gem_source_vendor.rb +0 -1
- data/test/rubygems/test_gem_spec_fetcher.rb +0 -1
- data/test/rubygems/test_gem_specification.rb +366 -198
- data/test/rubygems/test_gem_stream_ui.rb +15 -32
- data/test/rubygems/test_gem_stub_specification.rb +0 -2
- data/test/rubygems/test_gem_text.rb +4 -0
- data/test/rubygems/test_gem_uninstaller.rb +42 -3
- data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -1
- data/test/rubygems/test_gem_uri_formatter.rb +0 -1
- data/test/rubygems/test_gem_util.rb +31 -11
- data/test/rubygems/test_gem_validator.rb +0 -1
- data/test/rubygems/test_gem_version.rb +11 -11
- data/test/rubygems/test_gem_version_option.rb +0 -1
- data/test/rubygems/test_remote_fetch_error.rb +0 -1
- data/test/rubygems/test_require.rb +67 -52
- data/util/CL2notes +1 -2
- data/util/ci +20 -12
- data/util/cops/deprecations.rb +52 -0
- data/util/create_certs.rb +6 -7
- data/util/create_certs.sh +27 -0
- data/util/create_encrypted_key.rb +4 -5
- data/util/patch_with_prs.rb +1 -1
- data/util/rubocop +8 -0
- data/util/update_bundled_ca_certificates.rb +12 -13
- data/util/update_changelog.rb +1 -1
- metadata +61 -51
- data/.autotest +0 -71
- data/.document +0 -5
- data/CONTRIBUTING.rdoc +0 -130
- data/CVE-2013-4287.txt +0 -35
- data/CVE-2013-4363.txt +0 -45
- data/CVE-2015-3900.txt +0 -40
- data/POLICIES.rdoc +0 -74
- data/test/rubygems/fix_openssl_warnings.rb +0 -13
@@ -218,7 +218,7 @@ ruby "0"
|
|
218
218
|
assert_kind_of Gem::RequestSet::GemDependencyAPI, gem_deps
|
219
219
|
io
|
220
220
|
end
|
221
|
-
tf.close!
|
221
|
+
tf.close!
|
222
222
|
|
223
223
|
assert_equal [dep('a')], rs.dependencies
|
224
224
|
|
@@ -239,7 +239,7 @@ ruby "0"
|
|
239
239
|
assert_kind_of Gem::RequestSet::GemDependencyAPI, gem_deps
|
240
240
|
io
|
241
241
|
end
|
242
|
-
tf.close!
|
242
|
+
tf.close!
|
243
243
|
|
244
244
|
assert_equal [dep('a')], rs.dependencies
|
245
245
|
end
|
@@ -254,7 +254,7 @@ ruby "0"
|
|
254
254
|
rs.load_gemdeps io.path, [:test]
|
255
255
|
io
|
256
256
|
end
|
257
|
-
tf.close!
|
257
|
+
tf.close!
|
258
258
|
|
259
259
|
assert_empty rs.dependencies
|
260
260
|
end
|
@@ -346,7 +346,7 @@ ruby "0"
|
|
346
346
|
rs.load_gemdeps io.path
|
347
347
|
io
|
348
348
|
end
|
349
|
-
tf.close!
|
349
|
+
tf.close!
|
350
350
|
|
351
351
|
res = rs.resolve
|
352
352
|
assert_equal 1, res.size
|
@@ -410,7 +410,7 @@ ruby "0"
|
|
410
410
|
rs.load_gemdeps io.path
|
411
411
|
io
|
412
412
|
end
|
413
|
-
tf.close!
|
413
|
+
tf.close!
|
414
414
|
|
415
415
|
res = rs.resolve
|
416
416
|
assert_equal 2, res.size
|
@@ -19,36 +19,29 @@ class TestGemRequestSetGemDependencyAPI < Gem::TestCase
|
|
19
19
|
@gda.instance_variable_set :@vendor_set, @vendor_set
|
20
20
|
end
|
21
21
|
|
22
|
-
def with_engine_version
|
23
|
-
engine
|
24
|
-
|
25
|
-
engine_version = Object.const_get engine_version_const
|
22
|
+
def with_engine_version(name, version)
|
23
|
+
engine = RUBY_ENGINE
|
24
|
+
engine_version = RUBY_ENGINE_VERSION
|
26
25
|
|
27
|
-
Object.send :remove_const, :RUBY_ENGINE
|
28
|
-
Object.send :remove_const,
|
29
|
-
Object.const_defined? engine_version_const
|
26
|
+
Object.send :remove_const, :RUBY_ENGINE
|
27
|
+
Object.send :remove_const, :RUBY_ENGINE_VERSION
|
30
28
|
|
31
|
-
|
32
|
-
Object.const_set :
|
33
|
-
Object.const_set new_engine_version_const, version if version
|
29
|
+
Object.const_set :RUBY_ENGINE, name if name
|
30
|
+
Object.const_set :RUBY_ENGINE_VERSION, version if version
|
34
31
|
|
35
32
|
Gem.instance_variable_set :@ruby_version, Gem::Version.new(version)
|
36
33
|
|
37
|
-
|
34
|
+
begin
|
35
|
+
yield
|
36
|
+
ensure
|
37
|
+
Object.send :remove_const, :RUBY_ENGINE if name
|
38
|
+
Object.send :remove_const, :RUBY_ENGINE_VERSION if version
|
38
39
|
|
39
|
-
|
40
|
-
|
41
|
-
Object.send :remove_const, new_engine_version_const if version
|
42
|
-
|
43
|
-
Object.send :remove_const, engine_version_const if name == 'ruby' and
|
44
|
-
Object.const_defined? engine_version_const
|
45
|
-
|
46
|
-
Object.const_set :RUBY_ENGINE, engine if engine
|
47
|
-
Object.const_set engine_version_const, engine_version unless
|
48
|
-
Object.const_defined? engine_version_const
|
40
|
+
Object.const_set :RUBY_ENGINE, engine
|
41
|
+
Object.const_set :RUBY_ENGINE_VERSION, engine_version
|
49
42
|
|
50
|
-
|
51
|
-
|
43
|
+
Gem.send :remove_instance_variable, :@ruby_version
|
44
|
+
end
|
52
45
|
end
|
53
46
|
|
54
47
|
def test_gempspec_with_multiple_runtime_deps
|
@@ -283,6 +276,14 @@ class TestGemRequestSetGemDependencyAPI < Gem::TestCase
|
|
283
276
|
refute_empty set.dependencies
|
284
277
|
end
|
285
278
|
|
279
|
+
with_engine_version 'truffleruby', '2.0.0' do
|
280
|
+
set = Gem::RequestSet.new
|
281
|
+
gda = @GDA.new set, 'gem.deps.rb'
|
282
|
+
gda.gem 'a', :platforms => :ruby
|
283
|
+
|
284
|
+
refute_empty set.dependencies
|
285
|
+
end
|
286
|
+
|
286
287
|
with_engine_version 'jruby', '1.7.6' do
|
287
288
|
set = Gem::RequestSet.new
|
288
289
|
gda = @GDA.new set, 'gem.deps.rb'
|
@@ -310,6 +311,12 @@ class TestGemRequestSetGemDependencyAPI < Gem::TestCase
|
|
310
311
|
|
311
312
|
assert_empty @set.dependencies
|
312
313
|
end
|
314
|
+
|
315
|
+
with_engine_version 'truffleruby', '1.2.3' do
|
316
|
+
@gda.gem 'a', :platforms => :mri
|
317
|
+
|
318
|
+
assert_empty @set.dependencies
|
319
|
+
end
|
313
320
|
end
|
314
321
|
|
315
322
|
def test_gem_platforms_maglev
|
@@ -332,6 +339,22 @@ class TestGemRequestSetGemDependencyAPI < Gem::TestCase
|
|
332
339
|
Gem.win_platform = win_platform
|
333
340
|
end
|
334
341
|
|
342
|
+
def test_gem_platforms_truffleruby
|
343
|
+
with_engine_version 'truffleruby', '1.0.0' do
|
344
|
+
set = Gem::RequestSet.new
|
345
|
+
gda = @GDA.new set, 'gem.deps.rb'
|
346
|
+
gda.gem 'a', :platforms => :truffleruby
|
347
|
+
|
348
|
+
refute_empty set.dependencies
|
349
|
+
|
350
|
+
set = Gem::RequestSet.new
|
351
|
+
gda = @GDA.new set, 'gem.deps.rb'
|
352
|
+
gda.gem 'a', :platforms => :maglev
|
353
|
+
|
354
|
+
assert_empty set.dependencies
|
355
|
+
end
|
356
|
+
end
|
357
|
+
|
335
358
|
def test_gem_platforms_multiple
|
336
359
|
win_platform, Gem.win_platform = Gem.win_platform?, false
|
337
360
|
|
@@ -627,11 +650,7 @@ end
|
|
627
650
|
assert_equal [dep('a'), dep('b')], @set.dependencies
|
628
651
|
io
|
629
652
|
end
|
630
|
-
tf.close!
|
631
|
-
end
|
632
|
-
|
633
|
-
def test_name_typo
|
634
|
-
assert_same @GDA, Gem::RequestSet::GemDepedencyAPI
|
653
|
+
tf.close!
|
635
654
|
end
|
636
655
|
|
637
656
|
def test_pin_gem_source
|
@@ -656,20 +675,23 @@ end
|
|
656
675
|
end
|
657
676
|
|
658
677
|
def test_platform_mswin
|
659
|
-
|
660
|
-
|
661
|
-
@gda.
|
678
|
+
if win_platform?
|
679
|
+
util_set_arch 'x86-mswin32-60' do
|
680
|
+
@gda.platform :mswin do
|
681
|
+
@gda.gem 'a'
|
682
|
+
end
|
683
|
+
|
684
|
+
assert_equal [dep('a')], @set.dependencies
|
685
|
+
refute_empty @set.dependencies
|
662
686
|
end
|
687
|
+
else
|
688
|
+
util_set_arch 'i686-darwin8.10.1' do
|
689
|
+
@gda.platform :mswin do
|
690
|
+
@gda.gem 'a'
|
691
|
+
end
|
663
692
|
|
664
|
-
|
665
|
-
end
|
666
|
-
|
667
|
-
util_set_arch 'x86-mswin32-60' do
|
668
|
-
@gda.platform :mswin do
|
669
|
-
@gda.gem 'a'
|
693
|
+
assert_empty @set.dependencies
|
670
694
|
end
|
671
|
-
|
672
|
-
refute_empty @set.dependencies
|
673
695
|
end
|
674
696
|
end
|
675
697
|
|
@@ -712,26 +734,20 @@ end
|
|
712
734
|
end
|
713
735
|
|
714
736
|
def test_platforms
|
715
|
-
|
716
|
-
|
717
|
-
@gda.
|
718
|
-
|
719
|
-
|
720
|
-
assert_equal [dep('a')], @set.dependencies
|
737
|
+
unless win_platform?
|
738
|
+
util_set_arch 'i686-darwin8.10.1' do
|
739
|
+
@gda.platforms :ruby do
|
740
|
+
@gda.gem 'a'
|
741
|
+
end
|
721
742
|
|
722
|
-
|
723
|
-
@gda.gem 'b'
|
724
|
-
end
|
743
|
+
assert_equal [dep('a')], @set.dependencies
|
725
744
|
|
726
|
-
|
727
|
-
|
745
|
+
@gda.platforms :mswin do
|
746
|
+
@gda.gem 'b'
|
747
|
+
end
|
728
748
|
|
729
|
-
|
730
|
-
@gda.platforms :mswin do
|
731
|
-
@gda.gem 'c'
|
749
|
+
assert_equal [dep('a')], @set.dependencies
|
732
750
|
end
|
733
|
-
|
734
|
-
assert_equal [dep('a'), dep('c')], @set.dependencies
|
735
751
|
end
|
736
752
|
end
|
737
753
|
|
@@ -745,6 +761,12 @@ end
|
|
745
761
|
:engine => 'jruby', :engine_version => '1.7.6'
|
746
762
|
|
747
763
|
end
|
764
|
+
|
765
|
+
with_engine_version 'truffleruby', '1.0.0-rc11' do
|
766
|
+
assert @gda.ruby RUBY_VERSION,
|
767
|
+
:engine => 'truffleruby', :engine_version => '1.0.0-rc11'
|
768
|
+
|
769
|
+
end
|
748
770
|
end
|
749
771
|
|
750
772
|
def test_ruby_engine_mismatch_engine
|
@@ -808,24 +830,20 @@ end
|
|
808
830
|
|
809
831
|
def test_with_engine_version
|
810
832
|
version = RUBY_VERSION
|
811
|
-
engine
|
812
|
-
|
813
|
-
engine_version_const = "#{Gem.ruby_engine.upcase}_VERSION"
|
814
|
-
engine_version = Object.const_get engine_version_const
|
833
|
+
engine = Gem.ruby_engine
|
834
|
+
engine_version = RUBY_ENGINE_VERSION
|
815
835
|
|
816
836
|
with_engine_version 'other', '1.2.3' do
|
817
837
|
assert_equal 'other', Gem.ruby_engine
|
818
|
-
assert_equal '1.2.3',
|
838
|
+
assert_equal '1.2.3', RUBY_ENGINE_VERSION
|
819
839
|
|
820
|
-
assert_equal version, RUBY_VERSION
|
840
|
+
assert_equal version, RUBY_VERSION
|
821
841
|
end
|
822
842
|
|
823
843
|
assert_equal version, RUBY_VERSION
|
824
844
|
assert_equal engine, Gem.ruby_engine
|
825
845
|
|
826
|
-
assert_equal engine_version,
|
827
|
-
engine
|
846
|
+
assert_equal engine_version, RUBY_ENGINE_VERSION if engine
|
828
847
|
end
|
829
848
|
|
830
849
|
end
|
831
|
-
|
@@ -21,14 +21,13 @@ class TestGemRequestSetLockfile < Gem::TestCase
|
|
21
21
|
@set.instance_variable_set :@vendor_set, @vendor_set
|
22
22
|
|
23
23
|
@gem_deps_file = 'gem.deps.rb'
|
24
|
-
|
25
24
|
end
|
26
25
|
|
27
26
|
def lockfile
|
28
27
|
Gem::RequestSet::Lockfile.build @set, @gem_deps_file
|
29
28
|
end
|
30
29
|
|
31
|
-
def write_lockfile
|
30
|
+
def write_lockfile(lockfile)
|
32
31
|
@lock_file = File.expand_path "#{@gem_deps_file}.lock"
|
33
32
|
|
34
33
|
File.open @lock_file, 'w' do |io|
|
@@ -248,13 +248,8 @@ DEPENDENCIES
|
|
248
248
|
|
249
249
|
assert_equal %w[a-2], lockfile_set.specs.map { |s| s.full_name }
|
250
250
|
|
251
|
-
|
252
|
-
|
253
|
-
lockfile_set.specs.flat_map { |s| s.sources.map{ |src| src.uri.to_s } }
|
254
|
-
else # FIXME: remove when 1.8 is dropped
|
255
|
-
assert_equal %w[https://gems.example/ https://other.example/],
|
256
|
-
lockfile_set.specs.map { |s| s.sources.map{ |src| src.uri.to_s } }.flatten(1)
|
257
|
-
end
|
251
|
+
assert_equal %w[https://gems.example/ https://other.example/],
|
252
|
+
lockfile_set.specs.flat_map { |s| s.sources.map{ |src| src.uri.to_s } }
|
258
253
|
end
|
259
254
|
|
260
255
|
def test_parse_GIT
|
@@ -535,13 +530,13 @@ DEPENDENCIES
|
|
535
530
|
refute lockfile_set
|
536
531
|
end
|
537
532
|
|
538
|
-
def write_lockfile
|
533
|
+
def write_lockfile(lockfile)
|
539
534
|
File.open @lock_file, 'w' do |io|
|
540
535
|
io.write lockfile
|
541
536
|
end
|
542
537
|
end
|
543
538
|
|
544
|
-
def parse_lockfile
|
539
|
+
def parse_lockfile(set, platforms)
|
545
540
|
tokenizer = Gem::RequestSet::Lockfile::Tokenizer.from_file @lock_file
|
546
541
|
parser = tokenizer.make_parser set, platforms
|
547
542
|
parser.parse
|
@@ -20,6 +20,12 @@ class TestGemRequirement < Gem::TestCase
|
|
20
20
|
refute_requirement_equal "= 1.2", "= 1.3"
|
21
21
|
refute_requirement_equal "= 1.3", "= 1.2"
|
22
22
|
|
23
|
+
refute_requirement_equal "~> 1.3", "~> 1.3.0"
|
24
|
+
refute_requirement_equal "~> 1.3.0", "~> 1.3"
|
25
|
+
|
26
|
+
assert_requirement_equal ["> 2", "~> 1.3"], ["> 2.0", "~> 1.3"]
|
27
|
+
assert_requirement_equal ["> 2.0", "~> 1.3"], ["> 2", "~> 1.3"]
|
28
|
+
|
23
29
|
refute_equal Object.new, req("= 1.2")
|
24
30
|
refute_equal req("= 1.2"), Object.new
|
25
31
|
end
|
@@ -330,6 +336,20 @@ class TestGemRequirement < Gem::TestCase
|
|
330
336
|
refute_satisfied_by "2.0", "~> 1.4.4"
|
331
337
|
end
|
332
338
|
|
339
|
+
def test_satisfied_by_explicitly_bounded
|
340
|
+
req = [">= 1.4.4", "< 1.5"]
|
341
|
+
|
342
|
+
assert_satisfied_by "1.4.5", req
|
343
|
+
assert_satisfied_by "1.5.0.rc1", req
|
344
|
+
refute_satisfied_by "1.5.0", req
|
345
|
+
|
346
|
+
req = [">= 1.4.4", "< 1.5.a"]
|
347
|
+
|
348
|
+
assert_satisfied_by "1.4.5", req
|
349
|
+
refute_satisfied_by "1.5.0.rc1", req
|
350
|
+
refute_satisfied_by "1.5.0", req
|
351
|
+
end
|
352
|
+
|
333
353
|
def test_specific
|
334
354
|
refute req('> 1') .specific?
|
335
355
|
refute req('>= 1').specific?
|
@@ -373,26 +393,26 @@ class TestGemRequirement < Gem::TestCase
|
|
373
393
|
# Assert that two requirements are equal. Handles Gem::Requirements,
|
374
394
|
# strings, arrays, numbers, and versions.
|
375
395
|
|
376
|
-
def assert_requirement_equal
|
396
|
+
def assert_requirement_equal(expected, actual)
|
377
397
|
assert_equal req(expected), req(actual)
|
378
398
|
end
|
379
399
|
|
380
400
|
# Assert that +version+ satisfies +requirement+.
|
381
401
|
|
382
|
-
def assert_satisfied_by
|
402
|
+
def assert_satisfied_by(version, requirement)
|
383
403
|
assert req(requirement).satisfied_by?(v(version)),
|
384
404
|
"#{requirement} is satisfied by #{version}"
|
385
405
|
end
|
386
406
|
|
387
407
|
# Refute the assumption that two requirements are equal.
|
388
408
|
|
389
|
-
def refute_requirement_equal
|
409
|
+
def refute_requirement_equal(unexpected, actual)
|
390
410
|
refute_equal req(unexpected), req(actual)
|
391
411
|
end
|
392
412
|
|
393
413
|
# Refute the assumption that +version+ satisfies +requirement+.
|
394
414
|
|
395
|
-
def refute_satisfied_by
|
415
|
+
def refute_satisfied_by(version, requirement)
|
396
416
|
refute req(requirement).satisfied_by?(v(version)),
|
397
417
|
"#{requirement} is not satisfied by #{version}"
|
398
418
|
end
|
@@ -23,7 +23,7 @@ class TestGemResolver < Gem::TestCase
|
|
23
23
|
StaticSet.new(specs)
|
24
24
|
end
|
25
25
|
|
26
|
-
def assert_resolves_to
|
26
|
+
def assert_resolves_to(expected, resolver)
|
27
27
|
actual = resolver.resolve
|
28
28
|
|
29
29
|
exp = expected.sort_by { |s| s.full_name }
|
@@ -36,10 +36,6 @@ class TestGemResolver < Gem::TestCase
|
|
36
36
|
flunk e.message
|
37
37
|
end
|
38
38
|
|
39
|
-
def test_self_compatibility
|
40
|
-
assert_same Gem::Resolver, Gem::DependencyResolver
|
41
|
-
end
|
42
|
-
|
43
39
|
def test_self_compose_sets_best_set
|
44
40
|
best_set = @DR::BestSet.new
|
45
41
|
|
@@ -303,7 +299,7 @@ class TestGemResolver < Gem::TestCase
|
|
303
299
|
a2_p1 = a3_p2 = nil
|
304
300
|
|
305
301
|
spec_fetcher do |fetcher|
|
306
|
-
|
302
|
+
fetcher.spec 'a', 2
|
307
303
|
a2_p1 = fetcher.spec 'a', 2 do |s| s.platform = Gem::Platform.local end
|
308
304
|
a3_p2 = fetcher.spec 'a', 3 do |s| s.platform = unknown end
|
309
305
|
end
|
@@ -666,12 +662,12 @@ class TestGemResolver < Gem::TestCase
|
|
666
662
|
end
|
667
663
|
|
668
664
|
def test_second_level_backout
|
669
|
-
b1 =
|
670
|
-
b2 =
|
671
|
-
c1 =
|
672
|
-
c2 =
|
673
|
-
d1 =
|
674
|
-
d2 =
|
665
|
+
b1 = util_spec "b", "1", { "c" => ">= 1" }, "lib/b.rb"
|
666
|
+
b2 = util_spec "b", "2", { "c" => ">= 2" }, "lib/b.rb"
|
667
|
+
c1 = util_spec "c", "1"
|
668
|
+
c2 = util_spec "c", "2"
|
669
|
+
d1 = util_spec "d", "1", { "c" => "< 2" }, "lib/d.rb"
|
670
|
+
d2 = util_spec "d", "2", { "c" => "< 2" }, "lib/d.rb"
|
675
671
|
|
676
672
|
s = set(b1, b2, c1, c2, d1, d2)
|
677
673
|
|
@@ -688,11 +684,11 @@ class TestGemResolver < Gem::TestCase
|
|
688
684
|
sourceB = Gem::Source.new 'http://example.com/b'
|
689
685
|
sourceC = Gem::Source.new 'http://example.com/c'
|
690
686
|
|
691
|
-
spec_A_1 =
|
692
|
-
spec_A_2 =
|
693
|
-
spec_B_1 =
|
694
|
-
spec_B_2 =
|
695
|
-
spec_C_1 =
|
687
|
+
spec_A_1 = util_spec 'some-dep', '0.0.1'
|
688
|
+
spec_A_2 = util_spec 'some-dep', '1.0.0'
|
689
|
+
spec_B_1 = util_spec 'some-dep', '0.0.1'
|
690
|
+
spec_B_2 = util_spec 'some-dep', '0.0.2'
|
691
|
+
spec_C_1 = util_spec 'some-dep', '0.1.0'
|
696
692
|
|
697
693
|
set = StaticSet.new [
|
698
694
|
Gem::Resolver::SpecSpecification.new(nil, spec_B_1, sourceB),
|
@@ -25,8 +25,8 @@ class TestGemResolverInstallerSet < Gem::TestCase
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def test_add_always_install_errors
|
28
|
-
@
|
29
|
-
Gem::RemoteFetcher.fetcher = @
|
28
|
+
@stub_fetcher = Gem::FakeFetcher.new
|
29
|
+
Gem::RemoteFetcher.fetcher = @stub_fetcher
|
30
30
|
|
31
31
|
set = Gem::Resolver::InstallerSet.new :both
|
32
32
|
|
@@ -255,4 +255,3 @@ class TestGemResolverInstallerSet < Gem::TestCase
|
|
255
255
|
end
|
256
256
|
|
257
257
|
end
|
258
|
-
|
@@ -7,7 +7,7 @@ class TestGemResolverSpecification < Gem::TestCase
|
|
7
7
|
attr_writer :source
|
8
8
|
attr_reader :spec
|
9
9
|
|
10
|
-
def initialize
|
10
|
+
def initialize(spec)
|
11
11
|
super()
|
12
12
|
|
13
13
|
@spec = spec
|
@@ -62,4 +62,3 @@ class TestGemResolverSpecification < Gem::TestCase
|
|
62
62
|
end
|
63
63
|
|
64
64
|
end
|
65
|
-
|
@@ -1,9 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
require 'rubygems/test_case'
|
3
3
|
require 'rubygems/security'
|
4
|
-
require 'rubygems/fix_openssl_warnings' if RUBY_VERSION < "1.9"
|
5
4
|
|
6
|
-
unless defined?(OpenSSL::SSL)
|
5
|
+
unless defined?(OpenSSL::SSL)
|
7
6
|
warn 'Skipping Gem::Security tests. openssl not found.'
|
8
7
|
end
|
9
8
|
|
@@ -309,4 +308,3 @@ class TestGemSecurity < Gem::TestCase
|
|
309
308
|
end
|
310
309
|
|
311
310
|
end if defined?(OpenSSL::SSL)
|
312
|
-
|
@@ -3,7 +3,7 @@
|
|
3
3
|
|
4
4
|
require 'rubygems/test_case'
|
5
5
|
|
6
|
-
unless defined?(OpenSSL::SSL)
|
6
|
+
unless defined?(OpenSSL::SSL)
|
7
7
|
warn 'Skipping Gem::Security::Policy tests. openssl not found.'
|
8
8
|
end
|
9
9
|
|
@@ -293,7 +293,7 @@ class TestGemSecurityPolicy < Gem::TestCase
|
|
293
293
|
|
294
294
|
def test_subject
|
295
295
|
assert_equal 'email:nobody@example', @no.subject(PUBLIC_CERT)
|
296
|
-
assert_equal '/C=JP/
|
296
|
+
assert_equal '/C=JP/ST=Tokyo/O=RubyGemsTest/CN=CA', @no.subject(CA_CERT)
|
297
297
|
end
|
298
298
|
|
299
299
|
def test_verify
|
@@ -518,17 +518,17 @@ class TestGemSecurityPolicy < Gem::TestCase
|
|
518
518
|
end
|
519
519
|
end
|
520
520
|
|
521
|
-
def digest
|
521
|
+
def digest(data)
|
522
522
|
digester = @digest.new
|
523
523
|
digester << data
|
524
524
|
digester
|
525
525
|
end
|
526
526
|
|
527
|
-
def sign
|
527
|
+
def sign(data, key = PRIVATE_KEY)
|
528
528
|
key.sign @digest.new, data.digest
|
529
529
|
end
|
530
530
|
|
531
|
-
def dummy_signatures
|
531
|
+
def dummy_signatures(key = PRIVATE_KEY)
|
532
532
|
data = digest 'hello'
|
533
533
|
|
534
534
|
digests = { Gem::Security::DIGEST_NAME => { 0 => data } }
|
@@ -538,4 +538,3 @@ class TestGemSecurityPolicy < Gem::TestCase
|
|
538
538
|
end
|
539
539
|
|
540
540
|
end if defined?(OpenSSL::SSL)
|
541
|
-
|