rubygems-update 3.5.5 → 3.6.9
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 +606 -1
- data/CODE_OF_CONDUCT.md +79 -28
- data/Manifest.txt +114 -73
- data/README.md +16 -11
- data/bundler/CHANGELOG.md +506 -6
- data/bundler/README.md +2 -2
- data/bundler/bundler.gemspec +2 -2
- data/bundler/lib/bundler/build_metadata.rb +2 -2
- 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/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 +13 -17
- 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 +14 -5
- 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 +22 -22
- 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.rb +51 -107
- 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 +2 -12
- data/bundler/lib/bundler/compact_index_client.rb +51 -80
- data/bundler/lib/bundler/constants.rb +8 -1
- data/bundler/lib/bundler/current_ruby.rb +23 -33
- data/bundler/lib/bundler/definition.rb +485 -313
- data/bundler/lib/bundler/dependency.rb +92 -46
- data/bundler/lib/bundler/dsl.rb +135 -101
- 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 +3 -6
- data/bundler/lib/bundler/fetcher/compact_index.rb +16 -25
- data/bundler/lib/bundler/fetcher/downloader.rb +1 -1
- data/bundler/lib/bundler/fetcher.rb +14 -7
- data/bundler/lib/bundler/force_platform.rb +0 -2
- data/bundler/lib/bundler/friendly_errors.rb +1 -1
- data/bundler/lib/bundler/gem_helper.rb +1 -1
- data/bundler/lib/bundler/gem_helpers.rb +36 -19
- data/bundler/lib/bundler/gem_version_promoter.rb +42 -40
- 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 +17 -41
- data/bundler/lib/bundler/lazy_specification.rb +117 -46
- data/bundler/lib/bundler/lockfile_generator.rb +1 -1
- data/bundler/lib/bundler/lockfile_parser.rb +18 -7
- 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 +11 -15
- data/bundler/lib/bundler/man/bundle-config.1.ronn +12 -15
- 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 +4 -4
- 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 +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 +25 -7
- data/bundler/lib/bundler/man/bundle-gem.1.ronn +38 -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 +12 -4
- data/bundler/lib/bundler/man/bundle-inject.1.ronn +9 -1
- data/bundler/lib/bundler/man/bundle-install.1 +19 -16
- data/bundler/lib/bundler/man/bundle-install.1.ronn +24 -20
- 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 +15 -9
- data/bundler/lib/bundler/man/bundle-update.1.ronn +14 -6
- 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/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 -50
- 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 +282 -125
- data/bundler/lib/bundler/rubygems_gem_installer.rb +40 -5
- data/bundler/lib/bundler/rubygems_integration.rb +29 -67
- data/bundler/lib/bundler/runtime.rb +48 -35
- data/bundler/lib/bundler/self_manager.rb +27 -7
- data/bundler/lib/bundler/settings.rb +32 -21
- data/bundler/lib/bundler/setup.rb +6 -0
- data/bundler/lib/bundler/shared_helpers.rb +39 -21
- data/bundler/lib/bundler/source/gemspec.rb +1 -4
- data/bundler/lib/bundler/source/git/git_proxy.rb +23 -6
- 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 +7 -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 +53 -7
- data/bundler/lib/bundler/spec_set.rb +187 -88
- data/bundler/lib/bundler/stub_specification.rb +29 -2
- 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 +15 -15
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +8 -7
- data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +0 -5
- data/bundler/lib/bundler/ui/shell.rb +24 -2
- 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/lib/net/http/persistent.rb +68 -30
- 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 +1 -1
- data/bundler/lib/bundler/yaml_serializer.rb +12 -7
- data/bundler/lib/bundler.rb +89 -51
- data/{CONTRIBUTING.md → doc/rubygems/CONTRIBUTING.md} +10 -14
- data/{POLICIES.md → doc/rubygems/POLICIES.md} +81 -12
- data/exe/update_rubygems +1 -1
- data/lib/rubygems/basic_specification.rb +43 -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 +30 -17
- 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 +11 -16
- 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 +10 -17
- data/lib/rubygems/config_file.rb +45 -16
- data/lib/rubygems/core_ext/kernel_warn.rb +2 -6
- data/lib/rubygems/defaults.rb +6 -6
- 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 +12 -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 +1 -1
- 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 +31 -40
- 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 +7 -5
- 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 +3 -4
- data/lib/rubygems/request.rb +5 -5
- data/lib/rubygems/request_set/gem_dependency_api.rb +1 -1
- data/lib/rubygems/request_set.rb +1 -1
- 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 +0 -28
- 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/spec_specification.rb +7 -0
- data/lib/rubygems/resolver.rb +7 -7
- data/lib/rubygems/s3_uri_signer.rb +3 -3
- 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 +10 -8
- data/lib/rubygems/source_list.rb +1 -1
- data/lib/rubygems/spec_fetcher.rb +47 -15
- data/lib/rubygems/specification.rb +107 -180
- 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/util/licenses.rb +97 -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 +135 -51
- 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 +117 -49
- 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/{timeout → vendor/timeout}/lib/timeout.rb +10 -11
- data/lib/rubygems/vendor/tsort/.document +1 -0
- data/lib/rubygems/{tsort → vendor/tsort}/lib/tsort.rb +2 -2
- 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 +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 +82 -47
- data/rubygems-update.gemspec +11 -6
- data/setup.rb +1 -1
- metadata +131 -86
- data/bundler/lib/bundler/compact_index_client/gem_parser.rb +0 -32
- data/lib/rubygems/net/http.rb +0 -3
- 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/LICENSE.txt +0 -22
- data/lib/rubygems/optparse/lib/optparse/uri.rb +0 -7
- data/lib/rubygems/optparse.rb +0 -3
- data/lib/rubygems/resolv/LICENSE.txt +0 -22
- 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/timeout/LICENSE.txt +0 -22
- data/lib/rubygems/timeout.rb +0 -3
- 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/{lib/rubygems/net-http → bundler/lib/bundler/vendor/securerandom}/.document +0 -0
- /data/{MAINTAINERS.txt → doc/MAINTAINERS.txt} +0 -0
- /data/{bundler → doc/bundler}/UPGRADING.md +0 -0
- /data/{UPGRADING.md → doc/rubygems/UPGRADING.md} +0 -0
- /data/lib/rubygems/{net-protocol → vendor/molinillo}/.document +0 -0
- /data/lib/rubygems/{resolver → vendor}/molinillo/LICENSE +0 -0
- /data/lib/rubygems/{optparse → vendor/net-http}/.document +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/lib/rubygems/{resolv → vendor/net-protocol}/.document +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/{resolver/molinillo → vendor/optparse}/.document +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/lib/rubygems/{timeout → vendor/resolv}/.document +0 -0
- /data/lib/rubygems/{tsort → vendor/securerandom}/.document +0 -0
- /data/{bundler/lib/bundler/vendor/uri → lib/rubygems/vendor/tsort}/LICENSE.txt +0 -0
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
|
|
@@ -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
|
@@ -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
|
data/lib/rubygems/deprecate.rb
CHANGED
|
@@ -69,99 +69,101 @@
|
|
|
69
69
|
# end
|
|
70
70
|
# end
|
|
71
71
|
|
|
72
|
-
module Gem
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
72
|
+
module Gem
|
|
73
|
+
module Deprecate
|
|
74
|
+
def self.skip # :nodoc:
|
|
75
|
+
@skip ||= false
|
|
76
|
+
end
|
|
76
77
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
78
|
+
def self.skip=(v) # :nodoc:
|
|
79
|
+
@skip = v
|
|
80
|
+
end
|
|
80
81
|
|
|
81
|
-
|
|
82
|
-
|
|
82
|
+
##
|
|
83
|
+
# Temporarily turn off warnings. Intended for tests only.
|
|
83
84
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
85
|
+
def skip_during
|
|
86
|
+
original = Gem::Deprecate.skip
|
|
87
|
+
Gem::Deprecate.skip = true
|
|
88
|
+
yield
|
|
89
|
+
ensure
|
|
90
|
+
Gem::Deprecate.skip = original
|
|
91
|
+
end
|
|
91
92
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
93
|
+
def self.next_rubygems_major_version # :nodoc:
|
|
94
|
+
Gem::Version.new(Gem.rubygems_version.segments.first).bump
|
|
95
|
+
end
|
|
95
96
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
97
|
+
##
|
|
98
|
+
# Simple deprecation method that deprecates +name+ by wrapping it up
|
|
99
|
+
# in a dummy method. It warns on each call to the dummy method
|
|
100
|
+
# telling the user of +repl+ (unless +repl+ is :none) and the
|
|
101
|
+
# year/month that it is planned to go away.
|
|
101
102
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
103
|
+
def deprecate(name, repl, year, month)
|
|
104
|
+
class_eval do
|
|
105
|
+
old = "_deprecated_#{name}"
|
|
106
|
+
alias_method old, name
|
|
107
|
+
define_method name do |*args, &block|
|
|
108
|
+
klass = is_a? Module
|
|
109
|
+
target = klass ? "#{self}." : "#{self.class}#"
|
|
110
|
+
msg = [
|
|
111
|
+
"NOTE: #{target}#{name} is deprecated",
|
|
112
|
+
repl == :none ? " with no replacement" : "; use #{repl} instead",
|
|
113
|
+
format(". It will be removed on or after %4d-%02d.", year, month),
|
|
114
|
+
"\n#{target}#{name} called from #{Gem.location_of_caller.join(":")}",
|
|
115
|
+
]
|
|
116
|
+
warn "#{msg.join}." unless Gem::Deprecate.skip
|
|
117
|
+
send old, *args, &block
|
|
118
|
+
end
|
|
119
|
+
ruby2_keywords name if respond_to?(:ruby2_keywords, true)
|
|
117
120
|
end
|
|
118
|
-
ruby2_keywords name if respond_to?(:ruby2_keywords, true)
|
|
119
121
|
end
|
|
120
|
-
end
|
|
121
122
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
123
|
+
##
|
|
124
|
+
# Simple deprecation method that deprecates +name+ by wrapping it up
|
|
125
|
+
# in a dummy method. It warns on each call to the dummy method
|
|
126
|
+
# telling the user of +repl+ (unless +repl+ is :none) and the
|
|
127
|
+
# Rubygems version that it is planned to go away.
|
|
127
128
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
129
|
+
def rubygems_deprecate(name, replacement=:none)
|
|
130
|
+
class_eval do
|
|
131
|
+
old = "_deprecated_#{name}"
|
|
132
|
+
alias_method old, name
|
|
133
|
+
define_method name do |*args, &block|
|
|
134
|
+
klass = is_a? Module
|
|
135
|
+
target = klass ? "#{self}." : "#{self.class}#"
|
|
136
|
+
msg = [
|
|
137
|
+
"NOTE: #{target}#{name} is deprecated",
|
|
138
|
+
replacement == :none ? " with no replacement" : "; use #{replacement} instead",
|
|
139
|
+
". It will be removed in Rubygems #{Gem::Deprecate.next_rubygems_major_version}",
|
|
140
|
+
"\n#{target}#{name} called from #{Gem.location_of_caller.join(":")}",
|
|
141
|
+
]
|
|
142
|
+
warn "#{msg.join}." unless Gem::Deprecate.skip
|
|
143
|
+
send old, *args, &block
|
|
144
|
+
end
|
|
145
|
+
ruby2_keywords name if respond_to?(:ruby2_keywords, true)
|
|
143
146
|
end
|
|
144
|
-
ruby2_keywords name if respond_to?(:ruby2_keywords, true)
|
|
145
147
|
end
|
|
146
|
-
end
|
|
147
148
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
149
|
+
# Deprecation method to deprecate Rubygems commands
|
|
150
|
+
def rubygems_deprecate_command(version = Gem::Deprecate.next_rubygems_major_version)
|
|
151
|
+
class_eval do
|
|
152
|
+
define_method "deprecated?" do
|
|
153
|
+
true
|
|
154
|
+
end
|
|
154
155
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
156
|
+
define_method "deprecation_warning" do
|
|
157
|
+
msg = [
|
|
158
|
+
"#{command} command is deprecated",
|
|
159
|
+
". It will be removed in Rubygems #{version}.\n",
|
|
160
|
+
]
|
|
160
161
|
|
|
161
|
-
|
|
162
|
+
alert_warning msg.join.to_s unless Gem::Deprecate.skip
|
|
163
|
+
end
|
|
162
164
|
end
|
|
163
165
|
end
|
|
164
|
-
end
|
|
165
166
|
|
|
166
|
-
|
|
167
|
+
module_function :rubygems_deprecate, :rubygems_deprecate_command, :skip_during
|
|
168
|
+
end
|
|
167
169
|
end
|
data/lib/rubygems/errors.rb
CHANGED
|
@@ -30,6 +30,7 @@ module Gem
|
|
|
30
30
|
@name = name
|
|
31
31
|
@requirement = requirement
|
|
32
32
|
@extra_message = extra_message
|
|
33
|
+
super(message)
|
|
33
34
|
end
|
|
34
35
|
|
|
35
36
|
def message # :nodoc:
|
|
@@ -53,8 +54,8 @@ module Gem
|
|
|
53
54
|
attr_reader :specs
|
|
54
55
|
|
|
55
56
|
def initialize(name, requirement, specs)
|
|
56
|
-
super(name, requirement)
|
|
57
57
|
@specs = specs
|
|
58
|
+
super(name, requirement)
|
|
58
59
|
end
|
|
59
60
|
|
|
60
61
|
private
|
data/lib/rubygems/exceptions.rb
CHANGED
|
@@ -104,9 +104,6 @@ end
|
|
|
104
104
|
|
|
105
105
|
class Gem::GemNotFoundException < Gem::Exception; end
|
|
106
106
|
|
|
107
|
-
##
|
|
108
|
-
# Raised by the DependencyInstaller when a specific gem cannot be found
|
|
109
|
-
|
|
110
107
|
class Gem::SpecificGemNotFoundException < Gem::GemNotFoundException
|
|
111
108
|
##
|
|
112
109
|
# Creates a new SpecificGemNotFoundException for a gem with the given +name+
|
|
@@ -137,6 +134,8 @@ class Gem::SpecificGemNotFoundException < Gem::GemNotFoundException
|
|
|
137
134
|
attr_reader :errors
|
|
138
135
|
end
|
|
139
136
|
|
|
137
|
+
Gem.deprecate_constant :SpecificGemNotFoundException
|
|
138
|
+
|
|
140
139
|
##
|
|
141
140
|
# Raised by Gem::Resolver when dependencies conflict and create the
|
|
142
141
|
# inability to find a valid possible spec for a request.
|
|
@@ -292,9 +291,3 @@ class Gem::UnsatisfiableDependencyError < Gem::DependencyError
|
|
|
292
291
|
@dependency.requirement
|
|
293
292
|
end
|
|
294
293
|
end
|
|
295
|
-
|
|
296
|
-
##
|
|
297
|
-
# Backwards compatible typo'd exception class for early RubyGems 2.0.x
|
|
298
|
-
|
|
299
|
-
Gem::UnsatisfiableDepedencyError = Gem::UnsatisfiableDependencyError # :nodoc:
|
|
300
|
-
Gem.deprecate_constant :UnsatisfiableDepedencyError
|
data/lib/rubygems/ext/builder.rb
CHANGED
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
#++
|
|
8
8
|
|
|
9
9
|
require_relative "../user_interaction"
|
|
10
|
-
require_relative "../shellwords"
|
|
11
10
|
|
|
12
11
|
class Gem::Ext::Builder
|
|
13
12
|
include Gem::UserInteraction
|
|
@@ -19,16 +18,17 @@ class Gem::Ext::Builder
|
|
|
19
18
|
$1.downcase
|
|
20
19
|
end
|
|
21
20
|
|
|
22
|
-
def self.make(dest_path, results, make_dir = Dir.pwd, sitedir = nil, targets = ["clean", "", "install"]
|
|
21
|
+
def self.make(dest_path, results, make_dir = Dir.pwd, sitedir = nil, targets = ["clean", "", "install"],
|
|
22
|
+
target_rbconfig: Gem.target_rbconfig)
|
|
23
23
|
unless File.exist? File.join(make_dir, "Makefile")
|
|
24
24
|
raise Gem::InstallError, "Makefile not found"
|
|
25
25
|
end
|
|
26
26
|
|
|
27
27
|
# try to find make program from Ruby configure arguments first
|
|
28
|
-
|
|
28
|
+
target_rbconfig["configure_args"] =~ /with-make-prog\=(\w+)/
|
|
29
29
|
make_program_name = ENV["MAKE"] || ENV["make"] || $1
|
|
30
30
|
make_program_name ||= RUBY_PLATFORM.include?("mswin") ? "nmake" : "make"
|
|
31
|
-
make_program =
|
|
31
|
+
make_program = shellsplit(make_program_name)
|
|
32
32
|
|
|
33
33
|
# The installation of the bundled gems is failed when DESTDIR is empty in mswin platform.
|
|
34
34
|
destdir = /\bnmake/i !~ make_program_name || ENV["DESTDIR"] && ENV["DESTDIR"] != "" ? format("DESTDIR=%s", ENV["DESTDIR"]) : ""
|
|
@@ -57,7 +57,7 @@ class Gem::Ext::Builder
|
|
|
57
57
|
|
|
58
58
|
def self.ruby
|
|
59
59
|
# Gem.ruby is quoted if it contains whitespace
|
|
60
|
-
cmd =
|
|
60
|
+
cmd = shellsplit(Gem.ruby)
|
|
61
61
|
|
|
62
62
|
# This load_path is only needed when running rubygems test without a proper installation.
|
|
63
63
|
# Prepending it in a normal installation will cause problem with order of $LOAD_PATH.
|
|
@@ -82,7 +82,7 @@ class Gem::Ext::Builder
|
|
|
82
82
|
p(command)
|
|
83
83
|
end
|
|
84
84
|
results << "current directory: #{dir}"
|
|
85
|
-
results <<
|
|
85
|
+
results << shelljoin(command)
|
|
86
86
|
|
|
87
87
|
require "open3"
|
|
88
88
|
# Set $SOURCE_DATE_EPOCH for the subprocess.
|
|
@@ -126,15 +126,28 @@ class Gem::Ext::Builder
|
|
|
126
126
|
end
|
|
127
127
|
end
|
|
128
128
|
|
|
129
|
+
def self.shellsplit(command)
|
|
130
|
+
require "shellwords"
|
|
131
|
+
|
|
132
|
+
Shellwords.split(command)
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
def self.shelljoin(command)
|
|
136
|
+
require "shellwords"
|
|
137
|
+
|
|
138
|
+
Shellwords.join(command)
|
|
139
|
+
end
|
|
140
|
+
|
|
129
141
|
##
|
|
130
142
|
# Creates a new extension builder for +spec+. If the +spec+ does not yet
|
|
131
143
|
# have build arguments, saved, set +build_args+ which is an ARGV-style
|
|
132
144
|
# array.
|
|
133
145
|
|
|
134
|
-
def initialize(spec, build_args = spec.build_args)
|
|
146
|
+
def initialize(spec, build_args = spec.build_args, target_rbconfig = Gem.target_rbconfig)
|
|
135
147
|
@spec = spec
|
|
136
148
|
@build_args = build_args
|
|
137
149
|
@gem_dir = spec.full_gem_path
|
|
150
|
+
@target_rbconfig = target_rbconfig
|
|
138
151
|
|
|
139
152
|
@ran_rake = false
|
|
140
153
|
end
|
|
@@ -191,7 +204,7 @@ EOF
|
|
|
191
204
|
FileUtils.mkdir_p dest_path
|
|
192
205
|
|
|
193
206
|
results = builder.build(extension, dest_path,
|
|
194
|
-
results, @build_args, lib_dir, extension_dir)
|
|
207
|
+
results, @build_args, lib_dir, extension_dir, @target_rbconfig)
|
|
195
208
|
|
|
196
209
|
verbose { results.join("\n") }
|
|
197
210
|
|