rubygems-update 3.1.2 → 3.2.3
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/CODE_OF_CONDUCT.md +55 -19
- data/CONTRIBUTING.md +25 -11
- data/History.txt +460 -232
- data/Manifest.txt +47 -77
- data/POLICIES.md +6 -12
- data/README.md +5 -5
- data/Rakefile +59 -83
- data/bin/update_rubygems +1 -1
- data/bundler/CHANGELOG.md +1598 -1421
- data/bundler/README.md +6 -8
- data/bundler/UPGRADING.md +18 -32
- data/bundler/bundler.gemspec +3 -3
- data/bundler/exe/bundle +3 -0
- data/bundler/lib/bundler.rb +32 -7
- data/bundler/lib/bundler/build_metadata.rb +4 -12
- data/bundler/lib/bundler/cli.rb +58 -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 +84 -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 -5
- data/bundler/lib/bundler/definition.rb +65 -76
- data/bundler/lib/bundler/dep_proxy.rb +1 -1
- 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 +2 -2
- 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/bundle-add.ronn → lib/bundler/man/bundle-add.1.ronn} +0 -0
- data/bundler/{man/bundle-binstubs.ronn → lib/bundler/man/bundle-binstubs.1.ronn} +2 -4
- data/bundler/{man/bundle-cache.ronn → lib/bundler/man/bundle-cache.1.ronn} +0 -0
- data/bundler/{man/bundle-check.ronn → lib/bundler/man/bundle-check.1.ronn} +0 -0
- data/bundler/{man/bundle-clean.ronn → lib/bundler/man/bundle-clean.1.ronn} +0 -0
- data/bundler/{man/bundle-config.ronn → lib/bundler/man/bundle-config.1.ronn} +19 -30
- data/bundler/{man/bundle-doctor.ronn → lib/bundler/man/bundle-doctor.1.ronn} +0 -0
- data/bundler/{man/bundle-exec.ronn → lib/bundler/man/bundle-exec.1.ronn} +0 -0
- data/bundler/{man/bundle-gem.ronn → lib/bundler/man/bundle-gem.1.ronn} +30 -7
- data/bundler/{man/bundle-info.ronn → lib/bundler/man/bundle-info.1.ronn} +0 -0
- data/bundler/{man/bundle-init.ronn → lib/bundler/man/bundle-init.1.ronn} +0 -0
- data/bundler/{man/bundle-inject.ronn → lib/bundler/man/bundle-inject.1.ronn} +0 -0
- data/bundler/{man/bundle-install.ronn → lib/bundler/man/bundle-install.1.ronn} +25 -3
- data/bundler/{man/bundle-list.ronn → lib/bundler/man/bundle-list.1.ronn} +6 -6
- data/bundler/{man/bundle-lock.ronn → lib/bundler/man/bundle-lock.1.ronn} +0 -0
- data/bundler/{man/bundle-open.ronn → lib/bundler/man/bundle-open.1.ronn} +0 -0
- data/bundler/{man/bundle-outdated.ronn → lib/bundler/man/bundle-outdated.1.ronn} +0 -0
- data/bundler/{man/bundle-platform.ronn → lib/bundler/man/bundle-platform.1.ronn} +0 -0
- data/bundler/{man/bundle-pristine.ronn → lib/bundler/man/bundle-pristine.1.ronn} +0 -0
- data/bundler/{man/bundle-remove.ronn → lib/bundler/man/bundle-remove.1.ronn} +0 -0
- data/bundler/{man/bundle-show.ronn → lib/bundler/man/bundle-show.1.ronn} +0 -0
- data/bundler/{man/bundle-update.ronn → lib/bundler/man/bundle-update.1.ronn} +0 -0
- data/bundler/{man/bundle-viz.ronn → lib/bundler/man/bundle-viz.1.ronn} +0 -0
- data/bundler/{man/bundle.ronn → lib/bundler/man/bundle.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/gemfile.5.ronn +4 -4
- 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 +37 -18
- data/bundler/lib/bundler/resolver/spec_group.rb +36 -21
- data/bundler/lib/bundler/retry.rb +1 -1
- data/bundler/lib/bundler/ruby_version.rb +1 -1
- data/bundler/lib/bundler/rubygems_ext.rb +53 -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 +5 -5
- data/bundler/lib/bundler/source/git/git_proxy.rb +57 -60
- data/bundler/lib/bundler/source/path.rb +7 -3
- data/bundler/lib/bundler/source/path/installer.rb +8 -10
- data/bundler/lib/bundler/source/rubygems.rb +13 -16
- 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 +7 -9
- 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 +14 -6
- data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +10 -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 +38 -40
- 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/bundler/man/bundle-add.1 +1 -1
- data/bundler/man/bundle-binstubs.1 +5 -3
- data/bundler/man/bundle-cache.1 +1 -1
- data/bundler/man/bundle-check.1 +1 -1
- data/bundler/man/bundle-clean.1 +1 -1
- data/bundler/man/bundle-config.1 +16 -25
- data/bundler/man/bundle-doctor.1 +1 -1
- data/bundler/man/bundle-exec.1 +1 -1
- data/bundler/man/bundle-gem.1 +25 -3
- data/bundler/man/bundle-info.1 +1 -1
- data/bundler/man/bundle-init.1 +1 -1
- data/bundler/man/bundle-inject.1 +1 -1
- data/bundler/man/bundle-install.1 +30 -3
- data/bundler/man/bundle-list.1 +7 -7
- data/bundler/man/bundle-lock.1 +1 -1
- data/bundler/man/bundle-open.1 +1 -1
- data/bundler/man/bundle-outdated.1 +1 -1
- data/bundler/man/bundle-platform.1 +1 -1
- data/bundler/man/bundle-pristine.1 +1 -1
- data/bundler/man/bundle-remove.1 +1 -1
- data/bundler/man/bundle-show.1 +1 -1
- data/bundler/man/bundle-update.1 +1 -1
- data/bundler/man/bundle-viz.1 +1 -1
- data/bundler/man/bundle.1 +1 -1
- data/bundler/man/gemfile.5 +4 -4
- 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 +131 -58
- 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 +16 -35
- data/lib/rubygems/ext/cmake_builder.rb +5 -7
- data/lib/rubygems/ext/configure_builder.rb +4 -6
- 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 -12
- 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 +11 -28
- 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 +20 -21
- 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 +1 -3
- 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 +26 -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 +113 -126
- 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 +105 -132
- 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 +2 -2
- data/setup.rb +2 -7
- 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 +151 -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 +165 -124
- 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 +90 -193
- 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 +26 -47
- data/test/rubygems/test_gem_ext_cmake_builder.rb +16 -23
- data/test/rubygems/test_gem_ext_configure_builder.rb +4 -20
- 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 +63 -6
- data/test/rubygems/test_gem_rdoc.rb +0 -2
- data/test/rubygems/test_gem_remote_fetcher.rb +168 -211
- 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 +10 -4
- 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 +5 -7
- 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 +182 -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 +65 -96
- 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
@@ -4,8 +4,9 @@ require 'rubygems/user_interaction'
|
|
4
4
|
require 'timeout'
|
5
5
|
|
6
6
|
class TestGemStreamUI < Gem::TestCase
|
7
|
-
|
8
|
-
|
7
|
+
# increase timeout with MJIT for --jit-wait testing
|
8
|
+
mjit_enabled = defined?(RubyVM::MJIT) && RubyVM::MJIT.enabled?
|
9
|
+
SHORT_TIMEOUT = (RUBY_ENGINE == "ruby" && !mjit_enabled) ? 0.1 : 1.0
|
9
10
|
|
10
11
|
module IsTty
|
11
12
|
attr_accessor :tty
|
@@ -220,5 +221,4 @@ class TestGemStreamUI < Gem::TestCase
|
|
220
221
|
reporter.fetch 'a.gem', 1024
|
221
222
|
assert_equal "", @out.string
|
222
223
|
end
|
223
|
-
|
224
224
|
end
|
@@ -3,16 +3,14 @@ require "rubygems/test_case"
|
|
3
3
|
require "rubygems/stub_specification"
|
4
4
|
|
5
5
|
class TestStubSpecification < Gem::TestCase
|
6
|
-
|
7
|
-
|
8
|
-
FOO = File.join SPECIFICATIONS, "foo-0.0.1-x86-mswin32.gemspec"
|
9
|
-
BAR = File.join SPECIFICATIONS, "bar-0.0.2.gemspec"
|
6
|
+
FOO = File.expand_path File.join("specifications", "foo-0.0.1-x86-mswin32.gemspec"), __dir__
|
7
|
+
BAR = File.expand_path File.join("specifications", "bar-0.0.2.gemspec"), __dir__
|
10
8
|
|
11
9
|
def setup
|
12
10
|
super
|
13
11
|
|
14
|
-
@base_dir =
|
15
|
-
@gems_dir = File.join
|
12
|
+
@base_dir = __dir__
|
13
|
+
@gems_dir = File.join __dir__, 'gem'
|
16
14
|
@foo = Gem::StubSpecification.gemspec_stub FOO, @base_dir, @gems_dir
|
17
15
|
end
|
18
16
|
|
@@ -292,5 +290,4 @@ end
|
|
292
290
|
return stub
|
293
291
|
end
|
294
292
|
end
|
295
|
-
|
296
293
|
end
|
@@ -3,7 +3,6 @@ require 'rubygems/test_case'
|
|
3
3
|
require "rubygems/text"
|
4
4
|
|
5
5
|
class TestGemText < Gem::TestCase
|
6
|
-
|
7
6
|
include Gem::Text
|
8
7
|
|
9
8
|
def test_format_text
|
@@ -23,7 +22,7 @@ class TestGemText < Gem::TestCase
|
|
23
22
|
end
|
24
23
|
|
25
24
|
def test_format_text_no_space
|
26
|
-
assert_equal "texttowr\nap",
|
25
|
+
assert_equal "texttowr\nap", format_text("texttowrap", 8)
|
27
26
|
end
|
28
27
|
|
29
28
|
def test_format_text_trailing # for two spaces after .
|
@@ -94,5 +93,4 @@ Without the wrapping, the text might not look good in the RSS feed.
|
|
94
93
|
def test_clean_text
|
95
94
|
assert_equal ".]2;nyan.", clean_text("\e]2;nyan\a")
|
96
95
|
end
|
97
|
-
|
98
96
|
end
|
@@ -3,7 +3,6 @@ require 'rubygems/installer_test_case'
|
|
3
3
|
require 'rubygems/uninstaller'
|
4
4
|
|
5
5
|
class TestGemUninstaller < Gem::InstallerTestCase
|
6
|
-
|
7
6
|
def setup
|
8
7
|
super
|
9
8
|
@installer = setup_base_installer
|
@@ -27,7 +26,7 @@ class TestGemUninstaller < Gem::InstallerTestCase
|
|
27
26
|
FileUtils.mkdir_p 'foo/bar'
|
28
27
|
uninstaller = Gem::Uninstaller.new nil, :install_dir => 'foo//bar'
|
29
28
|
|
30
|
-
assert_match %r
|
29
|
+
assert_match %r{foo/bar$}, uninstaller.instance_variable_get(:@gem_home)
|
31
30
|
end
|
32
31
|
|
33
32
|
def test_ask_if_ok
|
@@ -154,6 +153,8 @@ class TestGemUninstaller < Gem::InstallerTestCase
|
|
154
153
|
end
|
155
154
|
|
156
155
|
def test_remove_symlinked_gem_home
|
156
|
+
skip "Symlinks not supported or not enabled" unless symlink_supported?
|
157
|
+
|
157
158
|
Dir.mktmpdir("gem_home") do |dir|
|
158
159
|
symlinked_gem_home = "#{dir}/#{File.basename(@gemhome)}"
|
159
160
|
|
@@ -169,6 +170,59 @@ class TestGemUninstaller < Gem::InstallerTestCase
|
|
169
170
|
end
|
170
171
|
end
|
171
172
|
|
173
|
+
def test_remove_plugins
|
174
|
+
write_file File.join(@tempdir, 'lib', 'rubygems_plugin.rb') do |io|
|
175
|
+
io.write "puts __FILE__"
|
176
|
+
end
|
177
|
+
|
178
|
+
@spec.files += %w[lib/rubygems_plugin.rb]
|
179
|
+
|
180
|
+
Gem::Installer.at(Gem::Package.build(@spec), :force => true).install
|
181
|
+
|
182
|
+
plugin_path = File.join Gem.plugindir, 'a_plugin.rb'
|
183
|
+
assert File.exist?(plugin_path), 'plugin not written'
|
184
|
+
|
185
|
+
Gem::Uninstaller.new(nil).remove_plugins @spec
|
186
|
+
|
187
|
+
refute File.exist?(plugin_path), 'plugin not removed'
|
188
|
+
end
|
189
|
+
|
190
|
+
def test_remove_plugins_with_install_dir
|
191
|
+
write_file File.join(@tempdir, 'lib', 'rubygems_plugin.rb') do |io|
|
192
|
+
io.write "puts __FILE__"
|
193
|
+
end
|
194
|
+
|
195
|
+
@spec.files += %w[lib/rubygems_plugin.rb]
|
196
|
+
|
197
|
+
Gem::Installer.at(Gem::Package.build(@spec), :force => true).install
|
198
|
+
|
199
|
+
plugin_path = File.join Gem.plugindir, 'a_plugin.rb'
|
200
|
+
assert File.exist?(plugin_path), 'plugin not written'
|
201
|
+
|
202
|
+
Dir.mkdir "#{@gemhome}2"
|
203
|
+
Gem::Uninstaller.new(nil, :install_dir => "#{@gemhome}2").remove_plugins @spec
|
204
|
+
|
205
|
+
assert File.exist?(plugin_path), 'plugin unintentionally removed'
|
206
|
+
end
|
207
|
+
|
208
|
+
def test_regenerate_plugins_for
|
209
|
+
write_file File.join(@tempdir, 'lib', 'rubygems_plugin.rb') do |io|
|
210
|
+
io.write "puts __FILE__"
|
211
|
+
end
|
212
|
+
|
213
|
+
@spec.files += %w[lib/rubygems_plugin.rb]
|
214
|
+
|
215
|
+
Gem::Installer.at(Gem::Package.build(@spec), :force => true).install
|
216
|
+
|
217
|
+
plugin_path = File.join Gem.plugindir, 'a_plugin.rb'
|
218
|
+
assert File.exist?(plugin_path), 'plugin not written'
|
219
|
+
|
220
|
+
FileUtils.rm plugin_path
|
221
|
+
Gem::Uninstaller.new(nil).regenerate_plugins_for @spec, Gem.plugindir
|
222
|
+
|
223
|
+
assert File.exist?(plugin_path), 'plugin not regenerated'
|
224
|
+
end
|
225
|
+
|
172
226
|
def test_path_ok_eh
|
173
227
|
uninstaller = Gem::Uninstaller.new nil
|
174
228
|
|
@@ -260,7 +314,7 @@ create_makefile '#{@spec.name}'
|
|
260
314
|
use_ui @ui do
|
261
315
|
path = Gem::Package.build @spec
|
262
316
|
|
263
|
-
installer = Gem::Installer.at path
|
317
|
+
installer = Gem::Installer.at path, :force => true
|
264
318
|
installer.install
|
265
319
|
end
|
266
320
|
|
@@ -405,12 +459,12 @@ create_makefile '#{@spec.name}'
|
|
405
459
|
lines = ui.output.split("\n")
|
406
460
|
lines.shift
|
407
461
|
|
408
|
-
assert_match %r
|
462
|
+
assert_match %r{You have requested to uninstall the gem:}, lines.shift
|
409
463
|
lines.shift
|
410
464
|
lines.shift
|
411
465
|
|
412
|
-
assert_match %r
|
413
|
-
assert_match %r
|
466
|
+
assert_match %r{r-1 depends on q \(= 1\)}, lines.shift
|
467
|
+
assert_match %r{Successfully uninstalled q-1}, lines.last
|
414
468
|
end
|
415
469
|
|
416
470
|
def test_uninstall_only_lists_unsatisfied_deps
|
@@ -435,12 +489,12 @@ create_makefile '#{@spec.name}'
|
|
435
489
|
lines = ui.output.split("\n")
|
436
490
|
lines.shift
|
437
491
|
|
438
|
-
assert_match %r
|
492
|
+
assert_match %r{You have requested to uninstall the gem:}, lines.shift
|
439
493
|
lines.shift
|
440
494
|
lines.shift
|
441
495
|
|
442
|
-
assert_match %r
|
443
|
-
assert_match %r
|
496
|
+
assert_match %r{x-1 depends on q \(= 1.0\)}, lines.shift
|
497
|
+
assert_match %r{Successfully uninstalled q-1.0}, lines.last
|
444
498
|
end
|
445
499
|
|
446
500
|
def test_uninstall_doesnt_prompt_when_other_gem_satisfies_requirement
|
@@ -516,12 +570,41 @@ create_makefile '#{@spec.name}'
|
|
516
570
|
lines = ui.output.split("\n")
|
517
571
|
lines.shift
|
518
572
|
|
519
|
-
assert_match %r
|
573
|
+
assert_match %r{You have requested to uninstall the gem:}, lines.shift
|
520
574
|
lines.shift
|
521
575
|
lines.shift
|
522
576
|
|
523
|
-
assert_match %r
|
524
|
-
assert_match %r
|
577
|
+
assert_match %r{r-1 depends on q \(= 1, development\)}, lines.shift
|
578
|
+
assert_match %r{Successfully uninstalled q-1}, lines.last
|
579
|
+
end
|
580
|
+
|
581
|
+
def test_uninstall_prompt_only_lists_the_dependents_that_prevented_uninstallation
|
582
|
+
quick_gem 'r', '1' do |s|
|
583
|
+
s.add_development_dependency 'q', '= 1'
|
584
|
+
end
|
585
|
+
|
586
|
+
quick_gem 's', '1' do |s|
|
587
|
+
s.add_dependency 'q', '= 1'
|
588
|
+
end
|
589
|
+
|
590
|
+
quick_gem 'q', '1'
|
591
|
+
|
592
|
+
un = Gem::Uninstaller.new('q', :check_dev => false)
|
593
|
+
ui = Gem::MockGemUi.new("y\n")
|
594
|
+
|
595
|
+
use_ui ui do
|
596
|
+
un.uninstall
|
597
|
+
end
|
598
|
+
|
599
|
+
lines = ui.output.split("\n")
|
600
|
+
lines.shift
|
601
|
+
|
602
|
+
assert_match %r{You have requested to uninstall the gem:}, lines.shift
|
603
|
+
lines.shift
|
604
|
+
lines.shift
|
605
|
+
|
606
|
+
assert_match %r{s-1 depends on q \(= 1\)}, lines.shift
|
607
|
+
assert_match %r{Successfully uninstalled q-1}, lines.last
|
525
608
|
end
|
526
609
|
|
527
610
|
def test_uninstall_no_permission
|
@@ -542,4 +625,43 @@ create_makefile '#{@spec.name}'
|
|
542
625
|
end
|
543
626
|
end
|
544
627
|
|
628
|
+
def test_uninstall_keeps_plugins_up_to_date
|
629
|
+
write_file File.join(@tempdir, 'lib', 'rubygems_plugin.rb') do |io|
|
630
|
+
io.write "puts __FILE__"
|
631
|
+
end
|
632
|
+
|
633
|
+
plugin_path = File.join Gem.plugindir, 'a_plugin.rb'
|
634
|
+
|
635
|
+
@spec.version = '1'
|
636
|
+
Gem::Installer.at(Gem::Package.build(@spec), :force => true).install
|
637
|
+
|
638
|
+
refute File.exist?(plugin_path), 'version without plugin installed, but plugin written'
|
639
|
+
|
640
|
+
@spec.files += %w[lib/rubygems_plugin.rb]
|
641
|
+
@spec.version = '2'
|
642
|
+
Gem::Installer.at(Gem::Package.build(@spec), :force => true).install
|
643
|
+
|
644
|
+
assert File.exist?(plugin_path), 'version with plugin installed, but plugin not written'
|
645
|
+
assert_match %r{\Arequire.*a-2/lib/rubygems_plugin\.rb}, File.read(plugin_path), 'written plugin has incorrect content'
|
646
|
+
|
647
|
+
@spec.version = '3'
|
648
|
+
Gem::Installer.at(Gem::Package.build(@spec), :force => true).install
|
649
|
+
|
650
|
+
assert File.exist?(plugin_path), 'version with plugin installed, but plugin removed'
|
651
|
+
assert_match %r{\Arequire.*a-3/lib/rubygems_plugin\.rb}, File.read(plugin_path), 'old version installed, but plugin updated'
|
652
|
+
|
653
|
+
Gem::Uninstaller.new('a', :version => '1', :executables => true).uninstall
|
654
|
+
|
655
|
+
assert File.exist?(plugin_path), 'plugin removed when old version uninstalled'
|
656
|
+
assert_match %r{\Arequire.*a-3/lib/rubygems_plugin\.rb}, File.read(plugin_path), 'old version uninstalled, but plugin updated'
|
657
|
+
|
658
|
+
Gem::Uninstaller.new('a', version: '3', :executables => true).uninstall
|
659
|
+
|
660
|
+
assert File.exist?(plugin_path), 'plugin removed when old version uninstalled and another version with plugin still present'
|
661
|
+
assert_match %r{\Arequire.*a-2/lib/rubygems_plugin\.rb}, File.read(plugin_path), 'latest version uninstalled, but plugin not updated to previous version'
|
662
|
+
|
663
|
+
Gem::Uninstaller.new('a', version: '2', :executables => true).uninstall
|
664
|
+
|
665
|
+
refute File.exist?(plugin_path), 'last version uninstalled, but plugin still present'
|
666
|
+
end
|
545
667
|
end
|
@@ -2,7 +2,6 @@
|
|
2
2
|
require 'rubygems/test_case'
|
3
3
|
|
4
4
|
class TestGemUnsatisfiableDependencyError < Gem::TestCase
|
5
|
-
|
6
5
|
def setup
|
7
6
|
super
|
8
7
|
|
@@ -28,5 +27,4 @@ class TestGemUnsatisfiableDependencyError < Gem::TestCase
|
|
28
27
|
def test_version
|
29
28
|
assert_equal @a_dep.requirement, @e.version
|
30
29
|
end
|
31
|
-
|
32
30
|
end
|
@@ -3,7 +3,6 @@ require 'rubygems/test_case'
|
|
3
3
|
require 'rubygems/uri_formatter'
|
4
4
|
|
5
5
|
class TestGemUriFormatter < Gem::TestCase
|
6
|
-
|
7
6
|
def test_normalize_uri
|
8
7
|
assert_equal 'FILE://example/',
|
9
8
|
Gem::UriFormatter.new('FILE://example/').normalize
|
@@ -24,5 +23,4 @@ class TestGemUriFormatter < Gem::TestCase
|
|
24
23
|
def test_unescape
|
25
24
|
assert_equal 'a@b\c', Gem::UriFormatter.new('a%40b%5Cc').unescape
|
26
25
|
end
|
27
|
-
|
28
26
|
end
|
@@ -3,10 +3,9 @@ require 'rubygems/test_case'
|
|
3
3
|
require 'rubygems/util'
|
4
4
|
|
5
5
|
class TestGemUtil < Gem::TestCase
|
6
|
-
|
7
6
|
def test_class_popen
|
8
7
|
skip "popen with a block does not behave well on jruby" if Gem.java_platform?
|
9
|
-
assert_equal "0\n", Gem::Util.popen(
|
8
|
+
assert_equal "0\n", Gem::Util.popen(*ruby_with_rubygems_in_load_path, '-e', 'p 0')
|
10
9
|
|
11
10
|
assert_raises Errno::ECHILD do
|
12
11
|
Process.wait(-1)
|
@@ -15,8 +14,10 @@ class TestGemUtil < Gem::TestCase
|
|
15
14
|
|
16
15
|
def test_silent_system
|
17
16
|
skip if Gem.java_platform?
|
18
|
-
|
19
|
-
|
17
|
+
Gem::Deprecate.skip_during do
|
18
|
+
assert_silent do
|
19
|
+
Gem::Util.silent_system(*ruby_with_rubygems_in_load_path, '-e', 'puts "hello"; warn "hello"')
|
20
|
+
end
|
20
21
|
end
|
21
22
|
end
|
22
23
|
|
@@ -56,8 +57,8 @@ class TestGemUtil < Gem::TestCase
|
|
56
57
|
list = [1,2,3,4,5].inject(Gem::List.new(0)) do |m,o|
|
57
58
|
Gem::List.new o, m
|
58
59
|
end
|
59
|
-
assert_equal 5, list.find {
|
60
|
-
assert_equal 4, list.find {
|
60
|
+
assert_equal 5, list.find {|x| x == 5 }
|
61
|
+
assert_equal 4, list.find {|x| x == 4 }
|
61
62
|
end
|
62
63
|
|
63
64
|
def test_glob_files_in_dir
|
@@ -84,5 +85,4 @@ class TestGemUtil < Gem::TestCase
|
|
84
85
|
path = "/home/skillet"
|
85
86
|
assert_equal "/home/skillet", Gem::Util.correct_for_windows_path(path)
|
86
87
|
end
|
87
|
-
|
88
88
|
end
|
@@ -4,7 +4,6 @@ require "rubygems/test_case"
|
|
4
4
|
require "rubygems/validator"
|
5
5
|
|
6
6
|
class TestGemValidator < Gem::TestCase
|
7
|
-
|
8
7
|
def setup
|
9
8
|
super
|
10
9
|
|
@@ -27,7 +26,7 @@ class TestGemValidator < Gem::TestCase
|
|
27
26
|
@spec.file_name => [
|
28
27
|
Gem::Validator::ErrorData.new('lib/b.rb', 'Missing file'),
|
29
28
|
Gem::Validator::ErrorData.new('lib/c.rb', 'Extra file'),
|
30
|
-
]
|
29
|
+
],
|
31
30
|
}
|
32
31
|
|
33
32
|
assert_equal expected, alien
|
@@ -40,5 +39,4 @@ class TestGemValidator < Gem::TestCase
|
|
40
39
|
|
41
40
|
assert_empty alien
|
42
41
|
end
|
43
|
-
|
44
42
|
end
|
@@ -5,7 +5,6 @@ require "rubygems/version"
|
|
5
5
|
require "minitest/benchmark"
|
6
6
|
|
7
7
|
class TestGemVersion < Gem::TestCase
|
8
|
-
|
9
8
|
class V < ::Gem::Version
|
10
9
|
end
|
11
10
|
|
@@ -236,7 +235,7 @@ class TestGemVersion < Gem::TestCase
|
|
236
235
|
assert_equal expected, v(version).approximate_recommendation
|
237
236
|
end
|
238
237
|
|
239
|
-
# Assert that the "approximate" recommendation for +version+
|
238
|
+
# Assert that the "approximate" recommendation for +version+ satisfies +version+.
|
240
239
|
|
241
240
|
def assert_approximate_satisfies_itself(version)
|
242
241
|
gem_version = v(version)
|
@@ -298,5 +297,4 @@ class TestGemVersion < Gem::TestCase
|
|
298
297
|
def refute_version_equal(unexpected, actual)
|
299
298
|
refute_equal v(unexpected), v(actual)
|
300
299
|
end
|
301
|
-
|
302
300
|
end
|
@@ -4,7 +4,6 @@ require 'rubygems/command'
|
|
4
4
|
require 'rubygems/version_option'
|
5
5
|
|
6
6
|
class TestGemVersionOption < Gem::TestCase
|
7
|
-
|
8
7
|
def setup
|
9
8
|
super
|
10
9
|
|
@@ -57,7 +56,7 @@ class TestGemVersionOption < Gem::TestCase
|
|
57
56
|
@cmd.handle_options %w[--platform ruby]
|
58
57
|
|
59
58
|
expected = [
|
60
|
-
Gem::Platform::RUBY
|
59
|
+
Gem::Platform::RUBY,
|
61
60
|
]
|
62
61
|
|
63
62
|
assert_equal expected, Gem.platforms
|
@@ -162,5 +161,4 @@ class TestGemVersionOption < Gem::TestCase
|
|
162
161
|
|
163
162
|
assert_equal expected, @cmd.options
|
164
163
|
end
|
165
|
-
|
166
164
|
end
|
@@ -2,7 +2,6 @@
|
|
2
2
|
require 'rubygems/test_case'
|
3
3
|
|
4
4
|
class TestKernel < Gem::TestCase
|
5
|
-
|
6
5
|
def setup
|
7
6
|
super
|
8
7
|
|
@@ -19,7 +18,7 @@ class TestKernel < Gem::TestCase
|
|
19
18
|
|
20
19
|
def test_gem
|
21
20
|
assert gem('a', '= 1'), "Should load"
|
22
|
-
assert $:.any? {
|
21
|
+
assert $:.any? {|p| %r{a-1/lib} =~ p }
|
23
22
|
end
|
24
23
|
|
25
24
|
def test_gem_default
|
@@ -49,13 +48,13 @@ class TestKernel < Gem::TestCase
|
|
49
48
|
def test_gem_redundant
|
50
49
|
assert gem('a', '= 1'), "Should load"
|
51
50
|
refute gem('a', '= 1'), "Should not load"
|
52
|
-
assert_equal 1, $:.select {
|
51
|
+
assert_equal 1, $:.select {|p| %r{a-1/lib} =~ p }.size
|
53
52
|
end
|
54
53
|
|
55
54
|
def test_gem_overlapping
|
56
55
|
assert gem('a', '= 1'), "Should load"
|
57
56
|
refute gem('a', '>= 1'), "Should not load"
|
58
|
-
assert_equal 1, $:.select {
|
57
|
+
assert_equal 1, $:.select {|p| %r{a-1/lib} =~ p }.size
|
59
58
|
end
|
60
59
|
|
61
60
|
def test_gem_prerelease
|
@@ -82,13 +81,30 @@ class TestKernel < Gem::TestCase
|
|
82
81
|
assert_match(/activated a-1/, ex.message)
|
83
82
|
assert_equal 'a', ex.name
|
84
83
|
|
85
|
-
assert $:.any? {
|
86
|
-
refute $:.any? {
|
84
|
+
assert $:.any? {|p| %r{a-1/lib} =~ p }
|
85
|
+
refute $:.any? {|p| %r{a-2/lib} =~ p }
|
87
86
|
end
|
88
87
|
|
89
88
|
def test_gem_not_adding_bin
|
90
89
|
assert gem('a', '= 1'), "Should load"
|
91
|
-
refute $:.any? {
|
90
|
+
refute $:.any? {|p| %r{a-1/bin} =~ p }
|
91
|
+
end
|
92
|
+
|
93
|
+
def test_gem_failing_inside_require_doesnt_cause_double_exceptions
|
94
|
+
File.write("activate.rb", "gem('a', '= 999')\n")
|
95
|
+
|
96
|
+
require "open3"
|
97
|
+
|
98
|
+
output, _ = Open3.capture2e(
|
99
|
+
{ "GEM_HOME" => Gem.paths.home },
|
100
|
+
*ruby_with_rubygems_in_load_path,
|
101
|
+
"-r",
|
102
|
+
"./activate.rb"
|
103
|
+
)
|
104
|
+
|
105
|
+
load_errors = output.split("\n").select {|line| line.include?("Could not find") }
|
106
|
+
|
107
|
+
assert_equal 1, load_errors.size
|
92
108
|
end
|
93
109
|
|
94
110
|
def test_gem_bundler
|
@@ -96,7 +112,7 @@ class TestKernel < Gem::TestCase
|
|
96
112
|
quick_gem 'bundler', '2.a'
|
97
113
|
|
98
114
|
assert gem('bundler')
|
99
|
-
assert $:.any? {
|
115
|
+
assert $:.any? {|p| %r{bundler-1/lib} =~ p }
|
100
116
|
end
|
101
117
|
|
102
118
|
def test_gem_bundler_missing_bundler_version
|
@@ -117,8 +133,7 @@ class TestKernel < Gem::TestCase
|
|
117
133
|
quick_gem 'bundler', '2.a'
|
118
134
|
|
119
135
|
assert gem('bundler', '>= 0.a')
|
120
|
-
assert $:.any? {
|
136
|
+
assert $:.any? {|p| %r{bundler-1/lib} =~ p }
|
121
137
|
end
|
122
138
|
end
|
123
|
-
|
124
139
|
end
|