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
@@ -5,7 +5,6 @@ require 'rubygems/version_option'
|
|
5
5
|
require 'rubygems/package'
|
6
6
|
|
7
7
|
class Gem::Commands::SpecificationCommand < Gem::Command
|
8
|
-
|
9
8
|
include Gem::LocalRemoteOptions
|
10
9
|
include Gem::VersionOption
|
11
10
|
|
@@ -119,7 +118,7 @@ Specific fields in the specification can be extracted in YAML format:
|
|
119
118
|
dep.prerelease = options[:prerelease]
|
120
119
|
found, _ = Gem::SpecFetcher.fetcher.spec_for_dependency dep
|
121
120
|
|
122
|
-
specs.push(*found.map {
|
121
|
+
specs.push(*found.map {|spec,| spec })
|
123
122
|
end
|
124
123
|
|
125
124
|
if specs.empty?
|
@@ -127,8 +126,14 @@ Specific fields in the specification can be extracted in YAML format:
|
|
127
126
|
terminate_interaction 1
|
128
127
|
end
|
129
128
|
|
129
|
+
platform = get_platform_from_requirements(options)
|
130
|
+
|
131
|
+
if platform
|
132
|
+
specs = specs.select{|s| s.platform.to_s == platform }
|
133
|
+
end
|
134
|
+
|
130
135
|
unless options[:all]
|
131
|
-
specs = [specs.max_by {
|
136
|
+
specs = [specs.max_by {|s| s.version }]
|
132
137
|
end
|
133
138
|
|
134
139
|
specs.each do |s|
|
@@ -143,5 +148,4 @@ Specific fields in the specification can be extracted in YAML format:
|
|
143
148
|
say "\n"
|
144
149
|
end
|
145
150
|
end
|
146
|
-
|
147
151
|
end
|
@@ -2,7 +2,6 @@
|
|
2
2
|
require 'rubygems/command'
|
3
3
|
|
4
4
|
class Gem::Commands::StaleCommand < Gem::Command
|
5
|
-
|
6
5
|
def initialize
|
7
6
|
super('stale', 'List gems along with access times')
|
8
7
|
end
|
@@ -33,9 +32,8 @@ longer using.
|
|
33
32
|
end
|
34
33
|
end
|
35
34
|
|
36
|
-
gem_to_atime.sort_by {
|
35
|
+
gem_to_atime.sort_by {|_, atime| atime }.each do |name, atime|
|
37
36
|
say "#{name} at #{atime.strftime '%c'}"
|
38
37
|
end
|
39
38
|
end
|
40
|
-
|
41
39
|
end
|
@@ -10,7 +10,6 @@ require 'fileutils'
|
|
10
10
|
# See `gem help uninstall`
|
11
11
|
|
12
12
|
class Gem::Commands::UninstallCommand < Gem::Command
|
13
|
-
|
14
13
|
include Gem::VersionOption
|
15
14
|
|
16
15
|
def initialize
|
@@ -136,14 +135,14 @@ that is a dependency of an existing gem. You can use the
|
|
136
135
|
end
|
137
136
|
|
138
137
|
def uninstall_all
|
139
|
-
specs = Gem::Specification.reject {
|
138
|
+
specs = Gem::Specification.reject {|spec| spec.default_gem? }
|
140
139
|
|
141
140
|
specs.each do |spec|
|
142
141
|
options[:version] = spec.version
|
143
142
|
uninstall_gem spec.name
|
144
143
|
end
|
145
144
|
|
146
|
-
alert "Uninstalled all gems in #{options[:install_dir]}"
|
145
|
+
alert "Uninstalled all gems in #{options[:install_dir] || Gem.dir}"
|
147
146
|
end
|
148
147
|
|
149
148
|
def uninstall_specific
|
@@ -195,5 +194,4 @@ that is a dependency of an existing gem. You can use the
|
|
195
194
|
def uninstall(gem_name)
|
196
195
|
Gem::Uninstaller.new(gem_name, options).uninstall
|
197
196
|
end
|
198
|
-
|
199
197
|
end
|
@@ -13,7 +13,6 @@ module Gem::Security # :nodoc:
|
|
13
13
|
end
|
14
14
|
|
15
15
|
class Gem::Commands::UnpackCommand < Gem::Command
|
16
|
-
|
17
16
|
include Gem::VersionOption
|
18
17
|
include Gem::SecurityOption
|
19
18
|
|
@@ -157,7 +156,7 @@ command help for an example.
|
|
157
156
|
|
158
157
|
specs = dependency.matching_specs
|
159
158
|
|
160
|
-
selected = specs.max_by {
|
159
|
+
selected = specs.max_by {|s| s.version }
|
161
160
|
|
162
161
|
return Gem::RemoteFetcher.fetcher.download_to_cache(dependency) unless
|
163
162
|
selected
|
@@ -173,5 +172,4 @@ command help for an example.
|
|
173
172
|
|
174
173
|
path
|
175
174
|
end
|
176
|
-
|
177
175
|
end
|
@@ -10,7 +10,6 @@ require 'rubygems/install_message' # must come before rdoc for messaging
|
|
10
10
|
require 'rubygems/rdoc'
|
11
11
|
|
12
12
|
class Gem::Commands::UpdateCommand < Gem::Command
|
13
|
-
|
14
13
|
include Gem::InstallUpdateOptions
|
15
14
|
include Gem::LocalRemoteOptions
|
16
15
|
include Gem::VersionOption
|
@@ -73,8 +72,13 @@ command to remove old versions.
|
|
73
72
|
say "Latest version already installed. Done."
|
74
73
|
terminate_interaction
|
75
74
|
end
|
75
|
+
end
|
76
76
|
|
77
|
-
|
77
|
+
def check_oldest_rubygems(version) # :nodoc:
|
78
|
+
if oldest_supported_version > version
|
79
|
+
alert_error "rubygems #{version} is not supported. The oldest supported version is #{oldest_supported_version}"
|
80
|
+
terminate_interaction 1
|
81
|
+
end
|
78
82
|
end
|
79
83
|
|
80
84
|
def check_update_arguments # :nodoc:
|
@@ -90,9 +94,10 @@ command to remove old versions.
|
|
90
94
|
return
|
91
95
|
end
|
92
96
|
|
93
|
-
|
94
|
-
|
95
|
-
|
97
|
+
gems_to_update = which_to_update(
|
98
|
+
highest_installed_gems,
|
99
|
+
options[:args].uniq
|
100
|
+
)
|
96
101
|
|
97
102
|
if options[:explain]
|
98
103
|
say "Gems to update:"
|
@@ -108,7 +113,7 @@ command to remove old versions.
|
|
108
113
|
|
109
114
|
updated = update_gems gems_to_update
|
110
115
|
|
111
|
-
updated_names = updated.map {
|
116
|
+
updated_names = updated.map {|spec| spec.name }
|
112
117
|
not_updated_names = options[:args].uniq - updated_names
|
113
118
|
|
114
119
|
if updated.empty?
|
@@ -127,7 +132,7 @@ command to remove old versions.
|
|
127
132
|
|
128
133
|
spec_tuples, errors = fetcher.search_for_dependency dependency
|
129
134
|
|
130
|
-
error = errors.find {
|
135
|
+
error = errors.find {|e| e.respond_to? :exception }
|
131
136
|
|
132
137
|
raise error if error
|
133
138
|
|
@@ -137,6 +142,9 @@ command to remove old versions.
|
|
137
142
|
def highest_installed_gems # :nodoc:
|
138
143
|
hig = {} # highest installed gems
|
139
144
|
|
145
|
+
# Get only gem specifications installed as --user-install
|
146
|
+
Gem::Specification.dirs = Gem.user_dir if options[:user_install]
|
147
|
+
|
140
148
|
Gem::Specification.each do |spec|
|
141
149
|
if hig[spec.name].nil? or hig[spec.name].version < spec.version
|
142
150
|
hig[spec.name] = spec
|
@@ -166,10 +174,33 @@ command to remove old versions.
|
|
166
174
|
update_dir = File.join Gem.dir, 'gems', "rubygems-update-#{version}"
|
167
175
|
|
168
176
|
Dir.chdir update_dir do
|
169
|
-
say "Installing RubyGems #{version}"
|
177
|
+
say "Installing RubyGems #{version}" unless options[:silent]
|
178
|
+
|
179
|
+
installed = preparing_gem_layout_for(version) do
|
180
|
+
system Gem.ruby, '--disable-gems', 'setup.rb', *args
|
181
|
+
end
|
182
|
+
|
183
|
+
say "RubyGems system software updated" if installed unless options[:silent]
|
184
|
+
end
|
185
|
+
end
|
170
186
|
|
171
|
-
|
172
|
-
|
187
|
+
def preparing_gem_layout_for(version)
|
188
|
+
if Gem::Version.new(version) >= Gem::Version.new("3.2.a")
|
189
|
+
yield
|
190
|
+
else
|
191
|
+
require "tmpdir"
|
192
|
+
tmpdir = Dir.mktmpdir
|
193
|
+
FileUtils.mv Gem.plugindir, tmpdir
|
194
|
+
|
195
|
+
status = yield
|
196
|
+
|
197
|
+
if status
|
198
|
+
FileUtils.rm_rf tmpdir
|
199
|
+
else
|
200
|
+
FileUtils.mv File.join(tmpdir, "plugins"), Gem.plugindir
|
201
|
+
end
|
202
|
+
|
203
|
+
status
|
173
204
|
end
|
174
205
|
end
|
175
206
|
|
@@ -190,7 +221,7 @@ command to remove old versions.
|
|
190
221
|
rubygems_update.version = version
|
191
222
|
|
192
223
|
hig = {
|
193
|
-
'rubygems-update' => rubygems_update
|
224
|
+
'rubygems-update' => rubygems_update,
|
194
225
|
}
|
195
226
|
|
196
227
|
gems_to_update = which_to_update hig, options[:args], :system
|
@@ -206,14 +237,14 @@ command to remove old versions.
|
|
206
237
|
end
|
207
238
|
|
208
239
|
def update_gem(name, version = Gem::Requirement.default)
|
209
|
-
return if @updated.any? {
|
240
|
+
return if @updated.any? {|spec| spec.name == name }
|
210
241
|
|
211
242
|
update_options = options.dup
|
212
243
|
update_options[:prerelease] = version.prerelease?
|
213
244
|
|
214
245
|
@installer = Gem::DependencyInstaller.new update_options
|
215
246
|
|
216
|
-
say "Updating #{name}"
|
247
|
+
say "Updating #{name}" unless options[:system] && options[:silent]
|
217
248
|
begin
|
218
249
|
@installer.install name, Gem::Requirement.new(version)
|
219
250
|
rescue Gem::InstallError, Gem::DependencyError => e
|
@@ -237,12 +268,19 @@ command to remove old versions.
|
|
237
268
|
# Update RubyGems software to the latest version.
|
238
269
|
|
239
270
|
def update_rubygems
|
271
|
+
if Gem.disable_system_update_message
|
272
|
+
alert_error Gem.disable_system_update_message
|
273
|
+
terminate_interaction 1
|
274
|
+
end
|
275
|
+
|
240
276
|
check_update_arguments
|
241
277
|
|
242
278
|
version, requirement = rubygems_target_version
|
243
279
|
|
244
280
|
check_latest_rubygems version
|
245
281
|
|
282
|
+
check_oldest_rubygems version
|
283
|
+
|
246
284
|
update_gem 'rubygems-update', version
|
247
285
|
|
248
286
|
installed_gems = Gem::Specification.find_all_by_name 'rubygems-update', requirement
|
@@ -253,6 +291,7 @@ command to remove old versions.
|
|
253
291
|
|
254
292
|
def update_rubygems_arguments # :nodoc:
|
255
293
|
args = []
|
294
|
+
args << '--silent' if options[:silent]
|
256
295
|
args << '--prefix' << Gem.prefix if Gem.prefix
|
257
296
|
args << '--no-document' unless options[:document].include?('rdoc') || options[:document].include?('ri')
|
258
297
|
args << '--no-format-executable' if options[:no_format_executable]
|
@@ -267,7 +306,7 @@ command to remove old versions.
|
|
267
306
|
|
268
307
|
highest_installed_gems.each do |l_name, l_spec|
|
269
308
|
next if not gem_names.empty? and
|
270
|
-
gem_names.none? {
|
309
|
+
gem_names.none? {|name| name == l_spec.name }
|
271
310
|
|
272
311
|
highest_remote_tup = highest_remote_name_tuple l_spec
|
273
312
|
highest_remote_ver = highest_remote_tup.version
|
@@ -281,4 +320,10 @@ command to remove old versions.
|
|
281
320
|
result
|
282
321
|
end
|
283
322
|
|
323
|
+
private
|
324
|
+
|
325
|
+
def oldest_supported_version
|
326
|
+
# for Ruby 2.3
|
327
|
+
@oldest_supported_version ||= Gem::Version.new("2.5.2")
|
328
|
+
end
|
284
329
|
end
|
@@ -2,7 +2,6 @@
|
|
2
2
|
require 'rubygems/command'
|
3
3
|
|
4
4
|
class Gem::Commands::WhichCommand < Gem::Command
|
5
|
-
|
6
5
|
def initialize
|
7
6
|
super 'which', 'Find the location of a library file you can require',
|
8
7
|
:search_gems_first => false, :show_all => false
|
@@ -85,5 +84,4 @@ requiring to see why it does not behave as you expect.
|
|
85
84
|
def usage # :nodoc:
|
86
85
|
"#{program_name} FILE [FILE ...]"
|
87
86
|
end
|
88
|
-
|
89
87
|
end
|
@@ -5,7 +5,6 @@ require 'rubygems/version_option'
|
|
5
5
|
require 'rubygems/gemcutter_utilities'
|
6
6
|
|
7
7
|
class Gem::Commands::YankCommand < Gem::Command
|
8
|
-
|
9
8
|
include Gem::LocalRemoteOptions
|
10
9
|
include Gem::VersionOption
|
11
10
|
include Gem::GemcutterUtilities
|
@@ -48,7 +47,7 @@ data you will need to change them immediately and yank your gem.
|
|
48
47
|
def execute
|
49
48
|
@host = options[:host]
|
50
49
|
|
51
|
-
sign_in @host
|
50
|
+
sign_in @host, scope: get_yank_scope
|
52
51
|
|
53
52
|
version = get_version_from_requirements(options[:version])
|
54
53
|
platform = get_platform_from_requirements(options)
|
@@ -73,9 +72,8 @@ data you will need to change them immediately and yank your gem.
|
|
73
72
|
|
74
73
|
def yank_api_request(method, version, platform, api)
|
75
74
|
name = get_one_gem_name
|
76
|
-
response = rubygems_api_request(method, api, host) do |request|
|
75
|
+
response = rubygems_api_request(method, api, host, scope: get_yank_scope) do |request|
|
77
76
|
request.add_field("Authorization", api_key)
|
78
|
-
request.add_field("OTP", options[:otp]) if options[:otp]
|
79
77
|
|
80
78
|
data = {
|
81
79
|
'gem_name' => name,
|
@@ -94,8 +92,7 @@ data you will need to change them immediately and yank your gem.
|
|
94
92
|
nil
|
95
93
|
end
|
96
94
|
|
97
|
-
def
|
98
|
-
|
95
|
+
def get_yank_scope
|
96
|
+
:yank_rubygem
|
99
97
|
end
|
100
|
-
|
101
98
|
end
|
data/lib/rubygems/config_file.rb
CHANGED
@@ -37,7 +37,6 @@ require 'rbconfig'
|
|
37
37
|
# - per environment (gemrc files listed in the GEMRC environment variable)
|
38
38
|
|
39
39
|
class Gem::ConfigFile
|
40
|
-
|
41
40
|
include Gem::UserInteraction
|
42
41
|
|
43
42
|
DEFAULT_BACKTRACE = false
|
@@ -261,7 +260,12 @@ if you believe they were disclosed to a third party.
|
|
261
260
|
# Location of RubyGems.org credentials
|
262
261
|
|
263
262
|
def credentials_path
|
264
|
-
File.join Gem.user_home, '.gem', 'credentials'
|
263
|
+
credentials = File.join Gem.user_home, '.gem', 'credentials'
|
264
|
+
if File.exist? credentials
|
265
|
+
credentials
|
266
|
+
else
|
267
|
+
File.join Gem.data_home, "gem", "credentials"
|
268
|
+
end
|
265
269
|
end
|
266
270
|
|
267
271
|
def load_api_keys
|
@@ -429,7 +433,7 @@ if you believe they were disclosed to a third party.
|
|
429
433
|
yaml_hash[:ssl_client_cert] =
|
430
434
|
@hash[:ssl_client_cert] if @hash.key? :ssl_client_cert
|
431
435
|
|
432
|
-
keys = yaml_hash.keys.map {
|
436
|
+
keys = yaml_hash.keys.map {|key| key.to_s }
|
433
437
|
keys << 'debug'
|
434
438
|
re = Regexp.union(*keys)
|
435
439
|
|
@@ -444,6 +448,10 @@ if you believe they were disclosed to a third party.
|
|
444
448
|
|
445
449
|
# Writes out this config file, replacing its source.
|
446
450
|
def write
|
451
|
+
unless File.exist?(File.dirname(config_file_name))
|
452
|
+
FileUtils.mkdir_p File.dirname(config_file_name)
|
453
|
+
end
|
454
|
+
|
447
455
|
File.open config_file_name, 'w' do |io|
|
448
456
|
io.write to_yaml
|
449
457
|
end
|
@@ -488,5 +496,4 @@ if you believe they were disclosed to a third party.
|
|
488
496
|
end
|
489
497
|
end
|
490
498
|
end
|
491
|
-
|
492
499
|
end
|
@@ -17,6 +17,8 @@ module Kernel
|
|
17
17
|
private :gem_original_require
|
18
18
|
end
|
19
19
|
|
20
|
+
file = Gem::KERNEL_WARN_IGNORES_INTERNAL_ENTRIES ? "<internal:#{__FILE__}>" : __FILE__
|
21
|
+
module_eval <<'RUBY', file, __LINE__ + 1
|
20
22
|
##
|
21
23
|
# When RubyGems is required, Kernel#require is replaced with our own which
|
22
24
|
# is capable of loading gems on demand.
|
@@ -39,49 +41,40 @@ module Kernel
|
|
39
41
|
|
40
42
|
path = path.to_path if path.respond_to? :to_path
|
41
43
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
safe_lp = lp.dup.tap(&Gem::UNTAINT)
|
48
|
-
begin
|
49
|
-
if File.symlink? safe_lp # for backward compatibility
|
50
|
-
next
|
51
|
-
end
|
52
|
-
rescue SecurityError
|
53
|
-
RUBYGEMS_ACTIVATION_MONITOR.exit
|
54
|
-
raise
|
55
|
-
end
|
56
|
-
|
44
|
+
if spec = Gem.find_unresolved_default_spec(path)
|
45
|
+
# Ensure -I beats a default gem
|
46
|
+
resolved_path = begin
|
47
|
+
rp = nil
|
48
|
+
load_path_check_index = Gem.load_path_insert_index - Gem.activated_gem_paths
|
57
49
|
Gem.suffixes.each do |s|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
50
|
+
$LOAD_PATH[0...load_path_check_index].each do |lp|
|
51
|
+
safe_lp = lp.dup.tap(&Gem::UNTAINT)
|
52
|
+
begin
|
53
|
+
if File.symlink? safe_lp # for backward compatibility
|
54
|
+
next
|
55
|
+
end
|
56
|
+
rescue SecurityError
|
57
|
+
RUBYGEMS_ACTIVATION_MONITOR.exit
|
58
|
+
raise
|
59
|
+
end
|
60
|
+
|
61
|
+
full_path = File.expand_path(File.join(safe_lp, "#{path}#{s}"))
|
62
|
+
if File.file?(full_path)
|
63
|
+
rp = full_path
|
64
|
+
break
|
65
|
+
end
|
62
66
|
end
|
67
|
+
break if rp
|
63
68
|
end
|
64
|
-
|
65
|
-
end
|
66
|
-
rp
|
67
|
-
end
|
68
|
-
|
69
|
-
if resolved_path
|
70
|
-
begin
|
71
|
-
RUBYGEMS_ACTIVATION_MONITOR.exit
|
72
|
-
return gem_original_require(resolved_path)
|
73
|
-
rescue LoadError
|
74
|
-
RUBYGEMS_ACTIVATION_MONITOR.enter
|
69
|
+
rp
|
75
70
|
end
|
76
|
-
end
|
77
71
|
|
78
|
-
if spec = Gem.find_unresolved_default_spec(path)
|
79
72
|
begin
|
80
73
|
Kernel.send(:gem, spec.name, Gem::Requirement.default_prerelease)
|
81
74
|
rescue Exception
|
82
75
|
RUBYGEMS_ACTIVATION_MONITOR.exit
|
83
76
|
raise
|
84
|
-
end
|
77
|
+
end unless resolved_path
|
85
78
|
end
|
86
79
|
|
87
80
|
# If there are no unresolved deps, then we can use just try
|
@@ -139,7 +132,7 @@ module Kernel
|
|
139
132
|
|
140
133
|
# Ok, now find a gem that has no conflicts, starting
|
141
134
|
# at the highest version.
|
142
|
-
valid = found_specs.find {
|
135
|
+
valid = found_specs.find {|s| !s.has_conflicts? }
|
143
136
|
|
144
137
|
unless valid
|
145
138
|
le = Gem::LoadError.new "unable to find a version of '#{names.first}' to activate"
|
@@ -157,8 +150,7 @@ module Kernel
|
|
157
150
|
RUBYGEMS_ACTIVATION_MONITOR.enter
|
158
151
|
|
159
152
|
begin
|
160
|
-
if load_error.
|
161
|
-
(load_error.message.end_with?(path) and Gem.try_activate(path))
|
153
|
+
if load_error.path == path and Gem.try_activate(path)
|
162
154
|
require_again = true
|
163
155
|
end
|
164
156
|
ensure
|
@@ -176,6 +168,7 @@ module Kernel
|
|
176
168
|
end
|
177
169
|
end
|
178
170
|
end
|
171
|
+
RUBY
|
179
172
|
|
180
173
|
private :require
|
181
174
|
|