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/config_file.rb
CHANGED
@@ -5,8 +5,8 @@
|
|
5
5
|
# See LICENSE.txt for permissions.
|
6
6
|
#++
|
7
7
|
|
8
|
-
|
9
|
-
require
|
8
|
+
require_relative "user_interaction"
|
9
|
+
require "rbconfig"
|
10
10
|
|
11
11
|
##
|
12
12
|
# Gem::ConfigFile RubyGems options and gem command options from gemrc.
|
@@ -37,15 +37,15 @@ require 'rbconfig'
|
|
37
37
|
# - per environment (gemrc files listed in the GEMRC environment variable)
|
38
38
|
|
39
39
|
class Gem::ConfigFile
|
40
|
-
|
41
40
|
include Gem::UserInteraction
|
42
41
|
|
43
|
-
DEFAULT_BACKTRACE =
|
42
|
+
DEFAULT_BACKTRACE = true
|
44
43
|
DEFAULT_BULK_THRESHOLD = 1000
|
45
44
|
DEFAULT_VERBOSITY = true
|
46
45
|
DEFAULT_UPDATE_SOURCES = true
|
47
46
|
DEFAULT_CONCURRENT_DOWNLOADS = 8
|
48
47
|
DEFAULT_CERT_EXPIRATION_LENGTH_DAYS = 365
|
48
|
+
DEFAULT_IPV4_FALLBACK_ENABLED = false
|
49
49
|
|
50
50
|
##
|
51
51
|
# For Ruby packagers to set configuration defaults. Set in
|
@@ -71,7 +71,7 @@ class Gem::ConfigFile
|
|
71
71
|
|
72
72
|
# :startdoc:
|
73
73
|
|
74
|
-
SYSTEM_WIDE_CONFIG_FILE = File.join SYSTEM_CONFIG_PATH,
|
74
|
+
SYSTEM_WIDE_CONFIG_FILE = File.join SYSTEM_CONFIG_PATH, "gemrc"
|
75
75
|
|
76
76
|
##
|
77
77
|
# List of arguments supplied to the config file object.
|
@@ -141,6 +141,12 @@ class Gem::ConfigFile
|
|
141
141
|
|
142
142
|
attr_accessor :cert_expiration_length_days
|
143
143
|
|
144
|
+
##
|
145
|
+
# == Experimental ==
|
146
|
+
# Fallback to IPv4 when IPv6 is not reachable or slow (default: false)
|
147
|
+
|
148
|
+
attr_accessor :ipv4_fallback_enabled
|
149
|
+
|
144
150
|
##
|
145
151
|
# Path name of directory or file of openssl client certificate, used for remote https connection with client authentication
|
146
152
|
|
@@ -176,19 +182,20 @@ class Gem::ConfigFile
|
|
176
182
|
@update_sources = DEFAULT_UPDATE_SOURCES
|
177
183
|
@concurrent_downloads = DEFAULT_CONCURRENT_DOWNLOADS
|
178
184
|
@cert_expiration_length_days = DEFAULT_CERT_EXPIRATION_LENGTH_DAYS
|
185
|
+
@ipv4_fallback_enabled = ENV["IPV4_FALLBACK_ENABLED"] == "true" || DEFAULT_IPV4_FALLBACK_ENABLED
|
179
186
|
|
180
187
|
operating_system_config = Marshal.load Marshal.dump(OPERATING_SYSTEM_DEFAULTS)
|
181
188
|
platform_config = Marshal.load Marshal.dump(PLATFORM_DEFAULTS)
|
182
189
|
system_config = load_file SYSTEM_WIDE_CONFIG_FILE
|
183
190
|
user_config = load_file config_file_name.dup.tap(&Gem::UNTAINT)
|
184
191
|
|
185
|
-
environment_config = (ENV[
|
192
|
+
environment_config = (ENV["GEMRC"] || "")
|
186
193
|
.split(File::PATH_SEPARATOR).inject({}) do |result, file|
|
187
194
|
result.merge load_file file
|
188
195
|
end
|
189
196
|
|
190
197
|
@hash = operating_system_config.merge platform_config
|
191
|
-
unless args.index
|
198
|
+
unless args.index "--norc"
|
192
199
|
@hash = @hash.merge system_config
|
193
200
|
@hash = @hash.merge user_config
|
194
201
|
@hash = @hash.merge environment_config
|
@@ -204,6 +211,7 @@ class Gem::ConfigFile
|
|
204
211
|
@disable_default_gem_server = @hash[:disable_default_gem_server] if @hash.key? :disable_default_gem_server
|
205
212
|
@sources = @hash[:sources] if @hash.key? :sources
|
206
213
|
@cert_expiration_length_days = @hash[:cert_expiration_length_days] if @hash.key? :cert_expiration_length_days
|
214
|
+
@ipv4_fallback_enabled = @hash[:ipv4_fallback_enabled] if @hash.key? :ipv4_fallback_enabled
|
207
215
|
|
208
216
|
@ssl_verify_mode = @hash[:ssl_verify_mode] if @hash.key? :ssl_verify_mode
|
209
217
|
@ssl_ca_cert = @hash[:ssl_ca_cert] if @hash.key? :ssl_ca_cert
|
@@ -261,17 +269,22 @@ if you believe they were disclosed to a third party.
|
|
261
269
|
# Location of RubyGems.org credentials
|
262
270
|
|
263
271
|
def credentials_path
|
264
|
-
File.join Gem.user_home,
|
272
|
+
credentials = File.join Gem.user_home, ".gem", "credentials"
|
273
|
+
if File.exist? credentials
|
274
|
+
credentials
|
275
|
+
else
|
276
|
+
File.join Gem.data_home, "gem", "credentials"
|
277
|
+
end
|
265
278
|
end
|
266
279
|
|
267
280
|
def load_api_keys
|
268
281
|
check_credentials_permissions
|
269
282
|
|
270
283
|
@api_keys = if File.exist? credentials_path
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
284
|
+
load_file(credentials_path)
|
285
|
+
else
|
286
|
+
@hash
|
287
|
+
end
|
275
288
|
|
276
289
|
if @api_keys.key? :rubygems_api_key
|
277
290
|
@rubygems_api_key = @api_keys[:rubygems_api_key]
|
@@ -307,12 +320,13 @@ if you believe they were disclosed to a third party.
|
|
307
320
|
config = load_file(credentials_path).merge(host => api_key)
|
308
321
|
|
309
322
|
dirname = File.dirname credentials_path
|
310
|
-
|
323
|
+
require "fileutils"
|
324
|
+
FileUtils.mkdir_p(dirname)
|
311
325
|
|
312
326
|
Gem.load_yaml
|
313
327
|
|
314
328
|
permissions = 0600 & (~File.umask)
|
315
|
-
File.open(credentials_path,
|
329
|
+
File.open(credentials_path, "w", permissions) do |f|
|
316
330
|
f.write config.to_yaml
|
317
331
|
end
|
318
332
|
|
@@ -354,7 +368,7 @@ if you believe they were disclosed to a third party.
|
|
354
368
|
|
355
369
|
# True if the backtrace option has been specified, or debug is on.
|
356
370
|
def backtrace
|
357
|
-
@backtrace
|
371
|
+
@backtrace || $DEBUG
|
358
372
|
end
|
359
373
|
|
360
374
|
# The name of the configuration file.
|
@@ -375,7 +389,7 @@ if you believe they were disclosed to a third party.
|
|
375
389
|
yield :backtrace, @backtrace
|
376
390
|
yield :bulk_threshold, @bulk_threshold
|
377
391
|
|
378
|
-
yield
|
392
|
+
yield "config_file_name", @config_file_name if @config_file_name
|
379
393
|
|
380
394
|
hash.each(&block)
|
381
395
|
end
|
@@ -391,7 +405,7 @@ if you believe they were disclosed to a third party.
|
|
391
405
|
when /^--debug$/ then
|
392
406
|
$DEBUG = true
|
393
407
|
|
394
|
-
warn
|
408
|
+
warn "NOTE: Debugging mode prints all exceptions even when rescued"
|
395
409
|
else
|
396
410
|
@args << arg
|
397
411
|
end
|
@@ -429,8 +443,8 @@ if you believe they were disclosed to a third party.
|
|
429
443
|
yaml_hash[:ssl_client_cert] =
|
430
444
|
@hash[:ssl_client_cert] if @hash.key? :ssl_client_cert
|
431
445
|
|
432
|
-
keys = yaml_hash.keys.map {
|
433
|
-
keys <<
|
446
|
+
keys = yaml_hash.keys.map {|key| key.to_s }
|
447
|
+
keys << "debug"
|
434
448
|
re = Regexp.union(*keys)
|
435
449
|
|
436
450
|
@hash.each do |key, value|
|
@@ -444,7 +458,10 @@ if you believe they were disclosed to a third party.
|
|
444
458
|
|
445
459
|
# Writes out this config file, replacing its source.
|
446
460
|
def write
|
447
|
-
|
461
|
+
require "fileutils"
|
462
|
+
FileUtils.mkdir_p File.dirname(config_file_name)
|
463
|
+
|
464
|
+
File.open config_file_name, "w" do |io|
|
448
465
|
io.write to_yaml
|
449
466
|
end
|
450
467
|
end
|
@@ -460,11 +477,11 @@ if you believe they were disclosed to a third party.
|
|
460
477
|
end
|
461
478
|
|
462
479
|
def ==(other) # :nodoc:
|
463
|
-
self.class === other
|
464
|
-
@backtrace == other.backtrace
|
465
|
-
@bulk_threshold == other.bulk_threshold
|
466
|
-
@verbose == other.verbose
|
467
|
-
@update_sources == other.update_sources
|
480
|
+
self.class === other &&
|
481
|
+
@backtrace == other.backtrace &&
|
482
|
+
@bulk_threshold == other.bulk_threshold &&
|
483
|
+
@verbose == other.verbose &&
|
484
|
+
@update_sources == other.update_sources &&
|
468
485
|
@hash == other.hash
|
469
486
|
end
|
470
487
|
|
@@ -488,5 +505,4 @@ if you believe they were disclosed to a third party.
|
|
488
505
|
end
|
489
506
|
end
|
490
507
|
end
|
491
|
-
|
492
508
|
end
|
@@ -39,7 +39,7 @@ module Kernel
|
|
39
39
|
# GEM_SKIP=libA:libB ruby -I../libA -I../libB ./mycode.rb
|
40
40
|
|
41
41
|
def gem(gem_name, *requirements) # :doc:
|
42
|
-
skip_list = (ENV[
|
42
|
+
skip_list = (ENV["GEM_SKIP"] || "").split(/:/)
|
43
43
|
raise Gem::LoadError, "skipping #{gem_name}" if skip_list.include? gem_name
|
44
44
|
|
45
45
|
if gem_name.kind_of? Gem::Dependency
|
@@ -5,7 +5,7 @@
|
|
5
5
|
# See LICENSE.txt for permissions.
|
6
6
|
#++
|
7
7
|
|
8
|
-
require
|
8
|
+
require "monitor"
|
9
9
|
|
10
10
|
module Kernel
|
11
11
|
|
@@ -17,6 +17,8 @@ module Kernel
|
|
17
17
|
private :gem_original_require
|
18
18
|
end
|
19
19
|
|
20
|
+
file = Gem::KERNEL_WARN_IGNORES_INTERNAL_ENTRIES ? "<internal:#{__FILE__}>" : __FILE__
|
21
|
+
module_eval <<'RUBY', file, __LINE__ + 1 # rubocop:disable Style/EvalWithLocation
|
20
22
|
##
|
21
23
|
# When RubyGems is required, Kernel#require is replaced with our own which
|
22
24
|
# is capable of loading gems on demand.
|
@@ -130,7 +132,7 @@ module Kernel
|
|
130
132
|
|
131
133
|
# Ok, now find a gem that has no conflicts, starting
|
132
134
|
# at the highest version.
|
133
|
-
valid = found_specs.find {
|
135
|
+
valid = found_specs.find {|s| !s.has_conflicts? }
|
134
136
|
|
135
137
|
unless valid
|
136
138
|
le = Gem::LoadError.new "unable to find a version of '#{names.first}' to activate"
|
@@ -148,7 +150,7 @@ module Kernel
|
|
148
150
|
RUBYGEMS_ACTIVATION_MONITOR.enter
|
149
151
|
|
150
152
|
begin
|
151
|
-
if load_error.
|
153
|
+
if load_error.path == path and Gem.try_activate(path)
|
152
154
|
require_again = true
|
153
155
|
end
|
154
156
|
ensure
|
@@ -166,6 +168,7 @@ module Kernel
|
|
166
168
|
end
|
167
169
|
end
|
168
170
|
end
|
171
|
+
RUBY
|
169
172
|
|
170
173
|
private :require
|
171
174
|
|
@@ -1,27 +1,25 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
# `uplevel` keyword argument of Kernel#warn is available since ruby 2.5.
|
4
|
-
if RUBY_VERSION >= "2.5"
|
4
|
+
if RUBY_VERSION >= "2.5" && !Gem::KERNEL_WARN_IGNORES_INTERNAL_ENTRIES
|
5
5
|
|
6
6
|
module Kernel
|
7
|
-
|
7
|
+
rubygems_path = "#{__dir__}/" # Frames to be skipped start with this path.
|
8
8
|
|
9
|
-
original_warn =
|
9
|
+
original_warn = instance_method(:warn)
|
10
10
|
|
11
11
|
remove_method :warn
|
12
12
|
|
13
13
|
class << self
|
14
|
-
|
15
14
|
remove_method :warn
|
16
|
-
|
17
15
|
end
|
18
16
|
|
19
17
|
module_function define_method(:warn) {|*messages, **kw|
|
20
18
|
unless uplevel = kw[:uplevel]
|
21
19
|
if Gem.java_platform?
|
22
|
-
return original_warn.call(*messages)
|
20
|
+
return original_warn.bind(self).call(*messages)
|
23
21
|
else
|
24
|
-
return original_warn.call(*messages, **kw)
|
22
|
+
return original_warn.bind(self).call(*messages, **kw)
|
25
23
|
end
|
26
24
|
end
|
27
25
|
|
@@ -40,16 +38,17 @@ if RUBY_VERSION >= "2.5"
|
|
40
38
|
|
41
39
|
start += 1
|
42
40
|
|
43
|
-
|
44
|
-
|
45
|
-
|
41
|
+
if path = loc.path
|
42
|
+
unless path.start_with?(rubygems_path) || path.start_with?("<internal:")
|
43
|
+
# Non-rubygems frames
|
44
|
+
uplevel -= 1
|
45
|
+
end
|
46
46
|
end
|
47
47
|
end
|
48
|
-
uplevel = start
|
48
|
+
kw[:uplevel] = start
|
49
49
|
end
|
50
50
|
|
51
|
-
kw
|
52
|
-
original_warn.call(*messages, **kw)
|
51
|
+
original_warn.bind(self).call(*messages, **kw)
|
53
52
|
}
|
54
53
|
end
|
55
54
|
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require "socket"
|
2
|
+
|
3
|
+
module CoreExtensions
|
4
|
+
module TCPSocketExt
|
5
|
+
def self.prepended(base)
|
6
|
+
base.prepend Initializer
|
7
|
+
end
|
8
|
+
|
9
|
+
module Initializer
|
10
|
+
CONNECTION_TIMEOUT = 5
|
11
|
+
IPV4_DELAY_SECONDS = 0.1
|
12
|
+
|
13
|
+
def initialize(host, serv, *rest)
|
14
|
+
mutex = Thread::Mutex.new
|
15
|
+
addrs = []
|
16
|
+
threads = []
|
17
|
+
cond_var = Thread::ConditionVariable.new
|
18
|
+
|
19
|
+
Addrinfo.foreach(host, serv, nil, :STREAM) do |addr|
|
20
|
+
Thread.report_on_exception = false if defined? Thread.report_on_exception = ()
|
21
|
+
|
22
|
+
threads << Thread.new(addr) do
|
23
|
+
# give head start to ipv6 addresses
|
24
|
+
sleep IPV4_DELAY_SECONDS if addr.ipv4?
|
25
|
+
|
26
|
+
# raises Errno::ECONNREFUSED when ip:port is unreachable
|
27
|
+
Socket.tcp(addr.ip_address, serv, connect_timeout: CONNECTION_TIMEOUT).close
|
28
|
+
mutex.synchronize do
|
29
|
+
addrs << addr.ip_address
|
30
|
+
cond_var.signal
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
mutex.synchronize do
|
36
|
+
timeout_time = CONNECTION_TIMEOUT + Time.now.to_f
|
37
|
+
while addrs.empty? && (remaining_time = timeout_time - Time.now.to_f) > 0
|
38
|
+
cond_var.wait(mutex, remaining_time)
|
39
|
+
end
|
40
|
+
|
41
|
+
host = addrs.shift unless addrs.empty?
|
42
|
+
end
|
43
|
+
|
44
|
+
threads.each {|t| t.kill.join if t.alive? }
|
45
|
+
|
46
|
+
super(host, serv, *rest)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
TCPSocket.prepend CoreExtensions::TCPSocketExt
|
data/lib/rubygems/defaults.rb
CHANGED
@@ -20,7 +20,13 @@ module Gem
|
|
20
20
|
# specified in the environment
|
21
21
|
|
22
22
|
def self.default_spec_cache_dir
|
23
|
-
File.join Gem.user_home,
|
23
|
+
default_spec_cache_dir = File.join Gem.user_home, ".gem", "specs"
|
24
|
+
|
25
|
+
unless File.exist?(default_spec_cache_dir)
|
26
|
+
default_spec_cache_dir = File.join Gem.data_home, "gem", "specs"
|
27
|
+
end
|
28
|
+
|
29
|
+
default_spec_cache_dir
|
24
30
|
end
|
25
31
|
|
26
32
|
##
|
@@ -28,21 +34,7 @@ module Gem
|
|
28
34
|
# specified in the environment
|
29
35
|
|
30
36
|
def self.default_dir
|
31
|
-
|
32
|
-
[
|
33
|
-
File.dirname(RbConfig::CONFIG['sitedir']),
|
34
|
-
'Gems',
|
35
|
-
RbConfig::CONFIG['ruby_version']
|
36
|
-
]
|
37
|
-
else
|
38
|
-
[
|
39
|
-
RbConfig::CONFIG['rubylibprefix'],
|
40
|
-
'gems',
|
41
|
-
RbConfig::CONFIG['ruby_version']
|
42
|
-
]
|
43
|
-
end
|
44
|
-
|
45
|
-
@default_dir ||= File.join(*path)
|
37
|
+
@default_dir ||= File.join(RbConfig::CONFIG["rubylibprefix"], "gems", RbConfig::CONFIG["ruby_version"])
|
46
38
|
end
|
47
39
|
|
48
40
|
##
|
@@ -67,18 +59,94 @@ module Gem
|
|
67
59
|
# Path to specification files of default gems.
|
68
60
|
|
69
61
|
def self.default_specifications_dir
|
70
|
-
File.join(Gem.default_dir, "specifications", "default")
|
62
|
+
@default_specifications_dir ||= File.join(Gem.default_dir, "specifications", "default")
|
63
|
+
end
|
64
|
+
|
65
|
+
##
|
66
|
+
# Finds the user's home directory.
|
67
|
+
#--
|
68
|
+
# Some comments from the ruby-talk list regarding finding the home
|
69
|
+
# directory:
|
70
|
+
#
|
71
|
+
# I have HOME, USERPROFILE and HOMEDRIVE + HOMEPATH. Ruby seems
|
72
|
+
# to be depending on HOME in those code samples. I propose that
|
73
|
+
# it should fallback to USERPROFILE and HOMEDRIVE + HOMEPATH (at
|
74
|
+
# least on Win32).
|
75
|
+
#++
|
76
|
+
#--
|
77
|
+
#
|
78
|
+
#++
|
79
|
+
|
80
|
+
def self.find_home
|
81
|
+
Dir.home.dup
|
82
|
+
rescue
|
83
|
+
if Gem.win_platform?
|
84
|
+
File.expand_path File.join(ENV["HOMEDRIVE"] || ENV["SystemDrive"], "/")
|
85
|
+
else
|
86
|
+
File.expand_path "/"
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
private_class_method :find_home
|
91
|
+
|
92
|
+
##
|
93
|
+
# The home directory for the user.
|
94
|
+
|
95
|
+
def self.user_home
|
96
|
+
@user_home ||= find_home.tap(&Gem::UNTAINT)
|
71
97
|
end
|
72
98
|
|
73
99
|
##
|
74
100
|
# Path for gems in the user's home directory
|
75
101
|
|
76
102
|
def self.user_dir
|
77
|
-
|
78
|
-
|
103
|
+
gem_dir = File.join(Gem.user_home, ".gem")
|
104
|
+
gem_dir = File.join(Gem.data_home, "gem") unless File.exist?(gem_dir)
|
105
|
+
parts = [gem_dir, ruby_engine]
|
106
|
+
parts << RbConfig::CONFIG["ruby_version"] unless RbConfig::CONFIG["ruby_version"].empty?
|
79
107
|
File.join parts
|
80
108
|
end
|
81
109
|
|
110
|
+
##
|
111
|
+
# The path to standard location of the user's configuration directory.
|
112
|
+
|
113
|
+
def self.config_home
|
114
|
+
@config_home ||= (ENV["XDG_CONFIG_HOME"] || File.join(Gem.user_home, ".config"))
|
115
|
+
end
|
116
|
+
|
117
|
+
##
|
118
|
+
# Finds the user's config file
|
119
|
+
|
120
|
+
def self.find_config_file
|
121
|
+
gemrc = File.join Gem.user_home, ".gemrc"
|
122
|
+
if File.exist? gemrc
|
123
|
+
gemrc
|
124
|
+
else
|
125
|
+
File.join Gem.config_home, "gem", "gemrc"
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
##
|
130
|
+
# The path to standard location of the user's .gemrc file.
|
131
|
+
|
132
|
+
def self.config_file
|
133
|
+
@config_file ||= find_config_file.tap(&Gem::UNTAINT)
|
134
|
+
end
|
135
|
+
|
136
|
+
##
|
137
|
+
# The path to standard location of the user's cache directory.
|
138
|
+
|
139
|
+
def self.cache_home
|
140
|
+
@cache_home ||= (ENV["XDG_CACHE_HOME"] || File.join(Gem.user_home, ".cache"))
|
141
|
+
end
|
142
|
+
|
143
|
+
##
|
144
|
+
# The path to standard location of the user's data directory.
|
145
|
+
|
146
|
+
def self.data_home
|
147
|
+
@data_home ||= (ENV["XDG_DATA_HOME"] || File.join(Gem.user_home, ".local", "share"))
|
148
|
+
end
|
149
|
+
|
82
150
|
##
|
83
151
|
# How String Gem paths should be split. Overridable for esoteric platforms.
|
84
152
|
|
@@ -93,7 +161,7 @@ module Gem
|
|
93
161
|
path = []
|
94
162
|
path << user_dir if user_home && File.exist?(user_home)
|
95
163
|
path << default_dir
|
96
|
-
path << vendor_dir if vendor_dir
|
164
|
+
path << vendor_dir if vendor_dir && File.directory?(vendor_dir)
|
97
165
|
path
|
98
166
|
end
|
99
167
|
|
@@ -101,7 +169,7 @@ module Gem
|
|
101
169
|
# Deduce Ruby's --program-prefix and --program-suffix from its install name
|
102
170
|
|
103
171
|
def self.default_exec_format
|
104
|
-
exec_format = RbConfig::CONFIG[
|
172
|
+
exec_format = RbConfig::CONFIG["ruby_install_name"].sub("ruby", "%s") rescue "%s"
|
105
173
|
|
106
174
|
unless exec_format =~ /%s/
|
107
175
|
raise Gem::Exception,
|
@@ -115,11 +183,7 @@ module Gem
|
|
115
183
|
# The default directory for binaries
|
116
184
|
|
117
185
|
def self.default_bindir
|
118
|
-
|
119
|
-
'/usr/bin'
|
120
|
-
else # generic install
|
121
|
-
RbConfig::CONFIG['bindir']
|
122
|
-
end
|
186
|
+
RbConfig::CONFIG["bindir"]
|
123
187
|
end
|
124
188
|
|
125
189
|
def self.ruby_engine
|
@@ -130,14 +194,26 @@ module Gem
|
|
130
194
|
# The default signing key path
|
131
195
|
|
132
196
|
def self.default_key_path
|
133
|
-
File.join Gem.user_home, ".gem", "gem-private_key.pem"
|
197
|
+
default_key_path = File.join Gem.user_home, ".gem", "gem-private_key.pem"
|
198
|
+
|
199
|
+
unless File.exist?(default_key_path)
|
200
|
+
default_key_path = File.join Gem.data_home, "gem", "gem-private_key.pem"
|
201
|
+
end
|
202
|
+
|
203
|
+
default_key_path
|
134
204
|
end
|
135
205
|
|
136
206
|
##
|
137
207
|
# The default signing certificate chain path
|
138
208
|
|
139
209
|
def self.default_cert_path
|
140
|
-
File.join Gem.user_home, ".gem", "gem-public_cert.pem"
|
210
|
+
default_cert_path = File.join Gem.user_home, ".gem", "gem-public_cert.pem"
|
211
|
+
|
212
|
+
unless File.exist?(default_cert_path)
|
213
|
+
default_cert_path = File.join Gem.data_home, "gem", "gem-public_cert.pem"
|
214
|
+
end
|
215
|
+
|
216
|
+
default_cert_path
|
141
217
|
end
|
142
218
|
|
143
219
|
##
|
@@ -151,14 +227,14 @@ module Gem
|
|
151
227
|
# Directory where vendor gems are installed.
|
152
228
|
|
153
229
|
def self.vendor_dir # :nodoc:
|
154
|
-
if vendor_dir = ENV[
|
230
|
+
if vendor_dir = ENV["GEM_VENDOR"]
|
155
231
|
return vendor_dir.dup
|
156
232
|
end
|
157
233
|
|
158
|
-
return nil unless RbConfig::CONFIG.key?
|
234
|
+
return nil unless RbConfig::CONFIG.key? "vendordir"
|
159
235
|
|
160
|
-
File.join RbConfig::CONFIG[
|
161
|
-
RbConfig::CONFIG[
|
236
|
+
File.join RbConfig::CONFIG["vendordir"], "gems",
|
237
|
+
RbConfig::CONFIG["ruby_version"]
|
162
238
|
end
|
163
239
|
|
164
240
|
##
|
data/lib/rubygems/dependency.rb
CHANGED
@@ -2,11 +2,7 @@
|
|
2
2
|
##
|
3
3
|
# The Dependency class holds a Gem name and a Gem::Requirement.
|
4
4
|
|
5
|
-
require "rubygems/bundler_version_finder"
|
6
|
-
require "rubygems/requirement"
|
7
|
-
|
8
5
|
class Gem::Dependency
|
9
|
-
|
10
6
|
##
|
11
7
|
# Valid dependency types.
|
12
8
|
#--
|
@@ -101,14 +97,14 @@ class Gem::Dependency
|
|
101
97
|
end
|
102
98
|
|
103
99
|
def pretty_print(q) # :nodoc:
|
104
|
-
q.group 1,
|
100
|
+
q.group 1, "Gem::Dependency.new(", ")" do
|
105
101
|
q.pp name
|
106
|
-
q.text
|
102
|
+
q.text ","
|
107
103
|
q.breakable
|
108
104
|
|
109
105
|
q.pp requirement
|
110
106
|
|
111
|
-
q.text
|
107
|
+
q.text ","
|
112
108
|
q.breakable
|
113
109
|
|
114
110
|
q.pp type
|
@@ -119,7 +115,7 @@ class Gem::Dependency
|
|
119
115
|
# What does this dependency require?
|
120
116
|
|
121
117
|
def requirement
|
122
|
-
return @requirement if defined?(@requirement)
|
118
|
+
return @requirement if defined?(@requirement) && @requirement
|
123
119
|
|
124
120
|
# @version_requirements and @version_requirement are legacy ivar
|
125
121
|
# names, and supported here because older gems need to keep
|
@@ -201,7 +197,7 @@ class Gem::Dependency
|
|
201
197
|
reqs = other.requirement.requirements
|
202
198
|
|
203
199
|
return false unless reqs.length == 1
|
204
|
-
return false unless reqs.first.first ==
|
200
|
+
return false unless reqs.first.first == "="
|
205
201
|
|
206
202
|
version = reqs.first.last
|
207
203
|
|
@@ -234,10 +230,10 @@ class Gem::Dependency
|
|
234
230
|
|
235
231
|
version = Gem::Version.new version
|
236
232
|
|
237
|
-
return true if requirement.none?
|
238
|
-
return false if version.prerelease?
|
239
|
-
|
240
|
-
|
233
|
+
return true if requirement.none? && !version.prerelease?
|
234
|
+
return false if version.prerelease? &&
|
235
|
+
!allow_prerelease &&
|
236
|
+
!prerelease?
|
241
237
|
|
242
238
|
requirement.satisfied_by? version
|
243
239
|
end
|
@@ -281,11 +277,11 @@ class Gem::Dependency
|
|
281
277
|
requirement.satisfied_by?(spec.version) && env_req.satisfied_by?(spec.version)
|
282
278
|
end.map(&:to_spec)
|
283
279
|
|
284
|
-
Gem::BundlerVersionFinder.
|
280
|
+
Gem::BundlerVersionFinder.prioritize!(matches) if prioritizes_bundler?
|
285
281
|
|
286
282
|
if platform_only
|
287
283
|
matches.reject! do |spec|
|
288
|
-
spec.nil? || !Gem::Platform.
|
284
|
+
spec.nil? || !Gem::Platform.match_spec?(spec)
|
289
285
|
end
|
290
286
|
end
|
291
287
|
|
@@ -299,6 +295,10 @@ class Gem::Dependency
|
|
299
295
|
@requirement.specific?
|
300
296
|
end
|
301
297
|
|
298
|
+
def prioritizes_bundler?
|
299
|
+
name == "bundler".freeze && !specific?
|
300
|
+
end
|
301
|
+
|
302
302
|
def to_specs
|
303
303
|
matches = matching_specs true
|
304
304
|
|
@@ -322,14 +322,14 @@ class Gem::Dependency
|
|
322
322
|
def to_spec
|
323
323
|
matches = self.to_specs.compact
|
324
324
|
|
325
|
-
active = matches.find {
|
325
|
+
active = matches.find {|spec| spec.activated? }
|
326
326
|
return active if active
|
327
327
|
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
328
|
+
unless prerelease?
|
329
|
+
# Move prereleases to the end of the list for >= 0 requirements
|
330
|
+
pre, matches = matches.partition {|spec| spec.version.prerelease? }
|
331
|
+
matches += pre if requirement == Gem::Requirement.default
|
332
|
+
end
|
333
333
|
|
334
334
|
matches.first
|
335
335
|
end
|
@@ -347,5 +347,4 @@ class Gem::Dependency
|
|
347
347
|
:released
|
348
348
|
end
|
349
349
|
end
|
350
|
-
|
351
350
|
end
|