rubygems-update 3.1.2 → 3.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CODE_OF_CONDUCT.md +55 -19
- data/CONTRIBUTING.md +25 -11
- data/History.txt +460 -232
- data/Manifest.txt +47 -77
- data/POLICIES.md +6 -12
- data/README.md +5 -5
- data/Rakefile +59 -83
- data/bin/update_rubygems +1 -1
- data/bundler/CHANGELOG.md +1598 -1421
- data/bundler/README.md +6 -8
- data/bundler/UPGRADING.md +18 -32
- data/bundler/bundler.gemspec +3 -3
- data/bundler/exe/bundle +3 -0
- data/bundler/lib/bundler.rb +32 -7
- data/bundler/lib/bundler/build_metadata.rb +4 -12
- data/bundler/lib/bundler/cli.rb +58 -21
- data/bundler/lib/bundler/cli/add.rb +1 -1
- data/bundler/lib/bundler/cli/binstubs.rb +6 -2
- data/bundler/lib/bundler/cli/cache.rb +1 -7
- data/bundler/lib/bundler/cli/clean.rb +1 -1
- data/bundler/lib/bundler/cli/common.rb +14 -0
- data/bundler/lib/bundler/cli/console.rb +1 -1
- data/bundler/lib/bundler/cli/doctor.rb +1 -1
- data/bundler/lib/bundler/cli/exec.rb +4 -4
- data/bundler/lib/bundler/cli/fund.rb +36 -0
- data/bundler/lib/bundler/cli/gem.rb +84 -11
- data/bundler/lib/bundler/cli/info.rb +15 -4
- data/bundler/lib/bundler/cli/init.rb +2 -2
- data/bundler/lib/bundler/cli/inject.rb +1 -1
- data/bundler/lib/bundler/cli/install.rb +16 -13
- data/bundler/lib/bundler/cli/issue.rb +2 -2
- data/bundler/lib/bundler/cli/list.rb +12 -10
- data/bundler/lib/bundler/cli/outdated.rb +87 -66
- data/bundler/lib/bundler/cli/plugin.rb +10 -0
- data/bundler/lib/bundler/cli/pristine.rb +5 -0
- data/bundler/lib/bundler/cli/show.rb +1 -1
- data/bundler/lib/bundler/cli/update.rb +3 -1
- data/bundler/lib/bundler/compact_index_client.rb +1 -1
- data/bundler/lib/bundler/compact_index_client/cache.rb +6 -14
- data/bundler/lib/bundler/compact_index_client/gem_parser.rb +28 -0
- data/bundler/lib/bundler/compact_index_client/updater.rb +5 -5
- data/bundler/lib/bundler/definition.rb +65 -76
- data/bundler/lib/bundler/dep_proxy.rb +1 -1
- data/bundler/lib/bundler/dependency.rb +3 -10
- data/bundler/lib/bundler/dsl.rb +5 -9
- data/bundler/lib/bundler/endpoint_specification.rb +1 -1
- data/bundler/lib/bundler/env.rb +1 -1
- data/bundler/lib/bundler/environment_preserver.rb +26 -2
- data/bundler/lib/bundler/errors.rb +1 -0
- data/bundler/lib/bundler/feature_flag.rb +0 -3
- data/bundler/lib/bundler/fetcher.rb +4 -3
- data/bundler/lib/bundler/fetcher/base.rb +1 -1
- data/bundler/lib/bundler/fetcher/compact_index.rb +1 -1
- data/bundler/lib/bundler/fetcher/downloader.rb +1 -1
- data/bundler/lib/bundler/fetcher/index.rb +3 -4
- data/bundler/lib/bundler/friendly_errors.rb +22 -13
- data/bundler/lib/bundler/gem_helper.rb +33 -19
- data/bundler/lib/bundler/gem_helpers.rb +36 -25
- data/bundler/lib/bundler/gem_version_promoter.rb +2 -2
- data/bundler/lib/bundler/graph.rb +1 -1
- data/bundler/lib/bundler/index.rb +6 -2
- data/bundler/lib/bundler/injector.rb +22 -4
- data/bundler/lib/bundler/inline.rb +2 -2
- data/bundler/lib/bundler/installer.rb +35 -32
- data/bundler/lib/bundler/installer/gem_installer.rb +3 -3
- data/bundler/lib/bundler/installer/parallel_installer.rb +10 -10
- data/bundler/lib/bundler/installer/standalone.rb +2 -2
- data/bundler/lib/bundler/lazy_specification.rb +35 -11
- data/bundler/lib/bundler/lockfile_generator.rb +1 -1
- data/bundler/lib/bundler/lockfile_parser.rb +1 -1
- data/bundler/lib/bundler/man/.document +1 -0
- data/bundler/{man/bundle-add.ronn → lib/bundler/man/bundle-add.1.ronn} +0 -0
- data/bundler/{man/bundle-binstubs.ronn → lib/bundler/man/bundle-binstubs.1.ronn} +2 -4
- data/bundler/{man/bundle-cache.ronn → lib/bundler/man/bundle-cache.1.ronn} +0 -0
- data/bundler/{man/bundle-check.ronn → lib/bundler/man/bundle-check.1.ronn} +0 -0
- data/bundler/{man/bundle-clean.ronn → lib/bundler/man/bundle-clean.1.ronn} +0 -0
- data/bundler/{man/bundle-config.ronn → lib/bundler/man/bundle-config.1.ronn} +19 -30
- data/bundler/{man/bundle-doctor.ronn → lib/bundler/man/bundle-doctor.1.ronn} +0 -0
- data/bundler/{man/bundle-exec.ronn → lib/bundler/man/bundle-exec.1.ronn} +0 -0
- data/bundler/{man/bundle-gem.ronn → lib/bundler/man/bundle-gem.1.ronn} +30 -7
- data/bundler/{man/bundle-info.ronn → lib/bundler/man/bundle-info.1.ronn} +0 -0
- data/bundler/{man/bundle-init.ronn → lib/bundler/man/bundle-init.1.ronn} +0 -0
- data/bundler/{man/bundle-inject.ronn → lib/bundler/man/bundle-inject.1.ronn} +0 -0
- data/bundler/{man/bundle-install.ronn → lib/bundler/man/bundle-install.1.ronn} +25 -3
- data/bundler/{man/bundle-list.ronn → lib/bundler/man/bundle-list.1.ronn} +6 -6
- data/bundler/{man/bundle-lock.ronn → lib/bundler/man/bundle-lock.1.ronn} +0 -0
- data/bundler/{man/bundle-open.ronn → lib/bundler/man/bundle-open.1.ronn} +0 -0
- data/bundler/{man/bundle-outdated.ronn → lib/bundler/man/bundle-outdated.1.ronn} +0 -0
- data/bundler/{man/bundle-platform.ronn → lib/bundler/man/bundle-platform.1.ronn} +0 -0
- data/bundler/{man/bundle-pristine.ronn → lib/bundler/man/bundle-pristine.1.ronn} +0 -0
- data/bundler/{man/bundle-remove.ronn → lib/bundler/man/bundle-remove.1.ronn} +0 -0
- data/bundler/{man/bundle-show.ronn → lib/bundler/man/bundle-show.1.ronn} +0 -0
- data/bundler/{man/bundle-update.ronn → lib/bundler/man/bundle-update.1.ronn} +0 -0
- data/bundler/{man/bundle-viz.ronn → lib/bundler/man/bundle-viz.1.ronn} +0 -0
- data/bundler/{man/bundle.ronn → lib/bundler/man/bundle.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/gemfile.5.ronn +4 -4
- data/bundler/lib/bundler/mirror.rb +2 -2
- data/bundler/lib/bundler/plugin.rb +30 -5
- data/bundler/lib/bundler/plugin/api/source.rb +1 -1
- data/bundler/lib/bundler/plugin/dsl.rb +1 -1
- data/bundler/lib/bundler/plugin/index.rb +10 -1
- data/bundler/lib/bundler/plugin/installer.rb +1 -1
- data/bundler/lib/bundler/plugin/installer/rubygems.rb +1 -1
- data/bundler/lib/bundler/plugin/source_list.rb +1 -1
- data/bundler/lib/bundler/psyched_yaml.rb +0 -15
- data/bundler/lib/bundler/remote_specification.rb +5 -2
- data/bundler/lib/bundler/resolver.rb +37 -18
- data/bundler/lib/bundler/resolver/spec_group.rb +36 -21
- data/bundler/lib/bundler/retry.rb +1 -1
- data/bundler/lib/bundler/ruby_version.rb +1 -1
- data/bundler/lib/bundler/rubygems_ext.rb +53 -9
- data/bundler/lib/bundler/rubygems_gem_installer.rb +3 -9
- data/bundler/lib/bundler/rubygems_integration.rb +26 -61
- data/bundler/lib/bundler/runtime.rb +4 -14
- data/bundler/lib/bundler/settings.rb +49 -46
- data/bundler/lib/bundler/shared_helpers.rb +2 -2
- data/bundler/lib/bundler/similarity_detector.rb +1 -1
- data/bundler/lib/bundler/source.rb +1 -1
- data/bundler/lib/bundler/source/git.rb +5 -5
- data/bundler/lib/bundler/source/git/git_proxy.rb +57 -60
- data/bundler/lib/bundler/source/path.rb +7 -3
- data/bundler/lib/bundler/source/path/installer.rb +8 -10
- data/bundler/lib/bundler/source/rubygems.rb +13 -16
- data/bundler/lib/bundler/source/rubygems/remote.rb +1 -1
- data/bundler/lib/bundler/source_list.rb +2 -2
- data/bundler/lib/bundler/spec_set.rb +7 -9
- data/bundler/lib/bundler/stub_specification.rb +17 -7
- data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +57 -47
- data/bundler/lib/bundler/templates/newgem/Gemfile.tt +9 -1
- data/bundler/lib/bundler/templates/newgem/README.md.tt +1 -2
- data/bundler/lib/bundler/templates/newgem/Rakefile.tt +19 -5
- data/bundler/lib/bundler/templates/newgem/bin/console.tt +1 -0
- data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +13 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +2 -0
- data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +18 -0
- data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +9 -0
- data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +4 -2
- data/bundler/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +2 -0
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +14 -6
- data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +10 -0
- data/bundler/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +2 -0
- data/bundler/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +2 -1
- data/bundler/lib/bundler/templates/newgem/test/{newgem_test.rb.tt → minitest/newgem_test.rb.tt} +2 -0
- data/bundler/lib/bundler/templates/newgem/test/{test_helper.rb.tt → minitest/test_helper.rb.tt} +2 -0
- data/bundler/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt +15 -0
- data/bundler/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt +6 -0
- data/bundler/lib/bundler/ui/shell.rb +5 -5
- data/bundler/lib/bundler/uri_credentials_filter.rb +3 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +34 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +2 -2
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +1 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +1 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +38 -40
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +79 -208
- data/bundler/lib/bundler/vendor/thor/lib/thor.rb +0 -7
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +2 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +9 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
- data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +154 -0
- data/bundler/lib/bundler/vendored_persistent.rb +0 -7
- data/bundler/lib/bundler/vendored_tmpdir.rb +4 -0
- data/bundler/lib/bundler/version.rb +1 -1
- data/bundler/lib/bundler/worker.rb +1 -1
- data/bundler/lib/bundler/yaml_serializer.rb +1 -1
- data/bundler/man/bundle-add.1 +1 -1
- data/bundler/man/bundle-binstubs.1 +5 -3
- data/bundler/man/bundle-cache.1 +1 -1
- data/bundler/man/bundle-check.1 +1 -1
- data/bundler/man/bundle-clean.1 +1 -1
- data/bundler/man/bundle-config.1 +16 -25
- data/bundler/man/bundle-doctor.1 +1 -1
- data/bundler/man/bundle-exec.1 +1 -1
- data/bundler/man/bundle-gem.1 +25 -3
- data/bundler/man/bundle-info.1 +1 -1
- data/bundler/man/bundle-init.1 +1 -1
- data/bundler/man/bundle-inject.1 +1 -1
- data/bundler/man/bundle-install.1 +30 -3
- data/bundler/man/bundle-list.1 +7 -7
- data/bundler/man/bundle-lock.1 +1 -1
- data/bundler/man/bundle-open.1 +1 -1
- data/bundler/man/bundle-outdated.1 +1 -1
- data/bundler/man/bundle-platform.1 +1 -1
- data/bundler/man/bundle-pristine.1 +1 -1
- data/bundler/man/bundle-remove.1 +1 -1
- data/bundler/man/bundle-show.1 +1 -1
- data/bundler/man/bundle-update.1 +1 -1
- data/bundler/man/bundle-viz.1 +1 -1
- data/bundler/man/bundle.1 +1 -1
- data/bundler/man/gemfile.5 +4 -4
- data/lib/rubygems.rb +138 -187
- data/lib/rubygems/available_set.rb +4 -6
- data/lib/rubygems/basic_specification.rb +12 -10
- data/lib/rubygems/bundler_version_finder.rb +14 -9
- data/lib/rubygems/command.rb +17 -17
- data/lib/rubygems/command_manager.rb +5 -6
- data/lib/rubygems/commands/build_command.rb +40 -20
- data/lib/rubygems/commands/cert_command.rb +2 -10
- data/lib/rubygems/commands/check_command.rb +0 -2
- data/lib/rubygems/commands/cleanup_command.rb +11 -7
- data/lib/rubygems/commands/contents_command.rb +4 -6
- data/lib/rubygems/commands/dependency_command.rb +6 -8
- data/lib/rubygems/commands/environment_command.rb +1 -3
- data/lib/rubygems/commands/fetch_command.rb +2 -4
- data/lib/rubygems/commands/generate_index_command.rb +0 -2
- data/lib/rubygems/commands/help_command.rb +4 -4
- data/lib/rubygems/commands/info_command.rb +8 -5
- data/lib/rubygems/commands/install_command.rb +3 -5
- data/lib/rubygems/commands/list_command.rb +8 -7
- data/lib/rubygems/commands/lock_command.rb +1 -3
- data/lib/rubygems/commands/mirror_command.rb +0 -2
- data/lib/rubygems/commands/open_command.rb +0 -4
- data/lib/rubygems/commands/outdated_command.rb +0 -2
- data/lib/rubygems/commands/owner_command.rb +9 -4
- data/lib/rubygems/commands/pristine_command.rb +11 -5
- data/lib/rubygems/commands/push_command.rb +10 -47
- data/lib/rubygems/commands/query_command.rb +14 -344
- data/lib/rubygems/commands/rdoc_command.rb +0 -2
- data/lib/rubygems/commands/search_command.rb +7 -7
- data/lib/rubygems/commands/server_command.rb +3 -1
- data/lib/rubygems/commands/setup_command.rb +131 -58
- data/lib/rubygems/commands/signin_command.rb +0 -2
- data/lib/rubygems/commands/signout_command.rb +0 -2
- data/lib/rubygems/commands/sources_command.rb +9 -7
- data/lib/rubygems/commands/specification_command.rb +8 -4
- data/lib/rubygems/commands/stale_command.rb +1 -3
- data/lib/rubygems/commands/uninstall_command.rb +2 -4
- data/lib/rubygems/commands/unpack_command.rb +1 -3
- data/lib/rubygems/commands/update_command.rb +59 -14
- data/lib/rubygems/commands/which_command.rb +0 -2
- data/lib/rubygems/commands/yank_command.rb +4 -7
- data/lib/rubygems/config_file.rb +11 -4
- data/lib/rubygems/core_ext/kernel_require.rb +29 -36
- data/lib/rubygems/core_ext/kernel_warn.rb +12 -13
- data/lib/rubygems/defaults.rb +101 -7
- data/lib/rubygems/dependency.rb +3 -8
- data/lib/rubygems/dependency_installer.rb +6 -78
- data/lib/rubygems/dependency_list.rb +7 -9
- data/lib/rubygems/deprecate.rb +46 -1
- data/lib/rubygems/doctor.rb +4 -4
- data/lib/rubygems/errors.rb +3 -14
- data/lib/rubygems/exceptions.rb +2 -33
- data/lib/rubygems/ext.rb +6 -6
- data/lib/rubygems/ext/build_error.rb +2 -0
- data/lib/rubygems/ext/builder.rb +16 -35
- data/lib/rubygems/ext/cmake_builder.rb +5 -7
- data/lib/rubygems/ext/configure_builder.rb +4 -6
- data/lib/rubygems/ext/ext_conf_builder.rb +21 -19
- data/lib/rubygems/ext/rake_builder.rb +4 -6
- data/lib/rubygems/gem_runner.rb +3 -10
- data/lib/rubygems/gemcutter_utilities.rb +102 -21
- data/lib/rubygems/indexer.rb +1 -22
- data/lib/rubygems/install_update_options.rb +7 -7
- data/lib/rubygems/installer.rb +59 -80
- data/lib/rubygems/installer_test_case.rb +25 -11
- data/lib/rubygems/installer_uninstaller_utils.rb +24 -0
- data/lib/rubygems/local_remote_options.rb +1 -1
- data/lib/rubygems/mock_gem_ui.rb +0 -6
- data/lib/rubygems/name_tuple.rb +3 -7
- data/lib/rubygems/openssl.rb +7 -0
- data/lib/rubygems/package.rb +14 -25
- data/lib/rubygems/package/digest_io.rb +0 -2
- data/lib/rubygems/package/file_source.rb +0 -2
- data/lib/rubygems/package/io_source.rb +0 -2
- data/lib/rubygems/package/old.rb +1 -3
- data/lib/rubygems/package/tar_header.rb +4 -6
- data/lib/rubygems/package/tar_reader.rb +0 -3
- data/lib/rubygems/package/tar_reader/entry.rb +0 -3
- data/lib/rubygems/package/tar_test_case.rb +2 -4
- data/lib/rubygems/package/tar_writer.rb +2 -12
- data/lib/rubygems/package_task.rb +1 -7
- data/lib/rubygems/path_support.rb +1 -3
- data/lib/rubygems/platform.rb +21 -12
- data/lib/rubygems/psych_tree.rb +0 -2
- data/lib/rubygems/query_utils.rb +353 -0
- data/lib/rubygems/rdoc.rb +0 -12
- data/lib/rubygems/remote_fetcher.rb +11 -28
- data/lib/rubygems/request.rb +4 -11
- data/lib/rubygems/request/connection_pools.rb +1 -5
- data/lib/rubygems/request/http_pool.rb +0 -2
- data/lib/rubygems/request/https_pool.rb +0 -2
- data/lib/rubygems/request_set.rb +7 -20
- data/lib/rubygems/request_set/gem_dependency_api.rb +6 -8
- data/lib/rubygems/request_set/lockfile.rb +8 -12
- data/lib/rubygems/request_set/lockfile/parser.rb +0 -2
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +1 -3
- data/lib/rubygems/requirement.rb +20 -21
- data/lib/rubygems/resolver.rb +14 -12
- data/lib/rubygems/resolver/activation_request.rb +9 -3
- data/lib/rubygems/resolver/api_set.rb +31 -24
- data/lib/rubygems/resolver/api_set/gem_parser.rb +20 -0
- data/lib/rubygems/resolver/api_specification.rb +24 -10
- data/lib/rubygems/resolver/best_set.rb +1 -3
- data/lib/rubygems/resolver/composed_set.rb +3 -5
- data/lib/rubygems/resolver/conflict.rb +2 -4
- data/lib/rubygems/resolver/current_set.rb +0 -2
- data/lib/rubygems/resolver/dependency_request.rb +1 -3
- data/lib/rubygems/resolver/git_set.rb +0 -2
- data/lib/rubygems/resolver/git_specification.rb +0 -2
- data/lib/rubygems/resolver/index_set.rb +1 -3
- data/lib/rubygems/resolver/index_specification.rb +26 -2
- data/lib/rubygems/resolver/installed_specification.rb +0 -2
- data/lib/rubygems/resolver/installer_set.rb +60 -13
- data/lib/rubygems/resolver/local_specification.rb +0 -2
- data/lib/rubygems/resolver/lock_set.rb +2 -4
- data/lib/rubygems/resolver/lock_specification.rb +0 -2
- data/lib/rubygems/resolver/molinillo/lib/molinillo.rb +6 -5
- data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb +7 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb +1 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +39 -5
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/action.rb +1 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb +7 -6
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/set_payload.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/tag.rb +4 -3
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb +43 -10
- data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +75 -7
- data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb +1 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb +3 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb +506 -165
- data/lib/rubygems/resolver/molinillo/lib/molinillo/resolver.rb +3 -2
- data/lib/rubygems/resolver/molinillo/lib/molinillo/state.rb +8 -4
- data/lib/rubygems/resolver/requirement_list.rb +0 -2
- data/lib/rubygems/resolver/set.rb +0 -2
- data/lib/rubygems/resolver/source_set.rb +0 -2
- data/lib/rubygems/resolver/spec_specification.rb +14 -2
- data/lib/rubygems/resolver/specification.rb +13 -3
- data/lib/rubygems/resolver/stats.rb +0 -2
- data/lib/rubygems/resolver/vendor_set.rb +0 -2
- data/lib/rubygems/resolver/vendor_specification.rb +0 -2
- data/lib/rubygems/s3_uri_signer.rb +2 -8
- data/lib/rubygems/safe_yaml.rb +4 -4
- data/lib/rubygems/security.rb +27 -34
- data/lib/rubygems/security/policy.rb +4 -8
- data/lib/rubygems/security/signer.rb +5 -7
- data/lib/rubygems/security/trust_dir.rb +1 -3
- data/lib/rubygems/server.rb +16 -13
- data/lib/rubygems/source.rb +23 -12
- data/lib/rubygems/source/git.rb +7 -8
- data/lib/rubygems/source/installed.rb +0 -2
- data/lib/rubygems/source/local.rb +2 -4
- data/lib/rubygems/source/lock.rb +0 -2
- data/lib/rubygems/source/specific_file.rb +0 -2
- data/lib/rubygems/source/vendor.rb +0 -2
- data/lib/rubygems/source_list.rb +4 -7
- data/lib/rubygems/spec_fetcher.rb +19 -18
- data/lib/rubygems/specification.rb +113 -126
- data/lib/rubygems/specification_policy.rb +88 -30
- data/lib/rubygems/ssl_certs/{index.rubygems.org → rubygems.org}/GlobalSignRootCA.pem +0 -0
- data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem +21 -0
- data/lib/rubygems/stub_specification.rb +1 -5
- data/lib/rubygems/syck_hack.rb +0 -2
- data/lib/rubygems/test_case.rb +105 -132
- data/lib/rubygems/test_utilities.rb +12 -19
- data/lib/rubygems/uninstaller.rb +35 -16
- data/lib/rubygems/uri_formatter.rb +2 -3
- data/lib/rubygems/uri_parser.rb +0 -2
- data/lib/rubygems/user_interaction.rb +1 -26
- data/lib/rubygems/util.rb +15 -3
- data/lib/rubygems/util/licenses.rb +4 -6
- data/lib/rubygems/util/list.rb +0 -2
- data/lib/rubygems/validator.rb +1 -3
- data/lib/rubygems/version.rb +5 -7
- data/lib/rubygems/version_option.rb +6 -0
- data/rubygems-update.gemspec +2 -2
- data/setup.rb +2 -7
- data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -2
- data/test/rubygems/rubygems/commands/crash_command.rb +0 -2
- data/test/rubygems/rubygems_plugin.rb +0 -2
- data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -2
- data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +12 -0
- data/test/rubygems/test_bundled_ca.rb +42 -45
- data/test/rubygems/test_config.rb +0 -2
- data/test/rubygems/test_deprecate.rb +40 -7
- data/test/rubygems/test_gem.rb +151 -99
- data/test/rubygems/test_gem_available_set.rb +3 -5
- data/test/rubygems/test_gem_bundler_version_finder.rb +19 -3
- data/test/rubygems/test_gem_command.rb +24 -7
- data/test/rubygems/test_gem_command_manager.rb +36 -5
- data/test/rubygems/test_gem_commands_build_command.rb +250 -15
- data/test/rubygems/test_gem_commands_cert_command.rb +4 -6
- data/test/rubygems/test_gem_commands_check_command.rb +0 -2
- data/test/rubygems/test_gem_commands_cleanup_command.rb +14 -5
- data/test/rubygems/test_gem_commands_contents_command.rb +50 -19
- data/test/rubygems/test_gem_commands_dependency_command.rb +0 -2
- data/test/rubygems/test_gem_commands_environment_command.rb +21 -23
- data/test/rubygems/test_gem_commands_fetch_command.rb +0 -2
- data/test/rubygems/test_gem_commands_generate_index_command.rb +1 -7
- data/test/rubygems/test_gem_commands_help_command.rb +15 -4
- data/test/rubygems/test_gem_commands_info_command.rb +6 -8
- data/test/rubygems/test_gem_commands_install_command.rb +163 -34
- data/test/rubygems/test_gem_commands_list_command.rb +0 -2
- data/test/rubygems/test_gem_commands_lock_command.rb +0 -2
- data/test/rubygems/test_gem_commands_mirror.rb +1 -3
- data/test/rubygems/test_gem_commands_open_command.rb +4 -6
- data/test/rubygems/test_gem_commands_outdated_command.rb +0 -2
- data/test/rubygems/test_gem_commands_owner_command.rb +59 -5
- data/test/rubygems/test_gem_commands_pristine_command.rb +43 -12
- data/test/rubygems/test_gem_commands_push_command.rb +77 -9
- data/test/rubygems/test_gem_commands_query_command.rb +12 -12
- data/test/rubygems/test_gem_commands_search_command.rb +0 -2
- data/test/rubygems/test_gem_commands_server_command.rb +0 -2
- data/test/rubygems/test_gem_commands_setup_command.rb +165 -124
- data/test/rubygems/test_gem_commands_signin_command.rb +33 -9
- data/test/rubygems/test_gem_commands_signout_command.rb +0 -7
- data/test/rubygems/test_gem_commands_sources_command.rb +99 -3
- data/test/rubygems/test_gem_commands_specification_command.rb +46 -20
- data/test/rubygems/test_gem_commands_stale_command.rb +0 -2
- data/test/rubygems/test_gem_commands_uninstall_command.rb +2 -3
- data/test/rubygems/test_gem_commands_unpack_command.rb +0 -2
- data/test/rubygems/test_gem_commands_update_command.rb +116 -7
- data/test/rubygems/test_gem_commands_which_command.rb +3 -5
- data/test/rubygems/test_gem_commands_yank_command.rb +44 -8
- data/test/rubygems/test_gem_config_file.rb +7 -12
- data/test/rubygems/test_gem_dependency.rb +0 -2
- data/test/rubygems/test_gem_dependency_installer.rb +90 -193
- data/test/rubygems/test_gem_dependency_list.rb +10 -12
- data/test/rubygems/test_gem_dependency_resolution_error.rb +1 -3
- data/test/rubygems/test_gem_doctor.rb +28 -2
- data/test/rubygems/test_gem_ext_builder.rb +26 -47
- data/test/rubygems/test_gem_ext_cmake_builder.rb +16 -23
- data/test/rubygems/test_gem_ext_configure_builder.rb +4 -20
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +9 -29
- data/test/rubygems/test_gem_ext_rake_builder.rb +39 -24
- data/test/rubygems/test_gem_gem_runner.rb +44 -1
- data/test/rubygems/test_gem_gemcutter_utilities.rb +8 -5
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -2
- data/test/rubygems/test_gem_indexer.rb +9 -15
- data/test/rubygems/test_gem_install_update_options.rb +14 -4
- data/test/rubygems/test_gem_installer.rb +258 -115
- data/test/rubygems/test_gem_local_remote_options.rb +0 -2
- data/test/rubygems/test_gem_name_tuple.rb +0 -2
- data/test/rubygems/test_gem_package.rb +41 -39
- data/test/rubygems/test_gem_package_old.rb +4 -6
- data/test/rubygems/test_gem_package_tar_header.rb +18 -1
- data/test/rubygems/test_gem_package_tar_reader.rb +0 -2
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +0 -2
- data/test/rubygems/test_gem_package_tar_writer.rb +9 -6
- data/test/rubygems/test_gem_package_task.rb +46 -13
- data/test/rubygems/test_gem_path_support.rb +0 -2
- data/test/rubygems/test_gem_platform.rb +63 -6
- data/test/rubygems/test_gem_rdoc.rb +0 -2
- data/test/rubygems/test_gem_remote_fetcher.rb +168 -211
- data/test/rubygems/test_gem_request.rb +13 -17
- data/test/rubygems/test_gem_request_connection_pools.rb +0 -4
- data/test/rubygems/test_gem_request_set.rb +72 -22
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +3 -5
- data/test/rubygems/test_gem_request_set_lockfile.rb +4 -6
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +9 -11
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +118 -120
- data/test/rubygems/test_gem_requirement.rb +10 -4
- data/test/rubygems/test_gem_resolver.rb +6 -8
- data/test/rubygems/test_gem_resolver_activation_request.rb +0 -2
- data/test/rubygems/test_gem_resolver_api_set.rb +60 -59
- data/test/rubygems/test_gem_resolver_api_specification.rb +3 -5
- data/test/rubygems/test_gem_resolver_best_set.rb +5 -7
- data/test/rubygems/test_gem_resolver_composed_set.rb +0 -2
- data/test/rubygems/test_gem_resolver_conflict.rb +1 -3
- data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -2
- data/test/rubygems/test_gem_resolver_git_set.rb +0 -2
- data/test/rubygems/test_gem_resolver_git_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_index_set.rb +2 -4
- data/test/rubygems/test_gem_resolver_index_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_installer_set.rb +7 -9
- data/test/rubygems/test_gem_resolver_local_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_lock_set.rb +3 -5
- data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -2
- data/test/rubygems/test_gem_resolver_specification.rb +0 -4
- data/test/rubygems/test_gem_resolver_vendor_set.rb +1 -3
- data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -2
- data/test/rubygems/test_gem_security.rb +22 -24
- data/test/rubygems/test_gem_security_policy.rb +7 -12
- data/test/rubygems/test_gem_security_signer.rb +10 -12
- data/test/rubygems/test_gem_security_trust_dir.rb +4 -6
- data/test/rubygems/test_gem_server.rb +10 -14
- data/test/rubygems/test_gem_silent_ui.rb +0 -2
- data/test/rubygems/test_gem_source.rb +19 -18
- data/test/rubygems/test_gem_source_fetch_problem.rb +0 -2
- data/test/rubygems/test_gem_source_git.rb +12 -13
- data/test/rubygems/test_gem_source_installed.rb +7 -9
- data/test/rubygems/test_gem_source_list.rb +1 -2
- data/test/rubygems/test_gem_source_local.rb +8 -10
- data/test/rubygems/test_gem_source_lock.rb +10 -12
- data/test/rubygems/test_gem_source_specific_file.rb +7 -9
- data/test/rubygems/test_gem_source_subpath_problem.rb +49 -0
- data/test/rubygems/test_gem_source_vendor.rb +7 -9
- data/test/rubygems/test_gem_spec_fetcher.rb +11 -4
- data/test/rubygems/test_gem_specification.rb +182 -131
- data/test/rubygems/test_gem_stream_ui.rb +3 -3
- data/test/rubygems/test_gem_stub_specification.rb +4 -7
- data/test/rubygems/test_gem_text.rb +1 -3
- data/test/rubygems/test_gem_uninstaller.rb +134 -12
- data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -2
- data/test/rubygems/test_gem_uri_formatter.rb +0 -2
- data/test/rubygems/test_gem_util.rb +7 -7
- data/test/rubygems/test_gem_validator.rb +1 -3
- data/test/rubygems/test_gem_version.rb +1 -3
- data/test/rubygems/test_gem_version_option.rb +1 -3
- data/test/rubygems/test_kernel.rb +25 -10
- data/test/rubygems/test_project_sanity.rb +7 -2
- data/test/rubygems/test_remote_fetch_error.rb +0 -2
- data/test/rubygems/test_require.rb +291 -56
- data/test/test_changelog_generator.rb +17 -0
- metadata +65 -96
- data/.bundle/config +0 -2
- data/.rubocop.yml +0 -91
- data/Gemfile +0 -8
- data/Gemfile.lock +0 -43
- data/bundler/CODE_OF_CONDUCT.md +0 -136
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +0 -26
- data/bundler/man/bundle-add.1.txt +0 -58
- data/bundler/man/bundle-binstubs.1.txt +0 -48
- data/bundler/man/bundle-cache.1.txt +0 -78
- data/bundler/man/bundle-check.1.txt +0 -33
- data/bundler/man/bundle-clean.1.txt +0 -26
- data/bundler/man/bundle-config.1.txt +0 -528
- data/bundler/man/bundle-doctor.1.txt +0 -44
- data/bundler/man/bundle-exec.1.txt +0 -178
- data/bundler/man/bundle-gem.1.txt +0 -91
- data/bundler/man/bundle-info.1.txt +0 -21
- data/bundler/man/bundle-init.1.txt +0 -34
- data/bundler/man/bundle-inject.1.txt +0 -32
- data/bundler/man/bundle-install.1.txt +0 -401
- data/bundler/man/bundle-list.1.txt +0 -43
- data/bundler/man/bundle-lock.1.txt +0 -93
- data/bundler/man/bundle-open.1.txt +0 -29
- data/bundler/man/bundle-outdated.1.txt +0 -131
- data/bundler/man/bundle-platform.1.txt +0 -57
- data/bundler/man/bundle-pristine.1.txt +0 -44
- data/bundler/man/bundle-remove.1.txt +0 -34
- data/bundler/man/bundle-show.1.txt +0 -27
- data/bundler/man/bundle-update.1.txt +0 -390
- data/bundler/man/bundle-viz.1.txt +0 -39
- data/bundler/man/bundle.1.txt +0 -116
- data/bundler/man/gemfile.5.txt +0 -649
- data/lib/rubygems/source_local.rb +0 -7
- data/lib/rubygems/source_specific_file.rb +0 -6
- data/lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -23
- data/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -25
- data/lib/ubygems.rb +0 -14
- data/tmp/.keep +0 -0
- data/util/CL2notes +0 -55
- data/util/bisect +0 -10
- data/util/ci.sh +0 -62
- data/util/cops/deprecations.rb +0 -52
- data/util/create_certs.rb +0 -171
- data/util/create_certs.sh +0 -27
- data/util/create_encrypted_key.rb +0 -16
- data/util/generate_spdx_license_list.rb +0 -63
- data/util/patch_with_prs.rb +0 -77
- data/util/rubocop +0 -8
- data/util/update_bundled_ca_certificates.rb +0 -139
- data/util/update_changelog.rb +0 -67
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,7 +21,6 @@ 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
|
##
|
@@ -46,7 +41,6 @@ class Gem::RemoteFetcher
|
|
46
41
|
def to_s # :nodoc:
|
47
42
|
"#{super} (#{uri})"
|
48
43
|
end
|
49
|
-
|
50
44
|
end
|
51
45
|
|
52
46
|
##
|
@@ -84,7 +78,6 @@ class Gem::RemoteFetcher
|
|
84
78
|
def initialize(proxy=nil, dns=nil, headers={})
|
85
79
|
require 'net/http'
|
86
80
|
require 'stringio'
|
87
|
-
require 'time'
|
88
81
|
require 'uri'
|
89
82
|
|
90
83
|
Socket.do_not_reverse_lookup = true
|
@@ -109,7 +102,7 @@ class Gem::RemoteFetcher
|
|
109
102
|
|
110
103
|
return if found.empty?
|
111
104
|
|
112
|
-
spec, source = found.max_by {
|
105
|
+
spec, source = found.max_by {|(s,_)| s.version }
|
113
106
|
|
114
107
|
download spec, source.uri
|
115
108
|
end
|
@@ -120,11 +113,12 @@ class Gem::RemoteFetcher
|
|
120
113
|
# always replaced.
|
121
114
|
|
122
115
|
def download(spec, source_uri, install_dir = Gem.dir)
|
116
|
+
install_cache_dir = File.join install_dir, "cache"
|
123
117
|
cache_dir =
|
124
|
-
if Dir.pwd == install_dir
|
118
|
+
if Dir.pwd == install_dir # see fetch_command
|
125
119
|
install_dir
|
126
|
-
elsif File.writable? install_dir
|
127
|
-
|
120
|
+
elsif File.writable?(install_cache_dir) || (File.writable?(install_dir) && (not File.exist?(install_cache_dir)))
|
121
|
+
install_cache_dir
|
128
122
|
else
|
129
123
|
File.join Gem.user_dir, "cache"
|
130
124
|
end
|
@@ -132,6 +126,7 @@ class Gem::RemoteFetcher
|
|
132
126
|
gem_file_name = File.basename spec.cache_file
|
133
127
|
local_gem_path = File.join cache_dir, gem_file_name
|
134
128
|
|
129
|
+
require "fileutils"
|
135
130
|
FileUtils.mkdir_p cache_dir rescue nil unless File.exist? cache_dir
|
136
131
|
|
137
132
|
source_uri = parse_uri(source_uri)
|
@@ -215,12 +210,12 @@ class Gem::RemoteFetcher
|
|
215
210
|
def fetch_http(uri, last_modified = nil, head = false, depth = 0)
|
216
211
|
fetch_type = head ? Net::HTTP::Head : Net::HTTP::Get
|
217
212
|
response = request uri, fetch_type, last_modified do |req|
|
218
|
-
headers.each {
|
213
|
+
headers.each {|k,v| req.add_field(k,v) }
|
219
214
|
end
|
220
215
|
|
221
216
|
case response
|
222
217
|
when Net::HTTPOK, Net::HTTPNotModified then
|
223
|
-
response.uri = uri
|
218
|
+
response.uri = uri
|
224
219
|
head ? response : response.body
|
225
220
|
when Net::HTTPMovedPermanently, Net::HTTPFound, Net::HTTPSeeOther,
|
226
221
|
Net::HTTPTemporaryRedirect then
|
@@ -255,7 +250,7 @@ class Gem::RemoteFetcher
|
|
255
250
|
|
256
251
|
data = send "fetch_#{uri.scheme}", uri, mtime, head
|
257
252
|
|
258
|
-
if data and !head and uri.to_s
|
253
|
+
if data and !head and uri.to_s.end_with?(".gz")
|
259
254
|
begin
|
260
255
|
data = Gem::Util.gunzip data
|
261
256
|
rescue Zlib::GzipFile::Error
|
@@ -267,7 +262,7 @@ class Gem::RemoteFetcher
|
|
267
262
|
rescue Timeout::Error
|
268
263
|
raise UnknownHostError.new('timed out', uri)
|
269
264
|
rescue IOError, SocketError, SystemCallError,
|
270
|
-
*(OpenSSL::SSL::SSLError if
|
265
|
+
*(OpenSSL::SSL::SSLError if Gem::HAVE_OPENSSL) => e
|
271
266
|
if e.message =~ /getaddrinfo/
|
272
267
|
raise UnknownHostError.new('no such name', uri)
|
273
268
|
else
|
@@ -309,17 +304,6 @@ class Gem::RemoteFetcher
|
|
309
304
|
data
|
310
305
|
end
|
311
306
|
|
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
307
|
##
|
324
308
|
# Performs a Net::HTTP request of type +request_class+ on +uri+ returning
|
325
309
|
# a Net::HTTP response object. request maintains a table of persistent
|
@@ -341,7 +325,7 @@ class Gem::RemoteFetcher
|
|
341
325
|
end
|
342
326
|
|
343
327
|
def close_all
|
344
|
-
@pools.each_value {|pool| pool.close_all}
|
328
|
+
@pools.each_value {|pool| pool.close_all }
|
345
329
|
end
|
346
330
|
|
347
331
|
private
|
@@ -355,5 +339,4 @@ class Gem::RemoteFetcher
|
|
355
339
|
@pools[proxy] ||= Gem::Request::ConnectionPools.new proxy, @cert_files
|
356
340
|
end
|
357
341
|
end
|
358
|
-
|
359
342
|
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'
|