rubygems-update 3.1.1 → 3.2.0.rc.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CODE_OF_CONDUCT.md +55 -19
- data/CONTRIBUTING.md +25 -11
- data/History.txt +389 -144
- data/Manifest.txt +37 -73
- data/POLICIES.md +2 -9
- data/README.md +5 -5
- data/Rakefile +47 -82
- data/bin/update_rubygems +2 -2
- data/bundler/CHANGELOG.md +1546 -1414
- data/bundler/README.md +6 -8
- data/bundler/UPGRADING.md +18 -32
- data/bundler/bundler.gemspec +3 -3
- data/bundler/exe/bundle +3 -0
- data/bundler/lib/bundler.rb +21 -7
- data/bundler/lib/bundler/build_metadata.rb +4 -12
- data/bundler/lib/bundler/cli.rb +54 -20
- data/bundler/lib/bundler/cli/add.rb +1 -1
- data/bundler/lib/bundler/cli/cache.rb +1 -7
- data/bundler/lib/bundler/cli/clean.rb +1 -1
- data/bundler/lib/bundler/cli/common.rb +14 -0
- data/bundler/lib/bundler/cli/console.rb +1 -1
- data/bundler/lib/bundler/cli/doctor.rb +1 -1
- data/bundler/lib/bundler/cli/exec.rb +4 -13
- data/bundler/lib/bundler/cli/fund.rb +36 -0
- data/bundler/lib/bundler/cli/gem.rb +84 -11
- data/bundler/lib/bundler/cli/info.rb +15 -4
- data/bundler/lib/bundler/cli/init.rb +2 -2
- data/bundler/lib/bundler/cli/inject.rb +1 -1
- data/bundler/lib/bundler/cli/install.rb +12 -18
- data/bundler/lib/bundler/cli/issue.rb +2 -2
- data/bundler/lib/bundler/cli/list.rb +12 -10
- data/bundler/lib/bundler/cli/outdated.rb +89 -66
- data/bundler/lib/bundler/cli/plugin.rb +10 -0
- data/bundler/lib/bundler/cli/pristine.rb +5 -0
- data/bundler/lib/bundler/cli/show.rb +1 -1
- data/bundler/lib/bundler/cli/update.rb +2 -0
- data/bundler/lib/bundler/compact_index_client.rb +1 -1
- data/bundler/lib/bundler/compact_index_client/cache.rb +1 -1
- data/bundler/lib/bundler/definition.rb +51 -60
- data/bundler/lib/bundler/dep_proxy.rb +1 -1
- data/bundler/lib/bundler/dependency.rb +0 -9
- data/bundler/lib/bundler/dsl.rb +5 -9
- data/bundler/lib/bundler/endpoint_specification.rb +1 -1
- data/bundler/lib/bundler/environment_preserver.rb +26 -2
- data/bundler/lib/bundler/errors.rb +1 -0
- data/bundler/lib/bundler/feature_flag.rb +0 -2
- data/bundler/lib/bundler/fetcher.rb +4 -3
- data/bundler/lib/bundler/fetcher/base.rb +1 -1
- data/bundler/lib/bundler/fetcher/compact_index.rb +1 -1
- data/bundler/lib/bundler/fetcher/downloader.rb +1 -1
- data/bundler/lib/bundler/fetcher/index.rb +1 -1
- data/bundler/lib/bundler/friendly_errors.rb +7 -13
- data/bundler/lib/bundler/gem_helper.rb +33 -19
- data/bundler/lib/bundler/gem_helpers.rb +6 -1
- data/bundler/lib/bundler/gem_version_promoter.rb +2 -2
- data/bundler/lib/bundler/graph.rb +1 -1
- data/bundler/lib/bundler/index.rb +1 -1
- data/bundler/lib/bundler/injector.rb +15 -4
- data/bundler/lib/bundler/inline.rb +2 -2
- data/bundler/lib/bundler/installer.rb +30 -29
- data/bundler/lib/bundler/installer/gem_installer.rb +3 -3
- data/bundler/lib/bundler/installer/parallel_installer.rb +10 -10
- data/bundler/lib/bundler/installer/standalone.rb +2 -2
- data/bundler/lib/bundler/lazy_specification.rb +19 -6
- data/bundler/lib/bundler/lockfile_generator.rb +1 -1
- data/bundler/lib/bundler/lockfile_parser.rb +1 -1
- data/bundler/lib/bundler/mirror.rb +2 -2
- data/bundler/lib/bundler/plugin.rb +30 -5
- data/bundler/lib/bundler/plugin/index.rb +10 -1
- data/bundler/lib/bundler/plugin/installer.rb +1 -1
- data/bundler/lib/bundler/plugin/installer/rubygems.rb +1 -1
- data/bundler/lib/bundler/plugin/source_list.rb +1 -1
- data/bundler/lib/bundler/psyched_yaml.rb +0 -15
- data/bundler/lib/bundler/remote_specification.rb +5 -2
- data/bundler/lib/bundler/resolver.rb +32 -9
- data/bundler/lib/bundler/resolver/spec_group.rb +27 -6
- data/bundler/lib/bundler/retry.rb +1 -1
- data/bundler/lib/bundler/ruby_version.rb +1 -1
- data/bundler/lib/bundler/rubygems_ext.rb +53 -9
- data/bundler/lib/bundler/rubygems_gem_installer.rb +3 -9
- data/bundler/lib/bundler/rubygems_integration.rb +31 -54
- data/bundler/lib/bundler/runtime.rb +4 -14
- data/bundler/lib/bundler/settings.rb +49 -45
- data/bundler/lib/bundler/setup.rb +5 -0
- data/bundler/lib/bundler/shared_helpers.rb +2 -2
- data/bundler/lib/bundler/similarity_detector.rb +1 -1
- data/bundler/lib/bundler/source.rb +1 -1
- data/bundler/lib/bundler/source/git.rb +5 -5
- data/bundler/lib/bundler/source/git/git_proxy.rb +56 -59
- data/bundler/lib/bundler/source/path.rb +7 -3
- data/bundler/lib/bundler/source/path/installer.rb +8 -10
- data/bundler/lib/bundler/source/rubygems.rb +13 -16
- data/bundler/lib/bundler/source/rubygems/remote.rb +1 -1
- data/bundler/lib/bundler/source_list.rb +2 -2
- data/bundler/lib/bundler/spec_set.rb +1 -1
- data/bundler/lib/bundler/stub_specification.rb +17 -5
- data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +57 -47
- data/bundler/lib/bundler/templates/newgem/Gemfile.tt +9 -1
- data/bundler/lib/bundler/templates/newgem/README.md.tt +1 -1
- data/bundler/lib/bundler/templates/newgem/Rakefile.tt +19 -5
- data/bundler/lib/bundler/templates/newgem/bin/console.tt +1 -0
- data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +13 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +2 -0
- data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +18 -0
- data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +9 -0
- data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +2 -0
- data/bundler/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +2 -0
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +8 -6
- data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +10 -0
- data/bundler/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +2 -0
- data/bundler/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +2 -1
- data/bundler/lib/bundler/templates/newgem/test/{newgem_test.rb.tt → minitest/newgem_test.rb.tt} +2 -0
- data/bundler/lib/bundler/templates/newgem/test/{test_helper.rb.tt → minitest/test_helper.rb.tt} +2 -0
- data/bundler/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt +15 -0
- data/bundler/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt +6 -0
- data/bundler/lib/bundler/ui/shell.rb +5 -5
- data/bundler/lib/bundler/uri_credentials_filter.rb +1 -1
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +79 -212
- data/bundler/lib/bundler/vendor/thor/lib/thor.rb +0 -7
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +2 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +9 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
- data/bundler/lib/bundler/vendored_persistent.rb +0 -7
- data/bundler/lib/bundler/version.rb +1 -1
- data/bundler/lib/bundler/worker.rb +1 -1
- data/bundler/lib/bundler/yaml_serializer.rb +1 -1
- data/bundler/man/bundle-add.1 +1 -1
- data/bundler/man/{bundle-add.ronn → bundle-add.1.ronn} +0 -0
- data/bundler/man/bundle-binstubs.1 +5 -3
- data/bundler/man/{bundle-binstubs.ronn → bundle-binstubs.1.ronn} +2 -4
- data/bundler/man/bundle-cache.1 +1 -1
- data/bundler/man/{bundle-cache.ronn → bundle-cache.1.ronn} +0 -0
- data/bundler/man/bundle-check.1 +1 -1
- data/bundler/man/{bundle-check.ronn → bundle-check.1.ronn} +0 -0
- data/bundler/man/bundle-clean.1 +1 -1
- data/bundler/man/{bundle-clean.ronn → bundle-clean.1.ronn} +0 -0
- data/bundler/man/bundle-config.1 +16 -22
- data/bundler/man/{bundle-config.ronn → bundle-config.1.ronn} +19 -22
- data/bundler/man/bundle-doctor.1 +1 -1
- data/bundler/man/{bundle-doctor.ronn → bundle-doctor.1.ronn} +0 -0
- data/bundler/man/bundle-exec.1 +1 -1
- data/bundler/man/{bundle-exec.ronn → bundle-exec.1.ronn} +0 -0
- data/bundler/man/bundle-gem.1 +25 -3
- data/bundler/man/{bundle-gem.ronn → bundle-gem.1.ronn} +30 -7
- data/bundler/man/bundle-info.1 +1 -1
- data/bundler/man/{bundle-info.ronn → bundle-info.1.ronn} +0 -0
- data/bundler/man/bundle-init.1 +1 -1
- data/bundler/man/{bundle-init.ronn → bundle-init.1.ronn} +0 -0
- data/bundler/man/bundle-inject.1 +1 -1
- data/bundler/man/{bundle-inject.ronn → bundle-inject.1.ronn} +0 -0
- data/bundler/man/bundle-install.1 +29 -2
- data/bundler/man/{bundle-install.ronn → bundle-install.1.ronn} +24 -2
- data/bundler/man/bundle-list.1 +7 -7
- data/bundler/man/{bundle-list.ronn → bundle-list.1.ronn} +6 -6
- data/bundler/man/bundle-lock.1 +1 -1
- data/bundler/man/{bundle-lock.ronn → bundle-lock.1.ronn} +0 -0
- data/bundler/man/bundle-open.1 +1 -1
- data/bundler/man/{bundle-open.ronn → bundle-open.1.ronn} +0 -0
- data/bundler/man/bundle-outdated.1 +1 -1
- data/bundler/man/{bundle-outdated.ronn → bundle-outdated.1.ronn} +0 -0
- data/bundler/man/bundle-platform.1 +1 -1
- data/bundler/man/{bundle-platform.ronn → bundle-platform.1.ronn} +0 -0
- data/bundler/man/bundle-pristine.1 +1 -1
- data/bundler/man/{bundle-pristine.ronn → bundle-pristine.1.ronn} +0 -0
- data/bundler/man/bundle-remove.1 +1 -1
- data/bundler/man/{bundle-remove.ronn → bundle-remove.1.ronn} +0 -0
- data/bundler/man/bundle-show.1 +1 -1
- data/bundler/man/{bundle-show.ronn → bundle-show.1.ronn} +0 -0
- data/bundler/man/bundle-update.1 +1 -1
- data/bundler/man/{bundle-update.ronn → bundle-update.1.ronn} +0 -0
- data/bundler/man/bundle-viz.1 +1 -1
- data/bundler/man/{bundle-viz.ronn → bundle-viz.1.ronn} +0 -0
- data/bundler/man/bundle.1 +1 -1
- data/bundler/man/{bundle.ronn → bundle.1.ronn} +0 -0
- data/bundler/man/gemfile.5 +4 -4
- data/bundler/man/gemfile.5.ronn +4 -4
- data/lib/rubygems.rb +133 -186
- data/lib/rubygems/available_set.rb +4 -6
- data/lib/rubygems/basic_specification.rb +12 -10
- data/lib/rubygems/bundler_version_finder.rb +14 -9
- data/lib/rubygems/command.rb +17 -17
- data/lib/rubygems/command_manager.rb +4 -5
- data/lib/rubygems/commands/build_command.rb +4 -1
- data/lib/rubygems/commands/cert_command.rb +1 -9
- data/lib/rubygems/commands/check_command.rb +0 -2
- data/lib/rubygems/commands/cleanup_command.rb +11 -7
- data/lib/rubygems/commands/contents_command.rb +4 -6
- data/lib/rubygems/commands/dependency_command.rb +6 -8
- data/lib/rubygems/commands/environment_command.rb +1 -3
- data/lib/rubygems/commands/fetch_command.rb +2 -4
- data/lib/rubygems/commands/generate_index_command.rb +0 -2
- data/lib/rubygems/commands/help_command.rb +2 -4
- data/lib/rubygems/commands/info_command.rb +8 -5
- data/lib/rubygems/commands/install_command.rb +3 -5
- data/lib/rubygems/commands/list_command.rb +8 -7
- data/lib/rubygems/commands/lock_command.rb +1 -3
- data/lib/rubygems/commands/mirror_command.rb +0 -2
- data/lib/rubygems/commands/open_command.rb +0 -4
- data/lib/rubygems/commands/outdated_command.rb +0 -2
- data/lib/rubygems/commands/owner_command.rb +0 -2
- data/lib/rubygems/commands/pristine_command.rb +10 -4
- data/lib/rubygems/commands/push_command.rb +4 -44
- data/lib/rubygems/commands/query_command.rb +6 -353
- data/lib/rubygems/commands/rdoc_command.rb +0 -2
- data/lib/rubygems/commands/search_command.rb +7 -7
- data/lib/rubygems/commands/server_command.rb +0 -2
- data/lib/rubygems/commands/setup_command.rb +156 -48
- data/lib/rubygems/commands/signin_command.rb +0 -2
- data/lib/rubygems/commands/signout_command.rb +0 -2
- data/lib/rubygems/commands/sources_command.rb +3 -5
- data/lib/rubygems/commands/specification_command.rb +2 -4
- data/lib/rubygems/commands/stale_command.rb +1 -3
- data/lib/rubygems/commands/uninstall_command.rb +2 -4
- data/lib/rubygems/commands/unpack_command.rb +1 -3
- data/lib/rubygems/commands/update_command.rb +59 -14
- data/lib/rubygems/commands/which_command.rb +0 -2
- data/lib/rubygems/commands/yank_command.rb +0 -2
- data/lib/rubygems/config_file.rb +11 -4
- data/lib/rubygems/core_ext/kernel_require.rb +26 -36
- data/lib/rubygems/core_ext/kernel_warn.rb +6 -6
- data/lib/rubygems/defaults.rb +99 -5
- data/lib/rubygems/dependency.rb +2 -7
- data/lib/rubygems/dependency_installer.rb +1 -75
- data/lib/rubygems/dependency_list.rb +7 -9
- data/lib/rubygems/deprecate.rb +46 -1
- data/lib/rubygems/doctor.rb +4 -4
- data/lib/rubygems/errors.rb +3 -14
- data/lib/rubygems/exceptions.rb +2 -33
- data/lib/rubygems/ext.rb +6 -6
- data/lib/rubygems/ext/build_error.rb +2 -0
- data/lib/rubygems/ext/builder.rb +4 -4
- data/lib/rubygems/ext/cmake_builder.rb +1 -3
- data/lib/rubygems/ext/configure_builder.rb +0 -2
- data/lib/rubygems/ext/ext_conf_builder.rb +6 -9
- data/lib/rubygems/ext/rake_builder.rb +0 -2
- data/lib/rubygems/gem_runner.rb +3 -10
- data/lib/rubygems/gemcutter_utilities.rb +1 -1
- data/lib/rubygems/indexer.rb +1 -21
- data/lib/rubygems/install_update_options.rb +5 -5
- data/lib/rubygems/installer.rb +47 -48
- data/lib/rubygems/installer_test_case.rb +18 -5
- data/lib/rubygems/installer_uninstaller_utils.rb +24 -0
- data/lib/rubygems/local_remote_options.rb +1 -1
- data/lib/rubygems/mock_gem_ui.rb +0 -6
- data/lib/rubygems/name_tuple.rb +2 -6
- data/lib/rubygems/openssl.rb +7 -0
- data/lib/rubygems/package.rb +11 -23
- data/lib/rubygems/package/digest_io.rb +0 -2
- data/lib/rubygems/package/file_source.rb +0 -2
- data/lib/rubygems/package/io_source.rb +0 -2
- data/lib/rubygems/package/old.rb +1 -3
- data/lib/rubygems/package/tar_header.rb +3 -5
- data/lib/rubygems/package/tar_reader.rb +0 -3
- data/lib/rubygems/package/tar_reader/entry.rb +0 -3
- data/lib/rubygems/package/tar_test_case.rb +1 -3
- data/lib/rubygems/package/tar_writer.rb +2 -12
- data/lib/rubygems/package_task.rb +1 -7
- data/lib/rubygems/path_support.rb +1 -3
- data/lib/rubygems/platform.rb +3 -5
- data/lib/rubygems/psych_tree.rb +0 -2
- data/lib/rubygems/query_utils.rb +362 -0
- data/lib/rubygems/rdoc.rb +0 -12
- data/lib/rubygems/remote_fetcher.rb +9 -25
- data/lib/rubygems/request.rb +1 -9
- data/lib/rubygems/request/connection_pools.rb +1 -5
- data/lib/rubygems/request/http_pool.rb +0 -2
- data/lib/rubygems/request/https_pool.rb +0 -2
- data/lib/rubygems/request_set.rb +5 -7
- data/lib/rubygems/request_set/gem_dependency_api.rb +2 -4
- data/lib/rubygems/request_set/lockfile.rb +8 -12
- data/lib/rubygems/request_set/lockfile/parser.rb +0 -2
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +1 -3
- data/lib/rubygems/requirement.rb +20 -21
- data/lib/rubygems/resolver.rb +7 -10
- data/lib/rubygems/resolver/activation_request.rb +0 -2
- data/lib/rubygems/resolver/api_set.rb +4 -6
- data/lib/rubygems/resolver/api_specification.rb +16 -7
- data/lib/rubygems/resolver/best_set.rb +0 -2
- data/lib/rubygems/resolver/composed_set.rb +3 -5
- data/lib/rubygems/resolver/conflict.rb +1 -3
- data/lib/rubygems/resolver/current_set.rb +0 -2
- data/lib/rubygems/resolver/dependency_request.rb +0 -2
- data/lib/rubygems/resolver/git_set.rb +0 -2
- data/lib/rubygems/resolver/git_specification.rb +0 -2
- data/lib/rubygems/resolver/index_set.rb +1 -3
- data/lib/rubygems/resolver/index_specification.rb +0 -2
- data/lib/rubygems/resolver/installed_specification.rb +0 -2
- data/lib/rubygems/resolver/installer_set.rb +3 -5
- data/lib/rubygems/resolver/local_specification.rb +0 -2
- data/lib/rubygems/resolver/lock_set.rb +1 -3
- data/lib/rubygems/resolver/lock_specification.rb +0 -2
- data/lib/rubygems/resolver/requirement_list.rb +0 -2
- data/lib/rubygems/resolver/set.rb +0 -2
- data/lib/rubygems/resolver/source_set.rb +0 -2
- data/lib/rubygems/resolver/spec_specification.rb +0 -2
- data/lib/rubygems/resolver/specification.rb +0 -2
- data/lib/rubygems/resolver/stats.rb +0 -2
- data/lib/rubygems/resolver/vendor_set.rb +0 -2
- data/lib/rubygems/resolver/vendor_specification.rb +0 -2
- data/lib/rubygems/s3_uri_signer.rb +1 -7
- data/lib/rubygems/safe_yaml.rb +4 -4
- data/lib/rubygems/security.rb +26 -32
- data/lib/rubygems/security/policy.rb +3 -7
- data/lib/rubygems/security/signer.rb +4 -6
- data/lib/rubygems/security/trust_dir.rb +1 -3
- data/lib/rubygems/server.rb +9 -11
- data/lib/rubygems/source.rb +4 -4
- data/lib/rubygems/source/git.rb +7 -8
- data/lib/rubygems/source/installed.rb +0 -2
- data/lib/rubygems/source/local.rb +2 -4
- data/lib/rubygems/source/lock.rb +0 -2
- data/lib/rubygems/source/specific_file.rb +0 -2
- data/lib/rubygems/source/vendor.rb +0 -2
- data/lib/rubygems/source_list.rb +6 -7
- data/lib/rubygems/spec_fetcher.rb +18 -17
- data/lib/rubygems/specification.rb +107 -120
- data/lib/rubygems/specification_policy.rb +88 -30
- data/lib/rubygems/stub_specification.rb +0 -4
- data/lib/rubygems/syck_hack.rb +0 -2
- data/lib/rubygems/test_case.rb +122 -92
- data/lib/rubygems/test_utilities.rb +6 -14
- data/lib/rubygems/uninstaller.rb +35 -16
- data/lib/rubygems/uri_formatter.rb +0 -2
- data/lib/rubygems/uri_parser.rb +0 -2
- data/lib/rubygems/user_interaction.rb +1 -26
- data/lib/rubygems/util.rb +15 -3
- data/lib/rubygems/util/licenses.rb +4 -6
- data/lib/rubygems/util/list.rb +0 -2
- data/lib/rubygems/validator.rb +1 -3
- data/lib/rubygems/version.rb +5 -7
- data/rubygems-update.gemspec +2 -2
- data/setup.rb +2 -7
- data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -2
- data/test/rubygems/rubygems/commands/crash_command.rb +0 -2
- data/test/rubygems/rubygems_plugin.rb +0 -2
- data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -2
- data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +12 -0
- data/test/rubygems/test_bundled_ca.rb +38 -45
- data/test/rubygems/test_config.rb +0 -2
- data/test/rubygems/test_deprecate.rb +40 -7
- data/test/rubygems/test_gem.rb +150 -103
- data/test/rubygems/test_gem_available_set.rb +3 -5
- data/test/rubygems/test_gem_bundler_version_finder.rb +19 -3
- data/test/rubygems/test_gem_command.rb +24 -7
- data/test/rubygems/test_gem_command_manager.rb +36 -5
- data/test/rubygems/test_gem_commands_build_command.rb +53 -10
- data/test/rubygems/test_gem_commands_cert_command.rb +2 -4
- data/test/rubygems/test_gem_commands_check_command.rb +0 -2
- data/test/rubygems/test_gem_commands_cleanup_command.rb +13 -4
- data/test/rubygems/test_gem_commands_contents_command.rb +48 -17
- data/test/rubygems/test_gem_commands_dependency_command.rb +0 -2
- data/test/rubygems/test_gem_commands_environment_command.rb +21 -23
- data/test/rubygems/test_gem_commands_fetch_command.rb +0 -2
- data/test/rubygems/test_gem_commands_generate_index_command.rb +1 -7
- data/test/rubygems/test_gem_commands_help_command.rb +0 -2
- data/test/rubygems/test_gem_commands_info_command.rb +6 -8
- data/test/rubygems/test_gem_commands_install_command.rb +31 -33
- data/test/rubygems/test_gem_commands_list_command.rb +0 -2
- data/test/rubygems/test_gem_commands_lock_command.rb +0 -2
- data/test/rubygems/test_gem_commands_mirror.rb +1 -3
- data/test/rubygems/test_gem_commands_open_command.rb +4 -6
- data/test/rubygems/test_gem_commands_outdated_command.rb +0 -2
- data/test/rubygems/test_gem_commands_owner_command.rb +11 -5
- data/test/rubygems/test_gem_commands_pristine_command.rb +41 -10
- data/test/rubygems/test_gem_commands_push_command.rb +7 -4
- data/test/rubygems/test_gem_commands_query_command.rb +9 -9
- data/test/rubygems/test_gem_commands_search_command.rb +0 -2
- data/test/rubygems/test_gem_commands_server_command.rb +0 -2
- data/test/rubygems/test_gem_commands_setup_command.rb +210 -118
- data/test/rubygems/test_gem_commands_signin_command.rb +6 -6
- data/test/rubygems/test_gem_commands_signout_command.rb +0 -7
- data/test/rubygems/test_gem_commands_sources_command.rb +39 -3
- data/test/rubygems/test_gem_commands_specification_command.rb +18 -20
- data/test/rubygems/test_gem_commands_stale_command.rb +0 -2
- data/test/rubygems/test_gem_commands_uninstall_command.rb +2 -3
- data/test/rubygems/test_gem_commands_unpack_command.rb +0 -2
- data/test/rubygems/test_gem_commands_update_command.rb +116 -7
- data/test/rubygems/test_gem_commands_which_command.rb +3 -5
- data/test/rubygems/test_gem_commands_yank_command.rb +14 -8
- data/test/rubygems/test_gem_config_file.rb +7 -12
- data/test/rubygems/test_gem_dependency.rb +0 -2
- data/test/rubygems/test_gem_dependency_installer.rb +54 -191
- data/test/rubygems/test_gem_dependency_list.rb +8 -10
- data/test/rubygems/test_gem_dependency_resolution_error.rb +1 -3
- data/test/rubygems/test_gem_doctor.rb +28 -2
- data/test/rubygems/test_gem_ext_builder.rb +16 -33
- data/test/rubygems/test_gem_ext_cmake_builder.rb +13 -14
- data/test/rubygems/test_gem_ext_configure_builder.rb +1 -11
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +0 -3
- data/test/rubygems/test_gem_ext_rake_builder.rb +9 -11
- data/test/rubygems/test_gem_gem_runner.rb +43 -1
- data/test/rubygems/test_gem_gemcutter_utilities.rb +5 -2
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -2
- data/test/rubygems/test_gem_indexer.rb +9 -15
- data/test/rubygems/test_gem_install_update_options.rb +0 -2
- data/test/rubygems/test_gem_installer.rb +192 -71
- data/test/rubygems/test_gem_local_remote_options.rb +0 -2
- data/test/rubygems/test_gem_name_tuple.rb +0 -2
- data/test/rubygems/test_gem_package.rb +33 -31
- data/test/rubygems/test_gem_package_old.rb +0 -2
- data/test/rubygems/test_gem_package_tar_header.rb +18 -1
- data/test/rubygems/test_gem_package_tar_reader.rb +0 -2
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +0 -2
- data/test/rubygems/test_gem_package_tar_writer.rb +8 -5
- data/test/rubygems/test_gem_package_task.rb +46 -13
- data/test/rubygems/test_gem_path_support.rb +0 -2
- data/test/rubygems/test_gem_platform.rb +0 -2
- data/test/rubygems/test_gem_rdoc.rb +0 -2
- data/test/rubygems/test_gem_remote_fetcher.rb +156 -195
- data/test/rubygems/test_gem_request.rb +11 -15
- data/test/rubygems/test_gem_request_connection_pools.rb +0 -4
- data/test/rubygems/test_gem_request_set.rb +72 -22
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +3 -5
- data/test/rubygems/test_gem_request_set_lockfile.rb +0 -2
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +9 -11
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +118 -120
- data/test/rubygems/test_gem_requirement.rb +10 -4
- data/test/rubygems/test_gem_resolver.rb +6 -8
- data/test/rubygems/test_gem_resolver_activation_request.rb +0 -2
- data/test/rubygems/test_gem_resolver_api_set.rb +3 -5
- data/test/rubygems/test_gem_resolver_api_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_best_set.rb +2 -4
- data/test/rubygems/test_gem_resolver_composed_set.rb +0 -2
- data/test/rubygems/test_gem_resolver_conflict.rb +0 -2
- data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -2
- data/test/rubygems/test_gem_resolver_git_set.rb +0 -2
- data/test/rubygems/test_gem_resolver_git_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_index_set.rb +2 -4
- data/test/rubygems/test_gem_resolver_index_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_installer_set.rb +7 -9
- data/test/rubygems/test_gem_resolver_local_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_lock_set.rb +3 -5
- data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -2
- data/test/rubygems/test_gem_resolver_specification.rb +0 -4
- data/test/rubygems/test_gem_resolver_vendor_set.rb +0 -2
- data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -2
- data/test/rubygems/test_gem_security.rb +20 -22
- data/test/rubygems/test_gem_security_policy.rb +5 -10
- data/test/rubygems/test_gem_security_signer.rb +8 -10
- data/test/rubygems/test_gem_security_trust_dir.rb +2 -4
- data/test/rubygems/test_gem_server.rb +10 -14
- data/test/rubygems/test_gem_silent_ui.rb +0 -2
- data/test/rubygems/test_gem_source.rb +12 -16
- data/test/rubygems/test_gem_source_fetch_problem.rb +0 -2
- data/test/rubygems/test_gem_source_git.rb +12 -13
- data/test/rubygems/test_gem_source_installed.rb +7 -9
- data/test/rubygems/test_gem_source_list.rb +1 -2
- data/test/rubygems/test_gem_source_local.rb +8 -10
- data/test/rubygems/test_gem_source_lock.rb +10 -12
- data/test/rubygems/test_gem_source_specific_file.rb +7 -9
- data/test/rubygems/test_gem_source_vendor.rb +7 -9
- data/test/rubygems/test_gem_spec_fetcher.rb +11 -4
- data/test/rubygems/test_gem_specification.rb +179 -129
- data/test/rubygems/test_gem_stream_ui.rb +3 -3
- data/test/rubygems/test_gem_stub_specification.rb +4 -7
- data/test/rubygems/test_gem_text.rb +1 -3
- data/test/rubygems/test_gem_uninstaller.rb +133 -11
- data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -2
- data/test/rubygems/test_gem_uri_formatter.rb +0 -2
- data/test/rubygems/test_gem_util.rb +7 -7
- data/test/rubygems/test_gem_validator.rb +0 -2
- data/test/rubygems/test_gem_version.rb +1 -3
- data/test/rubygems/test_gem_version_option.rb +0 -2
- data/test/rubygems/test_kernel.rb +25 -10
- data/test/rubygems/test_project_sanity.rb +7 -2
- data/test/rubygems/test_remote_fetch_error.rb +0 -2
- data/test/rubygems/test_require.rb +241 -47
- metadata +59 -96
- data/.bundle/config +0 -2
- data/.rubocop.yml +0 -91
- data/Gemfile +0 -8
- data/Gemfile.lock +0 -43
- data/bundler/CODE_OF_CONDUCT.md +0 -136
- data/bundler/man/bundle-add.1.txt +0 -58
- data/bundler/man/bundle-binstubs.1.txt +0 -48
- data/bundler/man/bundle-cache.1.txt +0 -78
- data/bundler/man/bundle-check.1.txt +0 -33
- data/bundler/man/bundle-clean.1.txt +0 -26
- data/bundler/man/bundle-config.1.txt +0 -528
- data/bundler/man/bundle-doctor.1.txt +0 -44
- data/bundler/man/bundle-exec.1.txt +0 -178
- data/bundler/man/bundle-gem.1.txt +0 -91
- data/bundler/man/bundle-info.1.txt +0 -21
- data/bundler/man/bundle-init.1.txt +0 -34
- data/bundler/man/bundle-inject.1.txt +0 -32
- data/bundler/man/bundle-install.1.txt +0 -401
- data/bundler/man/bundle-list.1.txt +0 -43
- data/bundler/man/bundle-lock.1.txt +0 -93
- data/bundler/man/bundle-open.1.txt +0 -29
- data/bundler/man/bundle-outdated.1.txt +0 -131
- data/bundler/man/bundle-platform.1.txt +0 -57
- data/bundler/man/bundle-pristine.1.txt +0 -44
- data/bundler/man/bundle-remove.1.txt +0 -34
- data/bundler/man/bundle-show.1.txt +0 -27
- data/bundler/man/bundle-update.1.txt +0 -390
- data/bundler/man/bundle-viz.1.txt +0 -39
- data/bundler/man/bundle.1.txt +0 -116
- data/bundler/man/gemfile.5.txt +0 -649
- data/bundler/man/index.txt +0 -25
- data/lib/rubygems/source_local.rb +0 -7
- data/lib/rubygems/source_specific_file.rb +0 -6
- data/lib/ubygems.rb +0 -14
- data/tmp/.keep +0 -0
- data/util/CL2notes +0 -55
- data/util/bisect +0 -10
- data/util/ci.sh +0 -62
- data/util/cops/deprecations.rb +0 -52
- data/util/create_certs.rb +0 -171
- data/util/create_certs.sh +0 -27
- data/util/create_encrypted_key.rb +0 -16
- data/util/generate_spdx_license_list.rb +0 -63
- data/util/patch_with_prs.rb +0 -77
- data/util/rubocop +0 -8
- data/util/update_bundled_ca_certificates.rb +0 -139
- data/util/update_changelog.rb +0 -67
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "BUNDLE\-PRISTINE" "1" "
|
4
|
+
.TH "BUNDLE\-PRISTINE" "1" "October 2020" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-pristine\fR \- Restores installed gems to their pristine condition
|
File without changes
|
data/bundler/man/bundle-remove.1
CHANGED
File without changes
|
data/bundler/man/bundle-show.1
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "BUNDLE\-SHOW" "1" "
|
4
|
+
.TH "BUNDLE\-SHOW" "1" "October 2020" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-show\fR \- Shows all the gems in your bundle, or the path to a gem
|
File without changes
|
data/bundler/man/bundle-update.1
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "BUNDLE\-UPDATE" "1" "
|
4
|
+
.TH "BUNDLE\-UPDATE" "1" "October 2020" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-update\fR \- Update your gems to the latest available versions
|
File without changes
|
data/bundler/man/bundle-viz.1
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "BUNDLE\-VIZ" "1" "
|
4
|
+
.TH "BUNDLE\-VIZ" "1" "October 2020" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-viz\fR \- Generates a visual dependency graph for your Gemfile
|
File without changes
|
data/bundler/man/bundle.1
CHANGED
File without changes
|
data/bundler/man/gemfile.5
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "GEMFILE" "5" "
|
4
|
+
.TH "GEMFILE" "5" "October 2020" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBGemfile\fR \- A format for describing gem dependencies for Ruby programs
|
@@ -150,7 +150,7 @@ gem "RedCloth", ">= 4\.1\.0", "< 4\.2\.0"
|
|
150
150
|
.IP "" 0
|
151
151
|
.
|
152
152
|
.SS "REQUIRE AS"
|
153
|
-
Each \fIgem\fR \fBMAY\fR specify files that should be used when autorequiring via \fBBundler\.require\fR\. You may pass an array with multiple files or \fBtrue\fR if file you want \fBrequired\fR has same name as \fIgem\fR or \fBfalse\fR to prevent any file from being autorequired\.
|
153
|
+
Each \fIgem\fR \fBMAY\fR specify files that should be used when autorequiring via \fBBundler\.require\fR\. You may pass an array with multiple files or \fBtrue\fR if the file you want \fBrequired\fR has the same name as \fIgem\fR or \fBfalse\fR to prevent any file from being autorequired\.
|
154
154
|
.
|
155
155
|
.IP "" 4
|
156
156
|
.
|
@@ -227,8 +227,8 @@ To specify multiple groups to ignore, specify a list of groups separated by spac
|
|
227
227
|
.
|
228
228
|
.nf
|
229
229
|
|
230
|
-
bundle config set without test
|
231
|
-
bundle config set without development test
|
230
|
+
bundle config set \-\-local without test
|
231
|
+
bundle config set \-\-local without development test
|
232
232
|
.
|
233
233
|
.fi
|
234
234
|
.
|
data/bundler/man/gemfile.5.ronn
CHANGED
@@ -120,8 +120,8 @@ Each _gem_ `MAY` have one or more version specifiers.
|
|
120
120
|
### REQUIRE AS
|
121
121
|
|
122
122
|
Each _gem_ `MAY` specify files that should be used when autorequiring via
|
123
|
-
`Bundler.require`. You may pass an array with multiple files or `true` if file
|
124
|
-
you want `required` has same name as _gem_ or `false` to
|
123
|
+
`Bundler.require`. You may pass an array with multiple files or `true` if the file
|
124
|
+
you want `required` has the same name as _gem_ or `false` to
|
125
125
|
prevent any file from being autorequired.
|
126
126
|
|
127
127
|
gem "redis", :require => ["redis/connection/hiredis", "redis"]
|
@@ -163,8 +163,8 @@ not install with the `without` configuration.
|
|
163
163
|
|
164
164
|
To specify multiple groups to ignore, specify a list of groups separated by spaces.
|
165
165
|
|
166
|
-
bundle config set without test
|
167
|
-
bundle config set without development test
|
166
|
+
bundle config set --local without test
|
167
|
+
bundle config set --local without development test
|
168
168
|
|
169
169
|
Also, calling `Bundler.setup` with no parameters, or calling `require "bundler/setup"`
|
170
170
|
will setup all groups except for the ones you excluded via `--without` (since they
|
data/lib/rubygems.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
# -*- ruby -*-
|
3
2
|
#--
|
4
3
|
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
|
5
4
|
# All rights reserved.
|
@@ -9,7 +8,7 @@
|
|
9
8
|
require 'rbconfig'
|
10
9
|
|
11
10
|
module Gem
|
12
|
-
VERSION = "3.
|
11
|
+
VERSION = "3.2.0.rc.2".freeze
|
13
12
|
end
|
14
13
|
|
15
14
|
# Must be first since it unloads the prelude from 1.9.2
|
@@ -26,27 +25,27 @@ require 'rubygems/errors'
|
|
26
25
|
# For user documentation, see:
|
27
26
|
#
|
28
27
|
# * <tt>gem help</tt> and <tt>gem help [command]</tt>
|
29
|
-
# * {RubyGems User Guide}[
|
30
|
-
# * {Frequently Asked Questions}[
|
28
|
+
# * {RubyGems User Guide}[https://guides.rubygems.org/]
|
29
|
+
# * {Frequently Asked Questions}[https://guides.rubygems.org/faqs]
|
31
30
|
#
|
32
31
|
# For gem developer documentation see:
|
33
32
|
#
|
34
|
-
# * {Creating Gems}[
|
33
|
+
# * {Creating Gems}[https://guides.rubygems.org/make-your-own-gem]
|
35
34
|
# * Gem::Specification
|
36
35
|
# * Gem::Version for version dependency notes
|
37
36
|
#
|
38
37
|
# Further RubyGems documentation can be found at:
|
39
38
|
#
|
40
|
-
# * {RubyGems Guides}[
|
41
|
-
# * {RubyGems API}[
|
39
|
+
# * {RubyGems Guides}[https://guides.rubygems.org]
|
40
|
+
# * {RubyGems API}[https://www.rubydoc.info/github/rubygems/rubygems] (also available from
|
42
41
|
# <tt>gem server</tt>)
|
43
42
|
#
|
44
43
|
# == RubyGems Plugins
|
45
44
|
#
|
46
|
-
#
|
45
|
+
# RubyGems will load plugins in the latest version of each installed gem or
|
47
46
|
# $LOAD_PATH. Plugins must be named 'rubygems_plugin' (.rb, .so, etc) and
|
48
|
-
# placed at the root of your gem's #require_path. Plugins are
|
49
|
-
#
|
47
|
+
# placed at the root of your gem's #require_path. Plugins are installed at a
|
48
|
+
# special location and loaded on boot.
|
50
49
|
#
|
51
50
|
# For an example plugin, see the {Graph gem}[https://github.com/seattlerb/graph]
|
52
51
|
# which adds a `gem graph` command.
|
@@ -148,6 +147,7 @@ module Gem
|
|
148
147
|
doc
|
149
148
|
extensions
|
150
149
|
gems
|
150
|
+
plugins
|
151
151
|
specifications
|
152
152
|
].freeze
|
153
153
|
|
@@ -189,6 +189,8 @@ module Gem
|
|
189
189
|
@pre_reset_hooks ||= []
|
190
190
|
@post_reset_hooks ||= []
|
191
191
|
|
192
|
+
@default_source_date_epoch = nil
|
193
|
+
|
192
194
|
##
|
193
195
|
# Try to activate a gem containing +path+. Returns true if
|
194
196
|
# activation succeeded or wasn't needed because it was already
|
@@ -315,6 +317,13 @@ module Gem
|
|
315
317
|
Gem.default_bindir
|
316
318
|
end
|
317
319
|
|
320
|
+
##
|
321
|
+
# The path were rubygems plugins are to be installed.
|
322
|
+
|
323
|
+
def self.plugindir(install_dir=Gem.dir)
|
324
|
+
File.join install_dir, 'plugins'
|
325
|
+
end
|
326
|
+
|
318
327
|
##
|
319
328
|
# Reset the +dir+ and +path+ values. The next time +dir+ or +path+
|
320
329
|
# is requested, the values will be calculated from scratch. This is
|
@@ -327,13 +336,6 @@ module Gem
|
|
327
336
|
Gem::Security.reset if defined?(Gem::Security)
|
328
337
|
end
|
329
338
|
|
330
|
-
##
|
331
|
-
# The path to standard location of the user's .gemrc file.
|
332
|
-
|
333
|
-
def self.config_file
|
334
|
-
@config_file ||= File.join Gem.user_home, '.gemrc'
|
335
|
-
end
|
336
|
-
|
337
339
|
##
|
338
340
|
# The standard configuration object for gems.
|
339
341
|
|
@@ -391,11 +393,11 @@ module Gem
|
|
391
393
|
target[k] = v
|
392
394
|
when Array
|
393
395
|
unless Gem::Deprecate.skip
|
394
|
-
warn <<-
|
396
|
+
warn <<-EOWARN
|
395
397
|
Array values in the parameter to `Gem.paths=` are deprecated.
|
396
398
|
Please use a String or nil.
|
397
399
|
An Array (#{env.inspect}) was passed in from #{caller[3]}
|
398
|
-
|
400
|
+
EOWARN
|
399
401
|
end
|
400
402
|
target[k] = v.join File::PATH_SEPARATOR
|
401
403
|
end
|
@@ -409,8 +411,6 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
409
411
|
|
410
412
|
##
|
411
413
|
# The path where gems are to be installed.
|
412
|
-
#--
|
413
|
-
# FIXME deprecate these once everything else has been done -ebh
|
414
414
|
|
415
415
|
def self.dir
|
416
416
|
paths.home
|
@@ -463,7 +463,10 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
463
463
|
subdirs.each do |name|
|
464
464
|
subdir = File.join dir, name
|
465
465
|
next if File.exist? subdir
|
466
|
-
|
466
|
+
begin
|
467
|
+
FileUtils.mkdir_p subdir, **options
|
468
|
+
rescue Errno::EACCES
|
469
|
+
end
|
467
470
|
end
|
468
471
|
ensure
|
469
472
|
File.umask old_umask
|
@@ -500,7 +503,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
500
503
|
|
501
504
|
gem_specifications = @gemdeps ? Gem.loaded_specs.values : Gem::Specification.stubs
|
502
505
|
|
503
|
-
files.concat gem_specifications.map {
|
506
|
+
files.concat gem_specifications.map {|spec|
|
504
507
|
spec.matches_for_glob("#{glob}#{Gem.suffix_pattern}")
|
505
508
|
}.flatten
|
506
509
|
|
@@ -515,7 +518,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
515
518
|
glob_with_suffixes = "#{glob}#{Gem.suffix_pattern}"
|
516
519
|
$LOAD_PATH.map do |load_path|
|
517
520
|
Gem::Util.glob_files_in_dir(glob_with_suffixes, load_path)
|
518
|
-
end.flatten.select {
|
521
|
+
end.flatten.select {|file| File.file? file.tap(&Gem::UNTAINT) }
|
519
522
|
end
|
520
523
|
|
521
524
|
##
|
@@ -535,7 +538,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
535
538
|
|
536
539
|
files = find_files_from_load_path glob if check_load_path
|
537
540
|
|
538
|
-
files.concat Gem::Specification.latest_specs(true).map {
|
541
|
+
files.concat Gem::Specification.latest_specs(true).map {|spec|
|
539
542
|
spec.matches_for_glob("#{glob}#{Gem.suffix_pattern}")
|
540
543
|
}.flatten
|
541
544
|
|
@@ -546,83 +549,12 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
546
549
|
return files
|
547
550
|
end
|
548
551
|
|
549
|
-
##
|
550
|
-
# Finds the user's home directory.
|
551
|
-
#--
|
552
|
-
# Some comments from the ruby-talk list regarding finding the home
|
553
|
-
# directory:
|
554
|
-
#
|
555
|
-
# I have HOME, USERPROFILE and HOMEDRIVE + HOMEPATH. Ruby seems
|
556
|
-
# to be depending on HOME in those code samples. I propose that
|
557
|
-
# it should fallback to USERPROFILE and HOMEDRIVE + HOMEPATH (at
|
558
|
-
# least on Win32).
|
559
|
-
#++
|
560
|
-
#--
|
561
|
-
#
|
562
|
-
#++
|
563
|
-
|
564
|
-
def self.find_home
|
565
|
-
Dir.home.dup
|
566
|
-
rescue
|
567
|
-
if Gem.win_platform?
|
568
|
-
File.expand_path File.join(ENV['HOMEDRIVE'] || ENV['SystemDrive'], '/')
|
569
|
-
else
|
570
|
-
File.expand_path "/"
|
571
|
-
end
|
572
|
-
end
|
573
|
-
|
574
|
-
private_class_method :find_home
|
575
|
-
|
576
|
-
# TODO: remove in RubyGems 4.0
|
577
|
-
|
578
|
-
##
|
579
|
-
# Zlib::GzipReader wrapper that unzips +data+.
|
580
|
-
|
581
|
-
def self.gunzip(data)
|
582
|
-
Gem::Util.gunzip data
|
583
|
-
end
|
584
|
-
|
585
|
-
class << self
|
586
|
-
|
587
|
-
extend Gem::Deprecate
|
588
|
-
deprecate :gunzip, "Gem::Util.gunzip", 2018, 12
|
589
|
-
|
590
|
-
end
|
591
|
-
|
592
|
-
##
|
593
|
-
# Zlib::GzipWriter wrapper that zips +data+.
|
594
|
-
|
595
|
-
def self.gzip(data)
|
596
|
-
Gem::Util.gzip data
|
597
|
-
end
|
598
|
-
|
599
|
-
class << self
|
600
|
-
|
601
|
-
extend Gem::Deprecate
|
602
|
-
deprecate :gzip, "Gem::Util.gzip", 2018, 12
|
603
|
-
|
604
|
-
end
|
605
|
-
|
606
|
-
##
|
607
|
-
# A Zlib::Inflate#inflate wrapper
|
608
|
-
|
609
|
-
def self.inflate(data)
|
610
|
-
Gem::Util.inflate data
|
611
|
-
end
|
612
|
-
|
613
|
-
class << self
|
614
|
-
|
615
|
-
extend Gem::Deprecate
|
616
|
-
deprecate :inflate, "Gem::Util.inflate", 2018, 12
|
617
|
-
|
618
|
-
end
|
619
|
-
|
620
552
|
##
|
621
553
|
# Top level install helper method. Allows you to install gems interactively:
|
622
554
|
#
|
623
555
|
# % irb
|
624
556
|
# >> Gem.install "minitest"
|
625
|
-
# Fetching: minitest-
|
557
|
+
# Fetching: minitest-5.14.0.gem (100%)
|
626
558
|
# => [#<Gem::Specification:0x1013b4528 @name="minitest", ...>]
|
627
559
|
|
628
560
|
def self.install(name, version = Gem::Requirement.default, *options)
|
@@ -657,22 +589,25 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
657
589
|
|
658
590
|
index = $LOAD_PATH.index RbConfig::CONFIG['sitelibdir']
|
659
591
|
|
660
|
-
index
|
592
|
+
index || 0
|
593
|
+
end
|
594
|
+
|
595
|
+
##
|
596
|
+
# The number of paths in the `$LOAD_PATH` from activated gems. Used to
|
597
|
+
# prioritize `-I` and `ENV['RUBYLIB`]` entries during `require`.
|
598
|
+
|
599
|
+
def self.activated_gem_paths
|
600
|
+
@activated_gem_paths ||= 0
|
661
601
|
end
|
662
602
|
|
663
603
|
##
|
664
604
|
# Add a list of paths to the $LOAD_PATH at the proper place.
|
665
605
|
|
666
606
|
def self.add_to_load_path(*paths)
|
667
|
-
|
607
|
+
@activated_gem_paths = activated_gem_paths + paths.size
|
668
608
|
|
669
|
-
|
670
|
-
|
671
|
-
$LOAD_PATH.insert(insert_index, *paths)
|
672
|
-
else
|
673
|
-
# we are probably testing in core, -I and RUBYLIB don't apply
|
674
|
-
$LOAD_PATH.unshift(*paths)
|
675
|
-
end
|
609
|
+
# gem directories must come after -I and ENV['RUBYLIB']
|
610
|
+
$LOAD_PATH.insert(Gem.load_path_insert_index, *paths)
|
676
611
|
end
|
677
612
|
|
678
613
|
@yaml_loaded = false
|
@@ -682,14 +617,6 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
682
617
|
|
683
618
|
def self.load_yaml
|
684
619
|
return if @yaml_loaded
|
685
|
-
return unless defined?(gem)
|
686
|
-
|
687
|
-
begin
|
688
|
-
gem 'psych', '>= 2.0.0'
|
689
|
-
rescue Gem::LoadError
|
690
|
-
# It's OK if the user does not have the psych gem installed. We will
|
691
|
-
# attempt to require the stdlib version
|
692
|
-
end
|
693
620
|
|
694
621
|
begin
|
695
622
|
# Try requiring the gem version *or* stdlib version of psych.
|
@@ -904,8 +831,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
904
831
|
|
905
832
|
def self.ruby
|
906
833
|
if @ruby.nil?
|
907
|
-
@ruby =
|
908
|
-
"#{RbConfig::CONFIG['ruby_install_name']}#{RbConfig::CONFIG['EXEEXT']}")
|
834
|
+
@ruby = RbConfig.ruby
|
909
835
|
|
910
836
|
@ruby = "\"#{@ruby}\"" if @ruby =~ /\s/
|
911
837
|
end
|
@@ -1018,17 +944,34 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1018
944
|
@suffix_pattern ||= "{#{suffixes.join(',')}}"
|
1019
945
|
end
|
1020
946
|
|
947
|
+
##
|
948
|
+
# Regexp for require-able path suffixes.
|
949
|
+
|
1021
950
|
def self.suffix_regexp
|
1022
951
|
@suffix_regexp ||= /#{Regexp.union(suffixes)}\z/
|
1023
952
|
end
|
1024
953
|
|
954
|
+
##
|
955
|
+
# Glob pattern for require-able plugin suffixes.
|
956
|
+
|
957
|
+
def self.plugin_suffix_pattern
|
958
|
+
@plugin_suffix_pattern ||= "_plugin#{suffix_pattern}"
|
959
|
+
end
|
960
|
+
|
961
|
+
##
|
962
|
+
# Regexp for require-able plugin suffixes.
|
963
|
+
|
964
|
+
def self.plugin_suffix_regexp
|
965
|
+
@plugin_suffix_regexp ||= /_plugin#{suffix_regexp}\z/
|
966
|
+
end
|
967
|
+
|
1025
968
|
##
|
1026
969
|
# Suffixes for require-able paths.
|
1027
970
|
|
1028
971
|
def self.suffixes
|
1029
972
|
@suffixes ||= ['',
|
1030
973
|
'.rb',
|
1031
|
-
*%w
|
974
|
+
*%w[DLEXT DLEXT2].map do |key|
|
1032
975
|
val = RbConfig::CONFIG[key]
|
1033
976
|
next unless val and not val.empty?
|
1034
977
|
".#{val}"
|
@@ -1069,24 +1012,17 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1069
1012
|
paths.flatten!
|
1070
1013
|
paths.compact!
|
1071
1014
|
hash = { "GEM_HOME" => home, "GEM_PATH" => paths.empty? ? home : paths.join(File::PATH_SEPARATOR) }
|
1072
|
-
hash.delete_if {
|
1015
|
+
hash.delete_if {|_, v| v.nil? }
|
1073
1016
|
self.paths = hash
|
1074
1017
|
end
|
1075
1018
|
|
1076
|
-
##
|
1077
|
-
# The home directory for the user.
|
1078
|
-
|
1079
|
-
def self.user_home
|
1080
|
-
@user_home ||= find_home.tap(&Gem::UNTAINT)
|
1081
|
-
end
|
1082
|
-
|
1083
1019
|
##
|
1084
1020
|
# Is this a windows platform?
|
1085
1021
|
|
1086
1022
|
def self.win_platform?
|
1087
1023
|
if @@win_platform.nil?
|
1088
1024
|
ruby_platform = RbConfig::CONFIG['host_os']
|
1089
|
-
@@win_platform = !!WIN_PATTERNS.find {
|
1025
|
+
@@win_platform = !!WIN_PATTERNS.find {|r| ruby_platform =~ r }
|
1090
1026
|
end
|
1091
1027
|
|
1092
1028
|
@@win_platform
|
@@ -1120,35 +1056,17 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1120
1056
|
end
|
1121
1057
|
|
1122
1058
|
##
|
1123
|
-
# Find
|
1124
|
-
# them
|
1059
|
+
# Find rubygems plugin files in the standard location and load them
|
1125
1060
|
|
1126
1061
|
def self.load_plugins
|
1127
|
-
|
1128
|
-
if ENV['RUBYGEMS_LOAD_ALL_PLUGINS']
|
1129
|
-
load_plugin_files find_files('rubygems_plugin', false)
|
1130
|
-
else
|
1131
|
-
load_plugin_files find_latest_files('rubygems_plugin', false)
|
1132
|
-
end
|
1062
|
+
load_plugin_files Gem::Util.glob_files_in_dir("*#{Gem.plugin_suffix_pattern}", plugindir)
|
1133
1063
|
end
|
1134
1064
|
|
1135
1065
|
##
|
1136
1066
|
# Find all 'rubygems_plugin' files in $LOAD_PATH and load them
|
1137
1067
|
|
1138
1068
|
def self.load_env_plugins
|
1139
|
-
|
1140
|
-
|
1141
|
-
files = []
|
1142
|
-
glob = "#{path}#{Gem.suffix_pattern}"
|
1143
|
-
$LOAD_PATH.each do |load_path|
|
1144
|
-
globbed = Gem::Util.glob_files_in_dir(glob, load_path)
|
1145
|
-
|
1146
|
-
globbed.each do |load_path_file|
|
1147
|
-
files << load_path_file if File.file?(load_path_file.tap(&Gem::UNTAINT))
|
1148
|
-
end
|
1149
|
-
end
|
1150
|
-
|
1151
|
-
load_plugin_files files
|
1069
|
+
load_plugin_files find_files_from_load_path("rubygems_plugin")
|
1152
1070
|
end
|
1153
1071
|
|
1154
1072
|
##
|
@@ -1181,7 +1099,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1181
1099
|
|
1182
1100
|
if path == "-"
|
1183
1101
|
Gem::Util.traverse_parents Dir.pwd do |directory|
|
1184
|
-
dep_file = GEM_DEP_FILES.find {
|
1102
|
+
dep_file = GEM_DEP_FILES.find {|f| File.file?(f) }
|
1185
1103
|
|
1186
1104
|
next unless dep_file
|
1187
1105
|
|
@@ -1223,39 +1141,55 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1223
1141
|
end
|
1224
1142
|
end
|
1225
1143
|
|
1226
|
-
|
1144
|
+
##
|
1145
|
+
# If the SOURCE_DATE_EPOCH environment variable is set, returns it's value.
|
1146
|
+
# Otherwise, returns the time that `Gem.source_date_epoch_string` was
|
1147
|
+
# first called in the same format as SOURCE_DATE_EPOCH.
|
1148
|
+
#
|
1149
|
+
# NOTE(@duckinator): The implementation is a tad weird because we want to:
|
1150
|
+
# 1. Make builds reproducible by default, by having this function always
|
1151
|
+
# return the same result during a given run.
|
1152
|
+
# 2. Allow changing ENV['SOURCE_DATE_EPOCH'] at runtime, since multiple
|
1153
|
+
# tests that set this variable will be run in a single process.
|
1154
|
+
#
|
1155
|
+
# If you simplify this function and a lot of tests fail, that is likely
|
1156
|
+
# due to #2 above.
|
1157
|
+
#
|
1158
|
+
# Details on SOURCE_DATE_EPOCH:
|
1159
|
+
# https://reproducible-builds.org/specs/source-date-epoch/
|
1227
1160
|
|
1228
|
-
|
1229
|
-
#
|
1161
|
+
def self.source_date_epoch_string
|
1162
|
+
# The value used if $SOURCE_DATE_EPOCH is not set.
|
1163
|
+
@default_source_date_epoch ||= Time.now.to_i.to_s
|
1230
1164
|
|
1231
|
-
|
1165
|
+
specified_epoch = ENV["SOURCE_DATE_EPOCH"]
|
1232
1166
|
|
1233
|
-
|
1234
|
-
|
1167
|
+
# If it's empty or just whitespace, treat it like it wasn't set at all.
|
1168
|
+
specified_epoch = nil if !specified_epoch.nil? && specified_epoch.strip.empty?
|
1235
1169
|
|
1170
|
+
epoch = specified_epoch || @default_source_date_epoch
|
1171
|
+
|
1172
|
+
epoch.strip
|
1236
1173
|
end
|
1237
1174
|
|
1238
1175
|
##
|
1239
|
-
#
|
1240
|
-
# This is used throughout RubyGems for enabling reproducible builds.
|
1241
|
-
#
|
1242
|
-
# If it is not set as an environment variable already, this also sets it.
|
1176
|
+
# Returns the value of Gem.source_date_epoch_string, as a Time object.
|
1243
1177
|
#
|
1244
|
-
#
|
1245
|
-
# https://reproducible-builds.org/specs/source-date-epoch/
|
1178
|
+
# This is used throughout RubyGems for enabling reproducible builds.
|
1246
1179
|
|
1247
1180
|
def self.source_date_epoch
|
1248
|
-
|
1249
|
-
ENV["SOURCE_DATE_EPOCH"] = Time.now.to_i.to_s
|
1250
|
-
end
|
1251
|
-
|
1252
|
-
Time.at(ENV["SOURCE_DATE_EPOCH"].to_i).utc.freeze
|
1181
|
+
Time.at(self.source_date_epoch_string.to_i).utc.freeze
|
1253
1182
|
end
|
1254
1183
|
|
1255
1184
|
# FIX: Almost everywhere else we use the `def self.` way of defining class
|
1256
1185
|
# methods, and then we switch over to `class << self` here. Pick one or the
|
1257
1186
|
# other.
|
1258
1187
|
class << self
|
1188
|
+
##
|
1189
|
+
# RubyGems distributors (like operating system package managers) can
|
1190
|
+
# disable RubyGems update by setting this to error message printed to
|
1191
|
+
# end-users on gem update --system instead of actual update.
|
1192
|
+
attr_accessor :disable_system_update_message
|
1259
1193
|
|
1260
1194
|
##
|
1261
1195
|
# Hash of loaded Gem::Specification keyed by name
|
@@ -1281,10 +1215,11 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1281
1215
|
#
|
1282
1216
|
|
1283
1217
|
def register_default_spec(spec)
|
1284
|
-
|
1218
|
+
extended_require_paths = spec.require_paths.map {|f| f + "/" }
|
1219
|
+
new_format = extended_require_paths.any? {|path| spec.files.any? {|f| f.start_with? path } }
|
1285
1220
|
|
1286
1221
|
if new_format
|
1287
|
-
prefix_group =
|
1222
|
+
prefix_group = extended_require_paths.join("|")
|
1288
1223
|
prefix_pattern = /^(#{prefix_group})/
|
1289
1224
|
end
|
1290
1225
|
|
@@ -1294,6 +1229,8 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1294
1229
|
next unless $~
|
1295
1230
|
end
|
1296
1231
|
|
1232
|
+
spec.activate if already_loaded?(file)
|
1233
|
+
|
1297
1234
|
@path_to_default_spec_map[file] = spec
|
1298
1235
|
@path_to_default_spec_map[file.sub(suffix_regexp, "")] = spec
|
1299
1236
|
end
|
@@ -1359,6 +1296,17 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1359
1296
|
|
1360
1297
|
attr_reader :pre_uninstall_hooks
|
1361
1298
|
|
1299
|
+
private
|
1300
|
+
|
1301
|
+
def already_loaded?(file)
|
1302
|
+
$LOADED_FEATURES.any? do |feature_path|
|
1303
|
+
feature_path.end_with?(file) && default_gem_load_paths.any? {|load_path_entry| feature_path == "#{load_path_entry}/#{file}" }
|
1304
|
+
end
|
1305
|
+
end
|
1306
|
+
|
1307
|
+
def default_gem_load_paths
|
1308
|
+
@default_gem_load_paths ||= $LOAD_PATH[load_path_insert_index..-1]
|
1309
|
+
end
|
1362
1310
|
end
|
1363
1311
|
|
1364
1312
|
##
|
@@ -1366,25 +1314,24 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1366
1314
|
|
1367
1315
|
MARSHAL_SPEC_DIR = "quick/Marshal.#{Gem.marshal_version}/".freeze
|
1368
1316
|
|
1369
|
-
autoload :BundlerVersionFinder, 'rubygems/bundler_version_finder'
|
1370
|
-
autoload :ConfigFile, 'rubygems/config_file'
|
1371
|
-
autoload :Dependency, 'rubygems/dependency'
|
1372
|
-
autoload :DependencyList, 'rubygems/dependency_list'
|
1373
|
-
autoload :Installer, 'rubygems/installer'
|
1374
|
-
autoload :Licenses, 'rubygems/util/licenses'
|
1375
|
-
autoload :
|
1376
|
-
autoload :
|
1377
|
-
autoload :
|
1378
|
-
autoload :
|
1379
|
-
autoload :
|
1380
|
-
autoload :
|
1381
|
-
autoload :
|
1382
|
-
autoload :
|
1383
|
-
autoload :
|
1384
|
-
autoload :
|
1385
|
-
autoload :
|
1386
|
-
|
1387
|
-
require "rubygems/specification"
|
1317
|
+
autoload :BundlerVersionFinder, File.expand_path('rubygems/bundler_version_finder', __dir__)
|
1318
|
+
autoload :ConfigFile, File.expand_path('rubygems/config_file', __dir__)
|
1319
|
+
autoload :Dependency, File.expand_path('rubygems/dependency', __dir__)
|
1320
|
+
autoload :DependencyList, File.expand_path('rubygems/dependency_list', __dir__)
|
1321
|
+
autoload :Installer, File.expand_path('rubygems/installer', __dir__)
|
1322
|
+
autoload :Licenses, File.expand_path('rubygems/util/licenses', __dir__)
|
1323
|
+
autoload :NameTuple, File.expand_path('rubygems/name_tuple', __dir__)
|
1324
|
+
autoload :PathSupport, File.expand_path('rubygems/path_support', __dir__)
|
1325
|
+
autoload :Platform, File.expand_path('rubygems/platform', __dir__)
|
1326
|
+
autoload :RequestSet, File.expand_path('rubygems/request_set', __dir__)
|
1327
|
+
autoload :Requirement, File.expand_path('rubygems/requirement', __dir__)
|
1328
|
+
autoload :Resolver, File.expand_path('rubygems/resolver', __dir__)
|
1329
|
+
autoload :Source, File.expand_path('rubygems/source', __dir__)
|
1330
|
+
autoload :SourceList, File.expand_path('rubygems/source_list', __dir__)
|
1331
|
+
autoload :SpecFetcher, File.expand_path('rubygems/spec_fetcher', __dir__)
|
1332
|
+
autoload :Specification, File.expand_path('rubygems/specification', __dir__)
|
1333
|
+
autoload :Util, File.expand_path('rubygems/util', __dir__)
|
1334
|
+
autoload :Version, File.expand_path('rubygems/version', __dir__)
|
1388
1335
|
end
|
1389
1336
|
|
1390
1337
|
require 'rubygems/exceptions'
|