rubygems-update 3.1.6 → 3.3.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/{History.txt → CHANGELOG.md} +1452 -514
- data/CODE_OF_CONDUCT.md +55 -19
- data/CONTRIBUTING.md +74 -27
- data/Manifest.txt +154 -117
- data/POLICIES.md +27 -19
- data/README.md +10 -8
- data/UPGRADING.md +5 -81
- data/bin/gem +3 -8
- data/bin/update_rubygems +5 -5
- data/bundler/CHANGELOG.md +2358 -1430
- data/bundler/README.md +7 -9
- data/bundler/UPGRADING.md +27 -34
- data/bundler/bundler.gemspec +8 -11
- data/bundler/exe/bundle +10 -8
- data/bundler/exe/bundler +1 -1
- data/bundler/lib/bundler/.document +1 -0
- data/bundler/lib/bundler/build_metadata.rb +4 -12
- data/bundler/lib/bundler/cli/add.rb +1 -1
- data/bundler/lib/bundler/cli/binstubs.rb +6 -2
- data/bundler/lib/bundler/cli/cache.rb +3 -8
- data/bundler/lib/bundler/cli/check.rb +4 -2
- data/bundler/lib/bundler/cli/clean.rb +1 -1
- data/bundler/lib/bundler/cli/common.rb +31 -3
- data/bundler/lib/bundler/cli/config.rb +10 -1
- data/bundler/lib/bundler/cli/console.rb +1 -1
- data/bundler/lib/bundler/cli/doctor.rb +25 -6
- data/bundler/lib/bundler/cli/exec.rb +5 -10
- data/bundler/lib/bundler/cli/fund.rb +36 -0
- data/bundler/lib/bundler/cli/gem.rb +219 -28
- data/bundler/lib/bundler/cli/info.rb +38 -6
- data/bundler/lib/bundler/cli/init.rb +3 -3
- data/bundler/lib/bundler/cli/inject.rb +1 -1
- data/bundler/lib/bundler/cli/install.rb +25 -54
- data/bundler/lib/bundler/cli/issue.rb +5 -4
- data/bundler/lib/bundler/cli/list.rb +19 -11
- data/bundler/lib/bundler/cli/lock.rb +5 -1
- data/bundler/lib/bundler/cli/open.rb +1 -2
- data/bundler/lib/bundler/cli/outdated.rb +105 -76
- data/bundler/lib/bundler/cli/platform.rb +2 -2
- data/bundler/lib/bundler/cli/plugin.rb +10 -0
- data/bundler/lib/bundler/cli/pristine.rb +5 -0
- data/bundler/lib/bundler/cli/remove.rb +1 -2
- data/bundler/lib/bundler/cli/show.rb +2 -2
- data/bundler/lib/bundler/cli/update.rb +20 -9
- data/bundler/lib/bundler/cli.rb +106 -83
- data/bundler/lib/bundler/compact_index_client/cache.rb +6 -23
- data/bundler/lib/bundler/compact_index_client/gem_parser.rb +28 -0
- data/bundler/lib/bundler/compact_index_client/updater.rb +29 -25
- data/bundler/lib/bundler/compact_index_client.rb +3 -9
- data/bundler/lib/bundler/current_ruby.rb +17 -6
- data/bundler/lib/bundler/definition.rb +297 -396
- data/bundler/lib/bundler/dep_proxy.rb +16 -9
- data/bundler/lib/bundler/dependency.rb +22 -77
- data/bundler/lib/bundler/digest.rb +71 -0
- data/bundler/lib/bundler/dsl.rb +76 -83
- data/bundler/lib/bundler/endpoint_specification.rb +16 -14
- data/bundler/lib/bundler/env.rb +2 -2
- data/bundler/lib/bundler/environment_preserver.rb +29 -2
- data/bundler/lib/bundler/errors.rb +30 -3
- data/bundler/lib/bundler/feature_flag.rb +0 -9
- data/bundler/lib/bundler/fetcher/base.rb +7 -9
- data/bundler/lib/bundler/fetcher/compact_index.rb +11 -16
- data/bundler/lib/bundler/fetcher/downloader.rb +10 -7
- data/bundler/lib/bundler/fetcher/index.rb +2 -30
- data/bundler/lib/bundler/fetcher.rb +24 -25
- data/bundler/lib/bundler/friendly_errors.rb +46 -47
- data/bundler/lib/bundler/gem_helper.rb +53 -31
- data/bundler/lib/bundler/gem_helpers.rb +43 -24
- data/bundler/lib/bundler/gem_version_promoter.rb +10 -20
- data/bundler/lib/bundler/graph.rb +1 -1
- data/bundler/lib/bundler/index.rb +19 -25
- data/bundler/lib/bundler/injector.rb +38 -6
- data/bundler/lib/bundler/inline.rb +4 -13
- data/bundler/lib/bundler/installer/gem_installer.rb +19 -24
- data/bundler/lib/bundler/installer/parallel_installer.rb +46 -25
- data/bundler/lib/bundler/installer/standalone.rb +58 -11
- data/bundler/lib/bundler/installer.rb +51 -81
- data/bundler/lib/bundler/lazy_specification.rb +79 -36
- data/bundler/lib/bundler/lockfile_generator.rb +3 -3
- data/bundler/lib/bundler/lockfile_parser.rb +19 -44
- data/bundler/lib/bundler/man/.document +1 -0
- data/bundler/{man → lib/bundler/man}/bundle-add.1 +21 -5
- data/bundler/{man/bundle-add.ronn → lib/bundler/man/bundle-add.1.ronn} +16 -4
- data/bundler/{man → lib/bundler/man}/bundle-binstubs.1 +5 -3
- data/bundler/{man/bundle-binstubs.ronn → lib/bundler/man/bundle-binstubs.1.ronn} +2 -4
- data/bundler/{man → lib/bundler/man}/bundle-cache.1 +7 -1
- data/bundler/{man/bundle-cache.ronn → lib/bundler/man/bundle-cache.1.ronn} +7 -0
- data/bundler/{man → lib/bundler/man}/bundle-check.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-clean.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-config.1 +65 -47
- data/bundler/{man/bundle-config.ronn → lib/bundler/man/bundle-config.1.ronn} +74 -65
- data/bundler/lib/bundler/man/bundle-console.1 +53 -0
- data/bundler/lib/bundler/man/bundle-console.1.ronn +44 -0
- data/bundler/{man → lib/bundler/man}/bundle-doctor.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-exec.1 +2 -2
- data/bundler/{man/bundle-exec.ronn → lib/bundler/man/bundle-exec.1.ronn} +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-gem.1 +38 -3
- data/bundler/{man/bundle-gem.ronn → lib/bundler/man/bundle-gem.1.ronn} +46 -7
- data/bundler/lib/bundler/man/bundle-help.1 +13 -0
- data/bundler/lib/bundler/man/bundle-help.1.ronn +12 -0
- data/bundler/{man → lib/bundler/man}/bundle-info.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-init.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-inject.1 +5 -2
- data/bundler/{man/bundle-inject.ronn → lib/bundler/man/bundle-inject.1.ronn} +3 -1
- data/bundler/{man → lib/bundler/man}/bundle-install.1 +35 -4
- data/bundler/{man/bundle-install.ronn → lib/bundler/man/bundle-install.1.ronn} +33 -5
- data/bundler/{man → lib/bundler/man}/bundle-list.1 +7 -7
- data/bundler/{man/bundle-list.ronn → lib/bundler/man/bundle-list.1.ronn} +6 -6
- data/bundler/{man → lib/bundler/man}/bundle-lock.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-open.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-outdated.1 +3 -10
- data/bundler/{man/bundle-outdated.ronn → lib/bundler/man/bundle-outdated.1.ronn} +1 -10
- data/bundler/{man → lib/bundler/man}/bundle-platform.1 +16 -6
- data/bundler/{man/bundle-platform.ronn → lib/bundler/man/bundle-platform.1.ronn} +14 -7
- data/bundler/lib/bundler/man/bundle-plugin.1 +81 -0
- data/bundler/lib/bundler/man/bundle-plugin.1.ronn +59 -0
- data/bundler/{man → lib/bundler/man}/bundle-pristine.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-remove.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-show.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-update.1 +5 -5
- data/bundler/{man/bundle-update.ronn → lib/bundler/man/bundle-update.1.ronn} +5 -4
- data/bundler/lib/bundler/man/bundle-version.1 +35 -0
- data/bundler/lib/bundler/man/bundle-version.1.ronn +24 -0
- data/bundler/{man → lib/bundler/man}/bundle-viz.1 +4 -1
- data/bundler/{man/bundle-viz.ronn → lib/bundler/man/bundle-viz.1.ronn} +2 -0
- data/bundler/{man → lib/bundler/man}/bundle.1 +15 -10
- data/bundler/{man/bundle.ronn → lib/bundler/man/bundle.1.ronn} +12 -7
- data/bundler/{man → lib/bundler/man}/gemfile.5 +106 -80
- data/bundler/{man → lib/bundler/man}/gemfile.5.ronn +94 -83
- data/bundler/{man → lib/bundler/man}/index.txt +4 -0
- data/bundler/lib/bundler/match_metadata.rb +13 -0
- data/bundler/lib/bundler/match_platform.rb +0 -1
- data/bundler/lib/bundler/match_remote_metadata.rb +29 -0
- data/bundler/lib/bundler/mirror.rb +2 -2
- data/bundler/lib/bundler/plugin/api/source.rb +25 -9
- data/bundler/lib/bundler/plugin/dsl.rb +1 -1
- data/bundler/lib/bundler/plugin/index.rb +13 -1
- data/bundler/lib/bundler/plugin/installer/git.rb +0 -4
- data/bundler/lib/bundler/plugin/installer/rubygems.rb +1 -5
- data/bundler/lib/bundler/plugin/installer.rb +11 -11
- data/bundler/lib/bundler/plugin/source_list.rb +5 -1
- data/bundler/lib/bundler/plugin.rb +58 -11
- data/bundler/lib/bundler/process_lock.rb +1 -1
- data/bundler/lib/bundler/remote_specification.rb +11 -6
- data/bundler/lib/bundler/resolver/base.rb +50 -0
- data/bundler/lib/bundler/resolver/spec_group.rb +64 -57
- data/bundler/lib/bundler/resolver.rb +234 -230
- data/bundler/lib/bundler/retry.rb +2 -2
- data/bundler/lib/bundler/ruby_dsl.rb +1 -1
- data/bundler/lib/bundler/ruby_version.rb +6 -19
- data/bundler/lib/bundler/rubygems_ext.rb +194 -33
- data/bundler/lib/bundler/rubygems_gem_installer.rb +87 -16
- data/bundler/lib/bundler/rubygems_integration.rb +71 -153
- data/bundler/lib/bundler/runtime.rb +22 -26
- data/bundler/lib/bundler/self_manager.rb +168 -0
- data/bundler/lib/bundler/settings.rb +145 -66
- data/bundler/lib/bundler/setup.rb +2 -2
- data/bundler/lib/bundler/shared_helpers.rb +17 -32
- data/bundler/lib/bundler/similarity_detector.rb +1 -1
- data/bundler/lib/bundler/source/git/git_proxy.rb +88 -84
- data/bundler/lib/bundler/source/git.rb +50 -32
- data/bundler/lib/bundler/source/metadata.rb +3 -7
- data/bundler/lib/bundler/source/path/installer.rb +10 -10
- data/bundler/lib/bundler/source/path.rb +10 -4
- data/bundler/lib/bundler/source/rubygems/remote.rb +1 -1
- data/bundler/lib/bundler/source/rubygems.rb +201 -179
- data/bundler/lib/bundler/source/rubygems_aggregate.rb +68 -0
- data/bundler/lib/bundler/source.rb +25 -5
- data/bundler/lib/bundler/source_list.rb +105 -63
- data/bundler/lib/bundler/source_map.rb +71 -0
- data/bundler/lib/bundler/spec_set.rb +62 -57
- data/bundler/lib/bundler/stub_specification.rb +30 -10
- data/bundler/lib/bundler/templates/Executable +2 -4
- data/bundler/lib/bundler/templates/Executable.bundler +8 -8
- data/bundler/lib/bundler/templates/Executable.standalone +2 -4
- data/bundler/lib/bundler/templates/Gemfile +0 -2
- data/bundler/lib/bundler/templates/gems.rb +0 -3
- data/bundler/lib/bundler/templates/newgem/CHANGELOG.md.tt +5 -0
- data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +57 -47
- data/bundler/lib/bundler/templates/newgem/Gemfile.tt +12 -1
- data/bundler/lib/bundler/templates/newgem/README.md.tt +9 -14
- data/bundler/lib/bundler/templates/newgem/Rakefile.tt +32 -5
- data/bundler/lib/bundler/templates/newgem/bin/console.tt +1 -0
- data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +13 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +2 -0
- data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +27 -0
- data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +9 -0
- data/bundler/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +2 -0
- data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +4 -2
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +27 -17
- data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +13 -0
- data/bundler/lib/bundler/templates/newgem/sig/newgem.rbs.tt +8 -0
- data/bundler/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +2 -0
- data/bundler/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +2 -1
- data/bundler/lib/bundler/templates/newgem/standard.yml.tt +3 -0
- data/bundler/lib/bundler/templates/newgem/test/{test_helper.rb.tt → minitest/test_helper.rb.tt} +2 -0
- data/bundler/lib/bundler/templates/newgem/test/{newgem_test.rb.tt → minitest/test_newgem.rb.tt} +3 -1
- data/bundler/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt +15 -0
- data/bundler/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt +6 -0
- data/bundler/lib/bundler/ui/shell.rb +6 -6
- data/bundler/lib/bundler/uri_credentials_filter.rb +3 -1
- data/bundler/lib/bundler/vendor/.document +1 -0
- data/bundler/lib/bundler/vendor/connection_pool/LICENSE +20 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +19 -21
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +1 -1
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +57 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +39 -74
- data/bundler/lib/bundler/vendor/fileutils/LICENSE.txt +22 -0
- data/bundler/lib/bundler/vendor/molinillo/LICENSE +9 -0
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +7 -0
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +2 -2
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +11 -5
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +37 -5
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +34 -28
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +1 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +12 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +49 -47
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -1
- data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +82 -0
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +82 -189
- data/bundler/lib/bundler/vendor/thor/LICENSE.md +20 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +2 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +9 -7
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +1 -2
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions.rb +7 -3
- data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +9 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +6 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/error.rb +10 -5
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +5 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +28 -9
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +27 -6
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/color.rb +5 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/util.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor.rb +5 -13
- data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +154 -0
- data/bundler/lib/bundler/vendor/tsort/LICENSE.txt +22 -0
- data/bundler/lib/bundler/vendor/tsort/lib/tsort.rb +452 -0
- data/bundler/lib/bundler/vendor/uri/LICENSE.txt +22 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +17 -80
- data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +0 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +5 -6
- data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +0 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/https.rb +0 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb +1 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb +0 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +1 -14
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +1 -12
- data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/ws.rb +84 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/wss.rb +22 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri.rb +0 -1
- data/bundler/lib/bundler/vendored_persistent.rb +0 -7
- data/bundler/lib/bundler/vendored_tmpdir.rb +4 -0
- data/bundler/lib/bundler/vendored_tsort.rb +4 -0
- data/bundler/lib/bundler/version.rb +1 -1
- data/bundler/lib/bundler/worker.rb +20 -5
- data/bundler/lib/bundler/yaml_serializer.rb +1 -1
- data/bundler/lib/bundler.rb +79 -47
- data/hide_lib_for_update/note.txt +0 -4
- data/lib/rubygems/available_set.rb +7 -9
- data/lib/rubygems/basic_specification.rb +23 -21
- data/lib/rubygems/bundler_version_finder.rb +26 -53
- data/lib/rubygems/command.rb +48 -45
- data/lib/rubygems/command_manager.rb +20 -14
- data/lib/rubygems/commands/build_command.rb +47 -27
- data/lib/rubygems/commands/cert_command.rb +78 -75
- data/lib/rubygems/commands/check_command.rb +20 -22
- data/lib/rubygems/commands/cleanup_command.rb +30 -26
- data/lib/rubygems/commands/contents_command.rb +16 -18
- data/lib/rubygems/commands/dependency_command.rb +39 -51
- data/lib/rubygems/commands/environment_command.rb +11 -10
- data/lib/rubygems/commands/fetch_command.rb +33 -16
- data/lib/rubygems/commands/generate_index_command.rb +17 -19
- data/lib/rubygems/commands/help_command.rb +6 -6
- data/lib/rubygems/commands/info_command.rb +10 -7
- data/lib/rubygems/commands/install_command.rb +29 -27
- data/lib/rubygems/commands/list_command.rb +9 -8
- data/lib/rubygems/commands/lock_command.rb +5 -7
- data/lib/rubygems/commands/mirror_command.rb +3 -5
- data/lib/rubygems/commands/open_command.rb +10 -14
- data/lib/rubygems/commands/outdated_command.rb +5 -7
- data/lib/rubygems/commands/owner_command.rb +26 -16
- data/lib/rubygems/commands/pristine_command.rb +61 -49
- data/lib/rubygems/commands/push_command.rb +22 -59
- data/lib/rubygems/commands/query_command.rb +21 -351
- data/lib/rubygems/commands/rdoc_command.rb +23 -25
- data/lib/rubygems/commands/search_command.rb +8 -8
- data/lib/rubygems/commands/server_command.rb +16 -77
- data/lib/rubygems/commands/setup_command.rb +255 -229
- data/lib/rubygems/commands/signin_command.rb +9 -11
- data/lib/rubygems/commands/signout_command.rb +7 -9
- data/lib/rubygems/commands/sources_command.rb +27 -25
- data/lib/rubygems/commands/specification_command.rb +25 -21
- data/lib/rubygems/commands/stale_command.rb +3 -5
- data/lib/rubygems/commands/uninstall_command.rb +41 -43
- data/lib/rubygems/commands/unpack_command.rb +13 -15
- data/lib/rubygems/commands/update_command.rb +132 -74
- data/lib/rubygems/commands/which_command.rb +7 -9
- data/lib/rubygems/commands/yank_command.rb +16 -19
- data/lib/rubygems/compatibility.rb +4 -2
- data/lib/rubygems/config_file.rb +42 -26
- data/lib/rubygems/core_ext/kernel_gem.rb +1 -1
- data/lib/rubygems/core_ext/kernel_require.rb +6 -3
- data/lib/rubygems/core_ext/kernel_warn.rb +12 -13
- data/lib/rubygems/core_ext/tcpsocket_init.rb +52 -0
- data/lib/rubygems/defaults.rb +108 -32
- data/lib/rubygems/dependency.rb +21 -22
- data/lib/rubygems/dependency_installer.rb +19 -91
- data/lib/rubygems/dependency_list.rb +13 -15
- data/lib/rubygems/deprecate.rb +102 -8
- data/lib/rubygems/doctor.rb +22 -22
- data/lib/rubygems/errors.rb +6 -21
- data/lib/rubygems/exceptions.rb +33 -34
- data/lib/rubygems/ext/build_error.rb +2 -0
- data/lib/rubygems/ext/builder.rb +48 -54
- data/lib/rubygems/ext/cargo_builder/link_flag_converter.rb +23 -0
- data/lib/rubygems/ext/cargo_builder.rb +321 -0
- data/lib/rubygems/ext/cmake_builder.rb +6 -9
- data/lib/rubygems/ext/configure_builder.rb +5 -8
- data/lib/rubygems/ext/ext_conf_builder.rb +42 -66
- data/lib/rubygems/ext/rake_builder.rb +7 -10
- data/lib/rubygems/ext.rb +7 -6
- data/lib/rubygems/gem_runner.rb +15 -26
- data/lib/rubygems/gemcutter_utilities.rb +153 -32
- data/lib/rubygems/indexer.rb +30 -49
- data/lib/rubygems/install_default_message.rb +2 -2
- data/lib/rubygems/install_message.rb +2 -2
- data/lib/rubygems/install_update_options.rb +73 -64
- data/lib/rubygems/installer.rb +194 -151
- data/lib/rubygems/installer_uninstaller_utils.rb +29 -0
- data/lib/rubygems/local_remote_options.rb +22 -24
- data/lib/rubygems/mock_gem_ui.rb +2 -8
- data/lib/rubygems/name_tuple.rb +9 -14
- data/lib/rubygems/openssl.rb +7 -0
- data/lib/rubygems/optparse/.document +1 -0
- data/lib/rubygems/optparse/COPYING +56 -0
- data/lib/rubygems/optparse/lib/optionparser.rb +2 -0
- data/lib/rubygems/optparse/lib/optparse/ac.rb +54 -0
- data/lib/rubygems/optparse/lib/optparse/date.rb +18 -0
- data/lib/rubygems/optparse/lib/optparse/kwargs.rb +22 -0
- data/lib/rubygems/optparse/lib/optparse/shellwords.rb +7 -0
- data/lib/rubygems/optparse/lib/optparse/time.rb +11 -0
- data/lib/rubygems/optparse/lib/optparse/uri.rb +7 -0
- data/lib/rubygems/optparse/lib/optparse/version.rb +71 -0
- data/lib/rubygems/optparse/lib/optparse.rb +2303 -0
- data/lib/rubygems/optparse.rb +3 -0
- data/lib/rubygems/package/digest_io.rb +0 -2
- data/lib/rubygems/package/file_source.rb +2 -4
- data/lib/rubygems/package/io_source.rb +4 -2
- data/lib/rubygems/package/old.rb +9 -11
- data/lib/rubygems/package/tar_header.rb +54 -56
- data/lib/rubygems/package/tar_reader/entry.rb +2 -5
- data/lib/rubygems/package/tar_reader.rb +1 -4
- data/lib/rubygems/package/tar_writer.rb +8 -18
- data/lib/rubygems/package.rb +101 -117
- data/lib/rubygems/package_task.rb +5 -11
- data/lib/rubygems/path_support.rb +2 -9
- data/lib/rubygems/platform.rb +101 -76
- data/lib/rubygems/psych_tree.rb +1 -3
- data/lib/rubygems/query_utils.rb +351 -0
- data/lib/rubygems/rdoc.rb +2 -14
- data/lib/rubygems/remote_fetcher.rb +48 -74
- data/lib/rubygems/request/connection_pools.rb +6 -10
- data/lib/rubygems/request/http_pool.rb +2 -4
- data/lib/rubygems/request/https_pool.rb +0 -2
- data/lib/rubygems/request.rb +26 -31
- data/lib/rubygems/request_set/gem_dependency_api.rb +23 -25
- data/lib/rubygems/request_set/lockfile/parser.rb +26 -28
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +5 -7
- data/lib/rubygems/request_set/lockfile.rb +17 -21
- data/lib/rubygems/request_set.rb +27 -40
- data/lib/rubygems/requirement.rb +28 -48
- data/lib/rubygems/resolver/activation_request.rb +12 -6
- data/lib/rubygems/resolver/api_set/gem_parser.rb +20 -0
- data/lib/rubygems/resolver/api_set.rb +32 -25
- data/lib/rubygems/resolver/api_specification.rb +29 -15
- data/lib/rubygems/resolver/best_set.rb +7 -9
- data/lib/rubygems/resolver/composed_set.rb +3 -5
- data/lib/rubygems/resolver/conflict.rb +12 -14
- data/lib/rubygems/resolver/current_set.rb +0 -2
- data/lib/rubygems/resolver/dependency_request.rb +3 -5
- data/lib/rubygems/resolver/git_set.rb +2 -4
- data/lib/rubygems/resolver/git_specification.rb +6 -8
- data/lib/rubygems/resolver/index_set.rb +4 -6
- data/lib/rubygems/resolver/index_specification.rb +38 -7
- data/lib/rubygems/resolver/installed_specification.rb +4 -6
- data/lib/rubygems/resolver/installer_set.rb +66 -24
- data/lib/rubygems/resolver/local_specification.rb +2 -4
- data/lib/rubygems/resolver/lock_set.rb +6 -8
- data/lib/rubygems/resolver/lock_specification.rb +4 -6
- data/lib/rubygems/resolver/molinillo/LICENSE +9 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb +7 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb +8 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/action.rb +1 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb +7 -6
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/set_payload.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/tag.rb +4 -3
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb +51 -12
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +41 -8
- data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +76 -8
- data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb +13 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb +3 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb +510 -165
- data/lib/rubygems/resolver/molinillo/lib/molinillo/resolver.rb +3 -2
- data/lib/rubygems/resolver/molinillo/lib/molinillo/state.rb +8 -4
- data/lib/rubygems/resolver/molinillo/lib/molinillo.rb +6 -5
- data/lib/rubygems/resolver/molinillo.rb +1 -1
- data/lib/rubygems/resolver/requirement_list.rb +0 -2
- data/lib/rubygems/resolver/set.rb +0 -3
- data/lib/rubygems/resolver/source_set.rb +0 -2
- data/lib/rubygems/resolver/spec_specification.rb +14 -2
- data/lib/rubygems/resolver/specification.rb +14 -4
- data/lib/rubygems/resolver/stats.rb +0 -2
- data/lib/rubygems/resolver/vendor_set.rb +1 -3
- data/lib/rubygems/resolver/vendor_specification.rb +3 -5
- data/lib/rubygems/resolver.rb +53 -51
- data/lib/rubygems/s3_uri_signer.rb +7 -15
- data/lib/rubygems/safe_yaml.rb +14 -16
- data/lib/rubygems/security/policies.rb +11 -11
- data/lib/rubygems/security/policy.rb +25 -29
- data/lib/rubygems/security/signer.rb +13 -16
- data/lib/rubygems/security/trust_dir.rb +4 -5
- data/lib/rubygems/security.rb +103 -69
- data/lib/rubygems/security_option.rb +7 -7
- data/lib/rubygems/source/git.rb +30 -30
- data/lib/rubygems/source/installed.rb +1 -3
- data/lib/rubygems/source/local.rb +4 -6
- data/lib/rubygems/source/lock.rb +0 -2
- data/lib/rubygems/source/specific_file.rb +1 -3
- data/lib/rubygems/source/vendor.rb +0 -2
- data/lib/rubygems/source.rb +44 -38
- data/lib/rubygems/source_list.rb +9 -16
- data/lib/rubygems/spec_fetcher.rb +49 -48
- data/lib/rubygems/specification.rb +338 -295
- data/lib/rubygems/specification_policy.rb +112 -61
- data/lib/rubygems/stub_specification.rb +21 -28
- data/lib/rubygems/text.rb +21 -20
- data/lib/rubygems/tsort/.document +1 -0
- data/lib/rubygems/tsort/LICENSE.txt +22 -0
- data/lib/rubygems/tsort/lib/tsort.rb +454 -0
- data/lib/rubygems/tsort.rb +3 -0
- data/lib/rubygems/uninstaller.rb +98 -45
- data/lib/rubygems/unknown_command_spell_checker.rb +21 -0
- data/lib/rubygems/uri.rb +126 -0
- data/lib/rubygems/uri_formatter.rb +2 -3
- data/lib/rubygems/user_interaction.rb +43 -54
- data/lib/rubygems/util/licenses.rb +115 -10
- data/lib/rubygems/util/list.rb +0 -2
- data/lib/rubygems/util.rb +18 -12
- data/lib/rubygems/validator.rb +6 -8
- data/lib/rubygems/version.rb +29 -20
- data/lib/rubygems/version_option.rb +11 -5
- data/lib/rubygems.rb +192 -289
- data/rubygems-update.gemspec +4 -4
- data/setup.rb +11 -22
- data/test/rubygems/data/excon-0.7.7.gemspec.rz +0 -0
- data/test/rubygems/data/null-required-ruby-version.gemspec.rz +0 -0
- data/test/rubygems/data/null-required-rubygems-version.gemspec.rz +0 -0
- data/test/rubygems/data/pry-0.4.7.gemspec.rz +0 -0
- data/test/rubygems/encrypted_private_key.pem +26 -26
- data/{lib/rubygems/test_case.rb → test/rubygems/helper.rb} +380 -314
- data/{lib → test}/rubygems/installer_test_case.rb +38 -24
- data/{lib → test}/rubygems/package/tar_test_case.rb +4 -6
- data/test/rubygems/packages/ascii_binder-0.1.10.1.gem +0 -0
- data/test/rubygems/packages/ill-formatted-platform-1.0.0.10.gem +0 -0
- data/test/rubygems/plugin/exception/rubygems_plugin.rb +1 -1
- data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -2
- data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +1 -1
- data/test/rubygems/private_ec_key.pem +9 -0
- data/test/rubygems/rubygems/commands/crash_command.rb +0 -2
- data/test/rubygems/rubygems_plugin.rb +2 -4
- data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -2
- data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +4 -6
- data/test/rubygems/test_bundled_ca.rb +43 -50
- data/test/rubygems/test_config.rb +5 -7
- data/test/rubygems/test_deprecate.rb +87 -10
- data/test/rubygems/test_exit.rb +11 -0
- data/test/rubygems/test_gem.rb +719 -639
- data/test/rubygems/test_gem_available_set.rb +24 -26
- data/test/rubygems/test_gem_bundler_version_finder.rb +37 -44
- data/test/rubygems/test_gem_command.rb +78 -49
- data/test/rubygems/test_gem_command_manager.rb +98 -35
- data/test/rubygems/test_gem_commands_build_command.rb +275 -57
- data/test/rubygems/test_gem_commands_cert_command.rb +180 -125
- data/test/rubygems/test_gem_commands_check_command.rb +9 -11
- data/test/rubygems/test_gem_commands_cleanup_command.rb +78 -69
- data/test/rubygems/test_gem_commands_contents_command.rb +73 -42
- data/test/rubygems/test_gem_commands_dependency_command.rb +38 -40
- data/test/rubygems/test_gem_commands_environment_command.rb +60 -38
- data/test/rubygems/test_gem_commands_fetch_command.rb +163 -32
- data/test/rubygems/test_gem_commands_generate_index_command.rb +8 -14
- data/test/rubygems/test_gem_commands_help_command.rb +34 -16
- data/test/rubygems/test_gem_commands_info_command.rb +33 -9
- data/test/rubygems/test_gem_commands_install_command.rb +401 -198
- data/test/rubygems/test_gem_commands_list_command.rb +5 -7
- data/test/rubygems/test_gem_commands_lock_command.rb +11 -13
- data/test/rubygems/test_gem_commands_mirror.rb +3 -5
- data/test/rubygems/test_gem_commands_open_command.rb +16 -19
- data/test/rubygems/test_gem_commands_outdated_command.rb +23 -7
- data/test/rubygems/test_gem_commands_owner_command.rb +100 -46
- data/test/rubygems/test_gem_commands_pristine_command.rb +131 -99
- data/test/rubygems/test_gem_commands_push_command.rb +134 -66
- data/test/rubygems/test_gem_commands_query_command.rb +91 -91
- data/test/rubygems/test_gem_commands_search_command.rb +2 -4
- data/test/rubygems/test_gem_commands_server_command.rb +6 -50
- data/test/rubygems/test_gem_commands_setup_command.rb +288 -179
- data/test/rubygems/test_gem_commands_signin_command.rb +162 -28
- data/test/rubygems/test_gem_commands_signout_command.rb +3 -10
- data/test/rubygems/test_gem_commands_sources_command.rb +139 -32
- data/test/rubygems/test_gem_commands_specification_command.rb +81 -55
- data/test/rubygems/test_gem_commands_stale_command.rb +4 -6
- data/test/rubygems/test_gem_commands_uninstall_command.rb +80 -82
- data/test/rubygems/test_gem_commands_unpack_command.rb +32 -34
- data/test/rubygems/test_gem_commands_update_command.rb +335 -88
- data/test/rubygems/test_gem_commands_which_command.rb +12 -14
- data/test/rubygems/test_gem_commands_yank_command.rb +80 -44
- data/test/rubygems/test_gem_config_file.rb +114 -97
- data/test/rubygems/test_gem_dependency.rb +87 -87
- data/test/rubygems/test_gem_dependency_installer.rb +277 -391
- data/test/rubygems/test_gem_dependency_list.rb +57 -59
- data/test/rubygems/test_gem_dependency_resolution_error.rb +5 -7
- data/test/rubygems/test_gem_doctor.rb +73 -47
- data/test/rubygems/test_gem_ext_builder.rb +115 -109
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore +1 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.lock +243 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.toml +10 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/build.rb +21 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +10 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/src/lib.rs +27 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/.gitignore +1 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +243 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +10 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/build.rb +21 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +8 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +39 -0
- data/test/rubygems/test_gem_ext_cargo_builder.rb +178 -0
- data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +33 -0
- data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +75 -0
- data/test/rubygems/test_gem_ext_cmake_builder.rb +31 -38
- data/test/rubygems/test_gem_ext_configure_builder.rb +23 -39
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +66 -82
- data/test/rubygems/test_gem_ext_rake_builder.rb +49 -32
- data/test/rubygems/test_gem_gem_runner.rb +51 -8
- data/test/rubygems/test_gem_gemcutter_utilities.rb +87 -76
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +4 -6
- data/test/rubygems/test_gem_indexer.rb +62 -64
- data/test/rubygems/test_gem_install_update_options.rb +31 -21
- data/test/rubygems/test_gem_installer.rb +798 -491
- data/test/rubygems/test_gem_local_remote_options.rb +11 -13
- data/test/rubygems/test_gem_name_tuple.rb +4 -6
- data/test/rubygems/test_gem_package.rb +318 -283
- data/test/rubygems/test_gem_package_old.rb +18 -20
- data/test/rubygems/test_gem_package_tar_header.rb +64 -47
- data/test/rubygems/test_gem_package_tar_reader.rb +8 -10
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +18 -20
- data/test/rubygems/test_gem_package_tar_writer.rb +96 -100
- data/test/rubygems/test_gem_package_task.rb +58 -25
- data/test/rubygems/test_gem_path_support.rb +15 -21
- data/test/rubygems/test_gem_platform.rb +354 -201
- data/test/rubygems/test_gem_rdoc.rb +19 -21
- data/test/rubygems/test_gem_remote_fetcher.rb +376 -337
- data/test/rubygems/test_gem_request.rb +114 -86
- data/test/rubygems/test_gem_request_connection_pools.rb +30 -34
- data/test/rubygems/test_gem_request_set.rb +123 -124
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +222 -226
- data/test/rubygems/test_gem_request_set_lockfile.rb +93 -95
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +68 -70
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +136 -138
- data/test/rubygems/test_gem_requirement.rb +133 -54
- data/test/rubygems/test_gem_resolver.rb +149 -117
- data/test/rubygems/test_gem_resolver_activation_request.rb +6 -8
- data/test/rubygems/test_gem_resolver_api_set.rb +79 -78
- data/test/rubygems/test_gem_resolver_api_specification.rb +47 -49
- data/test/rubygems/test_gem_resolver_best_set.rb +43 -22
- data/test/rubygems/test_gem_resolver_composed_set.rb +1 -3
- data/test/rubygems/test_gem_resolver_conflict.rb +12 -14
- data/test/rubygems/test_gem_resolver_dependency_request.rb +15 -17
- data/test/rubygems/test_gem_resolver_git_set.rb +22 -24
- data/test/rubygems/test_gem_resolver_git_specification.rb +22 -23
- data/test/rubygems/test_gem_resolver_index_set.rb +14 -16
- data/test/rubygems/test_gem_resolver_index_specification.rb +16 -18
- data/test/rubygems/test_gem_resolver_installed_specification.rb +5 -7
- data/test/rubygems/test_gem_resolver_installer_set.rb +104 -44
- data/test/rubygems/test_gem_resolver_local_specification.rb +7 -9
- data/test/rubygems/test_gem_resolver_lock_set.rb +15 -17
- data/test/rubygems/test_gem_resolver_lock_specification.rb +17 -19
- data/test/rubygems/test_gem_resolver_requirement_list.rb +1 -3
- data/test/rubygems/test_gem_resolver_specification.rb +8 -12
- data/test/rubygems/test_gem_resolver_vendor_set.rb +9 -11
- data/test/rubygems/test_gem_resolver_vendor_specification.rb +10 -12
- data/test/rubygems/test_gem_security.rb +104 -78
- data/test/rubygems/test_gem_security_policy.rb +92 -97
- data/test/rubygems/test_gem_security_signer.rb +45 -47
- data/test/rubygems/test_gem_security_trust_dir.rb +12 -14
- data/test/rubygems/test_gem_silent_ui.rb +46 -42
- data/test/rubygems/test_gem_source.rb +53 -52
- data/test/rubygems/test_gem_source_fetch_problem.rb +16 -8
- data/test/rubygems/test_gem_source_git.rb +69 -69
- data/test/rubygems/test_gem_source_installed.rb +16 -18
- data/test/rubygems/test_gem_source_list.rb +5 -6
- data/test/rubygems/test_gem_source_local.rb +15 -17
- data/test/rubygems/test_gem_source_lock.rb +31 -33
- data/test/rubygems/test_gem_source_specific_file.rb +18 -20
- data/test/rubygems/test_gem_source_subpath_problem.rb +49 -0
- data/test/rubygems/test_gem_source_vendor.rb +13 -15
- data/test/rubygems/test_gem_spec_fetcher.rb +74 -67
- data/test/rubygems/test_gem_specification.rb +888 -1024
- data/test/rubygems/test_gem_stream_ui.rb +23 -23
- data/test/rubygems/test_gem_stub_specification.rb +39 -57
- data/test/rubygems/test_gem_text.rb +8 -4
- data/test/rubygems/test_gem_uninstaller.rb +233 -104
- data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +3 -5
- data/test/rubygems/test_gem_uri.rb +39 -0
- data/test/rubygems/test_gem_uri_formatter.rb +14 -16
- data/test/rubygems/test_gem_util.rb +37 -35
- data/test/rubygems/test_gem_validator.rb +10 -12
- data/test/rubygems/test_gem_version.rb +31 -31
- data/test/rubygems/test_gem_version_option.rb +16 -18
- data/test/rubygems/test_kernel.rb +46 -60
- data/test/rubygems/test_project_sanity.rb +8 -3
- data/test/rubygems/test_remote_fetch_error.rb +7 -9
- data/test/rubygems/test_require.rb +240 -167
- data/test/rubygems/test_rubygems.rb +74 -0
- data/{lib/rubygems/test_utilities.rb → test/rubygems/utilities.rb} +30 -39
- data/test/test_changelog_generator.rb +17 -0
- metadata +158 -146
- data/.bundle/config +0 -2
- data/.rubocop.yml +0 -91
- data/Gemfile +0 -8
- data/Gemfile.lock +0 -43
- data/Rakefile +0 -428
- data/bundler/CODE_OF_CONDUCT.md +0 -136
- data/bundler/lib/bundler/gemdeps.rb +0 -29
- data/bundler/lib/bundler/psyched_yaml.rb +0 -37
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/monotonic_time.rb +0 -66
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +0 -26
- data/bundler/man/bundle-add.1.txt +0 -58
- data/bundler/man/bundle-binstubs.1.txt +0 -48
- data/bundler/man/bundle-cache.1.txt +0 -78
- data/bundler/man/bundle-check.1.txt +0 -33
- data/bundler/man/bundle-clean.1.txt +0 -26
- data/bundler/man/bundle-config.1.txt +0 -528
- data/bundler/man/bundle-doctor.1.txt +0 -44
- data/bundler/man/bundle-exec.1.txt +0 -178
- data/bundler/man/bundle-gem.1.txt +0 -91
- data/bundler/man/bundle-info.1.txt +0 -21
- data/bundler/man/bundle-init.1.txt +0 -34
- data/bundler/man/bundle-inject.1.txt +0 -32
- data/bundler/man/bundle-install.1.txt +0 -401
- data/bundler/man/bundle-list.1.txt +0 -43
- data/bundler/man/bundle-lock.1.txt +0 -93
- data/bundler/man/bundle-open.1.txt +0 -29
- data/bundler/man/bundle-outdated.1.txt +0 -131
- data/bundler/man/bundle-platform.1.txt +0 -57
- data/bundler/man/bundle-pristine.1.txt +0 -44
- data/bundler/man/bundle-remove.1.txt +0 -34
- data/bundler/man/bundle-show.1.txt +0 -27
- data/bundler/man/bundle-update.1.txt +0 -390
- data/bundler/man/bundle-viz.1.txt +0 -39
- data/bundler/man/bundle.1.txt +0 -116
- data/bundler/man/gemfile.5.txt +0 -649
- data/lib/rubygems/psych_additions.rb +0 -10
- data/lib/rubygems/server.rb +0 -879
- data/lib/rubygems/source_local.rb +0 -7
- data/lib/rubygems/source_specific_file.rb +0 -6
- data/lib/rubygems/syck_hack.rb +0 -79
- data/lib/rubygems/uri_parser.rb +0 -36
- data/lib/rubygems/uri_parsing.rb +0 -23
- data/lib/ubygems.rb +0 -14
- data/test/rubygems/bogussources.rb +0 -9
- data/test/rubygems/data/null-type.gemspec.rz +0 -0
- data/test/rubygems/test_gem_server.rb +0 -612
- data/tmp/.keep +0 -0
- data/util/CL2notes +0 -55
- data/util/bisect +0 -10
- data/util/ci.sh +0 -62
- data/util/cops/deprecations.rb +0 -52
- data/util/create_certs.rb +0 -171
- data/util/create_certs.sh +0 -27
- data/util/create_encrypted_key.rb +0 -16
- data/util/generate_spdx_license_list.rb +0 -63
- data/util/patch_with_prs.rb +0 -77
- data/util/rubocop +0 -8
- data/util/update_bundled_ca_certificates.rb +0 -137
- data/util/update_changelog.rb +0 -64
- /data/bundler/{man/bundle-check.ronn → lib/bundler/man/bundle-check.1.ronn} +0 -0
- /data/bundler/{man/bundle-clean.ronn → lib/bundler/man/bundle-clean.1.ronn} +0 -0
- /data/bundler/{man/bundle-doctor.ronn → lib/bundler/man/bundle-doctor.1.ronn} +0 -0
- /data/bundler/{man/bundle-info.ronn → lib/bundler/man/bundle-info.1.ronn} +0 -0
- /data/bundler/{man/bundle-init.ronn → lib/bundler/man/bundle-init.1.ronn} +0 -0
- /data/bundler/{man/bundle-lock.ronn → lib/bundler/man/bundle-lock.1.ronn} +0 -0
- /data/bundler/{man/bundle-open.ronn → lib/bundler/man/bundle-open.1.ronn} +0 -0
- /data/bundler/{man/bundle-pristine.ronn → lib/bundler/man/bundle-pristine.1.ronn} +0 -0
- /data/bundler/{man/bundle-remove.ronn → lib/bundler/man/bundle-remove.1.ronn} +0 -0
- /data/bundler/{man/bundle-show.ronn → lib/bundler/man/bundle-show.1.ronn} +0 -0
data/lib/rubygems.rb
CHANGED
@@ -1,23 +1,22 @@
|
|
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.
|
6
5
|
# See LICENSE.txt for permissions.
|
7
6
|
#++
|
8
7
|
|
9
|
-
require
|
8
|
+
require "rbconfig"
|
10
9
|
|
11
10
|
module Gem
|
12
|
-
VERSION = "3.
|
11
|
+
VERSION = "3.3.22".freeze
|
13
12
|
end
|
14
13
|
|
15
14
|
# Must be first since it unloads the prelude from 1.9.2
|
16
|
-
|
15
|
+
require_relative "rubygems/compatibility"
|
17
16
|
|
18
|
-
|
19
|
-
|
20
|
-
|
17
|
+
require_relative "rubygems/defaults"
|
18
|
+
require_relative "rubygems/deprecate"
|
19
|
+
require_relative "rubygems/errors"
|
21
20
|
|
22
21
|
##
|
23
22
|
# RubyGems is the Ruby standard for publishing and managing third party
|
@@ -43,13 +42,13 @@ require 'rubygems/errors'
|
|
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
|
-
# which adds a
|
51
|
+
# which adds a <tt>gem graph</tt> command.
|
53
52
|
#
|
54
53
|
# == RubyGems Defaults, Packaging
|
55
54
|
#
|
@@ -113,12 +112,16 @@ require 'rubygems/errors'
|
|
113
112
|
# -The RubyGems Team
|
114
113
|
|
115
114
|
module Gem
|
116
|
-
RUBYGEMS_DIR =
|
115
|
+
RUBYGEMS_DIR = __dir__
|
117
116
|
|
118
117
|
# Taint support is deprecated in Ruby 2.7.
|
119
118
|
# This allows switching ".untaint" to ".tap(&Gem::UNTAINT)",
|
120
119
|
# to avoid deprecation warnings in Ruby 2.7.
|
121
|
-
UNTAINT = RUBY_VERSION <
|
120
|
+
UNTAINT = RUBY_VERSION < "2.7" ? :untaint.to_sym : proc {}
|
121
|
+
|
122
|
+
# When https://bugs.ruby-lang.org/issues/17259 is available, there is no need to override Kernel#warn
|
123
|
+
KERNEL_WARN_IGNORES_INTERNAL_ENTRIES = RUBY_ENGINE == "truffleruby" ||
|
124
|
+
(RUBY_ENGINE == "ruby" && RUBY_VERSION >= "3.0")
|
122
125
|
|
123
126
|
##
|
124
127
|
# An Array of Regexps that match windows Ruby platforms.
|
@@ -148,6 +151,7 @@ module Gem
|
|
148
151
|
doc
|
149
152
|
extensions
|
150
153
|
gems
|
154
|
+
plugins
|
151
155
|
specifications
|
152
156
|
].freeze
|
153
157
|
|
@@ -159,22 +163,12 @@ module Gem
|
|
159
163
|
specifications/default
|
160
164
|
].freeze
|
161
165
|
|
162
|
-
##
|
163
|
-
# Exception classes used in a Gem.read_binary +rescue+ statement
|
164
|
-
|
165
|
-
READ_BINARY_ERRORS = [Errno::EACCES, Errno::EROFS, Errno::ENOSYS, Errno::ENOTSUP].freeze
|
166
|
-
|
167
|
-
##
|
168
|
-
# Exception classes used in Gem.write_binary +rescue+ statement
|
169
|
-
|
170
|
-
WRITE_BINARY_ERRORS = [Errno::ENOSYS, Errno::ENOTSUP].freeze
|
171
|
-
|
172
166
|
@@win_platform = nil
|
173
167
|
|
174
168
|
@configuration = nil
|
175
169
|
@gemdeps = nil
|
176
170
|
@loaded_specs = {}
|
177
|
-
LOADED_SPECS_MUTEX = Mutex.new
|
171
|
+
LOADED_SPECS_MUTEX = Thread::Mutex.new
|
178
172
|
@path_to_default_spec_map = {}
|
179
173
|
@platforms = []
|
180
174
|
@ruby = nil
|
@@ -245,9 +239,6 @@ module Gem
|
|
245
239
|
# you to specify specific gem versions.
|
246
240
|
|
247
241
|
def self.bin_path(name, exec_name = nil, *requirements)
|
248
|
-
# TODO: fails test_self_bin_path_bin_file_gone_in_latest
|
249
|
-
# Gem::Specification.find_by_name(name, *requirements).bin_file exec_name
|
250
|
-
|
251
242
|
requirements = Gem::Requirement.default if
|
252
243
|
requirements.empty?
|
253
244
|
|
@@ -271,9 +262,6 @@ module Gem
|
|
271
262
|
|
272
263
|
unless spec = specs.first
|
273
264
|
msg = "can't find gem #{dep} with executable #{exec_name}"
|
274
|
-
if name == "bundler" && bundler_message = Gem::BundlerVersionFinder.missing_version_message
|
275
|
-
msg = bundler_message
|
276
|
-
end
|
277
265
|
raise Gem::GemNotFoundException, msg
|
278
266
|
end
|
279
267
|
|
@@ -305,18 +293,25 @@ module Gem
|
|
305
293
|
# The mode needed to read a file as straight binary.
|
306
294
|
|
307
295
|
def self.binary_mode
|
308
|
-
|
296
|
+
"rb"
|
309
297
|
end
|
310
298
|
|
311
299
|
##
|
312
300
|
# The path where gem executables are to be installed.
|
313
301
|
|
314
302
|
def self.bindir(install_dir=Gem.dir)
|
315
|
-
return File.join install_dir,
|
303
|
+
return File.join install_dir, "bin" unless
|
316
304
|
install_dir.to_s == Gem.default_dir.to_s
|
317
305
|
Gem.default_bindir
|
318
306
|
end
|
319
307
|
|
308
|
+
##
|
309
|
+
# The path were rubygems plugins are to be installed.
|
310
|
+
|
311
|
+
def self.plugindir(install_dir=Gem.dir)
|
312
|
+
File.join install_dir, "plugins"
|
313
|
+
end
|
314
|
+
|
320
315
|
##
|
321
316
|
# Reset the +dir+ and +path+ values. The next time +dir+ or +path+
|
322
317
|
# is requested, the values will be calculated from scratch. This is
|
@@ -329,13 +324,6 @@ module Gem
|
|
329
324
|
Gem::Security.reset if defined?(Gem::Security)
|
330
325
|
end
|
331
326
|
|
332
|
-
##
|
333
|
-
# The path to standard location of the user's .gemrc file.
|
334
|
-
|
335
|
-
def self.config_file
|
336
|
-
@config_file ||= File.join Gem.user_home, '.gemrc'
|
337
|
-
end
|
338
|
-
|
339
327
|
##
|
340
328
|
# The standard configuration object for gems.
|
341
329
|
|
@@ -365,7 +353,7 @@ module Gem
|
|
365
353
|
# A Zlib::Deflate.deflate wrapper
|
366
354
|
|
367
355
|
def self.deflate(data)
|
368
|
-
require
|
356
|
+
require "zlib"
|
369
357
|
Zlib::Deflate.deflate data
|
370
358
|
end
|
371
359
|
|
@@ -387,17 +375,17 @@ module Gem
|
|
387
375
|
target = {}
|
388
376
|
env.each_pair do |k,v|
|
389
377
|
case k
|
390
|
-
when
|
378
|
+
when "GEM_HOME", "GEM_PATH", "GEM_SPEC_CACHE"
|
391
379
|
case v
|
392
380
|
when nil, String
|
393
381
|
target[k] = v
|
394
382
|
when Array
|
395
383
|
unless Gem::Deprecate.skip
|
396
|
-
warn <<-
|
384
|
+
warn <<-EOWARN
|
397
385
|
Array values in the parameter to `Gem.paths=` are deprecated.
|
398
386
|
Please use a String or nil.
|
399
387
|
An Array (#{env.inspect}) was passed in from #{caller[3]}
|
400
|
-
|
388
|
+
EOWARN
|
401
389
|
end
|
402
390
|
target[k] = v.join File::PATH_SEPARATOR
|
403
391
|
end
|
@@ -411,8 +399,6 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
411
399
|
|
412
400
|
##
|
413
401
|
# The path where gems are to be installed.
|
414
|
-
#--
|
415
|
-
# FIXME deprecate these once everything else has been done -ebh
|
416
402
|
|
417
403
|
def self.dir
|
418
404
|
paths.home
|
@@ -456,8 +442,6 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
456
442
|
old_umask = File.umask
|
457
443
|
File.umask old_umask | 002
|
458
444
|
|
459
|
-
require 'fileutils'
|
460
|
-
|
461
445
|
options = {}
|
462
446
|
|
463
447
|
options[:mode] = mode if mode
|
@@ -465,7 +449,13 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
465
449
|
subdirs.each do |name|
|
466
450
|
subdir = File.join dir, name
|
467
451
|
next if File.exist? subdir
|
468
|
-
|
452
|
+
|
453
|
+
require "fileutils"
|
454
|
+
|
455
|
+
begin
|
456
|
+
FileUtils.mkdir_p subdir, **options
|
457
|
+
rescue SystemCallError
|
458
|
+
end
|
469
459
|
end
|
470
460
|
ensure
|
471
461
|
File.umask old_umask
|
@@ -476,7 +466,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
476
466
|
# distinction as extensions cannot be shared between the two.
|
477
467
|
|
478
468
|
def self.extension_api_version # :nodoc:
|
479
|
-
if
|
469
|
+
if "no" == RbConfig::CONFIG["ENABLE_SHARED"]
|
480
470
|
"#{ruby_api_version}-static"
|
481
471
|
else
|
482
472
|
ruby_api_version
|
@@ -502,7 +492,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
502
492
|
|
503
493
|
gem_specifications = @gemdeps ? Gem.loaded_specs.values : Gem::Specification.stubs
|
504
494
|
|
505
|
-
files.concat gem_specifications.map {
|
495
|
+
files.concat gem_specifications.map {|spec|
|
506
496
|
spec.matches_for_glob("#{glob}#{Gem.suffix_pattern}")
|
507
497
|
}.flatten
|
508
498
|
|
@@ -517,7 +507,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
517
507
|
glob_with_suffixes = "#{glob}#{Gem.suffix_pattern}"
|
518
508
|
$LOAD_PATH.map do |load_path|
|
519
509
|
Gem::Util.glob_files_in_dir(glob_with_suffixes, load_path)
|
520
|
-
end.flatten.select {
|
510
|
+
end.flatten.select {|file| File.file? file.tap(&Gem::UNTAINT) }
|
521
511
|
end
|
522
512
|
|
523
513
|
##
|
@@ -537,7 +527,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
537
527
|
|
538
528
|
files = find_files_from_load_path glob if check_load_path
|
539
529
|
|
540
|
-
files.concat Gem::Specification.latest_specs(true).map {
|
530
|
+
files.concat Gem::Specification.latest_specs(true).map {|spec|
|
541
531
|
spec.matches_for_glob("#{glob}#{Gem.suffix_pattern}")
|
542
532
|
}.flatten
|
543
533
|
|
@@ -548,87 +538,16 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
548
538
|
return files
|
549
539
|
end
|
550
540
|
|
551
|
-
##
|
552
|
-
# Finds the user's home directory.
|
553
|
-
#--
|
554
|
-
# Some comments from the ruby-talk list regarding finding the home
|
555
|
-
# directory:
|
556
|
-
#
|
557
|
-
# I have HOME, USERPROFILE and HOMEDRIVE + HOMEPATH. Ruby seems
|
558
|
-
# to be depending on HOME in those code samples. I propose that
|
559
|
-
# it should fallback to USERPROFILE and HOMEDRIVE + HOMEPATH (at
|
560
|
-
# least on Win32).
|
561
|
-
#++
|
562
|
-
#--
|
563
|
-
#
|
564
|
-
#++
|
565
|
-
|
566
|
-
def self.find_home
|
567
|
-
Dir.home.dup
|
568
|
-
rescue
|
569
|
-
if Gem.win_platform?
|
570
|
-
File.expand_path File.join(ENV['HOMEDRIVE'] || ENV['SystemDrive'], '/')
|
571
|
-
else
|
572
|
-
File.expand_path "/"
|
573
|
-
end
|
574
|
-
end
|
575
|
-
|
576
|
-
private_class_method :find_home
|
577
|
-
|
578
|
-
# TODO: remove in RubyGems 4.0
|
579
|
-
|
580
|
-
##
|
581
|
-
# Zlib::GzipReader wrapper that unzips +data+.
|
582
|
-
|
583
|
-
def self.gunzip(data)
|
584
|
-
Gem::Util.gunzip data
|
585
|
-
end
|
586
|
-
|
587
|
-
class << self
|
588
|
-
|
589
|
-
extend Gem::Deprecate
|
590
|
-
deprecate :gunzip, "Gem::Util.gunzip", 2018, 12
|
591
|
-
|
592
|
-
end
|
593
|
-
|
594
|
-
##
|
595
|
-
# Zlib::GzipWriter wrapper that zips +data+.
|
596
|
-
|
597
|
-
def self.gzip(data)
|
598
|
-
Gem::Util.gzip data
|
599
|
-
end
|
600
|
-
|
601
|
-
class << self
|
602
|
-
|
603
|
-
extend Gem::Deprecate
|
604
|
-
deprecate :gzip, "Gem::Util.gzip", 2018, 12
|
605
|
-
|
606
|
-
end
|
607
|
-
|
608
|
-
##
|
609
|
-
# A Zlib::Inflate#inflate wrapper
|
610
|
-
|
611
|
-
def self.inflate(data)
|
612
|
-
Gem::Util.inflate data
|
613
|
-
end
|
614
|
-
|
615
|
-
class << self
|
616
|
-
|
617
|
-
extend Gem::Deprecate
|
618
|
-
deprecate :inflate, "Gem::Util.inflate", 2018, 12
|
619
|
-
|
620
|
-
end
|
621
|
-
|
622
541
|
##
|
623
542
|
# Top level install helper method. Allows you to install gems interactively:
|
624
543
|
#
|
625
544
|
# % irb
|
626
545
|
# >> Gem.install "minitest"
|
627
|
-
# Fetching: minitest-
|
546
|
+
# Fetching: minitest-5.14.0.gem (100%)
|
628
547
|
# => [#<Gem::Specification:0x1013b4528 @name="minitest", ...>]
|
629
548
|
|
630
549
|
def self.install(name, version = Gem::Requirement.default, *options)
|
631
|
-
|
550
|
+
require_relative "rubygems/dependency_installer"
|
632
551
|
inst = Gem::DependencyInstaller.new(*options)
|
633
552
|
inst.install name, version
|
634
553
|
inst.installed_gems
|
@@ -657,14 +576,14 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
657
576
|
return i if path.instance_variable_defined?(:@gem_prelude_index)
|
658
577
|
end
|
659
578
|
|
660
|
-
index = $LOAD_PATH.index RbConfig::CONFIG[
|
579
|
+
index = $LOAD_PATH.index RbConfig::CONFIG["sitelibdir"]
|
661
580
|
|
662
581
|
index || 0
|
663
582
|
end
|
664
583
|
|
665
584
|
##
|
666
|
-
# The number of paths in the
|
667
|
-
# prioritize
|
585
|
+
# The number of paths in the +$LOAD_PATH+ from activated gems. Used to
|
586
|
+
# prioritize +-I+ and +ENV['RUBYLIB']+ entries during +require+.
|
668
587
|
|
669
588
|
def self.activated_gem_paths
|
670
589
|
@activated_gem_paths ||= 0
|
@@ -687,37 +606,11 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
687
606
|
|
688
607
|
def self.load_yaml
|
689
608
|
return if @yaml_loaded
|
690
|
-
return unless defined?(gem)
|
691
|
-
|
692
|
-
begin
|
693
|
-
gem 'psych', '>= 2.0.0'
|
694
|
-
rescue Gem::LoadError
|
695
|
-
# It's OK if the user does not have the psych gem installed. We will
|
696
|
-
# attempt to require the stdlib version
|
697
|
-
end
|
698
|
-
|
699
|
-
begin
|
700
|
-
# Try requiring the gem version *or* stdlib version of psych.
|
701
|
-
require 'psych'
|
702
|
-
rescue ::LoadError
|
703
|
-
# If we can't load psych, thats fine, go on.
|
704
|
-
else
|
705
|
-
# If 'yaml' has already been required, then we have to
|
706
|
-
# be sure to switch it over to the newly loaded psych.
|
707
|
-
if defined?(YAML::ENGINE) && YAML::ENGINE.yamler != "psych"
|
708
|
-
YAML::ENGINE.yamler = "psych"
|
709
|
-
end
|
710
|
-
|
711
|
-
require 'rubygems/psych_additions'
|
712
|
-
require 'rubygems/psych_tree'
|
713
|
-
end
|
714
609
|
|
715
|
-
require
|
716
|
-
|
610
|
+
require "psych"
|
611
|
+
require_relative "rubygems/psych_tree"
|
717
612
|
|
718
|
-
|
719
|
-
# in our hack to deal with Syck's DefaultKey ugliness.
|
720
|
-
require 'rubygems/syck_hack'
|
613
|
+
require_relative "rubygems/safe_yaml"
|
721
614
|
|
722
615
|
@yaml_loaded = true
|
723
616
|
end
|
@@ -848,9 +741,9 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
848
741
|
def self.prefix
|
849
742
|
prefix = File.dirname RUBYGEMS_DIR
|
850
743
|
|
851
|
-
if prefix != File.expand_path(RbConfig::CONFIG[
|
852
|
-
prefix != File.expand_path(RbConfig::CONFIG[
|
853
|
-
|
744
|
+
if prefix != File.expand_path(RbConfig::CONFIG["sitelibdir"]) &&
|
745
|
+
prefix != File.expand_path(RbConfig::CONFIG["libdir"]) &&
|
746
|
+
"lib" == File.basename(RUBYGEMS_DIR)
|
854
747
|
prefix
|
855
748
|
end
|
856
749
|
end
|
@@ -866,40 +759,42 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
866
759
|
# Safely read a file in binary mode on all platforms.
|
867
760
|
|
868
761
|
def self.read_binary(path)
|
869
|
-
|
870
|
-
|
871
|
-
f.read
|
762
|
+
open_file(path, "rb+") do |io|
|
763
|
+
io.read
|
872
764
|
end
|
873
|
-
rescue
|
874
|
-
|
875
|
-
|
876
|
-
end
|
877
|
-
rescue Errno::ENOLCK # NFS
|
878
|
-
if Thread.main != Thread.current
|
879
|
-
raise
|
880
|
-
else
|
881
|
-
File.open path, 'rb' do |f|
|
882
|
-
f.read
|
883
|
-
end
|
765
|
+
rescue Errno::EACCES, Errno::EROFS
|
766
|
+
open_file(path, "rb") do |io|
|
767
|
+
io.read
|
884
768
|
end
|
885
769
|
end
|
886
770
|
|
887
771
|
##
|
888
772
|
# Safely write a file in binary mode on all platforms.
|
889
773
|
def self.write_binary(path, data)
|
890
|
-
|
891
|
-
begin
|
892
|
-
io.flock(File::LOCK_EX)
|
893
|
-
rescue *WRITE_BINARY_ERRORS
|
894
|
-
end
|
774
|
+
open_file(path, "wb") do |io|
|
895
775
|
io.write data
|
896
776
|
end
|
777
|
+
end
|
778
|
+
|
779
|
+
##
|
780
|
+
# Open a file with given flags, and on Windows protect access with flock
|
781
|
+
|
782
|
+
def self.open_file(path, flags, &block)
|
783
|
+
File.open(path, flags) do |io|
|
784
|
+
if !java_platform? && win_platform?
|
785
|
+
begin
|
786
|
+
io.flock(File::LOCK_EX)
|
787
|
+
rescue Errno::ENOSYS, Errno::ENOTSUP
|
788
|
+
end
|
789
|
+
end
|
790
|
+
yield io
|
791
|
+
end
|
897
792
|
rescue Errno::ENOLCK # NFS
|
898
793
|
if Thread.main != Thread.current
|
899
794
|
raise
|
900
795
|
else
|
901
|
-
open(path,
|
902
|
-
io
|
796
|
+
File.open(path, flags) do |io|
|
797
|
+
yield io
|
903
798
|
end
|
904
799
|
end
|
905
800
|
end
|
@@ -909,8 +804,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
909
804
|
|
910
805
|
def self.ruby
|
911
806
|
if @ruby.nil?
|
912
|
-
@ruby =
|
913
|
-
"#{RbConfig::CONFIG['ruby_install_name']}#{RbConfig::CONFIG['EXEEXT']}")
|
807
|
+
@ruby = RbConfig.ruby
|
914
808
|
|
915
809
|
@ruby = "\"#{@ruby}\"" if @ruby =~ /\s/
|
916
810
|
end
|
@@ -922,13 +816,13 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
922
816
|
# Returns a String containing the API compatibility version of Ruby
|
923
817
|
|
924
818
|
def self.ruby_api_version
|
925
|
-
@ruby_api_version ||= RbConfig::CONFIG[
|
819
|
+
@ruby_api_version ||= RbConfig::CONFIG["ruby_version"].dup
|
926
820
|
end
|
927
821
|
|
928
822
|
def self.env_requirement(gem_name)
|
929
823
|
@env_requirements_by_name ||= {}
|
930
824
|
@env_requirements_by_name[gem_name] ||= begin
|
931
|
-
req = ENV["GEM_REQUIREMENT_#{gem_name.upcase}"] ||
|
825
|
+
req = ENV["GEM_REQUIREMENT_#{gem_name.upcase}"] || ">= 0".freeze
|
932
826
|
Gem::Requirement.create(req)
|
933
827
|
end
|
934
828
|
end
|
@@ -942,7 +836,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
942
836
|
fetcher = Gem::SpecFetcher.fetcher
|
943
837
|
spec_tuples, = fetcher.spec_for_dependency dependency
|
944
838
|
|
945
|
-
spec, = spec_tuples.
|
839
|
+
spec, = spec_tuples.last
|
946
840
|
|
947
841
|
spec
|
948
842
|
end
|
@@ -951,8 +845,8 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
951
845
|
# Returns the latest release version of RubyGems.
|
952
846
|
|
953
847
|
def self.latest_rubygems_version
|
954
|
-
latest_version_for(
|
955
|
-
raise
|
848
|
+
latest_version_for("rubygems-update") ||
|
849
|
+
raise("Can't find 'rubygems-update' in any repo. Check `gem source list`.")
|
956
850
|
end
|
957
851
|
|
958
852
|
##
|
@@ -960,7 +854,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
960
854
|
|
961
855
|
def self.latest_version_for(name)
|
962
856
|
spec = latest_spec_for name
|
963
|
-
spec
|
857
|
+
spec && spec.version
|
964
858
|
end
|
965
859
|
|
966
860
|
##
|
@@ -970,9 +864,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
970
864
|
return @ruby_version if defined? @ruby_version
|
971
865
|
version = RUBY_VERSION.dup
|
972
866
|
|
973
|
-
|
974
|
-
version << ".#{RUBY_PATCHLEVEL}"
|
975
|
-
elsif defined?(RUBY_DESCRIPTION)
|
867
|
+
unless defined?(RUBY_PATCHLEVEL) && RUBY_PATCHLEVEL != -1
|
976
868
|
if RUBY_ENGINE == "ruby"
|
977
869
|
desc = RUBY_DESCRIPTION[/\Aruby #{Regexp.quote(RUBY_VERSION)}([^ ]+) /, 1]
|
978
870
|
else
|
@@ -1023,21 +915,38 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1023
915
|
@suffix_pattern ||= "{#{suffixes.join(',')}}"
|
1024
916
|
end
|
1025
917
|
|
918
|
+
##
|
919
|
+
# Regexp for require-able path suffixes.
|
920
|
+
|
1026
921
|
def self.suffix_regexp
|
1027
922
|
@suffix_regexp ||= /#{Regexp.union(suffixes)}\z/
|
1028
923
|
end
|
1029
924
|
|
925
|
+
##
|
926
|
+
# Glob pattern for require-able plugin suffixes.
|
927
|
+
|
928
|
+
def self.plugin_suffix_pattern
|
929
|
+
@plugin_suffix_pattern ||= "_plugin#{suffix_pattern}"
|
930
|
+
end
|
931
|
+
|
932
|
+
##
|
933
|
+
# Regexp for require-able plugin suffixes.
|
934
|
+
|
935
|
+
def self.plugin_suffix_regexp
|
936
|
+
@plugin_suffix_regexp ||= /_plugin#{suffix_regexp}\z/
|
937
|
+
end
|
938
|
+
|
1030
939
|
##
|
1031
940
|
# Suffixes for require-able paths.
|
1032
941
|
|
1033
942
|
def self.suffixes
|
1034
|
-
@suffixes ||= [
|
1035
|
-
|
1036
|
-
*%w
|
943
|
+
@suffixes ||= ["",
|
944
|
+
".rb",
|
945
|
+
*%w[DLEXT DLEXT2].map do |key|
|
1037
946
|
val = RbConfig::CONFIG[key]
|
1038
|
-
next unless val
|
947
|
+
next unless val && !val.empty?
|
1039
948
|
".#{val}"
|
1040
|
-
end
|
949
|
+
end,
|
1041
950
|
].compact.uniq
|
1042
951
|
end
|
1043
952
|
|
@@ -1061,7 +970,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1061
970
|
# Lazily loads DefaultUserInteraction and returns the default UI.
|
1062
971
|
|
1063
972
|
def self.ui
|
1064
|
-
|
973
|
+
require_relative "rubygems/user_interaction"
|
1065
974
|
|
1066
975
|
Gem::DefaultUserInteraction.ui
|
1067
976
|
end
|
@@ -1074,24 +983,17 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1074
983
|
paths.flatten!
|
1075
984
|
paths.compact!
|
1076
985
|
hash = { "GEM_HOME" => home, "GEM_PATH" => paths.empty? ? home : paths.join(File::PATH_SEPARATOR) }
|
1077
|
-
hash.delete_if {
|
986
|
+
hash.delete_if {|_, v| v.nil? }
|
1078
987
|
self.paths = hash
|
1079
988
|
end
|
1080
989
|
|
1081
|
-
##
|
1082
|
-
# The home directory for the user.
|
1083
|
-
|
1084
|
-
def self.user_home
|
1085
|
-
@user_home ||= find_home.tap(&Gem::UNTAINT)
|
1086
|
-
end
|
1087
|
-
|
1088
990
|
##
|
1089
991
|
# Is this a windows platform?
|
1090
992
|
|
1091
993
|
def self.win_platform?
|
1092
994
|
if @@win_platform.nil?
|
1093
|
-
ruby_platform = RbConfig::CONFIG[
|
1094
|
-
@@win_platform = !!WIN_PATTERNS.find {
|
995
|
+
ruby_platform = RbConfig::CONFIG["host_os"]
|
996
|
+
@@win_platform = !!WIN_PATTERNS.find {|r| ruby_platform =~ r }
|
1095
997
|
end
|
1096
998
|
|
1097
999
|
@@win_platform
|
@@ -1104,12 +1006,18 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1104
1006
|
RUBY_PLATFORM == "java"
|
1105
1007
|
end
|
1106
1008
|
|
1009
|
+
##
|
1010
|
+
# Is this platform Solaris?
|
1011
|
+
|
1012
|
+
def self.solaris_platform?
|
1013
|
+
RUBY_PLATFORM =~ /solaris/
|
1014
|
+
end
|
1015
|
+
|
1107
1016
|
##
|
1108
1017
|
# Load +plugins+ as Ruby files
|
1109
1018
|
|
1110
1019
|
def self.load_plugin_files(plugins) # :nodoc:
|
1111
1020
|
plugins.each do |plugin|
|
1112
|
-
|
1113
1021
|
# Skip older versions of the GemCutter plugin: Its commands are in
|
1114
1022
|
# RubyGems proper now.
|
1115
1023
|
|
@@ -1125,15 +1033,11 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1125
1033
|
end
|
1126
1034
|
|
1127
1035
|
##
|
1128
|
-
# Find
|
1129
|
-
# them
|
1036
|
+
# Find rubygems plugin files in the standard location and load them
|
1130
1037
|
|
1131
1038
|
def self.load_plugins
|
1132
|
-
|
1133
|
-
|
1134
|
-
load_plugin_files find_files('rubygems_plugin', false)
|
1135
|
-
else
|
1136
|
-
load_plugin_files find_latest_files('rubygems_plugin', false)
|
1039
|
+
Gem.path.each do |gem_path|
|
1040
|
+
load_plugin_files Gem::Util.glob_files_in_dir("*#{Gem.plugin_suffix_pattern}", plugindir(gem_path))
|
1137
1041
|
end
|
1138
1042
|
end
|
1139
1043
|
|
@@ -1141,19 +1045,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1141
1045
|
# Find all 'rubygems_plugin' files in $LOAD_PATH and load them
|
1142
1046
|
|
1143
1047
|
def self.load_env_plugins
|
1144
|
-
|
1145
|
-
|
1146
|
-
files = []
|
1147
|
-
glob = "#{path}#{Gem.suffix_pattern}"
|
1148
|
-
$LOAD_PATH.each do |load_path|
|
1149
|
-
globbed = Gem::Util.glob_files_in_dir(glob, load_path)
|
1150
|
-
|
1151
|
-
globbed.each do |load_path_file|
|
1152
|
-
files << load_path_file if File.file?(load_path_file.tap(&Gem::UNTAINT))
|
1153
|
-
end
|
1154
|
-
end
|
1155
|
-
|
1156
|
-
load_plugin_files files
|
1048
|
+
load_plugin_files find_files_from_load_path("rubygems_plugin")
|
1157
1049
|
end
|
1158
1050
|
|
1159
1051
|
##
|
@@ -1179,14 +1071,14 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1179
1071
|
def self.use_gemdeps(path = nil)
|
1180
1072
|
raise_exception = path
|
1181
1073
|
|
1182
|
-
path ||= ENV[
|
1074
|
+
path ||= ENV["RUBYGEMS_GEMDEPS"]
|
1183
1075
|
return unless path
|
1184
1076
|
|
1185
1077
|
path = path.dup
|
1186
1078
|
|
1187
1079
|
if path == "-"
|
1188
1080
|
Gem::Util.traverse_parents Dir.pwd do |directory|
|
1189
|
-
dep_file = GEM_DEP_FILES.find {
|
1081
|
+
dep_file = GEM_DEP_FILES.find {|f| File.file?(f) }
|
1190
1082
|
|
1191
1083
|
next unless dep_file
|
1192
1084
|
|
@@ -1204,45 +1096,28 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1204
1096
|
end
|
1205
1097
|
|
1206
1098
|
ENV["BUNDLE_GEMFILE"] ||= File.expand_path(path)
|
1207
|
-
|
1208
|
-
|
1209
|
-
|
1210
|
-
|
1211
|
-
|
1212
|
-
|
1099
|
+
require_relative "rubygems/user_interaction"
|
1100
|
+
require "bundler"
|
1101
|
+
begin
|
1102
|
+
Gem::DefaultUserInteraction.use_ui(ui) do
|
1103
|
+
begin
|
1104
|
+
Bundler.ui.silence do
|
1105
|
+
@gemdeps = Bundler.setup
|
1106
|
+
end
|
1107
|
+
ensure
|
1108
|
+
Gem::DefaultUserInteraction.ui.close
|
1213
1109
|
end
|
1214
|
-
ensure
|
1215
|
-
Gem::DefaultUserInteraction.ui.close
|
1216
1110
|
end
|
1217
|
-
|
1218
|
-
end
|
1219
|
-
|
1220
|
-
rescue => e
|
1221
|
-
case e
|
1222
|
-
when Gem::LoadError, Gem::UnsatisfiableDependencyError, (defined?(Bundler::GemNotFound) ? Bundler::GemNotFound : Gem::LoadError)
|
1111
|
+
rescue Bundler::BundlerError => e
|
1223
1112
|
warn e.message
|
1224
|
-
warn "You may need to `
|
1113
|
+
warn "You may need to `bundle install` to install missing gems"
|
1225
1114
|
warn ""
|
1226
|
-
else
|
1227
|
-
raise
|
1228
1115
|
end
|
1229
1116
|
end
|
1230
1117
|
|
1231
|
-
class << self
|
1232
|
-
|
1233
|
-
##
|
1234
|
-
# TODO remove with RubyGems 4.0
|
1235
|
-
|
1236
|
-
alias detect_gemdeps use_gemdeps # :nodoc:
|
1237
|
-
|
1238
|
-
extend Gem::Deprecate
|
1239
|
-
deprecate :detect_gemdeps, "Gem.use_gemdeps", 2018, 12
|
1240
|
-
|
1241
|
-
end
|
1242
|
-
|
1243
1118
|
##
|
1244
1119
|
# If the SOURCE_DATE_EPOCH environment variable is set, returns it's value.
|
1245
|
-
# Otherwise, returns the time that
|
1120
|
+
# Otherwise, returns the time that +Gem.source_date_epoch_string+ was
|
1246
1121
|
# first called in the same format as SOURCE_DATE_EPOCH.
|
1247
1122
|
#
|
1248
1123
|
# NOTE(@duckinator): The implementation is a tad weird because we want to:
|
@@ -1284,6 +1159,11 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1284
1159
|
# methods, and then we switch over to `class << self` here. Pick one or the
|
1285
1160
|
# other.
|
1286
1161
|
class << self
|
1162
|
+
##
|
1163
|
+
# RubyGems distributors (like operating system package managers) can
|
1164
|
+
# disable RubyGems update by setting this to error message printed to
|
1165
|
+
# end-users on gem update --system instead of actual update.
|
1166
|
+
attr_accessor :disable_system_update_message
|
1287
1167
|
|
1288
1168
|
##
|
1289
1169
|
# Hash of loaded Gem::Specification keyed by name
|
@@ -1309,7 +1189,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1309
1189
|
#
|
1310
1190
|
|
1311
1191
|
def register_default_spec(spec)
|
1312
|
-
extended_require_paths = spec.require_paths.map {|f| f + "/"}
|
1192
|
+
extended_require_paths = spec.require_paths.map {|f| f + "/" }
|
1313
1193
|
new_format = extended_require_paths.any? {|path| spec.files.any? {|f| f.start_with? path } }
|
1314
1194
|
|
1315
1195
|
if new_format
|
@@ -1323,6 +1203,8 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1323
1203
|
next unless $~
|
1324
1204
|
end
|
1325
1205
|
|
1206
|
+
spec.activate if already_loaded?(file)
|
1207
|
+
|
1326
1208
|
@path_to_default_spec_map[file] = spec
|
1327
1209
|
@path_to_default_spec_map[file.sub(suffix_regexp, "")] = spec
|
1328
1210
|
end
|
@@ -1388,6 +1270,22 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1388
1270
|
|
1389
1271
|
attr_reader :pre_uninstall_hooks
|
1390
1272
|
|
1273
|
+
private
|
1274
|
+
|
1275
|
+
def already_loaded?(file)
|
1276
|
+
$LOADED_FEATURES.any? do |feature_path|
|
1277
|
+
feature_path.end_with?(file) && default_gem_load_paths.any? {|load_path_entry| feature_path == "#{load_path_entry}/#{file}" }
|
1278
|
+
end
|
1279
|
+
end
|
1280
|
+
|
1281
|
+
def default_gem_load_paths
|
1282
|
+
@default_gem_load_paths ||= $LOAD_PATH[load_path_insert_index..-1].map do |lp|
|
1283
|
+
expanded = File.expand_path(lp)
|
1284
|
+
next expanded unless File.exist?(expanded)
|
1285
|
+
|
1286
|
+
File.realpath(expanded)
|
1287
|
+
end
|
1288
|
+
end
|
1391
1289
|
end
|
1392
1290
|
|
1393
1291
|
##
|
@@ -1395,37 +1293,44 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1395
1293
|
|
1396
1294
|
MARSHAL_SPEC_DIR = "quick/Marshal.#{Gem.marshal_version}/".freeze
|
1397
1295
|
|
1398
|
-
autoload :BundlerVersionFinder, File.expand_path(
|
1399
|
-
autoload :ConfigFile, File.expand_path(
|
1400
|
-
autoload :Dependency, File.expand_path(
|
1401
|
-
autoload :DependencyList, File.expand_path(
|
1402
|
-
autoload :Installer, File.expand_path(
|
1403
|
-
autoload :Licenses, File.expand_path(
|
1404
|
-
autoload :NameTuple, File.expand_path(
|
1405
|
-
autoload :PathSupport, File.expand_path(
|
1406
|
-
autoload :
|
1407
|
-
autoload :
|
1408
|
-
autoload :
|
1409
|
-
autoload :
|
1410
|
-
autoload :
|
1411
|
-
autoload :
|
1412
|
-
autoload :
|
1413
|
-
autoload :
|
1414
|
-
autoload :
|
1415
|
-
autoload :Version, File.expand_path('rubygems/version', __dir__)
|
1416
|
-
|
1417
|
-
require "rubygems/specification"
|
1296
|
+
autoload :BundlerVersionFinder, File.expand_path("rubygems/bundler_version_finder", __dir__)
|
1297
|
+
autoload :ConfigFile, File.expand_path("rubygems/config_file", __dir__)
|
1298
|
+
autoload :Dependency, File.expand_path("rubygems/dependency", __dir__)
|
1299
|
+
autoload :DependencyList, File.expand_path("rubygems/dependency_list", __dir__)
|
1300
|
+
autoload :Installer, File.expand_path("rubygems/installer", __dir__)
|
1301
|
+
autoload :Licenses, File.expand_path("rubygems/util/licenses", __dir__)
|
1302
|
+
autoload :NameTuple, File.expand_path("rubygems/name_tuple", __dir__)
|
1303
|
+
autoload :PathSupport, File.expand_path("rubygems/path_support", __dir__)
|
1304
|
+
autoload :RequestSet, File.expand_path("rubygems/request_set", __dir__)
|
1305
|
+
autoload :Requirement, File.expand_path("rubygems/requirement", __dir__)
|
1306
|
+
autoload :Resolver, File.expand_path("rubygems/resolver", __dir__)
|
1307
|
+
autoload :Source, File.expand_path("rubygems/source", __dir__)
|
1308
|
+
autoload :SourceList, File.expand_path("rubygems/source_list", __dir__)
|
1309
|
+
autoload :SpecFetcher, File.expand_path("rubygems/spec_fetcher", __dir__)
|
1310
|
+
autoload :SpecificationPolicy, File.expand_path("rubygems/specification_policy", __dir__)
|
1311
|
+
autoload :Util, File.expand_path("rubygems/util", __dir__)
|
1312
|
+
autoload :Version, File.expand_path("rubygems/version", __dir__)
|
1418
1313
|
end
|
1419
1314
|
|
1420
|
-
|
1315
|
+
require_relative "rubygems/exceptions"
|
1316
|
+
require_relative "rubygems/specification"
|
1421
1317
|
|
1422
1318
|
# REFACTOR: This should be pulled out into some kind of hacks file.
|
1423
1319
|
begin
|
1424
1320
|
##
|
1425
1321
|
# Defaults the operating system (or packager) wants to provide for RubyGems.
|
1426
1322
|
|
1427
|
-
require
|
1323
|
+
require "rubygems/defaults/operating_system"
|
1428
1324
|
rescue LoadError
|
1325
|
+
# Ignored
|
1326
|
+
rescue StandardError => e
|
1327
|
+
path = e.backtrace_locations.reverse.find {|l| l.path.end_with?("rubygems/defaults/operating_system.rb") }.path
|
1328
|
+
msg = "#{e.message}\n" \
|
1329
|
+
"Loading the #{path} file caused an error. " \
|
1330
|
+
"This file is owned by your OS, not by rubygems upstream. " \
|
1331
|
+
"Please find out which OS package this file belongs to and follow the guidelines from your OS to report " \
|
1332
|
+
"the problem and ask for help."
|
1333
|
+
raise e.class, msg
|
1429
1334
|
end
|
1430
1335
|
|
1431
1336
|
begin
|
@@ -1440,8 +1345,6 @@ end
|
|
1440
1345
|
# Loads the default specs.
|
1441
1346
|
Gem::Specification.load_defaults
|
1442
1347
|
|
1443
|
-
|
1444
|
-
|
1445
|
-
|
1446
|
-
|
1447
|
-
Gem.use_gemdeps
|
1348
|
+
require_relative "rubygems/core_ext/kernel_gem"
|
1349
|
+
require_relative "rubygems/core_ext/kernel_require"
|
1350
|
+
require_relative "rubygems/core_ext/kernel_warn"
|