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
data/lib/rubygems.rb
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
require "rbconfig"
|
10
10
|
|
11
11
|
module Gem
|
12
|
-
VERSION = "3.
|
12
|
+
VERSION = "3.7.1"
|
13
13
|
end
|
14
14
|
|
15
15
|
# Must be first since it unloads the prelude from 1.9.2
|
@@ -18,6 +18,7 @@ require_relative "rubygems/compatibility"
|
|
18
18
|
require_relative "rubygems/defaults"
|
19
19
|
require_relative "rubygems/deprecate"
|
20
20
|
require_relative "rubygems/errors"
|
21
|
+
require_relative "rubygems/target_rbconfig"
|
21
22
|
|
22
23
|
##
|
23
24
|
# RubyGems is the Ruby standard for publishing and managing third party
|
@@ -106,7 +107,7 @@ require_relative "rubygems/errors"
|
|
106
107
|
#
|
107
108
|
# == License
|
108
109
|
#
|
109
|
-
# See {LICENSE.txt}[
|
110
|
+
# See {LICENSE.txt}[https://github.com/rubygems/rubygems/blob/master/LICENSE.txt] for permissions.
|
110
111
|
#
|
111
112
|
# Thanks!
|
112
113
|
#
|
@@ -155,6 +156,13 @@ module Gem
|
|
155
156
|
specifications/default
|
156
157
|
].freeze
|
157
158
|
|
159
|
+
##
|
160
|
+
# The default value for SOURCE_DATE_EPOCH if not specified.
|
161
|
+
# We want a date after 1980-01-01, to prevent issues with Zip files.
|
162
|
+
# This particular timestamp is for 1980-01-02 00:00:00 GMT.
|
163
|
+
|
164
|
+
DEFAULT_SOURCE_DATE_EPOCH = 315_619_200
|
165
|
+
|
158
166
|
@@win_platform = nil
|
159
167
|
|
160
168
|
@configuration = nil
|
@@ -179,6 +187,8 @@ module Gem
|
|
179
187
|
|
180
188
|
@discover_gems_on_require = true
|
181
189
|
|
190
|
+
@target_rbconfig = nil
|
191
|
+
|
182
192
|
##
|
183
193
|
# Try to activate a gem containing +path+. Returns true if
|
184
194
|
# activation succeeded or wasn't needed because it was already
|
@@ -239,6 +249,16 @@ module Gem
|
|
239
249
|
find_spec_for_exe(name, exec_name, requirements).bin_file exec_name
|
240
250
|
end
|
241
251
|
|
252
|
+
def self.find_and_activate_spec_for_exe(name, exec_name, requirements)
|
253
|
+
spec = find_spec_for_exe name, exec_name, requirements
|
254
|
+
Gem::LOADED_SPECS_MUTEX.synchronize do
|
255
|
+
spec.activate
|
256
|
+
finish_resolve
|
257
|
+
end
|
258
|
+
spec
|
259
|
+
end
|
260
|
+
private_class_method :find_and_activate_spec_for_exe
|
261
|
+
|
242
262
|
def self.find_spec_for_exe(name, exec_name, requirements)
|
243
263
|
raise ArgumentError, "you must supply exec_name" unless exec_name
|
244
264
|
|
@@ -263,6 +283,42 @@ module Gem
|
|
263
283
|
end
|
264
284
|
private_class_method :find_spec_for_exe
|
265
285
|
|
286
|
+
##
|
287
|
+
# Find and load the full path to the executable for gem +name+. If the
|
288
|
+
# +exec_name+ is not given, an exception will be raised, otherwise the
|
289
|
+
# specified executable's path is returned. +requirements+ allows
|
290
|
+
# you to specify specific gem versions.
|
291
|
+
#
|
292
|
+
# A side effect of this method is that it will activate the gem that
|
293
|
+
# contains the executable.
|
294
|
+
#
|
295
|
+
# This method should *only* be used in bin stub files.
|
296
|
+
|
297
|
+
def self.activate_and_load_bin_path(name, exec_name = nil, *requirements)
|
298
|
+
spec = find_and_activate_spec_for_exe name, exec_name, requirements
|
299
|
+
|
300
|
+
if spec.name == "bundler"
|
301
|
+
# Old versions of Bundler need a workaround to support nested `bundle
|
302
|
+
# exec` invocations by overriding `Gem.activate_bin_path`. However,
|
303
|
+
# RubyGems now uses this new `Gem.activate_and_load_bin_path` helper in
|
304
|
+
# binstubs, which is of course not overridden in Bundler since it didn't
|
305
|
+
# exist at the time. So, include the override here to workaround that.
|
306
|
+
load ENV["BUNDLE_BIN_PATH"] if ENV["BUNDLE_BIN_PATH"] && spec.version <= "2.5.22"
|
307
|
+
|
308
|
+
# Make sure there's no version of Bundler in `$LOAD_PATH` that's different
|
309
|
+
# from the version we just activated. If that was the case (it happens
|
310
|
+
# when testing Bundler from ruby/ruby), we would load Bundler extensions
|
311
|
+
# to RubyGems from the copy in `$LOAD_PATH` but then load the binstub from
|
312
|
+
# an installed copy, causing those copies to be mixed and yet more
|
313
|
+
# redefinition warnings.
|
314
|
+
#
|
315
|
+
require_path = $LOAD_PATH.resolve_feature_path("bundler").last.delete_suffix("/bundler.rb")
|
316
|
+
Gem.load_bundler_extensions(spec.version) if spec.full_require_paths.include?(require_path)
|
317
|
+
end
|
318
|
+
|
319
|
+
load spec.bin_file(exec_name)
|
320
|
+
end
|
321
|
+
|
266
322
|
##
|
267
323
|
# Find the full path to the executable for gem +name+. If the +exec_name+
|
268
324
|
# is not given, an exception will be raised, otherwise the
|
@@ -275,12 +331,7 @@ module Gem
|
|
275
331
|
# This method should *only* be used in bin stub files.
|
276
332
|
|
277
333
|
def self.activate_bin_path(name, exec_name = nil, *requirements) # :nodoc:
|
278
|
-
|
279
|
-
Gem::LOADED_SPECS_MUTEX.synchronize do
|
280
|
-
spec.activate
|
281
|
-
finish_resolve
|
282
|
-
end
|
283
|
-
spec.bin_file exec_name
|
334
|
+
find_and_activate_spec_for_exe(name, exec_name, requirements).bin_file exec_name
|
284
335
|
end
|
285
336
|
|
286
337
|
##
|
@@ -396,6 +447,23 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
396
447
|
paths.spec_cache_dir
|
397
448
|
end
|
398
449
|
|
450
|
+
##
|
451
|
+
# The RbConfig object for the deployment target platform.
|
452
|
+
#
|
453
|
+
# This is usually the same as the running platform, but may be
|
454
|
+
# different if you are cross-compiling.
|
455
|
+
|
456
|
+
def self.target_rbconfig
|
457
|
+
@target_rbconfig || Gem::TargetRbConfig.for_running_ruby
|
458
|
+
end
|
459
|
+
|
460
|
+
def self.set_target_rbconfig(rbconfig_path)
|
461
|
+
@target_rbconfig = Gem::TargetRbConfig.from_path(rbconfig_path)
|
462
|
+
Gem::Platform.local(refresh: true)
|
463
|
+
Gem.platforms << Gem::Platform.local unless Gem.platforms.include? Gem::Platform.local
|
464
|
+
@target_rbconfig
|
465
|
+
end
|
466
|
+
|
399
467
|
##
|
400
468
|
# Quietly ensure the Gem directory +dir+ contains all the proper
|
401
469
|
# subdirectories. If we can't create a directory due to a permission
|
@@ -450,7 +518,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
450
518
|
# distinction as extensions cannot be shared between the two.
|
451
519
|
|
452
520
|
def self.extension_api_version # :nodoc:
|
453
|
-
if
|
521
|
+
if target_rbconfig["ENABLE_SHARED"] == "no"
|
454
522
|
"#{ruby_api_version}-static"
|
455
523
|
else
|
456
524
|
ruby_api_version
|
@@ -476,9 +544,9 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
476
544
|
|
477
545
|
gem_specifications = @gemdeps ? Gem.loaded_specs.values : Gem::Specification.stubs
|
478
546
|
|
479
|
-
files.concat gem_specifications.
|
547
|
+
files.concat gem_specifications.flat_map {|spec|
|
480
548
|
spec.matches_for_glob("#{glob}#{Gem.suffix_pattern}")
|
481
|
-
}
|
549
|
+
}
|
482
550
|
|
483
551
|
# $LOAD_PATH might contain duplicate entries or reference
|
484
552
|
# the spec dirs directly, so we prune.
|
@@ -489,9 +557,9 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
489
557
|
|
490
558
|
def self.find_files_from_load_path(glob) # :nodoc:
|
491
559
|
glob_with_suffixes = "#{glob}#{Gem.suffix_pattern}"
|
492
|
-
$LOAD_PATH.
|
560
|
+
$LOAD_PATH.flat_map do |load_path|
|
493
561
|
Gem::Util.glob_files_in_dir(glob_with_suffixes, load_path)
|
494
|
-
end.
|
562
|
+
end.select {|file| File.file? file }
|
495
563
|
end
|
496
564
|
|
497
565
|
##
|
@@ -511,9 +579,9 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
511
579
|
|
512
580
|
files = find_files_from_load_path glob if check_load_path
|
513
581
|
|
514
|
-
files.concat Gem::Specification.latest_specs(true).
|
582
|
+
files.concat Gem::Specification.latest_specs(true).flat_map {|spec|
|
515
583
|
spec.matches_for_glob("#{glob}#{Gem.suffix_pattern}")
|
516
|
-
}
|
584
|
+
}
|
517
585
|
|
518
586
|
# $LOAD_PATH might contain duplicate entries or reference
|
519
587
|
# the spec dirs directly, so we prune.
|
@@ -609,6 +677,30 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
609
677
|
@safe_marshal_loaded = true
|
610
678
|
end
|
611
679
|
|
680
|
+
##
|
681
|
+
# Load Bundler extensions to RubyGems, making sure to avoid redefinition
|
682
|
+
# warnings in platform constants
|
683
|
+
|
684
|
+
def self.load_bundler_extensions(version)
|
685
|
+
return unless version <= "2.6.9"
|
686
|
+
|
687
|
+
previous_platforms = {}
|
688
|
+
|
689
|
+
platform_const_list = ["JAVA", "MSWIN", "MSWIN64", "MINGW", "X64_MINGW_LEGACY", "X64_MINGW", "UNIVERSAL_MINGW", "WINDOWS", "X64_LINUX", "X64_LINUX_MUSL"]
|
690
|
+
|
691
|
+
platform_const_list.each do |platform|
|
692
|
+
previous_platforms[platform] = Gem::Platform.const_get(platform)
|
693
|
+
Gem::Platform.send(:remove_const, platform)
|
694
|
+
end
|
695
|
+
|
696
|
+
require "bundler/rubygems_ext"
|
697
|
+
|
698
|
+
platform_const_list.each do |platform|
|
699
|
+
Gem::Platform.send(:remove_const, platform) if Gem::Platform.const_defined?(platform)
|
700
|
+
Gem::Platform.const_set(platform, previous_platforms[platform])
|
701
|
+
end
|
702
|
+
end
|
703
|
+
|
612
704
|
##
|
613
705
|
# The file name and line number of the caller of the caller of this method.
|
614
706
|
#
|
@@ -753,17 +845,14 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
753
845
|
# Safely read a file in binary mode on all platforms.
|
754
846
|
|
755
847
|
def self.read_binary(path)
|
756
|
-
|
757
|
-
rescue Errno::EACCES, Errno::EROFS
|
758
|
-
open_file(path, "rb", &:read)
|
848
|
+
File.binread(path)
|
759
849
|
end
|
760
850
|
|
761
851
|
##
|
762
852
|
# Safely write a file in binary mode on all platforms.
|
853
|
+
|
763
854
|
def self.write_binary(path, data)
|
764
|
-
|
765
|
-
io.write data
|
766
|
-
end
|
855
|
+
File.binwrite(path, data)
|
767
856
|
rescue Errno::ENOSPC
|
768
857
|
# If we ran out of space but the file exists, it's *guaranteed* to be corrupted.
|
769
858
|
File.delete(path) if File.exist?(path)
|
@@ -771,26 +860,45 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
771
860
|
end
|
772
861
|
|
773
862
|
##
|
774
|
-
# Open a file with given flags
|
863
|
+
# Open a file with given flags
|
775
864
|
|
776
865
|
def self.open_file(path, flags, &block)
|
777
|
-
File.open(path, flags)
|
778
|
-
|
779
|
-
|
866
|
+
File.open(path, flags, &block)
|
867
|
+
end
|
868
|
+
|
869
|
+
##
|
870
|
+
# Open a file with given flags, and protect access with a file lock
|
871
|
+
|
872
|
+
def self.open_file_with_lock(path, &block)
|
873
|
+
file_lock = "#{path}.lock"
|
874
|
+
open_file_with_flock(file_lock, &block)
|
875
|
+
ensure
|
876
|
+
require "fileutils"
|
877
|
+
FileUtils.rm_f file_lock
|
878
|
+
end
|
879
|
+
|
880
|
+
##
|
881
|
+
# Open a file with given flags, and protect access with flock
|
882
|
+
|
883
|
+
def self.open_file_with_flock(path, &block)
|
884
|
+
# read-write mode is used rather than read-only in order to support NFS
|
885
|
+
mode = IO::RDWR | IO::APPEND | IO::CREAT | IO::BINARY
|
886
|
+
mode |= IO::SHARE_DELETE if IO.const_defined?(:SHARE_DELETE)
|
887
|
+
|
888
|
+
File.open(path, mode) do |io|
|
889
|
+
begin
|
890
|
+
# Try to get a lock without blocking.
|
891
|
+
# If we do, the file is locked.
|
892
|
+
# Otherwise, explain why we're waiting and get a lock, but block this time.
|
893
|
+
if io.flock(File::LOCK_EX | File::LOCK_NB) != 0
|
894
|
+
warn "Waiting for another process to let go of lock: #{path}"
|
780
895
|
io.flock(File::LOCK_EX)
|
781
|
-
rescue Errno::ENOSYS, Errno::ENOTSUP
|
782
896
|
end
|
897
|
+
io.puts(Process.pid)
|
898
|
+
rescue Errno::ENOSYS, Errno::ENOTSUP
|
783
899
|
end
|
784
900
|
yield io
|
785
901
|
end
|
786
|
-
rescue Errno::ENOLCK # NFS
|
787
|
-
if Thread.main != Thread.current
|
788
|
-
raise
|
789
|
-
else
|
790
|
-
File.open(path, flags) do |io|
|
791
|
-
yield io
|
792
|
-
end
|
793
|
-
end
|
794
902
|
end
|
795
903
|
|
796
904
|
##
|
@@ -810,7 +918,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
810
918
|
# Returns a String containing the API compatibility version of Ruby
|
811
919
|
|
812
920
|
def self.ruby_api_version
|
813
|
-
@ruby_api_version ||=
|
921
|
+
@ruby_api_version ||= target_rbconfig["ruby_version"].dup
|
814
922
|
end
|
815
923
|
|
816
924
|
def self.env_requirement(gem_name)
|
@@ -1012,6 +1120,13 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1012
1120
|
RUBY_PLATFORM.include?("solaris")
|
1013
1121
|
end
|
1014
1122
|
|
1123
|
+
##
|
1124
|
+
# Is this platform FreeBSD
|
1125
|
+
|
1126
|
+
def self.freebsd_platform?
|
1127
|
+
RbConfig::CONFIG["host_os"].to_s.include?("bsd")
|
1128
|
+
end
|
1129
|
+
|
1015
1130
|
##
|
1016
1131
|
# Load +plugins+ as Ruby files
|
1017
1132
|
|
@@ -1112,8 +1227,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1112
1227
|
|
1113
1228
|
##
|
1114
1229
|
# If the SOURCE_DATE_EPOCH environment variable is set, returns it's value.
|
1115
|
-
# Otherwise, returns
|
1116
|
-
# first called in the same format as SOURCE_DATE_EPOCH.
|
1230
|
+
# Otherwise, returns DEFAULT_SOURCE_DATE_EPOCH as a string.
|
1117
1231
|
#
|
1118
1232
|
# NOTE(@duckinator): The implementation is a tad weird because we want to:
|
1119
1233
|
# 1. Make builds reproducible by default, by having this function always
|
@@ -1128,15 +1242,12 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1128
1242
|
# https://reproducible-builds.org/specs/source-date-epoch/
|
1129
1243
|
|
1130
1244
|
def self.source_date_epoch_string
|
1131
|
-
# The value used if $SOURCE_DATE_EPOCH is not set.
|
1132
|
-
@default_source_date_epoch ||= Time.now.to_i.to_s
|
1133
|
-
|
1134
1245
|
specified_epoch = ENV["SOURCE_DATE_EPOCH"]
|
1135
1246
|
|
1136
1247
|
# If it's empty or just whitespace, treat it like it wasn't set at all.
|
1137
1248
|
specified_epoch = nil if !specified_epoch.nil? && specified_epoch.strip.empty?
|
1138
1249
|
|
1139
|
-
epoch = specified_epoch ||
|
1250
|
+
epoch = specified_epoch || DEFAULT_SOURCE_DATE_EPOCH.to_s
|
1140
1251
|
|
1141
1252
|
epoch.strip
|
1142
1253
|
end
|
@@ -1216,9 +1327,16 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1216
1327
|
##
|
1217
1328
|
# Find a Gem::Specification of default gem from +path+
|
1218
1329
|
|
1330
|
+
def find_default_spec(path)
|
1331
|
+
@path_to_default_spec_map[path]
|
1332
|
+
end
|
1333
|
+
|
1334
|
+
##
|
1335
|
+
# Find an unresolved Gem::Specification of default gem from +path+
|
1336
|
+
|
1219
1337
|
def find_unresolved_default_spec(path)
|
1220
1338
|
default_spec = @path_to_default_spec_map[path]
|
1221
|
-
|
1339
|
+
default_spec if default_spec && loaded_specs[default_spec.name] != default_spec
|
1222
1340
|
end
|
1223
1341
|
|
1224
1342
|
##
|
@@ -1344,17 +1462,6 @@ begin
|
|
1344
1462
|
rescue LoadError
|
1345
1463
|
end
|
1346
1464
|
|
1347
|
-
# TruffleRuby >= 24 defines REUSE_AS_BINARY_ON_TRUFFLERUBY in defaults/truffleruby.
|
1348
|
-
# However, TruffleRuby < 24 defines REUSE_AS_BINARY_ON_TRUFFLERUBY directly in its copy
|
1349
|
-
# of lib/rubygems/platform.rb, so it is not defined if RubyGems is updated (gem update --system).
|
1350
|
-
# Instead, we define it here in that case, similar to bundler/lib/bundler/rubygems_ext.rb.
|
1351
|
-
# We must define it here and not in platform.rb because platform.rb is loaded before defaults/truffleruby.
|
1352
|
-
class Gem::Platform
|
1353
|
-
if RUBY_ENGINE == "truffleruby" && !defined?(REUSE_AS_BINARY_ON_TRUFFLERUBY)
|
1354
|
-
REUSE_AS_BINARY_ON_TRUFFLERUBY = %w[libv8 libv8-node sorbet-static].freeze
|
1355
|
-
end
|
1356
|
-
end
|
1357
|
-
|
1358
1465
|
##
|
1359
1466
|
# Loads the default specs.
|
1360
1467
|
Gem::Specification.load_defaults
|
data/rubygems-update.gemspec
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = "rubygems-update"
|
5
|
-
s.version = "3.
|
5
|
+
s.version = "3.7.1"
|
6
6
|
s.authors = ["Jim Weirich", "Chad Fowler", "Eric Hodel", "Luis Lavena", "Aaron Patterson", "Samuel Giddins", "André Arko", "Evan Phoenix", "Hiroshi SHIBATA"]
|
7
7
|
s.email = ["", "", "drbrain@segment7.net", "luislavena@gmail.com", "aaron@tenderlovemaking.com", "segiddins@segiddins.me", "andre@arko.net", "evan@phx.io", "hsbt@ruby-lang.org"]
|
8
8
|
|
@@ -14,7 +14,12 @@ Gem::Specification.new do |s|
|
|
14
14
|
repository of Gems that allows you to publish a Gem that can be shared and used by other
|
15
15
|
developers. See our guide on publishing a Gem at guides.rubygems.org"
|
16
16
|
s.homepage = "https://guides.rubygems.org"
|
17
|
-
s.metadata = {
|
17
|
+
s.metadata = {
|
18
|
+
"source_code_uri" => "https://github.com/rubygems/rubygems",
|
19
|
+
"bug_tracker_uri" => "https://github.com/rubygems/rubygems/issues",
|
20
|
+
"changelog_uri" => "https://github.com/rubygems/rubygems/blob/master/CHANGELOG.md",
|
21
|
+
"funding_uri" => "https://rubycentral.org/#/portal/signup",
|
22
|
+
}
|
18
23
|
s.licenses = ["Ruby", "MIT"]
|
19
24
|
|
20
25
|
s.files = File.read(File.expand_path("Manifest.txt", __dir__)).split
|
@@ -23,15 +28,15 @@ Gem::Specification.new do |s|
|
|
23
28
|
s.require_paths = ["hide_lib_for_update"]
|
24
29
|
s.rdoc_options = ["--main", "README.md", "--title=RubyGems Update Documentation"]
|
25
30
|
s.extra_rdoc_files = [
|
26
|
-
"LICENSE.txt", "MAINTAINERS.txt",
|
31
|
+
"LICENSE.txt", "doc/MAINTAINERS.txt",
|
27
32
|
"MIT.txt", "Manifest.txt", "README.md",
|
28
|
-
"UPGRADING.md", "POLICIES.md", "CODE_OF_CONDUCT.md",
|
29
|
-
"CONTRIBUTING.md",
|
33
|
+
"doc/rubygems/UPGRADING.md", "doc/rubygems/POLICIES.md", "CODE_OF_CONDUCT.md",
|
34
|
+
"doc/rubygems/CONTRIBUTING.md",
|
30
35
|
"bundler/LICENSE.md", "bundler/README.md",
|
31
36
|
"hide_lib_for_update/note.txt", *Dir["bundler/lib/bundler/man/*.1", base: __dir__]
|
32
37
|
]
|
33
38
|
|
34
|
-
s.required_ruby_version = Gem::Requirement.new(">= 3.
|
39
|
+
s.required_ruby_version = Gem::Requirement.new(">= 3.2.0")
|
35
40
|
s.required_rubygems_version = Gem::Requirement.new(">= 0")
|
36
41
|
|
37
42
|
s.specification_version = 4
|
data/setup.rb
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
# See LICENSE.txt for permissions.
|
8
8
|
#++
|
9
9
|
|
10
|
-
abort "RubyGems only supports Ruby 3.
|
10
|
+
abort "RubyGems only supports Ruby 3.2 or higher" if RUBY_VERSION < "3.2.0"
|
11
11
|
|
12
12
|
# Make sure rubygems isn't already loaded.
|
13
13
|
if ENV["RUBYOPT"] || defined? Gem
|