rubygems-update 3.5.3 → 3.7.1
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 +1410 -686
- data/CODE_OF_CONDUCT.md +79 -28
- data/CONTRIBUTING.md +4 -226
- data/Manifest.txt +107 -83
- data/README.md +16 -11
- data/SECURITY.md +7 -0
- data/bundler/CHANGELOG.md +1525 -931
- data/bundler/README.md +9 -9
- data/bundler/bundler.gemspec +2 -2
- data/bundler/lib/bundler/build_metadata.rb +10 -11
- data/bundler/lib/bundler/checksum.rb +22 -12
- data/bundler/lib/bundler/cli/add.rb +3 -1
- data/bundler/lib/bundler/cli/binstubs.rb +1 -1
- data/bundler/lib/bundler/cli/check.rb +3 -3
- data/bundler/lib/bundler/cli/common.rb +1 -1
- data/bundler/lib/bundler/cli/config.rb +2 -2
- data/bundler/lib/bundler/cli/console.rb +8 -10
- data/bundler/lib/bundler/cli/doctor/diagnose.rb +167 -0
- data/bundler/lib/bundler/cli/doctor/ssl.rb +249 -0
- data/bundler/lib/bundler/cli/doctor.rb +27 -151
- data/bundler/lib/bundler/cli/exec.rb +1 -0
- data/bundler/lib/bundler/cli/fund.rb +1 -1
- data/bundler/lib/bundler/cli/gem.rb +74 -46
- data/bundler/lib/bundler/cli/info.rb +6 -6
- data/bundler/lib/bundler/cli/inject.rb +3 -3
- data/bundler/lib/bundler/cli/install.rb +19 -10
- data/bundler/lib/bundler/cli/issue.rb +3 -3
- data/bundler/lib/bundler/cli/lock.rb +32 -11
- data/bundler/lib/bundler/cli/outdated.rb +23 -23
- data/bundler/lib/bundler/cli/plugin.rb +3 -2
- data/bundler/lib/bundler/cli/pristine.rb +1 -1
- data/bundler/lib/bundler/cli/show.rb +3 -3
- data/bundler/lib/bundler/cli/update.rb +3 -3
- data/bundler/lib/bundler/cli.rb +75 -145
- data/bundler/lib/bundler/compact_index_client/cache.rb +48 -73
- data/bundler/lib/bundler/compact_index_client/cache_file.rb +0 -5
- data/bundler/lib/bundler/compact_index_client/parser.rb +84 -0
- data/bundler/lib/bundler/compact_index_client/updater.rb +6 -16
- data/bundler/lib/bundler/compact_index_client.rb +52 -85
- data/bundler/lib/bundler/constants.rb +8 -1
- data/bundler/lib/bundler/current_ruby.rb +48 -34
- data/bundler/lib/bundler/definition.rb +501 -328
- data/bundler/lib/bundler/dependency.rb +93 -47
- data/bundler/lib/bundler/dsl.rb +147 -103
- data/bundler/lib/bundler/endpoint_specification.rb +30 -3
- data/bundler/lib/bundler/env.rb +1 -1
- data/bundler/lib/bundler/environment_preserver.rb +5 -23
- data/bundler/lib/bundler/errors.rb +53 -5
- data/bundler/lib/bundler/feature_flag.rb +18 -18
- data/bundler/lib/bundler/fetcher/compact_index.rb +16 -25
- data/bundler/lib/bundler/fetcher/dependency.rb +2 -1
- data/bundler/lib/bundler/fetcher/downloader.rb +34 -8
- data/bundler/lib/bundler/fetcher.rb +63 -26
- data/bundler/lib/bundler/force_platform.rb +0 -2
- data/bundler/lib/bundler/friendly_errors.rb +3 -2
- data/bundler/lib/bundler/gem_helper.rb +1 -1
- data/bundler/lib/bundler/gem_version_promoter.rb +42 -40
- data/bundler/lib/bundler/index.rb +7 -2
- data/bundler/lib/bundler/injector.rb +14 -16
- data/bundler/lib/bundler/inline.rb +42 -17
- data/bundler/lib/bundler/installer/gem_installer.rb +4 -3
- data/bundler/lib/bundler/installer/parallel_installer.rb +3 -2
- data/bundler/lib/bundler/installer/standalone.rb +2 -5
- data/bundler/lib/bundler/installer.rb +22 -45
- data/bundler/lib/bundler/lazy_specification.rb +121 -48
- data/bundler/lib/bundler/lockfile_generator.rb +1 -1
- data/bundler/lib/bundler/lockfile_parser.rb +36 -9
- data/bundler/lib/bundler/man/bundle-add.1 +44 -27
- data/bundler/lib/bundler/man/bundle-add.1.ronn +52 -23
- data/bundler/lib/bundler/man/bundle-binstubs.1 +9 -6
- data/bundler/lib/bundler/man/bundle-binstubs.1.ronn +6 -3
- data/bundler/lib/bundler/man/bundle-cache.1 +32 -4
- data/bundler/lib/bundler/man/bundle-cache.1.ronn +31 -2
- data/bundler/lib/bundler/man/bundle-check.1 +7 -5
- data/bundler/lib/bundler/man/bundle-check.1.ronn +7 -2
- data/bundler/lib/bundler/man/bundle-clean.1 +3 -3
- data/bundler/lib/bundler/man/bundle-config.1 +180 -138
- data/bundler/lib/bundler/man/bundle-config.1.ronn +96 -99
- data/bundler/lib/bundler/man/bundle-console.1 +4 -6
- data/bundler/lib/bundler/man/bundle-console.1.ronn +2 -7
- data/bundler/lib/bundler/man/bundle-doctor.1 +46 -7
- data/bundler/lib/bundler/man/bundle-doctor.1.ronn +49 -5
- 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 +9 -6
- data/bundler/lib/bundler/man/bundle-exec.1.ronn +6 -3
- 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 +69 -28
- data/bundler/lib/bundler/man/bundle-gem.1.ronn +42 -6
- data/bundler/lib/bundler/man/bundle-help.1 +3 -3
- data/bundler/lib/bundler/man/bundle-info.1 +7 -4
- data/bundler/lib/bundler/man/bundle-info.1.ronn +6 -2
- data/bundler/lib/bundler/man/bundle-init.1 +5 -5
- data/bundler/lib/bundler/man/bundle-init.1.ronn +3 -2
- data/bundler/lib/bundler/man/bundle-inject.1 +13 -5
- data/bundler/lib/bundler/man/bundle-inject.1.ronn +10 -2
- data/bundler/lib/bundler/man/bundle-install.1 +20 -17
- data/bundler/lib/bundler/man/bundle-install.1.ronn +26 -23
- 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 +3 -3
- data/bundler/lib/bundler/man/bundle-list.1.ronn +4 -1
- data/bundler/lib/bundler/man/bundle-lock.1 +23 -8
- data/bundler/lib/bundler/man/bundle-lock.1.ronn +25 -4
- data/bundler/lib/bundler/man/bundle-open.1 +4 -4
- data/bundler/lib/bundler/man/bundle-open.1.ronn +2 -1
- data/bundler/lib/bundler/man/bundle-outdated.1 +10 -7
- data/bundler/lib/bundler/man/bundle-outdated.1.ronn +8 -4
- data/bundler/lib/bundler/man/bundle-platform.1 +3 -3
- data/bundler/lib/bundler/man/bundle-plugin.1 +9 -6
- data/bundler/lib/bundler/man/bundle-plugin.1.ronn +7 -3
- data/bundler/lib/bundler/man/bundle-pristine.1 +3 -3
- data/bundler/lib/bundler/man/bundle-pristine.1.ronn +1 -1
- data/bundler/lib/bundler/man/bundle-remove.1 +3 -3
- data/bundler/lib/bundler/man/bundle-remove.1.ronn +1 -1
- data/bundler/lib/bundler/man/bundle-show.1 +7 -4
- data/bundler/lib/bundler/man/bundle-show.1.ronn +4 -0
- data/bundler/lib/bundler/man/bundle-update.1 +17 -11
- data/bundler/lib/bundler/man/bundle-update.1.ronn +17 -9
- data/bundler/lib/bundler/man/bundle-version.1 +3 -3
- data/bundler/lib/bundler/man/bundle-viz.1 +6 -6
- data/bundler/lib/bundler/man/bundle-viz.1.ronn +7 -3
- data/bundler/lib/bundler/man/bundle.1 +3 -3
- data/bundler/lib/bundler/man/gemfile.5 +7 -5
- data/bundler/lib/bundler/man/gemfile.5.ronn +8 -2
- data/bundler/lib/bundler/man/index.txt +4 -0
- data/bundler/lib/bundler/match_metadata.rb +13 -0
- data/bundler/lib/bundler/match_platform.rb +31 -12
- data/bundler/lib/bundler/materialization.rb +59 -0
- data/bundler/lib/bundler/mirror.rb +3 -3
- data/bundler/lib/bundler/plugin/api/source.rb +5 -4
- data/bundler/lib/bundler/plugin/events.rb +24 -0
- data/bundler/lib/bundler/plugin/index.rb +5 -1
- data/bundler/lib/bundler/plugin/installer/path.rb +26 -0
- data/bundler/lib/bundler/plugin/installer.rb +37 -17
- data/bundler/lib/bundler/plugin/source_list.rb +4 -4
- data/bundler/lib/bundler/plugin.rb +21 -2
- data/bundler/lib/bundler/process_lock.rb +10 -14
- data/bundler/lib/bundler/remote_specification.rb +6 -1
- data/bundler/lib/bundler/resolver/base.rb +14 -3
- data/bundler/lib/bundler/resolver/candidate.rb +18 -27
- data/bundler/lib/bundler/resolver/package.rb +20 -3
- data/bundler/lib/bundler/resolver/spec_group.rb +22 -27
- data/bundler/lib/bundler/resolver/strategy.rb +40 -0
- data/bundler/lib/bundler/resolver.rb +114 -52
- data/bundler/lib/bundler/retry.rb +1 -1
- data/bundler/lib/bundler/ruby_dsl.rb +12 -3
- data/bundler/lib/bundler/ruby_version.rb +7 -1
- data/bundler/lib/bundler/rubygems_ext.rb +303 -150
- data/bundler/lib/bundler/rubygems_gem_installer.rb +40 -5
- data/bundler/lib/bundler/rubygems_integration.rb +40 -73
- data/bundler/lib/bundler/runtime.rb +48 -35
- data/bundler/lib/bundler/self_manager.rb +36 -26
- data/bundler/lib/bundler/settings/validator.rb +0 -23
- data/bundler/lib/bundler/settings.rb +36 -27
- data/bundler/lib/bundler/setup.rb +6 -0
- data/bundler/lib/bundler/shared_helpers.rb +45 -25
- data/bundler/lib/bundler/source/gemspec.rb +1 -4
- data/bundler/lib/bundler/source/git/git_proxy.rb +26 -9
- data/bundler/lib/bundler/source/git.rb +113 -41
- data/bundler/lib/bundler/source/metadata.rb +4 -3
- data/bundler/lib/bundler/source/path.rb +14 -18
- data/bundler/lib/bundler/source/rubygems/remote.rb +12 -4
- data/bundler/lib/bundler/source/rubygems.rb +54 -48
- data/bundler/lib/bundler/source.rb +2 -0
- data/bundler/lib/bundler/source_list.rb +54 -12
- data/bundler/lib/bundler/source_map.rb +1 -1
- data/bundler/lib/bundler/spec_set.rb +227 -103
- data/bundler/lib/bundler/stub_specification.rb +29 -2
- data/bundler/lib/bundler/templates/Executable +0 -11
- data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +77 -29
- data/bundler/lib/bundler/templates/newgem/Gemfile.tt +1 -3
- data/bundler/lib/bundler/templates/newgem/README.md.tt +7 -3
- data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +17 -15
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +14 -12
- data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +0 -5
- data/bundler/lib/bundler/ui/shell.rb +26 -4
- data/bundler/lib/bundler/ui/silent.rb +12 -1
- data/bundler/lib/bundler/uri_credentials_filter.rb +3 -3
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +53 -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.rb +11 -0
- data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +15 -13
- data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +1 -1
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +2 -1
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +134 -57
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +4 -24
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +1 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/strategy.rb +42 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +20 -8
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +17 -29
- 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/lib/thor/actions/file_manipulation.rb +3 -5
- data/bundler/lib/bundler/vendor/thor/lib/thor/group.rb +11 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/argument.rb +1 -4
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/option.rb +2 -2
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +2 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +9 -9
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/html.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/table_printer.rb +5 -21
- 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 +11 -0
- data/bundler/lib/bundler/vendor/uri/COPYING +56 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +43 -16
- data/bundler/lib/bundler/vendor/uri/lib/uri/file.rb +3 -3
- data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +1 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +28 -37
- data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +2 -2
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +16 -9
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +26 -3
- data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri.rb +9 -9
- data/bundler/lib/bundler/vendored_net_http.rb +20 -5
- data/bundler/lib/bundler/vendored_securerandom.rb +12 -0
- data/bundler/lib/bundler/vendored_timeout.rb +7 -3
- data/bundler/lib/bundler/vendored_uri.rb +18 -1
- data/bundler/lib/bundler/version.rb +10 -2
- data/bundler/lib/bundler/worker.rb +1 -1
- data/bundler/lib/bundler/yaml_serializer.rb +12 -7
- data/bundler/lib/bundler.rb +101 -61
- data/{bundler → doc/bundler}/UPGRADING.md +132 -127
- data/doc/rubygems/CONTRIBUTING.md +227 -0
- data/{POLICIES.md → doc/rubygems/POLICIES.md} +86 -17
- data/exe/update_rubygems +1 -1
- data/lib/rubygems/basic_specification.rb +50 -10
- data/lib/rubygems/bundler_version_finder.rb +1 -1
- data/lib/rubygems/command.rb +1 -4
- data/lib/rubygems/command_manager.rb +5 -6
- data/lib/rubygems/commands/build_command.rb +2 -11
- data/lib/rubygems/commands/cleanup_command.rb +3 -13
- data/lib/rubygems/commands/contents_command.rb +17 -10
- data/lib/rubygems/commands/environment_command.rb +5 -0
- data/lib/rubygems/commands/exec_command.rb +18 -11
- data/lib/rubygems/commands/fetch_command.rb +14 -0
- data/lib/rubygems/commands/help_command.rb +2 -2
- data/lib/rubygems/commands/install_command.rb +0 -4
- data/lib/rubygems/commands/pristine_command.rb +29 -19
- data/lib/rubygems/commands/push_command.rb +31 -6
- data/lib/rubygems/commands/rdoc_command.rb +3 -10
- data/lib/rubygems/commands/rebuild_command.rb +262 -0
- data/lib/rubygems/commands/setup_command.rb +13 -18
- data/lib/rubygems/commands/sources_command.rb +2 -2
- data/lib/rubygems/commands/uninstall_command.rb +9 -4
- data/lib/rubygems/commands/unpack_command.rb +0 -6
- data/lib/rubygems/commands/update_command.rb +13 -22
- data/lib/rubygems/config_file.rb +45 -16
- data/lib/rubygems/core_ext/kernel_require.rb +15 -3
- data/lib/rubygems/core_ext/kernel_warn.rb +2 -6
- data/lib/rubygems/defaults.rb +7 -7
- data/lib/rubygems/dependency.rb +12 -16
- data/lib/rubygems/dependency_list.rb +1 -1
- data/lib/rubygems/deprecate.rb +79 -77
- data/lib/rubygems/errors.rb +2 -1
- data/lib/rubygems/exceptions.rb +2 -9
- data/lib/rubygems/ext/builder.rb +21 -8
- data/lib/rubygems/ext/cargo_builder.rb +16 -26
- data/lib/rubygems/ext/cmake_builder.rb +7 -2
- data/lib/rubygems/ext/configure_builder.rb +7 -2
- data/lib/rubygems/ext/ext_conf_builder.rb +9 -5
- data/lib/rubygems/ext/rake_builder.rb +7 -4
- data/lib/rubygems/gem_runner.rb +9 -0
- data/lib/rubygems/gemcutter_utilities/webauthn_listener.rb +11 -4
- data/lib/rubygems/gemcutter_utilities/webauthn_poller.rb +3 -1
- data/lib/rubygems/gemcutter_utilities.rb +52 -26
- data/lib/rubygems/gemspec_helpers.rb +19 -0
- data/lib/rubygems/install_update_options.rb +5 -0
- data/lib/rubygems/installer.rb +76 -90
- data/lib/rubygems/local_remote_options.rb +8 -8
- data/lib/rubygems/package/tar_header.rb +31 -4
- data/lib/rubygems/package/tar_reader/entry.rb +1 -5
- data/lib/rubygems/package/tar_writer.rb +5 -4
- data/lib/rubygems/package.rb +13 -8
- data/lib/rubygems/platform.rb +148 -43
- data/lib/rubygems/psych_tree.rb +4 -0
- data/lib/rubygems/query_utils.rb +2 -2
- data/lib/rubygems/rdoc.rb +16 -3
- data/lib/rubygems/remote_fetcher.rb +6 -7
- data/lib/rubygems/request.rb +5 -5
- data/lib/rubygems/request_set/gem_dependency_api.rb +1 -1
- data/lib/rubygems/request_set.rb +4 -7
- data/lib/rubygems/requirement.rb +16 -12
- data/lib/rubygems/resolver/activation_request.rb +1 -1
- data/lib/rubygems/resolver/api_set/gem_parser.rb +2 -5
- data/lib/rubygems/resolver/api_set.rb +13 -8
- data/lib/rubygems/resolver/best_set.rb +1 -29
- data/lib/rubygems/resolver/composed_set.rb +3 -3
- data/lib/rubygems/resolver/git_set.rb +0 -1
- data/lib/rubygems/resolver/index_set.rb +2 -2
- data/lib/rubygems/resolver/source_set.rb +1 -1
- data/lib/rubygems/resolver/spec_specification.rb +7 -0
- data/lib/rubygems/resolver.rb +8 -8
- data/lib/rubygems/s3_uri_signer.rb +8 -6
- data/lib/rubygems/safe_marshal/reader.rb +31 -14
- data/lib/rubygems/safe_marshal/visitors/to_ruby.rb +29 -16
- data/lib/rubygems/safe_yaml.rb +10 -1
- data/lib/rubygems/security.rb +1 -1
- data/lib/rubygems/source/git.rb +22 -17
- data/lib/rubygems/source/installed.rb +3 -1
- data/lib/rubygems/source/local.rb +8 -4
- data/lib/rubygems/source/specific_file.rb +5 -3
- data/lib/rubygems/source.rb +37 -29
- data/lib/rubygems/source_list.rb +1 -1
- data/lib/rubygems/spec_fetcher.rb +47 -15
- data/lib/rubygems/specification.rb +110 -183
- data/lib/rubygems/specification_policy.rb +33 -13
- data/lib/rubygems/specification_record.rb +212 -0
- data/lib/rubygems/stub_specification.rb +32 -10
- data/lib/rubygems/target_rbconfig.rb +50 -0
- data/lib/rubygems/uninstaller.rb +42 -22
- data/lib/rubygems/uri.rb +6 -6
- data/lib/rubygems/uri_formatter.rb +2 -1
- data/lib/rubygems/util/licenses.rb +118 -1
- data/lib/rubygems/util.rb +1 -1
- data/lib/rubygems/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +57 -0
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/delegates/specification_provider.rb +11 -11
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/dependency_graph/action.rb +1 -1
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +1 -1
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +1 -1
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +1 -1
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +1 -1
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/dependency_graph/log.rb +1 -1
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/dependency_graph/set_payload.rb +1 -1
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/dependency_graph/tag.rb +1 -1
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/dependency_graph/vertex.rb +1 -1
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/dependency_graph.rb +2 -2
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/errors.rb +1 -1
- data/lib/rubygems/vendor/molinillo/lib/molinillo/gem_metadata.rb +6 -0
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/modules/specification_provider.rb +2 -2
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/modules/ui.rb +1 -1
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/resolution.rb +4 -4
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/resolver.rb +1 -1
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/state.rb +1 -1
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo.rb +2 -2
- data/lib/rubygems/vendor/net-http/COPYING +56 -0
- data/lib/rubygems/{net-http → vendor/net-http}/lib/net/http/generic_request.rb +9 -9
- data/lib/rubygems/{net-http → vendor/net-http}/lib/net/http/header.rb +3 -3
- data/lib/rubygems/{net-http → vendor/net-http}/lib/net/http/request.rb +3 -3
- data/lib/rubygems/{net-http → vendor/net-http}/lib/net/http/requests.rb +35 -30
- data/lib/rubygems/{net-http → vendor/net-http}/lib/net/http/response.rb +2 -2
- data/lib/rubygems/{net-http → vendor/net-http}/lib/net/http/responses.rb +6 -6
- data/lib/rubygems/{net-http → vendor/net-http}/lib/net/http/status.rb +1 -1
- data/lib/rubygems/{net-http → vendor/net-http}/lib/net/http.rb +149 -70
- data/lib/rubygems/{net-http → vendor/net-http}/lib/net/https.rb +1 -1
- 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 +158 -62
- data/lib/rubygems/vendor/resolv/COPYING +56 -0
- data/lib/rubygems/{resolv → vendor/resolv}/lib/resolv.rb +165 -69
- data/lib/rubygems/vendor/securerandom/COPYING +56 -0
- data/lib/rubygems/vendor/securerandom/lib/securerandom.rb +102 -0
- data/lib/rubygems/vendor/timeout/COPYING +56 -0
- data/lib/rubygems/{timeout → vendor/timeout}/lib/timeout.rb +10 -11
- data/lib/rubygems/{tsort → vendor/tsort}/lib/tsort.rb +2 -2
- data/lib/rubygems/vendor/uri/COPYING +56 -0
- data/lib/rubygems/vendor/uri/lib/uri/common.rb +880 -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 +1579 -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/lib/rubygems/vendored_molinillo.rb +3 -0
- 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 +26 -9
- data/lib/rubygems/yaml_serializer.rb +12 -7
- data/lib/rubygems.rb +160 -53
- data/rubygems-update.gemspec +11 -6
- data/setup.rb +1 -1
- metadata +124 -96
- data/bundler/lib/bundler/compact_index_client/gem_parser.rb +0 -32
- data/bundler/lib/bundler/gem_helpers.rb +0 -127
- data/bundler/lib/bundler/templates/Executable.bundler +0 -109
- data/bundler/lib/bundler/vendor/fileutils/.document +0 -1
- data/bundler/lib/bundler/vendor/net-http-persistent/.document +0 -1
- data/bundler/lib/bundler/vendor/pub_grub/.document +0 -1
- data/bundler/lib/bundler/vendor/thor/.document +0 -1
- data/bundler/lib/bundler/vendor/tsort/.document +0 -1
- data/bundler/lib/bundler/vendor/uri/.document +0 -1
- data/lib/rubygems/net/http.rb +0 -3
- data/lib/rubygems/net-http/.document +0 -1
- data/lib/rubygems/net-http/LICENSE.txt +0 -22
- data/lib/rubygems/net-http/lib/net/http/backward.rb +0 -40
- data/lib/rubygems/net-protocol/.document +0 -1
- data/lib/rubygems/net-protocol/LICENSE.txt +0 -22
- data/lib/rubygems/optparse/.document +0 -1
- data/lib/rubygems/optparse/lib/optparse/uri.rb +0 -7
- data/lib/rubygems/optparse.rb +0 -3
- data/lib/rubygems/resolv/.document +0 -1
- data/lib/rubygems/resolv/LICENSE.txt +0 -22
- data/lib/rubygems/resolver/molinillo/.document +0 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
- data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +0 -6
- data/lib/rubygems/resolver/molinillo.rb +0 -3
- data/lib/rubygems/shellwords.rb +0 -3
- data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA.pem +0 -21
- data/lib/rubygems/timeout/.document +0 -1
- data/lib/rubygems/timeout/LICENSE.txt +0 -22
- data/lib/rubygems/timeout.rb +0 -3
- data/lib/rubygems/tsort/.document +0 -1
- data/lib/rubygems/tsort/LICENSE.txt +0 -22
- data/lib/rubygems/tsort.rb +0 -3
- /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/lib/rubygems/ssl_certs/rubygems.org/{GlobalSignRootCA_R3.pem → GlobalSign.pem} +0 -0
- /data/{bundler/lib/bundler/vendor/connection_pool → lib/rubygems/vendor}/.document +0 -0
- /data/lib/rubygems/{resolver → vendor}/molinillo/LICENSE +0 -0
- /data/lib/rubygems/{net-http → vendor/net-http}/lib/net/http/exceptions.rb +0 -0
- /data/lib/rubygems/{net-http → vendor/net-http}/lib/net/http/proxy_delta.rb +0 -0
- /data/{bundler/lib/bundler/vendor/fileutils → lib/rubygems/vendor/net-protocol}/LICENSE.txt +0 -0
- /data/lib/rubygems/{net-protocol → vendor/net-protocol}/lib/net/protocol.rb +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
@@ -7,8 +7,8 @@ require_relative "../command"
|
|
7
7
|
# RubyGems checkout or tarball.
|
8
8
|
|
9
9
|
class Gem::Commands::SetupCommand < Gem::Command
|
10
|
-
HISTORY_HEADER = %r{
|
11
|
-
VERSION_MATCHER = %r{
|
10
|
+
HISTORY_HEADER = %r{^##\s*[\d.a-zA-Z]+\s*/\s*\d{4}-\d{2}-\d{2}\s*$}
|
11
|
+
VERSION_MATCHER = %r{^##\s*([\d.a-zA-Z]+)\s*/\s*\d{4}-\d{2}-\d{2}\s*$}
|
12
12
|
|
13
13
|
ENV_PATHS = %w[/usr/bin/env /bin/env].freeze
|
14
14
|
|
@@ -107,15 +107,6 @@ class Gem::Commands::SetupCommand < Gem::Command
|
|
107
107
|
@verbose = nil
|
108
108
|
end
|
109
109
|
|
110
|
-
def check_ruby_version
|
111
|
-
required_version = Gem::Requirement.new ">= 2.6.0"
|
112
|
-
|
113
|
-
unless required_version.satisfied_by? Gem.ruby_version
|
114
|
-
alert_error "Expected Ruby version #{required_version}, is #{Gem.ruby_version}"
|
115
|
-
terminate_interaction 1
|
116
|
-
end
|
117
|
-
end
|
118
|
-
|
119
110
|
def defaults_str # :nodoc:
|
120
111
|
"--format-executable --document ri --regenerate-binstubs"
|
121
112
|
end
|
@@ -148,8 +139,6 @@ By default, this RubyGems will install gem as:
|
|
148
139
|
def execute
|
149
140
|
@verbose = Gem.configuration.really_verbose
|
150
141
|
|
151
|
-
check_ruby_version
|
152
|
-
|
153
142
|
require "fileutils"
|
154
143
|
if Gem.configuration.really_verbose
|
155
144
|
extend FileUtils::Verbose
|
@@ -279,11 +268,7 @@ By default, this RubyGems will install gem as:
|
|
279
268
|
File.open bin_cmd_file, "w" do |file|
|
280
269
|
file.puts <<-TEXT
|
281
270
|
@ECHO OFF
|
282
|
-
|
283
|
-
@"#{File.basename(Gem.ruby).chomp('"')}" "#{dest_file}" %1 %2 %3 %4 %5 %6 %7 %8 %9
|
284
|
-
GOTO :EOF
|
285
|
-
:WinNT
|
286
|
-
@"#{File.basename(Gem.ruby).chomp('"')}" "%~dpn0" %*
|
271
|
+
@"%~dp0#{File.basename(Gem.ruby).chomp('"')}" "%~dpn0" %*
|
287
272
|
TEXT
|
288
273
|
end
|
289
274
|
|
@@ -340,6 +325,8 @@ By default, this RubyGems will install gem as:
|
|
340
325
|
|
341
326
|
require_relative "../rdoc"
|
342
327
|
|
328
|
+
return false unless defined?(Gem::RDoc)
|
329
|
+
|
343
330
|
fake_spec = Gem::Specification.new "rubygems", Gem::VERSION
|
344
331
|
def fake_spec.full_gem_path
|
345
332
|
File.expand_path "../../..", __dir__
|
@@ -363,9 +350,15 @@ By default, this RubyGems will install gem as:
|
|
363
350
|
def install_default_bundler_gem(bin_dir)
|
364
351
|
current_default_spec = Gem::Specification.default_stubs.find {|s| s.name == "bundler" }
|
365
352
|
specs_dir = if current_default_spec && default_dir == Gem.default_dir
|
353
|
+
all_specs_current_version = Gem::Specification.stubs.select {|s| s.full_name == current_default_spec.full_name }
|
354
|
+
|
366
355
|
Gem::Specification.remove_spec current_default_spec
|
367
356
|
loaded_from = current_default_spec.loaded_from
|
368
357
|
File.delete(loaded_from)
|
358
|
+
|
359
|
+
# Remove previous default gem executables if they were not shadowed by a regular gem
|
360
|
+
FileUtils.rm_rf current_default_spec.full_gem_path if all_specs_current_version.size == 1
|
361
|
+
|
369
362
|
File.dirname(loaded_from)
|
370
363
|
else
|
371
364
|
target_specs_dir = File.join(default_dir, "specifications", "default")
|
@@ -585,6 +578,8 @@ abort "#{deprecation_message}"
|
|
585
578
|
|
586
579
|
args = %w[--all --only-executables --silent]
|
587
580
|
args << "--bindir=#{bindir}"
|
581
|
+
args << "--install-dir=#{default_dir}"
|
582
|
+
|
588
583
|
if options[:env_shebang]
|
589
584
|
args << "--env-shebang"
|
590
585
|
end
|
@@ -59,7 +59,7 @@ class Gem::Commands::SourcesCommand < Gem::Command
|
|
59
59
|
|
60
60
|
say "#{source_uri} added to sources"
|
61
61
|
end
|
62
|
-
rescue URI::Error, ArgumentError
|
62
|
+
rescue Gem::URI::Error, ArgumentError
|
63
63
|
say "#{source_uri} is not a URI"
|
64
64
|
terminate_interaction 1
|
65
65
|
rescue Gem::RemoteFetcher::FetchError => e
|
@@ -81,7 +81,7 @@ Do you want to add this source?
|
|
81
81
|
end
|
82
82
|
|
83
83
|
def check_rubygems_https(source_uri) # :nodoc:
|
84
|
-
uri = URI source_uri
|
84
|
+
uri = Gem::URI source_uri
|
85
85
|
|
86
86
|
if uri.scheme && uri.scheme.casecmp("http").zero? &&
|
87
87
|
uri.host.casecmp("rubygems.org").zero?
|
@@ -157,9 +157,14 @@ that is a dependency of an existing gem. You can use the
|
|
157
157
|
|
158
158
|
gem_specs = Gem::Specification.find_all_by_name(name, original_gem_version[name])
|
159
159
|
|
160
|
-
|
161
|
-
|
162
|
-
|
160
|
+
if gem_specs.empty?
|
161
|
+
say("Gem '#{name}' is not installed")
|
162
|
+
else
|
163
|
+
gem_specs.reject!(&:default_gem?) if gem_specs.size > 1
|
164
|
+
|
165
|
+
gem_specs.each do |spec|
|
166
|
+
deplist.add spec
|
167
|
+
end
|
163
168
|
end
|
164
169
|
end
|
165
170
|
|
@@ -184,7 +189,7 @@ that is a dependency of an existing gem. You can use the
|
|
184
189
|
rescue Gem::GemNotInHomeException => e
|
185
190
|
spec = e.spec
|
186
191
|
alert("In order to remove #{spec.name}, please execute:\n" \
|
187
|
-
"\tgem uninstall #{spec.name} --install-dir=#{spec.
|
192
|
+
"\tgem uninstall #{spec.name} --install-dir=#{spec.base_dir}")
|
188
193
|
rescue Gem::UninstallError => e
|
189
194
|
spec = e.spec
|
190
195
|
alert_error("Error: unable to successfully uninstall '#{spec.name}' which is " \
|
@@ -143,12 +143,6 @@ command help for an example.
|
|
143
143
|
# get_path 'rake', '< 0.1' # nil
|
144
144
|
# get_path 'rak' # nil (exact name required)
|
145
145
|
#--
|
146
|
-
# TODO: This should be refactored so that it's a general service. I don't
|
147
|
-
# think any of our existing classes are the right place though. Just maybe
|
148
|
-
# 'Cache'?
|
149
|
-
#
|
150
|
-
# TODO: It just uses Gem.dir for now. What's an easy way to get the list of
|
151
|
-
# source directories?
|
152
146
|
|
153
147
|
def get_path(dependency)
|
154
148
|
return dependency.name if /\.gem$/i.match?(dependency.name)
|
@@ -197,18 +197,17 @@ command to remove old versions.
|
|
197
197
|
yield
|
198
198
|
else
|
199
199
|
require "tmpdir"
|
200
|
-
|
201
|
-
|
200
|
+
Dir.mktmpdir("gem_update") do |tmpdir|
|
201
|
+
FileUtils.mv Gem.plugindir, tmpdir
|
202
202
|
|
203
|
-
|
203
|
+
status = yield
|
204
204
|
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
FileUtils.mv File.join(tmpdir, "plugins"), Gem.plugindir
|
209
|
-
end
|
205
|
+
unless status
|
206
|
+
FileUtils.mv File.join(tmpdir, "plugins"), Gem.plugindir
|
207
|
+
end
|
210
208
|
|
211
|
-
|
209
|
+
status
|
210
|
+
end
|
212
211
|
end
|
213
212
|
end
|
214
213
|
|
@@ -244,7 +243,7 @@ command to remove old versions.
|
|
244
243
|
|
245
244
|
@installer = Gem::DependencyInstaller.new update_options
|
246
245
|
|
247
|
-
say "Updating #{name}" unless options[:system]
|
246
|
+
say "Updating #{name}" unless options[:system]
|
248
247
|
begin
|
249
248
|
@installer.install name, Gem::Requirement.new(version)
|
250
249
|
rescue Gem::InstallError, Gem::DependencyError => e
|
@@ -282,7 +281,7 @@ command to remove old versions.
|
|
282
281
|
check_oldest_rubygems version
|
283
282
|
|
284
283
|
installed_gems = Gem::Specification.find_all_by_name "rubygems-update", requirement
|
285
|
-
installed_gems = update_gem("rubygems-update",
|
284
|
+
installed_gems = update_gem("rubygems-update", requirement) if installed_gems.empty? || installed_gems.first.version != version
|
286
285
|
return if installed_gems.empty?
|
287
286
|
|
288
287
|
install_rubygems installed_gems.first
|
@@ -294,9 +293,7 @@ command to remove old versions.
|
|
294
293
|
args << "--prefix" << Gem.prefix if Gem.prefix
|
295
294
|
args << "--no-document" unless options[:document].include?("rdoc") || options[:document].include?("ri")
|
296
295
|
args << "--no-format-executable" if options[:no_format_executable]
|
297
|
-
args << "--previous-version" << Gem::VERSION
|
298
|
-
options[:system] == true ||
|
299
|
-
Gem::Version.new(options[:system]) >= Gem::Version.new(2)
|
296
|
+
args << "--previous-version" << Gem::VERSION
|
300
297
|
args
|
301
298
|
end
|
302
299
|
|
@@ -320,16 +317,10 @@ command to remove old versions.
|
|
320
317
|
|
321
318
|
#
|
322
319
|
# Oldest version we support downgrading to. This is the version that
|
323
|
-
# originally ships with the
|
324
|
-
# test each ruby against older rubygems, so we can't really guarantee it
|
325
|
-
# works. Version list can be checked here: https://stdgems.org/rubygems
|
320
|
+
# originally ships with the oldest supported patch version of ruby.
|
326
321
|
#
|
327
322
|
def oldest_supported_version
|
328
323
|
@oldest_supported_version ||=
|
329
|
-
|
330
|
-
Gem::Version.new("3.3.3")
|
331
|
-
else
|
332
|
-
Gem::Version.new("3.2.3")
|
333
|
-
end
|
324
|
+
Gem::Version.new("3.3.3")
|
334
325
|
end
|
335
326
|
end
|
data/lib/rubygems/config_file.rb
CHANGED
@@ -47,6 +47,8 @@ class Gem::ConfigFile
|
|
47
47
|
DEFAULT_CONCURRENT_DOWNLOADS = 8
|
48
48
|
DEFAULT_CERT_EXPIRATION_LENGTH_DAYS = 365
|
49
49
|
DEFAULT_IPV4_FALLBACK_ENABLED = false
|
50
|
+
# TODO: Use false as default value for this option in RubyGems 4.0
|
51
|
+
DEFAULT_INSTALL_EXTENSION_IN_LIB = true
|
50
52
|
|
51
53
|
##
|
52
54
|
# For Ruby packagers to set configuration defaults. Set in
|
@@ -142,6 +144,11 @@ class Gem::ConfigFile
|
|
142
144
|
|
143
145
|
attr_accessor :cert_expiration_length_days
|
144
146
|
|
147
|
+
##
|
148
|
+
# Install extensions into lib as well as into the extension directory.
|
149
|
+
|
150
|
+
attr_accessor :install_extension_in_lib
|
151
|
+
|
145
152
|
##
|
146
153
|
# == Experimental ==
|
147
154
|
# Fallback to IPv4 when IPv6 is not reachable or slow (default: false)
|
@@ -183,6 +190,7 @@ class Gem::ConfigFile
|
|
183
190
|
@update_sources = DEFAULT_UPDATE_SOURCES
|
184
191
|
@concurrent_downloads = DEFAULT_CONCURRENT_DOWNLOADS
|
185
192
|
@cert_expiration_length_days = DEFAULT_CERT_EXPIRATION_LENGTH_DAYS
|
193
|
+
@install_extension_in_lib = DEFAULT_INSTALL_EXTENSION_IN_LIB
|
186
194
|
@ipv4_fallback_enabled = ENV["IPV4_FALLBACK_ENABLED"] == "true" || DEFAULT_IPV4_FALLBACK_ENABLED
|
187
195
|
|
188
196
|
operating_system_config = Marshal.load Marshal.dump(OPERATING_SYSTEM_DEFAULTS)
|
@@ -202,21 +210,34 @@ class Gem::ConfigFile
|
|
202
210
|
@hash = @hash.merge environment_config
|
203
211
|
end
|
204
212
|
|
213
|
+
@hash.transform_keys! do |k|
|
214
|
+
# gemhome and gempath are not working with symbol keys
|
215
|
+
if %w[backtrace bulk_threshold verbose update_sources cert_expiration_length_days
|
216
|
+
install_extension_in_lib ipv4_fallback_enabled sources disable_default_gem_server
|
217
|
+
ssl_verify_mode ssl_ca_cert ssl_client_cert].include?(k)
|
218
|
+
k.to_sym
|
219
|
+
else
|
220
|
+
k
|
221
|
+
end
|
222
|
+
end
|
223
|
+
|
205
224
|
# HACK: these override command-line args, which is bad
|
206
225
|
@backtrace = @hash[:backtrace] if @hash.key? :backtrace
|
207
226
|
@bulk_threshold = @hash[:bulk_threshold] if @hash.key? :bulk_threshold
|
208
|
-
@home = @hash[:gemhome] if @hash.key? :gemhome
|
209
|
-
@path = @hash[:gempath] if @hash.key? :gempath
|
210
|
-
@update_sources = @hash[:update_sources] if @hash.key? :update_sources
|
211
227
|
@verbose = @hash[:verbose] if @hash.key? :verbose
|
212
|
-
@
|
213
|
-
|
228
|
+
@update_sources = @hash[:update_sources] if @hash.key? :update_sources
|
229
|
+
# TODO: We should handle concurrent_downloads same as other options
|
214
230
|
@cert_expiration_length_days = @hash[:cert_expiration_length_days] if @hash.key? :cert_expiration_length_days
|
231
|
+
@install_extension_in_lib = @hash[:install_extension_in_lib] if @hash.key? :install_extension_in_lib
|
215
232
|
@ipv4_fallback_enabled = @hash[:ipv4_fallback_enabled] if @hash.key? :ipv4_fallback_enabled
|
216
233
|
|
217
|
-
@
|
218
|
-
@
|
219
|
-
@
|
234
|
+
@home = @hash[:gemhome] if @hash.key? :gemhome
|
235
|
+
@path = @hash[:gempath] if @hash.key? :gempath
|
236
|
+
@sources = @hash[:sources] if @hash.key? :sources
|
237
|
+
@disable_default_gem_server = @hash[:disable_default_gem_server] if @hash.key? :disable_default_gem_server
|
238
|
+
@ssl_verify_mode = @hash[:ssl_verify_mode] if @hash.key? :ssl_verify_mode
|
239
|
+
@ssl_ca_cert = @hash[:ssl_ca_cert] if @hash.key? :ssl_ca_cert
|
240
|
+
@ssl_client_cert = @hash[:ssl_client_cert] if @hash.key? :ssl_client_cert
|
220
241
|
|
221
242
|
@api_keys = nil
|
222
243
|
@rubygems_api_key = nil
|
@@ -464,6 +485,9 @@ if you believe they were disclosed to a third party.
|
|
464
485
|
yaml_hash[:concurrent_downloads] =
|
465
486
|
@hash.fetch(:concurrent_downloads, DEFAULT_CONCURRENT_DOWNLOADS)
|
466
487
|
|
488
|
+
yaml_hash[:install_extension_in_lib] =
|
489
|
+
@hash.fetch(:install_extension_in_lib, DEFAULT_INSTALL_EXTENSION_IN_LIB)
|
490
|
+
|
467
491
|
yaml_hash[:ssl_verify_mode] =
|
468
492
|
@hash[:ssl_verify_mode] if @hash.key? :ssl_verify_mode
|
469
493
|
|
@@ -498,12 +522,12 @@ if you believe they were disclosed to a third party.
|
|
498
522
|
|
499
523
|
# Return the configuration information for +key+.
|
500
524
|
def [](key)
|
501
|
-
@hash[key.to_s]
|
525
|
+
@hash[key] || @hash[key.to_s]
|
502
526
|
end
|
503
527
|
|
504
528
|
# Set configuration option +key+ to +value+.
|
505
529
|
def []=(key, value)
|
506
|
-
@hash[key
|
530
|
+
@hash[key] = value
|
507
531
|
end
|
508
532
|
|
509
533
|
def ==(other) # :nodoc:
|
@@ -531,8 +555,13 @@ if you believe they were disclosed to a third party.
|
|
531
555
|
require_relative "yaml_serializer"
|
532
556
|
|
533
557
|
content = Gem::YAMLSerializer.load(yaml)
|
558
|
+
deep_transform_config_keys!(content)
|
559
|
+
end
|
534
560
|
|
535
|
-
|
561
|
+
private
|
562
|
+
|
563
|
+
def self.deep_transform_config_keys!(config)
|
564
|
+
config.transform_keys! do |k|
|
536
565
|
if k.match?(/\A:(.*)\Z/)
|
537
566
|
k[1..-1].to_sym
|
538
567
|
elsif k.include?("__") || k.match?(%r{/\Z})
|
@@ -546,7 +575,7 @@ if you believe they were disclosed to a third party.
|
|
546
575
|
end
|
547
576
|
end
|
548
577
|
|
549
|
-
|
578
|
+
config.transform_values! do |v|
|
550
579
|
if v.is_a?(String)
|
551
580
|
if v.match?(/\A:(.*)\Z/)
|
552
581
|
v[1..-1].to_sym
|
@@ -559,18 +588,18 @@ if you believe they were disclosed to a third party.
|
|
559
588
|
else
|
560
589
|
v
|
561
590
|
end
|
562
|
-
elsif v.
|
591
|
+
elsif v.empty?
|
563
592
|
nil
|
593
|
+
elsif v.is_a?(Hash)
|
594
|
+
deep_transform_config_keys!(v)
|
564
595
|
else
|
565
596
|
v
|
566
597
|
end
|
567
598
|
end
|
568
599
|
|
569
|
-
|
600
|
+
config
|
570
601
|
end
|
571
602
|
|
572
|
-
private
|
573
|
-
|
574
603
|
def set_config_file_name(args)
|
575
604
|
@config_file_name = ENV["GEMRC"]
|
576
605
|
need_config_file_name = false
|
@@ -39,7 +39,14 @@ module Kernel
|
|
39
39
|
RUBYGEMS_ACTIVATION_MONITOR.synchronize do
|
40
40
|
path = File.path(path)
|
41
41
|
|
42
|
-
|
42
|
+
# If +path+ belongs to a default gem, we activate it and then go straight
|
43
|
+
# to normal require
|
44
|
+
|
45
|
+
if spec = Gem.find_default_spec(path)
|
46
|
+
name = spec.name
|
47
|
+
|
48
|
+
next if Gem.loaded_specs[name]
|
49
|
+
|
43
50
|
# Ensure -I beats a default gem
|
44
51
|
resolved_path = begin
|
45
52
|
rp = nil
|
@@ -57,8 +64,13 @@ module Kernel
|
|
57
64
|
rp
|
58
65
|
end
|
59
66
|
|
60
|
-
|
61
|
-
|
67
|
+
next if resolved_path
|
68
|
+
|
69
|
+
Kernel.send(:gem, name, Gem::Requirement.default_prerelease)
|
70
|
+
|
71
|
+
Gem.load_bundler_extensions(Gem.loaded_specs[name].version) if name == "bundler"
|
72
|
+
|
73
|
+
next
|
62
74
|
end
|
63
75
|
|
64
76
|
# If there are no unresolved deps, then we can use just try
|
@@ -13,11 +13,7 @@ module Kernel
|
|
13
13
|
|
14
14
|
module_function define_method(:warn) {|*messages, **kw|
|
15
15
|
unless uplevel = kw[:uplevel]
|
16
|
-
|
17
|
-
return original_warn.bind(self).call(*messages)
|
18
|
-
else
|
19
|
-
return original_warn.bind(self).call(*messages, **kw)
|
20
|
-
end
|
16
|
+
return original_warn.bind_call(self, *messages, **kw)
|
21
17
|
end
|
22
18
|
|
23
19
|
# Ensure `uplevel` fits a `long`
|
@@ -44,6 +40,6 @@ module Kernel
|
|
44
40
|
kw[:uplevel] = start
|
45
41
|
end
|
46
42
|
|
47
|
-
original_warn.
|
43
|
+
original_warn.bind_call(self, *messages, **kw)
|
48
44
|
}
|
49
45
|
end
|
data/lib/rubygems/defaults.rb
CHANGED
@@ -24,7 +24,7 @@ module Gem
|
|
24
24
|
default_spec_cache_dir = File.join Gem.user_home, ".gem", "specs"
|
25
25
|
|
26
26
|
unless File.exist?(default_spec_cache_dir)
|
27
|
-
default_spec_cache_dir = File.join Gem.
|
27
|
+
default_spec_cache_dir = File.join Gem.cache_home, "gem", "specs"
|
28
28
|
end
|
29
29
|
|
30
30
|
default_spec_cache_dir
|
@@ -112,7 +112,7 @@ module Gem
|
|
112
112
|
# The path to standard location of the user's configuration directory.
|
113
113
|
|
114
114
|
def self.config_home
|
115
|
-
@config_home ||=
|
115
|
+
@config_home ||= ENV["XDG_CONFIG_HOME"] || File.join(Gem.user_home, ".config")
|
116
116
|
end
|
117
117
|
|
118
118
|
##
|
@@ -145,21 +145,21 @@ module Gem
|
|
145
145
|
# The path to standard location of the user's cache directory.
|
146
146
|
|
147
147
|
def self.cache_home
|
148
|
-
@cache_home ||=
|
148
|
+
@cache_home ||= ENV["XDG_CACHE_HOME"] || File.join(Gem.user_home, ".cache")
|
149
149
|
end
|
150
150
|
|
151
151
|
##
|
152
152
|
# The path to standard location of the user's data directory.
|
153
153
|
|
154
154
|
def self.data_home
|
155
|
-
@data_home ||=
|
155
|
+
@data_home ||= ENV["XDG_DATA_HOME"] || File.join(Gem.user_home, ".local", "share")
|
156
156
|
end
|
157
157
|
|
158
158
|
##
|
159
159
|
# The path to standard location of the user's state directory.
|
160
160
|
|
161
161
|
def self.state_home
|
162
|
-
@state_home ||=
|
162
|
+
@state_home ||= ENV["XDG_STATE_HOME"] || File.join(Gem.user_home, ".local", "state")
|
163
163
|
end
|
164
164
|
|
165
165
|
##
|
@@ -239,7 +239,7 @@ module Gem
|
|
239
239
|
# Enables automatic installation into user directory
|
240
240
|
|
241
241
|
def self.default_user_install # :nodoc:
|
242
|
-
if !ENV.key?("GEM_HOME") &&
|
242
|
+
if !ENV.key?("GEM_HOME") && File.exist?(Gem.dir) && !File.writable?(Gem.dir)
|
243
243
|
Gem.ui.say "Defaulting to user installation because default installation directory (#{Gem.dir}) is not writable."
|
244
244
|
return true
|
245
245
|
end
|
@@ -251,7 +251,7 @@ module Gem
|
|
251
251
|
# Install extensions into lib as well as into the extension directory.
|
252
252
|
|
253
253
|
def self.install_extension_in_lib # :nodoc:
|
254
|
-
|
254
|
+
Gem.configuration.install_extension_in_lib
|
255
255
|
end
|
256
256
|
|
257
257
|
##
|
data/lib/rubygems/dependency.rb
CHANGED
@@ -271,15 +271,7 @@ class Gem::Dependency
|
|
271
271
|
end
|
272
272
|
|
273
273
|
def matching_specs(platform_only = false)
|
274
|
-
|
275
|
-
matches = Gem::Specification.stubs_for(name).find_all do |spec|
|
276
|
-
requirement.satisfied_by?(spec.version) && env_req.satisfied_by?(spec.version)
|
277
|
-
end.map(&:to_spec)
|
278
|
-
|
279
|
-
if prioritizes_bundler?
|
280
|
-
require_relative "bundler_version_finder"
|
281
|
-
Gem::BundlerVersionFinder.prioritize!(matches)
|
282
|
-
end
|
274
|
+
matches = Gem::Specification.find_all_by_name(name, requirement)
|
283
275
|
|
284
276
|
if platform_only
|
285
277
|
matches.reject! do |spec|
|
@@ -287,7 +279,7 @@ class Gem::Dependency
|
|
287
279
|
end
|
288
280
|
end
|
289
281
|
|
290
|
-
matches
|
282
|
+
matches.reject(&:ignored?)
|
291
283
|
end
|
292
284
|
|
293
285
|
##
|
@@ -297,10 +289,6 @@ class Gem::Dependency
|
|
297
289
|
@requirement.specific?
|
298
290
|
end
|
299
291
|
|
300
|
-
def prioritizes_bundler?
|
301
|
-
name == "bundler" && !specific?
|
302
|
-
end
|
303
|
-
|
304
292
|
def to_specs
|
305
293
|
matches = matching_specs true
|
306
294
|
|
@@ -328,9 +316,9 @@ class Gem::Dependency
|
|
328
316
|
return active if active
|
329
317
|
|
330
318
|
unless prerelease?
|
331
|
-
#
|
319
|
+
# Consider prereleases only as a fallback
|
332
320
|
pre, matches = matches.partition {|spec| spec.version.prerelease? }
|
333
|
-
matches
|
321
|
+
matches = pre if matches.empty?
|
334
322
|
end
|
335
323
|
|
336
324
|
matches.first
|
@@ -349,4 +337,12 @@ class Gem::Dependency
|
|
349
337
|
:released
|
350
338
|
end
|
351
339
|
end
|
340
|
+
|
341
|
+
def encode_with(coder) # :nodoc:
|
342
|
+
coder.add "name", @name
|
343
|
+
coder.add "requirement", @requirement
|
344
|
+
coder.add "type", @type
|
345
|
+
coder.add "prerelease", @prerelease
|
346
|
+
coder.add "version_requirements", @version_requirements
|
347
|
+
end
|
352
348
|
end
|