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
@@ -2,7 +2,6 @@
|
|
2
2
|
require 'rubygems/test_case'
|
3
3
|
|
4
4
|
class TestGemSourceFetchProblem < Gem::TestCase
|
5
|
-
|
6
5
|
def test_exception
|
7
6
|
source = Gem::Source.new @gem_repo
|
8
7
|
error = RuntimeError.new 'test'
|
@@ -24,5 +23,4 @@ class TestGemSourceFetchProblem < Gem::TestCase
|
|
24
23
|
|
25
24
|
refute_match sf.wordy, 'secret'
|
26
25
|
end
|
27
|
-
|
28
26
|
end
|
@@ -3,7 +3,6 @@ require 'rubygems/test_case'
|
|
3
3
|
require 'rubygems/source'
|
4
4
|
|
5
5
|
class TestGemSourceGit < Gem::TestCase
|
6
|
-
|
7
6
|
def setup
|
8
7
|
super
|
9
8
|
|
@@ -69,8 +68,9 @@ class TestGemSourceGit < Gem::TestCase
|
|
69
68
|
git_gem 'b'
|
70
69
|
|
71
70
|
Dir.chdir 'git/a' do
|
72
|
-
|
73
|
-
|
71
|
+
output, status = Open3.capture2e(@git, 'submodule', '--quiet', 'add', File.expand_path('../b'), 'b')
|
72
|
+
assert status.success?, output
|
73
|
+
|
74
74
|
system @git, 'commit', '--quiet', '-m', 'add submodule b'
|
75
75
|
end
|
76
76
|
|
@@ -187,7 +187,7 @@ class TestGemSourceGit < Gem::TestCase
|
|
187
187
|
source.cache
|
188
188
|
|
189
189
|
e = assert_raises Gem::Exception do
|
190
|
-
capture_subprocess_io {source.rev_parse}
|
190
|
+
capture_subprocess_io { source.rev_parse }
|
191
191
|
end
|
192
192
|
|
193
193
|
assert_equal "unable to find reference nonexistent in #{@repository}",
|
@@ -208,16 +208,16 @@ class TestGemSourceGit < Gem::TestCase
|
|
208
208
|
installed = Gem::Source::Installed.new
|
209
209
|
vendor = Gem::Source::Vendor.new 'vendor/foo'
|
210
210
|
|
211
|
-
assert_equal(0, git
|
211
|
+
assert_equal(0, git.<=>(git), 'git <=> git')
|
212
212
|
|
213
|
-
assert_equal(1, git
|
214
|
-
assert_equal(-1, remote
|
213
|
+
assert_equal(1, git.<=>(remote), 'git <=> remote')
|
214
|
+
assert_equal(-1, remote.<=>(git), 'remote <=> git')
|
215
215
|
|
216
|
-
assert_equal(1, git
|
217
|
-
assert_equal(-1, installed.<=>(git),
|
216
|
+
assert_equal(1, git.<=>(installed), 'git <=> installed')
|
217
|
+
assert_equal(-1, installed.<=>(git), 'installed <=> git')
|
218
218
|
|
219
|
-
assert_equal(-1, git
|
220
|
-
assert_equal(1, vendor
|
219
|
+
assert_equal(-1, git.<=>(vendor), 'git <=> vendor')
|
220
|
+
assert_equal(1, vendor.<=>(git), 'vendor <=> git')
|
221
221
|
end
|
222
222
|
|
223
223
|
def test_specs
|
@@ -244,7 +244,7 @@ class TestGemSourceGit < Gem::TestCase
|
|
244
244
|
specs = source.specs
|
245
245
|
end
|
246
246
|
|
247
|
-
assert_equal %w[a-1 b-1], specs.map {
|
247
|
+
assert_equal %w[a-1 b-1], specs.map {|spec| spec.full_name }
|
248
248
|
|
249
249
|
a_spec = specs.shift
|
250
250
|
|
@@ -299,5 +299,4 @@ class TestGemSourceGit < Gem::TestCase
|
|
299
299
|
assert_equal '291c4caac7feba8bb64c297987028acb3dde6cfe',
|
300
300
|
source.uri_hash
|
301
301
|
end
|
302
|
-
|
303
302
|
end
|
@@ -3,7 +3,6 @@ require 'rubygems/test_case'
|
|
3
3
|
require 'rubygems/source'
|
4
4
|
|
5
5
|
class TestGemSourceInstalled < Gem::TestCase
|
6
|
-
|
7
6
|
def test_spaceship
|
8
7
|
a1 = quick_gem 'a', '1'
|
9
8
|
util_build_gem a1
|
@@ -17,20 +16,19 @@ class TestGemSourceInstalled < Gem::TestCase
|
|
17
16
|
|
18
17
|
assert_equal(0, installed.<=>(installed), 'installed <=> installed')
|
19
18
|
|
20
|
-
assert_equal(-1, remote
|
19
|
+
assert_equal(-1, remote.<=>(installed), 'remote <=> installed')
|
21
20
|
assert_equal(1, installed.<=>(remote), 'installed <=> remote')
|
22
21
|
|
23
22
|
assert_equal(1, installed.<=>(local), 'installed <=> local')
|
24
|
-
assert_equal(-1, local
|
23
|
+
assert_equal(-1, local.<=>(installed), 'local <=> installed')
|
25
24
|
|
26
|
-
assert_equal(-1, specific
|
25
|
+
assert_equal(-1, specific.<=>(installed), 'specific <=> installed')
|
27
26
|
assert_equal(1, installed.<=>(specific), 'installed <=> specific')
|
28
27
|
|
29
|
-
assert_equal(1, git.
|
30
|
-
assert_equal(-1, installed.<=>(git),
|
28
|
+
assert_equal(1, git. <=>(installed), 'git <=> installed')
|
29
|
+
assert_equal(-1, installed.<=>(git), 'installed <=> git')
|
31
30
|
|
32
|
-
assert_equal(1, vendor
|
33
|
-
assert_equal(-1, installed.<=>(vendor),
|
31
|
+
assert_equal(1, vendor.<=>(installed), 'vendor <=> installed')
|
32
|
+
assert_equal(-1, installed.<=>(vendor), 'installed <=> vendor')
|
34
33
|
end
|
35
|
-
|
36
34
|
end
|
@@ -1,9 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
require 'rubygems'
|
2
3
|
require 'rubygems/source_list'
|
3
4
|
require 'rubygems/test_case'
|
4
5
|
|
5
6
|
class TestGemSourceList < Gem::TestCase
|
6
|
-
|
7
7
|
def setup
|
8
8
|
super
|
9
9
|
|
@@ -115,5 +115,4 @@ class TestGemSourceList < Gem::TestCase
|
|
115
115
|
@sl.delete Gem::Source.new(@uri)
|
116
116
|
assert_equal @sl.sources, []
|
117
117
|
end
|
118
|
-
|
119
118
|
end
|
@@ -5,7 +5,6 @@ require 'rubygems/source'
|
|
5
5
|
require 'fileutils'
|
6
6
|
|
7
7
|
class TestGemSourceLocal < Gem::TestCase
|
8
|
-
|
9
8
|
def setup
|
10
9
|
super
|
11
10
|
|
@@ -73,7 +72,7 @@ class TestGemSourceLocal < Gem::TestCase
|
|
73
72
|
|
74
73
|
@sl.load_specs :released
|
75
74
|
|
76
|
-
inner = [@a, @ap, @b].map {
|
75
|
+
inner = [@a, @ap, @b].map {|t| t.name_tuple }.inspect
|
77
76
|
|
78
77
|
assert_equal "#<Gem::Source::Local specs: #{inner}>", @sl.inspect
|
79
78
|
end
|
@@ -93,16 +92,15 @@ class TestGemSourceLocal < Gem::TestCase
|
|
93
92
|
installed = Gem::Source::Installed.new
|
94
93
|
local = Gem::Source::Local.new
|
95
94
|
|
96
|
-
assert_equal(0, local
|
95
|
+
assert_equal(0, local.<=>(local), 'local <=> local')
|
97
96
|
|
98
|
-
assert_equal(-1, remote
|
99
|
-
assert_equal(1, local
|
97
|
+
assert_equal(-1, remote.<=>(local), 'remote <=> local')
|
98
|
+
assert_equal(1, local.<=>(remote), 'local <=> remote')
|
100
99
|
|
101
|
-
assert_equal(1, installed.<=>(local),
|
102
|
-
assert_equal(-1, local
|
100
|
+
assert_equal(1, installed.<=>(local), 'installed <=> local')
|
101
|
+
assert_equal(-1, local.<=>(installed), 'local <=> installed')
|
103
102
|
|
104
|
-
assert_equal(-1, specific
|
105
|
-
assert_equal(1, local
|
103
|
+
assert_equal(-1, specific.<=>(local), 'specific <=> local')
|
104
|
+
assert_equal(1, local.<=>(specific), 'local <=> specific')
|
106
105
|
end
|
107
|
-
|
108
106
|
end
|
@@ -2,7 +2,6 @@
|
|
2
2
|
require 'rubygems/test_case'
|
3
3
|
|
4
4
|
class TestGemSourceLock < Gem::TestCase
|
5
|
-
|
6
5
|
def test_fetch_spec
|
7
6
|
spec_fetcher do |fetcher|
|
8
7
|
fetcher.spec 'a', 1
|
@@ -59,31 +58,31 @@ class TestGemSourceLock < Gem::TestCase
|
|
59
58
|
lock = Gem::Source::Lock.new git
|
60
59
|
|
61
60
|
assert_equal(1, lock.<=>(git), 'lock <=> git')
|
62
|
-
assert_equal(-1, git
|
61
|
+
assert_equal(-1, git.<=>(lock), 'git <=> lock')
|
63
62
|
end
|
64
63
|
|
65
64
|
def test_spaceship_installed
|
66
65
|
installed = Gem::Source::Installed.new
|
67
66
|
lock = Gem::Source::Lock.new installed
|
68
67
|
|
69
|
-
assert_equal(1, lock
|
70
|
-
assert_equal(-1, installed.<=>(lock),
|
68
|
+
assert_equal(1, lock.<=>(installed), 'lock <=> installed')
|
69
|
+
assert_equal(-1, installed.<=>(lock), 'installed <=> lock')
|
71
70
|
end
|
72
71
|
|
73
72
|
def test_spaceship_local
|
74
73
|
local = Gem::Source::Local.new
|
75
74
|
lock = Gem::Source::Lock.new local # nonsense
|
76
75
|
|
77
|
-
assert_equal(1, lock
|
78
|
-
assert_equal(-1, local.<=>(lock),
|
76
|
+
assert_equal(1, lock.<=>(local), 'lock <=> local')
|
77
|
+
assert_equal(-1, local.<=>(lock), 'local <=> lock')
|
79
78
|
end
|
80
79
|
|
81
80
|
def test_spaceship_remote
|
82
81
|
remote = Gem::Source.new @gem_repo
|
83
82
|
lock = Gem::Source::Lock.new remote
|
84
83
|
|
85
|
-
assert_equal(1, lock
|
86
|
-
assert_equal(-1, remote.<=>(lock),
|
84
|
+
assert_equal(1, lock.<=>(remote), 'lock <=> remote')
|
85
|
+
assert_equal(-1, remote.<=>(lock), 'remote <=> lock')
|
87
86
|
end
|
88
87
|
|
89
88
|
def test_spaceship_specific_file
|
@@ -92,7 +91,7 @@ class TestGemSourceLock < Gem::TestCase
|
|
92
91
|
specific = Gem::Source::SpecificFile.new gem
|
93
92
|
lock = Gem::Source::Lock.new specific # nonsense
|
94
93
|
|
95
|
-
assert_equal(1, lock
|
94
|
+
assert_equal(1, lock.<=>(specific), 'lock <=> specific')
|
96
95
|
assert_equal(-1, specific.<=>(lock), 'specific <=> lock')
|
97
96
|
end
|
98
97
|
|
@@ -100,8 +99,8 @@ class TestGemSourceLock < Gem::TestCase
|
|
100
99
|
vendor = Gem::Source::Vendor.new 'vendor/a'
|
101
100
|
lock = Gem::Source::Lock.new vendor
|
102
101
|
|
103
|
-
assert_equal(1, lock
|
104
|
-
assert_equal(-1, vendor.<=>(lock),
|
102
|
+
assert_equal(1, lock.<=>(vendor), 'lock <=> vendor')
|
103
|
+
assert_equal(-1, vendor.<=>(lock), 'vendor <=> lock')
|
105
104
|
end
|
106
105
|
|
107
106
|
def test_uri
|
@@ -110,5 +109,4 @@ class TestGemSourceLock < Gem::TestCase
|
|
110
109
|
|
111
110
|
assert_equal URI(@gem_repo), lock.uri
|
112
111
|
end
|
113
|
-
|
114
112
|
end
|
@@ -3,7 +3,6 @@ require 'rubygems/test_case'
|
|
3
3
|
require 'rubygems/source'
|
4
4
|
|
5
5
|
class TestGemSourceSpecificFile < Gem::TestCase
|
6
|
-
|
7
6
|
def setup
|
8
7
|
super
|
9
8
|
|
@@ -46,16 +45,16 @@ class TestGemSourceSpecificFile < Gem::TestCase
|
|
46
45
|
installed = Gem::Source::Installed.new
|
47
46
|
local = Gem::Source::Local.new
|
48
47
|
|
49
|
-
assert_equal(0, specific
|
48
|
+
assert_equal(0, specific.<=>(specific), 'specific <=> specific')
|
50
49
|
|
51
|
-
assert_equal(-1, remote
|
52
|
-
assert_equal(1, specific
|
50
|
+
assert_equal(-1, remote.<=>(specific), 'remote <=> specific')
|
51
|
+
assert_equal(1, specific.<=>(remote), 'specific <=> remote')
|
53
52
|
|
54
|
-
assert_equal(-1, specific
|
55
|
-
assert_equal(1, local. <=>(specific), 'local
|
53
|
+
assert_equal(-1, specific.<=>(local), 'specific <=> local')
|
54
|
+
assert_equal(1, local. <=>(specific), 'local <=> specific')
|
56
55
|
|
57
|
-
assert_equal(-1, specific. <=>(installed), 'specific
|
58
|
-
assert_equal(1, installed.<=>(specific),
|
56
|
+
assert_equal(-1, specific. <=>(installed), 'specific <=> installed')
|
57
|
+
assert_equal(1, installed.<=>(specific), 'installed <=> specific')
|
59
58
|
|
60
59
|
a2 = quick_gem 'a', '2'
|
61
60
|
util_build_gem a2
|
@@ -73,5 +72,4 @@ class TestGemSourceSpecificFile < Gem::TestCase
|
|
73
72
|
assert_equal(0, a1_source.<=>(a1_source), 'a1_source <=> a1_source')
|
74
73
|
assert_equal(1, a2_source.<=>(a1_source), 'a2_source <=> a1_source')
|
75
74
|
end
|
76
|
-
|
77
75
|
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'rubygems/test_case'
|
3
|
+
require 'rubygems/source'
|
4
|
+
|
5
|
+
class TestGemSourceSubpathProblem < Gem::TestCase
|
6
|
+
def tuple(*args)
|
7
|
+
Gem::NameTuple.new(*args)
|
8
|
+
end
|
9
|
+
|
10
|
+
def setup
|
11
|
+
super
|
12
|
+
|
13
|
+
@gem_repo = "http://gems.example.com/private"
|
14
|
+
|
15
|
+
spec_fetcher
|
16
|
+
|
17
|
+
@source = Gem::Source.new(@gem_repo)
|
18
|
+
|
19
|
+
util_make_gems
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_dependency_resolver_set
|
23
|
+
response = Net::HTTPResponse.new '1.1', 200, 'OK'
|
24
|
+
response.uri = URI('http://example')
|
25
|
+
|
26
|
+
@fetcher.data["#{@gem_repo}/"] = response
|
27
|
+
|
28
|
+
set = @source.dependency_resolver_set
|
29
|
+
|
30
|
+
assert_kind_of Gem::Resolver::APISet, set
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_fetch_spec
|
34
|
+
@fetcher.data["#{@gem_repo}/#{Gem::MARSHAL_SPEC_DIR}#{@a1.spec_name}.rz"] = Zlib::Deflate.deflate(Marshal.dump(@a1))
|
35
|
+
|
36
|
+
spec = @source.fetch_spec tuple('a', Gem::Version.new(1), 'ruby')
|
37
|
+
assert_equal @a1.full_name, spec.full_name
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_load_specs
|
41
|
+
@fetcher.data["#{@gem_repo}/latest_specs.#{Gem.marshal_version}.gz"] = util_gzip(Marshal.dump([
|
42
|
+
Gem::NameTuple.new(@a1.name, @a1.version, 'ruby'),
|
43
|
+
Gem::NameTuple.new(@b2.name, @b2.version, 'ruby'),
|
44
|
+
]))
|
45
|
+
|
46
|
+
released = @source.load_specs(:latest).map {|spec| spec.full_name }
|
47
|
+
assert_equal %W[a-1 b-2], released
|
48
|
+
end
|
49
|
+
end
|
@@ -3,7 +3,6 @@ require 'rubygems/test_case'
|
|
3
3
|
require 'rubygems/source'
|
4
4
|
|
5
5
|
class TestGemSourceVendor < Gem::TestCase
|
6
|
-
|
7
6
|
def test_initialize
|
8
7
|
source = Gem::Source::Vendor.new 'vendor/foo'
|
9
8
|
|
@@ -16,16 +15,15 @@ class TestGemSourceVendor < Gem::TestCase
|
|
16
15
|
git = Gem::Source::Git.new 'a', 'a', 'master'
|
17
16
|
installed = Gem::Source::Installed.new
|
18
17
|
|
19
|
-
assert_equal(0, vendor
|
18
|
+
assert_equal(0, vendor.<=>(vendor), 'vendor <=> vendor')
|
20
19
|
|
21
|
-
assert_equal(1, vendor
|
22
|
-
assert_equal(-1, remote
|
20
|
+
assert_equal(1, vendor.<=>(remote), 'vendor <=> remote')
|
21
|
+
assert_equal(-1, remote.<=>(vendor), 'remote <=> vendor')
|
23
22
|
|
24
|
-
assert_equal(1, vendor
|
25
|
-
assert_equal(-1, git
|
23
|
+
assert_equal(1, vendor.<=>(git), 'vendor <=> git')
|
24
|
+
assert_equal(-1, git.<=>(vendor), 'git <=> vendor')
|
26
25
|
|
27
|
-
assert_equal(1, vendor
|
28
|
-
assert_equal(-1, installed.<=>(vendor),
|
26
|
+
assert_equal(1, vendor.<=>(installed), 'vendor <=> installed')
|
27
|
+
assert_equal(-1, installed.<=>(vendor), 'installed <=> vendor')
|
29
28
|
end
|
30
|
-
|
31
29
|
end
|
@@ -3,7 +3,6 @@ require 'rubygems/test_case'
|
|
3
3
|
require 'rubygems/spec_fetcher'
|
4
4
|
|
5
5
|
class TestGemSpecFetcher < Gem::TestCase
|
6
|
-
|
7
6
|
def tuple(*args)
|
8
7
|
Gem::NameTuple.new(*args)
|
9
8
|
end
|
@@ -173,10 +172,19 @@ class TestGemSpecFetcher < Gem::TestCase
|
|
173
172
|
spec_fetcher do|fetcher|
|
174
173
|
fetcher.spec 'example', 1
|
175
174
|
fetcher.spec 'other-example', 1
|
175
|
+
fetcher.spec 'examp', 1
|
176
176
|
end
|
177
177
|
|
178
|
-
suggestions = @sf.suggest_gems_from_name('examplw')
|
178
|
+
suggestions = @sf.suggest_gems_from_name('examplw', :latest, 1)
|
179
179
|
assert_equal ['example'], suggestions
|
180
|
+
|
181
|
+
suggestions = @sf.suggest_gems_from_name('other')
|
182
|
+
assert_equal ['other-example'], suggestions
|
183
|
+
|
184
|
+
suggestions = @sf.suggest_gems_from_name('exam')
|
185
|
+
assert suggestions.any? { ['examp'] }
|
186
|
+
assert suggestions.any? { ['example'] }
|
187
|
+
assert suggestions.any? { ['other-example'] }
|
180
188
|
end
|
181
189
|
|
182
190
|
def test_suggest_gems_from_name_prerelease
|
@@ -313,7 +321,7 @@ class TestGemSpecFetcher < Gem::TestCase
|
|
313
321
|
specs, _ = @sf.available_specs(:prerelease)
|
314
322
|
|
315
323
|
expected = Gem::NameTuple.from_list \
|
316
|
-
[['a',
|
324
|
+
[['a', v('2.a'), Gem::Platform::RUBY]]
|
317
325
|
|
318
326
|
assert_equal expected, specs[@source]
|
319
327
|
end
|
@@ -326,5 +334,4 @@ class TestGemSpecFetcher < Gem::TestCase
|
|
326
334
|
assert_equal({}, specs)
|
327
335
|
assert_kind_of Gem::SourceFetchProblem, errors.first
|
328
336
|
end
|
329
|
-
|
330
337
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
require 'benchmark'
|
3
3
|
require 'rubygems/test_case'
|
4
|
+
require 'date'
|
4
5
|
require 'pathname'
|
5
6
|
require 'stringio'
|
6
7
|
require 'rubygems/ext'
|
@@ -9,7 +10,6 @@ require 'rubygems/installer'
|
|
9
10
|
require 'rubygems/platform'
|
10
11
|
|
11
12
|
class TestGemSpecification < Gem::TestCase
|
12
|
-
|
13
13
|
LEGACY_YAML_SPEC = <<-EOF.freeze
|
14
14
|
--- !ruby/object:Gem::Specification
|
15
15
|
rubygems_version: "1.0"
|
@@ -83,6 +83,11 @@ end
|
|
83
83
|
def setup
|
84
84
|
super
|
85
85
|
|
86
|
+
# Setting `@default_source_date_epoch` to `nil` effectively resets the
|
87
|
+
# value used for `Gem.source_date_epoch` whenever `$SOURCE_DATE_EPOCH`
|
88
|
+
# is not set.
|
89
|
+
Gem.instance_variable_set(:'@default_source_date_epoch', nil)
|
90
|
+
|
86
91
|
@a1 = util_spec 'a', '1' do |s|
|
87
92
|
s.executable = 'exec'
|
88
93
|
s.test_file = 'test/suite.rb'
|
@@ -135,12 +140,12 @@ end
|
|
135
140
|
install_specs c1, c2, b1, b2, a1
|
136
141
|
|
137
142
|
a1.activate
|
138
|
-
assert_equal %w
|
143
|
+
assert_equal %w[a-1], loaded_spec_names
|
139
144
|
assert_equal ["b (> 0)"], unresolved_names
|
140
145
|
|
141
146
|
require "d#{$$}"
|
142
147
|
|
143
|
-
assert_equal %w
|
148
|
+
assert_equal %w[a-1 b-2 c-2], loaded_spec_names
|
144
149
|
assert_equal [], unresolved_names
|
145
150
|
end
|
146
151
|
end
|
@@ -182,12 +187,12 @@ end
|
|
182
187
|
install_specs c1, c2, b1, b2, a1
|
183
188
|
|
184
189
|
a1.activate
|
185
|
-
assert_equal %w
|
190
|
+
assert_equal %w[a-1], loaded_spec_names
|
186
191
|
assert_equal ["b (> 0)"], unresolved_names
|
187
192
|
|
188
193
|
require "d#{$$}"
|
189
194
|
|
190
|
-
assert_equal %w
|
195
|
+
assert_equal %w[a-1 b-2 c-2], loaded_spec_names
|
191
196
|
assert_equal [], unresolved_names
|
192
197
|
end
|
193
198
|
end
|
@@ -204,12 +209,12 @@ end
|
|
204
209
|
install_specs c1, b1, a1, a2, c2, b2
|
205
210
|
|
206
211
|
a2.activate
|
207
|
-
assert_equal %w
|
212
|
+
assert_equal %w[a-2], loaded_spec_names
|
208
213
|
assert_equal ["b (> 0)"], unresolved_names
|
209
214
|
|
210
215
|
require "d#{$$}"
|
211
216
|
|
212
|
-
assert_equal %w
|
217
|
+
assert_equal %w[a-2 b-1 c-1], loaded_spec_names
|
213
218
|
assert_equal [], unresolved_names
|
214
219
|
end
|
215
220
|
end
|
@@ -226,12 +231,12 @@ end
|
|
226
231
|
install_specs d1, c1, c2, b1, b2, a1
|
227
232
|
|
228
233
|
a1.activate
|
229
|
-
assert_equal %w
|
234
|
+
assert_equal %w[a-1], loaded_spec_names
|
230
235
|
assert_equal ["b (> 0)"], unresolved_names
|
231
236
|
|
232
237
|
require "d#{$$}"
|
233
238
|
|
234
|
-
assert_equal %w
|
239
|
+
assert_equal %w[a-1 d-1], loaded_spec_names
|
235
240
|
assert_equal ["b (> 0)"], unresolved_names
|
236
241
|
end
|
237
242
|
end
|
@@ -241,7 +246,7 @@ end
|
|
241
246
|
a1 = util_spec "a", "1", "b" => "> 0"
|
242
247
|
b1 = util_spec "b", "1", "c" => ">= 0" # unresolved
|
243
248
|
b2 = util_spec "b", "2", "c" => ">= 0"
|
244
|
-
c1 = util_spec "c", "1", nil, "lib/c#{$$}.rb"
|
249
|
+
c1 = util_spec "c", "1", nil, "lib/c#{$$}.rb" # 1st level
|
245
250
|
c2 = util_spec "c", "2", nil, "lib/c#{$$}.rb"
|
246
251
|
|
247
252
|
install_specs c1, c2, b1, b2, a1
|
@@ -250,7 +255,7 @@ end
|
|
250
255
|
|
251
256
|
require "c#{$$}"
|
252
257
|
|
253
|
-
assert_equal %w
|
258
|
+
assert_equal %w[a-1 b-2 c-2], loaded_spec_names
|
254
259
|
end
|
255
260
|
end
|
256
261
|
|
@@ -259,7 +264,7 @@ end
|
|
259
264
|
a1 = util_spec "a", "1", "b" => "> 0"
|
260
265
|
b1 = util_spec "b", "1", "c" => ">= 0" # unresolved
|
261
266
|
b2 = util_spec "b", "2", "c" => ">= 0"
|
262
|
-
c1 = util_spec "c", "1", "d" => ">= 0"
|
267
|
+
c1 = util_spec "c", "1", "d" => ">= 0" # 1st level
|
263
268
|
c2 = util_spec "c", "2", "d" => ">= 0"
|
264
269
|
d1 = util_spec "d", "1", nil, "lib/d#{$$}.rb" # 2nd level
|
265
270
|
d2 = util_spec "d", "2", nil, "lib/d#{$$}.rb"
|
@@ -270,7 +275,7 @@ end
|
|
270
275
|
|
271
276
|
require "d#{$$}"
|
272
277
|
|
273
|
-
assert_equal %w
|
278
|
+
assert_equal %w[a-1 b-2 c-2 d-2], loaded_spec_names
|
274
279
|
end
|
275
280
|
end
|
276
281
|
|
@@ -291,7 +296,7 @@ end
|
|
291
296
|
|
292
297
|
require "d#{$$}"
|
293
298
|
|
294
|
-
assert_equal %w
|
299
|
+
assert_equal %w[a-1 b-2 c-2 d-2], loaded_spec_names
|
295
300
|
end
|
296
301
|
end
|
297
302
|
|
@@ -313,7 +318,7 @@ end
|
|
313
318
|
|
314
319
|
require "d#{$$}"
|
315
320
|
|
316
|
-
assert_equal %w
|
321
|
+
assert_equal %w[a-1 b-2 c-2 d-2], loaded_spec_names
|
317
322
|
end
|
318
323
|
end
|
319
324
|
|
@@ -331,12 +336,12 @@ end
|
|
331
336
|
install_specs c1, c2, c3, b1, b2, a1, a2, base
|
332
337
|
|
333
338
|
base.activate
|
334
|
-
assert_equal %w
|
339
|
+
assert_equal %w[0-1], loaded_spec_names
|
335
340
|
assert_equal ["A (>= 1)"], unresolved_names
|
336
341
|
|
337
342
|
require "d#{$$}"
|
338
343
|
|
339
|
-
assert_equal %w
|
344
|
+
assert_equal %w[0-1 A-2 b-2 c-2], loaded_spec_names
|
340
345
|
assert_equal [], unresolved_names
|
341
346
|
end
|
342
347
|
end
|
@@ -359,7 +364,7 @@ end
|
|
359
364
|
|
360
365
|
require "d#{$$}"
|
361
366
|
|
362
|
-
assert_includes [%w
|
367
|
+
assert_includes [%w[a-1 b-2 c-3 d-2],%w[a-1 b-2 d-2]], loaded_spec_names
|
363
368
|
end
|
364
369
|
end
|
365
370
|
|
@@ -381,7 +386,7 @@ end
|
|
381
386
|
|
382
387
|
require "d#{$$}"
|
383
388
|
|
384
|
-
assert_includes [%w
|
389
|
+
assert_includes [%w[a-1 b-2 d-2 xc-3], %w[a-1 b-2 d-2]], loaded_spec_names
|
385
390
|
end
|
386
391
|
end
|
387
392
|
|
@@ -510,16 +515,16 @@ end
|
|
510
515
|
require "b/c"
|
511
516
|
end
|
512
517
|
|
513
|
-
assert_equal %w
|
518
|
+
assert_equal %w[a-1 b-1], loaded_spec_names
|
514
519
|
end
|
515
520
|
|
516
521
|
def test_self_activate_via_require_wtf
|
517
522
|
save_loaded_features do
|
518
|
-
a1 = util_spec "a", "1", "b" => "> 0", "d" => "> 0"
|
523
|
+
a1 = util_spec "a", "1", "b" => "> 0", "d" => "> 0" # this
|
519
524
|
b1 = util_spec "b", "1", { "c" => ">= 1" }, "lib/b#{$$}.rb"
|
520
525
|
b2 = util_spec "b", "2", { "c" => ">= 2" }, "lib/b#{$$}.rb" # this
|
521
526
|
c1 = util_spec "c", "1"
|
522
|
-
c2 = util_spec "c", "2"
|
527
|
+
c2 = util_spec "c", "2" # this
|
523
528
|
d1 = util_spec "d", "1", { "c" => "< 2" }, "lib/d#{$$}.rb"
|
524
529
|
d2 = util_spec "d", "2", { "c" => "< 2" }, "lib/d#{$$}.rb" # this
|
525
530
|
|
@@ -527,7 +532,7 @@ end
|
|
527
532
|
|
528
533
|
a1.activate
|
529
534
|
|
530
|
-
assert_equal %w
|
535
|
+
assert_equal %w[a-1], loaded_spec_names
|
531
536
|
assert_equal ["b (> 0)", "d (> 0)"], unresolved_names
|
532
537
|
|
533
538
|
require "b#{$$}"
|
@@ -538,7 +543,7 @@ end
|
|
538
543
|
|
539
544
|
assert_equal "unable to find a version of 'd' to activate", e.message
|
540
545
|
|
541
|
-
assert_equal %w
|
546
|
+
assert_equal %w[a-1 b-2 c-2], loaded_spec_names
|
542
547
|
assert_equal ["d (> 0)"], unresolved_names
|
543
548
|
end
|
544
549
|
end
|
@@ -553,7 +558,7 @@ end
|
|
553
558
|
install_specs c1, c2, b1, b2, a1
|
554
559
|
|
555
560
|
a1.activate
|
556
|
-
assert_equal %w
|
561
|
+
assert_equal %w[a-1 b-1 c-1], loaded_spec_names
|
557
562
|
end
|
558
563
|
|
559
564
|
def test_self_activate_loaded
|
@@ -715,7 +720,7 @@ end
|
|
715
720
|
version
|
716
721
|
]
|
717
722
|
|
718
|
-
actual_value = Gem::Specification.attribute_names.map {
|
723
|
+
actual_value = Gem::Specification.attribute_names.map {|a| a.to_s }.sort
|
719
724
|
|
720
725
|
assert_equal expected_value, actual_value
|
721
726
|
end
|
@@ -790,7 +795,7 @@ bindir:
|
|
790
795
|
op = spec.dependencies.first.requirement.requirements.first.first
|
791
796
|
refute_kind_of YAML::Syck::DefaultKey, op
|
792
797
|
|
793
|
-
refute_match %r
|
798
|
+
refute_match %r{DefaultKey}, spec.to_ruby
|
794
799
|
end
|
795
800
|
|
796
801
|
def test_self_from_yaml_cleans_up_defaultkey
|
@@ -824,7 +829,7 @@ bindir:
|
|
824
829
|
op = spec.dependencies.first.requirement.requirements.first.first
|
825
830
|
refute_kind_of YAML::Syck::DefaultKey, op
|
826
831
|
|
827
|
-
refute_match %r
|
832
|
+
refute_match %r{DefaultKey}, spec.to_ruby
|
828
833
|
end
|
829
834
|
|
830
835
|
def test_self_from_yaml_cleans_up_defaultkey_from_newer_192
|
@@ -858,7 +863,7 @@ bindir:
|
|
858
863
|
op = spec.dependencies.first.requirement.requirements.first.first
|
859
864
|
refute_kind_of YAML::Syck::DefaultKey, op
|
860
865
|
|
861
|
-
refute_match %r
|
866
|
+
refute_match %r{DefaultKey}, spec.to_ruby
|
862
867
|
end
|
863
868
|
|
864
869
|
def test_self_from_yaml_cleans_up_Date_objects
|
@@ -939,7 +944,7 @@ dependencies: []
|
|
939
944
|
assert_equal File.join(@tempdir, 'a-2.gemspec'), spec.loaded_from
|
940
945
|
end
|
941
946
|
|
942
|
-
if RUBY_VERSION < '2.7'
|
947
|
+
if RUBY_ENGINE == 'ruby' and RUBY_VERSION < '2.7'
|
943
948
|
def test_self_load_tainted
|
944
949
|
full_path = @a2.spec_file
|
945
950
|
write_file full_path do |io|
|
@@ -1108,13 +1113,13 @@ dependencies: []
|
|
1108
1113
|
install_specs @a1
|
1109
1114
|
|
1110
1115
|
assert_includes Gem::Specification.all_names, 'a-1'
|
1111
|
-
assert_includes Gem::Specification.stubs.map {
|
1116
|
+
assert_includes Gem::Specification.stubs.map {|s| s.full_name }, 'a-1'
|
1112
1117
|
|
1113
1118
|
uninstall_gem @a1
|
1114
1119
|
Gem::Specification.reset
|
1115
1120
|
|
1116
1121
|
refute_includes Gem::Specification.all_names, 'a-1'
|
1117
|
-
refute_includes Gem::Specification.stubs.map {
|
1122
|
+
refute_includes Gem::Specification.stubs.map {|s| s.full_name }, 'a-1'
|
1118
1123
|
end
|
1119
1124
|
|
1120
1125
|
def test_self_remove_spec_removed
|
@@ -1129,49 +1134,39 @@ dependencies: []
|
|
1129
1134
|
Gem::Specification.reset
|
1130
1135
|
|
1131
1136
|
refute_includes Gem::Specification.all_names, 'a-1'
|
1132
|
-
refute_includes Gem::Specification.stubs.map {
|
1137
|
+
refute_includes Gem::Specification.stubs.map {|s| s.full_name }, 'a-1'
|
1133
1138
|
end
|
1134
1139
|
|
1135
|
-
def
|
1140
|
+
def test_self_stubs_for_lazy_loading
|
1136
1141
|
Gem.loaded_specs.clear
|
1137
1142
|
Gem::Specification.class_variable_set(:@@stubs, nil)
|
1138
1143
|
|
1139
1144
|
dir_standard_specs = File.join Gem.dir, 'specifications'
|
1140
|
-
dir_default_specs = Gem.default_specifications_dir
|
1141
1145
|
|
1142
|
-
|
1143
|
-
|
1144
|
-
Gem.loaded_specs['a'] = loaded_spec
|
1145
|
-
save_gemspec 'a', '2', dir_default_specs
|
1146
|
-
save_gemspec 'a', '1', dir_standard_specs
|
1146
|
+
save_gemspec('a-1', '1', dir_standard_specs){|s| s.name = 'a' }
|
1147
|
+
save_gemspec('b-1', '1', dir_standard_specs){|s| s.name = 'b' }
|
1147
1148
|
|
1148
|
-
|
1149
|
-
assert_equal
|
1149
|
+
assert_equal ['a-1'], Gem::Specification.stubs_for('a').map {|s| s.full_name }
|
1150
|
+
assert_equal 1, Gem::Specification.class_variable_get(:@@stubs_by_name).length
|
1151
|
+
assert_equal ['b-1'], Gem::Specification.stubs_for('b').map {|s| s.full_name }
|
1152
|
+
assert_equal 2, Gem::Specification.class_variable_get(:@@stubs_by_name).length
|
1153
|
+
|
1154
|
+
assert_equal(
|
1155
|
+
Gem::Specification.stubs_for('a').map {|s| s.object_id },
|
1156
|
+
Gem::Specification.stubs_for('a').map {|s| s.object_id }
|
1157
|
+
)
|
1150
1158
|
|
1151
1159
|
Gem.loaded_specs.delete 'a'
|
1160
|
+
Gem.loaded_specs.delete 'b'
|
1152
1161
|
Gem::Specification.class_variable_set(:@@stubs, nil)
|
1153
1162
|
end
|
1154
1163
|
|
1155
|
-
def
|
1156
|
-
Gem.
|
1157
|
-
Gem::Specification.class_variable_set(:@@stubs, nil)
|
1158
|
-
|
1159
|
-
dir_standard_specs = File.join Gem.dir, 'specifications'
|
1160
|
-
dir_default_specs = Gem.default_specifications_dir
|
1161
|
-
|
1162
|
-
# Create gemspecs in three locations used in stubs
|
1163
|
-
loaded_spec = Gem::Specification.new 'a', '3'
|
1164
|
-
Gem.loaded_specs['a'] = loaded_spec
|
1165
|
-
save_gemspec('a-2', '2', dir_default_specs) { |s| s.name = 'a' }
|
1166
|
-
save_gemspec('a-1', '1', dir_standard_specs) { |s| s.name = 'a' }
|
1164
|
+
def test_self_stubs_for_no_lazy_loading_after_all_specs_setup
|
1165
|
+
Gem::Specification.all = [util_spec('a', '1')]
|
1167
1166
|
|
1168
|
-
|
1167
|
+
save_gemspec('b-1', '1', File.join(Gem.dir, 'specifications')){|s| s.name = 'b' }
|
1169
1168
|
|
1170
|
-
assert_equal
|
1171
|
-
assert_equal 1, Gem::Specification.class_variable_get(:@@stubs_by_name).length
|
1172
|
-
|
1173
|
-
Gem.loaded_specs.delete 'a'
|
1174
|
-
Gem::Specification.class_variable_set(:@@stubs, nil)
|
1169
|
+
assert_equal [], Gem::Specification.stubs_for('b').map {|s| s.full_name }
|
1175
1170
|
end
|
1176
1171
|
|
1177
1172
|
def test_self_stubs_for_mult_platforms
|
@@ -1182,7 +1177,7 @@ dependencies: []
|
|
1182
1177
|
|
1183
1178
|
# create user spec
|
1184
1179
|
user_spec_dir = File.join Gem.user_dir, 'specifications'
|
1185
|
-
FileUtils.mkdir_p(user_spec_dir)
|
1180
|
+
FileUtils.mkdir_p(user_spec_dir) unless Dir.exist? user_spec_dir
|
1186
1181
|
# dirs doesn't include user ?
|
1187
1182
|
Gem::Specification.dirs << user_spec_dir
|
1188
1183
|
|
@@ -1192,7 +1187,7 @@ dependencies: []
|
|
1192
1187
|
|
1193
1188
|
#create specs
|
1194
1189
|
platforms.each do |plat|
|
1195
|
-
spec = Gem::Specification.new(gem, v) {
|
1190
|
+
spec = Gem::Specification.new(gem, v) {|s| s.platform = plat }
|
1196
1191
|
File.open File.join(user_spec_dir, "#{gem}-#{v}-#{plat}.gemspec"), 'w' do |io|
|
1197
1192
|
io.write spec.to_ruby
|
1198
1193
|
end
|
@@ -1213,10 +1208,8 @@ dependencies: []
|
|
1213
1208
|
Gem.platforms = orig_platform
|
1214
1209
|
end
|
1215
1210
|
|
1216
|
-
DATA_PATH = File.expand_path "../data", __FILE__
|
1217
|
-
|
1218
1211
|
def test_handles_private_null_type
|
1219
|
-
path = File.
|
1212
|
+
path = File.expand_path "../data/null-type.gemspec.rz", __FILE__
|
1220
1213
|
|
1221
1214
|
data = Marshal.load Gem::Util.inflate(Gem.read_binary(path))
|
1222
1215
|
|
@@ -1383,12 +1376,12 @@ dependencies: []
|
|
1383
1376
|
awesome.add_dependency :gem_name
|
1384
1377
|
end
|
1385
1378
|
|
1386
|
-
assert_equal %w[true gem_name], gem.dependencies.map {
|
1379
|
+
assert_equal %w[true gem_name], gem.dependencies.map {|dep| dep.name }
|
1387
1380
|
end
|
1388
1381
|
|
1389
1382
|
def test_add_dependency_from_existing_dependency
|
1390
1383
|
dep = Gem::Dependency.new("existing_dep", Gem::Requirement.new('> 1'), :runtime)
|
1391
|
-
spec = Gem::Specification.new {
|
1384
|
+
spec = Gem::Specification.new {|s| s.add_dependency dep }
|
1392
1385
|
assert_equal dep, spec.dependencies.first
|
1393
1386
|
end
|
1394
1387
|
|
@@ -1397,7 +1390,7 @@ dependencies: []
|
|
1397
1390
|
awesome.add_development_dependency "monkey"
|
1398
1391
|
end
|
1399
1392
|
|
1400
|
-
monkey = gem.dependencies.detect {
|
1393
|
+
monkey = gem.dependencies.detect {|d| d.name == "monkey" }
|
1401
1394
|
assert_equal(:development, monkey.type)
|
1402
1395
|
end
|
1403
1396
|
|
@@ -1495,7 +1488,7 @@ dependencies: []
|
|
1495
1488
|
default = new_default_spec 'default', 2
|
1496
1489
|
install_default_gems default
|
1497
1490
|
|
1498
|
-
stub = Gem::Specification.stubs.find {
|
1491
|
+
stub = Gem::Specification.stubs.find {|s| s.name == 'default' }
|
1499
1492
|
assert_predicate stub, :default_gem?
|
1500
1493
|
|
1501
1494
|
stub = Gem::Specification.find_all_by_name('default').first
|
@@ -1850,7 +1843,6 @@ dependencies: []
|
|
1850
1843
|
RbConfig::CONFIG['ENABLE_SHARED'], 'no'
|
1851
1844
|
|
1852
1845
|
class << Gem
|
1853
|
-
|
1854
1846
|
alias orig_default_ext_dir_for default_ext_dir_for
|
1855
1847
|
|
1856
1848
|
remove_method :default_ext_dir_for
|
@@ -1858,7 +1850,6 @@ dependencies: []
|
|
1858
1850
|
def Gem.default_ext_dir_for(base_dir)
|
1859
1851
|
'elsewhere'
|
1860
1852
|
end
|
1861
|
-
|
1862
1853
|
end
|
1863
1854
|
|
1864
1855
|
ext_spec
|
@@ -1872,20 +1863,18 @@ dependencies: []
|
|
1872
1863
|
RbConfig::CONFIG['ENABLE_SHARED'] = enable_shared
|
1873
1864
|
|
1874
1865
|
class << Gem
|
1875
|
-
|
1876
1866
|
remove_method :default_ext_dir_for
|
1877
1867
|
|
1878
1868
|
alias default_ext_dir_for orig_default_ext_dir_for
|
1879
|
-
|
1880
1869
|
end
|
1881
1870
|
end
|
1882
1871
|
|
1883
1872
|
def test_files
|
1884
|
-
@a1.files = %w
|
1885
|
-
@a1.test_files = %w
|
1886
|
-
@a1.executables = %w
|
1887
|
-
@a1.extra_rdoc_files = %w
|
1888
|
-
@a1.extensions = %w
|
1873
|
+
@a1.files = %w[files bin/common]
|
1874
|
+
@a1.test_files = %w[test_files bin/common]
|
1875
|
+
@a1.executables = %w[executables common]
|
1876
|
+
@a1.extra_rdoc_files = %w[extra_rdoc_files bin/common]
|
1877
|
+
@a1.extensions = %w[extensions bin/common]
|
1889
1878
|
|
1890
1879
|
expected = %w[
|
1891
1880
|
bin/common
|
@@ -1899,11 +1888,11 @@ dependencies: []
|
|
1899
1888
|
end
|
1900
1889
|
|
1901
1890
|
def test_files_append
|
1902
|
-
@a1.files = %w
|
1903
|
-
@a1.test_files = %w
|
1904
|
-
@a1.executables = %w
|
1905
|
-
@a1.extra_rdoc_files = %w
|
1906
|
-
@a1.extensions = %w
|
1891
|
+
@a1.files = %w[files bin/common]
|
1892
|
+
@a1.test_files = %w[test_files bin/common]
|
1893
|
+
@a1.executables = %w[executables common]
|
1894
|
+
@a1.extra_rdoc_files = %w[extra_rdoc_files bin/common]
|
1895
|
+
@a1.extensions = %w[extensions bin/common]
|
1907
1896
|
|
1908
1897
|
expected = %w[
|
1909
1898
|
bin/common
|
@@ -2017,7 +2006,7 @@ dependencies: []
|
|
2017
2006
|
test_cases = {
|
2018
2007
|
'i386-mswin32' => 'a-1-x86-mswin32-60',
|
2019
2008
|
'i386-mswin32_80' => 'a-1-x86-mswin32-80',
|
2020
|
-
'i386-mingw32' => 'a-1-x86-mingw32'
|
2009
|
+
'i386-mingw32' => 'a-1-x86-mingw32',
|
2021
2010
|
}
|
2022
2011
|
|
2023
2012
|
test_cases.each do |arch, expected|
|
@@ -2166,11 +2155,9 @@ dependencies: []
|
|
2166
2155
|
|
2167
2156
|
def test_require_paths_default_ext_dir_for
|
2168
2157
|
class << Gem
|
2169
|
-
|
2170
2158
|
send :alias_method, :orig_default_ext_dir_for, :default_ext_dir_for
|
2171
2159
|
|
2172
2160
|
remove_method :default_ext_dir_for
|
2173
|
-
|
2174
2161
|
end
|
2175
2162
|
|
2176
2163
|
def Gem.default_ext_dir_for(base_dir)
|
@@ -2186,11 +2173,9 @@ dependencies: []
|
|
2186
2173
|
end
|
2187
2174
|
ensure
|
2188
2175
|
class << Gem
|
2189
|
-
|
2190
2176
|
send :remove_method, :default_ext_dir_for
|
2191
2177
|
send :alias_method, :default_ext_dir_for, :orig_default_ext_dir_for
|
2192
2178
|
send :remove_method, :orig_default_ext_dir_for
|
2193
|
-
|
2194
2179
|
end
|
2195
2180
|
end
|
2196
2181
|
|
@@ -2292,12 +2277,12 @@ dependencies: []
|
|
2292
2277
|
install_specs a1 # , a2, b1, b2, c1, c2
|
2293
2278
|
|
2294
2279
|
a1.activate
|
2295
|
-
assert_equal %w
|
2280
|
+
assert_equal %w[a-1], loaded_spec_names
|
2296
2281
|
assert_equal [], unresolved_names
|
2297
2282
|
|
2298
2283
|
assert require "d#{$$}"
|
2299
2284
|
|
2300
|
-
assert_equal %w
|
2285
|
+
assert_equal %w[a-1], loaded_spec_names
|
2301
2286
|
assert_equal [], unresolved_names
|
2302
2287
|
end
|
2303
2288
|
end
|
@@ -2315,12 +2300,12 @@ dependencies: []
|
|
2315
2300
|
|
2316
2301
|
a1.activate
|
2317
2302
|
c1.activate
|
2318
|
-
assert_equal %w
|
2303
|
+
assert_equal %w[a-1 c-1], loaded_spec_names
|
2319
2304
|
assert_equal ["b (> 0)"], unresolved_names
|
2320
2305
|
|
2321
2306
|
assert require "d#{$$}"
|
2322
2307
|
|
2323
|
-
assert_equal %w
|
2308
|
+
assert_equal %w[a-1 c-1], loaded_spec_names
|
2324
2309
|
assert_equal ["b (> 0)"], unresolved_names
|
2325
2310
|
end
|
2326
2311
|
end
|
@@ -2343,7 +2328,7 @@ dependencies: []
|
|
2343
2328
|
|
2344
2329
|
expected = %w[rake jabber4r pqa]
|
2345
2330
|
|
2346
|
-
assert_equal expected, @c1.runtime_dependencies.map {
|
2331
|
+
assert_equal expected, @c1.runtime_dependencies.map {|d| d.name }
|
2347
2332
|
end
|
2348
2333
|
|
2349
2334
|
def test_spaceship_name
|
@@ -2453,6 +2438,9 @@ end
|
|
2453
2438
|
end
|
2454
2439
|
|
2455
2440
|
def test_to_ruby_with_rsa_key
|
2441
|
+
require 'rubygems/openssl'
|
2442
|
+
skip 'openssl is missing' unless defined?(OpenSSL::PKey::RSA)
|
2443
|
+
|
2456
2444
|
rsa_key = OpenSSL::PKey::RSA.new(2048)
|
2457
2445
|
@a2.signing_key = rsa_key
|
2458
2446
|
ruby_code = @a2.to_ruby
|
@@ -2656,7 +2644,7 @@ end
|
|
2656
2644
|
def test_to_yaml_platform_empty_string
|
2657
2645
|
@a1.instance_variable_set :@original_platform, ''
|
2658
2646
|
|
2659
|
-
assert_match %r
|
2647
|
+
assert_match %r{^platform: ruby$}, @a1.to_yaml
|
2660
2648
|
end
|
2661
2649
|
|
2662
2650
|
def test_to_yaml_platform_legacy
|
@@ -2674,7 +2662,7 @@ end
|
|
2674
2662
|
def test_to_yaml_platform_nil
|
2675
2663
|
@a1.instance_variable_set :@original_platform, nil
|
2676
2664
|
|
2677
|
-
assert_match %r
|
2665
|
+
assert_match %r{^platform: ruby$}, @a1.to_yaml
|
2678
2666
|
end
|
2679
2667
|
|
2680
2668
|
def test_validate
|
@@ -2718,7 +2706,7 @@ end
|
|
2718
2706
|
@a1.validate
|
2719
2707
|
end
|
2720
2708
|
|
2721
|
-
assert_equal %
|
2709
|
+
assert_equal %("#{f}" or "#{t}" is not an author), e.message
|
2722
2710
|
|
2723
2711
|
@a1.authors = ["#{t} (who is writing this software)"]
|
2724
2712
|
|
@@ -2726,7 +2714,7 @@ end
|
|
2726
2714
|
@a1.validate
|
2727
2715
|
end
|
2728
2716
|
|
2729
|
-
assert_equal %
|
2717
|
+
assert_equal %("#{f}" or "#{t}" is not an author), e.message
|
2730
2718
|
end
|
2731
2719
|
end
|
2732
2720
|
|
@@ -2784,7 +2772,7 @@ end
|
|
2784
2772
|
add_runtime_dependency 'l', '~> 1.2', '> 1.2.3'
|
2785
2773
|
#{w}: open-ended dependency on o (>= 0) is not recommended
|
2786
2774
|
use a bounded requirement, such as '~> x.y'
|
2787
|
-
#{w}: See
|
2775
|
+
#{w}: See https://guides.rubygems.org/specification-reference/ for help
|
2788
2776
|
EXPECTED
|
2789
2777
|
|
2790
2778
|
assert_equal expected, @ui.error, 'warning'
|
@@ -2816,7 +2804,7 @@ duplicate dependency on c (>= 1.2.3, development), (~> 1.2) use:
|
|
2816
2804
|
end
|
2817
2805
|
|
2818
2806
|
assert_equal <<-EXPECTED, @ui.error
|
2819
|
-
#{w}: See
|
2807
|
+
#{w}: See https://guides.rubygems.org/specification-reference/ for help
|
2820
2808
|
EXPECTED
|
2821
2809
|
end
|
2822
2810
|
end
|
@@ -2851,6 +2839,37 @@ duplicate dependency on c (>= 1.2.3, development), (~> 1.2) use:
|
|
2851
2839
|
end
|
2852
2840
|
end
|
2853
2841
|
|
2842
|
+
def test_validate_rake_extension_have_rake_dependency_warning
|
2843
|
+
util_setup_validate
|
2844
|
+
|
2845
|
+
Dir.chdir @tempdir do
|
2846
|
+
@a1.extensions = ['Rakefile']
|
2847
|
+
File.write File.join(@tempdir, 'Rakefile'), ''
|
2848
|
+
|
2849
|
+
use_ui @ui do
|
2850
|
+
@a1.validate
|
2851
|
+
end
|
2852
|
+
|
2853
|
+
assert_match(/add rake as a dependency/, @ui.error)
|
2854
|
+
end
|
2855
|
+
end
|
2856
|
+
|
2857
|
+
def test_validate_rake_extension_have_rake_dependency_no_warning
|
2858
|
+
util_setup_validate
|
2859
|
+
|
2860
|
+
Dir.chdir @tempdir do
|
2861
|
+
@a1.extensions = ['Rakefile']
|
2862
|
+
@a1.add_runtime_dependency 'rake'
|
2863
|
+
File.write File.join(@tempdir, 'Rakefile'), ''
|
2864
|
+
|
2865
|
+
use_ui @ui do
|
2866
|
+
@a1.validate
|
2867
|
+
end
|
2868
|
+
|
2869
|
+
refute_match(/add rake as a dependency/, @ui.error)
|
2870
|
+
end
|
2871
|
+
end
|
2872
|
+
|
2854
2873
|
def test_validate_description
|
2855
2874
|
util_setup_validate
|
2856
2875
|
|
@@ -2878,7 +2897,7 @@ duplicate dependency on c (>= 1.2.3, development), (~> 1.2) use:
|
|
2878
2897
|
@a1.validate
|
2879
2898
|
end
|
2880
2899
|
|
2881
|
-
assert_equal %
|
2900
|
+
assert_equal %("#{f}" or "#{t}" is not a description), e.message
|
2882
2901
|
|
2883
2902
|
@a1.description = "#{t} (describe your package)"
|
2884
2903
|
|
@@ -2886,7 +2905,7 @@ duplicate dependency on c (>= 1.2.3, development), (~> 1.2) use:
|
|
2886
2905
|
@a1.validate
|
2887
2906
|
end
|
2888
2907
|
|
2889
|
-
assert_equal %
|
2908
|
+
assert_equal %("#{f}" or "#{t}" is not a description), e.message
|
2890
2909
|
end
|
2891
2910
|
end
|
2892
2911
|
|
@@ -2900,7 +2919,7 @@ duplicate dependency on c (>= 1.2.3, development), (~> 1.2) use:
|
|
2900
2919
|
@a1.validate
|
2901
2920
|
end
|
2902
2921
|
|
2903
|
-
assert_equal %
|
2922
|
+
assert_equal %("#{f}" or "#{t}" is not an email), e.message
|
2904
2923
|
|
2905
2924
|
@a1.email = "#{t} (your e-mail)"
|
2906
2925
|
|
@@ -2908,7 +2927,7 @@ duplicate dependency on c (>= 1.2.3, development), (~> 1.2) use:
|
|
2908
2927
|
@a1.validate
|
2909
2928
|
end
|
2910
2929
|
|
2911
|
-
assert_equal %
|
2930
|
+
assert_equal %("#{f}" or "#{t}" is not an email), e.message
|
2912
2931
|
end
|
2913
2932
|
end
|
2914
2933
|
|
@@ -2927,7 +2946,7 @@ duplicate dependency on c (>= 1.2.3, development), (~> 1.2) use:
|
|
2927
2946
|
end
|
2928
2947
|
end
|
2929
2948
|
|
2930
|
-
assert_match 'See
|
2949
|
+
assert_match 'See https://guides.rubygems.org/specification-reference/ for help', @ui.error
|
2931
2950
|
end
|
2932
2951
|
|
2933
2952
|
def test_validate_executables
|
@@ -3022,8 +3041,8 @@ Please report a bug if this causes problems.
|
|
3022
3041
|
|
3023
3042
|
specification.define_singleton_method(:find_all_by_name) do |dep_name|
|
3024
3043
|
[
|
3025
|
-
specification.new {
|
3026
|
-
specification.new {
|
3044
|
+
specification.new {|s| s.name = "z", s.version = Gem::Version.new("1") },
|
3045
|
+
specification.new {|s| s.name = "z", s.version = Gem::Version.new("2") },
|
3027
3046
|
]
|
3028
3047
|
end
|
3029
3048
|
|
@@ -3042,6 +3061,13 @@ Please report a bug if this causes problems.
|
|
3042
3061
|
end
|
3043
3062
|
end
|
3044
3063
|
|
3064
|
+
def test_duplicate_runtime_dependency
|
3065
|
+
expected = "WARNING: duplicated b dependency [\"~> 3.0\", \"~> 3.0\"]\n"
|
3066
|
+
assert_output nil, expected do
|
3067
|
+
@a1.add_runtime_dependency "b", "~> 3.0", "~> 3.0"
|
3068
|
+
end
|
3069
|
+
end
|
3070
|
+
|
3045
3071
|
def set_orig(cls)
|
3046
3072
|
s_cls = cls.singleton_class
|
3047
3073
|
s_cls.send :alias_method, :orig_unresolved_deps , :unresolved_deps
|
@@ -3100,7 +3126,7 @@ Please report a bug if this causes problems.
|
|
3100
3126
|
|
3101
3127
|
assert_equal '"ftp://rubygems.org" is not a valid HTTP URI', e.message
|
3102
3128
|
|
3103
|
-
@a1.homepage = '
|
3129
|
+
@a1.homepage = 'https://rubygems.org/'
|
3104
3130
|
assert_equal true, @a1.validate
|
3105
3131
|
|
3106
3132
|
@a1.homepage = 'https://rubygems.org'
|
@@ -3117,10 +3143,36 @@ Please report a bug if this causes problems.
|
|
3117
3143
|
@a1.validate
|
3118
3144
|
end
|
3119
3145
|
|
3120
|
-
assert_match <<-
|
3146
|
+
assert_match <<-WARNING, @ui.error
|
3121
3147
|
WARNING: licenses is empty, but is recommended. Use a license identifier from
|
3122
3148
|
http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
|
3123
|
-
|
3149
|
+
WARNING
|
3150
|
+
end
|
3151
|
+
|
3152
|
+
def test_validate_license_in_a_non_packaging_context
|
3153
|
+
util_setup_validate
|
3154
|
+
|
3155
|
+
use_ui @ui do
|
3156
|
+
@a1.licenses.clear
|
3157
|
+
@a1.validate(false)
|
3158
|
+
end
|
3159
|
+
|
3160
|
+
assert_empty @ui.error
|
3161
|
+
end
|
3162
|
+
|
3163
|
+
def test_removed_methods
|
3164
|
+
assert_equal Gem::Specification::REMOVED_METHODS, [:rubyforge_project=]
|
3165
|
+
end
|
3166
|
+
|
3167
|
+
def test_validate_removed_rubyforge_project
|
3168
|
+
util_setup_validate
|
3169
|
+
|
3170
|
+
use_ui @ui do
|
3171
|
+
@a1.rubyforge_project = 'invalid-attribute'
|
3172
|
+
@a1.validate
|
3173
|
+
end
|
3174
|
+
|
3175
|
+
assert_match "rubyforge_project= is deprecated", @ui.error
|
3124
3176
|
end
|
3125
3177
|
|
3126
3178
|
def test_validate_license_values
|
@@ -3131,10 +3183,10 @@ http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
|
|
3131
3183
|
@a1.validate
|
3132
3184
|
end
|
3133
3185
|
|
3134
|
-
assert_match <<-
|
3186
|
+
assert_match <<-WARNING, @ui.error
|
3135
3187
|
WARNING: license value 'BSD' is invalid. Use a license identifier from
|
3136
3188
|
http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
|
3137
|
-
|
3189
|
+
WARNING
|
3138
3190
|
end
|
3139
3191
|
|
3140
3192
|
def test_validate_license_values_plus
|
@@ -3178,14 +3230,14 @@ http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
|
|
3178
3230
|
@a1.validate
|
3179
3231
|
end
|
3180
3232
|
|
3181
|
-
assert_match <<-
|
3233
|
+
assert_match <<-WARNING, @ui.error
|
3182
3234
|
WARNING: license value 'GPL-2.0+ FOO' is invalid. Use a license identifier from
|
3183
3235
|
http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
|
3184
|
-
|
3185
|
-
assert_match <<-
|
3236
|
+
WARNING
|
3237
|
+
assert_match <<-WARNING, @ui.error
|
3186
3238
|
WARNING: license value 'GPL-2.0 FOO' is invalid. Use a license identifier from
|
3187
3239
|
http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
|
3188
|
-
|
3240
|
+
WARNING
|
3189
3241
|
end
|
3190
3242
|
|
3191
3243
|
def test_validate_license_with_invalid_exception
|
@@ -3196,10 +3248,10 @@ http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
|
|
3196
3248
|
@a1.validate
|
3197
3249
|
end
|
3198
3250
|
|
3199
|
-
assert_match <<-
|
3251
|
+
assert_match <<-WARNING, @ui.error
|
3200
3252
|
WARNING: license value 'GPL-2.0+ WITH Autocofn-exception-2.0' is invalid. Use a license identifier from
|
3201
3253
|
http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
|
3202
|
-
|
3254
|
+
WARNING
|
3203
3255
|
end
|
3204
3256
|
|
3205
3257
|
def test_validate_license_gives_suggestions
|
@@ -3210,11 +3262,11 @@ http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
|
|
3210
3262
|
@a1.validate
|
3211
3263
|
end
|
3212
3264
|
|
3213
|
-
assert_match <<-
|
3265
|
+
assert_match <<-WARNING, @ui.error
|
3214
3266
|
WARNING: license value 'ruby' is invalid. Use a license identifier from
|
3215
3267
|
http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
|
3216
3268
|
Did you mean 'Ruby'?
|
3217
|
-
|
3269
|
+
WARNING
|
3218
3270
|
end
|
3219
3271
|
|
3220
3272
|
def test_validate_empty_files
|
@@ -3310,7 +3362,7 @@ Did you mean 'Ruby'?
|
|
3310
3362
|
spec.validate
|
3311
3363
|
end
|
3312
3364
|
|
3313
|
-
assert_match %r
|
3365
|
+
assert_match %r{^#{name}}, e.message
|
3314
3366
|
end
|
3315
3367
|
end
|
3316
3368
|
end
|
@@ -3410,7 +3462,7 @@ Did you mean 'Ruby'?
|
|
3410
3462
|
@a1.validate
|
3411
3463
|
end
|
3412
3464
|
|
3413
|
-
assert_equal %
|
3465
|
+
assert_equal %("#{f}" or "#{t}" is not a summary), e.message
|
3414
3466
|
|
3415
3467
|
@a1.summary = "#{t} (describe your package)"
|
3416
3468
|
|
@@ -3418,7 +3470,7 @@ Did you mean 'Ruby'?
|
|
3418
3470
|
@a1.validate
|
3419
3471
|
end
|
3420
3472
|
|
3421
|
-
assert_equal %
|
3473
|
+
assert_equal %("#{f}" or "#{t}" is not a summary), e.message
|
3422
3474
|
end
|
3423
3475
|
end
|
3424
3476
|
|
@@ -3430,7 +3482,7 @@ Did you mean 'Ruby'?
|
|
3430
3482
|
@a1.validate
|
3431
3483
|
end
|
3432
3484
|
|
3433
|
-
assert_match 'See
|
3485
|
+
assert_match 'See https://guides.rubygems.org/specification-reference/ for help', @ui.error
|
3434
3486
|
end
|
3435
3487
|
|
3436
3488
|
def test_version
|
@@ -3532,7 +3584,8 @@ Did you mean 'Ruby'?
|
|
3532
3584
|
s.metadata = {
|
3533
3585
|
"one" => "two",
|
3534
3586
|
"home" => "three",
|
3535
|
-
"homepage_uri" => "https://example.com/user/repo"
|
3587
|
+
"homepage_uri" => "https://example.com/user/repo",
|
3588
|
+
"funding_uri" => "https://example.com/donate",
|
3536
3589
|
}
|
3537
3590
|
end
|
3538
3591
|
|
@@ -3792,7 +3845,7 @@ end
|
|
3792
3845
|
|
3793
3846
|
default_gem_spec = new_default_spec("default", "2.0.0.0",
|
3794
3847
|
nil, "default/gem.rb")
|
3795
|
-
spec_path = File.join(@
|
3848
|
+
spec_path = File.join(@gemhome, "specifications", "default", default_gem_spec.spec_name)
|
3796
3849
|
write_file(spec_path) do |file|
|
3797
3850
|
file.print(default_gem_spec.to_ruby)
|
3798
3851
|
end
|
@@ -3817,12 +3870,17 @@ end
|
|
3817
3870
|
FileUtils.mkdir_p "test"
|
3818
3871
|
FileUtils.mkdir_p "bin"
|
3819
3872
|
|
3820
|
-
|
3821
|
-
|
3822
|
-
|
3873
|
+
begin
|
3874
|
+
umask_orig = File.umask(2)
|
3875
|
+
FileUtils.touch File.join("ext", "a", "extconf.rb")
|
3876
|
+
FileUtils.touch File.join("lib", "code.rb")
|
3877
|
+
FileUtils.touch File.join("test", "suite.rb")
|
3823
3878
|
|
3824
|
-
|
3825
|
-
|
3879
|
+
File.open "bin/exec", "w", 0755 do |fp|
|
3880
|
+
fp.puts "#!#{Gem.ruby}"
|
3881
|
+
end
|
3882
|
+
ensure
|
3883
|
+
File.umask(umask_orig)
|
3826
3884
|
end
|
3827
3885
|
end
|
3828
3886
|
end
|
@@ -3876,5 +3934,4 @@ end
|
|
3876
3934
|
ensure
|
3877
3935
|
$VERBOSE = old_verbose
|
3878
3936
|
end
|
3879
|
-
|
3880
3937
|
end
|