rubygems-update 3.1.6 → 3.3.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/{History.txt → CHANGELOG.md} +1452 -514
- data/CODE_OF_CONDUCT.md +55 -19
- data/CONTRIBUTING.md +74 -27
- data/Manifest.txt +154 -117
- data/POLICIES.md +27 -19
- data/README.md +10 -8
- data/UPGRADING.md +5 -81
- data/bin/gem +3 -8
- data/bin/update_rubygems +5 -5
- data/bundler/CHANGELOG.md +2358 -1430
- data/bundler/README.md +7 -9
- data/bundler/UPGRADING.md +27 -34
- data/bundler/bundler.gemspec +8 -11
- data/bundler/exe/bundle +10 -8
- data/bundler/exe/bundler +1 -1
- data/bundler/lib/bundler/.document +1 -0
- data/bundler/lib/bundler/build_metadata.rb +4 -12
- 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 +3 -8
- data/bundler/lib/bundler/cli/check.rb +4 -2
- data/bundler/lib/bundler/cli/clean.rb +1 -1
- data/bundler/lib/bundler/cli/common.rb +31 -3
- data/bundler/lib/bundler/cli/config.rb +10 -1
- data/bundler/lib/bundler/cli/console.rb +1 -1
- data/bundler/lib/bundler/cli/doctor.rb +25 -6
- data/bundler/lib/bundler/cli/exec.rb +5 -10
- data/bundler/lib/bundler/cli/fund.rb +36 -0
- data/bundler/lib/bundler/cli/gem.rb +219 -28
- data/bundler/lib/bundler/cli/info.rb +38 -6
- data/bundler/lib/bundler/cli/init.rb +3 -3
- data/bundler/lib/bundler/cli/inject.rb +1 -1
- data/bundler/lib/bundler/cli/install.rb +25 -54
- data/bundler/lib/bundler/cli/issue.rb +5 -4
- data/bundler/lib/bundler/cli/list.rb +19 -11
- data/bundler/lib/bundler/cli/lock.rb +5 -1
- data/bundler/lib/bundler/cli/open.rb +1 -2
- data/bundler/lib/bundler/cli/outdated.rb +105 -76
- data/bundler/lib/bundler/cli/platform.rb +2 -2
- data/bundler/lib/bundler/cli/plugin.rb +10 -0
- data/bundler/lib/bundler/cli/pristine.rb +5 -0
- data/bundler/lib/bundler/cli/remove.rb +1 -2
- data/bundler/lib/bundler/cli/show.rb +2 -2
- data/bundler/lib/bundler/cli/update.rb +20 -9
- data/bundler/lib/bundler/cli.rb +106 -83
- data/bundler/lib/bundler/compact_index_client/cache.rb +6 -23
- data/bundler/lib/bundler/compact_index_client/gem_parser.rb +28 -0
- data/bundler/lib/bundler/compact_index_client/updater.rb +29 -25
- data/bundler/lib/bundler/compact_index_client.rb +3 -9
- data/bundler/lib/bundler/current_ruby.rb +17 -6
- data/bundler/lib/bundler/definition.rb +297 -396
- data/bundler/lib/bundler/dep_proxy.rb +16 -9
- data/bundler/lib/bundler/dependency.rb +22 -77
- data/bundler/lib/bundler/digest.rb +71 -0
- data/bundler/lib/bundler/dsl.rb +76 -83
- data/bundler/lib/bundler/endpoint_specification.rb +16 -14
- data/bundler/lib/bundler/env.rb +2 -2
- data/bundler/lib/bundler/environment_preserver.rb +29 -2
- data/bundler/lib/bundler/errors.rb +30 -3
- data/bundler/lib/bundler/feature_flag.rb +0 -9
- data/bundler/lib/bundler/fetcher/base.rb +7 -9
- data/bundler/lib/bundler/fetcher/compact_index.rb +11 -16
- data/bundler/lib/bundler/fetcher/downloader.rb +10 -7
- data/bundler/lib/bundler/fetcher/index.rb +2 -30
- data/bundler/lib/bundler/fetcher.rb +24 -25
- data/bundler/lib/bundler/friendly_errors.rb +46 -47
- data/bundler/lib/bundler/gem_helper.rb +53 -31
- data/bundler/lib/bundler/gem_helpers.rb +43 -24
- data/bundler/lib/bundler/gem_version_promoter.rb +10 -20
- data/bundler/lib/bundler/graph.rb +1 -1
- data/bundler/lib/bundler/index.rb +19 -25
- data/bundler/lib/bundler/injector.rb +38 -6
- data/bundler/lib/bundler/inline.rb +4 -13
- data/bundler/lib/bundler/installer/gem_installer.rb +19 -24
- data/bundler/lib/bundler/installer/parallel_installer.rb +46 -25
- data/bundler/lib/bundler/installer/standalone.rb +58 -11
- data/bundler/lib/bundler/installer.rb +51 -81
- data/bundler/lib/bundler/lazy_specification.rb +79 -36
- data/bundler/lib/bundler/lockfile_generator.rb +3 -3
- data/bundler/lib/bundler/lockfile_parser.rb +19 -44
- data/bundler/lib/bundler/man/.document +1 -0
- data/bundler/{man → lib/bundler/man}/bundle-add.1 +21 -5
- data/bundler/{man/bundle-add.ronn → lib/bundler/man/bundle-add.1.ronn} +16 -4
- data/bundler/{man → lib/bundler/man}/bundle-binstubs.1 +5 -3
- data/bundler/{man/bundle-binstubs.ronn → lib/bundler/man/bundle-binstubs.1.ronn} +2 -4
- data/bundler/{man → lib/bundler/man}/bundle-cache.1 +7 -1
- data/bundler/{man/bundle-cache.ronn → lib/bundler/man/bundle-cache.1.ronn} +7 -0
- data/bundler/{man → lib/bundler/man}/bundle-check.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-clean.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-config.1 +65 -47
- data/bundler/{man/bundle-config.ronn → lib/bundler/man/bundle-config.1.ronn} +74 -65
- data/bundler/lib/bundler/man/bundle-console.1 +53 -0
- data/bundler/lib/bundler/man/bundle-console.1.ronn +44 -0
- data/bundler/{man → lib/bundler/man}/bundle-doctor.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-exec.1 +2 -2
- data/bundler/{man/bundle-exec.ronn → lib/bundler/man/bundle-exec.1.ronn} +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-gem.1 +38 -3
- data/bundler/{man/bundle-gem.ronn → lib/bundler/man/bundle-gem.1.ronn} +46 -7
- data/bundler/lib/bundler/man/bundle-help.1 +13 -0
- data/bundler/lib/bundler/man/bundle-help.1.ronn +12 -0
- data/bundler/{man → lib/bundler/man}/bundle-info.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-init.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-inject.1 +5 -2
- data/bundler/{man/bundle-inject.ronn → lib/bundler/man/bundle-inject.1.ronn} +3 -1
- data/bundler/{man → lib/bundler/man}/bundle-install.1 +35 -4
- data/bundler/{man/bundle-install.ronn → lib/bundler/man/bundle-install.1.ronn} +33 -5
- data/bundler/{man → lib/bundler/man}/bundle-list.1 +7 -7
- data/bundler/{man/bundle-list.ronn → lib/bundler/man/bundle-list.1.ronn} +6 -6
- data/bundler/{man → lib/bundler/man}/bundle-lock.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-open.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-outdated.1 +3 -10
- data/bundler/{man/bundle-outdated.ronn → lib/bundler/man/bundle-outdated.1.ronn} +1 -10
- data/bundler/{man → lib/bundler/man}/bundle-platform.1 +16 -6
- data/bundler/{man/bundle-platform.ronn → lib/bundler/man/bundle-platform.1.ronn} +14 -7
- data/bundler/lib/bundler/man/bundle-plugin.1 +81 -0
- data/bundler/lib/bundler/man/bundle-plugin.1.ronn +59 -0
- data/bundler/{man → lib/bundler/man}/bundle-pristine.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-remove.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-show.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-update.1 +5 -5
- data/bundler/{man/bundle-update.ronn → lib/bundler/man/bundle-update.1.ronn} +5 -4
- data/bundler/lib/bundler/man/bundle-version.1 +35 -0
- data/bundler/lib/bundler/man/bundle-version.1.ronn +24 -0
- data/bundler/{man → lib/bundler/man}/bundle-viz.1 +4 -1
- data/bundler/{man/bundle-viz.ronn → lib/bundler/man/bundle-viz.1.ronn} +2 -0
- data/bundler/{man → lib/bundler/man}/bundle.1 +15 -10
- data/bundler/{man/bundle.ronn → lib/bundler/man/bundle.1.ronn} +12 -7
- data/bundler/{man → lib/bundler/man}/gemfile.5 +106 -80
- data/bundler/{man → lib/bundler/man}/gemfile.5.ronn +94 -83
- data/bundler/{man → lib/bundler/man}/index.txt +4 -0
- data/bundler/lib/bundler/match_metadata.rb +13 -0
- data/bundler/lib/bundler/match_platform.rb +0 -1
- data/bundler/lib/bundler/match_remote_metadata.rb +29 -0
- data/bundler/lib/bundler/mirror.rb +2 -2
- data/bundler/lib/bundler/plugin/api/source.rb +25 -9
- data/bundler/lib/bundler/plugin/dsl.rb +1 -1
- data/bundler/lib/bundler/plugin/index.rb +13 -1
- data/bundler/lib/bundler/plugin/installer/git.rb +0 -4
- data/bundler/lib/bundler/plugin/installer/rubygems.rb +1 -5
- data/bundler/lib/bundler/plugin/installer.rb +11 -11
- data/bundler/lib/bundler/plugin/source_list.rb +5 -1
- data/bundler/lib/bundler/plugin.rb +58 -11
- data/bundler/lib/bundler/process_lock.rb +1 -1
- data/bundler/lib/bundler/remote_specification.rb +11 -6
- data/bundler/lib/bundler/resolver/base.rb +50 -0
- data/bundler/lib/bundler/resolver/spec_group.rb +64 -57
- data/bundler/lib/bundler/resolver.rb +234 -230
- data/bundler/lib/bundler/retry.rb +2 -2
- data/bundler/lib/bundler/ruby_dsl.rb +1 -1
- data/bundler/lib/bundler/ruby_version.rb +6 -19
- data/bundler/lib/bundler/rubygems_ext.rb +194 -33
- data/bundler/lib/bundler/rubygems_gem_installer.rb +87 -16
- data/bundler/lib/bundler/rubygems_integration.rb +71 -153
- data/bundler/lib/bundler/runtime.rb +22 -26
- data/bundler/lib/bundler/self_manager.rb +168 -0
- data/bundler/lib/bundler/settings.rb +145 -66
- data/bundler/lib/bundler/setup.rb +2 -2
- data/bundler/lib/bundler/shared_helpers.rb +17 -32
- data/bundler/lib/bundler/similarity_detector.rb +1 -1
- data/bundler/lib/bundler/source/git/git_proxy.rb +88 -84
- data/bundler/lib/bundler/source/git.rb +50 -32
- data/bundler/lib/bundler/source/metadata.rb +3 -7
- data/bundler/lib/bundler/source/path/installer.rb +10 -10
- data/bundler/lib/bundler/source/path.rb +10 -4
- data/bundler/lib/bundler/source/rubygems/remote.rb +1 -1
- data/bundler/lib/bundler/source/rubygems.rb +201 -179
- data/bundler/lib/bundler/source/rubygems_aggregate.rb +68 -0
- data/bundler/lib/bundler/source.rb +25 -5
- data/bundler/lib/bundler/source_list.rb +105 -63
- data/bundler/lib/bundler/source_map.rb +71 -0
- data/bundler/lib/bundler/spec_set.rb +62 -57
- data/bundler/lib/bundler/stub_specification.rb +30 -10
- data/bundler/lib/bundler/templates/Executable +2 -4
- data/bundler/lib/bundler/templates/Executable.bundler +8 -8
- data/bundler/lib/bundler/templates/Executable.standalone +2 -4
- data/bundler/lib/bundler/templates/Gemfile +0 -2
- data/bundler/lib/bundler/templates/gems.rb +0 -3
- data/bundler/lib/bundler/templates/newgem/CHANGELOG.md.tt +5 -0
- data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +57 -47
- data/bundler/lib/bundler/templates/newgem/Gemfile.tt +12 -1
- data/bundler/lib/bundler/templates/newgem/README.md.tt +9 -14
- data/bundler/lib/bundler/templates/newgem/Rakefile.tt +32 -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 +27 -0
- data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +9 -0
- data/bundler/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +2 -0
- data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +4 -2
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +27 -17
- data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +13 -0
- data/bundler/lib/bundler/templates/newgem/sig/newgem.rbs.tt +8 -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/standard.yml.tt +3 -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/{newgem_test.rb.tt → minitest/test_newgem.rb.tt} +3 -1
- 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 +6 -6
- data/bundler/lib/bundler/uri_credentials_filter.rb +3 -1
- data/bundler/lib/bundler/vendor/.document +1 -0
- data/bundler/lib/bundler/vendor/connection_pool/LICENSE +20 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +19 -21
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +1 -1
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +57 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +39 -74
- data/bundler/lib/bundler/vendor/fileutils/LICENSE.txt +22 -0
- data/bundler/lib/bundler/vendor/molinillo/LICENSE +9 -0
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +7 -0
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +2 -2
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +11 -5
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +37 -5
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +34 -28
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +1 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +12 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +49 -47
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -1
- data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +82 -0
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +82 -189
- data/bundler/lib/bundler/vendor/thor/LICENSE.md +20 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +2 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +9 -7
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +1 -2
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions.rb +7 -3
- data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +9 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +6 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/error.rb +10 -5
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +5 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +28 -9
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +27 -6
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/color.rb +5 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/util.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor.rb +5 -13
- data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +154 -0
- data/bundler/lib/bundler/vendor/tsort/LICENSE.txt +22 -0
- data/bundler/lib/bundler/vendor/tsort/lib/tsort.rb +452 -0
- data/bundler/lib/bundler/vendor/uri/LICENSE.txt +22 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +17 -80
- data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +0 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +5 -6
- data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +0 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/https.rb +0 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb +1 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb +0 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +1 -14
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +1 -12
- data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/ws.rb +84 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/wss.rb +22 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri.rb +0 -1
- data/bundler/lib/bundler/vendored_persistent.rb +0 -7
- data/bundler/lib/bundler/vendored_tmpdir.rb +4 -0
- data/bundler/lib/bundler/vendored_tsort.rb +4 -0
- data/bundler/lib/bundler/version.rb +1 -1
- data/bundler/lib/bundler/worker.rb +20 -5
- data/bundler/lib/bundler/yaml_serializer.rb +1 -1
- data/bundler/lib/bundler.rb +79 -47
- data/hide_lib_for_update/note.txt +0 -4
- data/lib/rubygems/available_set.rb +7 -9
- data/lib/rubygems/basic_specification.rb +23 -21
- data/lib/rubygems/bundler_version_finder.rb +26 -53
- data/lib/rubygems/command.rb +48 -45
- data/lib/rubygems/command_manager.rb +20 -14
- data/lib/rubygems/commands/build_command.rb +47 -27
- data/lib/rubygems/commands/cert_command.rb +78 -75
- data/lib/rubygems/commands/check_command.rb +20 -22
- data/lib/rubygems/commands/cleanup_command.rb +30 -26
- data/lib/rubygems/commands/contents_command.rb +16 -18
- data/lib/rubygems/commands/dependency_command.rb +39 -51
- data/lib/rubygems/commands/environment_command.rb +11 -10
- data/lib/rubygems/commands/fetch_command.rb +33 -16
- data/lib/rubygems/commands/generate_index_command.rb +17 -19
- data/lib/rubygems/commands/help_command.rb +6 -6
- data/lib/rubygems/commands/info_command.rb +10 -7
- data/lib/rubygems/commands/install_command.rb +29 -27
- data/lib/rubygems/commands/list_command.rb +9 -8
- data/lib/rubygems/commands/lock_command.rb +5 -7
- data/lib/rubygems/commands/mirror_command.rb +3 -5
- data/lib/rubygems/commands/open_command.rb +10 -14
- data/lib/rubygems/commands/outdated_command.rb +5 -7
- data/lib/rubygems/commands/owner_command.rb +26 -16
- data/lib/rubygems/commands/pristine_command.rb +61 -49
- data/lib/rubygems/commands/push_command.rb +22 -59
- data/lib/rubygems/commands/query_command.rb +21 -351
- data/lib/rubygems/commands/rdoc_command.rb +23 -25
- data/lib/rubygems/commands/search_command.rb +8 -8
- data/lib/rubygems/commands/server_command.rb +16 -77
- data/lib/rubygems/commands/setup_command.rb +255 -229
- data/lib/rubygems/commands/signin_command.rb +9 -11
- data/lib/rubygems/commands/signout_command.rb +7 -9
- data/lib/rubygems/commands/sources_command.rb +27 -25
- data/lib/rubygems/commands/specification_command.rb +25 -21
- data/lib/rubygems/commands/stale_command.rb +3 -5
- data/lib/rubygems/commands/uninstall_command.rb +41 -43
- data/lib/rubygems/commands/unpack_command.rb +13 -15
- data/lib/rubygems/commands/update_command.rb +132 -74
- data/lib/rubygems/commands/which_command.rb +7 -9
- data/lib/rubygems/commands/yank_command.rb +16 -19
- data/lib/rubygems/compatibility.rb +4 -2
- data/lib/rubygems/config_file.rb +42 -26
- data/lib/rubygems/core_ext/kernel_gem.rb +1 -1
- data/lib/rubygems/core_ext/kernel_require.rb +6 -3
- data/lib/rubygems/core_ext/kernel_warn.rb +12 -13
- data/lib/rubygems/core_ext/tcpsocket_init.rb +52 -0
- data/lib/rubygems/defaults.rb +108 -32
- data/lib/rubygems/dependency.rb +21 -22
- data/lib/rubygems/dependency_installer.rb +19 -91
- data/lib/rubygems/dependency_list.rb +13 -15
- data/lib/rubygems/deprecate.rb +102 -8
- data/lib/rubygems/doctor.rb +22 -22
- data/lib/rubygems/errors.rb +6 -21
- data/lib/rubygems/exceptions.rb +33 -34
- data/lib/rubygems/ext/build_error.rb +2 -0
- data/lib/rubygems/ext/builder.rb +48 -54
- data/lib/rubygems/ext/cargo_builder/link_flag_converter.rb +23 -0
- data/lib/rubygems/ext/cargo_builder.rb +321 -0
- data/lib/rubygems/ext/cmake_builder.rb +6 -9
- data/lib/rubygems/ext/configure_builder.rb +5 -8
- data/lib/rubygems/ext/ext_conf_builder.rb +42 -66
- data/lib/rubygems/ext/rake_builder.rb +7 -10
- data/lib/rubygems/ext.rb +7 -6
- data/lib/rubygems/gem_runner.rb +15 -26
- data/lib/rubygems/gemcutter_utilities.rb +153 -32
- data/lib/rubygems/indexer.rb +30 -49
- data/lib/rubygems/install_default_message.rb +2 -2
- data/lib/rubygems/install_message.rb +2 -2
- data/lib/rubygems/install_update_options.rb +73 -64
- data/lib/rubygems/installer.rb +194 -151
- data/lib/rubygems/installer_uninstaller_utils.rb +29 -0
- data/lib/rubygems/local_remote_options.rb +22 -24
- data/lib/rubygems/mock_gem_ui.rb +2 -8
- data/lib/rubygems/name_tuple.rb +9 -14
- data/lib/rubygems/openssl.rb +7 -0
- data/lib/rubygems/optparse/.document +1 -0
- data/lib/rubygems/optparse/COPYING +56 -0
- data/lib/rubygems/optparse/lib/optionparser.rb +2 -0
- data/lib/rubygems/optparse/lib/optparse/ac.rb +54 -0
- data/lib/rubygems/optparse/lib/optparse/date.rb +18 -0
- data/lib/rubygems/optparse/lib/optparse/kwargs.rb +22 -0
- data/lib/rubygems/optparse/lib/optparse/shellwords.rb +7 -0
- data/lib/rubygems/optparse/lib/optparse/time.rb +11 -0
- data/lib/rubygems/optparse/lib/optparse/uri.rb +7 -0
- data/lib/rubygems/optparse/lib/optparse/version.rb +71 -0
- data/lib/rubygems/optparse/lib/optparse.rb +2303 -0
- data/lib/rubygems/optparse.rb +3 -0
- data/lib/rubygems/package/digest_io.rb +0 -2
- data/lib/rubygems/package/file_source.rb +2 -4
- data/lib/rubygems/package/io_source.rb +4 -2
- data/lib/rubygems/package/old.rb +9 -11
- data/lib/rubygems/package/tar_header.rb +54 -56
- data/lib/rubygems/package/tar_reader/entry.rb +2 -5
- data/lib/rubygems/package/tar_reader.rb +1 -4
- data/lib/rubygems/package/tar_writer.rb +8 -18
- data/lib/rubygems/package.rb +101 -117
- data/lib/rubygems/package_task.rb +5 -11
- data/lib/rubygems/path_support.rb +2 -9
- data/lib/rubygems/platform.rb +101 -76
- data/lib/rubygems/psych_tree.rb +1 -3
- data/lib/rubygems/query_utils.rb +351 -0
- data/lib/rubygems/rdoc.rb +2 -14
- data/lib/rubygems/remote_fetcher.rb +48 -74
- data/lib/rubygems/request/connection_pools.rb +6 -10
- data/lib/rubygems/request/http_pool.rb +2 -4
- data/lib/rubygems/request/https_pool.rb +0 -2
- data/lib/rubygems/request.rb +26 -31
- data/lib/rubygems/request_set/gem_dependency_api.rb +23 -25
- data/lib/rubygems/request_set/lockfile/parser.rb +26 -28
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +5 -7
- data/lib/rubygems/request_set/lockfile.rb +17 -21
- data/lib/rubygems/request_set.rb +27 -40
- data/lib/rubygems/requirement.rb +28 -48
- data/lib/rubygems/resolver/activation_request.rb +12 -6
- data/lib/rubygems/resolver/api_set/gem_parser.rb +20 -0
- data/lib/rubygems/resolver/api_set.rb +32 -25
- data/lib/rubygems/resolver/api_specification.rb +29 -15
- data/lib/rubygems/resolver/best_set.rb +7 -9
- data/lib/rubygems/resolver/composed_set.rb +3 -5
- data/lib/rubygems/resolver/conflict.rb +12 -14
- data/lib/rubygems/resolver/current_set.rb +0 -2
- data/lib/rubygems/resolver/dependency_request.rb +3 -5
- data/lib/rubygems/resolver/git_set.rb +2 -4
- data/lib/rubygems/resolver/git_specification.rb +6 -8
- data/lib/rubygems/resolver/index_set.rb +4 -6
- data/lib/rubygems/resolver/index_specification.rb +38 -7
- data/lib/rubygems/resolver/installed_specification.rb +4 -6
- data/lib/rubygems/resolver/installer_set.rb +66 -24
- data/lib/rubygems/resolver/local_specification.rb +2 -4
- data/lib/rubygems/resolver/lock_set.rb +6 -8
- data/lib/rubygems/resolver/lock_specification.rb +4 -6
- data/lib/rubygems/resolver/molinillo/LICENSE +9 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb +7 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb +8 -0
- 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 +51 -12
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +41 -8
- data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +76 -8
- data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb +13 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb +3 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb +510 -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/molinillo/lib/molinillo.rb +6 -5
- data/lib/rubygems/resolver/molinillo.rb +1 -1
- data/lib/rubygems/resolver/requirement_list.rb +0 -2
- data/lib/rubygems/resolver/set.rb +0 -3
- data/lib/rubygems/resolver/source_set.rb +0 -2
- data/lib/rubygems/resolver/spec_specification.rb +14 -2
- data/lib/rubygems/resolver/specification.rb +14 -4
- data/lib/rubygems/resolver/stats.rb +0 -2
- data/lib/rubygems/resolver/vendor_set.rb +1 -3
- data/lib/rubygems/resolver/vendor_specification.rb +3 -5
- data/lib/rubygems/resolver.rb +53 -51
- data/lib/rubygems/s3_uri_signer.rb +7 -15
- data/lib/rubygems/safe_yaml.rb +14 -16
- data/lib/rubygems/security/policies.rb +11 -11
- data/lib/rubygems/security/policy.rb +25 -29
- data/lib/rubygems/security/signer.rb +13 -16
- data/lib/rubygems/security/trust_dir.rb +4 -5
- data/lib/rubygems/security.rb +103 -69
- data/lib/rubygems/security_option.rb +7 -7
- data/lib/rubygems/source/git.rb +30 -30
- data/lib/rubygems/source/installed.rb +1 -3
- data/lib/rubygems/source/local.rb +4 -6
- data/lib/rubygems/source/lock.rb +0 -2
- data/lib/rubygems/source/specific_file.rb +1 -3
- data/lib/rubygems/source/vendor.rb +0 -2
- data/lib/rubygems/source.rb +44 -38
- data/lib/rubygems/source_list.rb +9 -16
- data/lib/rubygems/spec_fetcher.rb +49 -48
- data/lib/rubygems/specification.rb +338 -295
- data/lib/rubygems/specification_policy.rb +112 -61
- data/lib/rubygems/stub_specification.rb +21 -28
- data/lib/rubygems/text.rb +21 -20
- data/lib/rubygems/tsort/.document +1 -0
- data/lib/rubygems/tsort/LICENSE.txt +22 -0
- data/lib/rubygems/tsort/lib/tsort.rb +454 -0
- data/lib/rubygems/tsort.rb +3 -0
- data/lib/rubygems/uninstaller.rb +98 -45
- data/lib/rubygems/unknown_command_spell_checker.rb +21 -0
- data/lib/rubygems/uri.rb +126 -0
- data/lib/rubygems/uri_formatter.rb +2 -3
- data/lib/rubygems/user_interaction.rb +43 -54
- data/lib/rubygems/util/licenses.rb +115 -10
- data/lib/rubygems/util/list.rb +0 -2
- data/lib/rubygems/util.rb +18 -12
- data/lib/rubygems/validator.rb +6 -8
- data/lib/rubygems/version.rb +29 -20
- data/lib/rubygems/version_option.rb +11 -5
- data/lib/rubygems.rb +192 -289
- data/rubygems-update.gemspec +4 -4
- data/setup.rb +11 -22
- data/test/rubygems/data/excon-0.7.7.gemspec.rz +0 -0
- data/test/rubygems/data/null-required-ruby-version.gemspec.rz +0 -0
- data/test/rubygems/data/null-required-rubygems-version.gemspec.rz +0 -0
- data/test/rubygems/data/pry-0.4.7.gemspec.rz +0 -0
- data/test/rubygems/encrypted_private_key.pem +26 -26
- data/{lib/rubygems/test_case.rb → test/rubygems/helper.rb} +380 -314
- data/{lib → test}/rubygems/installer_test_case.rb +38 -24
- data/{lib → test}/rubygems/package/tar_test_case.rb +4 -6
- data/test/rubygems/packages/ascii_binder-0.1.10.1.gem +0 -0
- data/test/rubygems/packages/ill-formatted-platform-1.0.0.10.gem +0 -0
- data/test/rubygems/plugin/exception/rubygems_plugin.rb +1 -1
- data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -2
- data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +1 -1
- data/test/rubygems/private_ec_key.pem +9 -0
- data/test/rubygems/rubygems/commands/crash_command.rb +0 -2
- data/test/rubygems/rubygems_plugin.rb +2 -4
- data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -2
- data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +4 -6
- data/test/rubygems/test_bundled_ca.rb +43 -50
- data/test/rubygems/test_config.rb +5 -7
- data/test/rubygems/test_deprecate.rb +87 -10
- data/test/rubygems/test_exit.rb +11 -0
- data/test/rubygems/test_gem.rb +719 -639
- data/test/rubygems/test_gem_available_set.rb +24 -26
- data/test/rubygems/test_gem_bundler_version_finder.rb +37 -44
- data/test/rubygems/test_gem_command.rb +78 -49
- data/test/rubygems/test_gem_command_manager.rb +98 -35
- data/test/rubygems/test_gem_commands_build_command.rb +275 -57
- data/test/rubygems/test_gem_commands_cert_command.rb +180 -125
- data/test/rubygems/test_gem_commands_check_command.rb +9 -11
- data/test/rubygems/test_gem_commands_cleanup_command.rb +78 -69
- data/test/rubygems/test_gem_commands_contents_command.rb +73 -42
- data/test/rubygems/test_gem_commands_dependency_command.rb +38 -40
- data/test/rubygems/test_gem_commands_environment_command.rb +60 -38
- data/test/rubygems/test_gem_commands_fetch_command.rb +163 -32
- data/test/rubygems/test_gem_commands_generate_index_command.rb +8 -14
- data/test/rubygems/test_gem_commands_help_command.rb +34 -16
- data/test/rubygems/test_gem_commands_info_command.rb +33 -9
- data/test/rubygems/test_gem_commands_install_command.rb +401 -198
- data/test/rubygems/test_gem_commands_list_command.rb +5 -7
- data/test/rubygems/test_gem_commands_lock_command.rb +11 -13
- data/test/rubygems/test_gem_commands_mirror.rb +3 -5
- data/test/rubygems/test_gem_commands_open_command.rb +16 -19
- data/test/rubygems/test_gem_commands_outdated_command.rb +23 -7
- data/test/rubygems/test_gem_commands_owner_command.rb +100 -46
- data/test/rubygems/test_gem_commands_pristine_command.rb +131 -99
- data/test/rubygems/test_gem_commands_push_command.rb +134 -66
- data/test/rubygems/test_gem_commands_query_command.rb +91 -91
- data/test/rubygems/test_gem_commands_search_command.rb +2 -4
- data/test/rubygems/test_gem_commands_server_command.rb +6 -50
- data/test/rubygems/test_gem_commands_setup_command.rb +288 -179
- data/test/rubygems/test_gem_commands_signin_command.rb +162 -28
- data/test/rubygems/test_gem_commands_signout_command.rb +3 -10
- data/test/rubygems/test_gem_commands_sources_command.rb +139 -32
- data/test/rubygems/test_gem_commands_specification_command.rb +81 -55
- data/test/rubygems/test_gem_commands_stale_command.rb +4 -6
- data/test/rubygems/test_gem_commands_uninstall_command.rb +80 -82
- data/test/rubygems/test_gem_commands_unpack_command.rb +32 -34
- data/test/rubygems/test_gem_commands_update_command.rb +335 -88
- data/test/rubygems/test_gem_commands_which_command.rb +12 -14
- data/test/rubygems/test_gem_commands_yank_command.rb +80 -44
- data/test/rubygems/test_gem_config_file.rb +114 -97
- data/test/rubygems/test_gem_dependency.rb +87 -87
- data/test/rubygems/test_gem_dependency_installer.rb +277 -391
- data/test/rubygems/test_gem_dependency_list.rb +57 -59
- data/test/rubygems/test_gem_dependency_resolution_error.rb +5 -7
- data/test/rubygems/test_gem_doctor.rb +73 -47
- data/test/rubygems/test_gem_ext_builder.rb +115 -109
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore +1 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.lock +243 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.toml +10 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/build.rb +21 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +10 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/src/lib.rs +27 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/.gitignore +1 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +243 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +10 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/build.rb +21 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +8 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +39 -0
- data/test/rubygems/test_gem_ext_cargo_builder.rb +178 -0
- data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +33 -0
- data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +75 -0
- data/test/rubygems/test_gem_ext_cmake_builder.rb +31 -38
- data/test/rubygems/test_gem_ext_configure_builder.rb +23 -39
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +66 -82
- data/test/rubygems/test_gem_ext_rake_builder.rb +49 -32
- data/test/rubygems/test_gem_gem_runner.rb +51 -8
- data/test/rubygems/test_gem_gemcutter_utilities.rb +87 -76
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +4 -6
- data/test/rubygems/test_gem_indexer.rb +62 -64
- data/test/rubygems/test_gem_install_update_options.rb +31 -21
- data/test/rubygems/test_gem_installer.rb +798 -491
- data/test/rubygems/test_gem_local_remote_options.rb +11 -13
- data/test/rubygems/test_gem_name_tuple.rb +4 -6
- data/test/rubygems/test_gem_package.rb +318 -283
- data/test/rubygems/test_gem_package_old.rb +18 -20
- data/test/rubygems/test_gem_package_tar_header.rb +64 -47
- data/test/rubygems/test_gem_package_tar_reader.rb +8 -10
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +18 -20
- data/test/rubygems/test_gem_package_tar_writer.rb +96 -100
- data/test/rubygems/test_gem_package_task.rb +58 -25
- data/test/rubygems/test_gem_path_support.rb +15 -21
- data/test/rubygems/test_gem_platform.rb +354 -201
- data/test/rubygems/test_gem_rdoc.rb +19 -21
- data/test/rubygems/test_gem_remote_fetcher.rb +376 -337
- data/test/rubygems/test_gem_request.rb +114 -86
- data/test/rubygems/test_gem_request_connection_pools.rb +30 -34
- data/test/rubygems/test_gem_request_set.rb +123 -124
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +222 -226
- data/test/rubygems/test_gem_request_set_lockfile.rb +93 -95
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +68 -70
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +136 -138
- data/test/rubygems/test_gem_requirement.rb +133 -54
- data/test/rubygems/test_gem_resolver.rb +149 -117
- data/test/rubygems/test_gem_resolver_activation_request.rb +6 -8
- data/test/rubygems/test_gem_resolver_api_set.rb +79 -78
- data/test/rubygems/test_gem_resolver_api_specification.rb +47 -49
- data/test/rubygems/test_gem_resolver_best_set.rb +43 -22
- data/test/rubygems/test_gem_resolver_composed_set.rb +1 -3
- data/test/rubygems/test_gem_resolver_conflict.rb +12 -14
- data/test/rubygems/test_gem_resolver_dependency_request.rb +15 -17
- data/test/rubygems/test_gem_resolver_git_set.rb +22 -24
- data/test/rubygems/test_gem_resolver_git_specification.rb +22 -23
- data/test/rubygems/test_gem_resolver_index_set.rb +14 -16
- data/test/rubygems/test_gem_resolver_index_specification.rb +16 -18
- data/test/rubygems/test_gem_resolver_installed_specification.rb +5 -7
- data/test/rubygems/test_gem_resolver_installer_set.rb +104 -44
- data/test/rubygems/test_gem_resolver_local_specification.rb +7 -9
- data/test/rubygems/test_gem_resolver_lock_set.rb +15 -17
- data/test/rubygems/test_gem_resolver_lock_specification.rb +17 -19
- data/test/rubygems/test_gem_resolver_requirement_list.rb +1 -3
- data/test/rubygems/test_gem_resolver_specification.rb +8 -12
- data/test/rubygems/test_gem_resolver_vendor_set.rb +9 -11
- data/test/rubygems/test_gem_resolver_vendor_specification.rb +10 -12
- data/test/rubygems/test_gem_security.rb +104 -78
- data/test/rubygems/test_gem_security_policy.rb +92 -97
- data/test/rubygems/test_gem_security_signer.rb +45 -47
- data/test/rubygems/test_gem_security_trust_dir.rb +12 -14
- data/test/rubygems/test_gem_silent_ui.rb +46 -42
- data/test/rubygems/test_gem_source.rb +53 -52
- data/test/rubygems/test_gem_source_fetch_problem.rb +16 -8
- data/test/rubygems/test_gem_source_git.rb +69 -69
- data/test/rubygems/test_gem_source_installed.rb +16 -18
- data/test/rubygems/test_gem_source_list.rb +5 -6
- data/test/rubygems/test_gem_source_local.rb +15 -17
- data/test/rubygems/test_gem_source_lock.rb +31 -33
- data/test/rubygems/test_gem_source_specific_file.rb +18 -20
- data/test/rubygems/test_gem_source_subpath_problem.rb +49 -0
- data/test/rubygems/test_gem_source_vendor.rb +13 -15
- data/test/rubygems/test_gem_spec_fetcher.rb +74 -67
- data/test/rubygems/test_gem_specification.rb +888 -1024
- data/test/rubygems/test_gem_stream_ui.rb +23 -23
- data/test/rubygems/test_gem_stub_specification.rb +39 -57
- data/test/rubygems/test_gem_text.rb +8 -4
- data/test/rubygems/test_gem_uninstaller.rb +233 -104
- data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +3 -5
- data/test/rubygems/test_gem_uri.rb +39 -0
- data/test/rubygems/test_gem_uri_formatter.rb +14 -16
- data/test/rubygems/test_gem_util.rb +37 -35
- data/test/rubygems/test_gem_validator.rb +10 -12
- data/test/rubygems/test_gem_version.rb +31 -31
- data/test/rubygems/test_gem_version_option.rb +16 -18
- data/test/rubygems/test_kernel.rb +46 -60
- data/test/rubygems/test_project_sanity.rb +8 -3
- data/test/rubygems/test_remote_fetch_error.rb +7 -9
- data/test/rubygems/test_require.rb +240 -167
- data/test/rubygems/test_rubygems.rb +74 -0
- data/{lib/rubygems/test_utilities.rb → test/rubygems/utilities.rb} +30 -39
- data/test/test_changelog_generator.rb +17 -0
- metadata +158 -146
- data/.bundle/config +0 -2
- data/.rubocop.yml +0 -91
- data/Gemfile +0 -8
- data/Gemfile.lock +0 -43
- data/Rakefile +0 -428
- data/bundler/CODE_OF_CONDUCT.md +0 -136
- data/bundler/lib/bundler/gemdeps.rb +0 -29
- data/bundler/lib/bundler/psyched_yaml.rb +0 -37
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/monotonic_time.rb +0 -66
- 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/psych_additions.rb +0 -10
- data/lib/rubygems/server.rb +0 -879
- data/lib/rubygems/source_local.rb +0 -7
- data/lib/rubygems/source_specific_file.rb +0 -6
- data/lib/rubygems/syck_hack.rb +0 -79
- data/lib/rubygems/uri_parser.rb +0 -36
- data/lib/rubygems/uri_parsing.rb +0 -23
- data/lib/ubygems.rb +0 -14
- data/test/rubygems/bogussources.rb +0 -9
- data/test/rubygems/data/null-type.gemspec.rz +0 -0
- data/test/rubygems/test_gem_server.rb +0 -612
- 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 -137
- data/util/update_changelog.rb +0 -64
- /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-doctor.ronn → lib/bundler/man/bundle-doctor.1.ronn} +0 -0
- /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-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-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
@@ -1,16 +1,15 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require
|
4
|
-
require
|
2
|
+
require_relative "helper"
|
3
|
+
require "rubygems/dependency_installer"
|
4
|
+
require "rubygems/security"
|
5
5
|
|
6
6
|
class TestGemDependencyInstaller < Gem::TestCase
|
7
|
-
|
8
7
|
def setup
|
9
8
|
super
|
10
9
|
common_installer_setup
|
11
10
|
|
12
|
-
@gems_dir = File.join @tempdir,
|
13
|
-
@cache_dir = File.join @gemhome,
|
11
|
+
@gems_dir = File.join @tempdir, "gems"
|
12
|
+
@cache_dir = File.join @gemhome, "cache"
|
14
13
|
|
15
14
|
FileUtils.mkdir @gems_dir
|
16
15
|
|
@@ -26,89 +25,26 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
26
25
|
end
|
27
26
|
|
28
27
|
def util_setup_gems
|
29
|
-
@a1, @a1_gem = util_gem
|
30
|
-
s.executables <<
|
28
|
+
@a1, @a1_gem = util_gem "a", "1" do |s|
|
29
|
+
s.executables << "a_bin"
|
31
30
|
end
|
32
31
|
|
33
|
-
@a1_pre, @a1_pre_gem = util_gem
|
34
|
-
|
35
|
-
@b1, @b1_gem = util_gem 'b', '1' do |s|
|
36
|
-
s.add_dependency 'a'
|
37
|
-
s.add_development_dependency 'aa'
|
38
|
-
end
|
32
|
+
@a1_pre, @a1_pre_gem = util_gem "a", "1.a"
|
39
33
|
|
40
|
-
@
|
41
|
-
s.
|
34
|
+
@b1, @b1_gem = util_gem "b", "1" do |s|
|
35
|
+
s.add_dependency "a"
|
36
|
+
s.add_development_dependency "aa"
|
42
37
|
end
|
43
38
|
|
44
|
-
@
|
45
|
-
s.add_development_dependency
|
39
|
+
@c1, @c1_gem = util_gem "c", "1" do |s|
|
40
|
+
s.add_development_dependency "b"
|
46
41
|
end
|
47
42
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
def test_available_set_for_name
|
52
|
-
util_setup_gems
|
53
|
-
p1a, = util_gem 'a', '10.a'
|
54
|
-
util_setup_spec_fetcher p1a, @a1, @a1_pre
|
55
|
-
|
56
|
-
inst = Gem::DependencyInstaller.new
|
57
|
-
|
58
|
-
available = Gem::Deprecate.skip_during do
|
59
|
-
inst.available_set_for 'a', Gem::Requirement.default
|
60
|
-
end
|
61
|
-
|
62
|
-
assert_equal %w[a-1], available.set.map { |s| s.spec.full_name }
|
63
|
-
end
|
64
|
-
|
65
|
-
def test_available_set_for_name_prerelease
|
66
|
-
util_setup_gems
|
67
|
-
p1a, = util_gem 'a', '10.a'
|
68
|
-
util_setup_spec_fetcher p1a, @a1, @a1_pre
|
69
|
-
|
70
|
-
inst = Gem::DependencyInstaller.new :prerelease => true
|
71
|
-
|
72
|
-
available = Gem::Deprecate.skip_during do
|
73
|
-
inst.available_set_for 'a', Gem::Requirement.default
|
74
|
-
end
|
75
|
-
|
76
|
-
assert_equal %w[a-10.a],
|
77
|
-
available.sorted.map { |s| s.spec.full_name }
|
78
|
-
end
|
79
|
-
|
80
|
-
def test_available_set_for_dep
|
81
|
-
util_setup_gems
|
82
|
-
p1a, = util_gem 'a', '10.a'
|
83
|
-
util_setup_spec_fetcher p1a, @a1, @a1_pre
|
84
|
-
|
85
|
-
inst = Gem::DependencyInstaller.new
|
86
|
-
|
87
|
-
dep = Gem::Dependency.new 'a', Gem::Requirement.default
|
88
|
-
|
89
|
-
available = Gem::Deprecate.skip_during do
|
90
|
-
inst.available_set_for dep, Gem::Requirement.default
|
91
|
-
end
|
92
|
-
|
93
|
-
assert_equal %w[a-1], available.set.map { |s| s.spec.full_name }
|
94
|
-
end
|
95
|
-
|
96
|
-
def test_available_set_for_dep_prerelease
|
97
|
-
util_setup_gems
|
98
|
-
p1a, = util_gem 'a', '10.a'
|
99
|
-
util_setup_spec_fetcher p1a, @a1, @a1_pre
|
100
|
-
|
101
|
-
inst = Gem::DependencyInstaller.new :prerelease => true
|
102
|
-
|
103
|
-
dep = Gem::Dependency.new 'a', Gem::Requirement.default
|
104
|
-
dep.prerelease = true
|
105
|
-
|
106
|
-
available = Gem::Deprecate.skip_during do
|
107
|
-
inst.available_set_for dep, Gem::Requirement.default
|
43
|
+
@d1, @d1_gem = util_gem "d", "1" do |s|
|
44
|
+
s.add_development_dependency "c"
|
108
45
|
end
|
109
46
|
|
110
|
-
|
111
|
-
available.sorted.map { |s| s.spec.full_name }
|
47
|
+
util_setup_spec_fetcher(@a1, @a1_pre, @b1, @d1)
|
112
48
|
end
|
113
49
|
|
114
50
|
def test_install
|
@@ -119,7 +55,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
119
55
|
|
120
56
|
Dir.chdir @tempdir do
|
121
57
|
inst = Gem::DependencyInstaller.new
|
122
|
-
inst.install
|
58
|
+
inst.install "a"
|
123
59
|
end
|
124
60
|
|
125
61
|
assert_equal %w[a-1], Gem::Specification.map(&:full_name)
|
@@ -129,13 +65,13 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
129
65
|
def test_install_prerelease
|
130
66
|
util_setup_gems
|
131
67
|
|
132
|
-
p1a, gem = util_gem
|
68
|
+
p1a, gem = util_gem "a", "10.a"
|
133
69
|
|
134
70
|
util_setup_spec_fetcher(p1a, @a1, @a1_pre)
|
135
71
|
|
136
72
|
p1a_data = Gem.read_binary(gem)
|
137
73
|
|
138
|
-
@fetcher.data[
|
74
|
+
@fetcher.data["http://gems.example.com/gems/a-10.a.gem"] = p1a_data
|
139
75
|
|
140
76
|
dep = Gem::Dependency.new "a"
|
141
77
|
inst = Gem::DependencyInstaller.new :prerelease => true
|
@@ -147,18 +83,18 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
147
83
|
|
148
84
|
def test_install_prerelease_bug_990
|
149
85
|
spec_fetcher do |fetcher|
|
150
|
-
fetcher.gem
|
151
|
-
s.add_dependency
|
86
|
+
fetcher.gem "a", "1.b" do |s|
|
87
|
+
s.add_dependency "b", "~> 1.a"
|
152
88
|
end
|
153
89
|
|
154
|
-
fetcher.gem
|
155
|
-
s.add_dependency
|
90
|
+
fetcher.gem "b", "1.b" do |s|
|
91
|
+
s.add_dependency "c", ">= 1"
|
156
92
|
end
|
157
93
|
|
158
|
-
fetcher.gem
|
94
|
+
fetcher.gem "c", "1.1.b"
|
159
95
|
end
|
160
96
|
|
161
|
-
dep = Gem::Dependency.new
|
97
|
+
dep = Gem::Dependency.new "a"
|
162
98
|
|
163
99
|
inst = Gem::DependencyInstaller.new :prerelease => true
|
164
100
|
inst.install dep
|
@@ -167,17 +103,17 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
167
103
|
end
|
168
104
|
|
169
105
|
def test_install_when_only_prerelease
|
170
|
-
p1a, gem = util_gem
|
106
|
+
p1a, gem = util_gem "p", "1.a"
|
171
107
|
|
172
108
|
util_setup_spec_fetcher(p1a)
|
173
109
|
|
174
110
|
p1a_data = Gem.read_binary(gem)
|
175
111
|
|
176
|
-
@fetcher.data[
|
112
|
+
@fetcher.data["http://gems.example.com/gems/p-1.a.gem"] = p1a_data
|
177
113
|
|
178
114
|
dep = Gem::Dependency.new "p"
|
179
115
|
inst = Gem::DependencyInstaller.new
|
180
|
-
|
116
|
+
assert_raise Gem::UnsatisfiableDependencyError do
|
181
117
|
inst.install dep
|
182
118
|
end
|
183
119
|
|
@@ -192,7 +128,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
192
128
|
|
193
129
|
p1a_data = Gem.read_binary(@a1_gem)
|
194
130
|
|
195
|
-
@fetcher.data[
|
131
|
+
@fetcher.data["http://gems.example.com/gems/a-1.gem"] = p1a_data
|
196
132
|
|
197
133
|
dep = Gem::Dependency.new "a"
|
198
134
|
inst = Gem::DependencyInstaller.new :prerelease => true
|
@@ -205,30 +141,30 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
205
141
|
def test_install_all_dependencies
|
206
142
|
util_setup_gems
|
207
143
|
|
208
|
-
_, e1_gem = util_gem
|
209
|
-
s.add_dependency
|
144
|
+
_, e1_gem = util_gem "e", "1" do |s|
|
145
|
+
s.add_dependency "b"
|
210
146
|
end
|
211
147
|
|
212
148
|
FileUtils.mv @a1_gem, @tempdir
|
213
149
|
FileUtils.mv @b1_gem, @tempdir
|
214
|
-
FileUtils.mv
|
150
|
+
FileUtils.mv e1_gem, @tempdir
|
215
151
|
|
216
152
|
inst = nil
|
217
153
|
|
218
154
|
Dir.chdir @tempdir do
|
219
155
|
inst = Gem::DependencyInstaller.new :ignore_dependencies => true
|
220
|
-
inst.install
|
156
|
+
inst.install "b"
|
221
157
|
end
|
222
158
|
|
223
|
-
assert_equal %w[b-1], inst.installed_gems.map {
|
224
|
-
|
159
|
+
assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name },
|
160
|
+
"sanity check"
|
225
161
|
|
226
162
|
Dir.chdir @tempdir do
|
227
163
|
inst = Gem::DependencyInstaller.new
|
228
|
-
inst.install
|
164
|
+
inst.install "e"
|
229
165
|
end
|
230
166
|
|
231
|
-
assert_equal %w[a-1 e-1], inst.installed_gems.map {
|
167
|
+
assert_equal %w[a-1 e-1], inst.installed_gems.map {|s| s.full_name }
|
232
168
|
end
|
233
169
|
|
234
170
|
def test_install_cache_dir
|
@@ -242,10 +178,10 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
242
178
|
|
243
179
|
Dir.chdir dir do
|
244
180
|
inst = Gem::DependencyInstaller.new :cache_dir => @tempdir
|
245
|
-
inst.install
|
181
|
+
inst.install "b"
|
246
182
|
end
|
247
183
|
|
248
|
-
assert_equal %w[a-1 b-1], inst.installed_gems.map {
|
184
|
+
assert_equal %w[a-1 b-1], inst.installed_gems.map {|s| s.full_name }
|
249
185
|
|
250
186
|
assert File.exist? File.join(@gemhome, "cache", @a1.file_name)
|
251
187
|
assert File.exist? File.join(@gemhome, "cache", @b1.file_name)
|
@@ -254,9 +190,9 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
254
190
|
def test_install_dependencies_satisfied
|
255
191
|
util_setup_gems
|
256
192
|
|
257
|
-
a2, a2_gem = util_gem
|
193
|
+
a2, a2_gem = util_gem "a", "2"
|
258
194
|
|
259
|
-
FileUtils.rm_rf File.join(@gemhome,
|
195
|
+
FileUtils.rm_rf File.join(@gemhome, "gems")
|
260
196
|
|
261
197
|
Gem::Specification.reset
|
262
198
|
|
@@ -267,21 +203,21 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
267
203
|
|
268
204
|
Dir.chdir @tempdir do
|
269
205
|
inst = Gem::DependencyInstaller.new
|
270
|
-
inst.install
|
206
|
+
inst.install "a", req("= 2")
|
271
207
|
end
|
272
208
|
|
273
|
-
assert_equal %w[a-2], inst.installed_gems.map {
|
274
|
-
|
209
|
+
assert_equal %w[a-2], inst.installed_gems.map {|s| s.full_name },
|
210
|
+
"sanity check"
|
275
211
|
|
276
212
|
FileUtils.rm File.join(@tempdir, a2.file_name)
|
277
213
|
|
278
214
|
Dir.chdir @tempdir do
|
279
215
|
inst = Gem::DependencyInstaller.new
|
280
|
-
inst.install
|
216
|
+
inst.install "b"
|
281
217
|
end
|
282
218
|
|
283
219
|
assert_equal %w[a-2 b-1], Gem::Specification.map(&:full_name)
|
284
|
-
assert_equal %w[b-1], inst.installed_gems.map {
|
220
|
+
assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name }
|
285
221
|
end
|
286
222
|
|
287
223
|
# This asserts that if a gem's dependency is satisfied by an
|
@@ -290,22 +226,22 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
290
226
|
def test_install_doesnt_upgrade_installed_dependencies
|
291
227
|
util_setup_gems
|
292
228
|
|
293
|
-
a2, a2_gem = util_gem
|
294
|
-
a3, a3_gem = util_gem
|
229
|
+
a2, a2_gem = util_gem "a", "2"
|
230
|
+
a3, a3_gem = util_gem "a", "3"
|
295
231
|
|
296
232
|
util_setup_spec_fetcher @a1, a3, @b1
|
297
233
|
|
298
|
-
FileUtils.rm_rf File.join(@gemhome,
|
234
|
+
FileUtils.rm_rf File.join(@gemhome, "gems")
|
299
235
|
|
300
236
|
Gem::Specification.reset
|
301
237
|
|
302
238
|
FileUtils.mv @a1_gem, @tempdir
|
303
239
|
FileUtils.mv a2_gem, @tempdir # not in index
|
304
240
|
FileUtils.mv @b1_gem, @tempdir
|
305
|
-
FileUtils.mv
|
241
|
+
FileUtils.mv a3_gem, @tempdir
|
306
242
|
|
307
243
|
Dir.chdir @tempdir do
|
308
|
-
Gem::DependencyInstaller.new.install
|
244
|
+
Gem::DependencyInstaller.new.install "a", req("= 2")
|
309
245
|
end
|
310
246
|
|
311
247
|
FileUtils.rm File.join(@tempdir, a2.file_name)
|
@@ -314,11 +250,11 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
314
250
|
|
315
251
|
Dir.chdir @tempdir do
|
316
252
|
inst = Gem::DependencyInstaller.new
|
317
|
-
inst.install
|
253
|
+
inst.install "b"
|
318
254
|
end
|
319
255
|
|
320
256
|
assert_equal %w[a-2 b-1], Gem::Specification.map(&:full_name)
|
321
|
-
assert_equal %w[b-1], inst.installed_gems.map {
|
257
|
+
assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name }
|
322
258
|
end
|
323
259
|
|
324
260
|
def test_install_dependency
|
@@ -338,20 +274,18 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
338
274
|
|
339
275
|
Dir.chdir @tempdir do
|
340
276
|
inst = Gem::DependencyInstaller.new(:build_docs_in_background => false)
|
341
|
-
inst.install
|
277
|
+
inst.install "b"
|
342
278
|
end
|
343
279
|
|
344
|
-
assert_equal %w[a-1 b-1], inst.installed_gems.map {
|
280
|
+
assert_equal %w[a-1 b-1], inst.installed_gems.map {|s| s.full_name }
|
345
281
|
|
346
|
-
assert done_installing_ran,
|
282
|
+
assert done_installing_ran, "post installs hook was not run"
|
347
283
|
end
|
348
284
|
|
349
285
|
def test_install_dependency_development
|
350
286
|
util_setup_gems
|
351
287
|
|
352
|
-
@aa1, @aa1_gem = util_gem
|
353
|
-
|
354
|
-
util_reset_gems
|
288
|
+
@aa1, @aa1_gem = util_gem "aa", "1"
|
355
289
|
|
356
290
|
FileUtils.mv @a1_gem, @tempdir
|
357
291
|
FileUtils.mv @aa1_gem, @tempdir
|
@@ -360,18 +294,16 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
360
294
|
|
361
295
|
Dir.chdir @tempdir do
|
362
296
|
inst = Gem::DependencyInstaller.new(:development => true)
|
363
|
-
inst.install
|
297
|
+
inst.install "b"
|
364
298
|
end
|
365
299
|
|
366
|
-
assert_equal %w[a-1 aa-1 b-1], inst.installed_gems.map {
|
300
|
+
assert_equal %w[a-1 aa-1 b-1], inst.installed_gems.map {|s| s.full_name }
|
367
301
|
end
|
368
302
|
|
369
303
|
def test_install_dependency_development_deep
|
370
304
|
util_setup_gems
|
371
305
|
|
372
|
-
@aa1, @aa1_gem = util_gem
|
373
|
-
|
374
|
-
util_reset_gems
|
306
|
+
@aa1, @aa1_gem = util_gem "aa", "1"
|
375
307
|
|
376
308
|
FileUtils.mv @a1_gem, @tempdir
|
377
309
|
FileUtils.mv @aa1_gem, @tempdir
|
@@ -382,18 +314,16 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
382
314
|
|
383
315
|
Dir.chdir @tempdir do
|
384
316
|
inst = Gem::DependencyInstaller.new(:development => true)
|
385
|
-
inst.install
|
317
|
+
inst.install "d"
|
386
318
|
end
|
387
319
|
|
388
|
-
assert_equal %w[a-1 aa-1 b-1 c-1 d-1], inst.installed_gems.map {
|
320
|
+
assert_equal %w[a-1 aa-1 b-1 c-1 d-1], inst.installed_gems.map {|s| s.full_name }
|
389
321
|
end
|
390
322
|
|
391
323
|
def test_install_dependency_development_shallow
|
392
324
|
util_setup_gems
|
393
325
|
|
394
|
-
@aa1, @aa1_gem = util_gem
|
395
|
-
|
396
|
-
util_reset_gems
|
326
|
+
@aa1, @aa1_gem = util_gem "aa", "1"
|
397
327
|
|
398
328
|
FileUtils.mv @a1_gem, @tempdir
|
399
329
|
FileUtils.mv @aa1_gem, @tempdir
|
@@ -404,10 +334,10 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
404
334
|
|
405
335
|
Dir.chdir @tempdir do
|
406
336
|
inst = Gem::DependencyInstaller.new(:development => true, :dev_shallow => true)
|
407
|
-
inst.install
|
337
|
+
inst.install "d"
|
408
338
|
end
|
409
339
|
|
410
|
-
assert_equal %w[c-1 d-1], inst.installed_gems.map {
|
340
|
+
assert_equal %w[c-1 d-1], inst.installed_gems.map {|s| s.full_name }
|
411
341
|
end
|
412
342
|
|
413
343
|
def test_install_dependency_existing
|
@@ -420,29 +350,29 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
420
350
|
|
421
351
|
Dir.chdir @tempdir do
|
422
352
|
inst = Gem::DependencyInstaller.new
|
423
|
-
inst.install
|
353
|
+
inst.install "b"
|
424
354
|
end
|
425
355
|
|
426
|
-
assert_equal %w[b-1], inst.installed_gems.map {
|
356
|
+
assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name }
|
427
357
|
end
|
428
358
|
|
429
359
|
def test_install_dependency_existing_extension
|
430
|
-
extconf_rb = File.join @gemhome,
|
360
|
+
extconf_rb = File.join @gemhome, "gems", "e-1", "extconf.rb"
|
431
361
|
FileUtils.mkdir_p File.dirname extconf_rb
|
432
362
|
|
433
|
-
File.open extconf_rb,
|
363
|
+
File.open extconf_rb, "w" do |io|
|
434
364
|
io.write <<-EXTCONF_RB
|
435
365
|
require 'mkmf'
|
436
366
|
create_makefile 'e'
|
437
367
|
EXTCONF_RB
|
438
368
|
end
|
439
369
|
|
440
|
-
e1 = util_spec
|
441
|
-
s.extensions <<
|
370
|
+
e1 = util_spec "e", "1", nil, "extconf.rb" do |s|
|
371
|
+
s.extensions << "extconf.rb"
|
442
372
|
end
|
443
|
-
e1_gem =
|
373
|
+
e1_gem = e1.cache_file
|
444
374
|
|
445
|
-
_, f1_gem = util_gem
|
375
|
+
_, f1_gem = util_gem "f", "1", "e" => nil
|
446
376
|
|
447
377
|
Gem::Installer.at(e1_gem).install
|
448
378
|
FileUtils.rm_r e1.extension_dir
|
@@ -455,20 +385,20 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
455
385
|
Dir.chdir @tempdir
|
456
386
|
begin
|
457
387
|
inst = Gem::DependencyInstaller.new
|
458
|
-
inst.install
|
388
|
+
inst.install "f"
|
459
389
|
ensure
|
460
390
|
Dir.chdir pwd
|
461
391
|
end
|
462
392
|
|
463
|
-
assert_equal %w[f-1], inst.installed_gems.map {
|
393
|
+
assert_equal %w[f-1], inst.installed_gems.map {|s| s.full_name }
|
464
394
|
|
465
|
-
|
395
|
+
assert_path_exist e1.extension_dir
|
466
396
|
end
|
467
397
|
|
468
398
|
def test_install_dependency_old
|
469
|
-
_, e1_gem = util_gem
|
470
|
-
_, f1_gem = util_gem
|
471
|
-
_, f2_gem = util_gem
|
399
|
+
_, e1_gem = util_gem "e", "1"
|
400
|
+
_, f1_gem = util_gem "f", "1", "e" => nil
|
401
|
+
_, f2_gem = util_gem "f", "2"
|
472
402
|
|
473
403
|
FileUtils.mv e1_gem, @tempdir
|
474
404
|
FileUtils.mv f1_gem, @tempdir
|
@@ -477,10 +407,10 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
477
407
|
|
478
408
|
Dir.chdir @tempdir do
|
479
409
|
inst = Gem::DependencyInstaller.new
|
480
|
-
inst.install
|
410
|
+
inst.install "f"
|
481
411
|
end
|
482
412
|
|
483
|
-
assert_equal %w[f-2], inst.installed_gems.map {
|
413
|
+
assert_equal %w[f-2], inst.installed_gems.map {|s| s.full_name }
|
484
414
|
end
|
485
415
|
|
486
416
|
def test_install_local
|
@@ -491,10 +421,10 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
491
421
|
|
492
422
|
Dir.chdir @tempdir do
|
493
423
|
inst = Gem::DependencyInstaller.new :domain => :local
|
494
|
-
inst.install
|
424
|
+
inst.install "a-1.gem"
|
495
425
|
end
|
496
426
|
|
497
|
-
assert_equal %w[a-1], inst.installed_gems.map {
|
427
|
+
assert_equal %w[a-1], inst.installed_gems.map {|s| s.full_name }
|
498
428
|
end
|
499
429
|
|
500
430
|
def test_install_local_prerelease
|
@@ -505,10 +435,10 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
505
435
|
|
506
436
|
Dir.chdir @tempdir do
|
507
437
|
inst = Gem::DependencyInstaller.new :domain => :local
|
508
|
-
inst.install
|
438
|
+
inst.install "a-1.a.gem"
|
509
439
|
end
|
510
440
|
|
511
|
-
assert_equal %w[a-1.a], inst.installed_gems.map {
|
441
|
+
assert_equal %w[a-1.a], inst.installed_gems.map {|s| s.full_name }
|
512
442
|
end
|
513
443
|
|
514
444
|
def test_install_local_dependency
|
@@ -521,10 +451,10 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
521
451
|
|
522
452
|
Dir.chdir @tempdir do
|
523
453
|
inst = Gem::DependencyInstaller.new :domain => :local
|
524
|
-
inst.install
|
454
|
+
inst.install "b-1.gem"
|
525
455
|
end
|
526
456
|
|
527
|
-
assert_equal %w[a-1 b-1], inst.installed_gems.map {
|
457
|
+
assert_equal %w[a-1 b-1], inst.installed_gems.map {|s| s.full_name }
|
528
458
|
end
|
529
459
|
|
530
460
|
def test_install_local_dependency_installed
|
@@ -536,13 +466,13 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
536
466
|
inst = nil
|
537
467
|
|
538
468
|
Dir.chdir @tempdir do
|
539
|
-
Gem::Installer.at(
|
469
|
+
Gem::Installer.at("a-1.gem").install
|
540
470
|
|
541
471
|
inst = Gem::DependencyInstaller.new :domain => :local
|
542
|
-
inst.install
|
472
|
+
inst.install "b-1.gem"
|
543
473
|
end
|
544
474
|
|
545
|
-
assert_equal %w[b-1], inst.installed_gems.map {
|
475
|
+
assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name }
|
546
476
|
end
|
547
477
|
|
548
478
|
def test_install_local_subdir
|
@@ -552,21 +482,21 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
552
482
|
|
553
483
|
Dir.chdir @tempdir do
|
554
484
|
inst = Gem::DependencyInstaller.new :domain => :local
|
555
|
-
inst.install
|
485
|
+
inst.install "gems/a-1.gem"
|
556
486
|
end
|
557
487
|
|
558
|
-
assert_equal %w[a-1], inst.installed_gems.map {
|
488
|
+
assert_equal %w[a-1], inst.installed_gems.map {|s| s.full_name }
|
559
489
|
end
|
560
490
|
|
561
491
|
def test_install_minimal_deps
|
562
492
|
util_setup_gems
|
563
493
|
|
564
|
-
_, e1_gem = util_gem
|
565
|
-
s.add_dependency
|
494
|
+
_, e1_gem = util_gem "e", "1" do |s|
|
495
|
+
s.add_dependency "b"
|
566
496
|
end
|
567
497
|
|
568
|
-
_, b2_gem = util_gem
|
569
|
-
s.add_dependency
|
498
|
+
_, b2_gem = util_gem "b", "2" do |s|
|
499
|
+
s.add_dependency "a"
|
570
500
|
end
|
571
501
|
|
572
502
|
FileUtils.mv @a1_gem, @tempdir
|
@@ -578,18 +508,52 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
578
508
|
|
579
509
|
Dir.chdir @tempdir do
|
580
510
|
inst = Gem::DependencyInstaller.new :ignore_dependencies => true
|
581
|
-
inst.install
|
511
|
+
inst.install "b", req("= 1")
|
582
512
|
end
|
583
513
|
|
584
|
-
assert_equal %w[b-1], inst.installed_gems.map {
|
585
|
-
|
514
|
+
assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name },
|
515
|
+
"sanity check"
|
586
516
|
|
587
517
|
Dir.chdir @tempdir do
|
588
518
|
inst = Gem::DependencyInstaller.new :minimal_deps => true
|
589
|
-
inst.install
|
519
|
+
inst.install "e"
|
590
520
|
end
|
591
521
|
|
592
|
-
assert_equal %w[a-1 e-1], inst.installed_gems.map {
|
522
|
+
assert_equal %w[a-1 e-1], inst.installed_gems.map {|s| s.full_name }
|
523
|
+
end
|
524
|
+
|
525
|
+
def test_install_no_minimal_deps
|
526
|
+
util_setup_gems
|
527
|
+
|
528
|
+
_, e1_gem = util_gem "e", "1" do |s|
|
529
|
+
s.add_dependency "b"
|
530
|
+
end
|
531
|
+
|
532
|
+
_, b2_gem = util_gem "b", "2" do |s|
|
533
|
+
s.add_dependency "a"
|
534
|
+
end
|
535
|
+
|
536
|
+
FileUtils.mv @a1_gem, @tempdir
|
537
|
+
FileUtils.mv @b1_gem, @tempdir
|
538
|
+
FileUtils.mv b2_gem, @tempdir
|
539
|
+
FileUtils.mv e1_gem, @tempdir
|
540
|
+
|
541
|
+
inst = nil
|
542
|
+
|
543
|
+
Dir.chdir @tempdir do
|
544
|
+
inst = Gem::DependencyInstaller.new :ignore_dependencies => true
|
545
|
+
inst.install "b", req("= 1")
|
546
|
+
end
|
547
|
+
|
548
|
+
assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name },
|
549
|
+
"sanity check"
|
550
|
+
|
551
|
+
Dir.chdir @tempdir do
|
552
|
+
inst = Gem::DependencyInstaller.new :minimal_deps => false
|
553
|
+
inst.install "e"
|
554
|
+
end
|
555
|
+
|
556
|
+
assert_equal %w[a-1 b-2 e-1], inst.installed_gems.map {|s| s.full_name }
|
593
557
|
end
|
594
558
|
|
595
559
|
def test_install_no_document
|
@@ -617,13 +581,13 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
617
581
|
|
618
582
|
Dir.chdir @tempdir do
|
619
583
|
inst = Gem::DependencyInstaller.new :env_shebang => true, :wrappers => true, :format_executable => false
|
620
|
-
inst.install
|
584
|
+
inst.install "a"
|
621
585
|
end
|
622
586
|
|
623
587
|
env = "/\\S+/env" unless Gem.win_platform?
|
624
588
|
|
625
|
-
assert_match %r
|
626
|
-
File.read(File.join(@gemhome,
|
589
|
+
assert_match %r{\A#!#{env} #{RbConfig::CONFIG['ruby_install_name']}\n},
|
590
|
+
File.read(File.join(@gemhome, "bin", "a_bin"))
|
627
591
|
end
|
628
592
|
|
629
593
|
def test_install_force
|
@@ -631,15 +595,15 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
631
595
|
|
632
596
|
FileUtils.mv @b1_gem, @tempdir
|
633
597
|
si = util_setup_spec_fetcher @b1
|
634
|
-
@fetcher.data[
|
598
|
+
@fetcher.data["http://gems.example.com/gems/yaml"] = si.to_yaml
|
635
599
|
inst = nil
|
636
600
|
|
637
601
|
Dir.chdir @tempdir do
|
638
602
|
inst = Gem::DependencyInstaller.new :force => true
|
639
|
-
inst.install
|
603
|
+
inst.install "b"
|
640
604
|
end
|
641
605
|
|
642
|
-
assert_equal %w[b-1], inst.installed_gems.map {
|
606
|
+
assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name }
|
643
607
|
end
|
644
608
|
|
645
609
|
def test_install_build_args
|
@@ -652,7 +616,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
652
616
|
Dir.chdir @tempdir do
|
653
617
|
inst = Gem::DependencyInstaller.new(
|
654
618
|
:build_args => build_args)
|
655
|
-
inst.install
|
619
|
+
inst.install "a"
|
656
620
|
end
|
657
621
|
|
658
622
|
assert_equal build_args.join("\n"), File.read(inst.installed_gems.first.build_info_file).strip
|
@@ -666,10 +630,10 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
666
630
|
|
667
631
|
Dir.chdir @tempdir do
|
668
632
|
inst = Gem::DependencyInstaller.new :ignore_dependencies => true
|
669
|
-
inst.install
|
633
|
+
inst.install "b"
|
670
634
|
end
|
671
635
|
|
672
|
-
assert_equal %w[b-1], inst.installed_gems.map {
|
636
|
+
assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name }
|
673
637
|
end
|
674
638
|
|
675
639
|
def test_install_install_dir
|
@@ -681,40 +645,40 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
681
645
|
inst = Gem::Installer.at @a1.file_name
|
682
646
|
inst.install
|
683
647
|
|
684
|
-
gemhome2 = File.join @tempdir,
|
648
|
+
gemhome2 = File.join @tempdir, "gemhome2"
|
685
649
|
Dir.mkdir gemhome2
|
686
650
|
inst = nil
|
687
651
|
|
688
652
|
Dir.chdir @tempdir do
|
689
653
|
inst = Gem::DependencyInstaller.new :install_dir => gemhome2
|
690
|
-
inst.install
|
654
|
+
inst.install "b"
|
691
655
|
end
|
692
656
|
|
693
|
-
assert_equal %w[a-1 b-1], inst.installed_gems.map {
|
657
|
+
assert_equal %w[a-1 b-1], inst.installed_gems.map {|s| s.full_name }
|
694
658
|
|
695
|
-
assert File.exist?(File.join(gemhome2,
|
696
|
-
assert File.exist?(File.join(gemhome2,
|
659
|
+
assert File.exist?(File.join(gemhome2, "specifications", @a1.spec_name))
|
660
|
+
assert File.exist?(File.join(gemhome2, "cache", @a1.file_name))
|
697
661
|
end
|
698
662
|
|
699
663
|
def test_install_domain_both
|
700
664
|
util_setup_gems
|
701
665
|
|
702
666
|
a1_data = nil
|
703
|
-
File.open @a1_gem,
|
667
|
+
File.open @a1_gem, "rb" do |fp|
|
704
668
|
a1_data = fp.read
|
705
669
|
end
|
706
670
|
|
707
|
-
@fetcher.data[
|
671
|
+
@fetcher.data["http://gems.example.com/gems/a-1.gem"] = a1_data
|
708
672
|
|
709
673
|
FileUtils.mv @b1_gem, @tempdir
|
710
674
|
inst = nil
|
711
675
|
|
712
676
|
Dir.chdir @tempdir do
|
713
677
|
inst = Gem::DependencyInstaller.new :domain => :both
|
714
|
-
inst.install
|
678
|
+
inst.install "b"
|
715
679
|
end
|
716
680
|
|
717
|
-
assert_equal %w[a-1 b-1], inst.installed_gems.map {
|
681
|
+
assert_equal %w[a-1 b-1], inst.installed_gems.map {|s| s.full_name }
|
718
682
|
a1, b1 = inst.installed_gems
|
719
683
|
|
720
684
|
assert_equal a1.spec_file, a1.loaded_from
|
@@ -735,10 +699,10 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
735
699
|
|
736
700
|
Dir.chdir @tempdir do
|
737
701
|
inst = Gem::DependencyInstaller.new :domain => :both
|
738
|
-
inst.install
|
702
|
+
inst.install "b"
|
739
703
|
end
|
740
704
|
|
741
|
-
assert_equal %w[a-1 b-1], inst.installed_gems.map {
|
705
|
+
assert_equal %w[a-1 b-1], inst.installed_gems.map {|s| s.full_name }
|
742
706
|
end
|
743
707
|
|
744
708
|
def test_install_domain_local
|
@@ -748,32 +712,32 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
748
712
|
inst = nil
|
749
713
|
|
750
714
|
Dir.chdir @tempdir do
|
751
|
-
e =
|
715
|
+
e = assert_raise Gem::UnsatisfiableDependencyError do
|
752
716
|
inst = Gem::DependencyInstaller.new :domain => :local
|
753
|
-
inst.install
|
717
|
+
inst.install "b"
|
754
718
|
end
|
755
719
|
|
756
720
|
expected = "Unable to resolve dependency: 'b (>= 0)' requires 'a (>= 0)'"
|
757
721
|
assert_equal expected, e.message
|
758
722
|
end
|
759
723
|
|
760
|
-
assert_equal [], inst.installed_gems.map {
|
724
|
+
assert_equal [], inst.installed_gems.map {|s| s.full_name }
|
761
725
|
end
|
762
726
|
|
763
727
|
def test_install_domain_remote
|
764
728
|
util_setup_gems
|
765
729
|
|
766
730
|
a1_data = nil
|
767
|
-
File.open @a1_gem,
|
731
|
+
File.open @a1_gem, "rb" do |fp|
|
768
732
|
a1_data = fp.read
|
769
733
|
end
|
770
734
|
|
771
|
-
@fetcher.data[
|
735
|
+
@fetcher.data["http://gems.example.com/gems/a-1.gem"] = a1_data
|
772
736
|
|
773
737
|
inst = Gem::DependencyInstaller.new :domain => :remote
|
774
|
-
inst.install
|
738
|
+
inst.install "a"
|
775
739
|
|
776
|
-
assert_equal %w[a-1], inst.installed_gems.map {
|
740
|
+
assert_equal %w[a-1], inst.installed_gems.map {|s| s.full_name }
|
777
741
|
end
|
778
742
|
|
779
743
|
def test_install_dual_repository
|
@@ -787,22 +751,22 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
787
751
|
|
788
752
|
Dir.chdir @tempdir do
|
789
753
|
inst = Gem::DependencyInstaller.new :install_dir => gemhome2
|
790
|
-
inst.install
|
754
|
+
inst.install "a"
|
791
755
|
end
|
792
756
|
|
793
|
-
assert_equal %w[a-1], inst.installed_gems.map {
|
794
|
-
|
757
|
+
assert_equal %w[a-1], inst.installed_gems.map {|s| s.full_name },
|
758
|
+
"sanity check"
|
795
759
|
|
796
|
-
ENV[
|
797
|
-
ENV[
|
760
|
+
ENV["GEM_HOME"] = @gemhome
|
761
|
+
ENV["GEM_PATH"] = [@gemhome, gemhome2].join File::PATH_SEPARATOR
|
798
762
|
Gem.clear_paths
|
799
763
|
|
800
764
|
Dir.chdir @tempdir do
|
801
765
|
inst = Gem::DependencyInstaller.new
|
802
|
-
inst.install
|
766
|
+
inst.install "b"
|
803
767
|
end
|
804
768
|
|
805
|
-
assert_equal %w[b-1], inst.installed_gems.map {
|
769
|
+
assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name }
|
806
770
|
end
|
807
771
|
|
808
772
|
def test_install_reinstall
|
@@ -813,8 +777,8 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
813
777
|
inst = nil
|
814
778
|
|
815
779
|
Dir.chdir @tempdir do
|
816
|
-
inst = Gem::DependencyInstaller.new
|
817
|
-
inst.install
|
780
|
+
inst = Gem::DependencyInstaller.new :force => true
|
781
|
+
inst.install "a"
|
818
782
|
end
|
819
783
|
|
820
784
|
assert_equal %w[a-1], Gem::Specification.map(&:full_name)
|
@@ -825,30 +789,30 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
825
789
|
util_setup_gems
|
826
790
|
|
827
791
|
a1_data = nil
|
828
|
-
File.open @a1_gem,
|
792
|
+
File.open @a1_gem, "rb" do |fp|
|
829
793
|
a1_data = fp.read
|
830
794
|
end
|
831
795
|
|
832
|
-
@fetcher.data[
|
796
|
+
@fetcher.data["http://gems.example.com/gems/a-1.gem"] = a1_data
|
833
797
|
|
834
798
|
inst = Gem::DependencyInstaller.new
|
835
799
|
|
836
800
|
Dir.chdir @tempdir do
|
837
|
-
inst.install
|
801
|
+
inst.install "a"
|
838
802
|
end
|
839
803
|
|
840
|
-
assert_equal %w[a-1], inst.installed_gems.map {
|
804
|
+
assert_equal %w[a-1], inst.installed_gems.map {|s| s.full_name }
|
841
805
|
end
|
842
806
|
|
843
807
|
def test_install_remote_dep
|
844
808
|
util_setup_gems
|
845
809
|
|
846
810
|
a1_data = nil
|
847
|
-
File.open @a1_gem,
|
811
|
+
File.open @a1_gem, "rb" do |fp|
|
848
812
|
a1_data = fp.read
|
849
813
|
end
|
850
814
|
|
851
|
-
@fetcher.data[
|
815
|
+
@fetcher.data["http://gems.example.com/gems/a-1.gem"] = a1_data
|
852
816
|
|
853
817
|
inst = Gem::DependencyInstaller.new
|
854
818
|
|
@@ -857,28 +821,28 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
857
821
|
inst.install dep
|
858
822
|
end
|
859
823
|
|
860
|
-
assert_equal %w[a-1], inst.installed_gems.map {
|
824
|
+
assert_equal %w[a-1], inst.installed_gems.map {|s| s.full_name }
|
861
825
|
end
|
862
826
|
|
863
827
|
def test_install_remote_platform_newer
|
864
828
|
util_setup_gems
|
865
829
|
|
866
|
-
a2_o, a2_o_gem = util_gem
|
830
|
+
a2_o, a2_o_gem = util_gem "a", "2" do |s|
|
867
831
|
s.platform = Gem::Platform.new %w[cpu other_platform 1]
|
868
832
|
end
|
869
833
|
|
870
834
|
si = util_setup_spec_fetcher @a1, a2_o
|
871
835
|
|
872
|
-
@fetcher.data[
|
836
|
+
@fetcher.data["http://gems.example.com/gems/yaml"] = si.to_yaml
|
873
837
|
|
874
838
|
a1_data = nil
|
875
839
|
a2_o_data = nil
|
876
840
|
|
877
|
-
File.open @a1_gem,
|
841
|
+
File.open @a1_gem, "rb" do |fp|
|
878
842
|
a1_data = fp.read
|
879
843
|
end
|
880
844
|
|
881
|
-
File.open a2_o_gem,
|
845
|
+
File.open a2_o_gem, "rb" do |fp|
|
882
846
|
a2_o_data = fp.read
|
883
847
|
end
|
884
848
|
|
@@ -888,43 +852,45 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
888
852
|
a2_o_data
|
889
853
|
|
890
854
|
inst = Gem::DependencyInstaller.new :domain => :remote
|
891
|
-
inst.install
|
855
|
+
inst.install "a"
|
892
856
|
|
893
|
-
assert_equal %w[a-1], inst.installed_gems.map {
|
857
|
+
assert_equal %w[a-1], inst.installed_gems.map {|s| s.full_name }
|
894
858
|
end
|
895
859
|
|
896
860
|
def test_install_platform_is_ignored_when_a_file_is_specified
|
897
|
-
_, a_gem = util_gem
|
861
|
+
_, a_gem = util_gem "a", "1" do |s|
|
898
862
|
s.platform = Gem::Platform.new %w[cpu other_platform 1]
|
899
863
|
end
|
900
864
|
|
901
865
|
inst = Gem::DependencyInstaller.new :domain => :local
|
902
866
|
inst.install a_gem
|
903
867
|
|
904
|
-
assert_equal %w[a-1-cpu-other_platform-1], inst.installed_gems.map {
|
868
|
+
assert_equal %w[a-1-cpu-other_platform-1], inst.installed_gems.map {|s| s.full_name }
|
905
869
|
end
|
906
870
|
|
907
|
-
|
871
|
+
require "rubygems/openssl"
|
872
|
+
|
873
|
+
if Gem::HAVE_OPENSSL
|
908
874
|
def test_install_security_policy
|
909
875
|
util_setup_gems
|
910
876
|
|
911
|
-
data = File.open(@a1_gem,
|
912
|
-
@fetcher.data[
|
877
|
+
data = File.open(@a1_gem, "rb") {|f| f.read }
|
878
|
+
@fetcher.data["http://gems.example.com/gems/a-1.gem"] = data
|
913
879
|
|
914
|
-
data = File.open(@b1_gem,
|
915
|
-
@fetcher.data[
|
880
|
+
data = File.open(@b1_gem, "rb") {|f| f.read }
|
881
|
+
@fetcher.data["http://gems.example.com/gems/b-1.gem"] = data
|
916
882
|
|
917
883
|
policy = Gem::Security::HighSecurity
|
918
884
|
inst = Gem::DependencyInstaller.new :security_policy => policy
|
919
885
|
|
920
|
-
e =
|
921
|
-
inst.install
|
886
|
+
e = assert_raise Gem::Security::Exception do
|
887
|
+
inst.install "b"
|
922
888
|
end
|
923
889
|
|
924
|
-
assert_equal
|
890
|
+
assert_equal "unsigned gems are not allowed by the High Security policy",
|
925
891
|
e.message
|
926
892
|
|
927
|
-
assert_equal %w[], inst.installed_gems.map {
|
893
|
+
assert_equal %w[], inst.installed_gems.map {|s| s.full_name }
|
928
894
|
end
|
929
895
|
end
|
930
896
|
|
@@ -933,139 +899,115 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
933
899
|
def test_install_no_wrappers
|
934
900
|
util_setup_gems
|
935
901
|
|
936
|
-
@fetcher.data[
|
902
|
+
@fetcher.data["http://gems.example.com/gems/a-1.gem"] = read_binary(@a1_gem)
|
937
903
|
|
938
904
|
inst = Gem::DependencyInstaller.new :wrappers => false, :format_executable => false
|
939
|
-
inst.install
|
905
|
+
inst.install "a"
|
940
906
|
|
941
|
-
refute_match(%r
|
942
|
-
File.read(File.join(@gemhome,
|
907
|
+
refute_match(%r{This file was generated by RubyGems.},
|
908
|
+
File.read(File.join(@gemhome, "bin", "a_bin")))
|
943
909
|
end
|
944
910
|
end
|
945
911
|
|
946
912
|
def test_install_version
|
947
913
|
util_setup_d
|
948
914
|
|
949
|
-
data = File.open(@d2_gem,
|
950
|
-
@fetcher.data[
|
915
|
+
data = File.open(@d2_gem, "rb") {|f| f.read }
|
916
|
+
@fetcher.data["http://gems.example.com/gems/d-2.gem"] = data
|
951
917
|
|
952
|
-
data = File.open(@d1_gem,
|
953
|
-
@fetcher.data[
|
918
|
+
data = File.open(@d1_gem, "rb") {|f| f.read }
|
919
|
+
@fetcher.data["http://gems.example.com/gems/d-1.gem"] = data
|
954
920
|
|
955
921
|
inst = Gem::DependencyInstaller.new
|
956
922
|
|
957
|
-
inst.install
|
923
|
+
inst.install "d", "= 1"
|
958
924
|
|
959
|
-
assert_equal %w[d-1], inst.installed_gems.map {
|
925
|
+
assert_equal %w[d-1], inst.installed_gems.map {|s| s.full_name }
|
960
926
|
end
|
961
927
|
|
962
928
|
def test_install_version_default
|
963
929
|
util_setup_d
|
964
930
|
|
965
|
-
data = File.open(@d2_gem,
|
966
|
-
@fetcher.data[
|
931
|
+
data = File.open(@d2_gem, "rb") {|f| f.read }
|
932
|
+
@fetcher.data["http://gems.example.com/gems/d-2.gem"] = data
|
967
933
|
|
968
|
-
data = File.open(@d1_gem,
|
969
|
-
@fetcher.data[
|
934
|
+
data = File.open(@d1_gem, "rb") {|f| f.read }
|
935
|
+
@fetcher.data["http://gems.example.com/gems/d-1.gem"] = data
|
970
936
|
|
971
937
|
inst = Gem::DependencyInstaller.new
|
972
|
-
inst.install
|
938
|
+
inst.install "d"
|
973
939
|
|
974
|
-
assert_equal %w[d-2], inst.installed_gems.map {
|
940
|
+
assert_equal %w[d-2], inst.installed_gems.map {|s| s.full_name }
|
975
941
|
end
|
976
942
|
|
977
|
-
def
|
978
|
-
|
943
|
+
def test_install_legacy_spec_with_nil_required_ruby_version
|
944
|
+
path = File.expand_path "data/null-required-ruby-version.gemspec.rz", __dir__
|
945
|
+
spec = Marshal.load Gem.read_binary(path)
|
946
|
+
def spec.validate(*args); end
|
979
947
|
|
980
|
-
|
981
|
-
dep = Gem::Dependency.new 'b', '>= 0'
|
948
|
+
util_build_gem spec
|
982
949
|
|
983
|
-
|
950
|
+
cache_file = File.join @tempdir, "gems", "#{spec.original_name}.gem"
|
951
|
+
FileUtils.mkdir_p File.dirname cache_file
|
952
|
+
FileUtils.mv spec.cache_file, cache_file
|
984
953
|
|
985
|
-
|
986
|
-
inst.find_gems_with_sources(dep)
|
987
|
-
end
|
954
|
+
util_setup_spec_fetcher spec
|
988
955
|
|
989
|
-
|
956
|
+
data = Gem.read_binary(cache_file)
|
990
957
|
|
991
|
-
|
992
|
-
|
993
|
-
assert_equal @b1, s.spec
|
994
|
-
assert_equal Gem::Source.new(@gem_repo), s.source
|
995
|
-
end
|
996
|
-
|
997
|
-
def test_find_spec_by_name_and_version_wildcard
|
998
|
-
util_gem 'a', 1
|
999
|
-
FileUtils.mv 'gems/a-1.gem', @tempdir
|
958
|
+
@fetcher.data["http://gems.example.com/gems/activesupport-1.0.0.gem"] = data
|
1000
959
|
|
1001
|
-
|
960
|
+
dep = Gem::Dependency.new "activesupport"
|
1002
961
|
|
1003
962
|
inst = Gem::DependencyInstaller.new
|
963
|
+
inst.install dep
|
1004
964
|
|
1005
|
-
|
1006
|
-
inst.find_spec_by_name_and_version('*.gem')
|
1007
|
-
end
|
1008
|
-
|
1009
|
-
assert_equal %w[a-1], available.each_spec.map { |spec| spec.full_name }
|
965
|
+
assert_equal %w[activesupport-1.0.0], Gem::Specification.map(&:full_name)
|
1010
966
|
end
|
1011
967
|
|
1012
|
-
def
|
1013
|
-
|
1014
|
-
|
1015
|
-
|
968
|
+
def test_install_legacy_spec_with_nil_required_rubygems_version
|
969
|
+
path = File.expand_path "data/null-required-rubygems-version.gemspec.rz", __dir__
|
970
|
+
spec = Marshal.load Gem.read_binary(path)
|
971
|
+
def spec.validate(*args); end
|
1016
972
|
|
1017
|
-
|
1018
|
-
Gem::Deprecate.skip_during do
|
1019
|
-
inst.find_spec_by_name_and_version '*.gem'
|
1020
|
-
end
|
1021
|
-
end
|
1022
|
-
end
|
973
|
+
util_build_gem spec
|
1023
974
|
|
1024
|
-
|
1025
|
-
FileUtils.
|
975
|
+
cache_file = File.join @tempdir, "gems", "#{spec.original_name}.gem"
|
976
|
+
FileUtils.mkdir_p File.dirname cache_file
|
977
|
+
FileUtils.mv spec.cache_file, cache_file
|
1026
978
|
|
1027
|
-
|
979
|
+
util_setup_spec_fetcher spec
|
1028
980
|
|
1029
|
-
|
1030
|
-
Gem::Deprecate.skip_during do
|
1031
|
-
inst.find_spec_by_name_and_version 'rdoc.gem'
|
1032
|
-
end
|
1033
|
-
end
|
981
|
+
data = Gem.read_binary(cache_file)
|
1034
982
|
|
1035
|
-
|
1036
|
-
assert_equal "package metadata is missing in #{full_path}", e.message
|
1037
|
-
end
|
983
|
+
@fetcher.data["http://gems.example.com/gems/activesupport-1.0.0.gem"] = data
|
1038
984
|
|
1039
|
-
|
1040
|
-
Dir.mkdir 'rdoc'
|
985
|
+
dep = Gem::Dependency.new "activesupport"
|
1041
986
|
|
1042
987
|
inst = Gem::DependencyInstaller.new
|
988
|
+
inst.install dep
|
1043
989
|
|
1044
|
-
|
1045
|
-
Gem::Deprecate.skip_during do
|
1046
|
-
inst.find_spec_by_name_and_version 'rdoc'
|
1047
|
-
end
|
1048
|
-
end
|
1049
|
-
|
1050
|
-
assert_equal "Could not find a valid gem 'rdoc' (>= 0) " +
|
1051
|
-
"locally or in a repository",
|
1052
|
-
e.message
|
990
|
+
assert_equal %w[activesupport-1.0.0], Gem::Specification.map(&:full_name)
|
1053
991
|
end
|
1054
992
|
|
1055
|
-
def
|
1056
|
-
|
993
|
+
def test_find_gems_gems_with_sources
|
994
|
+
util_setup_gems
|
1057
995
|
|
1058
996
|
inst = Gem::DependencyInstaller.new
|
997
|
+
dep = Gem::Dependency.new "b", ">= 0"
|
1059
998
|
|
1060
|
-
|
1061
|
-
|
1062
|
-
|
1063
|
-
|
999
|
+
Gem::Specification.reset
|
1000
|
+
|
1001
|
+
set = Gem::Deprecate.skip_during do
|
1002
|
+
inst.find_gems_with_sources(dep)
|
1064
1003
|
end
|
1065
1004
|
|
1066
|
-
|
1067
|
-
|
1068
|
-
|
1005
|
+
assert_kind_of Gem::AvailableSet, set
|
1006
|
+
|
1007
|
+
s = set.set.first
|
1008
|
+
|
1009
|
+
assert_equal @b1, s.spec
|
1010
|
+
assert_equal Gem::Source.new(@gem_repo), s.source
|
1069
1011
|
end
|
1070
1012
|
|
1071
1013
|
def test_find_gems_with_sources_local
|
@@ -1073,7 +1015,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
1073
1015
|
|
1074
1016
|
FileUtils.mv @a1_gem, @tempdir
|
1075
1017
|
inst = Gem::DependencyInstaller.new
|
1076
|
-
dep = Gem::Dependency.new
|
1018
|
+
dep = Gem::Dependency.new "a", ">= 0"
|
1077
1019
|
set = nil
|
1078
1020
|
|
1079
1021
|
Dir.chdir @tempdir do
|
@@ -1088,12 +1030,12 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
1088
1030
|
|
1089
1031
|
remote, local = gems
|
1090
1032
|
|
1091
|
-
assert_equal
|
1033
|
+
assert_equal "a-1", local.spec.full_name, "local spec"
|
1092
1034
|
assert_equal File.join(@tempdir, @a1.file_name),
|
1093
|
-
local.source.download(local.spec),
|
1035
|
+
local.source.download(local.spec), "local path"
|
1094
1036
|
|
1095
|
-
assert_equal
|
1096
|
-
assert_equal Gem::Source.new(@gem_repo), remote.source,
|
1037
|
+
assert_equal "a-1", remote.spec.full_name, "remote spec"
|
1038
|
+
assert_equal Gem::Source.new(@gem_repo), remote.source, "remote path"
|
1097
1039
|
end
|
1098
1040
|
|
1099
1041
|
def test_find_gems_with_sources_prerelease
|
@@ -1101,7 +1043,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
1101
1043
|
|
1102
1044
|
installer = Gem::DependencyInstaller.new
|
1103
1045
|
|
1104
|
-
dependency = Gem::Dependency.new(
|
1046
|
+
dependency = Gem::Dependency.new("a", Gem::Requirement.default)
|
1105
1047
|
|
1106
1048
|
set = Gem::Deprecate.skip_during do
|
1107
1049
|
installer.find_gems_with_sources(dependency)
|
@@ -1109,8 +1051,8 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
1109
1051
|
|
1110
1052
|
releases = set.all_specs
|
1111
1053
|
|
1112
|
-
assert releases.any? {
|
1113
|
-
refute releases.any? {
|
1054
|
+
assert releases.any? {|s| s.name == "a" && s.version.to_s == "1" }
|
1055
|
+
refute releases.any? {|s| s.name == "a" && s.version.to_s == "1.a" }
|
1114
1056
|
|
1115
1057
|
dependency.prerelease = true
|
1116
1058
|
|
@@ -1125,15 +1067,15 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
1125
1067
|
|
1126
1068
|
def test_find_gems_with_sources_with_best_only_and_platform
|
1127
1069
|
util_setup_gems
|
1128
|
-
a1_x86_mingw32, = util_gem
|
1129
|
-
s.platform =
|
1070
|
+
a1_x86_mingw32, = util_gem "a", "1" do |s|
|
1071
|
+
s.platform = "x86-mingw32"
|
1130
1072
|
end
|
1131
1073
|
util_setup_spec_fetcher @a1, a1_x86_mingw32
|
1132
|
-
Gem.platforms << Gem::Platform.new(
|
1074
|
+
Gem.platforms << Gem::Platform.new("x86-mingw32")
|
1133
1075
|
|
1134
1076
|
installer = Gem::DependencyInstaller.new
|
1135
1077
|
|
1136
|
-
dependency = Gem::Dependency.new(
|
1078
|
+
dependency = Gem::Dependency.new("a", Gem::Requirement.default)
|
1137
1079
|
|
1138
1080
|
set = Gem::Deprecate.skip_during do
|
1139
1081
|
installer.find_gems_with_sources(dependency, true)
|
@@ -1149,7 +1091,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
1149
1091
|
|
1150
1092
|
installer = Gem::DependencyInstaller.new
|
1151
1093
|
|
1152
|
-
dep = Gem::Dependency.new(
|
1094
|
+
dep = Gem::Dependency.new("a")
|
1153
1095
|
|
1154
1096
|
out = Gem::Deprecate.skip_during do
|
1155
1097
|
installer.find_gems_with_sources(dep)
|
@@ -1166,9 +1108,9 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
1166
1108
|
FileUtils.mv @b1_gem, @tempdir
|
1167
1109
|
|
1168
1110
|
inst = Gem::DependencyInstaller.new
|
1169
|
-
request_set = inst.resolve_dependencies
|
1111
|
+
request_set = inst.resolve_dependencies "b", req(">= 0")
|
1170
1112
|
|
1171
|
-
requests = request_set.sorted_requests.map {
|
1113
|
+
requests = request_set.sorted_requests.map {|req| req.full_name }
|
1172
1114
|
|
1173
1115
|
assert_equal %w[a-1 b-1], requests
|
1174
1116
|
end
|
@@ -1180,9 +1122,9 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
1180
1122
|
FileUtils.mv @b1_gem, @tempdir
|
1181
1123
|
|
1182
1124
|
inst = Gem::DependencyInstaller.new :ignore_dependencies => true
|
1183
|
-
request_set = inst.resolve_dependencies
|
1125
|
+
request_set = inst.resolve_dependencies "b", req(">= 0")
|
1184
1126
|
|
1185
|
-
requests = request_set.sorted_requests.map {
|
1127
|
+
requests = request_set.sorted_requests.map {|req| req.full_name }
|
1186
1128
|
|
1187
1129
|
assert request_set.ignore_dependencies
|
1188
1130
|
|
@@ -1192,78 +1134,22 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
1192
1134
|
def test_resolve_dependencies_local
|
1193
1135
|
util_setup_gems
|
1194
1136
|
|
1195
|
-
@a2, @a2_gem = util_gem
|
1137
|
+
@a2, @a2_gem = util_gem "a", "2"
|
1196
1138
|
FileUtils.mv @a1_gem, @tempdir
|
1197
1139
|
FileUtils.mv @a2_gem, @tempdir
|
1198
1140
|
|
1199
1141
|
inst = Gem::DependencyInstaller.new
|
1200
|
-
request_set = inst.resolve_dependencies
|
1142
|
+
request_set = inst.resolve_dependencies "a-1.gem", req(">= 0")
|
1201
1143
|
|
1202
|
-
requests = request_set.sorted_requests.map {
|
1144
|
+
requests = request_set.sorted_requests.map {|req| req.full_name }
|
1203
1145
|
|
1204
1146
|
assert_equal %w[a-1], requests
|
1205
1147
|
end
|
1206
1148
|
|
1207
|
-
def util_write_a1_bin
|
1208
|
-
write_file File.join('gems', 'a-1', 'bin', 'a_bin') do |fp|
|
1209
|
-
fp.puts "#!/usr/bin/ruby"
|
1210
|
-
end
|
1211
|
-
end
|
1212
|
-
|
1213
|
-
def util_setup_c1_pre
|
1214
|
-
@c1_pre, @c1_pre_gem = util_spec 'c', '1.a' do |s|
|
1215
|
-
s.add_dependency 'a', '1.a'
|
1216
|
-
s.add_dependency 'b', '1'
|
1217
|
-
end
|
1218
|
-
|
1219
|
-
util_reset_gems
|
1220
|
-
end
|
1221
|
-
|
1222
1149
|
def util_setup_d
|
1223
|
-
@d1, @d1_gem = util_gem
|
1224
|
-
@d2, @d2_gem = util_gem
|
1225
|
-
|
1226
|
-
util_reset_gems
|
1227
|
-
end
|
1228
|
-
|
1229
|
-
def util_setup_wxyz
|
1230
|
-
@x1_m, @x1_m_gem = util_spec 'x', '1' do |s|
|
1231
|
-
s.platform = Gem::Platform.new %w[cpu my_platform 1]
|
1232
|
-
end
|
1233
|
-
|
1234
|
-
@x1_o, @x1_o_gem = util_spec 'x', '1' do |s|
|
1235
|
-
s.platform = Gem::Platform.new %w[cpu other_platform 1]
|
1236
|
-
end
|
1237
|
-
|
1238
|
-
@w1, @w1_gem = util_spec 'w', '1', 'x' => nil
|
1239
|
-
|
1240
|
-
@y1, @y1_gem = util_spec 'y', '1'
|
1241
|
-
@y1_1_p, @y1_1_p_gem = util_spec 'y', '1.1' do |s|
|
1242
|
-
s.platform = Gem::Platform.new %w[cpu my_platform 1]
|
1243
|
-
end
|
1150
|
+
@d1, @d1_gem = util_gem "d", "1"
|
1151
|
+
@d2, @d2_gem = util_gem "d", "2"
|
1244
1152
|
|
1245
|
-
@
|
1246
|
-
|
1247
|
-
util_reset_gems
|
1248
|
-
end
|
1249
|
-
|
1250
|
-
def util_reset_gems
|
1251
|
-
@a1 ||= nil
|
1252
|
-
@b1 ||= nil
|
1253
|
-
@a1_pre ||= nil
|
1254
|
-
@c1_pre ||= nil
|
1255
|
-
@d1 ||= nil
|
1256
|
-
@d2 ||= nil
|
1257
|
-
@w1 ||= nil
|
1258
|
-
@x1_m ||= nil
|
1259
|
-
@x1_o ||= nil
|
1260
|
-
@y1 ||= nil
|
1261
|
-
@y1_1_p ||= nil
|
1262
|
-
@z1 ||= nil
|
1263
|
-
|
1264
|
-
util_setup_spec_fetcher(*[@a1, @a1_pre, @b1, @c1_pre,
|
1265
|
-
@d1, @d2, @x1_m, @x1_o, @w1, @y1,
|
1266
|
-
@y1_1_p, @z1].compact)
|
1153
|
+
util_setup_spec_fetcher(@d1, @d2)
|
1267
1154
|
end
|
1268
|
-
|
1269
1155
|
end
|