rubygems-update 3.1.2 → 3.2.6
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/{History.txt → CHANGELOG.md} +756 -489
- data/CODE_OF_CONDUCT.md +55 -19
- data/CONTRIBUTING.md +25 -11
- data/Manifest.txt +75 -104
- data/POLICIES.md +6 -12
- data/README.md +5 -5
- data/Rakefile +64 -92
- data/bin/update_rubygems +1 -1
- data/bundler/CHANGELOG.md +1636 -1422
- data/bundler/README.md +6 -8
- data/bundler/UPGRADING.md +18 -32
- data/bundler/bundler.gemspec +4 -4
- data/bundler/exe/bundle +3 -0
- data/bundler/lib/bundler.rb +32 -8
- data/bundler/lib/bundler/build_metadata.rb +4 -12
- data/bundler/lib/bundler/cli.rb +55 -21
- data/bundler/lib/bundler/cli/add.rb +1 -1
- data/bundler/lib/bundler/cli/binstubs.rb +6 -2
- 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 -4
- data/bundler/lib/bundler/cli/fund.rb +36 -0
- data/bundler/lib/bundler/cli/gem.rb +86 -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 +16 -13
- 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 +87 -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 +3 -1
- data/bundler/lib/bundler/compact_index_client.rb +1 -1
- data/bundler/lib/bundler/compact_index_client/cache.rb +6 -14
- data/bundler/lib/bundler/compact_index_client/gem_parser.rb +28 -0
- data/bundler/lib/bundler/compact_index_client/updater.rb +5 -13
- data/bundler/lib/bundler/definition.rb +66 -82
- data/bundler/lib/bundler/dep_proxy.rb +16 -9
- data/bundler/lib/bundler/dependency.rb +3 -10
- data/bundler/lib/bundler/dsl.rb +5 -9
- data/bundler/lib/bundler/endpoint_specification.rb +1 -1
- data/bundler/lib/bundler/env.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 -3
- 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 +3 -4
- data/bundler/lib/bundler/friendly_errors.rb +22 -13
- data/bundler/lib/bundler/gem_helper.rb +33 -19
- data/bundler/lib/bundler/gem_helpers.rb +36 -25
- data/bundler/lib/bundler/gem_version_promoter.rb +4 -4
- data/bundler/lib/bundler/graph.rb +1 -1
- data/bundler/lib/bundler/index.rb +6 -2
- data/bundler/lib/bundler/injector.rb +22 -4
- data/bundler/lib/bundler/inline.rb +2 -2
- data/bundler/lib/bundler/installer.rb +35 -32
- 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 +35 -11
- data/bundler/lib/bundler/lockfile_generator.rb +1 -1
- data/bundler/lib/bundler/lockfile_parser.rb +1 -1
- data/bundler/lib/bundler/man/.document +1 -0
- data/bundler/{man → lib/bundler/man}/bundle-add.1 +1 -1
- data/bundler/{man/bundle-add.ronn → lib/bundler/man/bundle-add.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-binstubs.1 +5 -3
- data/bundler/{man/bundle-binstubs.ronn → lib/bundler/man/bundle-binstubs.1.ronn} +2 -4
- data/bundler/{man → lib/bundler/man}/bundle-cache.1 +1 -1
- data/bundler/{man/bundle-cache.ronn → lib/bundler/man/bundle-cache.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-check.1 +1 -1
- data/bundler/{man/bundle-check.ronn → lib/bundler/man/bundle-check.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-clean.1 +1 -1
- data/bundler/{man/bundle-clean.ronn → lib/bundler/man/bundle-clean.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-config.1 +16 -25
- data/bundler/{man/bundle-config.ronn → lib/bundler/man/bundle-config.1.ronn} +19 -30
- data/bundler/{man → lib/bundler/man}/bundle-doctor.1 +1 -1
- data/bundler/{man/bundle-doctor.ronn → lib/bundler/man/bundle-doctor.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-exec.1 +1 -1
- data/bundler/{man/bundle-exec.ronn → lib/bundler/man/bundle-exec.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-gem.1 +25 -3
- data/bundler/{man/bundle-gem.ronn → lib/bundler/man/bundle-gem.1.ronn} +30 -7
- data/bundler/{man → lib/bundler/man}/bundle-info.1 +1 -1
- data/bundler/{man/bundle-info.ronn → lib/bundler/man/bundle-info.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-init.1 +1 -1
- data/bundler/{man/bundle-init.ronn → lib/bundler/man/bundle-init.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-inject.1 +1 -1
- data/bundler/{man/bundle-inject.ronn → lib/bundler/man/bundle-inject.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-install.1 +30 -3
- data/bundler/{man/bundle-install.ronn → lib/bundler/man/bundle-install.1.ronn} +25 -3
- data/bundler/{man → lib/bundler/man}/bundle-list.1 +7 -7
- data/bundler/{man/bundle-list.ronn → lib/bundler/man/bundle-list.1.ronn} +6 -6
- data/bundler/{man → lib/bundler/man}/bundle-lock.1 +1 -1
- data/bundler/{man/bundle-lock.ronn → lib/bundler/man/bundle-lock.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-open.1 +1 -1
- data/bundler/{man/bundle-open.ronn → lib/bundler/man/bundle-open.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-outdated.1 +1 -1
- data/bundler/{man/bundle-outdated.ronn → lib/bundler/man/bundle-outdated.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-platform.1 +1 -1
- data/bundler/{man/bundle-platform.ronn → lib/bundler/man/bundle-platform.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-pristine.1 +1 -1
- data/bundler/{man/bundle-pristine.ronn → lib/bundler/man/bundle-pristine.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-remove.1 +1 -1
- data/bundler/{man/bundle-remove.ronn → lib/bundler/man/bundle-remove.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-show.1 +1 -1
- data/bundler/{man/bundle-show.ronn → lib/bundler/man/bundle-show.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-update.1 +1 -1
- data/bundler/{man/bundle-update.ronn → lib/bundler/man/bundle-update.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-viz.1 +1 -1
- data/bundler/{man/bundle-viz.ronn → lib/bundler/man/bundle-viz.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle.1 +1 -1
- data/bundler/{man/bundle.ronn → lib/bundler/man/bundle.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/gemfile.5 +4 -4
- data/bundler/{man → lib/bundler/man}/gemfile.5.ronn +4 -4
- data/bundler/{man → lib/bundler/man}/index.txt +0 -0
- data/bundler/lib/bundler/mirror.rb +2 -2
- data/bundler/lib/bundler/plugin.rb +30 -5
- data/bundler/lib/bundler/plugin/api/source.rb +1 -1
- data/bundler/lib/bundler/plugin/dsl.rb +1 -1
- 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 +43 -19
- data/bundler/lib/bundler/resolver/spec_group.rb +39 -24
- data/bundler/lib/bundler/retry.rb +1 -1
- data/bundler/lib/bundler/ruby_version.rb +1 -1
- data/bundler/lib/bundler/rubygems_ext.rb +69 -9
- data/bundler/lib/bundler/rubygems_gem_installer.rb +3 -9
- data/bundler/lib/bundler/rubygems_integration.rb +26 -61
- data/bundler/lib/bundler/runtime.rb +4 -14
- data/bundler/lib/bundler/settings.rb +49 -46
- 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 +23 -21
- data/bundler/lib/bundler/source/git/git_proxy.rb +82 -80
- data/bundler/lib/bundler/source/path.rb +7 -3
- data/bundler/lib/bundler/source/path/installer.rb +10 -10
- data/bundler/lib/bundler/source/rubygems.rb +23 -17
- 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 +8 -10
- data/bundler/lib/bundler/stub_specification.rb +17 -7
- 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 -2
- 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 +4 -2
- data/bundler/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +2 -0
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +15 -7
- data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +13 -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 +3 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +34 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +2 -2
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +1 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +1 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +48 -46
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +79 -208
- 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/vendor/tmpdir/lib/tmpdir.rb +154 -0
- data/bundler/lib/bundler/vendored_persistent.rb +0 -7
- data/bundler/lib/bundler/vendored_tmpdir.rb +4 -0
- 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/lib/rubygems.rb +138 -187
- 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 +5 -6
- data/lib/rubygems/commands/build_command.rb +40 -20
- data/lib/rubygems/commands/cert_command.rb +2 -10
- 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 +4 -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 +9 -4
- data/lib/rubygems/commands/pristine_command.rb +11 -5
- data/lib/rubygems/commands/push_command.rb +10 -47
- data/lib/rubygems/commands/query_command.rb +14 -344
- 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 +3 -1
- data/lib/rubygems/commands/setup_command.rb +101 -74
- 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 +9 -7
- data/lib/rubygems/commands/specification_command.rb +8 -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 +4 -7
- data/lib/rubygems/config_file.rb +11 -4
- data/lib/rubygems/core_ext/kernel_require.rb +29 -36
- data/lib/rubygems/core_ext/kernel_warn.rb +12 -13
- data/lib/rubygems/defaults.rb +101 -7
- data/lib/rubygems/dependency.rb +3 -8
- data/lib/rubygems/dependency_installer.rb +6 -78
- 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 +21 -39
- data/lib/rubygems/ext/cmake_builder.rb +6 -9
- data/lib/rubygems/ext/configure_builder.rb +5 -8
- data/lib/rubygems/ext/ext_conf_builder.rb +21 -19
- data/lib/rubygems/ext/rake_builder.rb +4 -6
- data/lib/rubygems/gem_runner.rb +3 -10
- data/lib/rubygems/gemcutter_utilities.rb +102 -21
- data/lib/rubygems/indexer.rb +1 -22
- data/lib/rubygems/install_update_options.rb +7 -7
- data/lib/rubygems/installer.rb +59 -80
- data/lib/rubygems/installer_test_case.rb +25 -11
- 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 +3 -7
- data/lib/rubygems/openssl.rb +7 -0
- data/lib/rubygems/package.rb +14 -25
- 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 +4 -6
- 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 +2 -4
- 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 +21 -16
- data/lib/rubygems/psych_tree.rb +0 -2
- data/lib/rubygems/query_utils.rb +353 -0
- data/lib/rubygems/rdoc.rb +0 -12
- data/lib/rubygems/remote_fetcher.rb +14 -29
- data/lib/rubygems/request.rb +4 -11
- 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 +7 -20
- data/lib/rubygems/request_set/gem_dependency_api.rb +6 -8
- 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 +21 -22
- data/lib/rubygems/resolver.rb +14 -12
- data/lib/rubygems/resolver/activation_request.rb +9 -3
- data/lib/rubygems/resolver/api_set.rb +31 -24
- data/lib/rubygems/resolver/api_set/gem_parser.rb +20 -0
- data/lib/rubygems/resolver/api_specification.rb +24 -10
- data/lib/rubygems/resolver/best_set.rb +2 -4
- data/lib/rubygems/resolver/composed_set.rb +3 -5
- data/lib/rubygems/resolver/conflict.rb +2 -4
- data/lib/rubygems/resolver/current_set.rb +0 -2
- data/lib/rubygems/resolver/dependency_request.rb +1 -3
- 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 +29 -2
- data/lib/rubygems/resolver/installed_specification.rb +0 -2
- data/lib/rubygems/resolver/installer_set.rb +60 -13
- data/lib/rubygems/resolver/local_specification.rb +0 -2
- data/lib/rubygems/resolver/lock_set.rb +2 -4
- data/lib/rubygems/resolver/lock_specification.rb +0 -2
- data/lib/rubygems/resolver/molinillo/lib/molinillo.rb +6 -5
- data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb +7 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb +1 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +39 -5
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/action.rb +1 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb +7 -6
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/set_payload.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/tag.rb +4 -3
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb +43 -10
- data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +75 -7
- data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb +1 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb +3 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb +506 -165
- data/lib/rubygems/resolver/molinillo/lib/molinillo/resolver.rb +3 -2
- data/lib/rubygems/resolver/molinillo/lib/molinillo/state.rb +8 -4
- 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 +14 -2
- data/lib/rubygems/resolver/specification.rb +13 -3
- 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 +2 -8
- data/lib/rubygems/safe_yaml.rb +4 -4
- data/lib/rubygems/security.rb +27 -34
- data/lib/rubygems/security/policy.rb +4 -8
- data/lib/rubygems/security/signer.rb +5 -7
- data/lib/rubygems/security/trust_dir.rb +1 -3
- data/lib/rubygems/server.rb +16 -13
- data/lib/rubygems/source.rb +23 -12
- 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 +4 -7
- data/lib/rubygems/spec_fetcher.rb +19 -18
- data/lib/rubygems/specification.rb +122 -131
- data/lib/rubygems/specification_policy.rb +88 -30
- data/lib/rubygems/ssl_certs/{index.rubygems.org → rubygems.org}/GlobalSignRootCA.pem +0 -0
- data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem +21 -0
- data/lib/rubygems/stub_specification.rb +1 -5
- data/lib/rubygems/syck_hack.rb +0 -2
- data/lib/rubygems/test_case.rb +120 -134
- data/lib/rubygems/test_utilities.rb +12 -19
- data/lib/rubygems/uninstaller.rb +35 -16
- data/lib/rubygems/uri_formatter.rb +2 -3
- 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/lib/rubygems/version_option.rb +6 -0
- data/rubygems-update.gemspec +3 -3
- data/setup.rb +2 -7
- data/test/rubygems/data/null-required-rubygems-version.gemspec.rz +0 -0
- 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 +42 -45
- data/test/rubygems/test_config.rb +0 -2
- data/test/rubygems/test_deprecate.rb +40 -7
- data/test/rubygems/test_gem.rb +156 -99
- 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 +250 -15
- data/test/rubygems/test_gem_commands_cert_command.rb +4 -6
- data/test/rubygems/test_gem_commands_check_command.rb +0 -2
- data/test/rubygems/test_gem_commands_cleanup_command.rb +14 -5
- data/test/rubygems/test_gem_commands_contents_command.rb +50 -19
- 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 +15 -4
- data/test/rubygems/test_gem_commands_info_command.rb +6 -8
- data/test/rubygems/test_gem_commands_install_command.rb +163 -34
- 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 +59 -5
- data/test/rubygems/test_gem_commands_pristine_command.rb +43 -12
- data/test/rubygems/test_gem_commands_push_command.rb +77 -9
- data/test/rubygems/test_gem_commands_query_command.rb +12 -12
- 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 +160 -135
- data/test/rubygems/test_gem_commands_signin_command.rb +33 -9
- data/test/rubygems/test_gem_commands_signout_command.rb +0 -7
- data/test/rubygems/test_gem_commands_sources_command.rb +99 -3
- data/test/rubygems/test_gem_commands_specification_command.rb +46 -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 +44 -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 +116 -239
- data/test/rubygems/test_gem_dependency_list.rb +10 -12
- 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 +50 -47
- data/test/rubygems/test_gem_ext_cmake_builder.rb +16 -25
- data/test/rubygems/test_gem_ext_configure_builder.rb +6 -22
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +9 -29
- data/test/rubygems/test_gem_ext_rake_builder.rb +39 -24
- data/test/rubygems/test_gem_gem_runner.rb +44 -1
- data/test/rubygems/test_gem_gemcutter_utilities.rb +8 -5
- 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 +14 -4
- data/test/rubygems/test_gem_installer.rb +258 -115
- 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 +41 -39
- data/test/rubygems/test_gem_package_old.rb +4 -6
- 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 +9 -6
- 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 +71 -6
- data/test/rubygems/test_gem_rdoc.rb +0 -2
- data/test/rubygems/test_gem_remote_fetcher.rb +169 -212
- data/test/rubygems/test_gem_request.rb +13 -17
- 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 +4 -6
- 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 +43 -3
- 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 +60 -59
- data/test/rubygems/test_gem_resolver_api_specification.rb +3 -5
- data/test/rubygems/test_gem_resolver_best_set.rb +27 -6
- data/test/rubygems/test_gem_resolver_composed_set.rb +0 -2
- data/test/rubygems/test_gem_resolver_conflict.rb +1 -3
- 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 +1 -3
- data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -2
- data/test/rubygems/test_gem_security.rb +22 -24
- data/test/rubygems/test_gem_security_policy.rb +7 -12
- data/test/rubygems/test_gem_security_signer.rb +10 -12
- data/test/rubygems/test_gem_security_trust_dir.rb +4 -6
- 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 +19 -18
- 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_subpath_problem.rb +49 -0
- 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 +188 -131
- 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 +134 -12
- 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 +1 -3
- data/test/rubygems/test_gem_version.rb +1 -3
- data/test/rubygems/test_gem_version_option.rb +1 -3
- 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 +291 -56
- data/test/test_changelog_generator.rb +17 -0
- metadata +79 -133
- 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/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +0 -26
- 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/lib/rubygems/source_local.rb +0 -7
- data/lib/rubygems/source_specific_file.rb +0 -6
- data/lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -23
- data/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -25
- 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
@@ -3,7 +3,6 @@ require 'rubygems/test_case'
|
|
3
3
|
require 'rubygems/commands/which_command'
|
4
4
|
|
5
5
|
class TestGemCommandsWhichCommand < Gem::TestCase
|
6
|
-
|
7
6
|
def setup
|
8
7
|
super
|
9
8
|
Gem::Specification.reset
|
@@ -33,7 +32,7 @@ class TestGemCommandsWhichCommand < Gem::TestCase
|
|
33
32
|
end
|
34
33
|
|
35
34
|
assert_equal '', @ui.output
|
36
|
-
assert_match %r
|
35
|
+
assert_match %r{Can.t find Ruby library file or shared library directory\n},
|
37
36
|
@ui.error
|
38
37
|
end
|
39
38
|
|
@@ -51,7 +50,7 @@ class TestGemCommandsWhichCommand < Gem::TestCase
|
|
51
50
|
end
|
52
51
|
|
53
52
|
assert_equal "#{@foo_bar.full_gem_path}/lib/foo_bar.rb\n", @ui.output
|
54
|
-
assert_match %r
|
53
|
+
assert_match %r{Can.t find Ruby library file or shared library missinglib\n},
|
55
54
|
@ui.error
|
56
55
|
end
|
57
56
|
|
@@ -65,7 +64,7 @@ class TestGemCommandsWhichCommand < Gem::TestCase
|
|
65
64
|
end
|
66
65
|
|
67
66
|
assert_equal '', @ui.output
|
68
|
-
assert_match %r
|
67
|
+
assert_match %r{Can.t find Ruby library file or shared library missinglib\n},
|
69
68
|
@ui.error
|
70
69
|
end
|
71
70
|
|
@@ -82,5 +81,4 @@ class TestGemCommandsWhichCommand < Gem::TestCase
|
|
82
81
|
FileUtils.touch filename
|
83
82
|
end
|
84
83
|
end
|
85
|
-
|
86
84
|
end
|
@@ -3,10 +3,11 @@ require 'rubygems/test_case'
|
|
3
3
|
require 'rubygems/commands/yank_command'
|
4
4
|
|
5
5
|
class TestGemCommandsYankCommand < Gem::TestCase
|
6
|
-
|
7
6
|
def setup
|
8
7
|
super
|
9
8
|
|
9
|
+
credential_setup
|
10
|
+
|
10
11
|
@cmd = Gem::Commands::YankCommand.new
|
11
12
|
@cmd.options[:host] = 'http://example'
|
12
13
|
|
@@ -16,6 +17,12 @@ class TestGemCommandsYankCommand < Gem::TestCase
|
|
16
17
|
Gem.configuration.api_keys[:KEY] = 'other'
|
17
18
|
end
|
18
19
|
|
20
|
+
def teardown
|
21
|
+
credential_teardown
|
22
|
+
|
23
|
+
super
|
24
|
+
end
|
25
|
+
|
19
26
|
def test_handle_options
|
20
27
|
@cmd.handle_options %w[a --version 1.0 --platform x86-darwin -k KEY --host HOST]
|
21
28
|
|
@@ -46,8 +53,8 @@ class TestGemCommandsYankCommand < Gem::TestCase
|
|
46
53
|
@cmd.execute
|
47
54
|
end
|
48
55
|
|
49
|
-
assert_match %r
|
50
|
-
assert_match %r
|
56
|
+
assert_match %r{Yanking gem from http://example}, @ui.output
|
57
|
+
assert_match %r{Successfully yanked}, @ui.output
|
51
58
|
|
52
59
|
platform = Gem.platforms[1]
|
53
60
|
body = @fetcher.last_request.body.split('&').sort
|
@@ -63,7 +70,7 @@ class TestGemCommandsYankCommand < Gem::TestCase
|
|
63
70
|
yank_uri = 'http://example/api/v1/gems/yank'
|
64
71
|
@fetcher.data[yank_uri] = [
|
65
72
|
[response_fail, 401, 'Unauthorized'],
|
66
|
-
['Successfully yanked', 200, 'OK']
|
73
|
+
['Successfully yanked', 200, 'OK'],
|
67
74
|
]
|
68
75
|
|
69
76
|
@cmd.options[:args] = %w[a]
|
@@ -77,8 +84,8 @@ class TestGemCommandsYankCommand < Gem::TestCase
|
|
77
84
|
|
78
85
|
assert_match 'You have enabled multi-factor authentication. Please enter OTP code.', @otp_ui.output
|
79
86
|
assert_match 'Code: ', @otp_ui.output
|
80
|
-
assert_match %r
|
81
|
-
assert_match %r
|
87
|
+
assert_match %r{Yanking gem from http://example}, @otp_ui.output
|
88
|
+
assert_match %r{Successfully yanked}, @otp_ui.output
|
82
89
|
assert_equal '111111', @fetcher.last_request['OTP']
|
83
90
|
end
|
84
91
|
|
@@ -132,8 +139,8 @@ class TestGemCommandsYankCommand < Gem::TestCase
|
|
132
139
|
@cmd.execute
|
133
140
|
end
|
134
141
|
|
135
|
-
assert_match %r
|
136
|
-
assert_match %r
|
142
|
+
assert_match %r{Yanking gem from https://other.example}, @ui.output
|
143
|
+
assert_match %r{Successfully yanked}, @ui.output
|
137
144
|
|
138
145
|
body = @fetcher.last_request.body.split('&').sort
|
139
146
|
assert_equal %w[gem_name=a version=1.0], body
|
@@ -141,4 +148,33 @@ class TestGemCommandsYankCommand < Gem::TestCase
|
|
141
148
|
assert_equal [yank_uri], @fetcher.paths
|
142
149
|
end
|
143
150
|
|
151
|
+
def test_yank_gem_unathorized_api_key
|
152
|
+
response_forbidden = "The API key doesn't have access"
|
153
|
+
response_success = 'Successfully yanked'
|
154
|
+
host = 'http://example'
|
155
|
+
|
156
|
+
@fetcher.data["#{host}/api/v1/gems/yank"] = [
|
157
|
+
[response_forbidden, 403, 'Forbidden'],
|
158
|
+
[response_success, 200, "OK"],
|
159
|
+
]
|
160
|
+
|
161
|
+
@fetcher.data["#{host}/api/v1/api_key"] = ["", 200, "OK"]
|
162
|
+
@cmd.options[:args] = %w[a]
|
163
|
+
@cmd.options[:added_platform] = true
|
164
|
+
@cmd.options[:version] = req('= 1.0')
|
165
|
+
@cmd.instance_variable_set :@host, host
|
166
|
+
@cmd.instance_variable_set :@scope, :yank_rubygem
|
167
|
+
|
168
|
+
@ui = Gem::MockGemUi.new "some@mail.com\npass\n"
|
169
|
+
use_ui @ui do
|
170
|
+
@cmd.execute
|
171
|
+
end
|
172
|
+
|
173
|
+
access_notice = "The existing key doesn't have access of yank_rubygem on http://example. Please sign in to update access."
|
174
|
+
assert_match access_notice, @ui.output
|
175
|
+
assert_match "Email:", @ui.output
|
176
|
+
assert_match "Password:", @ui.output
|
177
|
+
assert_match "Added yank_rubygem scope to the existing API key", @ui.output
|
178
|
+
assert_match response_success, @ui.output
|
179
|
+
end
|
144
180
|
end
|
@@ -3,18 +3,15 @@ require 'rubygems/test_case'
|
|
3
3
|
require 'rubygems/config_file'
|
4
4
|
|
5
5
|
class TestGemConfigFile < Gem::TestCase
|
6
|
-
|
7
6
|
def setup
|
8
7
|
super
|
9
8
|
|
9
|
+
credential_setup
|
10
|
+
|
10
11
|
@temp_conf = File.join @tempdir, '.gemrc'
|
11
12
|
|
12
13
|
@cfg_args = %W[--config-file #{@temp_conf}]
|
13
14
|
|
14
|
-
@orig_SYSTEM_WIDE_CONFIG_FILE = Gem::ConfigFile::SYSTEM_WIDE_CONFIG_FILE
|
15
|
-
Gem::ConfigFile.send :remove_const, :SYSTEM_WIDE_CONFIG_FILE
|
16
|
-
Gem::ConfigFile.send :const_set, :SYSTEM_WIDE_CONFIG_FILE,
|
17
|
-
File.join(@tempdir, 'system-gemrc')
|
18
15
|
Gem::ConfigFile::OPERATING_SYSTEM_DEFAULTS.clear
|
19
16
|
Gem::ConfigFile::PLATFORM_DEFAULTS.clear
|
20
17
|
|
@@ -27,12 +24,11 @@ class TestGemConfigFile < Gem::TestCase
|
|
27
24
|
def teardown
|
28
25
|
Gem::ConfigFile::OPERATING_SYSTEM_DEFAULTS.clear
|
29
26
|
Gem::ConfigFile::PLATFORM_DEFAULTS.clear
|
30
|
-
Gem::ConfigFile.send :remove_const, :SYSTEM_WIDE_CONFIG_FILE
|
31
|
-
Gem::ConfigFile.send :const_set, :SYSTEM_WIDE_CONFIG_FILE,
|
32
|
-
@orig_SYSTEM_WIDE_CONFIG_FILE
|
33
27
|
|
34
28
|
ENV['GEMRC'] = @env_gemrc
|
35
29
|
|
30
|
+
credential_teardown
|
31
|
+
|
36
32
|
super
|
37
33
|
end
|
38
34
|
|
@@ -177,7 +173,7 @@ class TestGemConfigFile < Gem::TestCase
|
|
177
173
|
assert_nil @cfg.instance_variable_get :@api_keys
|
178
174
|
|
179
175
|
temp_cred = File.join Gem.user_home, '.gem', 'credentials'
|
180
|
-
FileUtils.
|
176
|
+
FileUtils.mkdir_p File.dirname(temp_cred)
|
181
177
|
File.open temp_cred, 'w', 0600 do |fp|
|
182
178
|
fp.puts ':rubygems_api_key: 701229f217cdf23b1344c7b4b54ca97'
|
183
179
|
end
|
@@ -303,7 +299,7 @@ if you believe they were disclosed to a third party.
|
|
303
299
|
|
304
300
|
def test_load_api_keys
|
305
301
|
temp_cred = File.join Gem.user_home, '.gem', 'credentials'
|
306
|
-
FileUtils.
|
302
|
+
FileUtils.mkdir_p File.dirname(temp_cred)
|
307
303
|
File.open temp_cred, 'w', 0600 do |fp|
|
308
304
|
fp.puts ":rubygems_api_key: 701229f217cdf23b1344c7b4b54ca97"
|
309
305
|
fp.puts ":other: a5fdbb6ba150cbb83aad2bb2fede64c"
|
@@ -392,7 +388,7 @@ if you believe they were disclosed to a third party.
|
|
392
388
|
util_config_file
|
393
389
|
|
394
390
|
# These should not be written out to the config file.
|
395
|
-
assert_equal false, @cfg.backtrace,
|
391
|
+
assert_equal false, @cfg.backtrace, 'backtrace'
|
396
392
|
assert_equal Gem::ConfigFile::DEFAULT_BULK_THRESHOLD, @cfg.bulk_threshold,
|
397
393
|
'bulk_threshold'
|
398
394
|
assert_equal true, @cfg.update_sources, 'update_sources'
|
@@ -495,5 +491,4 @@ if you believe they were disclosed to a third party.
|
|
495
491
|
util_config_file
|
496
492
|
assert_equal(true, @cfg.disable_default_gem_server)
|
497
493
|
end
|
498
|
-
|
499
494
|
end
|
@@ -3,7 +3,6 @@ require 'rubygems/test_case'
|
|
3
3
|
require 'rubygems/dependency'
|
4
4
|
|
5
5
|
class TestGemDependency < Gem::TestCase
|
6
|
-
|
7
6
|
def test_initialize
|
8
7
|
d = dep "pkg", "> 1.0"
|
9
8
|
|
@@ -391,5 +390,4 @@ class TestGemDependency < Gem::TestCase
|
|
391
390
|
assert_equal dep("a", " >= 1.a").identity, :abs_latest
|
392
391
|
assert_equal dep("a").identity, :latest
|
393
392
|
end
|
394
|
-
|
395
393
|
end
|
@@ -4,7 +4,6 @@ require 'rubygems/dependency_installer'
|
|
4
4
|
require 'rubygems/security'
|
5
5
|
|
6
6
|
class TestGemDependencyInstaller < Gem::TestCase
|
7
|
-
|
8
7
|
def setup
|
9
8
|
super
|
10
9
|
common_installer_setup
|
@@ -48,69 +47,6 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
48
47
|
util_reset_gems
|
49
48
|
end
|
50
49
|
|
51
|
-
def test_available_set_for_name
|
52
|
-
util_setup_gems
|
53
|
-
p1a, = util_gem 'a', '10.a'
|
54
|
-
util_setup_spec_fetcher p1a, @a1, @a1_pre
|
55
|
-
|
56
|
-
inst = Gem::DependencyInstaller.new
|
57
|
-
|
58
|
-
available = Gem::Deprecate.skip_during do
|
59
|
-
inst.available_set_for 'a', Gem::Requirement.default
|
60
|
-
end
|
61
|
-
|
62
|
-
assert_equal %w[a-1], available.set.map { |s| s.spec.full_name }
|
63
|
-
end
|
64
|
-
|
65
|
-
def test_available_set_for_name_prerelease
|
66
|
-
util_setup_gems
|
67
|
-
p1a, = util_gem 'a', '10.a'
|
68
|
-
util_setup_spec_fetcher p1a, @a1, @a1_pre
|
69
|
-
|
70
|
-
inst = Gem::DependencyInstaller.new :prerelease => true
|
71
|
-
|
72
|
-
available = Gem::Deprecate.skip_during do
|
73
|
-
inst.available_set_for 'a', Gem::Requirement.default
|
74
|
-
end
|
75
|
-
|
76
|
-
assert_equal %w[a-10.a],
|
77
|
-
available.sorted.map { |s| s.spec.full_name }
|
78
|
-
end
|
79
|
-
|
80
|
-
def test_available_set_for_dep
|
81
|
-
util_setup_gems
|
82
|
-
p1a, = util_gem 'a', '10.a'
|
83
|
-
util_setup_spec_fetcher p1a, @a1, @a1_pre
|
84
|
-
|
85
|
-
inst = Gem::DependencyInstaller.new
|
86
|
-
|
87
|
-
dep = Gem::Dependency.new 'a', Gem::Requirement.default
|
88
|
-
|
89
|
-
available = Gem::Deprecate.skip_during do
|
90
|
-
inst.available_set_for dep, Gem::Requirement.default
|
91
|
-
end
|
92
|
-
|
93
|
-
assert_equal %w[a-1], available.set.map { |s| s.spec.full_name }
|
94
|
-
end
|
95
|
-
|
96
|
-
def test_available_set_for_dep_prerelease
|
97
|
-
util_setup_gems
|
98
|
-
p1a, = util_gem 'a', '10.a'
|
99
|
-
util_setup_spec_fetcher p1a, @a1, @a1_pre
|
100
|
-
|
101
|
-
inst = Gem::DependencyInstaller.new :prerelease => true
|
102
|
-
|
103
|
-
dep = Gem::Dependency.new 'a', Gem::Requirement.default
|
104
|
-
dep.prerelease = true
|
105
|
-
|
106
|
-
available = Gem::Deprecate.skip_during do
|
107
|
-
inst.available_set_for dep, Gem::Requirement.default
|
108
|
-
end
|
109
|
-
|
110
|
-
assert_equal %w[a-10.a],
|
111
|
-
available.sorted.map { |s| s.spec.full_name }
|
112
|
-
end
|
113
|
-
|
114
50
|
def test_install
|
115
51
|
util_setup_gems
|
116
52
|
|
@@ -211,7 +147,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
211
147
|
|
212
148
|
FileUtils.mv @a1_gem, @tempdir
|
213
149
|
FileUtils.mv @b1_gem, @tempdir
|
214
|
-
FileUtils.mv
|
150
|
+
FileUtils.mv e1_gem, @tempdir
|
215
151
|
|
216
152
|
inst = nil
|
217
153
|
|
@@ -220,7 +156,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
220
156
|
inst.install 'b'
|
221
157
|
end
|
222
158
|
|
223
|
-
assert_equal %w[b-1], inst.installed_gems.map {
|
159
|
+
assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name },
|
224
160
|
'sanity check'
|
225
161
|
|
226
162
|
Dir.chdir @tempdir do
|
@@ -228,7 +164,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
228
164
|
inst.install 'e'
|
229
165
|
end
|
230
166
|
|
231
|
-
assert_equal %w[a-1 e-1], inst.installed_gems.map {
|
167
|
+
assert_equal %w[a-1 e-1], inst.installed_gems.map {|s| s.full_name }
|
232
168
|
end
|
233
169
|
|
234
170
|
def test_install_cache_dir
|
@@ -245,7 +181,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
245
181
|
inst.install 'b'
|
246
182
|
end
|
247
183
|
|
248
|
-
assert_equal %w[a-1 b-1], inst.installed_gems.map {
|
184
|
+
assert_equal %w[a-1 b-1], inst.installed_gems.map {|s| s.full_name }
|
249
185
|
|
250
186
|
assert File.exist? File.join(@gemhome, "cache", @a1.file_name)
|
251
187
|
assert File.exist? File.join(@gemhome, "cache", @b1.file_name)
|
@@ -270,7 +206,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
270
206
|
inst.install 'a', req("= 2")
|
271
207
|
end
|
272
208
|
|
273
|
-
assert_equal %w[a-2], inst.installed_gems.map {
|
209
|
+
assert_equal %w[a-2], inst.installed_gems.map {|s| s.full_name },
|
274
210
|
'sanity check'
|
275
211
|
|
276
212
|
FileUtils.rm File.join(@tempdir, a2.file_name)
|
@@ -281,7 +217,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
281
217
|
end
|
282
218
|
|
283
219
|
assert_equal %w[a-2 b-1], Gem::Specification.map(&:full_name)
|
284
|
-
assert_equal %w[b-1], inst.installed_gems.map {
|
220
|
+
assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name }
|
285
221
|
end
|
286
222
|
|
287
223
|
# This asserts that if a gem's dependency is satisfied by an
|
@@ -302,7 +238,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
302
238
|
FileUtils.mv @a1_gem, @tempdir
|
303
239
|
FileUtils.mv a2_gem, @tempdir # not in index
|
304
240
|
FileUtils.mv @b1_gem, @tempdir
|
305
|
-
FileUtils.mv
|
241
|
+
FileUtils.mv a3_gem, @tempdir
|
306
242
|
|
307
243
|
Dir.chdir @tempdir do
|
308
244
|
Gem::DependencyInstaller.new.install 'a', req("= 2")
|
@@ -318,7 +254,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
318
254
|
end
|
319
255
|
|
320
256
|
assert_equal %w[a-2 b-1], Gem::Specification.map(&:full_name)
|
321
|
-
assert_equal %w[b-1], inst.installed_gems.map {
|
257
|
+
assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name }
|
322
258
|
end
|
323
259
|
|
324
260
|
def test_install_dependency
|
@@ -341,7 +277,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
341
277
|
inst.install 'b'
|
342
278
|
end
|
343
279
|
|
344
|
-
assert_equal %w[a-1 b-1], inst.installed_gems.map {
|
280
|
+
assert_equal %w[a-1 b-1], inst.installed_gems.map {|s| s.full_name }
|
345
281
|
|
346
282
|
assert done_installing_ran, 'post installs hook was not run'
|
347
283
|
end
|
@@ -363,7 +299,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
363
299
|
inst.install 'b'
|
364
300
|
end
|
365
301
|
|
366
|
-
assert_equal %w[a-1 aa-1 b-1], inst.installed_gems.map {
|
302
|
+
assert_equal %w[a-1 aa-1 b-1], inst.installed_gems.map {|s| s.full_name }
|
367
303
|
end
|
368
304
|
|
369
305
|
def test_install_dependency_development_deep
|
@@ -385,7 +321,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
385
321
|
inst.install 'd'
|
386
322
|
end
|
387
323
|
|
388
|
-
assert_equal %w[a-1 aa-1 b-1 c-1 d-1], inst.installed_gems.map {
|
324
|
+
assert_equal %w[a-1 aa-1 b-1 c-1 d-1], inst.installed_gems.map {|s| s.full_name }
|
389
325
|
end
|
390
326
|
|
391
327
|
def test_install_dependency_development_shallow
|
@@ -407,7 +343,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
407
343
|
inst.install 'd'
|
408
344
|
end
|
409
345
|
|
410
|
-
assert_equal %w[c-1 d-1], inst.installed_gems.map {
|
346
|
+
assert_equal %w[c-1 d-1], inst.installed_gems.map {|s| s.full_name }
|
411
347
|
end
|
412
348
|
|
413
349
|
def test_install_dependency_existing
|
@@ -423,7 +359,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
423
359
|
inst.install 'b'
|
424
360
|
end
|
425
361
|
|
426
|
-
assert_equal %w[b-1], inst.installed_gems.map {
|
362
|
+
assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name }
|
427
363
|
end
|
428
364
|
|
429
365
|
def test_install_dependency_existing_extension
|
@@ -440,7 +376,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
440
376
|
e1 = util_spec 'e', '1', nil, 'extconf.rb' do |s|
|
441
377
|
s.extensions << 'extconf.rb'
|
442
378
|
end
|
443
|
-
e1_gem =
|
379
|
+
e1_gem = e1.cache_file
|
444
380
|
|
445
381
|
_, f1_gem = util_gem 'f', '1', 'e' => nil
|
446
382
|
|
@@ -460,7 +396,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
460
396
|
Dir.chdir pwd
|
461
397
|
end
|
462
398
|
|
463
|
-
assert_equal %w[f-1], inst.installed_gems.map {
|
399
|
+
assert_equal %w[f-1], inst.installed_gems.map {|s| s.full_name }
|
464
400
|
|
465
401
|
assert_path_exists e1.extension_dir
|
466
402
|
end
|
@@ -480,7 +416,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
480
416
|
inst.install 'f'
|
481
417
|
end
|
482
418
|
|
483
|
-
assert_equal %w[f-2], inst.installed_gems.map {
|
419
|
+
assert_equal %w[f-2], inst.installed_gems.map {|s| s.full_name }
|
484
420
|
end
|
485
421
|
|
486
422
|
def test_install_local
|
@@ -494,7 +430,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
494
430
|
inst.install 'a-1.gem'
|
495
431
|
end
|
496
432
|
|
497
|
-
assert_equal %w[a-1], inst.installed_gems.map {
|
433
|
+
assert_equal %w[a-1], inst.installed_gems.map {|s| s.full_name }
|
498
434
|
end
|
499
435
|
|
500
436
|
def test_install_local_prerelease
|
@@ -508,7 +444,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
508
444
|
inst.install 'a-1.a.gem'
|
509
445
|
end
|
510
446
|
|
511
|
-
assert_equal %w[a-1.a], inst.installed_gems.map {
|
447
|
+
assert_equal %w[a-1.a], inst.installed_gems.map {|s| s.full_name }
|
512
448
|
end
|
513
449
|
|
514
450
|
def test_install_local_dependency
|
@@ -524,7 +460,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
524
460
|
inst.install 'b-1.gem'
|
525
461
|
end
|
526
462
|
|
527
|
-
assert_equal %w[a-1 b-1], inst.installed_gems.map {
|
463
|
+
assert_equal %w[a-1 b-1], inst.installed_gems.map {|s| s.full_name }
|
528
464
|
end
|
529
465
|
|
530
466
|
def test_install_local_dependency_installed
|
@@ -542,7 +478,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
542
478
|
inst.install 'b-1.gem'
|
543
479
|
end
|
544
480
|
|
545
|
-
assert_equal %w[b-1], inst.installed_gems.map {
|
481
|
+
assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name }
|
546
482
|
end
|
547
483
|
|
548
484
|
def test_install_local_subdir
|
@@ -555,7 +491,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
555
491
|
inst.install 'gems/a-1.gem'
|
556
492
|
end
|
557
493
|
|
558
|
-
assert_equal %w[a-1], inst.installed_gems.map {
|
494
|
+
assert_equal %w[a-1], inst.installed_gems.map {|s| s.full_name }
|
559
495
|
end
|
560
496
|
|
561
497
|
def test_install_minimal_deps
|
@@ -581,7 +517,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
581
517
|
inst.install 'b', req('= 1')
|
582
518
|
end
|
583
519
|
|
584
|
-
assert_equal %w[b-1], inst.installed_gems.map {
|
520
|
+
assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name },
|
585
521
|
'sanity check'
|
586
522
|
|
587
523
|
Dir.chdir @tempdir do
|
@@ -589,7 +525,41 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
589
525
|
inst.install 'e'
|
590
526
|
end
|
591
527
|
|
592
|
-
assert_equal %w[a-1 e-1], inst.installed_gems.map {
|
528
|
+
assert_equal %w[a-1 e-1], inst.installed_gems.map {|s| s.full_name }
|
529
|
+
end
|
530
|
+
|
531
|
+
def test_install_no_minimal_deps
|
532
|
+
util_setup_gems
|
533
|
+
|
534
|
+
_, e1_gem = util_gem 'e', '1' do |s|
|
535
|
+
s.add_dependency 'b'
|
536
|
+
end
|
537
|
+
|
538
|
+
_, b2_gem = util_gem 'b', '2' do |s|
|
539
|
+
s.add_dependency 'a'
|
540
|
+
end
|
541
|
+
|
542
|
+
FileUtils.mv @a1_gem, @tempdir
|
543
|
+
FileUtils.mv @b1_gem, @tempdir
|
544
|
+
FileUtils.mv b2_gem, @tempdir
|
545
|
+
FileUtils.mv e1_gem, @tempdir
|
546
|
+
|
547
|
+
inst = nil
|
548
|
+
|
549
|
+
Dir.chdir @tempdir do
|
550
|
+
inst = Gem::DependencyInstaller.new :ignore_dependencies => true
|
551
|
+
inst.install 'b', req('= 1')
|
552
|
+
end
|
553
|
+
|
554
|
+
assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name },
|
555
|
+
'sanity check'
|
556
|
+
|
557
|
+
Dir.chdir @tempdir do
|
558
|
+
inst = Gem::DependencyInstaller.new :minimal_deps => false
|
559
|
+
inst.install 'e'
|
560
|
+
end
|
561
|
+
|
562
|
+
assert_equal %w[a-1 b-2 e-1], inst.installed_gems.map {|s| s.full_name }
|
593
563
|
end
|
594
564
|
|
595
565
|
def test_install_no_document
|
@@ -622,7 +592,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
622
592
|
|
623
593
|
env = "/\\S+/env" unless Gem.win_platform?
|
624
594
|
|
625
|
-
assert_match %r
|
595
|
+
assert_match %r{\A#!#{env} #{RbConfig::CONFIG['ruby_install_name']}\n},
|
626
596
|
File.read(File.join(@gemhome, 'bin', 'a_bin'))
|
627
597
|
end
|
628
598
|
|
@@ -639,7 +609,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
639
609
|
inst.install 'b'
|
640
610
|
end
|
641
611
|
|
642
|
-
assert_equal %w[b-1], inst.installed_gems.map {
|
612
|
+
assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name }
|
643
613
|
end
|
644
614
|
|
645
615
|
def test_install_build_args
|
@@ -669,7 +639,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
669
639
|
inst.install 'b'
|
670
640
|
end
|
671
641
|
|
672
|
-
assert_equal %w[b-1], inst.installed_gems.map {
|
642
|
+
assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name }
|
673
643
|
end
|
674
644
|
|
675
645
|
def test_install_install_dir
|
@@ -690,7 +660,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
690
660
|
inst.install 'b'
|
691
661
|
end
|
692
662
|
|
693
|
-
assert_equal %w[a-1 b-1], inst.installed_gems.map {
|
663
|
+
assert_equal %w[a-1 b-1], inst.installed_gems.map {|s| s.full_name }
|
694
664
|
|
695
665
|
assert File.exist?(File.join(gemhome2, 'specifications', @a1.spec_name))
|
696
666
|
assert File.exist?(File.join(gemhome2, 'cache', @a1.file_name))
|
@@ -714,7 +684,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
714
684
|
inst.install 'b'
|
715
685
|
end
|
716
686
|
|
717
|
-
assert_equal %w[a-1 b-1], inst.installed_gems.map {
|
687
|
+
assert_equal %w[a-1 b-1], inst.installed_gems.map {|s| s.full_name }
|
718
688
|
a1, b1 = inst.installed_gems
|
719
689
|
|
720
690
|
assert_equal a1.spec_file, a1.loaded_from
|
@@ -738,7 +708,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
738
708
|
inst.install 'b'
|
739
709
|
end
|
740
710
|
|
741
|
-
assert_equal %w[a-1 b-1], inst.installed_gems.map {
|
711
|
+
assert_equal %w[a-1 b-1], inst.installed_gems.map {|s| s.full_name }
|
742
712
|
end
|
743
713
|
|
744
714
|
def test_install_domain_local
|
@@ -757,7 +727,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
757
727
|
assert_equal expected, e.message
|
758
728
|
end
|
759
729
|
|
760
|
-
assert_equal [], inst.installed_gems.map {
|
730
|
+
assert_equal [], inst.installed_gems.map {|s| s.full_name }
|
761
731
|
end
|
762
732
|
|
763
733
|
def test_install_domain_remote
|
@@ -773,7 +743,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
773
743
|
inst = Gem::DependencyInstaller.new :domain => :remote
|
774
744
|
inst.install 'a'
|
775
745
|
|
776
|
-
assert_equal %w[a-1], inst.installed_gems.map {
|
746
|
+
assert_equal %w[a-1], inst.installed_gems.map {|s| s.full_name }
|
777
747
|
end
|
778
748
|
|
779
749
|
def test_install_dual_repository
|
@@ -790,7 +760,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
790
760
|
inst.install 'a'
|
791
761
|
end
|
792
762
|
|
793
|
-
assert_equal %w[a-1], inst.installed_gems.map {
|
763
|
+
assert_equal %w[a-1], inst.installed_gems.map {|s| s.full_name },
|
794
764
|
'sanity check'
|
795
765
|
|
796
766
|
ENV['GEM_HOME'] = @gemhome
|
@@ -802,7 +772,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
802
772
|
inst.install 'b'
|
803
773
|
end
|
804
774
|
|
805
|
-
assert_equal %w[b-1], inst.installed_gems.map {
|
775
|
+
assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name }
|
806
776
|
end
|
807
777
|
|
808
778
|
def test_install_reinstall
|
@@ -813,7 +783,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
813
783
|
inst = nil
|
814
784
|
|
815
785
|
Dir.chdir @tempdir do
|
816
|
-
inst = Gem::DependencyInstaller.new
|
786
|
+
inst = Gem::DependencyInstaller.new :force => true
|
817
787
|
inst.install 'a'
|
818
788
|
end
|
819
789
|
|
@@ -837,7 +807,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
837
807
|
inst.install 'a'
|
838
808
|
end
|
839
809
|
|
840
|
-
assert_equal %w[a-1], inst.installed_gems.map {
|
810
|
+
assert_equal %w[a-1], inst.installed_gems.map {|s| s.full_name }
|
841
811
|
end
|
842
812
|
|
843
813
|
def test_install_remote_dep
|
@@ -857,7 +827,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
857
827
|
inst.install dep
|
858
828
|
end
|
859
829
|
|
860
|
-
assert_equal %w[a-1], inst.installed_gems.map {
|
830
|
+
assert_equal %w[a-1], inst.installed_gems.map {|s| s.full_name }
|
861
831
|
end
|
862
832
|
|
863
833
|
def test_install_remote_platform_newer
|
@@ -890,7 +860,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
890
860
|
inst = Gem::DependencyInstaller.new :domain => :remote
|
891
861
|
inst.install 'a'
|
892
862
|
|
893
|
-
assert_equal %w[a-1], inst.installed_gems.map {
|
863
|
+
assert_equal %w[a-1], inst.installed_gems.map {|s| s.full_name }
|
894
864
|
end
|
895
865
|
|
896
866
|
def test_install_platform_is_ignored_when_a_file_is_specified
|
@@ -901,17 +871,19 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
901
871
|
inst = Gem::DependencyInstaller.new :domain => :local
|
902
872
|
inst.install a_gem
|
903
873
|
|
904
|
-
assert_equal %w[a-1-cpu-other_platform-1], inst.installed_gems.map {
|
874
|
+
assert_equal %w[a-1-cpu-other_platform-1], inst.installed_gems.map {|s| s.full_name }
|
905
875
|
end
|
906
876
|
|
907
|
-
|
877
|
+
require 'rubygems/openssl'
|
878
|
+
|
879
|
+
if Gem::HAVE_OPENSSL
|
908
880
|
def test_install_security_policy
|
909
881
|
util_setup_gems
|
910
882
|
|
911
|
-
data = File.open(@a1_gem, 'rb') {
|
883
|
+
data = File.open(@a1_gem, 'rb') {|f| f.read }
|
912
884
|
@fetcher.data['http://gems.example.com/gems/a-1.gem'] = data
|
913
885
|
|
914
|
-
data = File.open(@b1_gem, 'rb') {
|
886
|
+
data = File.open(@b1_gem, 'rb') {|f| f.read }
|
915
887
|
@fetcher.data['http://gems.example.com/gems/b-1.gem'] = data
|
916
888
|
|
917
889
|
policy = Gem::Security::HighSecurity
|
@@ -924,7 +896,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
924
896
|
assert_equal 'unsigned gems are not allowed by the High Security policy',
|
925
897
|
e.message
|
926
898
|
|
927
|
-
assert_equal %w[], inst.installed_gems.map {
|
899
|
+
assert_equal %w[], inst.installed_gems.map {|s| s.full_name }
|
928
900
|
end
|
929
901
|
end
|
930
902
|
|
@@ -938,7 +910,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
938
910
|
inst = Gem::DependencyInstaller.new :wrappers => false, :format_executable => false
|
939
911
|
inst.install 'a'
|
940
912
|
|
941
|
-
refute_match(%r
|
913
|
+
refute_match(%r{This file was generated by RubyGems.},
|
942
914
|
File.read(File.join(@gemhome, 'bin', 'a_bin')))
|
943
915
|
end
|
944
916
|
end
|
@@ -946,126 +918,77 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
946
918
|
def test_install_version
|
947
919
|
util_setup_d
|
948
920
|
|
949
|
-
data = File.open(@d2_gem, 'rb') {
|
921
|
+
data = File.open(@d2_gem, 'rb') {|f| f.read }
|
950
922
|
@fetcher.data['http://gems.example.com/gems/d-2.gem'] = data
|
951
923
|
|
952
|
-
data = File.open(@d1_gem, 'rb') {
|
924
|
+
data = File.open(@d1_gem, 'rb') {|f| f.read }
|
953
925
|
@fetcher.data['http://gems.example.com/gems/d-1.gem'] = data
|
954
926
|
|
955
927
|
inst = Gem::DependencyInstaller.new
|
956
928
|
|
957
929
|
inst.install 'd', '= 1'
|
958
930
|
|
959
|
-
assert_equal %w[d-1], inst.installed_gems.map {
|
931
|
+
assert_equal %w[d-1], inst.installed_gems.map {|s| s.full_name }
|
960
932
|
end
|
961
933
|
|
962
934
|
def test_install_version_default
|
963
935
|
util_setup_d
|
964
936
|
|
965
|
-
data = File.open(@d2_gem, 'rb') {
|
937
|
+
data = File.open(@d2_gem, 'rb') {|f| f.read }
|
966
938
|
@fetcher.data['http://gems.example.com/gems/d-2.gem'] = data
|
967
939
|
|
968
|
-
data = File.open(@d1_gem, 'rb') {
|
940
|
+
data = File.open(@d1_gem, 'rb') {|f| f.read }
|
969
941
|
@fetcher.data['http://gems.example.com/gems/d-1.gem'] = data
|
970
942
|
|
971
943
|
inst = Gem::DependencyInstaller.new
|
972
944
|
inst.install 'd'
|
973
945
|
|
974
|
-
assert_equal %w[d-2], inst.installed_gems.map {
|
946
|
+
assert_equal %w[d-2], inst.installed_gems.map {|s| s.full_name }
|
975
947
|
end
|
976
948
|
|
977
|
-
def
|
978
|
-
|
949
|
+
def test_install_legacy_spec_with_nil_required_rubygems_version
|
950
|
+
path = File.expand_path "../data/null-required-rubygems-version.gemspec.rz", __FILE__
|
951
|
+
spec = Marshal.load Gem.read_binary(path)
|
952
|
+
def spec.validate(*args); end
|
979
953
|
|
980
|
-
|
981
|
-
dep = Gem::Dependency.new 'b', '>= 0'
|
982
|
-
|
983
|
-
Gem::Specification.reset
|
984
|
-
|
985
|
-
set = Gem::Deprecate.skip_during do
|
986
|
-
inst.find_gems_with_sources(dep)
|
987
|
-
end
|
954
|
+
util_build_gem spec
|
988
955
|
|
989
|
-
|
956
|
+
cache_file = File.join @tempdir, 'gems', "#{spec.original_name}.gem"
|
957
|
+
FileUtils.mkdir_p File.dirname cache_file
|
958
|
+
FileUtils.mv spec.cache_file, cache_file
|
990
959
|
|
991
|
-
|
960
|
+
util_setup_spec_fetcher spec
|
992
961
|
|
993
|
-
|
994
|
-
assert_equal Gem::Source.new(@gem_repo), s.source
|
995
|
-
end
|
962
|
+
data = Gem.read_binary(cache_file)
|
996
963
|
|
997
|
-
|
998
|
-
util_gem 'a', 1
|
999
|
-
FileUtils.mv 'gems/a-1.gem', @tempdir
|
964
|
+
@fetcher.data['http://gems.example.com/gems/activesupport-1.0.0.gem'] = data
|
1000
965
|
|
1001
|
-
|
1002
|
-
|
1003
|
-
inst = Gem::DependencyInstaller.new
|
1004
|
-
|
1005
|
-
available = Gem::Deprecate.skip_during do
|
1006
|
-
inst.find_spec_by_name_and_version('*.gem')
|
1007
|
-
end
|
1008
|
-
|
1009
|
-
assert_equal %w[a-1], available.each_spec.map { |spec| spec.full_name }
|
1010
|
-
end
|
1011
|
-
|
1012
|
-
def test_find_spec_by_name_and_version_wildcard_bad_gem
|
1013
|
-
FileUtils.touch 'rdoc.gem'
|
966
|
+
dep = Gem::Dependency.new 'activesupport'
|
1014
967
|
|
1015
968
|
inst = Gem::DependencyInstaller.new
|
969
|
+
inst.install dep
|
1016
970
|
|
1017
|
-
|
1018
|
-
Gem::Deprecate.skip_during do
|
1019
|
-
inst.find_spec_by_name_and_version '*.gem'
|
1020
|
-
end
|
1021
|
-
end
|
971
|
+
assert_equal %w[activesupport-1.0.0], Gem::Specification.map(&:full_name)
|
1022
972
|
end
|
1023
973
|
|
1024
|
-
def
|
1025
|
-
|
974
|
+
def test_find_gems_gems_with_sources
|
975
|
+
util_setup_gems
|
1026
976
|
|
1027
977
|
inst = Gem::DependencyInstaller.new
|
978
|
+
dep = Gem::Dependency.new 'b', '>= 0'
|
1028
979
|
|
1029
|
-
|
1030
|
-
Gem::Deprecate.skip_during do
|
1031
|
-
inst.find_spec_by_name_and_version 'rdoc.gem'
|
1032
|
-
end
|
1033
|
-
end
|
1034
|
-
|
1035
|
-
full_path = File.join @tempdir, 'rdoc.gem'
|
1036
|
-
assert_equal "package metadata is missing in #{full_path}", e.message
|
1037
|
-
end
|
1038
|
-
|
1039
|
-
def test_find_spec_by_name_and_version_directory
|
1040
|
-
Dir.mkdir 'rdoc'
|
1041
|
-
|
1042
|
-
inst = Gem::DependencyInstaller.new
|
980
|
+
Gem::Specification.reset
|
1043
981
|
|
1044
|
-
|
1045
|
-
|
1046
|
-
inst.find_spec_by_name_and_version 'rdoc'
|
1047
|
-
end
|
982
|
+
set = Gem::Deprecate.skip_during do
|
983
|
+
inst.find_gems_with_sources(dep)
|
1048
984
|
end
|
1049
985
|
|
1050
|
-
|
1051
|
-
"locally or in a repository",
|
1052
|
-
e.message
|
1053
|
-
end
|
1054
|
-
|
1055
|
-
def test_find_spec_by_name_and_version_file
|
1056
|
-
FileUtils.touch 'rdoc'
|
1057
|
-
|
1058
|
-
inst = Gem::DependencyInstaller.new
|
986
|
+
assert_kind_of Gem::AvailableSet, set
|
1059
987
|
|
1060
|
-
|
1061
|
-
Gem::Deprecate.skip_during do
|
1062
|
-
inst.find_spec_by_name_and_version 'rdoc'
|
1063
|
-
end
|
1064
|
-
end
|
988
|
+
s = set.set.first
|
1065
989
|
|
1066
|
-
assert_equal
|
1067
|
-
|
1068
|
-
e.message
|
990
|
+
assert_equal @b1, s.spec
|
991
|
+
assert_equal Gem::Source.new(@gem_repo), s.source
|
1069
992
|
end
|
1070
993
|
|
1071
994
|
def test_find_gems_with_sources_local
|
@@ -1109,8 +1032,8 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
1109
1032
|
|
1110
1033
|
releases = set.all_specs
|
1111
1034
|
|
1112
|
-
assert releases.any? {
|
1113
|
-
refute releases.any? {
|
1035
|
+
assert releases.any? {|s| s.name == 'a' and s.version.to_s == '1' }
|
1036
|
+
refute releases.any? {|s| s.name == 'a' and s.version.to_s == '1.a' }
|
1114
1037
|
|
1115
1038
|
dependency.prerelease = true
|
1116
1039
|
|
@@ -1168,7 +1091,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
1168
1091
|
inst = Gem::DependencyInstaller.new
|
1169
1092
|
request_set = inst.resolve_dependencies 'b', req('>= 0')
|
1170
1093
|
|
1171
|
-
requests = request_set.sorted_requests.map {
|
1094
|
+
requests = request_set.sorted_requests.map {|req| req.full_name }
|
1172
1095
|
|
1173
1096
|
assert_equal %w[a-1 b-1], requests
|
1174
1097
|
end
|
@@ -1182,7 +1105,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
1182
1105
|
inst = Gem::DependencyInstaller.new :ignore_dependencies => true
|
1183
1106
|
request_set = inst.resolve_dependencies 'b', req('>= 0')
|
1184
1107
|
|
1185
|
-
requests = request_set.sorted_requests.map {
|
1108
|
+
requests = request_set.sorted_requests.map {|req| req.full_name }
|
1186
1109
|
|
1187
1110
|
assert request_set.ignore_dependencies
|
1188
1111
|
|
@@ -1199,26 +1122,11 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
1199
1122
|
inst = Gem::DependencyInstaller.new
|
1200
1123
|
request_set = inst.resolve_dependencies 'a-1.gem', req('>= 0')
|
1201
1124
|
|
1202
|
-
requests = request_set.sorted_requests.map {
|
1125
|
+
requests = request_set.sorted_requests.map {|req| req.full_name }
|
1203
1126
|
|
1204
1127
|
assert_equal %w[a-1], requests
|
1205
1128
|
end
|
1206
1129
|
|
1207
|
-
def util_write_a1_bin
|
1208
|
-
write_file File.join('gems', 'a-1', 'bin', 'a_bin') do |fp|
|
1209
|
-
fp.puts "#!/usr/bin/ruby"
|
1210
|
-
end
|
1211
|
-
end
|
1212
|
-
|
1213
|
-
def util_setup_c1_pre
|
1214
|
-
@c1_pre, @c1_pre_gem = util_spec 'c', '1.a' do |s|
|
1215
|
-
s.add_dependency 'a', '1.a'
|
1216
|
-
s.add_dependency 'b', '1'
|
1217
|
-
end
|
1218
|
-
|
1219
|
-
util_reset_gems
|
1220
|
-
end
|
1221
|
-
|
1222
1130
|
def util_setup_d
|
1223
1131
|
@d1, @d1_gem = util_gem 'd', '1'
|
1224
1132
|
@d2, @d2_gem = util_gem 'd', '2'
|
@@ -1226,44 +1134,13 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
1226
1134
|
util_reset_gems
|
1227
1135
|
end
|
1228
1136
|
|
1229
|
-
def util_setup_wxyz
|
1230
|
-
@x1_m, @x1_m_gem = util_spec 'x', '1' do |s|
|
1231
|
-
s.platform = Gem::Platform.new %w[cpu my_platform 1]
|
1232
|
-
end
|
1233
|
-
|
1234
|
-
@x1_o, @x1_o_gem = util_spec 'x', '1' do |s|
|
1235
|
-
s.platform = Gem::Platform.new %w[cpu other_platform 1]
|
1236
|
-
end
|
1237
|
-
|
1238
|
-
@w1, @w1_gem = util_spec 'w', '1', 'x' => nil
|
1239
|
-
|
1240
|
-
@y1, @y1_gem = util_spec 'y', '1'
|
1241
|
-
@y1_1_p, @y1_1_p_gem = util_spec 'y', '1.1' do |s|
|
1242
|
-
s.platform = Gem::Platform.new %w[cpu my_platform 1]
|
1243
|
-
end
|
1244
|
-
|
1245
|
-
@z1, @z1_gem = util_spec 'z', '1', 'y' => nil
|
1246
|
-
|
1247
|
-
util_reset_gems
|
1248
|
-
end
|
1249
|
-
|
1250
1137
|
def util_reset_gems
|
1251
1138
|
@a1 ||= nil
|
1252
1139
|
@b1 ||= nil
|
1253
1140
|
@a1_pre ||= nil
|
1254
|
-
@c1_pre ||= nil
|
1255
1141
|
@d1 ||= nil
|
1256
1142
|
@d2 ||= nil
|
1257
|
-
@w1 ||= nil
|
1258
|
-
@x1_m ||= nil
|
1259
|
-
@x1_o ||= nil
|
1260
|
-
@y1 ||= nil
|
1261
|
-
@y1_1_p ||= nil
|
1262
|
-
@z1 ||= nil
|
1263
|
-
|
1264
|
-
util_setup_spec_fetcher(*[@a1, @a1_pre, @b1, @c1_pre,
|
1265
|
-
@d1, @d2, @x1_m, @x1_o, @w1, @y1,
|
1266
|
-
@y1_1_p, @z1].compact)
|
1267
|
-
end
|
1268
1143
|
|
1144
|
+
util_setup_spec_fetcher(*[@a1, @a1_pre, @b1, @d1, @d2].compact)
|
1145
|
+
end
|
1269
1146
|
end
|