rubygems-update 3.1.1 → 3.2.0.rc.2
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 +389 -144
- data/Manifest.txt +37 -73
- data/POLICIES.md +2 -9
- data/README.md +5 -5
- data/Rakefile +47 -82
- data/bin/update_rubygems +2 -2
- data/bundler/CHANGELOG.md +1546 -1414
- 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 +21 -7
- data/bundler/lib/bundler/build_metadata.rb +4 -12
- data/bundler/lib/bundler/cli.rb +54 -20
- data/bundler/lib/bundler/cli/add.rb +1 -1
- 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 -13
- 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 +12 -18
- 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 +89 -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 +2 -0
- data/bundler/lib/bundler/compact_index_client.rb +1 -1
- data/bundler/lib/bundler/compact_index_client/cache.rb +1 -1
- data/bundler/lib/bundler/definition.rb +51 -60
- data/bundler/lib/bundler/dep_proxy.rb +1 -1
- data/bundler/lib/bundler/dependency.rb +0 -9
- data/bundler/lib/bundler/dsl.rb +5 -9
- data/bundler/lib/bundler/endpoint_specification.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 -2
- 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 +1 -1
- data/bundler/lib/bundler/friendly_errors.rb +7 -13
- data/bundler/lib/bundler/gem_helper.rb +33 -19
- data/bundler/lib/bundler/gem_helpers.rb +6 -1
- data/bundler/lib/bundler/gem_version_promoter.rb +2 -2
- data/bundler/lib/bundler/graph.rb +1 -1
- data/bundler/lib/bundler/index.rb +1 -1
- data/bundler/lib/bundler/injector.rb +15 -4
- data/bundler/lib/bundler/inline.rb +2 -2
- data/bundler/lib/bundler/installer.rb +30 -29
- 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 +19 -6
- data/bundler/lib/bundler/lockfile_generator.rb +1 -1
- data/bundler/lib/bundler/lockfile_parser.rb +1 -1
- data/bundler/lib/bundler/mirror.rb +2 -2
- data/bundler/lib/bundler/plugin.rb +30 -5
- 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 +32 -9
- data/bundler/lib/bundler/resolver/spec_group.rb +27 -6
- 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 +31 -54
- data/bundler/lib/bundler/runtime.rb +4 -14
- data/bundler/lib/bundler/settings.rb +49 -45
- data/bundler/lib/bundler/setup.rb +5 -0
- 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 +56 -59
- 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 +1 -1
- data/bundler/lib/bundler/stub_specification.rb +17 -5
- 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 -1
- 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 +2 -0
- data/bundler/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +2 -0
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +8 -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 +1 -1
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +79 -212
- 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/vendored_persistent.rb +0 -7
- 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-add.ronn → bundle-add.1.ronn} +0 -0
- data/bundler/man/bundle-binstubs.1 +5 -3
- data/bundler/man/{bundle-binstubs.ronn → bundle-binstubs.1.ronn} +2 -4
- data/bundler/man/bundle-cache.1 +1 -1
- data/bundler/man/{bundle-cache.ronn → bundle-cache.1.ronn} +0 -0
- data/bundler/man/bundle-check.1 +1 -1
- data/bundler/man/{bundle-check.ronn → bundle-check.1.ronn} +0 -0
- data/bundler/man/bundle-clean.1 +1 -1
- data/bundler/man/{bundle-clean.ronn → bundle-clean.1.ronn} +0 -0
- data/bundler/man/bundle-config.1 +16 -22
- data/bundler/man/{bundle-config.ronn → bundle-config.1.ronn} +19 -22
- data/bundler/man/bundle-doctor.1 +1 -1
- data/bundler/man/{bundle-doctor.ronn → bundle-doctor.1.ronn} +0 -0
- data/bundler/man/bundle-exec.1 +1 -1
- data/bundler/man/{bundle-exec.ronn → bundle-exec.1.ronn} +0 -0
- data/bundler/man/bundle-gem.1 +25 -3
- data/bundler/man/{bundle-gem.ronn → bundle-gem.1.ronn} +30 -7
- data/bundler/man/bundle-info.1 +1 -1
- data/bundler/man/{bundle-info.ronn → bundle-info.1.ronn} +0 -0
- data/bundler/man/bundle-init.1 +1 -1
- data/bundler/man/{bundle-init.ronn → bundle-init.1.ronn} +0 -0
- data/bundler/man/bundle-inject.1 +1 -1
- data/bundler/man/{bundle-inject.ronn → bundle-inject.1.ronn} +0 -0
- data/bundler/man/bundle-install.1 +29 -2
- data/bundler/man/{bundle-install.ronn → bundle-install.1.ronn} +24 -2
- data/bundler/man/bundle-list.1 +7 -7
- data/bundler/man/{bundle-list.ronn → bundle-list.1.ronn} +6 -6
- data/bundler/man/bundle-lock.1 +1 -1
- data/bundler/man/{bundle-lock.ronn → bundle-lock.1.ronn} +0 -0
- data/bundler/man/bundle-open.1 +1 -1
- data/bundler/man/{bundle-open.ronn → bundle-open.1.ronn} +0 -0
- data/bundler/man/bundle-outdated.1 +1 -1
- data/bundler/man/{bundle-outdated.ronn → bundle-outdated.1.ronn} +0 -0
- data/bundler/man/bundle-platform.1 +1 -1
- data/bundler/man/{bundle-platform.ronn → bundle-platform.1.ronn} +0 -0
- data/bundler/man/bundle-pristine.1 +1 -1
- data/bundler/man/{bundle-pristine.ronn → bundle-pristine.1.ronn} +0 -0
- data/bundler/man/bundle-remove.1 +1 -1
- data/bundler/man/{bundle-remove.ronn → bundle-remove.1.ronn} +0 -0
- data/bundler/man/bundle-show.1 +1 -1
- data/bundler/man/{bundle-show.ronn → bundle-show.1.ronn} +0 -0
- data/bundler/man/bundle-update.1 +1 -1
- data/bundler/man/{bundle-update.ronn → bundle-update.1.ronn} +0 -0
- data/bundler/man/bundle-viz.1 +1 -1
- data/bundler/man/{bundle-viz.ronn → bundle-viz.1.ronn} +0 -0
- data/bundler/man/bundle.1 +1 -1
- data/bundler/man/{bundle.ronn → bundle.1.ronn} +0 -0
- data/bundler/man/gemfile.5 +4 -4
- data/bundler/man/gemfile.5.ronn +4 -4
- data/lib/rubygems.rb +133 -186
- 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 +4 -5
- data/lib/rubygems/commands/build_command.rb +4 -1
- data/lib/rubygems/commands/cert_command.rb +1 -9
- 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 +2 -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 +0 -2
- data/lib/rubygems/commands/pristine_command.rb +10 -4
- data/lib/rubygems/commands/push_command.rb +4 -44
- data/lib/rubygems/commands/query_command.rb +6 -353
- 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 +0 -2
- data/lib/rubygems/commands/setup_command.rb +156 -48
- 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 +3 -5
- data/lib/rubygems/commands/specification_command.rb +2 -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 +0 -2
- data/lib/rubygems/config_file.rb +11 -4
- data/lib/rubygems/core_ext/kernel_require.rb +26 -36
- data/lib/rubygems/core_ext/kernel_warn.rb +6 -6
- data/lib/rubygems/defaults.rb +99 -5
- data/lib/rubygems/dependency.rb +2 -7
- data/lib/rubygems/dependency_installer.rb +1 -75
- 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 +4 -4
- data/lib/rubygems/ext/cmake_builder.rb +1 -3
- data/lib/rubygems/ext/configure_builder.rb +0 -2
- data/lib/rubygems/ext/ext_conf_builder.rb +6 -9
- data/lib/rubygems/ext/rake_builder.rb +0 -2
- data/lib/rubygems/gem_runner.rb +3 -10
- data/lib/rubygems/gemcutter_utilities.rb +1 -1
- data/lib/rubygems/indexer.rb +1 -21
- data/lib/rubygems/install_update_options.rb +5 -5
- data/lib/rubygems/installer.rb +47 -48
- data/lib/rubygems/installer_test_case.rb +18 -5
- 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 +2 -6
- data/lib/rubygems/openssl.rb +7 -0
- data/lib/rubygems/package.rb +11 -23
- 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 +3 -5
- 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 +1 -3
- 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 +3 -5
- data/lib/rubygems/psych_tree.rb +0 -2
- data/lib/rubygems/query_utils.rb +362 -0
- data/lib/rubygems/rdoc.rb +0 -12
- data/lib/rubygems/remote_fetcher.rb +9 -25
- data/lib/rubygems/request.rb +1 -9
- 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 +5 -7
- data/lib/rubygems/request_set/gem_dependency_api.rb +2 -4
- 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 +7 -10
- data/lib/rubygems/resolver/activation_request.rb +0 -2
- data/lib/rubygems/resolver/api_set.rb +4 -6
- data/lib/rubygems/resolver/api_specification.rb +16 -7
- data/lib/rubygems/resolver/best_set.rb +0 -2
- data/lib/rubygems/resolver/composed_set.rb +3 -5
- data/lib/rubygems/resolver/conflict.rb +1 -3
- data/lib/rubygems/resolver/current_set.rb +0 -2
- data/lib/rubygems/resolver/dependency_request.rb +0 -2
- 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 +0 -2
- data/lib/rubygems/resolver/installed_specification.rb +0 -2
- data/lib/rubygems/resolver/installer_set.rb +3 -5
- data/lib/rubygems/resolver/local_specification.rb +0 -2
- data/lib/rubygems/resolver/lock_set.rb +1 -3
- data/lib/rubygems/resolver/lock_specification.rb +0 -2
- 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 +0 -2
- data/lib/rubygems/resolver/specification.rb +0 -2
- 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 +1 -7
- data/lib/rubygems/safe_yaml.rb +4 -4
- data/lib/rubygems/security.rb +26 -32
- data/lib/rubygems/security/policy.rb +3 -7
- data/lib/rubygems/security/signer.rb +4 -6
- data/lib/rubygems/security/trust_dir.rb +1 -3
- data/lib/rubygems/server.rb +9 -11
- data/lib/rubygems/source.rb +4 -4
- 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 +6 -7
- data/lib/rubygems/spec_fetcher.rb +18 -17
- data/lib/rubygems/specification.rb +107 -120
- data/lib/rubygems/specification_policy.rb +88 -30
- data/lib/rubygems/stub_specification.rb +0 -4
- data/lib/rubygems/syck_hack.rb +0 -2
- data/lib/rubygems/test_case.rb +122 -92
- data/lib/rubygems/test_utilities.rb +6 -14
- data/lib/rubygems/uninstaller.rb +35 -16
- data/lib/rubygems/uri_formatter.rb +0 -2
- 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/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 +38 -45
- data/test/rubygems/test_config.rb +0 -2
- data/test/rubygems/test_deprecate.rb +40 -7
- data/test/rubygems/test_gem.rb +150 -103
- 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 +53 -10
- data/test/rubygems/test_gem_commands_cert_command.rb +2 -4
- data/test/rubygems/test_gem_commands_check_command.rb +0 -2
- data/test/rubygems/test_gem_commands_cleanup_command.rb +13 -4
- data/test/rubygems/test_gem_commands_contents_command.rb +48 -17
- 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 +0 -2
- data/test/rubygems/test_gem_commands_info_command.rb +6 -8
- data/test/rubygems/test_gem_commands_install_command.rb +31 -33
- 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 +11 -5
- data/test/rubygems/test_gem_commands_pristine_command.rb +41 -10
- data/test/rubygems/test_gem_commands_push_command.rb +7 -4
- data/test/rubygems/test_gem_commands_query_command.rb +9 -9
- 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 +210 -118
- data/test/rubygems/test_gem_commands_signin_command.rb +6 -6
- data/test/rubygems/test_gem_commands_signout_command.rb +0 -7
- data/test/rubygems/test_gem_commands_sources_command.rb +39 -3
- data/test/rubygems/test_gem_commands_specification_command.rb +18 -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 +14 -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 +54 -191
- data/test/rubygems/test_gem_dependency_list.rb +8 -10
- 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 +16 -33
- data/test/rubygems/test_gem_ext_cmake_builder.rb +13 -14
- data/test/rubygems/test_gem_ext_configure_builder.rb +1 -11
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +0 -3
- data/test/rubygems/test_gem_ext_rake_builder.rb +9 -11
- data/test/rubygems/test_gem_gem_runner.rb +43 -1
- data/test/rubygems/test_gem_gemcutter_utilities.rb +5 -2
- 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 +0 -2
- data/test/rubygems/test_gem_installer.rb +192 -71
- 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 +33 -31
- data/test/rubygems/test_gem_package_old.rb +0 -2
- 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 +8 -5
- 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 +0 -2
- data/test/rubygems/test_gem_rdoc.rb +0 -2
- data/test/rubygems/test_gem_remote_fetcher.rb +156 -195
- data/test/rubygems/test_gem_request.rb +11 -15
- 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 +0 -2
- 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 +3 -5
- data/test/rubygems/test_gem_resolver_api_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_best_set.rb +2 -4
- data/test/rubygems/test_gem_resolver_composed_set.rb +0 -2
- data/test/rubygems/test_gem_resolver_conflict.rb +0 -2
- 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 +0 -2
- data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -2
- data/test/rubygems/test_gem_security.rb +20 -22
- data/test/rubygems/test_gem_security_policy.rb +5 -10
- data/test/rubygems/test_gem_security_signer.rb +8 -10
- data/test/rubygems/test_gem_security_trust_dir.rb +2 -4
- 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 +12 -16
- 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_vendor.rb +7 -9
- data/test/rubygems/test_gem_spec_fetcher.rb +11 -4
- data/test/rubygems/test_gem_specification.rb +179 -129
- 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 +133 -11
- 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 +0 -2
- data/test/rubygems/test_gem_version.rb +1 -3
- data/test/rubygems/test_gem_version_option.rb +0 -2
- 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 +241 -47
- metadata +59 -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/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/bundler/man/index.txt +0 -25
- data/lib/rubygems/source_local.rb +0 -7
- data/lib/rubygems/source_specific_file.rb +0 -6
- data/lib/ubygems.rb +0 -14
- data/tmp/.keep +0 -0
- data/util/CL2notes +0 -55
- data/util/bisect +0 -10
- data/util/ci.sh +0 -62
- data/util/cops/deprecations.rb +0 -52
- data/util/create_certs.rb +0 -171
- data/util/create_certs.sh +0 -27
- data/util/create_encrypted_key.rb +0 -16
- data/util/generate_spdx_license_list.rb +0 -63
- data/util/patch_with_prs.rb +0 -77
- data/util/rubocop +0 -8
- data/util/update_bundled_ca_certificates.rb +0 -139
- data/util/update_changelog.rb +0 -67
@@ -2,12 +2,13 @@
|
|
2
2
|
require 'rubygems/test_case'
|
3
3
|
|
4
4
|
class TestGemGemRunner < Gem::TestCase
|
5
|
-
|
6
5
|
def setup
|
7
6
|
super
|
8
7
|
|
9
8
|
require 'rubygems/command'
|
10
9
|
@orig_args = Gem::Command.build_args
|
10
|
+
@orig_specific_extra_args = Gem::Command.specific_extra_args_hash.dup
|
11
|
+
@orig_extra_args = Gem::Command.extra_args.dup
|
11
12
|
|
12
13
|
require 'rubygems/gem_runner'
|
13
14
|
@runner = Gem::GemRunner.new
|
@@ -17,6 +18,8 @@ class TestGemGemRunner < Gem::TestCase
|
|
17
18
|
super
|
18
19
|
|
19
20
|
Gem::Command.build_args = @orig_args
|
21
|
+
Gem::Command.specific_extra_args_hash = @orig_specific_extra_args
|
22
|
+
Gem::Command.extra_args = @orig_extra_args
|
20
23
|
end
|
21
24
|
|
22
25
|
def test_do_configuration
|
@@ -67,4 +70,43 @@ class TestGemGemRunner < Gem::TestCase
|
|
67
70
|
assert_equal %w[--foo], args
|
68
71
|
end
|
69
72
|
|
73
|
+
def test_query_is_deprecated
|
74
|
+
args = %w[query]
|
75
|
+
|
76
|
+
use_ui @ui do
|
77
|
+
assert_nil @runner.run(args)
|
78
|
+
end
|
79
|
+
|
80
|
+
assert_match(/WARNING: query command is deprecated. It will be removed in Rubygems [0-9]+/, @ui.error)
|
81
|
+
end
|
82
|
+
|
83
|
+
def test_info_succeeds
|
84
|
+
args = %w[info]
|
85
|
+
|
86
|
+
use_ui @ui do
|
87
|
+
assert_nil @runner.run(args)
|
88
|
+
end
|
89
|
+
|
90
|
+
assert_empty @ui.error
|
91
|
+
end
|
92
|
+
|
93
|
+
def test_list_succeeds
|
94
|
+
args = %w[list]
|
95
|
+
|
96
|
+
use_ui @ui do
|
97
|
+
assert_nil @runner.run(args)
|
98
|
+
end
|
99
|
+
|
100
|
+
assert_empty @ui.error
|
101
|
+
end
|
102
|
+
|
103
|
+
def test_search_succeeds
|
104
|
+
args = %w[search]
|
105
|
+
|
106
|
+
use_ui @ui do
|
107
|
+
assert_nil @runner.run(args)
|
108
|
+
end
|
109
|
+
|
110
|
+
assert_empty @ui.error
|
111
|
+
end
|
70
112
|
end
|
@@ -5,9 +5,11 @@ require 'rubygems/command'
|
|
5
5
|
require 'rubygems/gemcutter_utilities'
|
6
6
|
|
7
7
|
class TestGemGemcutterUtilities < Gem::TestCase
|
8
|
-
|
9
8
|
def setup
|
10
9
|
super
|
10
|
+
|
11
|
+
credential_setup
|
12
|
+
|
11
13
|
# below needed for random testing, class property
|
12
14
|
Gem.configuration.disable_default_gem_server = nil
|
13
15
|
|
@@ -22,6 +24,8 @@ class TestGemGemcutterUtilities < Gem::TestCase
|
|
22
24
|
ENV['RUBYGEMS_HOST'] = nil
|
23
25
|
Gem.configuration.rubygems_api_key = nil
|
24
26
|
|
27
|
+
credential_teardown
|
28
|
+
|
25
29
|
super
|
26
30
|
end
|
27
31
|
|
@@ -257,5 +261,4 @@ class TestGemGemcutterUtilities < Gem::TestCase
|
|
257
261
|
@cmd.verify_api_key :missing
|
258
262
|
end
|
259
263
|
end
|
260
|
-
|
261
264
|
end
|
@@ -2,7 +2,6 @@
|
|
2
2
|
require 'rubygems/test_case'
|
3
3
|
|
4
4
|
class TestGemImpossibleDependenciesError < Gem::TestCase
|
5
|
-
|
6
5
|
def test_message_conflict
|
7
6
|
request = dependency_request dep('net-ssh', '>= 2.0.13'), 'rye', '0.9.8'
|
8
7
|
|
@@ -57,5 +56,4 @@ rye-0.9.8 requires net-ssh (>= 2.0.13) but it conflicted:
|
|
57
56
|
|
58
57
|
assert_equal expected, error.message
|
59
58
|
end
|
60
|
-
|
61
59
|
end
|
@@ -2,12 +2,7 @@
|
|
2
2
|
require 'rubygems/test_case'
|
3
3
|
require 'rubygems/indexer'
|
4
4
|
|
5
|
-
unless defined?(Builder::XChar)
|
6
|
-
warn "Gem::Indexer tests are being skipped. Install builder gem."
|
7
|
-
end
|
8
|
-
|
9
5
|
class TestGemIndexer < Gem::TestCase
|
10
|
-
|
11
6
|
def setup
|
12
7
|
super
|
13
8
|
|
@@ -189,15 +184,15 @@ class TestGemIndexer < Gem::TestCase
|
|
189
184
|
@indexer.generate_index
|
190
185
|
end
|
191
186
|
|
192
|
-
assert_match %r
|
193
|
-
assert_match %r
|
187
|
+
assert_match %r{^\.\.\.\.\.\.\.\.\.\.\.\.$}, @ui.output
|
188
|
+
assert_match %r{^Generating Marshal quick index gemspecs for 12 gems$},
|
194
189
|
@ui.output
|
195
|
-
assert_match %r
|
196
|
-
assert_match %r
|
197
|
-
assert_match %r
|
198
|
-
assert_match %r
|
199
|
-
assert_match %r
|
200
|
-
assert_match %r
|
190
|
+
assert_match %r{^Complete$}, @ui.output
|
191
|
+
assert_match %r{^Generating specs index$}, @ui.output
|
192
|
+
assert_match %r{^Generating latest specs index$}, @ui.output
|
193
|
+
assert_match %r{^Generating prerelease specs index$}, @ui.output
|
194
|
+
assert_match %r{^Complete$}, @ui.output
|
195
|
+
assert_match %r{^Compressing indices$}, @ui.output
|
201
196
|
|
202
197
|
assert_equal '', @ui.error
|
203
198
|
end
|
@@ -359,5 +354,4 @@ class TestGemIndexer < Gem::TestCase
|
|
359
354
|
file = File.join dir, name
|
360
355
|
refute File.exist?(file), "#{file} exists"
|
361
356
|
end
|
362
|
-
|
363
|
-
end if defined?(Builder::XChar)
|
357
|
+
end
|
@@ -5,7 +5,6 @@ require 'rubygems/command'
|
|
5
5
|
require 'rubygems/dependency_installer'
|
6
6
|
|
7
7
|
class TestGemInstallUpdateOptions < Gem::InstallerTestCase
|
8
|
-
|
9
8
|
def setup
|
10
9
|
super
|
11
10
|
|
@@ -193,5 +192,4 @@ class TestGemInstallUpdateOptions < Gem::InstallerTestCase
|
|
193
192
|
|
194
193
|
assert_equal true, @cmd.options[:post_install_message]
|
195
194
|
end
|
196
|
-
|
197
195
|
end
|
@@ -2,25 +2,6 @@
|
|
2
2
|
require 'rubygems/installer_test_case'
|
3
3
|
|
4
4
|
class TestGemInstaller < Gem::InstallerTestCase
|
5
|
-
|
6
|
-
@@symlink_supported = nil
|
7
|
-
|
8
|
-
# Our CI does not currently hit the "symlink not supported" case, but this is
|
9
|
-
# needed for Windows developers without symlink support enabled (the default
|
10
|
-
# for non admin) to be able to run the tests successfully
|
11
|
-
def symlink_supported?
|
12
|
-
if @@symlink_supported.nil?
|
13
|
-
begin
|
14
|
-
File.symlink("", "")
|
15
|
-
rescue Errno::ENOENT, Errno::EEXIST
|
16
|
-
@@symlink_supported = true
|
17
|
-
rescue NotImplementedError, SystemCallError
|
18
|
-
@@symlink_supported = false
|
19
|
-
end
|
20
|
-
end
|
21
|
-
@@symlink_supported
|
22
|
-
end
|
23
|
-
|
24
5
|
def setup
|
25
6
|
super
|
26
7
|
common_installer_setup
|
@@ -98,38 +79,25 @@ end
|
|
98
79
|
assert_path_exists installed_exec
|
99
80
|
|
100
81
|
wrapper = File.read installed_exec
|
101
|
-
assert_match %r
|
82
|
+
assert_match %r{generated by RubyGems}, wrapper
|
102
83
|
end
|
103
84
|
|
104
85
|
def test_check_executable_overwrite_default_bin_dir
|
105
86
|
installer = setup_base_installer
|
106
87
|
|
107
|
-
|
108
|
-
|
109
|
-
Object.send :remove_const, :RUBY_FRAMEWORK_VERSION
|
110
|
-
end
|
111
|
-
orig_bindir = RbConfig::CONFIG['bindir']
|
112
|
-
RbConfig::CONFIG['bindir'] = Gem.bindir
|
88
|
+
bindir(Gem.bindir) do
|
89
|
+
util_conflict_executable false
|
113
90
|
|
114
|
-
|
91
|
+
ui = Gem::MockGemUi.new "n\n"
|
92
|
+
use_ui ui do
|
93
|
+
e = assert_raises Gem::InstallError do
|
94
|
+
installer.generate_bin
|
95
|
+
end
|
115
96
|
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
installer.generate_bin
|
97
|
+
conflicted = File.join @gemhome, 'bin', 'executable'
|
98
|
+
assert_match %r{\A"executable" from a conflicts with (?:#{Regexp.quote(conflicted)}|installed executable from conflict)\z},
|
99
|
+
e.message
|
120
100
|
end
|
121
|
-
|
122
|
-
conflicted = File.join @gemhome, 'bin', 'executable'
|
123
|
-
assert_match %r%\A"executable" from a conflicts with (?:#{Regexp.quote(conflicted)}|installed executable from conflict)\z%,
|
124
|
-
e.message
|
125
|
-
end
|
126
|
-
ensure
|
127
|
-
Object.const_set :RUBY_FRAMEWORK_VERSION, orig_RUBY_FRAMEWORK_VERSION if
|
128
|
-
orig_RUBY_FRAMEWORK_VERSION
|
129
|
-
if orig_bindir
|
130
|
-
RbConfig::CONFIG['bindir'] = orig_bindir
|
131
|
-
else
|
132
|
-
RbConfig::CONFIG.delete 'bindir'
|
133
101
|
end
|
134
102
|
end
|
135
103
|
|
@@ -169,7 +137,7 @@ gem 'other', version
|
|
169
137
|
assert_path_exists installed_exec
|
170
138
|
|
171
139
|
wrapper = File.read installed_exec
|
172
|
-
assert_match %r
|
140
|
+
assert_match %r{generated by RubyGems}, wrapper
|
173
141
|
ensure
|
174
142
|
Gem::Installer.exec_format = nil
|
175
143
|
end
|
@@ -204,7 +172,7 @@ gem 'other', version
|
|
204
172
|
assert_path_exists installed_exec
|
205
173
|
|
206
174
|
wrapper = File.read installed_exec
|
207
|
-
assert_match %r
|
175
|
+
assert_match %r{generated by RubyGems}, wrapper
|
208
176
|
end
|
209
177
|
|
210
178
|
def test_check_executable_overwrite_other_non_gem
|
@@ -219,7 +187,7 @@ gem 'other', version
|
|
219
187
|
assert_path_exists installed_exec
|
220
188
|
|
221
189
|
wrapper = File.read installed_exec
|
222
|
-
assert_match %r
|
190
|
+
assert_match %r{generated by RubyGems}, wrapper
|
223
191
|
end unless Gem.win_platform?
|
224
192
|
|
225
193
|
def test_check_that_user_bin_dir_is_in_path
|
@@ -228,7 +196,7 @@ gem 'other', version
|
|
228
196
|
bin_dir = installer.bin_dir
|
229
197
|
|
230
198
|
if Gem.win_platform?
|
231
|
-
bin_dir = bin_dir.downcase
|
199
|
+
bin_dir = bin_dir.downcase
|
232
200
|
end
|
233
201
|
|
234
202
|
orig_PATH, ENV['PATH'] =
|
@@ -239,6 +207,16 @@ gem 'other', version
|
|
239
207
|
end
|
240
208
|
|
241
209
|
assert_empty @ui.error
|
210
|
+
|
211
|
+
return unless win_platform?
|
212
|
+
|
213
|
+
ENV['PATH'] = [orig_PATH, bin_dir.tr(File::SEPARATOR, File::ALT_SEPARATOR)].join(File::PATH_SEPARATOR)
|
214
|
+
|
215
|
+
use_ui @ui do
|
216
|
+
installer.check_that_user_bin_dir_is_in_path
|
217
|
+
end
|
218
|
+
|
219
|
+
assert_empty @ui.error
|
242
220
|
ensure
|
243
221
|
ENV['PATH'] = orig_PATH
|
244
222
|
end
|
@@ -271,7 +249,7 @@ gem 'other', version
|
|
271
249
|
expected = installer.bin_dir
|
272
250
|
|
273
251
|
if Gem.win_platform?
|
274
|
-
expected = expected.downcase
|
252
|
+
expected = expected.downcase
|
275
253
|
end
|
276
254
|
|
277
255
|
assert_match expected, @ui.error
|
@@ -355,7 +333,7 @@ gem 'other', version
|
|
355
333
|
assert_equal mask, File.stat(installed_exec).mode unless win_platform?
|
356
334
|
|
357
335
|
wrapper = File.read installed_exec
|
358
|
-
assert_match %r
|
336
|
+
assert_match %r{generated by RubyGems}, wrapper
|
359
337
|
end
|
360
338
|
|
361
339
|
def test_generate_bin_bindir_with_user_install_warning
|
@@ -398,7 +376,7 @@ gem 'other', version
|
|
398
376
|
assert_equal mask, File.stat(installed_exec).mode unless win_platform?
|
399
377
|
|
400
378
|
wrapper = File.read installed_exec
|
401
|
-
assert_match %r
|
379
|
+
assert_match %r{generated by RubyGems}, wrapper
|
402
380
|
end
|
403
381
|
|
404
382
|
def test_generate_bin_script_format
|
@@ -457,7 +435,7 @@ gem 'other', version
|
|
457
435
|
assert_equal mask, File.stat(installed_exec).mode unless win_platform?
|
458
436
|
|
459
437
|
wrapper = File.read installed_exec
|
460
|
-
assert_match %r
|
438
|
+
assert_match %r{generated by RubyGems}, wrapper
|
461
439
|
end
|
462
440
|
|
463
441
|
def test_generate_bin_script_no_execs
|
@@ -514,7 +492,7 @@ gem 'other', version
|
|
514
492
|
assert_equal mask, File.stat(installed_exec).mode unless win_platform?
|
515
493
|
|
516
494
|
wrapper = File.read installed_exec
|
517
|
-
assert_match %r
|
495
|
+
assert_match %r{generated by RubyGems}, wrapper
|
518
496
|
# HACK some gems don't have #! in their executables, restore 2008/06
|
519
497
|
#assert_no_match %r|generated by RubyGems|, wrapper
|
520
498
|
end
|
@@ -540,9 +518,9 @@ gem 'other', version
|
|
540
518
|
assert_path_exists installed_exec
|
541
519
|
assert_equal mask, File.stat(installed_exec).mode unless win_platform?
|
542
520
|
|
543
|
-
assert_match %r
|
521
|
+
assert_match %r{generated by RubyGems}, File.read(installed_exec)
|
544
522
|
|
545
|
-
refute_match %r
|
523
|
+
refute_match %r{generated by RubyGems}, File.read(real_exec),
|
546
524
|
'real executable overwritten'
|
547
525
|
end
|
548
526
|
|
@@ -752,11 +730,127 @@ gem 'other', version
|
|
752
730
|
installer.generate_bin
|
753
731
|
|
754
732
|
default_shebang = Gem.ruby
|
755
|
-
shebang_line = open("#{@gemhome}/bin/executable") {
|
733
|
+
shebang_line = open("#{@gemhome}/bin/executable") {|f| f.readlines.first }
|
756
734
|
assert_match(/\A#!/, shebang_line)
|
757
735
|
assert_match(/#{default_shebang}/, shebang_line)
|
758
736
|
end
|
759
737
|
|
738
|
+
def test_generate_plugins
|
739
|
+
installer = util_setup_installer do |spec|
|
740
|
+
write_file File.join(@tempdir, 'lib', 'rubygems_plugin.rb') do |io|
|
741
|
+
io.write "puts __FILE__"
|
742
|
+
end
|
743
|
+
|
744
|
+
spec.files += %w[lib/rubygems_plugin.rb]
|
745
|
+
end
|
746
|
+
|
747
|
+
build_rake_in do
|
748
|
+
installer.install
|
749
|
+
end
|
750
|
+
|
751
|
+
plugin_path = File.join Gem.plugindir, 'a_plugin.rb'
|
752
|
+
|
753
|
+
FileUtils.rm plugin_path
|
754
|
+
|
755
|
+
installer.generate_plugins
|
756
|
+
|
757
|
+
assert File.exist?(plugin_path), 'plugin not written'
|
758
|
+
end
|
759
|
+
|
760
|
+
def test_generate_plugins_with_install_dir
|
761
|
+
spec = quick_gem 'a' do |s|
|
762
|
+
write_file File.join(@tempdir, 'lib', 'rubygems_plugin.rb') do |io|
|
763
|
+
io.write "puts __FILE__"
|
764
|
+
end
|
765
|
+
|
766
|
+
s.files += %w[lib/rubygems_plugin.rb]
|
767
|
+
end
|
768
|
+
|
769
|
+
util_build_gem spec
|
770
|
+
|
771
|
+
plugin_path = File.join "#{@gemhome}2", 'plugins', 'a_plugin.rb'
|
772
|
+
installer = util_installer spec, "#{@gemhome}2"
|
773
|
+
|
774
|
+
assert_equal spec, installer.install
|
775
|
+
|
776
|
+
assert File.exist?(plugin_path), 'plugin not written to install_dir'
|
777
|
+
end
|
778
|
+
|
779
|
+
def test_generate_plugins_with_user_install
|
780
|
+
spec = quick_gem 'a' do |s|
|
781
|
+
write_file File.join(@tempdir, 'lib', 'rubygems_plugin.rb') do |io|
|
782
|
+
io.write "puts __FILE__"
|
783
|
+
end
|
784
|
+
|
785
|
+
s.files += %w[lib/rubygems_plugin.rb]
|
786
|
+
end
|
787
|
+
|
788
|
+
util_build_gem spec
|
789
|
+
|
790
|
+
File.chmod(0555, Gem.plugindir)
|
791
|
+
system_path = File.join(Gem.plugindir, 'a_plugin.rb')
|
792
|
+
user_path = File.join(Gem.plugindir(Gem.user_dir), 'a_plugin.rb')
|
793
|
+
installer = util_installer spec, Gem.dir, :user
|
794
|
+
|
795
|
+
assert_equal spec, installer.install
|
796
|
+
|
797
|
+
assert !File.exist?(system_path), 'plugin not written to user plugins_dir'
|
798
|
+
assert File.exist?(user_path), 'plugin not written to user plugins_dir'
|
799
|
+
end
|
800
|
+
|
801
|
+
def test_keeps_plugins_up_to_date
|
802
|
+
# NOTE: version a-2 is already installed by setup hooks
|
803
|
+
|
804
|
+
write_file File.join(@tempdir, 'lib', 'rubygems_plugin.rb') do |io|
|
805
|
+
io.write "puts __FILE__"
|
806
|
+
end
|
807
|
+
|
808
|
+
build_rake_in do
|
809
|
+
util_setup_installer do |spec|
|
810
|
+
spec.version = '1'
|
811
|
+
spec.files += %w[lib/rubygems_plugin.rb]
|
812
|
+
end.install
|
813
|
+
|
814
|
+
plugin_path = File.join Gem.plugindir, 'a_plugin.rb'
|
815
|
+
refute File.exist?(plugin_path), 'old version installed while newer version without plugin also installed, but plugin written'
|
816
|
+
|
817
|
+
util_setup_installer do |spec|
|
818
|
+
spec.version = '2'
|
819
|
+
spec.files += %w[lib/rubygems_plugin.rb]
|
820
|
+
end.install
|
821
|
+
|
822
|
+
plugin_path = File.join Gem.plugindir, 'a_plugin.rb'
|
823
|
+
assert File.exist?(plugin_path), 'latest version reinstalled, but plugin not written'
|
824
|
+
assert_match %r{\Arequire.*a-2/lib/rubygems_plugin\.rb}, File.read(plugin_path), 'written plugin has incorrect content'
|
825
|
+
|
826
|
+
util_setup_installer do |spec|
|
827
|
+
spec.version = '3'
|
828
|
+
spec.files += %w[lib/rubygems_plugin.rb]
|
829
|
+
end.install
|
830
|
+
|
831
|
+
plugin_path = File.join Gem.plugindir, 'a_plugin.rb'
|
832
|
+
assert File.exist?(plugin_path), 'latest version installed, but plugin removed'
|
833
|
+
assert_match %r{\Arequire.*a-3/lib/rubygems_plugin\.rb}, File.read(plugin_path), 'written plugin has incorrect content'
|
834
|
+
|
835
|
+
util_setup_installer do |spec|
|
836
|
+
spec.version = '4'
|
837
|
+
end.install
|
838
|
+
|
839
|
+
refute File.exist?(plugin_path), 'new version installed without a plugin while older version with a plugin installed, but plugin not removed'
|
840
|
+
end
|
841
|
+
end
|
842
|
+
|
843
|
+
def test_generates_plugins_dir_under_install_dir_if_not_there
|
844
|
+
Gem.use_paths "#{@gemhome}2" # Set GEM_HOME to an uninitialized repo
|
845
|
+
|
846
|
+
@spec = util_spec 'a'
|
847
|
+
|
848
|
+
path = Gem::Package.build @spec
|
849
|
+
|
850
|
+
installer = Gem::Installer.at path, :install_dir => "#{@gemhome}3"
|
851
|
+
assert_equal @spec, installer.install
|
852
|
+
end
|
853
|
+
|
760
854
|
def test_initialize
|
761
855
|
spec = util_spec 'a' do |s|
|
762
856
|
s.platform = Gem::Platform.new 'mswin32'
|
@@ -953,7 +1047,13 @@ gem 'other', version
|
|
953
1047
|
end
|
954
1048
|
|
955
1049
|
def test_install_creates_binstub_that_prefers_user_installed_gem_to_default
|
956
|
-
|
1050
|
+
default_spec = new_default_spec('default', '2', nil, 'exe/executable')
|
1051
|
+
default_spec.executables = 'executable'
|
1052
|
+
install_default_gems default_spec
|
1053
|
+
|
1054
|
+
exe = File.join @gemhome, 'bin', 'executable'
|
1055
|
+
|
1056
|
+
assert_path_exists exe, "default gem's executable not installed"
|
957
1057
|
|
958
1058
|
installer = util_setup_installer do |spec|
|
959
1059
|
spec.name = 'default'
|
@@ -971,8 +1071,6 @@ gem 'other', version
|
|
971
1071
|
end
|
972
1072
|
end
|
973
1073
|
|
974
|
-
exe = File.join @gemhome, 'bin', 'executable'
|
975
|
-
|
976
1074
|
e = assert_raises RuntimeError do
|
977
1075
|
instance_eval File.read(exe)
|
978
1076
|
end
|
@@ -1166,7 +1264,7 @@ gem 'other', version
|
|
1166
1264
|
installer.install
|
1167
1265
|
end
|
1168
1266
|
|
1169
|
-
assert_match %r
|
1267
|
+
assert_match %r{I am a shiny gem!}, @ui.output
|
1170
1268
|
end
|
1171
1269
|
|
1172
1270
|
def test_install_with_skipped_message
|
@@ -1180,7 +1278,7 @@ gem 'other', version
|
|
1180
1278
|
installer.install
|
1181
1279
|
end
|
1182
1280
|
|
1183
|
-
refute_match %r
|
1281
|
+
refute_match %r{I am a shiny gem!}, @ui.output
|
1184
1282
|
end
|
1185
1283
|
|
1186
1284
|
def test_install_extension_dir
|
@@ -1316,7 +1414,7 @@ gem 'other', version
|
|
1316
1414
|
installer.install
|
1317
1415
|
end
|
1318
1416
|
|
1319
|
-
expected = File.join @spec.full_require_paths.find {
|
1417
|
+
expected = File.join @spec.full_require_paths.find {|path|
|
1320
1418
|
File.exist? File.join path, 'b.rb'
|
1321
1419
|
}, 'b.rb'
|
1322
1420
|
assert_equal expected, @spec.matches_for_glob('b.rb').first
|
@@ -1384,7 +1482,7 @@ gem 'other', version
|
|
1384
1482
|
end
|
1385
1483
|
|
1386
1484
|
# empty depend file for no auto dependencies
|
1387
|
-
@spec.files += %W
|
1485
|
+
@spec.files += %W[depend #{@spec.name}.c].each do |file|
|
1388
1486
|
write_file File.join(@tempdir, file)
|
1389
1487
|
end
|
1390
1488
|
|
@@ -1739,9 +1837,9 @@ gem 'other', version
|
|
1739
1837
|
|
1740
1838
|
shebang = installer.shebang 'executable'
|
1741
1839
|
|
1742
|
-
|
1840
|
+
bin_env = get_bin_env
|
1743
1841
|
|
1744
|
-
assert_equal("#!#{
|
1842
|
+
assert_equal("#!#{bin_env} #{RbConfig::CONFIG['ruby_install_name']}",
|
1745
1843
|
shebang)
|
1746
1844
|
end
|
1747
1845
|
|
@@ -1820,10 +1918,18 @@ gem 'other', version
|
|
1820
1918
|
assert_equal "#!test", shebang
|
1821
1919
|
end
|
1822
1920
|
|
1921
|
+
def get_bin_env
|
1922
|
+
if win_platform?
|
1923
|
+
""
|
1924
|
+
else
|
1925
|
+
%w[/usr/bin/env /bin/env].find {|f| File.executable?(f) }
|
1926
|
+
end
|
1927
|
+
end
|
1928
|
+
|
1823
1929
|
def test_shebang_custom_with_expands
|
1824
1930
|
installer = setup_base_installer
|
1825
1931
|
|
1826
|
-
bin_env =
|
1932
|
+
bin_env = get_bin_env
|
1827
1933
|
conf = Gem::ConfigFile.new []
|
1828
1934
|
conf[:custom_shebang] = '1 $env 2 $ruby 3 $exec 4 $name'
|
1829
1935
|
|
@@ -1839,7 +1945,7 @@ gem 'other', version
|
|
1839
1945
|
def test_shebang_custom_with_expands_and_arguments
|
1840
1946
|
installer = setup_base_installer
|
1841
1947
|
|
1842
|
-
bin_env =
|
1948
|
+
bin_env = get_bin_env
|
1843
1949
|
conf = Gem::ConfigFile.new []
|
1844
1950
|
conf[:custom_shebang] = '1 $env 2 $ruby 3 $exec'
|
1845
1951
|
|
@@ -1964,7 +2070,7 @@ gem 'other', version
|
|
1964
2070
|
def test_dir
|
1965
2071
|
installer = setup_base_installer
|
1966
2072
|
|
1967
|
-
assert_match %r
|
2073
|
+
assert_match %r{/gemhome/gems/a-2$}, installer.dir
|
1968
2074
|
end
|
1969
2075
|
|
1970
2076
|
def test_default_gem_loaded_from
|
@@ -2004,7 +2110,13 @@ gem 'other', version
|
|
2004
2110
|
assert_path_exists installed_exec
|
2005
2111
|
|
2006
2112
|
wrapper = File.read installed_exec
|
2007
|
-
|
2113
|
+
|
2114
|
+
if symlink_supported?
|
2115
|
+
refute_match %r{generated by RubyGems}, wrapper
|
2116
|
+
else # when symlink not supported, it warns and fallbacks back to installing wrapper
|
2117
|
+
assert_match %r{Unable to use symlinks, installing wrapper}, @ui.error
|
2118
|
+
assert_match %r{generated by RubyGems}, wrapper
|
2119
|
+
end
|
2008
2120
|
end
|
2009
2121
|
|
2010
2122
|
def test_default_gem_with_wrappers
|
@@ -2024,7 +2136,7 @@ gem 'other', version
|
|
2024
2136
|
assert_path_exists installed_exec
|
2025
2137
|
|
2026
2138
|
wrapper = File.read installed_exec
|
2027
|
-
assert_match %r
|
2139
|
+
assert_match %r{generated by RubyGems}, wrapper
|
2028
2140
|
end
|
2029
2141
|
|
2030
2142
|
def test_default_gem_with_exe_as_bindir
|
@@ -2067,6 +2179,16 @@ gem 'other', version
|
|
2067
2179
|
assert_kind_of(Gem::Package, installer.package)
|
2068
2180
|
end
|
2069
2181
|
|
2182
|
+
def test_gem_attribute
|
2183
|
+
gem = quick_gem 'c' do |spec|
|
2184
|
+
util_make_exec spec, '#!/usr/bin/ruby', 'exe'
|
2185
|
+
end
|
2186
|
+
|
2187
|
+
installer = util_installer(gem, @gemhome)
|
2188
|
+
assert_respond_to(installer, :gem)
|
2189
|
+
assert_kind_of(String, installer.gem)
|
2190
|
+
end
|
2191
|
+
|
2070
2192
|
def old_ruby_required(requirement)
|
2071
2193
|
spec = util_spec 'old_ruby_required', '1' do |s|
|
2072
2194
|
s.required_ruby_version = requirement
|
@@ -2097,7 +2219,6 @@ gem 'other', version
|
|
2097
2219
|
end
|
2098
2220
|
|
2099
2221
|
def mask
|
2100
|
-
0100755
|
2222
|
+
0100755
|
2101
2223
|
end
|
2102
|
-
|
2103
2224
|
end
|