rubygems-update 3.3.18 → 3.6.2
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/CHANGELOG.md +2182 -1067
- data/CODE_OF_CONDUCT.md +79 -28
- data/Manifest.txt +184 -290
- data/README.md +35 -19
- data/bundler/CHANGELOG.md +1003 -3
- data/bundler/README.md +3 -7
- data/bundler/bundler.gemspec +11 -11
- data/bundler/exe/bundle +5 -25
- data/bundler/lib/bundler/build_metadata.rb +3 -3
- data/bundler/lib/bundler/capistrano.rb +1 -1
- data/bundler/lib/bundler/checksum.rb +254 -0
- data/bundler/lib/bundler/ci_detector.rb +75 -0
- data/bundler/lib/bundler/cli/add.rb +7 -5
- data/bundler/lib/bundler/cli/binstubs.rb +10 -6
- data/bundler/lib/bundler/cli/cache.rb +1 -1
- data/bundler/lib/bundler/cli/check.rb +4 -4
- data/bundler/lib/bundler/cli/common.rb +11 -1
- data/bundler/lib/bundler/cli/config.rb +8 -7
- data/bundler/lib/bundler/cli/console.rb +2 -5
- data/bundler/lib/bundler/cli/doctor.rb +10 -12
- data/bundler/lib/bundler/cli/exec.rb +2 -1
- data/bundler/lib/bundler/cli/fund.rb +1 -1
- data/bundler/lib/bundler/cli/gem.rb +77 -53
- data/bundler/lib/bundler/cli/info.rb +4 -15
- data/bundler/lib/bundler/cli/init.rb +6 -2
- data/bundler/lib/bundler/cli/inject.rb +1 -1
- data/bundler/lib/bundler/cli/install.rb +27 -15
- data/bundler/lib/bundler/cli/issue.rb +1 -1
- data/bundler/lib/bundler/cli/lock.rb +54 -28
- data/bundler/lib/bundler/cli/open.rb +9 -9
- data/bundler/lib/bundler/cli/outdated.rb +34 -29
- data/bundler/lib/bundler/cli/platform.rb +7 -5
- data/bundler/lib/bundler/cli/plugin.rb +9 -15
- data/bundler/lib/bundler/cli/pristine.rb +38 -30
- data/bundler/lib/bundler/cli/show.rb +4 -4
- data/bundler/lib/bundler/cli/update.rb +6 -5
- data/bundler/lib/bundler/cli/viz.rb +1 -1
- data/bundler/lib/bundler/cli.rb +258 -307
- data/bundler/lib/bundler/compact_index_client/cache.rb +55 -60
- data/bundler/lib/bundler/compact_index_client/cache_file.rb +148 -0
- data/bundler/lib/bundler/compact_index_client/gem_parser.rb +7 -3
- data/bundler/lib/bundler/compact_index_client/parser.rb +84 -0
- data/bundler/lib/bundler/compact_index_client/updater.rb +71 -83
- data/bundler/lib/bundler/compact_index_client.rb +58 -80
- data/bundler/lib/bundler/constants.rb +9 -2
- data/bundler/lib/bundler/current_ruby.rb +11 -16
- data/bundler/lib/bundler/definition.rb +547 -228
- data/bundler/lib/bundler/dependency.rb +30 -87
- data/bundler/lib/bundler/digest.rb +3 -3
- data/bundler/lib/bundler/dsl.rb +115 -65
- data/bundler/lib/bundler/endpoint_specification.rb +27 -14
- data/bundler/lib/bundler/env.rb +5 -7
- data/bundler/lib/bundler/environment_preserver.rb +8 -25
- data/bundler/lib/bundler/errors.rb +85 -11
- data/bundler/lib/bundler/feature_flag.rb +1 -2
- data/bundler/lib/bundler/fetcher/base.rb +5 -3
- data/bundler/lib/bundler/fetcher/compact_index.rb +28 -43
- data/bundler/lib/bundler/fetcher/dependency.rb +3 -7
- data/bundler/lib/bundler/fetcher/downloader.rb +17 -16
- data/bundler/lib/bundler/fetcher/gem_remote_fetcher.rb +16 -0
- data/bundler/lib/bundler/fetcher/index.rb +2 -3
- data/bundler/lib/bundler/fetcher.rb +91 -74
- data/bundler/lib/bundler/force_platform.rb +16 -0
- data/bundler/lib/bundler/friendly_errors.rb +6 -9
- data/bundler/lib/bundler/gem_helper.rb +5 -6
- data/bundler/lib/bundler/gem_helpers.rb +45 -7
- data/bundler/lib/bundler/gem_version_promoter.rb +68 -109
- data/bundler/lib/bundler/graph.rb +9 -9
- data/bundler/lib/bundler/index.rb +69 -73
- data/bundler/lib/bundler/injector.rb +12 -13
- data/bundler/lib/bundler/inline.rb +40 -17
- data/bundler/lib/bundler/installer/gem_installer.rb +13 -12
- data/bundler/lib/bundler/installer/parallel_installer.rb +19 -66
- data/bundler/lib/bundler/installer/standalone.rb +29 -15
- data/bundler/lib/bundler/installer.rb +27 -77
- data/bundler/lib/bundler/lazy_specification.rb +134 -71
- data/bundler/lib/bundler/lockfile_generator.rb +13 -4
- data/bundler/lib/bundler/lockfile_parser.rb +134 -61
- data/bundler/lib/bundler/man/bundle-add.1 +46 -48
- data/bundler/lib/bundler/man/bundle-add.1.ronn +54 -22
- data/bundler/lib/bundler/man/bundle-binstubs.1 +10 -19
- data/bundler/lib/bundler/man/bundle-binstubs.1.ronn +6 -3
- data/bundler/lib/bundler/man/bundle-cache.1 +38 -25
- data/bundler/lib/bundler/man/bundle-cache.1.ronn +40 -4
- data/bundler/lib/bundler/man/bundle-check.1 +7 -14
- data/bundler/lib/bundler/man/bundle-check.1.ronn +7 -2
- data/bundler/lib/bundler/man/bundle-clean.1 +4 -11
- data/bundler/lib/bundler/man/bundle-clean.1.ronn +1 -1
- data/bundler/lib/bundler/man/bundle-config.1 +41 -220
- data/bundler/lib/bundler/man/bundle-config.1.ronn +27 -22
- data/bundler/lib/bundler/man/bundle-console.1 +33 -0
- data/bundler/lib/bundler/man/bundle-console.1.ronn +39 -0
- data/bundler/lib/bundler/man/bundle-doctor.1 +5 -19
- data/bundler/lib/bundler/man/bundle-doctor.1.ronn +1 -1
- data/bundler/lib/bundler/man/bundle-env.1 +9 -0
- data/bundler/lib/bundler/man/bundle-env.1.ronn +10 -0
- data/bundler/lib/bundler/man/bundle-exec.1 +20 -78
- data/bundler/lib/bundler/man/bundle-exec.1.ronn +12 -10
- data/bundler/lib/bundler/man/bundle-fund.1 +22 -0
- data/bundler/lib/bundler/man/bundle-fund.1.ronn +25 -0
- data/bundler/lib/bundler/man/bundle-gem.1 +53 -81
- data/bundler/lib/bundler/man/bundle-gem.1.ronn +41 -9
- data/bundler/lib/bundler/man/bundle-help.1 +9 -0
- data/bundler/lib/bundler/man/bundle-help.1.ronn +12 -0
- data/bundler/lib/bundler/man/bundle-info.1 +8 -11
- data/bundler/lib/bundler/man/bundle-info.1.ronn +9 -5
- data/bundler/lib/bundler/man/bundle-init.1 +7 -12
- data/bundler/lib/bundler/man/bundle-init.1.ronn +4 -1
- data/bundler/lib/bundler/man/bundle-inject.1 +17 -19
- data/bundler/lib/bundler/man/bundle-inject.1.ronn +12 -2
- data/bundler/lib/bundler/man/bundle-install.1 +42 -162
- data/bundler/lib/bundler/man/bundle-install.1.ronn +31 -49
- data/bundler/lib/bundler/man/bundle-issue.1 +45 -0
- data/bundler/lib/bundler/man/bundle-issue.1.ronn +37 -0
- data/bundler/lib/bundler/man/bundle-licenses.1 +9 -0
- data/bundler/lib/bundler/man/bundle-licenses.1.ronn +10 -0
- data/bundler/lib/bundler/man/bundle-list.1 +4 -19
- data/bundler/lib/bundler/man/bundle-list.1.ronn +4 -1
- data/bundler/lib/bundler/man/bundle-lock.1 +25 -34
- data/bundler/lib/bundler/man/bundle-lock.1.ronn +25 -4
- data/bundler/lib/bundler/man/bundle-open.1 +18 -18
- data/bundler/lib/bundler/man/bundle-open.1.ronn +10 -1
- data/bundler/lib/bundler/man/bundle-outdated.1 +22 -67
- data/bundler/lib/bundler/man/bundle-outdated.1.ronn +20 -12
- data/bundler/lib/bundler/man/bundle-platform.1 +16 -28
- data/bundler/lib/bundler/man/bundle-platform.1.ronn +14 -7
- data/bundler/lib/bundler/man/bundle-plugin.1 +58 -0
- data/bundler/lib/bundler/man/bundle-plugin.1.ronn +63 -0
- data/bundler/lib/bundler/man/bundle-pristine.1 +5 -16
- data/bundler/lib/bundler/man/bundle-pristine.1.ronn +1 -1
- data/bundler/lib/bundler/man/bundle-remove.1 +4 -14
- data/bundler/lib/bundler/man/bundle-remove.1.ronn +1 -1
- data/bundler/lib/bundler/man/bundle-show.1 +7 -11
- data/bundler/lib/bundler/man/bundle-show.1.ronn +4 -0
- data/bundler/lib/bundler/man/bundle-update.1 +30 -143
- data/bundler/lib/bundler/man/bundle-update.1.ronn +14 -6
- data/bundler/lib/bundler/man/bundle-version.1 +22 -0
- data/bundler/lib/bundler/man/bundle-version.1.ronn +24 -0
- data/bundler/lib/bundler/man/bundle-viz.1 +9 -18
- data/bundler/lib/bundler/man/bundle-viz.1.ronn +9 -3
- data/bundler/lib/bundler/man/bundle.1 +17 -51
- data/bundler/lib/bundler/man/bundle.1.ronn +12 -7
- data/bundler/lib/bundler/man/gemfile.5 +77 -341
- data/bundler/lib/bundler/man/gemfile.5.ronn +73 -54
- data/bundler/lib/bundler/man/index.txt +8 -0
- data/bundler/lib/bundler/match_metadata.rb +17 -0
- data/bundler/lib/bundler/match_platform.rb +1 -1
- data/bundler/lib/bundler/match_remote_metadata.rb +29 -0
- data/bundler/lib/bundler/materialization.rb +59 -0
- data/bundler/lib/bundler/mirror.rb +8 -10
- data/bundler/lib/bundler/plugin/api/source.rb +7 -5
- data/bundler/lib/bundler/plugin/events.rb +24 -0
- data/bundler/lib/bundler/plugin/index.rb +13 -5
- data/bundler/lib/bundler/plugin/installer/path.rb +18 -0
- data/bundler/lib/bundler/plugin/installer/rubygems.rb +0 -4
- data/bundler/lib/bundler/plugin/installer.rb +42 -19
- data/bundler/lib/bundler/plugin/source_list.rb +4 -4
- data/bundler/lib/bundler/plugin.rb +35 -7
- data/bundler/lib/bundler/process_lock.rb +10 -14
- data/bundler/lib/bundler/remote_specification.rb +17 -13
- data/bundler/lib/bundler/resolver/base.rb +117 -0
- data/bundler/lib/bundler/resolver/candidate.rb +82 -0
- data/bundler/lib/bundler/resolver/incompatibility.rb +15 -0
- data/bundler/lib/bundler/resolver/package.rb +90 -0
- data/bundler/lib/bundler/resolver/root.rb +25 -0
- data/bundler/lib/bundler/resolver/spec_group.rb +54 -67
- data/bundler/lib/bundler/resolver.rb +432 -329
- data/bundler/lib/bundler/retry.rb +2 -2
- data/bundler/lib/bundler/ruby_dsl.rb +42 -7
- data/bundler/lib/bundler/ruby_version.rb +23 -10
- data/bundler/lib/bundler/rubygems_ext.rb +286 -81
- data/bundler/lib/bundler/rubygems_gem_installer.rb +77 -68
- data/bundler/lib/bundler/rubygems_integration.rb +57 -155
- data/bundler/lib/bundler/runtime.rb +28 -17
- data/bundler/lib/bundler/safe_marshal.rb +31 -0
- data/bundler/lib/bundler/self_manager.rb +50 -12
- data/bundler/lib/bundler/settings.rb +144 -58
- data/bundler/lib/bundler/setup.rb +13 -1
- data/bundler/lib/bundler/shared_helpers.rb +87 -36
- data/bundler/lib/bundler/source/git/git_proxy.rb +278 -80
- data/bundler/lib/bundler/source/git.rb +161 -68
- data/bundler/lib/bundler/source/metadata.rb +16 -16
- data/bundler/lib/bundler/source/path/installer.rb +1 -22
- data/bundler/lib/bundler/source/path.rb +16 -26
- data/bundler/lib/bundler/source/rubygems/remote.rb +1 -1
- data/bundler/lib/bundler/source/rubygems.rb +94 -154
- data/bundler/lib/bundler/source.rb +3 -1
- data/bundler/lib/bundler/source_list.rb +34 -4
- data/bundler/lib/bundler/spec_set.rb +195 -65
- data/bundler/lib/bundler/stub_specification.rb +34 -4
- data/bundler/lib/bundler/templates/Executable +1 -1
- data/bundler/lib/bundler/templates/Executable.bundler +6 -11
- data/bundler/lib/bundler/templates/Executable.standalone +2 -0
- data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +77 -29
- data/bundler/lib/bundler/templates/newgem/Cargo.toml.tt +7 -0
- data/bundler/lib/bundler/templates/newgem/README.md.tt +11 -5
- data/bundler/lib/bundler/templates/newgem/Rakefile.tt +19 -8
- data/bundler/lib/bundler/templates/newgem/bin/console.tt +0 -4
- data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +12 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +15 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt +10 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +6 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt +1 -1
- data/bundler/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +12 -0
- data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +18 -8
- data/bundler/lib/bundler/templates/newgem/gitignore.tt +3 -0
- data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +13 -4
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +12 -4
- data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +0 -5
- data/bundler/lib/bundler/templates/newgem/standard.yml.tt +1 -1
- data/bundler/lib/bundler/ui/rg_proxy.rb +1 -1
- data/bundler/lib/bundler/ui/shell.rb +60 -15
- data/bundler/lib/bundler/ui/silent.rb +33 -6
- data/bundler/lib/bundler/uri_credentials_filter.rb +3 -3
- data/bundler/lib/bundler/uri_normalizer.rb +23 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +3 -3
- 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 +0 -1
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +56 -7
- data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +1350 -418
- data/bundler/lib/bundler/vendor/net-http-persistent/.document +1 -0
- data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +1 -1
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +4 -3
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +23 -11
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +1 -1
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +102 -64
- data/bundler/lib/bundler/vendor/pub_grub/.document +1 -0
- data/bundler/lib/bundler/vendor/pub_grub/LICENSE.txt +21 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb +20 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +189 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb +182 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb +150 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb +43 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb +121 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb +45 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb +19 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +61 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb +105 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb +3 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb +129 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +411 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +248 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb +178 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +31 -0
- data/bundler/lib/bundler/vendor/securerandom/.document +1 -0
- data/bundler/lib/bundler/vendor/securerandom/COPYING +56 -0
- data/bundler/lib/bundler/vendor/securerandom/lib/securerandom.rb +102 -0
- data/bundler/lib/bundler/vendor/thor/.document +1 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb +3 -2
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/directory.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/empty_directory.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +11 -15
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +15 -4
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions.rb +15 -15
- data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +140 -14
- data/bundler/lib/bundler/vendor/thor/lib/thor/command.rb +13 -4
- data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +4 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/error.rb +16 -25
- data/bundler/lib/bundler/vendor/thor/lib/thor/group.rb +12 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/invocation.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/nested_context.rb +2 -2
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/argument.rb +17 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +33 -17
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/option.rb +28 -9
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +46 -7
- data/bundler/lib/bundler/vendor/thor/lib/thor/rake_compat.rb +2 -2
- data/bundler/lib/bundler/vendor/thor/lib/thor/runner.rb +40 -30
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +35 -159
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/color.rb +1 -46
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/column_printer.rb +29 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/html.rb +1 -46
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/table_printer.rb +118 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/terminal.rb +42 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/wrapped_printer.rb +38 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/util.rb +8 -7
- data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor.rb +166 -8
- data/bundler/lib/bundler/vendor/tsort/.document +1 -0
- data/bundler/lib/bundler/vendor/tsort/lib/tsort.rb +3 -0
- data/bundler/lib/bundler/vendor/uri/.document +1 -0
- data/bundler/lib/bundler/vendor/uri/COPYING +56 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +343 -148
- data/bundler/lib/bundler/vendor/uri/lib/uri/file.rb +10 -4
- data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +3 -2
- data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +44 -33
- data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +40 -2
- data/bundler/lib/bundler/vendor/uri/lib/uri/https.rb +2 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb +1 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/ldaps.rb +2 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb +2 -2
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +25 -12
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +130 -38
- data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/ws.rb +1 -2
- data/bundler/lib/bundler/vendor/uri/lib/uri/wss.rb +2 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri.rb +12 -11
- data/bundler/lib/bundler/vendored_net_http.rb +23 -0
- data/bundler/lib/bundler/vendored_persistent.rb +0 -36
- data/bundler/lib/bundler/{vendored_tmpdir.rb → vendored_pub_grub.rb} +1 -1
- data/bundler/lib/bundler/vendored_securerandom.rb +12 -0
- data/bundler/lib/bundler/vendored_timeout.rb +12 -0
- data/bundler/lib/bundler/vendored_uri.rb +18 -1
- data/bundler/lib/bundler/version.rb +5 -1
- data/bundler/lib/bundler/vlad.rb +1 -1
- data/bundler/lib/bundler/worker.rb +5 -7
- data/bundler/lib/bundler/yaml_serializer.rb +22 -13
- data/bundler/lib/bundler.rb +155 -148
- data/{bundler → doc/bundler}/UPGRADING.md +11 -4
- data/{CONTRIBUTING.md → doc/rubygems/CONTRIBUTING.md} +40 -17
- data/doc/rubygems/POLICIES.md +204 -0
- data/{test/rubygems/fake_certlib/openssl.rb → exe/gem} +5 -1
- data/{bin → exe}/update_rubygems +12 -10
- data/lib/rubygems/available_set.rb +8 -7
- data/lib/rubygems/basic_specification.rb +90 -52
- data/lib/rubygems/bundler_version_finder.rb +6 -6
- data/lib/rubygems/ci_detector.rb +75 -0
- data/lib/rubygems/command.rb +68 -64
- data/lib/rubygems/command_manager.rb +39 -24
- data/lib/rubygems/commands/build_command.rb +14 -19
- data/lib/rubygems/commands/cert_command.rb +39 -39
- data/lib/rubygems/commands/check_command.rb +30 -25
- data/lib/rubygems/commands/cleanup_command.rb +32 -43
- data/lib/rubygems/commands/contents_command.rb +33 -25
- data/lib/rubygems/commands/dependency_command.rb +22 -23
- data/lib/rubygems/commands/environment_command.rb +8 -9
- data/lib/rubygems/commands/exec_command.rb +247 -0
- data/lib/rubygems/commands/fetch_command.rb +25 -10
- data/lib/rubygems/commands/generate_index_command.rb +40 -74
- data/lib/rubygems/commands/help_command.rb +15 -14
- data/lib/rubygems/commands/info_command.rb +5 -5
- data/lib/rubygems/commands/install_command.rb +31 -38
- data/lib/rubygems/commands/list_command.rb +6 -5
- data/lib/rubygems/commands/lock_command.rb +6 -5
- data/lib/rubygems/commands/mirror_command.rb +4 -3
- data/lib/rubygems/commands/open_command.rb +11 -12
- data/lib/rubygems/commands/outdated_command.rb +6 -5
- data/lib/rubygems/commands/owner_command.rb +23 -22
- data/lib/rubygems/commands/pristine_command.rb +83 -62
- data/lib/rubygems/commands/push_command.rb +38 -13
- data/lib/rubygems/commands/query_command.rb +11 -11
- data/lib/rubygems/commands/rdoc_command.rb +23 -28
- data/lib/rubygems/commands/rebuild_command.rb +262 -0
- data/lib/rubygems/commands/search_command.rb +6 -5
- data/lib/rubygems/commands/server_command.rb +4 -3
- data/lib/rubygems/commands/setup_command.rb +137 -154
- data/lib/rubygems/commands/signin_command.rb +10 -9
- data/lib/rubygems/commands/signout_command.rb +8 -7
- data/lib/rubygems/commands/sources_command.rb +34 -33
- data/lib/rubygems/commands/specification_command.rb +25 -20
- data/lib/rubygems/commands/stale_command.rb +5 -4
- data/lib/rubygems/commands/uninstall_command.rb +66 -59
- data/lib/rubygems/commands/unpack_command.rb +23 -30
- data/lib/rubygems/commands/update_command.rb +62 -94
- data/lib/rubygems/commands/which_command.rb +9 -8
- data/lib/rubygems/commands/yank_command.rb +14 -13
- data/lib/rubygems/compatibility.rb +5 -6
- data/lib/rubygems/config_file.rb +160 -50
- data/lib/rubygems/core_ext/kernel_gem.rb +3 -10
- data/lib/rubygems/core_ext/kernel_require.rb +88 -114
- data/lib/rubygems/core_ext/kernel_warn.rb +30 -39
- data/lib/rubygems/core_ext/tcpsocket_init.rb +4 -2
- data/lib/rubygems/defaults.rb +53 -22
- data/lib/rubygems/dependency.rb +34 -36
- data/lib/rubygems/dependency_installer.rb +52 -56
- data/lib/rubygems/dependency_list.rb +8 -7
- data/lib/rubygems/deprecate.rb +80 -75
- data/lib/rubygems/doctor.rb +23 -22
- data/lib/rubygems/errors.rb +6 -8
- data/lib/rubygems/exceptions.rb +20 -18
- data/lib/rubygems/ext/build_error.rb +2 -1
- data/lib/rubygems/ext/builder.rb +56 -32
- data/lib/rubygems/ext/cargo_builder/link_flag_converter.rb +9 -5
- data/lib/rubygems/ext/cargo_builder.rb +158 -131
- data/lib/rubygems/ext/cmake_builder.rb +9 -4
- data/lib/rubygems/ext/configure_builder.rb +9 -3
- data/lib/rubygems/ext/ext_conf_builder.rb +19 -15
- data/lib/rubygems/ext/rake_builder.rb +14 -7
- data/lib/rubygems/ext.rb +8 -7
- data/lib/rubygems/gem_runner.rb +23 -9
- data/lib/rubygems/gemcutter_utilities/webauthn_listener/response.rb +163 -0
- data/lib/rubygems/gemcutter_utilities/webauthn_listener.rb +105 -0
- data/lib/rubygems/gemcutter_utilities/webauthn_poller.rb +80 -0
- data/lib/rubygems/gemcutter_utilities.rb +141 -63
- data/lib/rubygems/gemspec_helpers.rb +19 -0
- data/lib/rubygems/install_default_message.rb +3 -2
- data/lib/rubygems/install_message.rb +3 -2
- data/lib/rubygems/install_update_options.rb +72 -67
- data/lib/rubygems/installer.rb +148 -130
- data/lib/rubygems/installer_uninstaller_utils.rb +2 -4
- data/lib/rubygems/local_remote_options.rb +24 -28
- data/lib/rubygems/name_tuple.rb +10 -11
- data/lib/rubygems/package/digest_io.rb +2 -1
- data/lib/rubygems/package/file_source.rb +3 -2
- data/lib/rubygems/package/io_source.rb +1 -0
- data/lib/rubygems/package/old.rb +11 -10
- data/lib/rubygems/package/source.rb +1 -0
- data/lib/rubygems/package/tar_header.rb +125 -91
- data/lib/rubygems/package/tar_reader/entry.rb +106 -29
- data/lib/rubygems/package/tar_reader.rb +16 -39
- data/lib/rubygems/package/tar_writer.rb +29 -26
- data/lib/rubygems/package.rb +122 -84
- data/lib/rubygems/package_task.rb +7 -6
- data/lib/rubygems/path_support.rb +11 -11
- data/lib/rubygems/platform.rb +119 -70
- data/lib/rubygems/psych_tree.rb +6 -1
- data/lib/rubygems/query_utils.rb +46 -48
- data/lib/rubygems/rdoc.rb +13 -3
- data/lib/rubygems/remote_fetcher.rb +47 -39
- data/lib/rubygems/request/connection_pools.rb +6 -6
- data/lib/rubygems/request/http_pool.rb +2 -1
- data/lib/rubygems/request/https_pool.rb +1 -0
- data/lib/rubygems/request.rb +48 -44
- data/lib/rubygems/request_set/gem_dependency_api.rb +141 -144
- data/lib/rubygems/request_set/lockfile/parser.rb +31 -30
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +24 -14
- data/lib/rubygems/request_set/lockfile.rb +11 -15
- data/lib/rubygems/request_set.rb +25 -23
- data/lib/rubygems/requirement.rb +30 -27
- data/lib/rubygems/resolver/activation_request.rb +7 -10
- data/lib/rubygems/resolver/api_set/gem_parser.rb +7 -3
- data/lib/rubygems/resolver/api_set.rb +20 -13
- data/lib/rubygems/resolver/api_specification.rb +8 -7
- data/lib/rubygems/resolver/best_set.rb +5 -32
- data/lib/rubygems/resolver/composed_set.rb +4 -3
- data/lib/rubygems/resolver/conflict.rb +14 -21
- data/lib/rubygems/resolver/current_set.rb +1 -0
- data/lib/rubygems/resolver/dependency_request.rb +3 -2
- data/lib/rubygems/resolver/git_set.rb +2 -2
- data/lib/rubygems/resolver/git_specification.rb +7 -6
- data/lib/rubygems/resolver/index_set.rb +10 -9
- data/lib/rubygems/resolver/index_specification.rb +8 -6
- data/lib/rubygems/resolver/installed_specification.rb +6 -5
- data/lib/rubygems/resolver/installer_set.rb +19 -22
- data/lib/rubygems/resolver/local_specification.rb +4 -3
- data/lib/rubygems/resolver/lock_set.rb +6 -5
- data/lib/rubygems/resolver/lock_specification.rb +5 -4
- data/lib/rubygems/resolver/requirement_list.rb +1 -0
- data/lib/rubygems/resolver/set.rb +1 -0
- data/lib/rubygems/resolver/source_set.rb +2 -0
- data/lib/rubygems/resolver/spec_specification.rb +8 -0
- data/lib/rubygems/resolver/specification.rb +2 -1
- data/lib/rubygems/resolver/stats.rb +2 -1
- data/lib/rubygems/resolver/vendor_set.rb +2 -1
- data/lib/rubygems/resolver/vendor_specification.rb +4 -3
- data/lib/rubygems/resolver.rb +51 -57
- data/lib/rubygems/s3_uri_signer.rb +18 -16
- data/lib/rubygems/safe_marshal/elements.rb +146 -0
- data/lib/rubygems/safe_marshal/reader.rb +325 -0
- data/lib/rubygems/safe_marshal/visitors/stream_printer.rb +31 -0
- data/lib/rubygems/safe_marshal/visitors/to_ruby.rb +428 -0
- data/lib/rubygems/safe_marshal/visitors/visitor.rb +74 -0
- data/lib/rubygems/safe_marshal.rb +74 -0
- data/lib/rubygems/safe_yaml.rb +14 -26
- data/lib/rubygems/security/policies.rb +48 -49
- data/lib/rubygems/security/policy.rb +25 -28
- data/lib/rubygems/security/signer.rb +16 -7
- data/lib/rubygems/security/trust_dir.rb +12 -13
- data/lib/rubygems/security.rb +40 -66
- data/lib/rubygems/security_option.rb +7 -6
- data/lib/rubygems/shellwords.rb +3 -0
- data/lib/rubygems/source/git.rb +34 -31
- data/lib/rubygems/source/installed.rb +4 -3
- data/lib/rubygems/source/local.rb +49 -49
- data/lib/rubygems/source/lock.rb +2 -3
- data/lib/rubygems/source/specific_file.rb +6 -4
- data/lib/rubygems/source/vendor.rb +1 -2
- data/lib/rubygems/source.rb +37 -31
- data/lib/rubygems/source_list.rb +8 -8
- data/lib/rubygems/spec_fetcher.rb +95 -66
- data/lib/rubygems/specification.rb +342 -404
- data/lib/rubygems/specification_policy.rb +147 -75
- data/lib/rubygems/specification_record.rb +212 -0
- data/lib/rubygems/stub_specification.rb +56 -30
- data/lib/rubygems/target_rbconfig.rb +50 -0
- data/lib/rubygems/text.rb +3 -4
- data/lib/rubygems/uninstaller.rb +67 -48
- data/lib/rubygems/update_suggestion.rb +56 -0
- data/lib/rubygems/uri.rb +10 -10
- data/lib/rubygems/uri_formatter.rb +2 -2
- data/lib/rubygems/user_interaction.rb +50 -40
- data/lib/rubygems/util/licenses.rb +310 -39
- data/lib/rubygems/util/list.rb +4 -1
- data/lib/rubygems/util.rb +19 -20
- data/lib/rubygems/validator.rb +15 -14
- data/lib/rubygems/vendor/molinillo/.document +1 -0
- data/lib/rubygems/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +57 -0
- data/{bundler/lib/bundler → lib/rubygems}/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +11 -11
- data/{bundler/lib/bundler → lib/rubygems}/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/molinillo/lib/molinillo/dependency_graph.rb +3 -3
- data/{bundler/lib/bundler → lib/rubygems}/vendor/molinillo/lib/molinillo/errors.rb +1 -1
- data/lib/rubygems/vendor/molinillo/lib/molinillo/gem_metadata.rb +6 -0
- data/{bundler/lib/bundler → lib/rubygems}/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +2 -2
- data/{bundler/lib/bundler → lib/rubygems}/vendor/molinillo/lib/molinillo/modules/ui.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/molinillo/lib/molinillo/resolution.rb +4 -4
- data/{bundler/lib/bundler → lib/rubygems}/vendor/molinillo/lib/molinillo/resolver.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/molinillo/lib/molinillo/state.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/molinillo/lib/molinillo.rb +2 -2
- data/lib/rubygems/vendor/net-http/.document +1 -0
- data/lib/rubygems/vendor/net-http/COPYING +56 -0
- data/lib/rubygems/vendor/net-http/lib/net/http/exceptions.rb +34 -0
- data/lib/rubygems/vendor/net-http/lib/net/http/generic_request.rb +414 -0
- data/lib/rubygems/vendor/net-http/lib/net/http/header.rb +981 -0
- data/lib/rubygems/vendor/net-http/lib/net/http/proxy_delta.rb +17 -0
- data/lib/rubygems/vendor/net-http/lib/net/http/request.rb +88 -0
- data/lib/rubygems/vendor/net-http/lib/net/http/requests.rb +430 -0
- data/lib/rubygems/vendor/net-http/lib/net/http/response.rb +738 -0
- data/lib/rubygems/vendor/net-http/lib/net/http/responses.rb +1174 -0
- data/lib/rubygems/vendor/net-http/lib/net/http/status.rb +84 -0
- data/lib/rubygems/vendor/net-http/lib/net/http.rb +2580 -0
- data/lib/rubygems/vendor/net-http/lib/net/https.rb +23 -0
- data/lib/rubygems/vendor/net-protocol/.document +1 -0
- data/lib/rubygems/vendor/net-protocol/lib/net/protocol.rb +544 -0
- data/lib/rubygems/vendor/optparse/.document +1 -0
- data/lib/rubygems/vendor/optparse/COPYING +56 -0
- data/lib/rubygems/{optparse → vendor/optparse}/lib/optparse/ac.rb +16 -0
- data/lib/rubygems/{optparse → vendor/optparse}/lib/optparse/kwargs.rb +8 -3
- data/lib/rubygems/vendor/optparse/lib/optparse/uri.rb +7 -0
- data/lib/rubygems/{optparse → vendor/optparse}/lib/optparse/version.rb +9 -0
- data/lib/rubygems/{optparse → vendor/optparse}/lib/optparse.rb +206 -83
- data/lib/rubygems/vendor/resolv/.document +1 -0
- data/lib/rubygems/vendor/resolv/COPYING +56 -0
- data/lib/rubygems/vendor/resolv/lib/resolv.rb +3455 -0
- data/lib/rubygems/vendor/securerandom/.document +1 -0
- data/lib/rubygems/vendor/securerandom/COPYING +56 -0
- data/lib/rubygems/vendor/securerandom/lib/securerandom.rb +102 -0
- data/lib/rubygems/vendor/timeout/.document +1 -0
- data/lib/rubygems/vendor/timeout/COPYING +56 -0
- data/lib/rubygems/vendor/timeout/lib/timeout.rb +198 -0
- data/lib/rubygems/vendor/tsort/.document +1 -0
- data/lib/rubygems/vendor/tsort/lib/tsort.rb +455 -0
- data/lib/rubygems/vendor/uri/.document +1 -0
- data/lib/rubygems/vendor/uri/COPYING +56 -0
- data/lib/rubygems/vendor/uri/lib/uri/common.rb +876 -0
- data/lib/rubygems/vendor/uri/lib/uri/file.rb +100 -0
- data/lib/rubygems/vendor/uri/lib/uri/ftp.rb +267 -0
- data/lib/rubygems/vendor/uri/lib/uri/generic.rb +1578 -0
- data/lib/rubygems/vendor/uri/lib/uri/http.rb +125 -0
- data/lib/rubygems/vendor/uri/lib/uri/https.rb +23 -0
- data/lib/rubygems/vendor/uri/lib/uri/ldap.rb +261 -0
- data/lib/rubygems/vendor/uri/lib/uri/ldaps.rb +22 -0
- data/lib/rubygems/vendor/uri/lib/uri/mailto.rb +293 -0
- data/lib/rubygems/vendor/uri/lib/uri/rfc2396_parser.rb +546 -0
- data/lib/rubygems/vendor/uri/lib/uri/rfc3986_parser.rb +206 -0
- data/lib/rubygems/vendor/uri/lib/uri/version.rb +6 -0
- data/lib/rubygems/vendor/uri/lib/uri/ws.rb +83 -0
- data/lib/rubygems/vendor/uri/lib/uri/wss.rb +23 -0
- data/lib/rubygems/vendor/uri/lib/uri.rb +104 -0
- data/{bundler/lib/bundler → lib/rubygems}/vendored_molinillo.rb +0 -1
- data/lib/rubygems/vendored_net_http.rb +5 -0
- data/lib/rubygems/vendored_optparse.rb +3 -0
- data/lib/rubygems/vendored_securerandom.rb +3 -0
- data/lib/rubygems/vendored_timeout.rb +5 -0
- data/lib/rubygems/vendored_tsort.rb +3 -0
- data/lib/rubygems/version.rb +57 -45
- data/lib/rubygems/version_option.rb +6 -8
- data/lib/rubygems/yaml_serializer.rb +98 -0
- data/lib/rubygems.rb +191 -133
- data/rubygems-update.gemspec +16 -9
- data/setup.rb +12 -9
- metadata +233 -307
- data/POLICIES.md +0 -100
- data/bin/gem +0 -13
- data/bundler/lib/bundler/dep_proxy.rb +0 -55
- data/bundler/lib/bundler/templates/gems.rb +0 -5
- data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +0 -5
- data/bundler/lib/bundler/templates/newgem/travis.yml.tt +0 -6
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +0 -6
- data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +0 -154
- data/bundler/lib/bundler/version_ranges.rb +0 -122
- data/lib/rubygems/indexer.rb +0 -427
- data/lib/rubygems/mock_gem_ui.rb +0 -85
- data/lib/rubygems/optparse/lib/optparse/uri.rb +0 -7
- data/lib/rubygems/optparse.rb +0 -3
- data/lib/rubygems/resolver/molinillo/LICENSE +0 -9
- data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
- data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb +0 -88
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/action.rb +0 -36
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +0 -66
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +0 -62
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +0 -63
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +0 -61
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb +0 -126
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/set_payload.rb +0 -46
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/tag.rb +0 -36
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb +0 -164
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +0 -255
- data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +0 -143
- data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +0 -6
- data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb +0 -112
- data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb +0 -67
- data/lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb +0 -839
- data/lib/rubygems/resolver/molinillo/lib/molinillo/resolver.rb +0 -46
- data/lib/rubygems/resolver/molinillo/lib/molinillo/state.rb +0 -58
- data/lib/rubygems/resolver/molinillo/lib/molinillo.rb +0 -11
- data/lib/rubygems/resolver/molinillo.rb +0 -2
- data/lib/rubygems/tsort/LICENSE.txt +0 -22
- data/lib/rubygems/tsort/lib/tsort.rb +0 -454
- data/lib/rubygems/tsort.rb +0 -3
- data/test/rubygems/alternate_cert.pem +0 -19
- data/test/rubygems/alternate_cert_32.pem +0 -19
- data/test/rubygems/alternate_key.pem +0 -27
- data/test/rubygems/bad_rake.rb +0 -2
- data/test/rubygems/ca_cert.pem +0 -77
- data/test/rubygems/child_cert.pem +0 -20
- data/test/rubygems/child_cert_32.pem +0 -20
- data/test/rubygems/child_key.pem +0 -27
- data/test/rubygems/client.pem +0 -107
- data/test/rubygems/data/excon-0.7.7.gemspec.rz +0 -0
- data/test/rubygems/data/gem-private_key.pem +0 -27
- data/test/rubygems/data/gem-public_cert.pem +0 -20
- 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 +0 -30
- data/test/rubygems/expired_cert.pem +0 -19
- data/test/rubygems/foo/discover.rb +0 -1
- data/test/rubygems/future_cert.pem +0 -19
- data/test/rubygems/future_cert_32.pem +0 -19
- data/test/rubygems/good_rake.rb +0 -2
- data/test/rubygems/grandchild_cert.pem +0 -20
- data/test/rubygems/grandchild_cert_32.pem +0 -20
- data/test/rubygems/grandchild_key.pem +0 -27
- data/test/rubygems/helper.rb +0 -1622
- data/test/rubygems/installer_test_case.rb +0 -247
- data/test/rubygems/invalid_client.pem +0 -49
- data/test/rubygems/invalid_issuer_cert.pem +0 -20
- data/test/rubygems/invalid_issuer_cert_32.pem +0 -20
- data/test/rubygems/invalid_key.pem +0 -27
- data/test/rubygems/invalid_signer_cert.pem +0 -19
- data/test/rubygems/invalid_signer_cert_32.pem +0 -19
- data/test/rubygems/invalidchild_cert.pem +0 -20
- data/test/rubygems/invalidchild_cert_32.pem +0 -20
- data/test/rubygems/invalidchild_key.pem +0 -27
- data/test/rubygems/package/tar_test_case.rb +0 -139
- 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 +0 -3
- data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -4
- data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +0 -3
- data/test/rubygems/private3072_key.pem +0 -40
- data/test/rubygems/private_ec_key.pem +0 -9
- data/test/rubygems/private_key.pem +0 -27
- data/test/rubygems/public3072_cert.pem +0 -25
- data/test/rubygems/public_cert.pem +0 -20
- data/test/rubygems/public_cert_32.pem +0 -19
- data/test/rubygems/public_key.pem +0 -9
- data/test/rubygems/rubygems/commands/crash_command.rb +0 -4
- data/test/rubygems/rubygems_plugin.rb +0 -23
- data/test/rubygems/sff/discover.rb +0 -1
- data/test/rubygems/simple_gem.rb +0 -67
- data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -7
- data/test/rubygems/specifications/foo-0.0.1-x86-mswin32.gemspec +0 -0
- data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +0 -12
- data/test/rubygems/ssl_cert.pem +0 -80
- data/test/rubygems/ssl_key.pem +0 -27
- data/test/rubygems/test_bundled_ca.rb +0 -60
- data/test/rubygems/test_config.rb +0 -27
- data/test/rubygems/test_deprecate.rb +0 -157
- data/test/rubygems/test_exit.rb +0 -11
- data/test/rubygems/test_gem.rb +0 -2112
- data/test/rubygems/test_gem_available_set.rb +0 -129
- data/test/rubygems/test_gem_bundler_version_finder.rb +0 -125
- data/test/rubygems/test_gem_command.rb +0 -400
- data/test/rubygems/test_gem_command_manager.rb +0 -334
- data/test/rubygems/test_gem_commands_build_command.rb +0 -727
- data/test/rubygems/test_gem_commands_cert_command.rb +0 -867
- data/test/rubygems/test_gem_commands_check_command.rb +0 -67
- data/test/rubygems/test_gem_commands_cleanup_command.rb +0 -291
- data/test/rubygems/test_gem_commands_contents_command.rb +0 -270
- data/test/rubygems/test_gem_commands_dependency_command.rb +0 -227
- data/test/rubygems/test_gem_commands_environment_command.rb +0 -167
- data/test/rubygems/test_gem_commands_fetch_command.rb +0 -257
- data/test/rubygems/test_gem_commands_generate_index_command.rb +0 -80
- data/test/rubygems/test_gem_commands_help_command.rb +0 -93
- data/test/rubygems/test_gem_commands_info_command.rb +0 -43
- data/test/rubygems/test_gem_commands_install_command.rb +0 -1553
- data/test/rubygems/test_gem_commands_list_command.rb +0 -32
- data/test/rubygems/test_gem_commands_lock_command.rb +0 -66
- data/test/rubygems/test_gem_commands_mirror.rb +0 -19
- data/test/rubygems/test_gem_commands_open_command.rb +0 -97
- data/test/rubygems/test_gem_commands_outdated_command.rb +0 -49
- data/test/rubygems/test_gem_commands_owner_command.rb +0 -326
- data/test/rubygems/test_gem_commands_pristine_command.rb +0 -659
- data/test/rubygems/test_gem_commands_push_command.rb +0 -477
- data/test/rubygems/test_gem_commands_query_command.rb +0 -857
- data/test/rubygems/test_gem_commands_search_command.rb +0 -15
- data/test/rubygems/test_gem_commands_server_command.rb +0 -19
- data/test/rubygems/test_gem_commands_setup_command.rb +0 -447
- data/test/rubygems/test_gem_commands_signin_command.rb +0 -219
- data/test/rubygems/test_gem_commands_signout_command.rb +0 -30
- data/test/rubygems/test_gem_commands_sources_command.rb +0 -534
- data/test/rubygems/test_gem_commands_specification_command.rb +0 -276
- data/test/rubygems/test_gem_commands_stale_command.rb +0 -42
- data/test/rubygems/test_gem_commands_uninstall_command.rb +0 -504
- data/test/rubygems/test_gem_commands_unpack_command.rb +0 -223
- data/test/rubygems/test_gem_commands_update_command.rb +0 -835
- data/test/rubygems/test_gem_commands_which_command.rb +0 -84
- data/test/rubygems/test_gem_commands_yank_command.rb +0 -180
- data/test/rubygems/test_gem_config_file.rb +0 -504
- data/test/rubygems/test_gem_dependency.rb +0 -395
- data/test/rubygems/test_gem_dependency_installer.rb +0 -1155
- data/test/rubygems/test_gem_dependency_list.rb +0 -264
- data/test/rubygems/test_gem_dependency_resolution_error.rb +0 -26
- data/test/rubygems/test_gem_doctor.rb +0 -194
- data/test/rubygems/test_gem_ext_builder.rb +0 -338
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore +0 -1
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.lock +0 -243
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.toml +0 -10
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/build.rb +0 -21
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +0 -10
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/src/lib.rs +0 -27
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/.gitignore +0 -1
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +0 -243
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +0 -10
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/build.rb +0 -21
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +0 -8
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +0 -39
- data/test/rubygems/test_gem_ext_cargo_builder.rb +0 -178
- data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +0 -33
- data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +0 -75
- data/test/rubygems/test_gem_ext_cmake_builder.rb +0 -83
- data/test/rubygems/test_gem_ext_configure_builder.rb +0 -79
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +0 -230
- data/test/rubygems/test_gem_ext_rake_builder.rb +0 -112
- data/test/rubygems/test_gem_gem_runner.rb +0 -113
- data/test/rubygems/test_gem_gemcutter_utilities.rb +0 -272
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -59
- data/test/rubygems/test_gem_indexer.rb +0 -361
- data/test/rubygems/test_gem_install_update_options.rb +0 -207
- data/test/rubygems/test_gem_installer.rb +0 -2394
- data/test/rubygems/test_gem_local_remote_options.rb +0 -132
- data/test/rubygems/test_gem_name_tuple.rb +0 -42
- data/test/rubygems/test_gem_package.rb +0 -1178
- data/test/rubygems/test_gem_package_old.rb +0 -90
- data/test/rubygems/test_gem_package_tar_header.rb +0 -225
- data/test/rubygems/test_gem_package_tar_reader.rb +0 -87
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +0 -152
- data/test/rubygems/test_gem_package_tar_writer.rb +0 -330
- data/test/rubygems/test_gem_package_task.rb +0 -117
- data/test/rubygems/test_gem_path_support.rb +0 -138
- data/test/rubygems/test_gem_platform.rb +0 -391
- data/test/rubygems/test_gem_rdoc.rb +0 -136
- data/test/rubygems/test_gem_remote_fetcher.rb +0 -1226
- data/test/rubygems/test_gem_request.rb +0 -541
- data/test/rubygems/test_gem_request_connection_pools.rb +0 -150
- data/test/rubygems/test_gem_request_set.rb +0 -671
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +0 -847
- data/test/rubygems/test_gem_request_set_lockfile.rb +0 -468
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +0 -543
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +0 -306
- data/test/rubygems/test_gem_requirement.rb +0 -498
- data/test/rubygems/test_gem_resolver.rb +0 -791
- data/test/rubygems/test_gem_resolver_activation_request.rb +0 -42
- data/test/rubygems/test_gem_resolver_api_set.rb +0 -209
- data/test/rubygems/test_gem_resolver_api_specification.rb +0 -166
- data/test/rubygems/test_gem_resolver_best_set.rb +0 -158
- data/test/rubygems/test_gem_resolver_composed_set.rb +0 -43
- data/test/rubygems/test_gem_resolver_conflict.rb +0 -81
- data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -82
- data/test/rubygems/test_gem_resolver_git_set.rb +0 -187
- data/test/rubygems/test_gem_resolver_git_specification.rb +0 -113
- data/test/rubygems/test_gem_resolver_index_set.rb +0 -87
- data/test/rubygems/test_gem_resolver_index_specification.rb +0 -92
- data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -46
- data/test/rubygems/test_gem_resolver_installer_set.rb +0 -275
- data/test/rubygems/test_gem_resolver_local_specification.rb +0 -43
- data/test/rubygems/test_gem_resolver_lock_set.rb +0 -61
- data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -97
- data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -18
- data/test/rubygems/test_gem_resolver_specification.rb +0 -62
- data/test/rubygems/test_gem_resolver_vendor_set.rb +0 -81
- data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -81
- data/test/rubygems/test_gem_security.rb +0 -340
- data/test/rubygems/test_gem_security_policy.rb +0 -535
- data/test/rubygems/test_gem_security_signer.rb +0 -217
- data/test/rubygems/test_gem_security_trust_dir.rb +0 -98
- data/test/rubygems/test_gem_silent_ui.rb +0 -116
- data/test/rubygems/test_gem_source.rb +0 -253
- data/test/rubygems/test_gem_source_fetch_problem.rb +0 -36
- data/test/rubygems/test_gem_source_git.rb +0 -303
- data/test/rubygems/test_gem_source_installed.rb +0 -34
- data/test/rubygems/test_gem_source_list.rb +0 -118
- data/test/rubygems/test_gem_source_local.rb +0 -106
- data/test/rubygems/test_gem_source_lock.rb +0 -112
- data/test/rubygems/test_gem_source_specific_file.rb +0 -75
- data/test/rubygems/test_gem_source_subpath_problem.rb +0 -49
- data/test/rubygems/test_gem_source_vendor.rb +0 -29
- data/test/rubygems/test_gem_spec_fetcher.rb +0 -337
- data/test/rubygems/test_gem_specification.rb +0 -3756
- data/test/rubygems/test_gem_stream_ui.rb +0 -224
- data/test/rubygems/test_gem_stub_specification.rb +0 -277
- data/test/rubygems/test_gem_text.rb +0 -102
- data/test/rubygems/test_gem_uninstaller.rb +0 -674
- data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -30
- data/test/rubygems/test_gem_uri.rb +0 -39
- data/test/rubygems/test_gem_uri_formatter.rb +0 -26
- data/test/rubygems/test_gem_util.rb +0 -90
- data/test/rubygems/test_gem_validator.rb +0 -42
- data/test/rubygems/test_gem_version.rb +0 -295
- data/test/rubygems/test_gem_version_option.rb +0 -164
- data/test/rubygems/test_kernel.rb +0 -129
- data/test/rubygems/test_project_sanity.rb +0 -20
- data/test/rubygems/test_remote_fetch_error.rb +0 -19
- data/test/rubygems/test_require.rb +0 -719
- data/test/rubygems/test_rubygems.rb +0 -74
- data/test/rubygems/utilities.rb +0 -371
- data/test/rubygems/wrong_key_cert.pem +0 -19
- data/test/rubygems/wrong_key_cert_32.pem +0 -19
- data/test/test_changelog_generator.rb +0 -17
- /data/{lib/rubygems/optparse → bundler/lib/bundler/vendor/connection_pool}/.document +0 -0
- /data/{lib/rubygems/tsort → bundler/lib/bundler/vendor/fileutils}/.document +0 -0
- /data/{lib/rubygems/optparse → bundler/lib/bundler/vendor/fileutils}/COPYING +0 -0
- /data/{MAINTAINERS.txt → doc/MAINTAINERS.txt} +0 -0
- /data/{UPGRADING.md → doc/rubygems/UPGRADING.md} +0 -0
- /data/{bundler/lib/bundler → lib/rubygems}/vendor/molinillo/LICENSE +0 -0
- /data/{bundler/lib/bundler/vendor/fileutils → lib/rubygems/vendor/net-protocol}/LICENSE.txt +0 -0
- /data/lib/rubygems/{optparse → vendor/optparse}/lib/optionparser.rb +0 -0
- /data/lib/rubygems/{optparse → vendor/optparse}/lib/optparse/date.rb +0 -0
- /data/lib/rubygems/{optparse → vendor/optparse}/lib/optparse/shellwords.rb +0 -0
- /data/lib/rubygems/{optparse → vendor/optparse}/lib/optparse/time.rb +0 -0
- /data/{bundler/lib/bundler/vendor/uri → lib/rubygems/vendor/tsort}/LICENSE.txt +0 -0
data/lib/rubygems.rb
CHANGED
@@ -1,22 +1,24 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
#--
|
3
4
|
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
|
4
5
|
# All rights reserved.
|
5
6
|
# See LICENSE.txt for permissions.
|
6
7
|
#++
|
7
8
|
|
8
|
-
require
|
9
|
+
require "rbconfig"
|
9
10
|
|
10
11
|
module Gem
|
11
|
-
VERSION = "3.
|
12
|
+
VERSION = "3.6.2"
|
12
13
|
end
|
13
14
|
|
14
15
|
# Must be first since it unloads the prelude from 1.9.2
|
15
|
-
require_relative
|
16
|
+
require_relative "rubygems/compatibility"
|
16
17
|
|
17
|
-
require_relative
|
18
|
-
require_relative
|
19
|
-
require_relative
|
18
|
+
require_relative "rubygems/defaults"
|
19
|
+
require_relative "rubygems/deprecate"
|
20
|
+
require_relative "rubygems/errors"
|
21
|
+
require_relative "rubygems/target_rbconfig"
|
20
22
|
|
21
23
|
##
|
22
24
|
# RubyGems is the Ruby standard for publishing and managing third party
|
@@ -105,7 +107,7 @@ require_relative 'rubygems/errors'
|
|
105
107
|
#
|
106
108
|
# == License
|
107
109
|
#
|
108
|
-
# See {LICENSE.txt}[
|
110
|
+
# See {LICENSE.txt}[https://github.com/rubygems/rubygems/blob/master/LICENSE.txt] for permissions.
|
109
111
|
#
|
110
112
|
# Thanks!
|
111
113
|
#
|
@@ -114,15 +116,6 @@ require_relative 'rubygems/errors'
|
|
114
116
|
module Gem
|
115
117
|
RUBYGEMS_DIR = __dir__
|
116
118
|
|
117
|
-
# Taint support is deprecated in Ruby 2.7.
|
118
|
-
# This allows switching ".untaint" to ".tap(&Gem::UNTAINT)",
|
119
|
-
# to avoid deprecation warnings in Ruby 2.7.
|
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')
|
125
|
-
|
126
119
|
##
|
127
120
|
# An Array of Regexps that match windows Ruby platforms.
|
128
121
|
|
@@ -185,6 +178,10 @@ module Gem
|
|
185
178
|
|
186
179
|
@default_source_date_epoch = nil
|
187
180
|
|
181
|
+
@discover_gems_on_require = true
|
182
|
+
|
183
|
+
@target_rbconfig = nil
|
184
|
+
|
188
185
|
##
|
189
186
|
# Try to activate a gem containing +path+. Returns true if
|
190
187
|
# activation succeeded or wasn't needed because it was already
|
@@ -212,7 +209,7 @@ module Gem
|
|
212
209
|
end
|
213
210
|
end
|
214
211
|
|
215
|
-
|
212
|
+
true
|
216
213
|
end
|
217
214
|
|
218
215
|
def self.needs
|
@@ -293,14 +290,14 @@ module Gem
|
|
293
290
|
# The mode needed to read a file as straight binary.
|
294
291
|
|
295
292
|
def self.binary_mode
|
296
|
-
|
293
|
+
"rb"
|
297
294
|
end
|
298
295
|
|
299
296
|
##
|
300
297
|
# The path where gem executables are to be installed.
|
301
298
|
|
302
299
|
def self.bindir(install_dir=Gem.dir)
|
303
|
-
return File.join install_dir,
|
300
|
+
return File.join install_dir, "bin" unless
|
304
301
|
install_dir.to_s == Gem.default_dir.to_s
|
305
302
|
Gem.default_bindir
|
306
303
|
end
|
@@ -309,7 +306,7 @@ module Gem
|
|
309
306
|
# The path were rubygems plugins are to be installed.
|
310
307
|
|
311
308
|
def self.plugindir(install_dir=Gem.dir)
|
312
|
-
File.join install_dir,
|
309
|
+
File.join install_dir, "plugins"
|
313
310
|
end
|
314
311
|
|
315
312
|
##
|
@@ -339,21 +336,11 @@ module Gem
|
|
339
336
|
@configuration = config
|
340
337
|
end
|
341
338
|
|
342
|
-
##
|
343
|
-
# The path to the data directory specified by the gem name. If the
|
344
|
-
# package is not available as a gem, return nil.
|
345
|
-
|
346
|
-
def self.datadir(gem_name)
|
347
|
-
spec = @loaded_specs[gem_name]
|
348
|
-
return nil if spec.nil?
|
349
|
-
spec.datadir
|
350
|
-
end
|
351
|
-
|
352
339
|
##
|
353
340
|
# A Zlib::Deflate.deflate wrapper
|
354
341
|
|
355
342
|
def self.deflate(data)
|
356
|
-
require
|
343
|
+
require "zlib"
|
357
344
|
Zlib::Deflate.deflate data
|
358
345
|
end
|
359
346
|
|
@@ -375,7 +362,7 @@ module Gem
|
|
375
362
|
target = {}
|
376
363
|
env.each_pair do |k,v|
|
377
364
|
case k
|
378
|
-
when
|
365
|
+
when "GEM_HOME", "GEM_PATH", "GEM_SPEC_CACHE"
|
379
366
|
case v
|
380
367
|
when nil, String
|
381
368
|
target[k] = v
|
@@ -412,6 +399,23 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
412
399
|
paths.spec_cache_dir
|
413
400
|
end
|
414
401
|
|
402
|
+
##
|
403
|
+
# The RbConfig object for the deployment target platform.
|
404
|
+
#
|
405
|
+
# This is usually the same as the running platform, but may be
|
406
|
+
# different if you are cross-compiling.
|
407
|
+
|
408
|
+
def self.target_rbconfig
|
409
|
+
@target_rbconfig || Gem::TargetRbConfig.for_running_ruby
|
410
|
+
end
|
411
|
+
|
412
|
+
def self.set_target_rbconfig(rbconfig_path)
|
413
|
+
@target_rbconfig = Gem::TargetRbConfig.from_path(rbconfig_path)
|
414
|
+
Gem::Platform.local(refresh: true)
|
415
|
+
Gem.platforms << Gem::Platform.local unless Gem.platforms.include? Gem::Platform.local
|
416
|
+
@target_rbconfig
|
417
|
+
end
|
418
|
+
|
415
419
|
##
|
416
420
|
# Quietly ensure the Gem directory +dir+ contains all the proper
|
417
421
|
# subdirectories. If we can't create a directory due to a permission
|
@@ -440,9 +444,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
440
444
|
|
441
445
|
def self.ensure_subdirectories(dir, mode, subdirs) # :nodoc:
|
442
446
|
old_umask = File.umask
|
443
|
-
File.umask old_umask |
|
444
|
-
|
445
|
-
require 'fileutils'
|
447
|
+
File.umask old_umask | 0o002
|
446
448
|
|
447
449
|
options = {}
|
448
450
|
|
@@ -451,6 +453,9 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
451
453
|
subdirs.each do |name|
|
452
454
|
subdir = File.join dir, name
|
453
455
|
next if File.exist? subdir
|
456
|
+
|
457
|
+
require "fileutils"
|
458
|
+
|
454
459
|
begin
|
455
460
|
FileUtils.mkdir_p subdir, **options
|
456
461
|
rescue SystemCallError
|
@@ -465,7 +470,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
465
470
|
# distinction as extensions cannot be shared between the two.
|
466
471
|
|
467
472
|
def self.extension_api_version # :nodoc:
|
468
|
-
if
|
473
|
+
if target_rbconfig["ENABLE_SHARED"] == "no"
|
469
474
|
"#{ruby_api_version}-static"
|
470
475
|
else
|
471
476
|
ruby_api_version
|
@@ -491,22 +496,22 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
491
496
|
|
492
497
|
gem_specifications = @gemdeps ? Gem.loaded_specs.values : Gem::Specification.stubs
|
493
498
|
|
494
|
-
files.concat gem_specifications.
|
499
|
+
files.concat gem_specifications.flat_map {|spec|
|
495
500
|
spec.matches_for_glob("#{glob}#{Gem.suffix_pattern}")
|
496
|
-
}
|
501
|
+
}
|
497
502
|
|
498
503
|
# $LOAD_PATH might contain duplicate entries or reference
|
499
504
|
# the spec dirs directly, so we prune.
|
500
505
|
files.uniq! if check_load_path
|
501
506
|
|
502
|
-
|
507
|
+
files
|
503
508
|
end
|
504
509
|
|
505
510
|
def self.find_files_from_load_path(glob) # :nodoc:
|
506
511
|
glob_with_suffixes = "#{glob}#{Gem.suffix_pattern}"
|
507
|
-
$LOAD_PATH.
|
512
|
+
$LOAD_PATH.flat_map do |load_path|
|
508
513
|
Gem::Util.glob_files_in_dir(glob_with_suffixes, load_path)
|
509
|
-
end.
|
514
|
+
end.select {|file| File.file? file }
|
510
515
|
end
|
511
516
|
|
512
517
|
##
|
@@ -526,15 +531,15 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
526
531
|
|
527
532
|
files = find_files_from_load_path glob if check_load_path
|
528
533
|
|
529
|
-
files.concat Gem::Specification.latest_specs(true).
|
534
|
+
files.concat Gem::Specification.latest_specs(true).flat_map {|spec|
|
530
535
|
spec.matches_for_glob("#{glob}#{Gem.suffix_pattern}")
|
531
|
-
}
|
536
|
+
}
|
532
537
|
|
533
538
|
# $LOAD_PATH might contain duplicate entries or reference
|
534
539
|
# the spec dirs directly, so we prune.
|
535
540
|
files.uniq! if check_load_path
|
536
541
|
|
537
|
-
|
542
|
+
files
|
538
543
|
end
|
539
544
|
|
540
545
|
##
|
@@ -575,14 +580,14 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
575
580
|
return i if path.instance_variable_defined?(:@gem_prelude_index)
|
576
581
|
end
|
577
582
|
|
578
|
-
index = $LOAD_PATH.index RbConfig::CONFIG[
|
583
|
+
index = $LOAD_PATH.index RbConfig::CONFIG["sitelibdir"]
|
579
584
|
|
580
585
|
index || 0
|
581
586
|
end
|
582
587
|
|
583
588
|
##
|
584
589
|
# The number of paths in the +$LOAD_PATH+ from activated gems. Used to
|
585
|
-
# prioritize +-I+ and
|
590
|
+
# prioritize +-I+ and <code>ENV['RUBYLIB']</code> entries during +require+.
|
586
591
|
|
587
592
|
def self.activated_gem_paths
|
588
593
|
@activated_gem_paths ||= 0
|
@@ -606,14 +611,24 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
606
611
|
def self.load_yaml
|
607
612
|
return if @yaml_loaded
|
608
613
|
|
609
|
-
require
|
610
|
-
require_relative
|
614
|
+
require "psych"
|
615
|
+
require_relative "rubygems/psych_tree"
|
611
616
|
|
612
|
-
require_relative
|
617
|
+
require_relative "rubygems/safe_yaml"
|
613
618
|
|
614
619
|
@yaml_loaded = true
|
615
620
|
end
|
616
621
|
|
622
|
+
@safe_marshal_loaded = false
|
623
|
+
|
624
|
+
def self.load_safe_marshal
|
625
|
+
return if @safe_marshal_loaded
|
626
|
+
|
627
|
+
require_relative "rubygems/safe_marshal"
|
628
|
+
|
629
|
+
@safe_marshal_loaded = true
|
630
|
+
end
|
631
|
+
|
617
632
|
##
|
618
633
|
# The file name and line number of the caller of the caller of this method.
|
619
634
|
#
|
@@ -740,9 +755,9 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
740
755
|
def self.prefix
|
741
756
|
prefix = File.dirname RUBYGEMS_DIR
|
742
757
|
|
743
|
-
if prefix != File.expand_path(RbConfig::CONFIG[
|
744
|
-
prefix != File.expand_path(RbConfig::CONFIG[
|
745
|
-
|
758
|
+
if prefix != File.expand_path(RbConfig::CONFIG["sitelibdir"]) &&
|
759
|
+
prefix != File.expand_path(RbConfig::CONFIG["libdir"]) &&
|
760
|
+
File.basename(RUBYGEMS_DIR) == "lib"
|
746
761
|
prefix
|
747
762
|
end
|
748
763
|
end
|
@@ -758,44 +773,53 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
758
773
|
# Safely read a file in binary mode on all platforms.
|
759
774
|
|
760
775
|
def self.read_binary(path)
|
761
|
-
|
762
|
-
io.read
|
763
|
-
end
|
764
|
-
rescue Errno::EACCES, Errno::EROFS
|
765
|
-
open_file(path, 'rb') do |io|
|
766
|
-
io.read
|
767
|
-
end
|
776
|
+
File.binread(path)
|
768
777
|
end
|
769
778
|
|
770
779
|
##
|
771
780
|
# Safely write a file in binary mode on all platforms.
|
781
|
+
|
772
782
|
def self.write_binary(path, data)
|
773
|
-
|
774
|
-
|
775
|
-
|
783
|
+
File.binwrite(path, data)
|
784
|
+
rescue Errno::ENOSPC
|
785
|
+
# If we ran out of space but the file exists, it's *guaranteed* to be corrupted.
|
786
|
+
File.delete(path) if File.exist?(path)
|
787
|
+
raise
|
776
788
|
end
|
777
789
|
|
778
790
|
##
|
779
|
-
# Open a file with given flags
|
791
|
+
# Open a file with given flags
|
780
792
|
|
781
793
|
def self.open_file(path, flags, &block)
|
782
|
-
File.open(path, flags)
|
783
|
-
|
784
|
-
|
785
|
-
|
786
|
-
|
787
|
-
|
794
|
+
File.open(path, flags, &block)
|
795
|
+
end
|
796
|
+
|
797
|
+
##
|
798
|
+
# Open a file with given flags, and protect access with a file lock
|
799
|
+
|
800
|
+
def self.open_file_with_lock(path, &block)
|
801
|
+
file_lock = "#{path}.lock"
|
802
|
+
open_file_with_flock(file_lock, &block)
|
803
|
+
ensure
|
804
|
+
require "fileutils"
|
805
|
+
FileUtils.rm_f file_lock
|
806
|
+
end
|
807
|
+
|
808
|
+
##
|
809
|
+
# Open a file with given flags, and protect access with flock
|
810
|
+
|
811
|
+
def self.open_file_with_flock(path, &block)
|
812
|
+
# read-write mode is used rather than read-only in order to support NFS
|
813
|
+
mode = IO::RDWR | IO::APPEND | IO::CREAT | IO::BINARY
|
814
|
+
mode |= IO::SHARE_DELETE if IO.const_defined?(:SHARE_DELETE)
|
815
|
+
|
816
|
+
File.open(path, mode) do |io|
|
817
|
+
begin
|
818
|
+
io.flock(File::LOCK_EX)
|
819
|
+
rescue Errno::ENOSYS, Errno::ENOTSUP
|
788
820
|
end
|
789
821
|
yield io
|
790
822
|
end
|
791
|
-
rescue Errno::ENOLCK # NFS
|
792
|
-
if Thread.main != Thread.current
|
793
|
-
raise
|
794
|
-
else
|
795
|
-
File.open(path, flags) do |io|
|
796
|
-
yield io
|
797
|
-
end
|
798
|
-
end
|
799
823
|
end
|
800
824
|
|
801
825
|
##
|
@@ -805,7 +829,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
805
829
|
if @ruby.nil?
|
806
830
|
@ruby = RbConfig.ruby
|
807
831
|
|
808
|
-
@ruby = "\"#{@ruby}\"" if @ruby
|
832
|
+
@ruby = "\"#{@ruby}\"" if /\s/.match?(@ruby)
|
809
833
|
end
|
810
834
|
|
811
835
|
@ruby
|
@@ -815,13 +839,13 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
815
839
|
# Returns a String containing the API compatibility version of Ruby
|
816
840
|
|
817
841
|
def self.ruby_api_version
|
818
|
-
@ruby_api_version ||=
|
842
|
+
@ruby_api_version ||= target_rbconfig["ruby_version"].dup
|
819
843
|
end
|
820
844
|
|
821
845
|
def self.env_requirement(gem_name)
|
822
846
|
@env_requirements_by_name ||= {}
|
823
847
|
@env_requirements_by_name[gem_name] ||= begin
|
824
|
-
req = ENV["GEM_REQUIREMENT_#{gem_name.upcase}"] ||
|
848
|
+
req = ENV["GEM_REQUIREMENT_#{gem_name.upcase}"] || ">= 0"
|
825
849
|
Gem::Requirement.create(req)
|
826
850
|
end
|
827
851
|
end
|
@@ -844,16 +868,15 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
844
868
|
# Returns the latest release version of RubyGems.
|
845
869
|
|
846
870
|
def self.latest_rubygems_version
|
847
|
-
latest_version_for(
|
848
|
-
raise
|
871
|
+
latest_version_for("rubygems-update") ||
|
872
|
+
raise("Can't find 'rubygems-update' in any repo. Check `gem source list`.")
|
849
873
|
end
|
850
874
|
|
851
875
|
##
|
852
876
|
# Returns the version of the latest release-version of gem +name+
|
853
877
|
|
854
878
|
def self.latest_version_for(name)
|
855
|
-
|
856
|
-
spec and spec.version
|
879
|
+
latest_spec_for(name)&.version
|
857
880
|
end
|
858
881
|
|
859
882
|
##
|
@@ -863,7 +886,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
863
886
|
return @ruby_version if defined? @ruby_version
|
864
887
|
version = RUBY_VERSION.dup
|
865
888
|
|
866
|
-
|
889
|
+
if RUBY_PATCHLEVEL == -1
|
867
890
|
if RUBY_ENGINE == "ruby"
|
868
891
|
desc = RUBY_DESCRIPTION[/\Aruby #{Regexp.quote(RUBY_VERSION)}([^ ]+) /, 1]
|
869
892
|
else
|
@@ -911,7 +934,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
911
934
|
# Glob pattern for require-able path suffixes.
|
912
935
|
|
913
936
|
def self.suffix_pattern
|
914
|
-
@suffix_pattern ||= "{#{suffixes.join(
|
937
|
+
@suffix_pattern ||= "{#{suffixes.join(",")}}"
|
915
938
|
end
|
916
939
|
|
917
940
|
##
|
@@ -939,14 +962,20 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
939
962
|
# Suffixes for require-able paths.
|
940
963
|
|
941
964
|
def self.suffixes
|
942
|
-
@suffixes ||= [
|
943
|
-
|
965
|
+
@suffixes ||= ["",
|
966
|
+
".rb",
|
944
967
|
*%w[DLEXT DLEXT2].map do |key|
|
945
968
|
val = RbConfig::CONFIG[key]
|
946
|
-
next unless val
|
969
|
+
next unless val && !val.empty?
|
947
970
|
".#{val}"
|
948
|
-
end
|
949
|
-
|
971
|
+
end].compact.uniq
|
972
|
+
end
|
973
|
+
|
974
|
+
##
|
975
|
+
# Suffixes for dynamic library require-able paths.
|
976
|
+
|
977
|
+
def self.dynamic_library_suffixes
|
978
|
+
@dynamic_library_suffixes ||= suffixes - [".rb"]
|
950
979
|
end
|
951
980
|
|
952
981
|
##
|
@@ -960,7 +989,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
960
989
|
|
961
990
|
elapsed = Time.now - now
|
962
991
|
|
963
|
-
ui.say "%2$*1$s: %3$3.3fs"
|
992
|
+
ui.say format("%2$*1$s: %3$3.3fs", -width, msg, elapsed) if display
|
964
993
|
|
965
994
|
value
|
966
995
|
end
|
@@ -969,7 +998,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
969
998
|
# Lazily loads DefaultUserInteraction and returns the default UI.
|
970
999
|
|
971
1000
|
def self.ui
|
972
|
-
require_relative
|
1001
|
+
require_relative "rubygems/user_interaction"
|
973
1002
|
|
974
1003
|
Gem::DefaultUserInteraction.ui
|
975
1004
|
end
|
@@ -991,8 +1020,8 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
991
1020
|
|
992
1021
|
def self.win_platform?
|
993
1022
|
if @@win_platform.nil?
|
994
|
-
ruby_platform = RbConfig::CONFIG[
|
995
|
-
@@win_platform =
|
1023
|
+
ruby_platform = RbConfig::CONFIG["host_os"]
|
1024
|
+
@@win_platform = !WIN_PATTERNS.find {|r| ruby_platform =~ r }.nil?
|
996
1025
|
end
|
997
1026
|
|
998
1027
|
@@win_platform
|
@@ -1009,7 +1038,14 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1009
1038
|
# Is this platform Solaris?
|
1010
1039
|
|
1011
1040
|
def self.solaris_platform?
|
1012
|
-
RUBY_PLATFORM
|
1041
|
+
RUBY_PLATFORM.include?("solaris")
|
1042
|
+
end
|
1043
|
+
|
1044
|
+
##
|
1045
|
+
# Is this platform FreeBSD
|
1046
|
+
|
1047
|
+
def self.freebsd_platform?
|
1048
|
+
RbConfig::CONFIG["host_os"].to_s.include?("bsd")
|
1013
1049
|
end
|
1014
1050
|
|
1015
1051
|
##
|
@@ -1017,15 +1053,14 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1017
1053
|
|
1018
1054
|
def self.load_plugin_files(plugins) # :nodoc:
|
1019
1055
|
plugins.each do |plugin|
|
1020
|
-
|
1021
1056
|
# Skip older versions of the GemCutter plugin: Its commands are in
|
1022
1057
|
# RubyGems proper now.
|
1023
1058
|
|
1024
|
-
next if
|
1059
|
+
next if /gemcutter-0\.[0-3]/.match?(plugin)
|
1025
1060
|
|
1026
1061
|
begin
|
1027
1062
|
load plugin
|
1028
|
-
rescue
|
1063
|
+
rescue ScriptError, StandardError => e
|
1029
1064
|
details = "#{plugin.inspect}: #{e.message} (#{e.class})"
|
1030
1065
|
warn "Error loading RubyGems plugin #{details}"
|
1031
1066
|
end
|
@@ -1071,7 +1106,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1071
1106
|
def self.use_gemdeps(path = nil)
|
1072
1107
|
raise_exception = path
|
1073
1108
|
|
1074
|
-
path ||= ENV[
|
1109
|
+
path ||= ENV["RUBYGEMS_GEMDEPS"]
|
1075
1110
|
return unless path
|
1076
1111
|
|
1077
1112
|
path = path.dup
|
@@ -1087,8 +1122,6 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1087
1122
|
end
|
1088
1123
|
end
|
1089
1124
|
|
1090
|
-
path.tap(&Gem::UNTAINT)
|
1091
|
-
|
1092
1125
|
unless File.file? path
|
1093
1126
|
return unless raise_exception
|
1094
1127
|
|
@@ -1096,17 +1129,15 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1096
1129
|
end
|
1097
1130
|
|
1098
1131
|
ENV["BUNDLE_GEMFILE"] ||= File.expand_path(path)
|
1099
|
-
require_relative
|
1132
|
+
require_relative "rubygems/user_interaction"
|
1100
1133
|
require "bundler"
|
1101
1134
|
begin
|
1102
1135
|
Gem::DefaultUserInteraction.use_ui(ui) do
|
1103
|
-
|
1104
|
-
Bundler.
|
1105
|
-
@gemdeps = Bundler.setup
|
1106
|
-
end
|
1107
|
-
ensure
|
1108
|
-
Gem::DefaultUserInteraction.ui.close
|
1136
|
+
Bundler.ui.silence do
|
1137
|
+
@gemdeps = Bundler.setup
|
1109
1138
|
end
|
1139
|
+
ensure
|
1140
|
+
Gem::DefaultUserInteraction.ui.close
|
1110
1141
|
end
|
1111
1142
|
rescue Bundler::BundlerError => e
|
1112
1143
|
warn e.message
|
@@ -1152,7 +1183,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1152
1183
|
# This is used throughout RubyGems for enabling reproducible builds.
|
1153
1184
|
|
1154
1185
|
def self.source_date_epoch
|
1155
|
-
Time.at(
|
1186
|
+
Time.at(source_date_epoch_string.to_i).utc.freeze
|
1156
1187
|
end
|
1157
1188
|
|
1158
1189
|
# FIX: Almost everywhere else we use the `def self.` way of defining class
|
@@ -1163,8 +1194,16 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1163
1194
|
# RubyGems distributors (like operating system package managers) can
|
1164
1195
|
# disable RubyGems update by setting this to error message printed to
|
1165
1196
|
# end-users on gem update --system instead of actual update.
|
1197
|
+
|
1166
1198
|
attr_accessor :disable_system_update_message
|
1167
1199
|
|
1200
|
+
##
|
1201
|
+
# Whether RubyGems should enhance builtin `require` to automatically
|
1202
|
+
# check whether the path required is present in installed gems, and
|
1203
|
+
# automatically activate them and add them to `$LOAD_PATH`.
|
1204
|
+
|
1205
|
+
attr_accessor :discover_gems_on_require
|
1206
|
+
|
1168
1207
|
##
|
1169
1208
|
# Hash of loaded Gem::Specification keyed by name
|
1170
1209
|
|
@@ -1213,9 +1252,16 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1213
1252
|
##
|
1214
1253
|
# Find a Gem::Specification of default gem from +path+
|
1215
1254
|
|
1255
|
+
def find_default_spec(path)
|
1256
|
+
@path_to_default_spec_map[path]
|
1257
|
+
end
|
1258
|
+
|
1259
|
+
##
|
1260
|
+
# Find an unresolved Gem::Specification of default gem from +path+
|
1261
|
+
|
1216
1262
|
def find_unresolved_default_spec(path)
|
1217
1263
|
default_spec = @path_to_default_spec_map[path]
|
1218
|
-
|
1264
|
+
default_spec if default_spec && loaded_specs[default_spec.name] != default_spec
|
1219
1265
|
end
|
1220
1266
|
|
1221
1267
|
##
|
@@ -1293,33 +1339,34 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1293
1339
|
|
1294
1340
|
MARSHAL_SPEC_DIR = "quick/Marshal.#{Gem.marshal_version}/".freeze
|
1295
1341
|
|
1296
|
-
autoload :
|
1297
|
-
autoload :
|
1298
|
-
autoload :Dependency, File.expand_path(
|
1299
|
-
autoload :DependencyList, File.expand_path(
|
1300
|
-
autoload :Installer, File.expand_path(
|
1301
|
-
autoload :Licenses, File.expand_path(
|
1302
|
-
autoload :NameTuple, File.expand_path(
|
1303
|
-
autoload :PathSupport, File.expand_path(
|
1304
|
-
autoload :RequestSet, File.expand_path(
|
1305
|
-
autoload :
|
1306
|
-
autoload :
|
1307
|
-
autoload :
|
1308
|
-
autoload :
|
1309
|
-
autoload :
|
1310
|
-
autoload :
|
1311
|
-
autoload :
|
1342
|
+
autoload :ConfigFile, File.expand_path("rubygems/config_file", __dir__)
|
1343
|
+
autoload :CIDetector, File.expand_path("rubygems/ci_detector", __dir__)
|
1344
|
+
autoload :Dependency, File.expand_path("rubygems/dependency", __dir__)
|
1345
|
+
autoload :DependencyList, File.expand_path("rubygems/dependency_list", __dir__)
|
1346
|
+
autoload :Installer, File.expand_path("rubygems/installer", __dir__)
|
1347
|
+
autoload :Licenses, File.expand_path("rubygems/util/licenses", __dir__)
|
1348
|
+
autoload :NameTuple, File.expand_path("rubygems/name_tuple", __dir__)
|
1349
|
+
autoload :PathSupport, File.expand_path("rubygems/path_support", __dir__)
|
1350
|
+
autoload :RequestSet, File.expand_path("rubygems/request_set", __dir__)
|
1351
|
+
autoload :Requirement, File.expand_path("rubygems/requirement", __dir__)
|
1352
|
+
autoload :Resolver, File.expand_path("rubygems/resolver", __dir__)
|
1353
|
+
autoload :Source, File.expand_path("rubygems/source", __dir__)
|
1354
|
+
autoload :SourceList, File.expand_path("rubygems/source_list", __dir__)
|
1355
|
+
autoload :SpecFetcher, File.expand_path("rubygems/spec_fetcher", __dir__)
|
1356
|
+
autoload :SpecificationPolicy, File.expand_path("rubygems/specification_policy", __dir__)
|
1357
|
+
autoload :Util, File.expand_path("rubygems/util", __dir__)
|
1358
|
+
autoload :Version, File.expand_path("rubygems/version", __dir__)
|
1312
1359
|
end
|
1313
1360
|
|
1314
|
-
require_relative
|
1315
|
-
require_relative
|
1361
|
+
require_relative "rubygems/exceptions"
|
1362
|
+
require_relative "rubygems/specification"
|
1316
1363
|
|
1317
1364
|
# REFACTOR: This should be pulled out into some kind of hacks file.
|
1318
1365
|
begin
|
1319
1366
|
##
|
1320
1367
|
# Defaults the operating system (or packager) wants to provide for RubyGems.
|
1321
1368
|
|
1322
|
-
require
|
1369
|
+
require "rubygems/defaults/operating_system"
|
1323
1370
|
rescue LoadError
|
1324
1371
|
# Ignored
|
1325
1372
|
rescue StandardError => e
|
@@ -1344,6 +1391,17 @@ end
|
|
1344
1391
|
# Loads the default specs.
|
1345
1392
|
Gem::Specification.load_defaults
|
1346
1393
|
|
1347
|
-
require_relative
|
1348
|
-
|
1349
|
-
|
1394
|
+
require_relative "rubygems/core_ext/kernel_gem"
|
1395
|
+
|
1396
|
+
path = File.join(__dir__, "rubygems/core_ext/kernel_require.rb")
|
1397
|
+
# When https://bugs.ruby-lang.org/issues/17259 is available, there is no need to override Kernel#warn
|
1398
|
+
if RUBY_ENGINE == "truffleruby" ||
|
1399
|
+
RUBY_ENGINE == "ruby"
|
1400
|
+
file = "<internal:#{path}>"
|
1401
|
+
else
|
1402
|
+
require_relative "rubygems/core_ext/kernel_warn"
|
1403
|
+
file = path
|
1404
|
+
end
|
1405
|
+
eval File.read(path), nil, file
|
1406
|
+
|
1407
|
+
require ENV["BUNDLER_SETUP"] if ENV["BUNDLER_SETUP"] && !defined?(Bundler)
|