rubygems-update 3.1.2 → 3.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/{History.txt → CHANGELOG.md} +756 -489
- data/CODE_OF_CONDUCT.md +55 -19
- data/CONTRIBUTING.md +25 -11
- data/Manifest.txt +75 -104
- data/POLICIES.md +6 -12
- data/README.md +5 -5
- data/Rakefile +64 -92
- data/bin/update_rubygems +1 -1
- data/bundler/CHANGELOG.md +1636 -1422
- data/bundler/README.md +6 -8
- data/bundler/UPGRADING.md +18 -32
- data/bundler/bundler.gemspec +4 -4
- data/bundler/exe/bundle +3 -0
- data/bundler/lib/bundler.rb +32 -8
- data/bundler/lib/bundler/build_metadata.rb +4 -12
- data/bundler/lib/bundler/cli.rb +55 -21
- data/bundler/lib/bundler/cli/add.rb +1 -1
- data/bundler/lib/bundler/cli/binstubs.rb +6 -2
- data/bundler/lib/bundler/cli/cache.rb +1 -7
- data/bundler/lib/bundler/cli/clean.rb +1 -1
- data/bundler/lib/bundler/cli/common.rb +14 -0
- data/bundler/lib/bundler/cli/console.rb +1 -1
- data/bundler/lib/bundler/cli/doctor.rb +1 -1
- data/bundler/lib/bundler/cli/exec.rb +4 -4
- data/bundler/lib/bundler/cli/fund.rb +36 -0
- data/bundler/lib/bundler/cli/gem.rb +86 -11
- data/bundler/lib/bundler/cli/info.rb +15 -4
- data/bundler/lib/bundler/cli/init.rb +2 -2
- data/bundler/lib/bundler/cli/inject.rb +1 -1
- data/bundler/lib/bundler/cli/install.rb +16 -13
- data/bundler/lib/bundler/cli/issue.rb +2 -2
- data/bundler/lib/bundler/cli/list.rb +12 -10
- data/bundler/lib/bundler/cli/outdated.rb +87 -66
- data/bundler/lib/bundler/cli/plugin.rb +10 -0
- data/bundler/lib/bundler/cli/pristine.rb +5 -0
- data/bundler/lib/bundler/cli/show.rb +1 -1
- data/bundler/lib/bundler/cli/update.rb +3 -1
- data/bundler/lib/bundler/compact_index_client.rb +1 -1
- data/bundler/lib/bundler/compact_index_client/cache.rb +6 -14
- data/bundler/lib/bundler/compact_index_client/gem_parser.rb +28 -0
- data/bundler/lib/bundler/compact_index_client/updater.rb +5 -13
- data/bundler/lib/bundler/definition.rb +66 -82
- data/bundler/lib/bundler/dep_proxy.rb +16 -9
- data/bundler/lib/bundler/dependency.rb +3 -10
- data/bundler/lib/bundler/dsl.rb +5 -9
- data/bundler/lib/bundler/endpoint_specification.rb +1 -1
- data/bundler/lib/bundler/env.rb +1 -1
- data/bundler/lib/bundler/environment_preserver.rb +26 -2
- data/bundler/lib/bundler/errors.rb +1 -0
- data/bundler/lib/bundler/feature_flag.rb +0 -3
- data/bundler/lib/bundler/fetcher.rb +4 -3
- data/bundler/lib/bundler/fetcher/base.rb +1 -1
- data/bundler/lib/bundler/fetcher/compact_index.rb +1 -1
- data/bundler/lib/bundler/fetcher/downloader.rb +1 -1
- data/bundler/lib/bundler/fetcher/index.rb +3 -4
- data/bundler/lib/bundler/friendly_errors.rb +22 -13
- data/bundler/lib/bundler/gem_helper.rb +33 -19
- data/bundler/lib/bundler/gem_helpers.rb +36 -25
- data/bundler/lib/bundler/gem_version_promoter.rb +4 -4
- data/bundler/lib/bundler/graph.rb +1 -1
- data/bundler/lib/bundler/index.rb +6 -2
- data/bundler/lib/bundler/injector.rb +22 -4
- data/bundler/lib/bundler/inline.rb +2 -2
- data/bundler/lib/bundler/installer.rb +35 -32
- data/bundler/lib/bundler/installer/gem_installer.rb +3 -3
- data/bundler/lib/bundler/installer/parallel_installer.rb +10 -10
- data/bundler/lib/bundler/installer/standalone.rb +2 -2
- data/bundler/lib/bundler/lazy_specification.rb +35 -11
- data/bundler/lib/bundler/lockfile_generator.rb +1 -1
- data/bundler/lib/bundler/lockfile_parser.rb +1 -1
- data/bundler/lib/bundler/man/.document +1 -0
- data/bundler/{man → lib/bundler/man}/bundle-add.1 +1 -1
- data/bundler/{man/bundle-add.ronn → lib/bundler/man/bundle-add.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-binstubs.1 +5 -3
- data/bundler/{man/bundle-binstubs.ronn → lib/bundler/man/bundle-binstubs.1.ronn} +2 -4
- data/bundler/{man → lib/bundler/man}/bundle-cache.1 +1 -1
- data/bundler/{man/bundle-cache.ronn → lib/bundler/man/bundle-cache.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-check.1 +1 -1
- data/bundler/{man/bundle-check.ronn → lib/bundler/man/bundle-check.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-clean.1 +1 -1
- data/bundler/{man/bundle-clean.ronn → lib/bundler/man/bundle-clean.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-config.1 +16 -25
- data/bundler/{man/bundle-config.ronn → lib/bundler/man/bundle-config.1.ronn} +19 -30
- data/bundler/{man → lib/bundler/man}/bundle-doctor.1 +1 -1
- data/bundler/{man/bundle-doctor.ronn → lib/bundler/man/bundle-doctor.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-exec.1 +1 -1
- data/bundler/{man/bundle-exec.ronn → lib/bundler/man/bundle-exec.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-gem.1 +25 -3
- data/bundler/{man/bundle-gem.ronn → lib/bundler/man/bundle-gem.1.ronn} +30 -7
- data/bundler/{man → lib/bundler/man}/bundle-info.1 +1 -1
- data/bundler/{man/bundle-info.ronn → lib/bundler/man/bundle-info.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-init.1 +1 -1
- data/bundler/{man/bundle-init.ronn → lib/bundler/man/bundle-init.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-inject.1 +1 -1
- data/bundler/{man/bundle-inject.ronn → lib/bundler/man/bundle-inject.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-install.1 +30 -3
- data/bundler/{man/bundle-install.ronn → lib/bundler/man/bundle-install.1.ronn} +25 -3
- data/bundler/{man → lib/bundler/man}/bundle-list.1 +7 -7
- data/bundler/{man/bundle-list.ronn → lib/bundler/man/bundle-list.1.ronn} +6 -6
- data/bundler/{man → lib/bundler/man}/bundle-lock.1 +1 -1
- data/bundler/{man/bundle-lock.ronn → lib/bundler/man/bundle-lock.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-open.1 +1 -1
- data/bundler/{man/bundle-open.ronn → lib/bundler/man/bundle-open.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-outdated.1 +1 -1
- data/bundler/{man/bundle-outdated.ronn → lib/bundler/man/bundle-outdated.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-platform.1 +1 -1
- data/bundler/{man/bundle-platform.ronn → lib/bundler/man/bundle-platform.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-pristine.1 +1 -1
- data/bundler/{man/bundle-pristine.ronn → lib/bundler/man/bundle-pristine.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-remove.1 +1 -1
- data/bundler/{man/bundle-remove.ronn → lib/bundler/man/bundle-remove.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-show.1 +1 -1
- data/bundler/{man/bundle-show.ronn → lib/bundler/man/bundle-show.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-update.1 +1 -1
- data/bundler/{man/bundle-update.ronn → lib/bundler/man/bundle-update.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-viz.1 +1 -1
- data/bundler/{man/bundle-viz.ronn → lib/bundler/man/bundle-viz.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle.1 +1 -1
- data/bundler/{man/bundle.ronn → lib/bundler/man/bundle.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/gemfile.5 +4 -4
- data/bundler/{man → lib/bundler/man}/gemfile.5.ronn +4 -4
- data/bundler/{man → lib/bundler/man}/index.txt +0 -0
- data/bundler/lib/bundler/mirror.rb +2 -2
- data/bundler/lib/bundler/plugin.rb +30 -5
- data/bundler/lib/bundler/plugin/api/source.rb +1 -1
- data/bundler/lib/bundler/plugin/dsl.rb +1 -1
- data/bundler/lib/bundler/plugin/index.rb +10 -1
- data/bundler/lib/bundler/plugin/installer.rb +1 -1
- data/bundler/lib/bundler/plugin/installer/rubygems.rb +1 -1
- data/bundler/lib/bundler/plugin/source_list.rb +1 -1
- data/bundler/lib/bundler/psyched_yaml.rb +0 -15
- data/bundler/lib/bundler/remote_specification.rb +5 -2
- data/bundler/lib/bundler/resolver.rb +43 -19
- data/bundler/lib/bundler/resolver/spec_group.rb +39 -24
- data/bundler/lib/bundler/retry.rb +1 -1
- data/bundler/lib/bundler/ruby_version.rb +1 -1
- data/bundler/lib/bundler/rubygems_ext.rb +69 -9
- data/bundler/lib/bundler/rubygems_gem_installer.rb +3 -9
- data/bundler/lib/bundler/rubygems_integration.rb +26 -61
- data/bundler/lib/bundler/runtime.rb +4 -14
- data/bundler/lib/bundler/settings.rb +49 -46
- data/bundler/lib/bundler/shared_helpers.rb +2 -2
- data/bundler/lib/bundler/similarity_detector.rb +1 -1
- data/bundler/lib/bundler/source.rb +1 -1
- data/bundler/lib/bundler/source/git.rb +23 -21
- data/bundler/lib/bundler/source/git/git_proxy.rb +82 -80
- data/bundler/lib/bundler/source/path.rb +7 -3
- data/bundler/lib/bundler/source/path/installer.rb +10 -10
- data/bundler/lib/bundler/source/rubygems.rb +23 -17
- data/bundler/lib/bundler/source/rubygems/remote.rb +1 -1
- data/bundler/lib/bundler/source_list.rb +2 -2
- data/bundler/lib/bundler/spec_set.rb +8 -10
- data/bundler/lib/bundler/stub_specification.rb +17 -7
- data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +57 -47
- data/bundler/lib/bundler/templates/newgem/Gemfile.tt +9 -1
- data/bundler/lib/bundler/templates/newgem/README.md.tt +1 -2
- data/bundler/lib/bundler/templates/newgem/Rakefile.tt +19 -5
- data/bundler/lib/bundler/templates/newgem/bin/console.tt +1 -0
- data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +13 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +2 -0
- data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +18 -0
- data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +9 -0
- data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +4 -2
- data/bundler/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +2 -0
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +15 -7
- data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +13 -0
- data/bundler/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +2 -0
- data/bundler/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +2 -1
- data/bundler/lib/bundler/templates/newgem/test/{newgem_test.rb.tt → minitest/newgem_test.rb.tt} +2 -0
- data/bundler/lib/bundler/templates/newgem/test/{test_helper.rb.tt → minitest/test_helper.rb.tt} +2 -0
- data/bundler/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt +15 -0
- data/bundler/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt +6 -0
- data/bundler/lib/bundler/ui/shell.rb +5 -5
- data/bundler/lib/bundler/uri_credentials_filter.rb +3 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +34 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +2 -2
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +1 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +1 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +48 -46
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +79 -208
- data/bundler/lib/bundler/vendor/thor/lib/thor.rb +0 -7
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +2 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +9 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
- data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +154 -0
- data/bundler/lib/bundler/vendored_persistent.rb +0 -7
- data/bundler/lib/bundler/vendored_tmpdir.rb +4 -0
- data/bundler/lib/bundler/version.rb +1 -1
- data/bundler/lib/bundler/worker.rb +1 -1
- data/bundler/lib/bundler/yaml_serializer.rb +1 -1
- data/lib/rubygems.rb +138 -187
- data/lib/rubygems/available_set.rb +4 -6
- data/lib/rubygems/basic_specification.rb +12 -10
- data/lib/rubygems/bundler_version_finder.rb +14 -9
- data/lib/rubygems/command.rb +17 -17
- data/lib/rubygems/command_manager.rb +5 -6
- data/lib/rubygems/commands/build_command.rb +40 -20
- data/lib/rubygems/commands/cert_command.rb +2 -10
- data/lib/rubygems/commands/check_command.rb +0 -2
- data/lib/rubygems/commands/cleanup_command.rb +11 -7
- data/lib/rubygems/commands/contents_command.rb +4 -6
- data/lib/rubygems/commands/dependency_command.rb +6 -8
- data/lib/rubygems/commands/environment_command.rb +1 -3
- data/lib/rubygems/commands/fetch_command.rb +2 -4
- data/lib/rubygems/commands/generate_index_command.rb +0 -2
- data/lib/rubygems/commands/help_command.rb +4 -4
- data/lib/rubygems/commands/info_command.rb +8 -5
- data/lib/rubygems/commands/install_command.rb +3 -5
- data/lib/rubygems/commands/list_command.rb +8 -7
- data/lib/rubygems/commands/lock_command.rb +1 -3
- data/lib/rubygems/commands/mirror_command.rb +0 -2
- data/lib/rubygems/commands/open_command.rb +0 -4
- data/lib/rubygems/commands/outdated_command.rb +0 -2
- data/lib/rubygems/commands/owner_command.rb +9 -4
- data/lib/rubygems/commands/pristine_command.rb +11 -5
- data/lib/rubygems/commands/push_command.rb +10 -47
- data/lib/rubygems/commands/query_command.rb +14 -344
- data/lib/rubygems/commands/rdoc_command.rb +0 -2
- data/lib/rubygems/commands/search_command.rb +7 -7
- data/lib/rubygems/commands/server_command.rb +3 -1
- data/lib/rubygems/commands/setup_command.rb +101 -74
- data/lib/rubygems/commands/signin_command.rb +0 -2
- data/lib/rubygems/commands/signout_command.rb +0 -2
- data/lib/rubygems/commands/sources_command.rb +9 -7
- data/lib/rubygems/commands/specification_command.rb +8 -4
- data/lib/rubygems/commands/stale_command.rb +1 -3
- data/lib/rubygems/commands/uninstall_command.rb +2 -4
- data/lib/rubygems/commands/unpack_command.rb +1 -3
- data/lib/rubygems/commands/update_command.rb +59 -14
- data/lib/rubygems/commands/which_command.rb +0 -2
- data/lib/rubygems/commands/yank_command.rb +4 -7
- data/lib/rubygems/config_file.rb +11 -4
- data/lib/rubygems/core_ext/kernel_require.rb +29 -36
- data/lib/rubygems/core_ext/kernel_warn.rb +12 -13
- data/lib/rubygems/defaults.rb +101 -7
- data/lib/rubygems/dependency.rb +3 -8
- data/lib/rubygems/dependency_installer.rb +6 -78
- data/lib/rubygems/dependency_list.rb +7 -9
- data/lib/rubygems/deprecate.rb +46 -1
- data/lib/rubygems/doctor.rb +4 -4
- data/lib/rubygems/errors.rb +3 -14
- data/lib/rubygems/exceptions.rb +2 -33
- data/lib/rubygems/ext.rb +6 -6
- data/lib/rubygems/ext/build_error.rb +2 -0
- data/lib/rubygems/ext/builder.rb +21 -39
- data/lib/rubygems/ext/cmake_builder.rb +6 -9
- data/lib/rubygems/ext/configure_builder.rb +5 -8
- data/lib/rubygems/ext/ext_conf_builder.rb +21 -19
- data/lib/rubygems/ext/rake_builder.rb +4 -6
- data/lib/rubygems/gem_runner.rb +3 -10
- data/lib/rubygems/gemcutter_utilities.rb +102 -21
- data/lib/rubygems/indexer.rb +1 -22
- data/lib/rubygems/install_update_options.rb +7 -7
- data/lib/rubygems/installer.rb +59 -80
- data/lib/rubygems/installer_test_case.rb +25 -11
- data/lib/rubygems/installer_uninstaller_utils.rb +24 -0
- data/lib/rubygems/local_remote_options.rb +1 -1
- data/lib/rubygems/mock_gem_ui.rb +0 -6
- data/lib/rubygems/name_tuple.rb +3 -7
- data/lib/rubygems/openssl.rb +7 -0
- data/lib/rubygems/package.rb +14 -25
- data/lib/rubygems/package/digest_io.rb +0 -2
- data/lib/rubygems/package/file_source.rb +0 -2
- data/lib/rubygems/package/io_source.rb +0 -2
- data/lib/rubygems/package/old.rb +1 -3
- data/lib/rubygems/package/tar_header.rb +4 -6
- data/lib/rubygems/package/tar_reader.rb +0 -3
- data/lib/rubygems/package/tar_reader/entry.rb +0 -3
- data/lib/rubygems/package/tar_test_case.rb +2 -4
- data/lib/rubygems/package/tar_writer.rb +2 -12
- data/lib/rubygems/package_task.rb +1 -7
- data/lib/rubygems/path_support.rb +1 -3
- data/lib/rubygems/platform.rb +21 -16
- data/lib/rubygems/psych_tree.rb +0 -2
- data/lib/rubygems/query_utils.rb +353 -0
- data/lib/rubygems/rdoc.rb +0 -12
- data/lib/rubygems/remote_fetcher.rb +14 -29
- data/lib/rubygems/request.rb +4 -11
- data/lib/rubygems/request/connection_pools.rb +1 -5
- data/lib/rubygems/request/http_pool.rb +0 -2
- data/lib/rubygems/request/https_pool.rb +0 -2
- data/lib/rubygems/request_set.rb +7 -20
- data/lib/rubygems/request_set/gem_dependency_api.rb +6 -8
- data/lib/rubygems/request_set/lockfile.rb +8 -12
- data/lib/rubygems/request_set/lockfile/parser.rb +0 -2
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +1 -3
- data/lib/rubygems/requirement.rb +21 -22
- data/lib/rubygems/resolver.rb +14 -12
- data/lib/rubygems/resolver/activation_request.rb +9 -3
- data/lib/rubygems/resolver/api_set.rb +31 -24
- data/lib/rubygems/resolver/api_set/gem_parser.rb +20 -0
- data/lib/rubygems/resolver/api_specification.rb +24 -10
- data/lib/rubygems/resolver/best_set.rb +2 -4
- data/lib/rubygems/resolver/composed_set.rb +3 -5
- data/lib/rubygems/resolver/conflict.rb +2 -4
- data/lib/rubygems/resolver/current_set.rb +0 -2
- data/lib/rubygems/resolver/dependency_request.rb +1 -3
- data/lib/rubygems/resolver/git_set.rb +0 -2
- data/lib/rubygems/resolver/git_specification.rb +0 -2
- data/lib/rubygems/resolver/index_set.rb +1 -3
- data/lib/rubygems/resolver/index_specification.rb +29 -2
- data/lib/rubygems/resolver/installed_specification.rb +0 -2
- data/lib/rubygems/resolver/installer_set.rb +60 -13
- data/lib/rubygems/resolver/local_specification.rb +0 -2
- data/lib/rubygems/resolver/lock_set.rb +2 -4
- data/lib/rubygems/resolver/lock_specification.rb +0 -2
- data/lib/rubygems/resolver/molinillo/lib/molinillo.rb +6 -5
- data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb +7 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb +1 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +39 -5
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/action.rb +1 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb +7 -6
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/set_payload.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/tag.rb +4 -3
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb +43 -10
- data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +75 -7
- data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb +1 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb +3 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb +506 -165
- data/lib/rubygems/resolver/molinillo/lib/molinillo/resolver.rb +3 -2
- data/lib/rubygems/resolver/molinillo/lib/molinillo/state.rb +8 -4
- data/lib/rubygems/resolver/requirement_list.rb +0 -2
- data/lib/rubygems/resolver/set.rb +0 -2
- data/lib/rubygems/resolver/source_set.rb +0 -2
- data/lib/rubygems/resolver/spec_specification.rb +14 -2
- data/lib/rubygems/resolver/specification.rb +13 -3
- data/lib/rubygems/resolver/stats.rb +0 -2
- data/lib/rubygems/resolver/vendor_set.rb +0 -2
- data/lib/rubygems/resolver/vendor_specification.rb +0 -2
- data/lib/rubygems/s3_uri_signer.rb +2 -8
- data/lib/rubygems/safe_yaml.rb +4 -4
- data/lib/rubygems/security.rb +27 -34
- data/lib/rubygems/security/policy.rb +4 -8
- data/lib/rubygems/security/signer.rb +5 -7
- data/lib/rubygems/security/trust_dir.rb +1 -3
- data/lib/rubygems/server.rb +16 -13
- data/lib/rubygems/source.rb +23 -12
- data/lib/rubygems/source/git.rb +7 -8
- data/lib/rubygems/source/installed.rb +0 -2
- data/lib/rubygems/source/local.rb +2 -4
- data/lib/rubygems/source/lock.rb +0 -2
- data/lib/rubygems/source/specific_file.rb +0 -2
- data/lib/rubygems/source/vendor.rb +0 -2
- data/lib/rubygems/source_list.rb +4 -7
- data/lib/rubygems/spec_fetcher.rb +19 -18
- data/lib/rubygems/specification.rb +122 -131
- data/lib/rubygems/specification_policy.rb +88 -30
- data/lib/rubygems/ssl_certs/{index.rubygems.org → rubygems.org}/GlobalSignRootCA.pem +0 -0
- data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem +21 -0
- data/lib/rubygems/stub_specification.rb +1 -5
- data/lib/rubygems/syck_hack.rb +0 -2
- data/lib/rubygems/test_case.rb +120 -134
- data/lib/rubygems/test_utilities.rb +12 -19
- data/lib/rubygems/uninstaller.rb +35 -16
- data/lib/rubygems/uri_formatter.rb +2 -3
- data/lib/rubygems/uri_parser.rb +0 -2
- data/lib/rubygems/user_interaction.rb +1 -26
- data/lib/rubygems/util.rb +15 -3
- data/lib/rubygems/util/licenses.rb +4 -6
- data/lib/rubygems/util/list.rb +0 -2
- data/lib/rubygems/validator.rb +1 -3
- data/lib/rubygems/version.rb +5 -7
- data/lib/rubygems/version_option.rb +6 -0
- data/rubygems-update.gemspec +3 -3
- data/setup.rb +2 -7
- data/test/rubygems/data/null-required-rubygems-version.gemspec.rz +0 -0
- data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -2
- data/test/rubygems/rubygems/commands/crash_command.rb +0 -2
- data/test/rubygems/rubygems_plugin.rb +0 -2
- data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -2
- data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +12 -0
- data/test/rubygems/test_bundled_ca.rb +42 -45
- data/test/rubygems/test_config.rb +0 -2
- data/test/rubygems/test_deprecate.rb +40 -7
- data/test/rubygems/test_gem.rb +156 -99
- data/test/rubygems/test_gem_available_set.rb +3 -5
- data/test/rubygems/test_gem_bundler_version_finder.rb +19 -3
- data/test/rubygems/test_gem_command.rb +24 -7
- data/test/rubygems/test_gem_command_manager.rb +36 -5
- data/test/rubygems/test_gem_commands_build_command.rb +250 -15
- data/test/rubygems/test_gem_commands_cert_command.rb +4 -6
- data/test/rubygems/test_gem_commands_check_command.rb +0 -2
- data/test/rubygems/test_gem_commands_cleanup_command.rb +14 -5
- data/test/rubygems/test_gem_commands_contents_command.rb +50 -19
- data/test/rubygems/test_gem_commands_dependency_command.rb +0 -2
- data/test/rubygems/test_gem_commands_environment_command.rb +21 -23
- data/test/rubygems/test_gem_commands_fetch_command.rb +0 -2
- data/test/rubygems/test_gem_commands_generate_index_command.rb +1 -7
- data/test/rubygems/test_gem_commands_help_command.rb +15 -4
- data/test/rubygems/test_gem_commands_info_command.rb +6 -8
- data/test/rubygems/test_gem_commands_install_command.rb +163 -34
- data/test/rubygems/test_gem_commands_list_command.rb +0 -2
- data/test/rubygems/test_gem_commands_lock_command.rb +0 -2
- data/test/rubygems/test_gem_commands_mirror.rb +1 -3
- data/test/rubygems/test_gem_commands_open_command.rb +4 -6
- data/test/rubygems/test_gem_commands_outdated_command.rb +0 -2
- data/test/rubygems/test_gem_commands_owner_command.rb +59 -5
- data/test/rubygems/test_gem_commands_pristine_command.rb +43 -12
- data/test/rubygems/test_gem_commands_push_command.rb +77 -9
- data/test/rubygems/test_gem_commands_query_command.rb +12 -12
- data/test/rubygems/test_gem_commands_search_command.rb +0 -2
- data/test/rubygems/test_gem_commands_server_command.rb +0 -2
- data/test/rubygems/test_gem_commands_setup_command.rb +160 -135
- data/test/rubygems/test_gem_commands_signin_command.rb +33 -9
- data/test/rubygems/test_gem_commands_signout_command.rb +0 -7
- data/test/rubygems/test_gem_commands_sources_command.rb +99 -3
- data/test/rubygems/test_gem_commands_specification_command.rb +46 -20
- data/test/rubygems/test_gem_commands_stale_command.rb +0 -2
- data/test/rubygems/test_gem_commands_uninstall_command.rb +2 -3
- data/test/rubygems/test_gem_commands_unpack_command.rb +0 -2
- data/test/rubygems/test_gem_commands_update_command.rb +116 -7
- data/test/rubygems/test_gem_commands_which_command.rb +3 -5
- data/test/rubygems/test_gem_commands_yank_command.rb +44 -8
- data/test/rubygems/test_gem_config_file.rb +7 -12
- data/test/rubygems/test_gem_dependency.rb +0 -2
- data/test/rubygems/test_gem_dependency_installer.rb +116 -239
- data/test/rubygems/test_gem_dependency_list.rb +10 -12
- data/test/rubygems/test_gem_dependency_resolution_error.rb +1 -3
- data/test/rubygems/test_gem_doctor.rb +28 -2
- data/test/rubygems/test_gem_ext_builder.rb +50 -47
- data/test/rubygems/test_gem_ext_cmake_builder.rb +16 -25
- data/test/rubygems/test_gem_ext_configure_builder.rb +6 -22
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +9 -29
- data/test/rubygems/test_gem_ext_rake_builder.rb +39 -24
- data/test/rubygems/test_gem_gem_runner.rb +44 -1
- data/test/rubygems/test_gem_gemcutter_utilities.rb +8 -5
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -2
- data/test/rubygems/test_gem_indexer.rb +9 -15
- data/test/rubygems/test_gem_install_update_options.rb +14 -4
- data/test/rubygems/test_gem_installer.rb +258 -115
- data/test/rubygems/test_gem_local_remote_options.rb +0 -2
- data/test/rubygems/test_gem_name_tuple.rb +0 -2
- data/test/rubygems/test_gem_package.rb +41 -39
- data/test/rubygems/test_gem_package_old.rb +4 -6
- data/test/rubygems/test_gem_package_tar_header.rb +18 -1
- data/test/rubygems/test_gem_package_tar_reader.rb +0 -2
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +0 -2
- data/test/rubygems/test_gem_package_tar_writer.rb +9 -6
- data/test/rubygems/test_gem_package_task.rb +46 -13
- data/test/rubygems/test_gem_path_support.rb +0 -2
- data/test/rubygems/test_gem_platform.rb +71 -6
- data/test/rubygems/test_gem_rdoc.rb +0 -2
- data/test/rubygems/test_gem_remote_fetcher.rb +169 -212
- data/test/rubygems/test_gem_request.rb +13 -17
- data/test/rubygems/test_gem_request_connection_pools.rb +0 -4
- data/test/rubygems/test_gem_request_set.rb +72 -22
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +3 -5
- data/test/rubygems/test_gem_request_set_lockfile.rb +4 -6
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +9 -11
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +118 -120
- data/test/rubygems/test_gem_requirement.rb +43 -3
- data/test/rubygems/test_gem_resolver.rb +6 -8
- data/test/rubygems/test_gem_resolver_activation_request.rb +0 -2
- data/test/rubygems/test_gem_resolver_api_set.rb +60 -59
- data/test/rubygems/test_gem_resolver_api_specification.rb +3 -5
- data/test/rubygems/test_gem_resolver_best_set.rb +27 -6
- data/test/rubygems/test_gem_resolver_composed_set.rb +0 -2
- data/test/rubygems/test_gem_resolver_conflict.rb +1 -3
- data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -2
- data/test/rubygems/test_gem_resolver_git_set.rb +0 -2
- data/test/rubygems/test_gem_resolver_git_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_index_set.rb +2 -4
- data/test/rubygems/test_gem_resolver_index_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_installer_set.rb +7 -9
- data/test/rubygems/test_gem_resolver_local_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_lock_set.rb +3 -5
- data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -2
- data/test/rubygems/test_gem_resolver_specification.rb +0 -4
- data/test/rubygems/test_gem_resolver_vendor_set.rb +1 -3
- data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -2
- data/test/rubygems/test_gem_security.rb +22 -24
- data/test/rubygems/test_gem_security_policy.rb +7 -12
- data/test/rubygems/test_gem_security_signer.rb +10 -12
- data/test/rubygems/test_gem_security_trust_dir.rb +4 -6
- data/test/rubygems/test_gem_server.rb +10 -14
- data/test/rubygems/test_gem_silent_ui.rb +0 -2
- data/test/rubygems/test_gem_source.rb +19 -18
- data/test/rubygems/test_gem_source_fetch_problem.rb +0 -2
- data/test/rubygems/test_gem_source_git.rb +12 -13
- data/test/rubygems/test_gem_source_installed.rb +7 -9
- data/test/rubygems/test_gem_source_list.rb +1 -2
- data/test/rubygems/test_gem_source_local.rb +8 -10
- data/test/rubygems/test_gem_source_lock.rb +10 -12
- data/test/rubygems/test_gem_source_specific_file.rb +7 -9
- data/test/rubygems/test_gem_source_subpath_problem.rb +49 -0
- data/test/rubygems/test_gem_source_vendor.rb +7 -9
- data/test/rubygems/test_gem_spec_fetcher.rb +11 -4
- data/test/rubygems/test_gem_specification.rb +188 -131
- data/test/rubygems/test_gem_stream_ui.rb +3 -3
- data/test/rubygems/test_gem_stub_specification.rb +4 -7
- data/test/rubygems/test_gem_text.rb +1 -3
- data/test/rubygems/test_gem_uninstaller.rb +134 -12
- data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -2
- data/test/rubygems/test_gem_uri_formatter.rb +0 -2
- data/test/rubygems/test_gem_util.rb +7 -7
- data/test/rubygems/test_gem_validator.rb +1 -3
- data/test/rubygems/test_gem_version.rb +1 -3
- data/test/rubygems/test_gem_version_option.rb +1 -3
- data/test/rubygems/test_kernel.rb +25 -10
- data/test/rubygems/test_project_sanity.rb +7 -2
- data/test/rubygems/test_remote_fetch_error.rb +0 -2
- data/test/rubygems/test_require.rb +291 -56
- data/test/test_changelog_generator.rb +17 -0
- metadata +79 -133
- data/.bundle/config +0 -2
- data/.rubocop.yml +0 -91
- data/Gemfile +0 -8
- data/Gemfile.lock +0 -43
- data/bundler/CODE_OF_CONDUCT.md +0 -136
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +0 -26
- data/bundler/man/bundle-add.1.txt +0 -58
- data/bundler/man/bundle-binstubs.1.txt +0 -48
- data/bundler/man/bundle-cache.1.txt +0 -78
- data/bundler/man/bundle-check.1.txt +0 -33
- data/bundler/man/bundle-clean.1.txt +0 -26
- data/bundler/man/bundle-config.1.txt +0 -528
- data/bundler/man/bundle-doctor.1.txt +0 -44
- data/bundler/man/bundle-exec.1.txt +0 -178
- data/bundler/man/bundle-gem.1.txt +0 -91
- data/bundler/man/bundle-info.1.txt +0 -21
- data/bundler/man/bundle-init.1.txt +0 -34
- data/bundler/man/bundle-inject.1.txt +0 -32
- data/bundler/man/bundle-install.1.txt +0 -401
- data/bundler/man/bundle-list.1.txt +0 -43
- data/bundler/man/bundle-lock.1.txt +0 -93
- data/bundler/man/bundle-open.1.txt +0 -29
- data/bundler/man/bundle-outdated.1.txt +0 -131
- data/bundler/man/bundle-platform.1.txt +0 -57
- data/bundler/man/bundle-pristine.1.txt +0 -44
- data/bundler/man/bundle-remove.1.txt +0 -34
- data/bundler/man/bundle-show.1.txt +0 -27
- data/bundler/man/bundle-update.1.txt +0 -390
- data/bundler/man/bundle-viz.1.txt +0 -39
- data/bundler/man/bundle.1.txt +0 -116
- data/bundler/man/gemfile.5.txt +0 -649
- data/lib/rubygems/source_local.rb +0 -7
- data/lib/rubygems/source_specific_file.rb +0 -6
- data/lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -23
- data/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -25
- data/lib/ubygems.rb +0 -14
- data/tmp/.keep +0 -0
- data/util/CL2notes +0 -55
- data/util/bisect +0 -10
- data/util/ci.sh +0 -62
- data/util/cops/deprecations.rb +0 -52
- data/util/create_certs.rb +0 -171
- data/util/create_certs.sh +0 -27
- data/util/create_encrypted_key.rb +0 -16
- data/util/generate_spdx_license_list.rb +0 -63
- data/util/patch_with_prs.rb +0 -77
- data/util/rubocop +0 -8
- data/util/update_bundled_ca_certificates.rb +0 -139
- data/util/update_changelog.rb +0 -67
data/lib/rubygems/rdoc.rb
CHANGED
@@ -1,18 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
require 'rubygems'
|
3
3
|
|
4
|
-
begin
|
5
|
-
gem 'rdoc'
|
6
|
-
rescue Gem::LoadError
|
7
|
-
# swallow
|
8
|
-
else
|
9
|
-
# This will force any deps that 'rdoc' might have
|
10
|
-
# (such as json) that are ambiguous to be activated, which
|
11
|
-
# is important because we end up using Specification.reset
|
12
|
-
# and we don't want the warning it pops out.
|
13
|
-
Gem.finish_resolve
|
14
|
-
end
|
15
|
-
|
16
4
|
begin
|
17
5
|
require 'rdoc/rubygems_hook'
|
18
6
|
module Gem
|
@@ -7,17 +7,13 @@ require 'rubygems/uri_formatter'
|
|
7
7
|
require 'rubygems/uri_parsing'
|
8
8
|
require 'rubygems/user_interaction'
|
9
9
|
require 'resolv'
|
10
|
-
require 'rubygems/deprecate'
|
11
10
|
|
12
11
|
##
|
13
12
|
# RemoteFetcher handles the details of fetching gems and gem information from
|
14
13
|
# a remote source.
|
15
14
|
|
16
15
|
class Gem::RemoteFetcher
|
17
|
-
|
18
16
|
include Gem::UserInteraction
|
19
|
-
extend Gem::Deprecate
|
20
|
-
|
21
17
|
include Gem::UriParsing
|
22
18
|
|
23
19
|
##
|
@@ -25,19 +21,20 @@ class Gem::RemoteFetcher
|
|
25
21
|
# that could happen while downloading from the internet.
|
26
22
|
|
27
23
|
class FetchError < Gem::Exception
|
28
|
-
|
29
24
|
include Gem::UriParsing
|
30
25
|
|
31
26
|
##
|
32
27
|
# The URI which was being accessed when the exception happened.
|
33
28
|
|
34
|
-
attr_accessor :uri
|
29
|
+
attr_accessor :uri, :original_uri
|
35
30
|
|
36
31
|
def initialize(message, uri)
|
37
32
|
super message
|
38
33
|
|
39
34
|
uri = parse_uri(uri)
|
40
35
|
|
36
|
+
@original_uri = uri.dup
|
37
|
+
|
41
38
|
uri.password = 'REDACTED' if uri.respond_to?(:password) && uri.password
|
42
39
|
|
43
40
|
@uri = uri.to_s
|
@@ -46,7 +43,6 @@ class Gem::RemoteFetcher
|
|
46
43
|
def to_s # :nodoc:
|
47
44
|
"#{super} (#{uri})"
|
48
45
|
end
|
49
|
-
|
50
46
|
end
|
51
47
|
|
52
48
|
##
|
@@ -84,7 +80,6 @@ class Gem::RemoteFetcher
|
|
84
80
|
def initialize(proxy=nil, dns=nil, headers={})
|
85
81
|
require 'net/http'
|
86
82
|
require 'stringio'
|
87
|
-
require 'time'
|
88
83
|
require 'uri'
|
89
84
|
|
90
85
|
Socket.do_not_reverse_lookup = true
|
@@ -109,7 +104,7 @@ class Gem::RemoteFetcher
|
|
109
104
|
|
110
105
|
return if found.empty?
|
111
106
|
|
112
|
-
spec, source = found.max_by {
|
107
|
+
spec, source = found.max_by {|(s,_)| s.version }
|
113
108
|
|
114
109
|
download spec, source.uri
|
115
110
|
end
|
@@ -120,11 +115,12 @@ class Gem::RemoteFetcher
|
|
120
115
|
# always replaced.
|
121
116
|
|
122
117
|
def download(spec, source_uri, install_dir = Gem.dir)
|
118
|
+
install_cache_dir = File.join install_dir, "cache"
|
123
119
|
cache_dir =
|
124
|
-
if Dir.pwd == install_dir
|
120
|
+
if Dir.pwd == install_dir # see fetch_command
|
125
121
|
install_dir
|
126
|
-
elsif File.writable? install_dir
|
127
|
-
|
122
|
+
elsif File.writable?(install_cache_dir) || (File.writable?(install_dir) && (not File.exist?(install_cache_dir)))
|
123
|
+
install_cache_dir
|
128
124
|
else
|
129
125
|
File.join Gem.user_dir, "cache"
|
130
126
|
end
|
@@ -132,6 +128,7 @@ class Gem::RemoteFetcher
|
|
132
128
|
gem_file_name = File.basename spec.cache_file
|
133
129
|
local_gem_path = File.join cache_dir, gem_file_name
|
134
130
|
|
131
|
+
require "fileutils"
|
135
132
|
FileUtils.mkdir_p cache_dir rescue nil unless File.exist? cache_dir
|
136
133
|
|
137
134
|
source_uri = parse_uri(source_uri)
|
@@ -215,12 +212,12 @@ class Gem::RemoteFetcher
|
|
215
212
|
def fetch_http(uri, last_modified = nil, head = false, depth = 0)
|
216
213
|
fetch_type = head ? Net::HTTP::Head : Net::HTTP::Get
|
217
214
|
response = request uri, fetch_type, last_modified do |req|
|
218
|
-
headers.each {
|
215
|
+
headers.each {|k,v| req.add_field(k,v) }
|
219
216
|
end
|
220
217
|
|
221
218
|
case response
|
222
219
|
when Net::HTTPOK, Net::HTTPNotModified then
|
223
|
-
response.uri = uri
|
220
|
+
response.uri = uri
|
224
221
|
head ? response : response.body
|
225
222
|
when Net::HTTPMovedPermanently, Net::HTTPFound, Net::HTTPSeeOther,
|
226
223
|
Net::HTTPTemporaryRedirect then
|
@@ -255,7 +252,7 @@ class Gem::RemoteFetcher
|
|
255
252
|
|
256
253
|
data = send "fetch_#{uri.scheme}", uri, mtime, head
|
257
254
|
|
258
|
-
if data and !head and uri.to_s
|
255
|
+
if data and !head and uri.to_s.end_with?(".gz")
|
259
256
|
begin
|
260
257
|
data = Gem::Util.gunzip data
|
261
258
|
rescue Zlib::GzipFile::Error
|
@@ -267,7 +264,7 @@ class Gem::RemoteFetcher
|
|
267
264
|
rescue Timeout::Error
|
268
265
|
raise UnknownHostError.new('timed out', uri)
|
269
266
|
rescue IOError, SocketError, SystemCallError,
|
270
|
-
*(OpenSSL::SSL::SSLError if
|
267
|
+
*(OpenSSL::SSL::SSLError if Gem::HAVE_OPENSSL) => e
|
271
268
|
if e.message =~ /getaddrinfo/
|
272
269
|
raise UnknownHostError.new('no such name', uri)
|
273
270
|
else
|
@@ -309,17 +306,6 @@ class Gem::RemoteFetcher
|
|
309
306
|
data
|
310
307
|
end
|
311
308
|
|
312
|
-
##
|
313
|
-
# Returns the size of +uri+ in bytes.
|
314
|
-
|
315
|
-
def fetch_size(uri)
|
316
|
-
response = fetch_path(uri, nil, true)
|
317
|
-
|
318
|
-
response['content-length'].to_i
|
319
|
-
end
|
320
|
-
|
321
|
-
deprecate :fetch_size, :none, 2019, 12
|
322
|
-
|
323
309
|
##
|
324
310
|
# Performs a Net::HTTP request of type +request_class+ on +uri+ returning
|
325
311
|
# a Net::HTTP response object. request maintains a table of persistent
|
@@ -341,7 +327,7 @@ class Gem::RemoteFetcher
|
|
341
327
|
end
|
342
328
|
|
343
329
|
def close_all
|
344
|
-
@pools.each_value {|pool| pool.close_all}
|
330
|
+
@pools.each_value {|pool| pool.close_all }
|
345
331
|
end
|
346
332
|
|
347
333
|
private
|
@@ -355,5 +341,4 @@ class Gem::RemoteFetcher
|
|
355
341
|
@pools[proxy] ||= Gem::Request::ConnectionPools.new proxy, @cert_files
|
356
342
|
end
|
357
343
|
end
|
358
|
-
|
359
344
|
end
|
data/lib/rubygems/request.rb
CHANGED
@@ -1,10 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
require 'net/http'
|
3
|
-
require 'time'
|
4
3
|
require 'rubygems/user_interaction'
|
5
4
|
|
6
5
|
class Gem::Request
|
7
|
-
|
8
6
|
extend Gem::UserInteraction
|
9
7
|
include Gem::UserInteraction
|
10
8
|
|
@@ -46,7 +44,8 @@ class Gem::Request
|
|
46
44
|
end
|
47
45
|
|
48
46
|
def self.configure_connection_for_https(connection, cert_files)
|
49
|
-
|
47
|
+
raise Gem::Exception.new('OpenSSl is not available. Install OpenSSL and rebuild Ruby (preferred) or use non-HTTPS sources') unless Gem::HAVE_OPENSSL
|
48
|
+
|
50
49
|
connection.use_ssl = true
|
51
50
|
connection.verify_mode =
|
52
51
|
Gem.configuration.ssl_verify_mode || OpenSSL::SSL::VERIFY_PEER
|
@@ -78,12 +77,6 @@ class Gem::Request
|
|
78
77
|
end
|
79
78
|
|
80
79
|
connection
|
81
|
-
rescue LoadError => e
|
82
|
-
raise unless (e.respond_to?(:path) && e.path == 'openssl') ||
|
83
|
-
e.message =~ / -- openssl$/
|
84
|
-
|
85
|
-
raise Gem::Exception.new(
|
86
|
-
'Unable to require openssl, install OpenSSL and rebuild Ruby (preferred) or use non-HTTPS sources')
|
87
80
|
end
|
88
81
|
|
89
82
|
def self.verify_certificate(store_context)
|
@@ -132,7 +125,7 @@ class Gem::Request
|
|
132
125
|
|
133
126
|
def connection_for(uri)
|
134
127
|
@connection_pool.checkout
|
135
|
-
rescue
|
128
|
+
rescue Gem::HAVE_OPENSSL ? OpenSSL::SSL::SSLError : Errno::EHOSTDOWN,
|
136
129
|
Errno::EHOSTDOWN => e
|
137
130
|
raise Gem::RemoteFetcher::FetchError.new(e.message, uri)
|
138
131
|
end
|
@@ -150,6 +143,7 @@ class Gem::Request
|
|
150
143
|
request.add_field 'Keep-Alive', '30'
|
151
144
|
|
152
145
|
if @last_modified
|
146
|
+
require 'time'
|
153
147
|
request.add_field 'If-Modified-Since', @last_modified.httpdate
|
154
148
|
end
|
155
149
|
|
@@ -291,7 +285,6 @@ class Gem::Request
|
|
291
285
|
|
292
286
|
ua
|
293
287
|
end
|
294
|
-
|
295
288
|
end
|
296
289
|
|
297
290
|
require 'rubygems/request/http_pool'
|
@@ -1,13 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
class Gem::Request::ConnectionPools # :nodoc:
|
4
|
-
|
5
4
|
@client = Net::HTTP
|
6
5
|
|
7
6
|
class << self
|
8
|
-
|
9
7
|
attr_accessor :client
|
10
|
-
|
11
8
|
end
|
12
9
|
|
13
10
|
def initialize(proxy_uri, cert_files)
|
@@ -31,7 +28,7 @@ class Gem::Request::ConnectionPools # :nodoc:
|
|
31
28
|
end
|
32
29
|
|
33
30
|
def close_all
|
34
|
-
@pools.each_value {|pool| pool.close_all}
|
31
|
+
@pools.each_value {|pool| pool.close_all }
|
35
32
|
end
|
36
33
|
|
37
34
|
private
|
@@ -95,5 +92,4 @@ class Gem::Request::ConnectionPools # :nodoc:
|
|
95
92
|
net_http_args
|
96
93
|
end
|
97
94
|
end
|
98
|
-
|
99
95
|
end
|
@@ -6,7 +6,6 @@
|
|
6
6
|
# use it.
|
7
7
|
|
8
8
|
class Gem::Request::HTTPPool # :nodoc:
|
9
|
-
|
10
9
|
attr_reader :cert_files, :proxy_uri
|
11
10
|
|
12
11
|
def initialize(http_args, cert_files, proxy_uri)
|
@@ -44,5 +43,4 @@ class Gem::Request::HTTPPool # :nodoc:
|
|
44
43
|
connection.start
|
45
44
|
connection
|
46
45
|
end
|
47
|
-
|
48
46
|
end
|
data/lib/rubygems/request_set.rb
CHANGED
@@ -15,7 +15,6 @@ require 'tsort'
|
|
15
15
|
# #=> ["nokogiri-1.6.0", "mini_portile-0.5.1", "pg-0.17.0"]
|
16
16
|
|
17
17
|
class Gem::RequestSet
|
18
|
-
|
19
18
|
include TSort
|
20
19
|
|
21
20
|
##
|
@@ -184,7 +183,7 @@ class Gem::RequestSet
|
|
184
183
|
if req.installed?
|
185
184
|
req.spec.spec.build_extensions
|
186
185
|
|
187
|
-
if @always_install.none? {
|
186
|
+
if @always_install.none? {|spec| spec == req.spec.spec }
|
188
187
|
yield req, nil if block_given?
|
189
188
|
next
|
190
189
|
end
|
@@ -196,19 +195,8 @@ class Gem::RequestSet
|
|
196
195
|
yield req, installer if block_given?
|
197
196
|
end
|
198
197
|
rescue Gem::RuntimeRequirementNotMetError => e
|
199
|
-
|
200
|
-
|
201
|
-
s.required_ruby_version.satisfied_by?(Gem.ruby_version) &&
|
202
|
-
s.required_rubygems_version.satisfied_by?(Gem.rubygems_version) &&
|
203
|
-
Gem::Platform.installable?(s)
|
204
|
-
end
|
205
|
-
if recent_match
|
206
|
-
suggestion = "The last version of #{req.request} to support your Ruby & RubyGems was #{recent_match.version}. Try installing it with `gem install #{recent_match.name} -v #{recent_match.version}`"
|
207
|
-
suggestion += " and then running the current command again" unless @always_install.include?(req.spec.spec)
|
208
|
-
else
|
209
|
-
suggestion = "There are no versions of #{req.request} compatible with your Ruby & RubyGems"
|
210
|
-
suggestion += ". Maybe try installing an older version of the gem you're looking for?" unless @always_install.include?(req.spec.spec)
|
211
|
-
end
|
198
|
+
suggestion = "There are no versions of #{req.request} compatible with your Ruby & RubyGems"
|
199
|
+
suggestion += ". Maybe try installing an older version of the gem you're looking for?" unless @always_install.include?(req.spec.spec)
|
212
200
|
e.suggestion = suggestion
|
213
201
|
raise
|
214
202
|
end
|
@@ -269,7 +257,7 @@ class Gem::RequestSet
|
|
269
257
|
gem_home, ENV['GEM_HOME'] = ENV['GEM_HOME'], dir
|
270
258
|
|
271
259
|
existing = force ? [] : specs_in(dir)
|
272
|
-
existing.delete_if {
|
260
|
+
existing.delete_if {|s| @always_install.include? s }
|
273
261
|
|
274
262
|
dir = File.expand_path dir
|
275
263
|
|
@@ -283,7 +271,7 @@ class Gem::RequestSet
|
|
283
271
|
sorted_requests.each do |request|
|
284
272
|
spec = request.spec
|
285
273
|
|
286
|
-
if existing.find {
|
274
|
+
if existing.find {|s| s.full_name == spec.full_name }
|
287
275
|
yield request, nil if block_given?
|
288
276
|
next
|
289
277
|
end
|
@@ -386,7 +374,7 @@ class Gem::RequestSet
|
|
386
374
|
q.text 'sets:'
|
387
375
|
|
388
376
|
q.breakable
|
389
|
-
q.pp @sets.map {
|
377
|
+
q.pp @sets.map {|set| set.class }
|
390
378
|
end
|
391
379
|
end
|
392
380
|
|
@@ -440,7 +428,7 @@ class Gem::RequestSet
|
|
440
428
|
end
|
441
429
|
|
442
430
|
def specs
|
443
|
-
@specs ||= @requests.map {
|
431
|
+
@specs ||= @requests.map {|r| r.full_spec }
|
444
432
|
end
|
445
433
|
|
446
434
|
def specs_in(dir)
|
@@ -471,7 +459,6 @@ class Gem::RequestSet
|
|
471
459
|
yield match
|
472
460
|
end
|
473
461
|
end
|
474
|
-
|
475
462
|
end
|
476
463
|
|
477
464
|
require 'rubygems/request_set/gem_dependency_api'
|
@@ -31,7 +31,6 @@
|
|
31
31
|
# See `gem help install` and `gem help gem_dependencies` for further details.
|
32
32
|
|
33
33
|
class Gem::RequestSet::GemDependencyAPI
|
34
|
-
|
35
34
|
ENGINE_MAP = { # :nodoc:
|
36
35
|
:jruby => %w[jruby],
|
37
36
|
:jruby_18 => %w[jruby],
|
@@ -89,7 +88,7 @@ class Gem::RequestSet::GemDependencyAPI
|
|
89
88
|
:truffleruby => Gem::Platform::RUBY,
|
90
89
|
:x64_mingw => x64_mingw,
|
91
90
|
:x64_mingw_20 => x64_mingw,
|
92
|
-
:x64_mingw_21 => x64_mingw
|
91
|
+
:x64_mingw_21 => x64_mingw,
|
93
92
|
}.freeze
|
94
93
|
|
95
94
|
gt_eq_0 = Gem::Requirement.new '>= 0'
|
@@ -206,7 +205,7 @@ class Gem::RequestSet::GemDependencyAPI
|
|
206
205
|
@git_set = @set.git_set
|
207
206
|
@git_sources = {}
|
208
207
|
@installing = false
|
209
|
-
@requires = Hash.new {
|
208
|
+
@requires = Hash.new {|h, name| h[name] = [] }
|
210
209
|
@vendor_set = @set.vendor_set
|
211
210
|
@source_set = @set.source_set
|
212
211
|
@gem_sources = {}
|
@@ -235,7 +234,7 @@ class Gem::RequestSet::GemDependencyAPI
|
|
235
234
|
return unless (groups & @without_groups).empty?
|
236
235
|
|
237
236
|
dependencies.each do |dep|
|
238
|
-
@set.gem dep.name, *dep.requirement
|
237
|
+
@set.gem dep.name, *dep.requirement.as_list
|
239
238
|
end
|
240
239
|
end
|
241
240
|
|
@@ -380,7 +379,7 @@ class Gem::RequestSet::GemDependencyAPI
|
|
380
379
|
Gem::Requirement.create requirements
|
381
380
|
end
|
382
381
|
|
383
|
-
return unless gem_platforms options
|
382
|
+
return unless gem_platforms name, options
|
384
383
|
|
385
384
|
groups = gem_group name, options
|
386
385
|
|
@@ -533,7 +532,7 @@ Gem dependencies file #{@path} includes git reference for both ref/branch and ta
|
|
533
532
|
# Handles the platforms: option from +options+. Returns true if the
|
534
533
|
# platform matches the current platform.
|
535
534
|
|
536
|
-
def gem_platforms(options) # :nodoc:
|
535
|
+
def gem_platforms(name, options) # :nodoc:
|
537
536
|
platform_names = Array(options.delete :platform)
|
538
537
|
platform_names.concat Array(options.delete :platforms)
|
539
538
|
platform_names.concat @current_platforms if @current_platforms
|
@@ -544,7 +543,7 @@ Gem dependencies file #{@path} includes git reference for both ref/branch and ta
|
|
544
543
|
raise ArgumentError, "unknown platform #{platform_name.inspect}" unless
|
545
544
|
platform = PLATFORM_MAP[platform_name]
|
546
545
|
|
547
|
-
next false unless Gem::Platform.
|
546
|
+
next false unless Gem::Platform.match_gem? platform, name
|
548
547
|
|
549
548
|
if engines = ENGINE_MAP[platform_name]
|
550
549
|
next false unless engines.include? Gem.ruby_engine
|
@@ -842,5 +841,4 @@ Gem dependencies file #{@path} includes git reference for both ref/branch and ta
|
|
842
841
|
|
843
842
|
Gem.sources << url
|
844
843
|
end
|
845
|
-
|
846
844
|
end
|
@@ -5,12 +5,10 @@
|
|
5
5
|
# constructed.
|
6
6
|
|
7
7
|
class Gem::RequestSet::Lockfile
|
8
|
-
|
9
8
|
##
|
10
9
|
# Raised when a lockfile cannot be parsed
|
11
10
|
|
12
11
|
class ParseError < Gem::Exception
|
13
|
-
|
14
12
|
##
|
15
13
|
# The column where the error was encountered
|
16
14
|
|
@@ -36,7 +34,6 @@ class Gem::RequestSet::Lockfile
|
|
36
34
|
@path = path
|
37
35
|
super "#{message} (at line #{line} column #{column})"
|
38
36
|
end
|
39
|
-
|
40
37
|
end
|
41
38
|
|
42
39
|
##
|
@@ -89,7 +86,7 @@ class Gem::RequestSet::Lockfile
|
|
89
86
|
def add_DEPENDENCIES(out) # :nodoc:
|
90
87
|
out << "DEPENDENCIES"
|
91
88
|
|
92
|
-
out.concat @dependencies.sort_by {
|
89
|
+
out.concat @dependencies.sort_by {|name,| name }.map {|name, requirement|
|
93
90
|
" #{name}#{requirement.for_lockfile}"
|
94
91
|
}
|
95
92
|
|
@@ -103,12 +100,12 @@ class Gem::RequestSet::Lockfile
|
|
103
100
|
request.spec.source.uri
|
104
101
|
end
|
105
102
|
|
106
|
-
source_groups.sort_by {
|
103
|
+
source_groups.sort_by {|group,| group.to_s }.map do |group, requests|
|
107
104
|
out << "GEM"
|
108
105
|
out << " remote: #{group}"
|
109
106
|
out << " specs:"
|
110
107
|
|
111
|
-
requests.sort_by {
|
108
|
+
requests.sort_by {|request| request.name }.each do |request|
|
112
109
|
next if request.spec.name == 'bundler'
|
113
110
|
platform = "-#{request.spec.platform}" unless
|
114
111
|
Gem::Platform::RUBY == request.spec.platform
|
@@ -140,10 +137,10 @@ class Gem::RequestSet::Lockfile
|
|
140
137
|
out << " revision: #{revision}"
|
141
138
|
out << " specs:"
|
142
139
|
|
143
|
-
requests.sort_by {
|
140
|
+
requests.sort_by {|request| request.name }.each do |request|
|
144
141
|
out << " #{request.name} (#{request.version})"
|
145
142
|
|
146
|
-
dependencies = request.spec.dependencies.sort_by {
|
143
|
+
dependencies = request.spec.dependencies.sort_by {|dep| dep.name }
|
147
144
|
dependencies.each do |dep|
|
148
145
|
out << " #{dep.name}#{dep.requirement.for_lockfile}"
|
149
146
|
end
|
@@ -185,9 +182,9 @@ class Gem::RequestSet::Lockfile
|
|
185
182
|
def add_PLATFORMS(out) # :nodoc:
|
186
183
|
out << "PLATFORMS"
|
187
184
|
|
188
|
-
platforms = requests.map {
|
185
|
+
platforms = requests.map {|request| request.spec.platform }.uniq
|
189
186
|
|
190
|
-
platforms = platforms.sort_by {
|
187
|
+
platforms = platforms.sort_by {|platform| platform.to_s }
|
191
188
|
|
192
189
|
platforms.each do |platform|
|
193
190
|
out << " #{platform}"
|
@@ -197,7 +194,7 @@ class Gem::RequestSet::Lockfile
|
|
197
194
|
end
|
198
195
|
|
199
196
|
def spec_groups
|
200
|
-
requests.group_by {
|
197
|
+
requests.group_by {|request| request.spec.class }
|
201
198
|
end
|
202
199
|
|
203
200
|
##
|
@@ -237,7 +234,6 @@ class Gem::RequestSet::Lockfile
|
|
237
234
|
def requests
|
238
235
|
@set.sorted_requests
|
239
236
|
end
|
240
|
-
|
241
237
|
end
|
242
238
|
|
243
239
|
require 'rubygems/request_set/lockfile/tokenizer'
|