rubygems-update 3.3.18 → 3.4.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +1429 -1064
- data/CONTRIBUTING.md +31 -8
- data/Manifest.txt +61 -36
- data/POLICIES.md +55 -20
- data/README.md +19 -6
- data/bundler/CHANGELOG.md +457 -1
- data/bundler/README.md +3 -6
- data/bundler/UPGRADING.md +11 -4
- data/bundler/bundler.gemspec +8 -10
- data/bundler/exe/bundle +5 -16
- data/bundler/lib/bundler/build_metadata.rb +2 -2
- data/bundler/lib/bundler/cli/add.rb +1 -1
- data/bundler/lib/bundler/cli/binstubs.rb +6 -2
- data/bundler/lib/bundler/cli/check.rb +1 -1
- data/bundler/lib/bundler/cli/common.rb +2 -0
- data/bundler/lib/bundler/cli/console.rb +2 -2
- data/bundler/lib/bundler/cli/doctor.rb +4 -6
- data/bundler/lib/bundler/cli/gem.rb +62 -40
- data/bundler/lib/bundler/cli/info.rb +1 -1
- data/bundler/lib/bundler/cli/init.rb +6 -2
- data/bundler/lib/bundler/cli/install.rb +8 -6
- data/bundler/lib/bundler/cli/lock.rb +8 -5
- data/bundler/lib/bundler/cli/open.rb +6 -4
- data/bundler/lib/bundler/cli/outdated.rb +14 -7
- data/bundler/lib/bundler/cli/platform.rb +7 -5
- data/bundler/lib/bundler/cli/viz.rb +1 -1
- data/bundler/lib/bundler/cli.rb +53 -7
- data/bundler/lib/bundler/compact_index_client/cache.rb +1 -1
- data/bundler/lib/bundler/compact_index_client/updater.rb +40 -39
- data/bundler/lib/bundler/constants.rb +1 -1
- data/bundler/lib/bundler/current_ruby.rb +16 -5
- data/bundler/lib/bundler/definition.rb +262 -133
- data/bundler/lib/bundler/dependency.rb +20 -86
- data/bundler/lib/bundler/digest.rb +1 -1
- data/bundler/lib/bundler/dsl.rb +6 -7
- data/bundler/lib/bundler/endpoint_specification.rb +2 -13
- data/bundler/lib/bundler/env.rb +2 -2
- data/bundler/lib/bundler/environment_preserver.rb +3 -2
- data/bundler/lib/bundler/errors.rb +1 -11
- data/bundler/lib/bundler/feature_flag.rb +0 -2
- data/bundler/lib/bundler/fetcher/compact_index.rb +11 -13
- data/bundler/lib/bundler/fetcher/dependency.rb +2 -6
- data/bundler/lib/bundler/fetcher/downloader.rb +4 -5
- data/bundler/lib/bundler/fetcher/index.rb +1 -2
- data/bundler/lib/bundler/fetcher.rb +21 -15
- data/bundler/lib/bundler/force_platform.rb +18 -0
- data/bundler/lib/bundler/friendly_errors.rb +1 -4
- data/bundler/lib/bundler/gem_helper.rb +3 -4
- data/bundler/lib/bundler/gem_helpers.rb +7 -2
- data/bundler/lib/bundler/gem_version_promoter.rb +53 -98
- data/bundler/lib/bundler/graph.rb +3 -3
- data/bundler/lib/bundler/index.rb +13 -47
- data/bundler/lib/bundler/injector.rb +5 -4
- data/bundler/lib/bundler/inline.rb +9 -11
- data/bundler/lib/bundler/installer/parallel_installer.rb +4 -34
- data/bundler/lib/bundler/installer/standalone.rb +13 -9
- data/bundler/lib/bundler/installer.rb +17 -29
- data/bundler/lib/bundler/lazy_specification.rb +54 -53
- data/bundler/lib/bundler/lockfile_generator.rb +3 -3
- data/bundler/lib/bundler/lockfile_parser.rb +17 -16
- data/bundler/lib/bundler/man/bundle-add.1 +6 -2
- data/bundler/lib/bundler/man/bundle-add.1.ronn +4 -1
- data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
- data/bundler/lib/bundler/man/bundle-cache.1 +9 -3
- data/bundler/lib/bundler/man/bundle-cache.1.ronn +9 -2
- data/bundler/lib/bundler/man/bundle-check.1 +1 -1
- data/bundler/lib/bundler/man/bundle-clean.1 +2 -2
- data/bundler/lib/bundler/man/bundle-clean.1.ronn +1 -1
- data/bundler/lib/bundler/man/bundle-config.1 +26 -10
- data/bundler/lib/bundler/man/bundle-config.1.ronn +17 -10
- data/bundler/lib/bundler/man/bundle-console.1 +53 -0
- data/bundler/lib/bundler/man/bundle-console.1.ronn +44 -0
- data/bundler/lib/bundler/man/bundle-doctor.1 +1 -1
- data/bundler/lib/bundler/man/bundle-exec.1 +6 -6
- data/bundler/lib/bundler/man/bundle-exec.1.ronn +6 -6
- data/bundler/lib/bundler/man/bundle-gem.1 +27 -37
- data/bundler/lib/bundler/man/bundle-gem.1.ronn +5 -5
- data/bundler/lib/bundler/man/bundle-help.1 +13 -0
- data/bundler/lib/bundler/man/bundle-help.1.ronn +12 -0
- data/bundler/lib/bundler/man/bundle-info.1 +3 -3
- data/bundler/lib/bundler/man/bundle-info.1.ronn +3 -3
- data/bundler/lib/bundler/man/bundle-init.1 +5 -1
- data/bundler/lib/bundler/man/bundle-init.1.ronn +2 -0
- data/bundler/lib/bundler/man/bundle-inject.1 +5 -2
- data/bundler/lib/bundler/man/bundle-inject.1.ronn +3 -1
- data/bundler/lib/bundler/man/bundle-install.1 +5 -30
- data/bundler/lib/bundler/man/bundle-install.1.ronn +6 -29
- data/bundler/lib/bundler/man/bundle-list.1 +1 -1
- data/bundler/lib/bundler/man/bundle-lock.1 +1 -1
- data/bundler/lib/bundler/man/bundle-open.1 +22 -2
- data/bundler/lib/bundler/man/bundle-open.1.ronn +9 -1
- data/bundler/lib/bundler/man/bundle-outdated.1 +13 -9
- data/bundler/lib/bundler/man/bundle-outdated.1.ronn +12 -9
- data/bundler/lib/bundler/man/bundle-platform.1 +16 -6
- data/bundler/lib/bundler/man/bundle-platform.1.ronn +14 -7
- data/bundler/lib/bundler/man/bundle-plugin.1 +81 -0
- data/bundler/lib/bundler/man/bundle-plugin.1.ronn +59 -0
- data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
- data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
- data/bundler/lib/bundler/man/bundle-show.1 +1 -1
- data/bundler/lib/bundler/man/bundle-update.1 +1 -1
- data/bundler/lib/bundler/man/bundle-version.1 +35 -0
- data/bundler/lib/bundler/man/bundle-version.1.ronn +24 -0
- data/bundler/lib/bundler/man/bundle-viz.1 +4 -1
- data/bundler/lib/bundler/man/bundle-viz.1.ronn +2 -0
- data/bundler/lib/bundler/man/bundle.1 +15 -10
- data/bundler/lib/bundler/man/bundle.1.ronn +12 -7
- data/bundler/lib/bundler/man/gemfile.5 +55 -55
- data/bundler/lib/bundler/man/gemfile.5.ronn +57 -53
- data/bundler/lib/bundler/man/index.txt +4 -0
- data/bundler/lib/bundler/match_metadata.rb +13 -0
- data/bundler/lib/bundler/match_remote_metadata.rb +29 -0
- data/bundler/lib/bundler/mirror.rb +5 -7
- data/bundler/lib/bundler/plugin/index.rb +5 -5
- data/bundler/lib/bundler/plugin/installer/rubygems.rb +0 -4
- data/bundler/lib/bundler/plugin/installer.rb +5 -2
- data/bundler/lib/bundler/plugin.rb +3 -1
- data/bundler/lib/bundler/remote_specification.rb +7 -12
- data/bundler/lib/bundler/resolver/base.rb +107 -0
- data/bundler/lib/bundler/resolver/candidate.rb +94 -0
- data/bundler/lib/bundler/resolver/incompatibility.rb +15 -0
- data/bundler/lib/bundler/resolver/package.rb +72 -0
- data/bundler/lib/bundler/resolver/root.rb +25 -0
- data/bundler/lib/bundler/resolver/spec_group.rb +42 -71
- data/bundler/lib/bundler/resolver.rb +335 -328
- data/bundler/lib/bundler/ruby_dsl.rb +7 -1
- data/bundler/lib/bundler/ruby_version.rb +8 -8
- data/bundler/lib/bundler/rubygems_ext.rb +100 -9
- data/bundler/lib/bundler/rubygems_gem_installer.rb +23 -14
- data/bundler/lib/bundler/rubygems_integration.rb +11 -15
- data/bundler/lib/bundler/runtime.rb +2 -6
- data/bundler/lib/bundler/safe_marshal.rb +31 -0
- data/bundler/lib/bundler/settings.rb +5 -11
- data/bundler/lib/bundler/setup.rb +4 -1
- data/bundler/lib/bundler/shared_helpers.rb +3 -3
- data/bundler/lib/bundler/source/git/git_proxy.rb +237 -74
- data/bundler/lib/bundler/source/git.rb +55 -30
- data/bundler/lib/bundler/source/metadata.rb +1 -2
- data/bundler/lib/bundler/source/path/installer.rb +1 -22
- data/bundler/lib/bundler/source/path.rb +6 -6
- data/bundler/lib/bundler/source/rubygems.rb +26 -81
- data/bundler/lib/bundler/source.rb +1 -1
- data/bundler/lib/bundler/source_list.rb +8 -2
- data/bundler/lib/bundler/spec_set.rb +60 -37
- data/bundler/lib/bundler/templates/Executable +1 -1
- data/bundler/lib/bundler/templates/Executable.bundler +5 -10
- data/bundler/lib/bundler/templates/Executable.standalone +2 -0
- data/bundler/lib/bundler/templates/newgem/Cargo.toml.tt +7 -0
- data/bundler/lib/bundler/templates/newgem/Gemfile.tt +3 -0
- data/bundler/lib/bundler/templates/newgem/README.md.tt +6 -4
- data/bundler/lib/bundler/templates/newgem/Rakefile.tt +12 -1
- data/bundler/lib/bundler/templates/newgem/bin/console.tt +0 -4
- data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +12 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +15 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt +10 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +6 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt +1 -1
- data/bundler/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +12 -0
- data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +10 -0
- data/bundler/lib/bundler/templates/newgem/gitignore.tt +3 -0
- data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +13 -4
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +9 -2
- data/bundler/lib/bundler/ui/rg_proxy.rb +1 -1
- data/bundler/lib/bundler/ui/shell.rb +35 -12
- data/bundler/lib/bundler/ui/silent.rb +21 -5
- data/bundler/lib/bundler/uri_normalizer.rb +23 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +3 -3
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +0 -1
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +3 -1
- data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +1351 -409
- data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +1 -1
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +1 -1
- data/bundler/lib/bundler/vendor/pub_grub/LICENSE.txt +21 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb +20 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +189 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb +182 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb +150 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb +43 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb +121 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb +45 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb +19 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +60 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb +105 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb +3 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb +129 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +411 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +248 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb +178 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +31 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +1 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +64 -16
- data/bundler/lib/bundler/vendor/uri/lib/uri/file.rb +7 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +2 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +27 -7
- data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +40 -2
- data/bundler/lib/bundler/vendor/uri/lib/uri/https.rb +2 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb +1 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/ldaps.rb +2 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb +2 -2
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +15 -9
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +11 -6
- data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/ws.rb +1 -2
- data/bundler/lib/bundler/vendor/uri/lib/uri/wss.rb +2 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri.rb +3 -2
- data/bundler/lib/bundler/vendored_persistent.rb +1 -33
- data/bundler/lib/bundler/{vendored_tmpdir.rb → vendored_pub_grub.rb} +1 -1
- data/bundler/lib/bundler/version.rb +5 -1
- data/bundler/lib/bundler/worker.rb +5 -7
- data/bundler/lib/bundler.rb +25 -77
- data/{bin → exe}/gem +4 -5
- data/{bin → exe}/update_rubygems +12 -10
- data/lib/rubygems/available_set.rb +4 -3
- data/lib/rubygems/basic_specification.rb +5 -4
- data/lib/rubygems/bundler_version_finder.rb +2 -2
- data/lib/rubygems/command.rb +41 -32
- data/lib/rubygems/command_manager.rb +30 -15
- data/lib/rubygems/commands/build_command.rb +12 -8
- data/lib/rubygems/commands/cert_command.rb +34 -33
- data/lib/rubygems/commands/check_command.rb +21 -20
- data/lib/rubygems/commands/cleanup_command.rb +18 -17
- data/lib/rubygems/commands/contents_command.rb +14 -13
- data/lib/rubygems/commands/dependency_command.rb +17 -16
- data/lib/rubygems/commands/environment_command.rb +6 -5
- data/lib/rubygems/commands/exec_command.rb +249 -0
- data/lib/rubygems/commands/fetch_command.rb +10 -9
- data/lib/rubygems/commands/generate_index_command.rb +18 -17
- data/lib/rubygems/commands/help_command.rb +7 -6
- data/lib/rubygems/commands/info_command.rb +3 -3
- data/lib/rubygems/commands/install_command.rb +28 -23
- data/lib/rubygems/commands/list_command.rb +4 -3
- data/lib/rubygems/commands/lock_command.rb +5 -4
- data/lib/rubygems/commands/mirror_command.rb +4 -3
- data/lib/rubygems/commands/open_command.rb +10 -9
- data/lib/rubygems/commands/outdated_command.rb +6 -5
- data/lib/rubygems/commands/owner_command.rb +17 -14
- data/lib/rubygems/commands/pristine_command.rb +46 -36
- data/lib/rubygems/commands/push_command.rb +9 -8
- data/lib/rubygems/commands/query_command.rb +9 -8
- data/lib/rubygems/commands/rdoc_command.rb +21 -19
- data/lib/rubygems/commands/search_command.rb +4 -3
- data/lib/rubygems/commands/server_command.rb +4 -3
- data/lib/rubygems/commands/setup_command.rb +97 -106
- data/lib/rubygems/commands/signin_command.rb +10 -9
- data/lib/rubygems/commands/signout_command.rb +8 -7
- data/lib/rubygems/commands/sources_command.rb +22 -21
- data/lib/rubygems/commands/specification_command.rb +14 -13
- data/lib/rubygems/commands/stale_command.rb +3 -2
- data/lib/rubygems/commands/uninstall_command.rb +44 -40
- data/lib/rubygems/commands/unpack_command.rb +14 -13
- data/lib/rubygems/commands/update_command.rb +42 -63
- data/lib/rubygems/commands/which_command.rb +8 -7
- data/lib/rubygems/commands/yank_command.rb +12 -11
- data/lib/rubygems/config_file.rb +55 -21
- data/lib/rubygems/core_ext/kernel_gem.rb +1 -6
- data/lib/rubygems/core_ext/kernel_require.rb +109 -115
- data/lib/rubygems/core_ext/kernel_warn.rb +33 -37
- data/lib/rubygems/core_ext/tcpsocket_init.rb +3 -1
- data/lib/rubygems/defaults.rb +33 -18
- data/lib/rubygems/dependency.rb +15 -11
- data/lib/rubygems/dependency_installer.rb +38 -37
- data/lib/rubygems/dependency_list.rb +7 -6
- data/lib/rubygems/deprecate.rb +3 -2
- data/lib/rubygems/doctor.rb +19 -18
- data/lib/rubygems/errors.rb +3 -2
- data/lib/rubygems/exceptions.rb +16 -8
- data/lib/rubygems/ext/build_error.rb +2 -1
- data/lib/rubygems/ext/builder.rb +37 -21
- data/lib/rubygems/ext/cargo_builder/link_flag_converter.rb +9 -5
- data/lib/rubygems/ext/cargo_builder.rb +150 -111
- data/lib/rubygems/ext/cmake_builder.rb +2 -2
- data/lib/rubygems/ext/configure_builder.rb +2 -1
- data/lib/rubygems/ext/ext_conf_builder.rb +11 -9
- data/lib/rubygems/ext/rake_builder.rb +7 -5
- data/lib/rubygems/ext.rb +8 -7
- data/lib/rubygems/gem_runner.rb +6 -5
- data/lib/rubygems/gemcutter_utilities/webauthn_listener/response.rb +163 -0
- data/lib/rubygems/gemcutter_utilities/webauthn_listener.rb +105 -0
- data/lib/rubygems/gemcutter_utilities/webauthn_poller.rb +78 -0
- data/lib/rubygems/gemcutter_utilities.rb +90 -34
- data/lib/rubygems/indexer.rb +29 -28
- data/lib/rubygems/install_default_message.rb +3 -2
- data/lib/rubygems/install_message.rb +3 -2
- data/lib/rubygems/install_update_options.rb +56 -55
- data/lib/rubygems/installer.rb +54 -46
- data/lib/rubygems/installer_uninstaller_utils.rb +2 -2
- data/lib/rubygems/local_remote_options.rb +19 -20
- data/lib/rubygems/mock_gem_ui.rb +3 -2
- data/lib/rubygems/name_tuple.rb +5 -4
- data/lib/rubygems/optparse/lib/optparse.rb +20 -15
- data/lib/rubygems/optparse.rb +1 -1
- data/lib/rubygems/package/digest_io.rb +1 -0
- data/lib/rubygems/package/file_source.rb +3 -2
- data/lib/rubygems/package/io_source.rb +1 -0
- data/lib/rubygems/package/old.rb +9 -8
- data/lib/rubygems/package/source.rb +1 -0
- data/lib/rubygems/package/tar_header.rb +63 -62
- data/lib/rubygems/package/tar_reader/entry.rb +91 -9
- data/lib/rubygems/package/tar_reader.rb +2 -29
- data/lib/rubygems/package/tar_writer.rb +8 -7
- data/lib/rubygems/package.rb +64 -48
- data/lib/rubygems/package_task.rb +5 -4
- data/lib/rubygems/path_support.rb +1 -0
- data/lib/rubygems/platform.rb +79 -53
- data/lib/rubygems/psych_tree.rb +2 -1
- data/lib/rubygems/query_utils.rb +35 -35
- data/lib/rubygems/rdoc.rb +3 -2
- data/lib/rubygems/remote_fetcher.rb +23 -22
- data/lib/rubygems/request/connection_pools.rb +4 -4
- data/lib/rubygems/request/http_pool.rb +2 -1
- data/lib/rubygems/request/https_pool.rb +1 -0
- data/lib/rubygems/request.rb +23 -22
- data/lib/rubygems/request_set/gem_dependency_api.rb +123 -123
- data/lib/rubygems/request_set/lockfile/parser.rb +28 -27
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +5 -3
- data/lib/rubygems/request_set/lockfile.rb +6 -5
- data/lib/rubygems/request_set.rb +20 -19
- data/lib/rubygems/requirement.rb +15 -14
- data/lib/rubygems/resolver/activation_request.rb +4 -3
- data/lib/rubygems/resolver/api_set.rb +5 -4
- data/lib/rubygems/resolver/api_specification.rb +7 -6
- data/lib/rubygems/resolver/best_set.rb +6 -5
- data/lib/rubygems/resolver/composed_set.rb +1 -0
- data/lib/rubygems/resolver/conflict.rb +11 -10
- data/lib/rubygems/resolver/current_set.rb +1 -0
- data/lib/rubygems/resolver/dependency_request.rb +3 -2
- data/lib/rubygems/resolver/git_set.rb +3 -2
- data/lib/rubygems/resolver/git_specification.rb +7 -6
- data/lib/rubygems/resolver/index_set.rb +4 -3
- data/lib/rubygems/resolver/index_specification.rb +7 -5
- data/lib/rubygems/resolver/installed_specification.rb +5 -4
- data/lib/rubygems/resolver/installer_set.rb +15 -17
- data/lib/rubygems/resolver/local_specification.rb +3 -2
- data/lib/rubygems/resolver/lock_set.rb +5 -4
- data/lib/rubygems/resolver/lock_specification.rb +5 -4
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +1 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +32 -26
- data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +1 -1
- data/lib/rubygems/resolver/molinillo.rb +2 -1
- data/lib/rubygems/resolver/requirement_list.rb +1 -0
- data/lib/rubygems/resolver/set.rb +1 -0
- data/lib/rubygems/resolver/source_set.rb +2 -0
- data/lib/rubygems/resolver/spec_specification.rb +1 -0
- data/lib/rubygems/resolver/specification.rb +2 -1
- data/lib/rubygems/resolver/stats.rb +2 -1
- data/lib/rubygems/resolver/vendor_set.rb +2 -1
- data/lib/rubygems/resolver/vendor_specification.rb +4 -3
- data/lib/rubygems/resolver.rb +41 -40
- data/lib/rubygems/s3_uri_signer.rb +10 -8
- data/lib/rubygems/safe_yaml.rb +4 -2
- data/lib/rubygems/security/policies.rb +48 -47
- data/lib/rubygems/security/policy.rb +19 -18
- data/lib/rubygems/security/signer.rb +6 -5
- data/lib/rubygems/security/trust_dir.rb +5 -4
- data/lib/rubygems/security.rb +30 -42
- data/lib/rubygems/security_option.rb +6 -5
- data/lib/rubygems/shellwords.rb +3 -0
- data/lib/rubygems/source/git.rb +22 -22
- data/lib/rubygems/source/installed.rb +2 -1
- data/lib/rubygems/source/local.rb +3 -2
- data/lib/rubygems/source/lock.rb +1 -0
- data/lib/rubygems/source/specific_file.rb +2 -1
- data/lib/rubygems/source/vendor.rb +1 -0
- data/lib/rubygems/source.rb +16 -16
- data/lib/rubygems/spec_fetcher.rb +10 -9
- data/lib/rubygems/specification.rb +121 -114
- data/lib/rubygems/specification_policy.rb +36 -15
- data/lib/rubygems/stub_specification.rb +11 -9
- data/lib/rubygems/text.rb +2 -2
- data/lib/rubygems/tsort/lib/tsort.rb +308 -310
- data/lib/rubygems/tsort.rb +1 -1
- data/lib/rubygems/uninstaller.rb +19 -18
- data/lib/rubygems/update_suggestion.rb +69 -0
- data/lib/rubygems/uri.rb +4 -4
- data/lib/rubygems/uri_formatter.rb +1 -1
- data/lib/rubygems/user_interaction.rb +37 -21
- data/lib/rubygems/util/licenses.rb +4 -3
- data/lib/rubygems/util/list.rb +1 -0
- data/lib/rubygems/util.rb +12 -15
- data/lib/rubygems/validator.rb +7 -6
- data/lib/rubygems/version.rb +17 -11
- data/lib/rubygems/version_option.rb +4 -3
- data/lib/rubygems.rb +89 -68
- data/rubygems-update.gemspec +10 -8
- data/setup.rb +10 -9
- data/test/rubygems/alternate_cert.pem +14 -14
- data/test/rubygems/alternate_cert_32.pem +15 -15
- data/test/rubygems/alternate_key.pem +25 -25
- data/test/rubygems/bad_rake.rb +1 -0
- data/test/rubygems/bundler_test_gem.rb +421 -0
- data/test/rubygems/child_cert.pem +15 -16
- data/test/rubygems/child_cert_32.pem +15 -16
- data/test/rubygems/child_key.pem +25 -25
- data/test/rubygems/encrypted_private_key.pem +26 -26
- data/test/rubygems/expired_cert.pem +15 -15
- data/test/rubygems/fake_certlib/openssl.rb +1 -0
- data/test/rubygems/future_cert.pem +15 -15
- data/test/rubygems/future_cert_32.pem +15 -15
- data/test/rubygems/good_rake.rb +1 -0
- data/test/rubygems/grandchild_cert.pem +15 -16
- data/test/rubygems/grandchild_cert_32.pem +15 -16
- data/test/rubygems/grandchild_key.pem +25 -25
- data/test/rubygems/helper.rb +172 -151
- data/test/rubygems/installer_test_case.rb +14 -13
- data/test/rubygems/invalid_issuer_cert.pem +16 -16
- data/test/rubygems/invalid_issuer_cert_32.pem +16 -16
- data/test/rubygems/invalid_key.pem +25 -25
- data/test/rubygems/invalid_signer_cert.pem +15 -15
- data/test/rubygems/invalid_signer_cert_32.pem +15 -15
- data/test/rubygems/invalidchild_cert.pem +15 -16
- data/test/rubygems/invalidchild_cert_32.pem +15 -16
- data/test/rubygems/invalidchild_key.pem +25 -25
- data/test/rubygems/multifactor_auth_utilities.rb +111 -0
- data/test/rubygems/package/tar_test_case.rb +53 -17
- data/test/rubygems/packages/Bluebie-legs-0.6.2.gem +0 -0
- data/test/rubygems/plugin/exception/rubygems_plugin.rb +2 -1
- data/test/rubygems/plugin/load/rubygems_plugin.rb +1 -0
- data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +2 -1
- data/test/rubygems/private_key.pem +25 -25
- data/test/rubygems/public_cert.pem +16 -16
- data/test/rubygems/public_cert_32.pem +15 -15
- data/test/rubygems/public_key.pem +7 -7
- data/test/rubygems/rubygems/commands/crash_command.rb +1 -0
- data/test/rubygems/rubygems_plugin.rb +3 -2
- data/test/rubygems/simple_gem.rb +2 -1
- data/test/rubygems/specifications/bar-0.0.2.gemspec +2 -0
- data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +6 -4
- data/test/rubygems/test_bundled_ca.rb +13 -12
- data/test/rubygems/test_config.rb +5 -4
- data/test/rubygems/test_deprecate.rb +5 -4
- data/test/rubygems/test_exit.rb +9 -3
- data/test/rubygems/test_gem.rb +339 -677
- data/test/rubygems/test_gem_available_set.rb +22 -21
- data/test/rubygems/test_gem_bundler_version_finder.rb +6 -4
- data/test/rubygems/test_gem_command.rb +45 -44
- data/test/rubygems/test_gem_command_manager.rb +96 -30
- data/test/rubygems/test_gem_commands_build_command.rb +74 -63
- data/test/rubygems/test_gem_commands_cert_command.rb +98 -99
- data/test/rubygems/test_gem_commands_check_command.rb +5 -4
- data/test/rubygems/test_gem_commands_cleanup_command.rb +41 -40
- data/test/rubygems/test_gem_commands_contents_command.rb +28 -27
- data/test/rubygems/test_gem_commands_dependency_command.rb +37 -36
- data/test/rubygems/test_gem_commands_environment_command.rb +17 -16
- data/test/rubygems/test_gem_commands_exec_command.rb +853 -0
- data/test/rubygems/test_gem_commands_fetch_command.rb +38 -37
- data/test/rubygems/test_gem_commands_generate_index_command.rb +8 -7
- data/test/rubygems/test_gem_commands_help_command.rb +14 -13
- data/test/rubygems/test_gem_commands_info_command.rb +29 -2
- data/test/rubygems/test_gem_commands_install_command.rb +152 -132
- data/test/rubygems/test_gem_commands_list_command.rb +5 -4
- data/test/rubygems/test_gem_commands_lock_command.rb +11 -10
- data/test/rubygems/test_gem_commands_mirror.rb +3 -2
- data/test/rubygems/test_gem_commands_open_command.rb +5 -4
- data/test/rubygems/test_gem_commands_outdated_command.rb +10 -9
- data/test/rubygems/test_gem_commands_owner_command.rb +227 -50
- data/test/rubygems/test_gem_commands_pristine_command.rb +142 -93
- data/test/rubygems/test_gem_commands_push_command.rb +189 -64
- data/test/rubygems/test_gem_commands_query_command.rb +74 -73
- data/test/rubygems/test_gem_commands_search_command.rb +3 -2
- data/test/rubygems/test_gem_commands_server_command.rb +3 -2
- data/test/rubygems/test_gem_commands_setup_command.rb +123 -96
- data/test/rubygems/test_gem_commands_signin_command.rb +71 -31
- data/test/rubygems/test_gem_commands_signout_command.rb +3 -3
- data/test/rubygems/test_gem_commands_sources_command.rb +29 -29
- data/test/rubygems/test_gem_commands_specification_command.rb +33 -32
- data/test/rubygems/test_gem_commands_stale_command.rb +5 -4
- data/test/rubygems/test_gem_commands_uninstall_command.rb +99 -81
- data/test/rubygems/test_gem_commands_unpack_command.rb +32 -31
- data/test/rubygems/test_gem_commands_update_command.rb +96 -95
- data/test/rubygems/test_gem_commands_which_command.rb +7 -6
- data/test/rubygems/test_gem_commands_yank_command.rb +162 -43
- data/test/rubygems/test_gem_config_file.rb +94 -81
- data/test/rubygems/test_gem_dependency.rb +76 -73
- data/test/rubygems/test_gem_dependency_installer.rb +200 -165
- data/test/rubygems/test_gem_dependency_list.rb +48 -47
- data/test/rubygems/test_gem_dependency_resolution_error.rb +5 -4
- data/test/rubygems/test_gem_doctor.rb +27 -26
- data/test/rubygems/test_gem_ext_builder.rb +60 -61
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +4 -4
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/{Cargo.lock → ext/custom_name_lib/Cargo.lock} +23 -33
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/{Cargo.toml → ext/custom_name_lib/Cargo.toml} +1 -1
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/{src → ext/custom_name_lib/src}/lib.rs +1 -1
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb +3 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +37 -33
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +1 -1
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +2 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +12 -0
- data/test/rubygems/test_gem_ext_cargo_builder.rb +48 -59
- data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +20 -19
- data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +21 -36
- data/test/rubygems/test_gem_ext_cmake_builder.rb +16 -15
- data/test/rubygems/test_gem_ext_configure_builder.rb +14 -13
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +51 -52
- data/test/rubygems/test_gem_ext_rake_builder.rb +16 -15
- data/test/rubygems/test_gem_gem_runner.rb +15 -9
- data/test/rubygems/test_gem_gemcutter_utilities.rb +170 -84
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +5 -4
- data/test/rubygems/test_gem_indexer.rb +87 -67
- data/test/rubygems/test_gem_install_update_options.rb +17 -16
- data/test/rubygems/test_gem_installer.rb +422 -304
- data/test/rubygems/test_gem_local_remote_options.rb +11 -10
- data/test/rubygems/test_gem_name_tuple.rb +5 -4
- data/test/rubygems/test_gem_package.rb +243 -231
- data/test/rubygems/test_gem_package_old.rb +14 -13
- data/test/rubygems/test_gem_package_tar_header.rb +48 -47
- data/test/rubygems/test_gem_package_tar_reader.rb +56 -8
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +162 -16
- data/test/rubygems/test_gem_package_tar_writer.rb +77 -76
- data/test/rubygems/test_gem_package_task.rb +19 -18
- data/test/rubygems/test_gem_path_support.rb +15 -14
- data/test/rubygems/test_gem_platform.rb +333 -227
- data/test/rubygems/test_gem_rdoc.rb +15 -14
- data/test/rubygems/test_gem_remote_fetcher.rb +155 -154
- data/test/rubygems/test_gem_request.rb +64 -58
- data/test/rubygems/test_gem_request_connection_pools.rb +30 -29
- data/test/rubygems/test_gem_request_set.rb +101 -100
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +210 -211
- data/test/rubygems/test_gem_request_set_lockfile.rb +87 -86
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +58 -57
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +63 -62
- data/test/rubygems/test_gem_requirement.rb +48 -41
- data/test/rubygems/test_gem_resolver.rb +167 -99
- data/test/rubygems/test_gem_resolver_activation_request.rb +7 -6
- data/test/rubygems/test_gem_resolver_api_set.rb +34 -33
- data/test/rubygems/test_gem_resolver_api_specification.rb +48 -47
- data/test/rubygems/test_gem_resolver_best_set.rb +23 -22
- data/test/rubygems/test_gem_resolver_composed_set.rb +2 -1
- data/test/rubygems/test_gem_resolver_conflict.rb +13 -12
- data/test/rubygems/test_gem_resolver_dependency_request.rb +16 -15
- data/test/rubygems/test_gem_resolver_git_set.rb +22 -21
- data/test/rubygems/test_gem_resolver_git_specification.rb +22 -21
- data/test/rubygems/test_gem_resolver_index_set.rb +13 -12
- data/test/rubygems/test_gem_resolver_index_specification.rb +17 -16
- data/test/rubygems/test_gem_resolver_installed_specification.rb +6 -5
- data/test/rubygems/test_gem_resolver_installer_set.rb +79 -34
- data/test/rubygems/test_gem_resolver_local_specification.rb +8 -7
- data/test/rubygems/test_gem_resolver_lock_set.rb +13 -12
- data/test/rubygems/test_gem_resolver_lock_specification.rb +18 -17
- data/test/rubygems/test_gem_resolver_requirement_list.rb +2 -1
- data/test/rubygems/test_gem_resolver_specification.rb +9 -8
- data/test/rubygems/test_gem_resolver_vendor_set.rb +7 -6
- data/test/rubygems/test_gem_resolver_vendor_specification.rb +11 -10
- data/test/rubygems/test_gem_security.rb +69 -68
- data/test/rubygems/test_gem_security_policy.rb +72 -72
- data/test/rubygems/test_gem_security_signer.rb +35 -34
- data/test/rubygems/test_gem_security_trust_dir.rb +7 -6
- data/test/rubygems/test_gem_silent_ui.rb +39 -32
- data/test/rubygems/test_gem_source.rb +45 -44
- data/test/rubygems/test_gem_source_fetch_problem.rb +10 -9
- data/test/rubygems/test_gem_source_git.rb +69 -62
- data/test/rubygems/test_gem_source_installed.rb +17 -16
- data/test/rubygems/test_gem_source_list.rb +6 -5
- data/test/rubygems/test_gem_source_local.rb +15 -14
- data/test/rubygems/test_gem_source_lock.rb +32 -31
- data/test/rubygems/test_gem_source_specific_file.rb +18 -17
- data/test/rubygems/test_gem_source_subpath_problem.rb +8 -7
- data/test/rubygems/test_gem_source_vendor.rb +14 -13
- data/test/rubygems/test_gem_spec_fetcher.rb +73 -72
- data/test/rubygems/test_gem_specification.rb +533 -469
- data/test/rubygems/test_gem_stream_ui.rb +53 -22
- data/test/rubygems/test_gem_stub_specification.rb +33 -32
- data/test/rubygems/test_gem_text.rb +2 -1
- data/test/rubygems/test_gem_uninstaller.rb +118 -117
- data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +4 -3
- data/test/rubygems/test_gem_update_suggestion.rb +209 -0
- data/test/rubygems/test_gem_uri.rb +6 -4
- data/test/rubygems/test_gem_uri_formatter.rb +15 -14
- data/test/rubygems/test_gem_util.rb +24 -23
- data/test/rubygems/test_gem_validator.rb +8 -8
- data/test/rubygems/test_gem_version.rb +24 -16
- data/test/rubygems/test_gem_version_option.rb +16 -15
- data/test/rubygems/test_kernel.rb +43 -48
- data/test/rubygems/test_project_sanity.rb +32 -3
- data/test/rubygems/test_remote_fetch_error.rb +8 -7
- data/test/rubygems/test_require.rb +118 -103
- data/test/rubygems/test_rubygems.rb +10 -8
- data/test/rubygems/test_webauthn_listener.rb +143 -0
- data/test/rubygems/test_webauthn_listener_response.rb +93 -0
- data/test/rubygems/test_webauthn_poller.rb +124 -0
- data/test/rubygems/utilities.rb +98 -34
- data/test/rubygems/wrong_key_cert.pem +15 -15
- data/test/rubygems/wrong_key_cert_32.pem +15 -15
- data/test/test_changelog_generator.rb +1 -1
- metadata +99 -46
- data/bundler/lib/bundler/dep_proxy.rb +0 -55
- data/bundler/lib/bundler/templates/gems.rb +0 -5
- data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +0 -5
- data/bundler/lib/bundler/templates/newgem/travis.yml.tt +0 -6
- data/bundler/lib/bundler/vendor/molinillo/LICENSE +0 -9
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +0 -88
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +0 -36
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +0 -66
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +0 -62
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +0 -63
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +0 -61
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +0 -126
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +0 -46
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +0 -36
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +0 -164
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +0 -255
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +0 -149
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +0 -6
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +0 -112
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +0 -67
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +0 -839
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +0 -46
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +0 -58
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -11
- data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +0 -154
- data/bundler/lib/bundler/vendored_molinillo.rb +0 -4
- data/bundler/lib/bundler/version_ranges.rb +0 -122
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/build.rb +0 -21
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/build.rb +0 -21
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
|
3
|
-
|
2
|
+
|
3
|
+
require_relative "helper"
|
4
|
+
require "rubygems/commands/update_command"
|
4
5
|
|
5
6
|
class TestGemCommandsUpdateCommand < Gem::TestCase
|
6
7
|
def setup
|
@@ -12,20 +13,20 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
12
13
|
@cmd.options[:document] = []
|
13
14
|
|
14
15
|
@specs = spec_fetcher do |fetcher|
|
15
|
-
fetcher.download
|
16
|
-
fetcher.download
|
17
|
-
fetcher.download
|
16
|
+
fetcher.download "a", 1
|
17
|
+
fetcher.download "a", 2
|
18
|
+
fetcher.download "a", "3.a"
|
18
19
|
end
|
19
20
|
|
20
|
-
@a1_path = @specs[
|
21
|
-
@a2_path = @specs[
|
22
|
-
@a3a_path = @specs[
|
21
|
+
@a1_path = @specs["a-1"].cache_file
|
22
|
+
@a2_path = @specs["a-1"].cache_file
|
23
|
+
@a3a_path = @specs["a-3.a"].cache_file
|
23
24
|
end
|
24
25
|
|
25
26
|
def test_execute
|
26
27
|
spec_fetcher do |fetcher|
|
27
|
-
fetcher.download
|
28
|
-
fetcher.spec
|
28
|
+
fetcher.download "a", 2
|
29
|
+
fetcher.spec "a", 1
|
29
30
|
end
|
30
31
|
|
31
32
|
@cmd.options[:args] = []
|
@@ -43,11 +44,11 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
43
44
|
|
44
45
|
def test_execute_multiple
|
45
46
|
spec_fetcher do |fetcher|
|
46
|
-
fetcher.download
|
47
|
-
fetcher.download
|
47
|
+
fetcher.download "a", 2
|
48
|
+
fetcher.download "ab", 2
|
48
49
|
|
49
|
-
fetcher.spec
|
50
|
-
fetcher.spec
|
50
|
+
fetcher.spec "a", 1
|
51
|
+
fetcher.spec "ab", 1
|
51
52
|
end
|
52
53
|
|
53
54
|
@cmd.options[:args] = %w[a]
|
@@ -65,7 +66,7 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
65
66
|
|
66
67
|
def test_execute_system
|
67
68
|
spec_fetcher do |fetcher|
|
68
|
-
fetcher.download
|
69
|
+
fetcher.download "rubygems-update", 9 do |s|
|
69
70
|
s.files = %w[setup.rb]
|
70
71
|
end
|
71
72
|
end
|
@@ -87,7 +88,7 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
87
88
|
|
88
89
|
def test_execute_system_at_latest
|
89
90
|
spec_fetcher do |fetcher|
|
90
|
-
fetcher.download
|
91
|
+
fetcher.download "rubygems-update", Gem::VERSION do |s|
|
91
92
|
s.files = %w[setup.rb]
|
92
93
|
end
|
93
94
|
end
|
@@ -108,9 +109,9 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
108
109
|
|
109
110
|
def test_execute_system_when_latest_does_not_support_your_ruby
|
110
111
|
spec_fetcher do |fetcher|
|
111
|
-
fetcher.download
|
112
|
+
fetcher.download "rubygems-update", 9 do |s|
|
112
113
|
s.files = %w[setup.rb]
|
113
|
-
s.required_ruby_version =
|
114
|
+
s.required_ruby_version = "> 9"
|
114
115
|
end
|
115
116
|
end
|
116
117
|
|
@@ -133,11 +134,11 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
133
134
|
|
134
135
|
def test_execute_system_multiple
|
135
136
|
spec_fetcher do |fetcher|
|
136
|
-
fetcher.download
|
137
|
+
fetcher.download "rubygems-update", 8 do |s|
|
137
138
|
s.files = %w[setup.rb]
|
138
139
|
end
|
139
140
|
|
140
|
-
fetcher.download
|
141
|
+
fetcher.download "rubygems-update", 9 do |s|
|
141
142
|
s.files = %w[setup.rb]
|
142
143
|
end
|
143
144
|
end
|
@@ -159,7 +160,7 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
159
160
|
|
160
161
|
def test_execute_system_update_installed
|
161
162
|
spec_fetcher do |fetcher|
|
162
|
-
fetcher.download
|
163
|
+
fetcher.download "rubygems-update", 8 do |s|
|
163
164
|
s.files = %w[setup.rb]
|
164
165
|
end
|
165
166
|
end
|
@@ -170,7 +171,7 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
170
171
|
@cmd.execute
|
171
172
|
|
172
173
|
spec_fetcher do |fetcher|
|
173
|
-
fetcher.download
|
174
|
+
fetcher.download "rubygems-update", 9 do |s|
|
174
175
|
s.files = %w[setup.rb]
|
175
176
|
end
|
176
177
|
end
|
@@ -193,7 +194,7 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
193
194
|
|
194
195
|
def test_execute_system_update_installed_in_non_default_gem_path
|
195
196
|
rubygems_update_spec = quick_gem "rubygems-update", 9 do |s|
|
196
|
-
write_file File.join(@tempdir,
|
197
|
+
write_file File.join(@tempdir, "setup.rb")
|
197
198
|
|
198
199
|
s.files += %w[setup.rb]
|
199
200
|
end
|
@@ -224,11 +225,11 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
224
225
|
|
225
226
|
def test_execute_system_specific
|
226
227
|
spec_fetcher do |fetcher|
|
227
|
-
fetcher.download
|
228
|
+
fetcher.download "rubygems-update", 8 do |s|
|
228
229
|
s.files = %w[setup.rb]
|
229
230
|
end
|
230
231
|
|
231
|
-
fetcher.download
|
232
|
+
fetcher.download "rubygems-update", 9 do |s|
|
232
233
|
s.files = %w[setup.rb]
|
233
234
|
end
|
234
235
|
end
|
@@ -250,7 +251,7 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
250
251
|
|
251
252
|
def test_execute_system_specific_older_than_minimum_supported_rubygems
|
252
253
|
spec_fetcher do |fetcher|
|
253
|
-
fetcher.download
|
254
|
+
fetcher.download "rubygems-update", "2.5.1" do |s|
|
254
255
|
s.files = %w[setup.rb]
|
255
256
|
end
|
256
257
|
end
|
@@ -279,7 +280,7 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
279
280
|
|
280
281
|
def test_execute_system_specific_older_than_3_2_removes_plugins_dir
|
281
282
|
spec_fetcher do |fetcher|
|
282
|
-
fetcher.download
|
283
|
+
fetcher.download "rubygems-update", 3.1 do |s|
|
283
284
|
s.files = %w[setup.rb]
|
284
285
|
end
|
285
286
|
end
|
@@ -297,7 +298,7 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
297
298
|
@cmd.options[:system] = "3.1"
|
298
299
|
|
299
300
|
FileUtils.mkdir_p Gem.plugindir
|
300
|
-
write_file File.join(Gem.plugindir,
|
301
|
+
write_file File.join(Gem.plugindir, "a_plugin.rb")
|
301
302
|
|
302
303
|
@cmd.execute
|
303
304
|
|
@@ -306,7 +307,7 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
306
307
|
|
307
308
|
def test_execute_system_specific_newer_than_or_equal_to_3_2_leaves_plugins_dir_alone
|
308
309
|
spec_fetcher do |fetcher|
|
309
|
-
fetcher.download
|
310
|
+
fetcher.download "rubygems-update", "3.2.a" do |s|
|
310
311
|
s.files = %w[setup.rb]
|
311
312
|
end
|
312
313
|
end
|
@@ -324,7 +325,7 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
324
325
|
@cmd.options[:system] = "3.2.a"
|
325
326
|
|
326
327
|
FileUtils.mkdir_p Gem.plugindir
|
327
|
-
plugin_file = File.join(Gem.plugindir,
|
328
|
+
plugin_file = File.join(Gem.plugindir, "a_plugin.rb")
|
328
329
|
write_file plugin_file
|
329
330
|
|
330
331
|
@cmd.execute
|
@@ -335,11 +336,11 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
335
336
|
|
336
337
|
def test_execute_system_specifically_to_latest_version
|
337
338
|
spec_fetcher do |fetcher|
|
338
|
-
fetcher.download
|
339
|
+
fetcher.download "rubygems-update", 8 do |s|
|
339
340
|
s.files = %w[setup.rb]
|
340
341
|
end
|
341
342
|
|
342
|
-
fetcher.download
|
343
|
+
fetcher.download "rubygems-update", 9 do |s|
|
343
344
|
s.files = %w[setup.rb]
|
344
345
|
end
|
345
346
|
end
|
@@ -400,12 +401,12 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
400
401
|
@cmd.options[:system] = true
|
401
402
|
@cmd.options[:silent] = true
|
402
403
|
|
403
|
-
assert_equal true, @cmd.update_rubygems_arguments.include?(
|
404
|
+
assert_equal true, @cmd.update_rubygems_arguments.include?("--silent")
|
404
405
|
end
|
405
406
|
|
406
407
|
def test_execute_system_silent
|
407
408
|
spec_fetcher do |fetcher|
|
408
|
-
fetcher.download
|
409
|
+
fetcher.download "rubygems-update", 9 do |s|
|
409
410
|
s.files = %w[setup.rb]
|
410
411
|
end
|
411
412
|
end
|
@@ -429,12 +430,12 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
429
430
|
|
430
431
|
def test_execute_dependencies
|
431
432
|
spec_fetcher do |fetcher|
|
432
|
-
fetcher.download
|
433
|
-
fetcher.download
|
434
|
-
fetcher.download
|
433
|
+
fetcher.download "a", 2, "b" => 2, "c" => 2
|
434
|
+
fetcher.download "b", 2
|
435
|
+
fetcher.download "c", 2
|
435
436
|
|
436
|
-
fetcher.spec
|
437
|
-
fetcher.spec
|
437
|
+
fetcher.spec "a", 1, "c" => "1.2"
|
438
|
+
fetcher.spec "c", "1.2"
|
438
439
|
end
|
439
440
|
|
440
441
|
Gem::Specification.reset
|
@@ -456,8 +457,8 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
456
457
|
|
457
458
|
def test_execute_rdoc
|
458
459
|
spec_fetcher do |fetcher|
|
459
|
-
fetcher.download
|
460
|
-
fetcher.spec
|
460
|
+
fetcher.download "a", 2
|
461
|
+
fetcher.spec "a", 1
|
461
462
|
end
|
462
463
|
|
463
464
|
Gem.done_installing(&Gem::RDoc.method(:generation_hook))
|
@@ -472,16 +473,16 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
472
473
|
|
473
474
|
wait_for_child_process_to_exit
|
474
475
|
|
475
|
-
a2 = @specs[
|
476
|
+
a2 = @specs["a-2"]
|
476
477
|
|
477
|
-
assert_path_exist File.join(a2.doc_dir,
|
478
|
+
assert_path_exist File.join(a2.doc_dir, "rdoc")
|
478
479
|
end
|
479
480
|
|
480
481
|
def test_execute_named
|
481
482
|
spec_fetcher do |fetcher|
|
482
|
-
fetcher.download
|
483
|
+
fetcher.download "a", 2
|
483
484
|
|
484
|
-
fetcher.spec
|
485
|
+
fetcher.spec "a", 1
|
485
486
|
end
|
486
487
|
|
487
488
|
@cmd.options[:args] = %w[a]
|
@@ -500,10 +501,10 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
500
501
|
|
501
502
|
def test_execute_named_some_up_to_date
|
502
503
|
spec_fetcher do |fetcher|
|
503
|
-
fetcher.download
|
504
|
-
fetcher.spec
|
504
|
+
fetcher.download "a", 2
|
505
|
+
fetcher.spec "a", 1
|
505
506
|
|
506
|
-
fetcher.spec
|
507
|
+
fetcher.spec "b", 2
|
507
508
|
end
|
508
509
|
|
509
510
|
@cmd.options[:args] = %w[a b]
|
@@ -523,7 +524,7 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
523
524
|
|
524
525
|
def test_execute_named_up_to_date
|
525
526
|
spec_fetcher do |fetcher|
|
526
|
-
fetcher.spec
|
527
|
+
fetcher.spec "a", 2
|
527
528
|
end
|
528
529
|
|
529
530
|
@cmd.options[:args] = %w[a]
|
@@ -542,9 +543,9 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
542
543
|
|
543
544
|
def test_execute_named_up_to_date_prerelease
|
544
545
|
spec_fetcher do |fetcher|
|
545
|
-
fetcher.download
|
546
|
+
fetcher.download "a", "3.a"
|
546
547
|
|
547
|
-
fetcher.gem
|
548
|
+
fetcher.gem "a", 2
|
548
549
|
end
|
549
550
|
|
550
551
|
@cmd.options[:args] = %w[a]
|
@@ -564,7 +565,7 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
564
565
|
|
565
566
|
def test_execute_up_to_date
|
566
567
|
spec_fetcher do |fetcher|
|
567
|
-
fetcher.gem
|
568
|
+
fetcher.gem "a", 2
|
568
569
|
end
|
569
570
|
|
570
571
|
@cmd.options[:args] = []
|
@@ -606,73 +607,73 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
606
607
|
|
607
608
|
def test_fetch_remote_gems
|
608
609
|
specs = spec_fetcher do |fetcher|
|
609
|
-
fetcher.gem
|
610
|
-
fetcher.gem
|
610
|
+
fetcher.gem "a", 1
|
611
|
+
fetcher.gem "a", 2
|
611
612
|
end
|
612
613
|
|
613
614
|
expected = [
|
614
|
-
[Gem::NameTuple.new(
|
615
|
+
[Gem::NameTuple.new("a", v(2), Gem::Platform::RUBY),
|
615
616
|
Gem::Source.new(@gem_repo)],
|
616
617
|
]
|
617
618
|
|
618
|
-
assert_equal expected, @cmd.fetch_remote_gems(specs[
|
619
|
+
assert_equal expected, @cmd.fetch_remote_gems(specs["a-1"])
|
619
620
|
end
|
620
621
|
|
621
622
|
def test_fetch_remote_gems_error
|
622
623
|
Gem.sources.replace %w[http://nonexistent.example]
|
623
624
|
|
624
625
|
assert_raise Gem::RemoteFetcher::FetchError do
|
625
|
-
@cmd.fetch_remote_gems @specs[
|
626
|
+
@cmd.fetch_remote_gems @specs["a-1"]
|
626
627
|
end
|
627
628
|
end
|
628
629
|
|
629
630
|
def test_fetch_remote_gems_mismatch
|
630
|
-
platform = Gem::Platform.new
|
631
|
+
platform = Gem::Platform.new "x86-freebsd9"
|
631
632
|
|
632
633
|
specs = spec_fetcher do |fetcher|
|
633
|
-
fetcher.spec
|
634
|
-
fetcher.spec
|
634
|
+
fetcher.spec "a", 1
|
635
|
+
fetcher.spec "a", 2
|
635
636
|
|
636
|
-
fetcher.spec
|
637
|
+
fetcher.spec "a", 2 do |s|
|
637
638
|
s.platform = platform
|
638
639
|
end
|
639
640
|
end
|
640
641
|
|
641
642
|
expected = [
|
642
|
-
[Gem::NameTuple.new(
|
643
|
+
[Gem::NameTuple.new("a", v(2), Gem::Platform::RUBY),
|
643
644
|
Gem::Source.new(@gem_repo)],
|
644
645
|
]
|
645
646
|
|
646
|
-
assert_equal expected, @cmd.fetch_remote_gems(specs[
|
647
|
+
assert_equal expected, @cmd.fetch_remote_gems(specs["a-1"])
|
647
648
|
end
|
648
649
|
|
649
650
|
def test_fetch_remote_gems_prerelease
|
650
651
|
specs = spec_fetcher do |fetcher|
|
651
|
-
fetcher.gem
|
652
|
-
fetcher.gem
|
653
|
-
fetcher.gem
|
652
|
+
fetcher.gem "a", 1
|
653
|
+
fetcher.gem "a", 2
|
654
|
+
fetcher.gem "a", "3.a"
|
654
655
|
end
|
655
656
|
|
656
657
|
@cmd.options[:prerelease] = true
|
657
658
|
|
658
659
|
expected = [
|
659
|
-
[Gem::NameTuple.new(
|
660
|
+
[Gem::NameTuple.new("a", v(2), Gem::Platform::RUBY),
|
660
661
|
Gem::Source.new(@gem_repo)],
|
661
|
-
[Gem::NameTuple.new(
|
662
|
+
[Gem::NameTuple.new("a", v("3.a"), Gem::Platform::RUBY),
|
662
663
|
Gem::Source.new(@gem_repo)],
|
663
664
|
]
|
664
665
|
|
665
|
-
assert_equal expected, @cmd.fetch_remote_gems(specs[
|
666
|
+
assert_equal expected, @cmd.fetch_remote_gems(specs["a-1"])
|
666
667
|
end
|
667
668
|
|
668
669
|
def test_handle_options_system
|
669
670
|
@cmd.handle_options %w[--system]
|
670
671
|
|
671
672
|
expected = {
|
672
|
-
:args
|
673
|
+
:args => [],
|
673
674
|
:document => %w[ri],
|
674
|
-
:force
|
675
|
-
:system
|
675
|
+
:force => false,
|
676
|
+
:system => true,
|
676
677
|
}
|
677
678
|
|
678
679
|
assert_equal expected, @cmd.options
|
@@ -688,10 +689,10 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
688
689
|
@cmd.handle_options %w[--system 1.3.7]
|
689
690
|
|
690
691
|
expected = {
|
691
|
-
:args
|
692
|
+
:args => [],
|
692
693
|
:document => %w[ri],
|
693
|
-
:force
|
694
|
-
:system
|
694
|
+
:force => false,
|
695
|
+
:system => "1.3.7",
|
695
696
|
}
|
696
697
|
|
697
698
|
assert_equal expected, @cmd.options
|
@@ -699,11 +700,11 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
699
700
|
|
700
701
|
def test_update_gem_prerelease
|
701
702
|
spec_fetcher do |fetcher|
|
702
|
-
fetcher.spec
|
703
|
-
fetcher.gem
|
703
|
+
fetcher.spec "a", "1.a"
|
704
|
+
fetcher.gem "a", "1.b"
|
704
705
|
end
|
705
706
|
|
706
|
-
@cmd.update_gem
|
707
|
+
@cmd.update_gem "a", Gem::Requirement.new("= 1.b")
|
707
708
|
|
708
709
|
refute_empty @cmd.updated
|
709
710
|
|
@@ -712,15 +713,15 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
712
713
|
|
713
714
|
def test_update_gem_unresolved_dependency
|
714
715
|
spec_fetcher do |fetcher|
|
715
|
-
fetcher.spec
|
716
|
-
fetcher.gem
|
717
|
-
s.add_dependency
|
716
|
+
fetcher.spec "a", 1
|
717
|
+
fetcher.gem "a", 2 do |s|
|
718
|
+
s.add_dependency "b", ">= 2"
|
718
719
|
end
|
719
720
|
|
720
|
-
fetcher.spec
|
721
|
+
fetcher.spec "b", 1
|
721
722
|
end
|
722
723
|
|
723
|
-
@cmd.update_gem
|
724
|
+
@cmd.update_gem "a"
|
724
725
|
|
725
726
|
assert_empty @cmd.updated
|
726
727
|
end
|
@@ -730,18 +731,18 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
730
731
|
|
731
732
|
arguments = @cmd.update_rubygems_arguments
|
732
733
|
|
733
|
-
assert_equal
|
734
|
+
assert_equal "--prefix", arguments.shift
|
734
735
|
assert_equal Gem.prefix, arguments.shift
|
735
|
-
assert_equal
|
736
|
-
assert_equal
|
736
|
+
assert_equal "--no-document", arguments.shift
|
737
|
+
assert_equal "--previous-version", arguments.shift
|
737
738
|
assert_equal Gem::VERSION, arguments.shift
|
738
739
|
assert_empty arguments
|
739
740
|
end
|
740
741
|
|
741
742
|
def test_explain
|
742
743
|
spec_fetcher do |fetcher|
|
743
|
-
fetcher.download
|
744
|
-
fetcher.spec
|
744
|
+
fetcher.download "a", 2
|
745
|
+
fetcher.spec "a", 1
|
745
746
|
end
|
746
747
|
|
747
748
|
@cmd.options[:explain] = true
|
@@ -761,13 +762,13 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
761
762
|
def test_explain_platform_local
|
762
763
|
local = Gem::Platform.local
|
763
764
|
spec_fetcher do |fetcher|
|
764
|
-
fetcher.download
|
765
|
+
fetcher.download "a", 2
|
765
766
|
|
766
|
-
fetcher.download
|
767
|
+
fetcher.download "a", 2 do |s|
|
767
768
|
s.platform = local
|
768
769
|
end
|
769
770
|
|
770
|
-
fetcher.spec
|
771
|
+
fetcher.spec "a", 1
|
771
772
|
end
|
772
773
|
|
773
774
|
@cmd.options[:explain] = true
|
@@ -787,13 +788,13 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
787
788
|
def test_explain_platform_ruby
|
788
789
|
local = Gem::Platform.local
|
789
790
|
spec_fetcher do |fetcher|
|
790
|
-
fetcher.download
|
791
|
+
fetcher.download "a", 2
|
791
792
|
|
792
|
-
fetcher.download
|
793
|
+
fetcher.download "a", 2 do |s|
|
793
794
|
s.platform = local
|
794
795
|
end
|
795
796
|
|
796
|
-
fetcher.spec
|
797
|
+
fetcher.spec "a", 1
|
797
798
|
end
|
798
799
|
|
799
800
|
# equivalent to --platform=ruby
|
@@ -815,7 +816,7 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
815
816
|
|
816
817
|
def test_execute_named_not_installed_and_no_update
|
817
818
|
spec_fetcher do |fetcher|
|
818
|
-
fetcher.spec
|
819
|
+
fetcher.spec "a", 2
|
819
820
|
end
|
820
821
|
|
821
822
|
@cmd.options[:args] = %w[a b]
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
|
3
|
-
|
2
|
+
|
3
|
+
require_relative "helper"
|
4
|
+
require "rubygems/commands/which_command"
|
4
5
|
|
5
6
|
class TestGemCommandsWhichCommand < Gem::TestCase
|
6
7
|
def setup
|
@@ -19,7 +20,7 @@ class TestGemCommandsWhichCommand < Gem::TestCase
|
|
19
20
|
end
|
20
21
|
|
21
22
|
assert_equal "#{@foo_bar.full_gem_path}/lib/foo_bar.rb\n", @ui.output
|
22
|
-
assert_equal
|
23
|
+
assert_equal "", @ui.error
|
23
24
|
end
|
24
25
|
|
25
26
|
def test_execute_directory
|
@@ -31,7 +32,7 @@ class TestGemCommandsWhichCommand < Gem::TestCase
|
|
31
32
|
end
|
32
33
|
end
|
33
34
|
|
34
|
-
assert_equal
|
35
|
+
assert_equal "", @ui.output
|
35
36
|
assert_match %r{Can.t find Ruby library file or shared library directory\n},
|
36
37
|
@ui.error
|
37
38
|
end
|
@@ -63,14 +64,14 @@ class TestGemCommandsWhichCommand < Gem::TestCase
|
|
63
64
|
end
|
64
65
|
end
|
65
66
|
|
66
|
-
assert_equal
|
67
|
+
assert_equal "", @ui.output
|
67
68
|
assert_match %r{Can.t find Ruby library file or shared library missinglib\n},
|
68
69
|
@ui.error
|
69
70
|
end
|
70
71
|
|
71
72
|
def util_foo_bar
|
72
73
|
files = %w[lib/foo_bar.rb lib/directory/baz.rb Rakefile]
|
73
|
-
@foo_bar = util_spec
|
74
|
+
@foo_bar = util_spec "foo_bar" do |gem|
|
74
75
|
gem.files = files
|
75
76
|
end
|
76
77
|
install_specs @foo_bar
|