rubygems-update 3.4.22 → 3.5.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 +105 -2
- data/Manifest.txt +46 -221
- data/README.md +1 -3
- data/bundler/CHANGELOG.md +63 -0
- data/bundler/bundler.gemspec +4 -2
- data/bundler/exe/bundle +1 -10
- data/bundler/lib/bundler/build_metadata.rb +3 -3
- data/bundler/lib/bundler/capistrano.rb +1 -1
- data/bundler/lib/bundler/checksum.rb +254 -0
- data/bundler/lib/bundler/ci_detector.rb +75 -0
- data/bundler/lib/bundler/cli/add.rb +3 -3
- data/bundler/lib/bundler/cli/binstubs.rb +4 -4
- data/bundler/lib/bundler/cli/cache.rb +1 -1
- data/bundler/lib/bundler/cli/check.rb +1 -1
- data/bundler/lib/bundler/cli/common.rb +9 -1
- data/bundler/lib/bundler/cli/config.rb +8 -7
- data/bundler/lib/bundler/cli/console.rb +3 -2
- data/bundler/lib/bundler/cli/doctor.rb +2 -2
- data/bundler/lib/bundler/cli/exec.rb +1 -1
- data/bundler/lib/bundler/cli/gem.rb +28 -23
- data/bundler/lib/bundler/cli/info.rb +2 -13
- data/bundler/lib/bundler/cli/install.rb +5 -4
- data/bundler/lib/bundler/cli/issue.rb +1 -1
- data/bundler/lib/bundler/cli/lock.rb +4 -4
- data/bundler/lib/bundler/cli/open.rb +1 -1
- data/bundler/lib/bundler/cli/outdated.rb +6 -6
- data/bundler/lib/bundler/cli/plugin.rb +7 -14
- data/bundler/lib/bundler/cli/pristine.rb +38 -30
- data/bundler/lib/bundler/cli/show.rb +2 -2
- data/bundler/lib/bundler/cli/update.rb +5 -5
- data/bundler/lib/bundler/cli.rb +215 -263
- data/bundler/lib/bundler/compact_index_client/cache.rb +29 -9
- data/bundler/lib/bundler/compact_index_client/cache_file.rb +153 -0
- data/bundler/lib/bundler/compact_index_client/gem_parser.rb +7 -3
- data/bundler/lib/bundler/compact_index_client/updater.rb +79 -81
- data/bundler/lib/bundler/compact_index_client.rb +14 -7
- data/bundler/lib/bundler/constants.rb +1 -1
- data/bundler/lib/bundler/current_ruby.rb +5 -21
- data/bundler/lib/bundler/definition.rb +42 -15
- data/bundler/lib/bundler/dependency.rb +16 -12
- data/bundler/lib/bundler/digest.rb +2 -2
- data/bundler/lib/bundler/dsl.rb +46 -30
- data/bundler/lib/bundler/endpoint_specification.rb +5 -1
- data/bundler/lib/bundler/env.rb +1 -3
- data/bundler/lib/bundler/errors.rb +43 -0
- data/bundler/lib/bundler/fetcher/base.rb +3 -1
- data/bundler/lib/bundler/fetcher/compact_index.rb +4 -4
- data/bundler/lib/bundler/fetcher/downloader.rb +13 -11
- data/bundler/lib/bundler/fetcher/gem_remote_fetcher.rb +16 -0
- data/bundler/lib/bundler/fetcher/index.rb +1 -1
- data/bundler/lib/bundler/fetcher.rb +28 -25
- data/bundler/lib/bundler/friendly_errors.rb +5 -5
- data/bundler/lib/bundler/gem_helper.rb +1 -1
- data/bundler/lib/bundler/gem_helpers.rb +5 -2
- data/bundler/lib/bundler/graph.rb +9 -9
- data/bundler/lib/bundler/index.rb +1 -2
- data/bundler/lib/bundler/injector.rb +1 -1
- data/bundler/lib/bundler/inline.rb +3 -3
- data/bundler/lib/bundler/installer/gem_installer.rb +5 -5
- data/bundler/lib/bundler/installer/parallel_installer.rb +16 -8
- data/bundler/lib/bundler/installer/standalone.rb +2 -3
- data/bundler/lib/bundler/installer.rb +9 -9
- data/bundler/lib/bundler/lazy_specification.rb +24 -17
- data/bundler/lib/bundler/lockfile_generator.rb +9 -0
- data/bundler/lib/bundler/lockfile_parser.rb +81 -10
- data/bundler/lib/bundler/man/bundle-add.1 +3 -26
- data/bundler/lib/bundler/man/bundle-binstubs.1 +4 -16
- data/bundler/lib/bundler/man/bundle-cache.1 +3 -24
- data/bundler/lib/bundler/man/bundle-check.1 +3 -12
- data/bundler/lib/bundler/man/bundle-clean.1 +3 -10
- data/bundler/lib/bundler/man/bundle-config.1 +20 -211
- data/bundler/lib/bundler/man/bundle-config.1.ronn +6 -0
- data/bundler/lib/bundler/man/bundle-console.1 +4 -22
- data/bundler/lib/bundler/man/bundle-doctor.1 +4 -18
- data/bundler/lib/bundler/man/bundle-exec.1 +12 -73
- data/bundler/lib/bundler/man/bundle-gem.1 +13 -49
- data/bundler/lib/bundler/man/bundle-help.1 +3 -7
- data/bundler/lib/bundler/man/bundle-info.1 +3 -9
- data/bundler/lib/bundler/man/bundle-init.1 +3 -12
- data/bundler/lib/bundler/man/bundle-inject.1 +6 -19
- data/bundler/lib/bundler/man/bundle-install.1 +27 -125
- data/bundler/lib/bundler/man/bundle-install.1.ronn +1 -0
- data/bundler/lib/bundler/man/bundle-list.1 +4 -19
- data/bundler/lib/bundler/man/bundle-lock.1 +5 -29
- data/bundler/lib/bundler/man/bundle-open.1 +7 -27
- data/bundler/lib/bundler/man/bundle-outdated.1 +3 -55
- data/bundler/lib/bundler/man/bundle-outdated.1.ronn +1 -0
- data/bundler/lib/bundler/man/bundle-platform.1 +5 -27
- data/bundler/lib/bundler/man/bundle-plugin.1 +3 -29
- data/bundler/lib/bundler/man/bundle-pristine.1 +5 -16
- data/bundler/lib/bundler/man/bundle-remove.1 +4 -14
- data/bundler/lib/bundler/man/bundle-show.1 +3 -10
- data/bundler/lib/bundler/man/bundle-update.1 +18 -137
- data/bundler/lib/bundler/man/bundle-version.1 +3 -16
- data/bundler/lib/bundler/man/bundle-viz.1 +4 -16
- data/bundler/lib/bundler/man/bundle.1 +5 -44
- data/bundler/lib/bundler/man/gemfile.5 +24 -301
- data/bundler/lib/bundler/man/gemfile.5.ronn +4 -0
- data/bundler/lib/bundler/match_metadata.rb +4 -0
- data/bundler/lib/bundler/match_platform.rb +1 -1
- data/bundler/lib/bundler/plugin/api/source.rb +3 -2
- data/bundler/lib/bundler/plugin/installer.rb +1 -1
- data/bundler/lib/bundler/plugin.rb +3 -3
- data/bundler/lib/bundler/resolver/base.rb +1 -1
- data/bundler/lib/bundler/resolver/incompatibility.rb +1 -1
- data/bundler/lib/bundler/resolver/spec_group.rb +1 -4
- data/bundler/lib/bundler/resolver.rb +16 -16
- data/bundler/lib/bundler/ruby_dsl.rb +20 -12
- data/bundler/lib/bundler/ruby_version.rb +1 -1
- data/bundler/lib/bundler/rubygems_ext.rb +24 -50
- data/bundler/lib/bundler/rubygems_gem_installer.rb +6 -56
- data/bundler/lib/bundler/rubygems_integration.rb +25 -94
- data/bundler/lib/bundler/runtime.rb +2 -2
- data/bundler/lib/bundler/self_manager.rb +23 -7
- data/bundler/lib/bundler/settings.rb +27 -7
- data/bundler/lib/bundler/setup.rb +4 -1
- data/bundler/lib/bundler/shared_helpers.rb +35 -13
- data/bundler/lib/bundler/source/git/git_proxy.rb +15 -15
- data/bundler/lib/bundler/source/git.rb +4 -3
- data/bundler/lib/bundler/source/metadata.rb +15 -15
- data/bundler/lib/bundler/source/path.rb +7 -6
- data/bundler/lib/bundler/source/rubygems.rb +21 -14
- data/bundler/lib/bundler/source.rb +2 -0
- data/bundler/lib/bundler/spec_set.rb +38 -10
- data/bundler/lib/bundler/stub_specification.rb +1 -0
- data/bundler/lib/bundler/templates/Executable.bundler +1 -1
- data/bundler/lib/bundler/templates/newgem/README.md.tt +3 -3
- data/bundler/lib/bundler/templates/newgem/Rakefile.tt +2 -6
- data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +1 -1
- data/bundler/lib/bundler/templates/newgem/standard.yml.tt +1 -1
- data/bundler/lib/bundler/ui/shell.rb +1 -1
- data/bundler/lib/bundler/vendor/connection_pool/.document +1 -0
- 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 +53 -6
- data/bundler/lib/bundler/vendor/fileutils/.document +1 -0
- data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +8 -20
- data/bundler/lib/bundler/vendor/net-http-persistent/.document +1 -0
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +3 -3
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +2 -2
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +1 -1
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +34 -34
- data/bundler/lib/bundler/vendor/pub_grub/.document +1 -0
- data/bundler/lib/bundler/vendor/thor/.document +1 -0
- data/bundler/lib/bundler/vendor/tsort/.document +1 -0
- data/bundler/lib/bundler/vendor/tsort/lib/tsort.rb +3 -0
- data/bundler/lib/bundler/vendor/uri/.document +1 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +256 -132
- data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +1 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +95 -31
- data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
- data/bundler/lib/bundler/vendored_net_http.rb +8 -0
- data/bundler/lib/bundler/vendored_persistent.rb +0 -4
- data/bundler/lib/bundler/vendored_timeout.rb +8 -0
- data/bundler/lib/bundler/version.rb +1 -1
- data/bundler/lib/bundler/vlad.rb +1 -1
- data/bundler/lib/bundler/yaml_serializer.rb +3 -3
- data/bundler/lib/bundler.rb +41 -32
- data/lib/rubygems/available_set.rb +4 -4
- data/lib/rubygems/basic_specification.rb +35 -37
- data/lib/rubygems/bundler_version_finder.rb +4 -4
- data/lib/rubygems/ci_detector.rb +75 -0
- data/lib/rubygems/command.rb +13 -15
- data/lib/rubygems/command_manager.rb +5 -4
- data/lib/rubygems/commands/build_command.rb +2 -2
- data/lib/rubygems/commands/cert_command.rb +1 -2
- data/lib/rubygems/commands/check_command.rb +4 -4
- data/lib/rubygems/commands/cleanup_command.rb +12 -14
- data/lib/rubygems/commands/contents_command.rb +4 -4
- data/lib/rubygems/commands/dependency_command.rb +4 -5
- data/lib/rubygems/commands/environment_command.rb +1 -3
- data/lib/rubygems/commands/exec_command.rb +1 -1
- data/lib/rubygems/commands/fetch_command.rb +2 -2
- data/lib/rubygems/commands/generate_index_command.rb +39 -74
- data/lib/rubygems/commands/help_command.rb +3 -3
- data/lib/rubygems/commands/info_command.rb +2 -2
- data/lib/rubygems/commands/install_command.rb +8 -16
- data/lib/rubygems/commands/list_command.rb +2 -2
- data/lib/rubygems/commands/lock_command.rb +1 -1
- data/lib/rubygems/commands/open_command.rb +1 -1
- data/lib/rubygems/commands/owner_command.rb +1 -1
- data/lib/rubygems/commands/pristine_command.rb +13 -15
- data/lib/rubygems/commands/push_command.rb +2 -2
- data/lib/rubygems/commands/query_command.rb +4 -5
- data/lib/rubygems/commands/rdoc_command.rb +2 -2
- data/lib/rubygems/commands/search_command.rb +2 -2
- data/lib/rubygems/commands/setup_command.rb +31 -34
- data/lib/rubygems/commands/sources_command.rb +12 -12
- data/lib/rubygems/commands/specification_command.rb +10 -10
- data/lib/rubygems/commands/stale_command.rb +1 -1
- data/lib/rubygems/commands/uninstall_command.rb +9 -10
- data/lib/rubygems/commands/unpack_command.rb +4 -4
- data/lib/rubygems/commands/update_command.rb +10 -12
- data/lib/rubygems/commands/which_command.rb +1 -1
- data/lib/rubygems/commands/yank_command.rb +1 -1
- data/lib/rubygems/compatibility.rb +5 -6
- data/lib/rubygems/config_file.rb +4 -4
- data/lib/rubygems/core_ext/kernel_gem.rb +0 -2
- data/lib/rubygems/core_ext/kernel_require.rb +19 -48
- data/lib/rubygems/core_ext/kernel_warn.rb +1 -1
- data/lib/rubygems/core_ext/tcpsocket_init.rb +1 -1
- data/lib/rubygems/defaults.rb +15 -3
- data/lib/rubygems/dependency.rb +12 -14
- data/lib/rubygems/dependency_installer.rb +29 -30
- data/lib/rubygems/dependency_list.rb +1 -1
- data/lib/rubygems/deprecate.rb +16 -15
- data/lib/rubygems/doctor.rb +5 -5
- data/lib/rubygems/errors.rb +2 -6
- data/lib/rubygems/exceptions.rb +2 -1
- data/lib/rubygems/ext/builder.rb +15 -10
- data/lib/rubygems/ext/cargo_builder.rb +5 -5
- data/lib/rubygems/ext/ext_conf_builder.rb +1 -3
- data/lib/rubygems/gem_runner.rb +4 -4
- data/lib/rubygems/gemcutter_utilities/webauthn_listener/response.rb +3 -3
- data/lib/rubygems/gemcutter_utilities/webauthn_poller.rb +3 -3
- data/lib/rubygems/gemcutter_utilities.rb +18 -19
- data/lib/rubygems/install_update_options.rb +18 -19
- data/lib/rubygems/installer.rb +59 -33
- data/lib/rubygems/installer_uninstaller_utils.rb +0 -2
- data/lib/rubygems/local_remote_options.rb +7 -10
- data/lib/rubygems/name_tuple.rb +7 -9
- data/lib/rubygems/net/http.rb +3 -0
- data/lib/rubygems/net-http/.document +1 -0
- data/lib/rubygems/net-http/LICENSE.txt +22 -0
- data/lib/rubygems/net-http/lib/net/http/backward.rb +40 -0
- data/lib/rubygems/net-http/lib/net/http/exceptions.rb +34 -0
- data/lib/rubygems/net-http/lib/net/http/generic_request.rb +414 -0
- data/lib/rubygems/net-http/lib/net/http/header.rb +981 -0
- data/lib/rubygems/net-http/lib/net/http/proxy_delta.rb +17 -0
- data/lib/rubygems/net-http/lib/net/http/request.rb +88 -0
- data/lib/rubygems/net-http/lib/net/http/requests.rb +425 -0
- data/lib/rubygems/net-http/lib/net/http/response.rb +738 -0
- data/lib/rubygems/net-http/lib/net/http/responses.rb +1174 -0
- data/lib/rubygems/net-http/lib/net/http/status.rb +84 -0
- data/lib/rubygems/net-http/lib/net/http.rb +2496 -0
- data/lib/rubygems/net-http/lib/net/https.rb +23 -0
- data/lib/rubygems/net-protocol/.document +1 -0
- data/lib/rubygems/net-protocol/LICENSE.txt +22 -0
- data/lib/rubygems/net-protocol/lib/net/protocol.rb +544 -0
- data/lib/rubygems/optparse/lib/optparse.rb +39 -17
- data/lib/rubygems/package/old.rb +2 -2
- data/lib/rubygems/package/tar_header.rb +45 -39
- data/lib/rubygems/package/tar_reader/entry.rb +5 -4
- data/lib/rubygems/package/tar_reader.rb +5 -3
- data/lib/rubygems/package/tar_writer.rb +19 -17
- data/lib/rubygems/package.rb +27 -26
- data/lib/rubygems/package_task.rb +2 -2
- data/lib/rubygems/path_support.rb +9 -10
- data/lib/rubygems/platform.rb +60 -45
- data/lib/rubygems/query_utils.rb +7 -9
- data/lib/rubygems/remote_fetcher.rb +15 -15
- data/lib/rubygems/request/connection_pools.rb +3 -3
- data/lib/rubygems/request.rb +20 -17
- data/lib/rubygems/request_set/gem_dependency_api.rb +119 -122
- data/lib/rubygems/request_set/lockfile/parser.rb +9 -9
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +20 -12
- data/lib/rubygems/request_set/lockfile.rb +6 -11
- data/lib/rubygems/request_set.rb +5 -5
- data/lib/rubygems/requirement.rb +7 -7
- data/lib/rubygems/resolv/.document +1 -0
- data/lib/rubygems/resolv/LICENSE.txt +22 -0
- data/lib/rubygems/resolv/lib/resolv.rb +3387 -0
- data/lib/rubygems/resolver/activation_request.rb +1 -3
- data/lib/rubygems/resolver/api_set/gem_parser.rb +7 -3
- data/lib/rubygems/resolver/best_set.rb +1 -1
- data/lib/rubygems/resolver/composed_set.rb +1 -1
- data/lib/rubygems/resolver/conflict.rb +4 -12
- data/lib/rubygems/resolver/index_set.rb +4 -4
- data/lib/rubygems/resolver/index_specification.rb +2 -2
- data/lib/rubygems/resolver/installer_set.rb +5 -6
- data/lib/rubygems/resolver/lock_set.rb +1 -1
- data/lib/rubygems/resolver/molinillo/.document +1 -0
- data/lib/rubygems/resolver.rb +3 -10
- data/lib/rubygems/s3_uri_signer.rb +6 -6
- data/lib/rubygems/safe_marshal/elements.rb +138 -0
- data/lib/rubygems/safe_marshal/reader.rb +306 -0
- data/lib/rubygems/safe_marshal/visitors/stream_printer.rb +31 -0
- data/lib/rubygems/safe_marshal/visitors/to_ruby.rb +385 -0
- data/lib/rubygems/safe_marshal/visitors/visitor.rb +74 -0
- data/lib/rubygems/safe_marshal.rb +74 -0
- data/lib/rubygems/safe_yaml.rb +5 -28
- data/lib/rubygems/security/policies.rb +36 -38
- data/lib/rubygems/security/policy.rb +7 -11
- data/lib/rubygems/security/signer.rb +1 -1
- data/lib/rubygems/security/trust_dir.rb +3 -3
- data/lib/rubygems/security.rb +8 -22
- data/lib/rubygems/source/git.rb +1 -3
- data/lib/rubygems/source/installed.rb +0 -2
- data/lib/rubygems/source/local.rb +5 -8
- data/lib/rubygems/source/lock.rb +1 -3
- data/lib/rubygems/source/specific_file.rb +0 -1
- data/lib/rubygems/source/vendor.rb +0 -2
- data/lib/rubygems/source.rb +12 -12
- data/lib/rubygems/source_list.rb +4 -4
- data/lib/rubygems/spec_fetcher.rb +29 -29
- data/lib/rubygems/specification.rb +125 -138
- data/lib/rubygems/specification_policy.rb +55 -25
- data/lib/rubygems/stub_specification.rb +4 -5
- data/lib/rubygems/text.rb +1 -2
- data/lib/rubygems/timeout/.document +1 -0
- data/lib/rubygems/timeout/LICENSE.txt +22 -0
- data/lib/rubygems/timeout/lib/timeout.rb +199 -0
- data/lib/rubygems/timeout.rb +3 -0
- data/lib/rubygems/tsort/lib/tsort.rb +3 -0
- data/lib/rubygems/uninstaller.rb +7 -9
- data/lib/rubygems/update_suggestion.rb +5 -18
- data/lib/rubygems/uri_formatter.rb +1 -1
- data/lib/rubygems/user_interaction.rb +15 -21
- data/lib/rubygems/util/licenses.rb +65 -35
- data/lib/rubygems/util/list.rb +3 -1
- data/lib/rubygems/util.rb +2 -4
- data/lib/rubygems/validator.rb +5 -3
- data/lib/rubygems/version.rb +34 -28
- data/lib/rubygems/version_option.rb +2 -5
- data/lib/rubygems/yaml_serializer.rb +3 -3
- data/lib/rubygems.rb +37 -37
- data/rubygems-update.gemspec +4 -4
- data/setup.rb +2 -2
- metadata +50 -225
- data/lib/rubygems/indexer.rb +0 -428
- data/lib/rubygems/mock_gem_ui.rb +0 -86
- data/test/rubygems/alternate_cert.pem +0 -19
- data/test/rubygems/alternate_cert_32.pem +0 -19
- data/test/rubygems/alternate_key.pem +0 -27
- data/test/rubygems/bad_rake.rb +0 -3
- data/test/rubygems/bundler_test_gem.rb +0 -424
- data/test/rubygems/ca_cert.pem +0 -77
- data/test/rubygems/child_cert.pem +0 -19
- data/test/rubygems/child_cert_32.pem +0 -19
- data/test/rubygems/child_key.pem +0 -27
- data/test/rubygems/client.pem +0 -107
- data/test/rubygems/data/excon-0.7.7.gemspec.rz +0 -0
- data/test/rubygems/data/gem-private_key.pem +0 -27
- data/test/rubygems/data/gem-public_cert.pem +0 -20
- data/test/rubygems/data/null-required-ruby-version.gemspec.rz +0 -0
- data/test/rubygems/data/null-required-rubygems-version.gemspec.rz +0 -0
- data/test/rubygems/data/pry-0.4.7.gemspec.rz +0 -0
- data/test/rubygems/encrypted_private_key.pem +0 -30
- data/test/rubygems/expired_cert.pem +0 -19
- data/test/rubygems/fake_certlib/openssl.rb +0 -9
- data/test/rubygems/foo/discover.rb +0 -1
- data/test/rubygems/future_cert.pem +0 -19
- data/test/rubygems/future_cert_32.pem +0 -19
- data/test/rubygems/good_rake.rb +0 -3
- data/test/rubygems/grandchild_cert.pem +0 -19
- data/test/rubygems/grandchild_cert_32.pem +0 -19
- data/test/rubygems/grandchild_key.pem +0 -27
- data/test/rubygems/helper.rb +0 -1649
- data/test/rubygems/installer_test_case.rb +0 -248
- data/test/rubygems/invalid_client.pem +0 -49
- data/test/rubygems/invalid_issuer_cert.pem +0 -20
- data/test/rubygems/invalid_issuer_cert_32.pem +0 -20
- data/test/rubygems/invalid_key.pem +0 -27
- data/test/rubygems/invalid_signer_cert.pem +0 -19
- data/test/rubygems/invalid_signer_cert_32.pem +0 -19
- data/test/rubygems/invalidchild_cert.pem +0 -19
- data/test/rubygems/invalidchild_cert_32.pem +0 -19
- data/test/rubygems/invalidchild_key.pem +0 -27
- data/test/rubygems/multifactor_auth_utilities.rb +0 -111
- data/test/rubygems/package/tar_test_case.rb +0 -175
- data/test/rubygems/packages/Bluebie-legs-0.6.2.gem +0 -0
- data/test/rubygems/packages/ascii_binder-0.1.10.1.gem +0 -0
- data/test/rubygems/packages/ill-formatted-platform-1.0.0.10.gem +0 -0
- data/test/rubygems/plugin/exception/rubygems_plugin.rb +0 -4
- data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -5
- data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +0 -4
- data/test/rubygems/private3072_key.pem +0 -40
- data/test/rubygems/private_ec_key.pem +0 -9
- data/test/rubygems/private_key.pem +0 -27
- data/test/rubygems/public3072_cert.pem +0 -25
- data/test/rubygems/public_cert.pem +0 -20
- data/test/rubygems/public_cert_32.pem +0 -19
- data/test/rubygems/public_key.pem +0 -9
- data/test/rubygems/rubygems/commands/crash_command.rb +0 -5
- data/test/rubygems/rubygems_plugin.rb +0 -24
- data/test/rubygems/sff/discover.rb +0 -1
- data/test/rubygems/simple_gem.rb +0 -68
- data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -9
- data/test/rubygems/specifications/foo-0.0.1-x86-mswin32.gemspec +0 -0
- data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +0 -14
- data/test/rubygems/ssl_cert.pem +0 -80
- data/test/rubygems/ssl_key.pem +0 -27
- data/test/rubygems/test_bundled_ca.rb +0 -61
- data/test/rubygems/test_config.rb +0 -28
- data/test/rubygems/test_deprecate.rb +0 -158
- data/test/rubygems/test_exit.rb +0 -17
- data/test/rubygems/test_gem.rb +0 -1799
- data/test/rubygems/test_gem_available_set.rb +0 -130
- data/test/rubygems/test_gem_bundler_version_finder.rb +0 -127
- data/test/rubygems/test_gem_command.rb +0 -403
- data/test/rubygems/test_gem_command_manager.rb +0 -400
- data/test/rubygems/test_gem_commands_build_command.rb +0 -739
- data/test/rubygems/test_gem_commands_cert_command.rb +0 -866
- data/test/rubygems/test_gem_commands_check_command.rb +0 -68
- data/test/rubygems/test_gem_commands_cleanup_command.rb +0 -292
- data/test/rubygems/test_gem_commands_contents_command.rb +0 -271
- data/test/rubygems/test_gem_commands_dependency_command.rb +0 -228
- data/test/rubygems/test_gem_commands_environment_command.rb +0 -169
- data/test/rubygems/test_gem_commands_exec_command.rb +0 -857
- data/test/rubygems/test_gem_commands_fetch_command.rb +0 -258
- data/test/rubygems/test_gem_commands_generate_index_command.rb +0 -81
- data/test/rubygems/test_gem_commands_help_command.rb +0 -94
- data/test/rubygems/test_gem_commands_info_command.rb +0 -70
- data/test/rubygems/test_gem_commands_install_command.rb +0 -1573
- data/test/rubygems/test_gem_commands_list_command.rb +0 -33
- data/test/rubygems/test_gem_commands_lock_command.rb +0 -67
- data/test/rubygems/test_gem_commands_mirror.rb +0 -20
- data/test/rubygems/test_gem_commands_open_command.rb +0 -101
- data/test/rubygems/test_gem_commands_outdated_command.rb +0 -50
- data/test/rubygems/test_gem_commands_owner_command.rb +0 -503
- data/test/rubygems/test_gem_commands_pristine_command.rb +0 -708
- data/test/rubygems/test_gem_commands_push_command.rb +0 -603
- data/test/rubygems/test_gem_commands_query_command.rb +0 -858
- data/test/rubygems/test_gem_commands_search_command.rb +0 -16
- data/test/rubygems/test_gem_commands_server_command.rb +0 -20
- data/test/rubygems/test_gem_commands_setup_command.rb +0 -474
- data/test/rubygems/test_gem_commands_signin_command.rb +0 -259
- data/test/rubygems/test_gem_commands_signout_command.rb +0 -30
- data/test/rubygems/test_gem_commands_sources_command.rb +0 -534
- data/test/rubygems/test_gem_commands_specification_command.rb +0 -277
- data/test/rubygems/test_gem_commands_stale_command.rb +0 -43
- data/test/rubygems/test_gem_commands_uninstall_command.rb +0 -542
- data/test/rubygems/test_gem_commands_unpack_command.rb +0 -224
- data/test/rubygems/test_gem_commands_update_command.rb +0 -836
- data/test/rubygems/test_gem_commands_which_command.rb +0 -85
- data/test/rubygems/test_gem_commands_yank_command.rb +0 -299
- data/test/rubygems/test_gem_config_file.rb +0 -551
- data/test/rubygems/test_gem_dependency.rb +0 -398
- data/test/rubygems/test_gem_dependency_installer.rb +0 -1190
- data/test/rubygems/test_gem_dependency_list.rb +0 -265
- data/test/rubygems/test_gem_dependency_resolution_error.rb +0 -27
- data/test/rubygems/test_gem_doctor.rb +0 -195
- data/test/rubygems/test_gem_ext_builder.rb +0 -337
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore +0 -1
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +0 -10
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.lock +0 -249
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.toml +0 -10
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/src/lib.rs +0 -27
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb +0 -3
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/.gitignore +0 -1
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +0 -249
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +0 -10
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +0 -10
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +0 -51
- data/test/rubygems/test_gem_ext_cargo_builder.rb +0 -167
- data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +0 -34
- data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +0 -60
- data/test/rubygems/test_gem_ext_cmake_builder.rb +0 -84
- data/test/rubygems/test_gem_ext_configure_builder.rb +0 -80
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +0 -229
- data/test/rubygems/test_gem_ext_rake_builder.rb +0 -113
- data/test/rubygems/test_gem_gem_runner.rb +0 -119
- data/test/rubygems/test_gem_gemcutter_utilities.rb +0 -361
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -60
- data/test/rubygems/test_gem_indexer.rb +0 -381
- data/test/rubygems/test_gem_install_update_options.rb +0 -208
- data/test/rubygems/test_gem_installer.rb +0 -2512
- data/test/rubygems/test_gem_local_remote_options.rb +0 -133
- data/test/rubygems/test_gem_name_tuple.rb +0 -43
- data/test/rubygems/test_gem_package.rb +0 -1306
- data/test/rubygems/test_gem_package_old.rb +0 -91
- data/test/rubygems/test_gem_package_tar_header.rb +0 -226
- data/test/rubygems/test_gem_package_tar_reader.rb +0 -150
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +0 -350
- data/test/rubygems/test_gem_package_tar_writer.rb +0 -331
- data/test/rubygems/test_gem_package_task.rb +0 -118
- data/test/rubygems/test_gem_path_support.rb +0 -139
- data/test/rubygems/test_gem_platform.rb +0 -497
- data/test/rubygems/test_gem_rdoc.rb +0 -137
- data/test/rubygems/test_gem_remote_fetcher.rb +0 -1227
- data/test/rubygems/test_gem_request.rb +0 -547
- data/test/rubygems/test_gem_request_connection_pools.rb +0 -152
- data/test/rubygems/test_gem_request_set.rb +0 -672
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +0 -853
- data/test/rubygems/test_gem_request_set_lockfile.rb +0 -469
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +0 -544
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +0 -307
- data/test/rubygems/test_gem_requirement.rb +0 -505
- data/test/rubygems/test_gem_resolver.rb +0 -859
- data/test/rubygems/test_gem_resolver_activation_request.rb +0 -43
- data/test/rubygems/test_gem_resolver_api_set.rb +0 -210
- data/test/rubygems/test_gem_resolver_api_specification.rb +0 -167
- data/test/rubygems/test_gem_resolver_best_set.rb +0 -159
- data/test/rubygems/test_gem_resolver_composed_set.rb +0 -44
- data/test/rubygems/test_gem_resolver_conflict.rb +0 -82
- data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -83
- data/test/rubygems/test_gem_resolver_git_set.rb +0 -188
- data/test/rubygems/test_gem_resolver_git_specification.rb +0 -114
- data/test/rubygems/test_gem_resolver_index_set.rb +0 -88
- data/test/rubygems/test_gem_resolver_index_specification.rb +0 -93
- data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -47
- data/test/rubygems/test_gem_resolver_installer_set.rb +0 -320
- data/test/rubygems/test_gem_resolver_local_specification.rb +0 -44
- data/test/rubygems/test_gem_resolver_lock_set.rb +0 -62
- data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -98
- data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -19
- data/test/rubygems/test_gem_resolver_specification.rb +0 -63
- data/test/rubygems/test_gem_resolver_vendor_set.rb +0 -82
- data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -82
- data/test/rubygems/test_gem_security.rb +0 -341
- data/test/rubygems/test_gem_security_policy.rb +0 -535
- data/test/rubygems/test_gem_security_signer.rb +0 -218
- data/test/rubygems/test_gem_security_trust_dir.rb +0 -99
- data/test/rubygems/test_gem_silent_ui.rb +0 -123
- data/test/rubygems/test_gem_source.rb +0 -254
- data/test/rubygems/test_gem_source_fetch_problem.rb +0 -37
- data/test/rubygems/test_gem_source_git.rb +0 -310
- data/test/rubygems/test_gem_source_installed.rb +0 -35
- data/test/rubygems/test_gem_source_list.rb +0 -119
- data/test/rubygems/test_gem_source_local.rb +0 -107
- data/test/rubygems/test_gem_source_lock.rb +0 -113
- data/test/rubygems/test_gem_source_specific_file.rb +0 -76
- data/test/rubygems/test_gem_source_subpath_problem.rb +0 -50
- data/test/rubygems/test_gem_source_vendor.rb +0 -30
- data/test/rubygems/test_gem_spec_fetcher.rb +0 -338
- data/test/rubygems/test_gem_specification.rb +0 -3856
- data/test/rubygems/test_gem_stream_ui.rb +0 -255
- data/test/rubygems/test_gem_stub_specification.rb +0 -278
- data/test/rubygems/test_gem_text.rb +0 -103
- data/test/rubygems/test_gem_uninstaller.rb +0 -675
- data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -31
- data/test/rubygems/test_gem_update_suggestion.rb +0 -209
- data/test/rubygems/test_gem_uri.rb +0 -41
- data/test/rubygems/test_gem_uri_formatter.rb +0 -27
- data/test/rubygems/test_gem_util.rb +0 -91
- data/test/rubygems/test_gem_validator.rb +0 -42
- data/test/rubygems/test_gem_version.rb +0 -305
- data/test/rubygems/test_gem_version_option.rb +0 -165
- data/test/rubygems/test_kernel.rb +0 -124
- data/test/rubygems/test_project_sanity.rb +0 -49
- data/test/rubygems/test_remote_fetch_error.rb +0 -20
- data/test/rubygems/test_require.rb +0 -732
- data/test/rubygems/test_rubygems.rb +0 -76
- data/test/rubygems/test_webauthn_listener.rb +0 -143
- data/test/rubygems/test_webauthn_listener_response.rb +0 -93
- data/test/rubygems/test_webauthn_poller.rb +0 -124
- data/test/rubygems/utilities.rb +0 -436
- data/test/rubygems/wrong_key_cert.pem +0 -19
- data/test/rubygems/wrong_key_cert_32.pem +0 -19
- data/test/test_changelog_generator.rb +0 -17
@@ -4,17 +4,12 @@ require "rubygems" unless defined?(Gem)
|
|
4
4
|
|
5
5
|
module Bundler
|
6
6
|
class RubygemsIntegration
|
7
|
-
|
8
|
-
EXT_LOCK = Gem::Ext::Builder::CHDIR_MONITOR
|
9
|
-
else
|
10
|
-
require "monitor"
|
7
|
+
require "monitor"
|
11
8
|
|
12
|
-
|
13
|
-
end
|
9
|
+
EXT_LOCK = Monitor.new
|
14
10
|
|
15
11
|
def initialize
|
16
12
|
@replaced_methods = {}
|
17
|
-
backport_ext_builder_monitor
|
18
13
|
end
|
19
14
|
|
20
15
|
def version
|
@@ -43,18 +38,6 @@ module Bundler
|
|
43
38
|
Gem.loaded_specs[name]
|
44
39
|
end
|
45
40
|
|
46
|
-
def add_to_load_path(paths)
|
47
|
-
return Gem.add_to_load_path(*paths) if Gem.respond_to?(:add_to_load_path)
|
48
|
-
|
49
|
-
if insert_index = Gem.load_path_insert_index
|
50
|
-
# Gem directories must come after -I and ENV['RUBYLIB']
|
51
|
-
$LOAD_PATH.insert(insert_index, *paths)
|
52
|
-
else
|
53
|
-
# We are probably testing in core, -I and RUBYLIB don't apply
|
54
|
-
$LOAD_PATH.unshift(*paths)
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
41
|
def mark_loaded(spec)
|
59
42
|
if spec.respond_to?(:activated=)
|
60
43
|
current = Gem.loaded_specs[spec.name]
|
@@ -91,9 +74,9 @@ module Bundler
|
|
91
74
|
def spec_matches_for_glob(spec, glob)
|
92
75
|
return spec.matches_for_glob(glob) if spec.respond_to?(:matches_for_glob)
|
93
76
|
|
94
|
-
spec.load_paths.
|
77
|
+
spec.load_paths.flat_map do |lp|
|
95
78
|
Dir["#{lp}/#{glob}#{suffix_pattern}"]
|
96
|
-
end
|
79
|
+
end
|
97
80
|
end
|
98
81
|
|
99
82
|
def stub_set_spec(stub, spec)
|
@@ -116,16 +99,6 @@ module Bundler
|
|
116
99
|
Gem::Util.inflate(obj)
|
117
100
|
end
|
118
101
|
|
119
|
-
def correct_for_windows_path(path)
|
120
|
-
if Gem::Util.respond_to?(:correct_for_windows_path)
|
121
|
-
Gem::Util.correct_for_windows_path(path)
|
122
|
-
elsif path[0].chr == "/" && path[1].chr =~ /[a-z]/i && path[2].chr == ":"
|
123
|
-
path[1..-1]
|
124
|
-
else
|
125
|
-
path
|
126
|
-
end
|
127
|
-
end
|
128
|
-
|
129
102
|
def gem_dir
|
130
103
|
Gem.dir
|
131
104
|
end
|
@@ -161,7 +134,7 @@ module Bundler
|
|
161
134
|
def spec_cache_dirs
|
162
135
|
@spec_cache_dirs ||= begin
|
163
136
|
dirs = gem_path.map {|dir| File.join(dir, "specifications") }
|
164
|
-
dirs << Gem.spec_cache_dir
|
137
|
+
dirs << Gem.spec_cache_dir
|
165
138
|
dirs.uniq.select {|dir| File.directory? dir }
|
166
139
|
end
|
167
140
|
end
|
@@ -183,18 +156,6 @@ module Bundler
|
|
183
156
|
loaded_gem_paths.flatten
|
184
157
|
end
|
185
158
|
|
186
|
-
def load_plugins
|
187
|
-
Gem.load_plugins if Gem.respond_to?(:load_plugins)
|
188
|
-
end
|
189
|
-
|
190
|
-
def load_plugin_files(files)
|
191
|
-
Gem.load_plugin_files(files) if Gem.respond_to?(:load_plugin_files)
|
192
|
-
end
|
193
|
-
|
194
|
-
def load_env_plugins
|
195
|
-
Gem.load_env_plugins if Gem.respond_to?(:load_env_plugins)
|
196
|
-
end
|
197
|
-
|
198
159
|
def ui=(obj)
|
199
160
|
Gem::DefaultUserInteraction.ui = obj
|
200
161
|
end
|
@@ -230,8 +191,7 @@ module Bundler
|
|
230
191
|
if Gem.respond_to?(:discover_gems_on_require=)
|
231
192
|
Gem.discover_gems_on_require = false
|
232
193
|
else
|
233
|
-
|
234
|
-
[kernel, ::Kernel].each do |k|
|
194
|
+
[::Kernel.singleton_class, ::Kernel].each do |k|
|
235
195
|
if k.private_method_defined?(:gem_original_require)
|
236
196
|
redefine_method(k, :require, k.instance_method(:gem_original_require))
|
237
197
|
end
|
@@ -240,12 +200,9 @@ module Bundler
|
|
240
200
|
end
|
241
201
|
|
242
202
|
def replace_gem(specs, specs_by_name)
|
243
|
-
reverse_rubygems_kernel_mixin
|
244
|
-
|
245
203
|
executables = nil
|
246
204
|
|
247
|
-
|
248
|
-
[kernel, ::Kernel].each do |kernel_class|
|
205
|
+
[::Kernel.singleton_class, ::Kernel].each do |kernel_class|
|
249
206
|
redefine_method(kernel_class, :gem) do |dep, *reqs|
|
250
207
|
if executables&.include?(File.basename(caller.first.split(":").first))
|
251
208
|
break
|
@@ -358,6 +315,14 @@ module Bundler
|
|
358
315
|
def replace_entrypoints(specs)
|
359
316
|
specs_by_name = add_default_gems_to(specs)
|
360
317
|
|
318
|
+
reverse_rubygems_kernel_mixin
|
319
|
+
begin
|
320
|
+
# bundled_gems only provide with Ruby 3.3 or later
|
321
|
+
require "bundled_gems"
|
322
|
+
rescue LoadError
|
323
|
+
else
|
324
|
+
Gem::BUNDLED_GEMS.replace_require(specs) if Gem::BUNDLED_GEMS.respond_to?(:replace_require)
|
325
|
+
end
|
361
326
|
replace_gem(specs, specs_by_name)
|
362
327
|
stub_rubygems(specs)
|
363
328
|
replace_bin_path(specs_by_name)
|
@@ -447,30 +412,28 @@ module Bundler
|
|
447
412
|
Gem::Specification.all = specs
|
448
413
|
end
|
449
414
|
|
450
|
-
def fetch_specs(remote, name)
|
415
|
+
def fetch_specs(remote, name, fetcher)
|
451
416
|
require "rubygems/remote_fetcher"
|
452
417
|
path = remote.uri.to_s + "#{name}.#{Gem.marshal_version}.gz"
|
453
|
-
fetcher = gem_remote_fetcher
|
454
|
-
fetcher.headers = { "X-Gemfile-Source" => remote.original_uri.to_s } if remote.original_uri
|
455
418
|
string = fetcher.fetch_path(path)
|
456
|
-
Bundler.safe_load_marshal(string)
|
419
|
+
specs = Bundler.safe_load_marshal(string)
|
420
|
+
raise MarshalError, "Specs #{name} from #{remote} is expected to be an Array but was unexpected class #{specs.class}" unless specs.is_a?(Array)
|
421
|
+
specs
|
457
422
|
rescue Gem::RemoteFetcher::FetchError
|
458
423
|
# it's okay for prerelease to fail
|
459
424
|
raise unless name == "prerelease_specs"
|
460
425
|
end
|
461
426
|
|
462
|
-
def fetch_all_remote_specs(remote)
|
463
|
-
specs = fetch_specs(remote, "specs")
|
464
|
-
pres = fetch_specs(remote, "prerelease_specs") || []
|
427
|
+
def fetch_all_remote_specs(remote, gem_remote_fetcher)
|
428
|
+
specs = fetch_specs(remote, "specs", gem_remote_fetcher)
|
429
|
+
pres = fetch_specs(remote, "prerelease_specs", gem_remote_fetcher) || []
|
465
430
|
|
466
431
|
specs.concat(pres)
|
467
432
|
end
|
468
433
|
|
469
|
-
def download_gem(spec, uri, cache_dir)
|
434
|
+
def download_gem(spec, uri, cache_dir, fetcher)
|
470
435
|
require "rubygems/remote_fetcher"
|
471
436
|
uri = Bundler.settings.mirror_for(uri)
|
472
|
-
fetcher = gem_remote_fetcher
|
473
|
-
fetcher.headers = { "X-Gemfile-Source" => spec.remote.original_uri.to_s } if spec.remote.original_uri
|
474
437
|
Bundler::Retry.new("download gem from #{uri}").attempts do
|
475
438
|
gem_file_name = spec.file_name
|
476
439
|
local_gem_path = File.join cache_dir, gem_file_name
|
@@ -478,7 +441,6 @@ module Bundler
|
|
478
441
|
|
479
442
|
begin
|
480
443
|
remote_gem_path = uri + "gems/#{gem_file_name}"
|
481
|
-
remote_gem_path = remote_gem_path.to_s if provides?("< 3.2.0.rc.1")
|
482
444
|
|
483
445
|
SharedHelpers.filesystem_access(local_gem_path) do
|
484
446
|
fetcher.cache_update_path remote_gem_path, local_gem_path
|
@@ -497,12 +459,6 @@ module Bundler
|
|
497
459
|
raise Bundler::HTTPError, "Could not download gem from #{uri} due to underlying error <#{e.message}>"
|
498
460
|
end
|
499
461
|
|
500
|
-
def gem_remote_fetcher
|
501
|
-
require "rubygems/remote_fetcher"
|
502
|
-
proxy = Gem.configuration[:http_proxy]
|
503
|
-
Gem::RemoteFetcher.new(proxy)
|
504
|
-
end
|
505
|
-
|
506
462
|
def build(spec, skip_validation = false)
|
507
463
|
require "rubygems/package"
|
508
464
|
Gem::Package.build(spec, skip_validation)
|
@@ -518,25 +474,6 @@ module Bundler
|
|
518
474
|
end
|
519
475
|
end
|
520
476
|
|
521
|
-
def backport_ext_builder_monitor
|
522
|
-
# So we can avoid requiring "rubygems/ext" in its entirety
|
523
|
-
Gem.module_eval <<-RUBY, __FILE__, __LINE__ + 1
|
524
|
-
module Ext
|
525
|
-
end
|
526
|
-
RUBY
|
527
|
-
|
528
|
-
require "rubygems/ext/builder"
|
529
|
-
|
530
|
-
Gem::Ext::Builder.class_eval do
|
531
|
-
unless const_defined?(:CHDIR_MONITOR)
|
532
|
-
const_set(:CHDIR_MONITOR, EXT_LOCK)
|
533
|
-
end
|
534
|
-
|
535
|
-
remove_const(:CHDIR_MUTEX) if const_defined?(:CHDIR_MUTEX)
|
536
|
-
const_set(:CHDIR_MUTEX, const_get(:CHDIR_MONITOR))
|
537
|
-
end
|
538
|
-
end
|
539
|
-
|
540
477
|
def find_bundler(version)
|
541
478
|
find_name("bundler").find {|s| s.version.to_s == version }
|
542
479
|
end
|
@@ -545,14 +482,8 @@ module Bundler
|
|
545
482
|
Gem::Specification.stubs_for(name).map(&:to_spec)
|
546
483
|
end
|
547
484
|
|
548
|
-
|
549
|
-
|
550
|
-
Gem::Specification.default_stubs("*.gemspec")
|
551
|
-
end
|
552
|
-
else
|
553
|
-
def default_stubs
|
554
|
-
Gem::Specification.send(:default_stubs, "*.gemspec")
|
555
|
-
end
|
485
|
+
def default_stubs
|
486
|
+
Gem::Specification.default_stubs("*.gemspec")
|
556
487
|
end
|
557
488
|
end
|
558
489
|
|
@@ -28,11 +28,11 @@ module Bundler
|
|
28
28
|
spec.load_paths.reject {|path| $LOAD_PATH.include?(path) }
|
29
29
|
end.reverse.flatten
|
30
30
|
|
31
|
-
|
31
|
+
Gem.add_to_load_path(*load_paths)
|
32
32
|
|
33
33
|
setup_manpath
|
34
34
|
|
35
|
-
lock(:
|
35
|
+
lock(preserve_unknown_sections: true)
|
36
36
|
|
37
37
|
self
|
38
38
|
end
|
@@ -9,17 +9,23 @@ module Bundler
|
|
9
9
|
def restart_with_locked_bundler_if_needed
|
10
10
|
return unless needs_switching? && installed?
|
11
11
|
|
12
|
-
restart_with(
|
12
|
+
restart_with(restart_version)
|
13
13
|
end
|
14
14
|
|
15
15
|
def install_locked_bundler_and_restart_with_it_if_needed
|
16
16
|
return unless needs_switching?
|
17
17
|
|
18
|
-
|
19
|
-
|
20
|
-
|
18
|
+
if restart_version == lockfile_version
|
19
|
+
Bundler.ui.info \
|
20
|
+
"Bundler #{current_version} is running, but your lockfile was generated with #{lockfile_version}. " \
|
21
|
+
"Installing Bundler #{lockfile_version} and restarting using that version."
|
22
|
+
else
|
23
|
+
Bundler.ui.info \
|
24
|
+
"Bundler #{current_version} is running, but your configuration was #{restart_version}. " \
|
25
|
+
"Installing Bundler #{restart_version} and restarting using that version."
|
26
|
+
end
|
21
27
|
|
22
|
-
install_and_restart_with(
|
28
|
+
install_and_restart_with(restart_version)
|
23
29
|
end
|
24
30
|
|
25
31
|
def update_bundler_and_restart_with_it_if_needed(target)
|
@@ -79,7 +85,8 @@ module Bundler
|
|
79
85
|
autoswitching_applies? &&
|
80
86
|
released?(lockfile_version) &&
|
81
87
|
!running?(lockfile_version) &&
|
82
|
-
!updating?
|
88
|
+
!updating? &&
|
89
|
+
Bundler.settings[:version] != "system"
|
83
90
|
end
|
84
91
|
|
85
92
|
def autoswitching_applies?
|
@@ -151,7 +158,7 @@ module Bundler
|
|
151
158
|
def installed?
|
152
159
|
Bundler.configure
|
153
160
|
|
154
|
-
Bundler.rubygems.find_bundler(
|
161
|
+
Bundler.rubygems.find_bundler(restart_version.to_s)
|
155
162
|
end
|
156
163
|
|
157
164
|
def current_version
|
@@ -166,5 +173,14 @@ module Bundler
|
|
166
173
|
rescue ArgumentError
|
167
174
|
@lockfile_version = nil
|
168
175
|
end
|
176
|
+
|
177
|
+
def restart_version
|
178
|
+
return @restart_version if defined?(@restart_version)
|
179
|
+
# BUNDLE_VERSION=x.y.z
|
180
|
+
@restart_version = Gem::Version.new(Bundler.settings[:version])
|
181
|
+
rescue ArgumentError
|
182
|
+
# BUNDLE_VERSION=lockfile
|
183
|
+
@restart_version = lockfile_version
|
184
|
+
end
|
169
185
|
end
|
170
186
|
end
|
@@ -46,6 +46,20 @@ module Bundler
|
|
46
46
|
update_requires_all_flag
|
47
47
|
].freeze
|
48
48
|
|
49
|
+
REMEMBERED_KEYS = %w[
|
50
|
+
bin
|
51
|
+
cache_all
|
52
|
+
clean
|
53
|
+
deployment
|
54
|
+
frozen
|
55
|
+
no_prune
|
56
|
+
path
|
57
|
+
shebang
|
58
|
+
path.system
|
59
|
+
without
|
60
|
+
with
|
61
|
+
].freeze
|
62
|
+
|
49
63
|
NUMBER_KEYS = %w[
|
50
64
|
jobs
|
51
65
|
redirect
|
@@ -74,6 +88,7 @@ module Bundler
|
|
74
88
|
shebang
|
75
89
|
system_bindir
|
76
90
|
trust-policy
|
91
|
+
version
|
77
92
|
].freeze
|
78
93
|
|
79
94
|
DEFAULT_CONFIG = {
|
@@ -83,6 +98,7 @@ module Bundler
|
|
83
98
|
"BUNDLE_REDIRECT" => 5,
|
84
99
|
"BUNDLE_RETRY" => 3,
|
85
100
|
"BUNDLE_TIMEOUT" => 10,
|
101
|
+
"BUNDLE_VERSION" => "lockfile",
|
86
102
|
}.freeze
|
87
103
|
|
88
104
|
def initialize(root = nil)
|
@@ -113,7 +129,7 @@ module Bundler
|
|
113
129
|
end
|
114
130
|
|
115
131
|
def set_command_option(key, value)
|
116
|
-
if Bundler.feature_flag.forget_cli_options?
|
132
|
+
if !is_remembered(key) || Bundler.feature_flag.forget_cli_options?
|
117
133
|
temporary(key => value)
|
118
134
|
value
|
119
135
|
else
|
@@ -319,11 +335,11 @@ module Bundler
|
|
319
335
|
|
320
336
|
def configs
|
321
337
|
@configs ||= {
|
322
|
-
:
|
323
|
-
:
|
324
|
-
:
|
325
|
-
:
|
326
|
-
:
|
338
|
+
temporary: @temporary,
|
339
|
+
local: @local_config,
|
340
|
+
env: @env_config,
|
341
|
+
global: @global_config,
|
342
|
+
default: DEFAULT_CONFIG,
|
327
343
|
}
|
328
344
|
end
|
329
345
|
|
@@ -372,6 +388,10 @@ module Bundler
|
|
372
388
|
ARRAY_KEYS.include?(self.class.key_to_s(key))
|
373
389
|
end
|
374
390
|
|
391
|
+
def is_remembered(key)
|
392
|
+
REMEMBERED_KEYS.include?(self.class.key_to_s(key))
|
393
|
+
end
|
394
|
+
|
375
395
|
def is_credential(key)
|
376
396
|
key == "gem.push_key"
|
377
397
|
end
|
@@ -507,7 +527,7 @@ module Bundler
|
|
507
527
|
(https?.*?) # URI
|
508
528
|
(\.#{Regexp.union(PER_URI_OPTIONS)})? # optional suffix key
|
509
529
|
\z
|
510
|
-
/ix
|
530
|
+
/ix
|
511
531
|
|
512
532
|
def self.key_for(key)
|
513
533
|
key = normalize_uri(key).to_s if key.is_a?(String) && key.start_with?("http", "mirror.http")
|
@@ -12,7 +12,10 @@ if Bundler::SharedHelpers.in_bundle?
|
|
12
12
|
Bundler.ui.error e.message
|
13
13
|
Bundler.ui.warn e.backtrace.join("\n") if ENV["DEBUG"]
|
14
14
|
if e.is_a?(Bundler::GemNotFound)
|
15
|
-
|
15
|
+
default_bundle = Gem.bin_path("bundler", "bundle")
|
16
|
+
current_bundle = Bundler::SharedHelpers.bundle_bin_path
|
17
|
+
suggested_bundle = default_bundle == current_bundle ? "bundle" : current_bundle
|
18
|
+
suggested_cmd = "#{suggested_bundle} install"
|
16
19
|
original_gemfile = Bundler.original_env["BUNDLE_GEMFILE"]
|
17
20
|
suggested_cmd += " --gemfile #{original_gemfile}" if original_gemfile
|
18
21
|
Bundler.ui.warn "Run `#{suggested_cmd}` to install missing gems."
|
@@ -13,13 +13,13 @@ module Bundler
|
|
13
13
|
def root
|
14
14
|
gemfile = find_gemfile
|
15
15
|
raise GemfileNotFound, "Could not locate Gemfile" unless gemfile
|
16
|
-
Pathname.new(gemfile).
|
16
|
+
Pathname.new(gemfile).expand_path.parent
|
17
17
|
end
|
18
18
|
|
19
19
|
def default_gemfile
|
20
20
|
gemfile = find_gemfile
|
21
21
|
raise GemfileNotFound, "Could not locate Gemfile" unless gemfile
|
22
|
-
Pathname.new(gemfile).
|
22
|
+
Pathname.new(gemfile).expand_path
|
23
23
|
end
|
24
24
|
|
25
25
|
def default_lockfile
|
@@ -28,7 +28,7 @@ module Bundler
|
|
28
28
|
case gemfile.basename.to_s
|
29
29
|
when "gems.rb" then Pathname.new(gemfile.sub(/.rb$/, ".locked"))
|
30
30
|
else Pathname.new("#{gemfile}.lock")
|
31
|
-
end
|
31
|
+
end
|
32
32
|
end
|
33
33
|
|
34
34
|
def default_bundle_dir
|
@@ -100,7 +100,7 @@ module Bundler
|
|
100
100
|
#
|
101
101
|
# @see {Bundler::PermissionError}
|
102
102
|
def filesystem_access(path, action = :write, &block)
|
103
|
-
yield(path.dup
|
103
|
+
yield(path.dup)
|
104
104
|
rescue Errno::EACCES
|
105
105
|
raise PermissionError.new(path, action)
|
106
106
|
rescue Errno::EAGAIN
|
@@ -117,16 +117,18 @@ module Bundler
|
|
117
117
|
raise GenericSystemCallError.new(e, "There was an error accessing `#{path}`.")
|
118
118
|
end
|
119
119
|
|
120
|
-
def major_deprecation(major_version, message, print_caller_location: false)
|
120
|
+
def major_deprecation(major_version, message, removed_message: nil, print_caller_location: false)
|
121
121
|
if print_caller_location
|
122
122
|
caller_location = caller_locations(2, 2).first
|
123
|
-
|
123
|
+
suffix = " (called at #{caller_location.path}:#{caller_location.lineno})"
|
124
|
+
message += suffix
|
125
|
+
removed_message += suffix if removed_message
|
124
126
|
end
|
125
127
|
|
126
128
|
bundler_major_version = Bundler.bundler_major_version
|
127
129
|
if bundler_major_version > major_version
|
128
130
|
require_relative "errors"
|
129
|
-
raise DeprecatedError, "[REMOVED] #{message}"
|
131
|
+
raise DeprecatedError, "[REMOVED] #{removed_message || message}"
|
130
132
|
end
|
131
133
|
|
132
134
|
return unless bundler_major_version >= major_version && prints_major_deprecations?
|
@@ -193,6 +195,21 @@ module Bundler
|
|
193
195
|
Digest(name)
|
194
196
|
end
|
195
197
|
|
198
|
+
def checksum_for_file(path, digest)
|
199
|
+
return unless path.file?
|
200
|
+
# This must use File.read instead of Digest.file().hexdigest
|
201
|
+
# because we need to preserve \n line endings on windows when calculating
|
202
|
+
# the checksum
|
203
|
+
SharedHelpers.filesystem_access(path, :read) do
|
204
|
+
File.open(path, "rb") do |f|
|
205
|
+
digest = SharedHelpers.digest(digest).new
|
206
|
+
buf = String.new(capacity: 16_384, encoding: Encoding::BINARY)
|
207
|
+
digest << buf while f.read(16_384, buf)
|
208
|
+
digest.hexdigest
|
209
|
+
end
|
210
|
+
end
|
211
|
+
end
|
212
|
+
|
196
213
|
def write_to_gemfile(gemfile_path, contents)
|
197
214
|
filesystem_access(gemfile_path) {|g| File.open(g, "w") {|file| file.puts contents } }
|
198
215
|
end
|
@@ -250,7 +267,7 @@ module Bundler
|
|
250
267
|
|
251
268
|
def search_up(*names)
|
252
269
|
previous = nil
|
253
|
-
current = File.expand_path(SharedHelpers.pwd)
|
270
|
+
current = File.expand_path(SharedHelpers.pwd)
|
254
271
|
|
255
272
|
until !File.directory?(current) || current == previous
|
256
273
|
if ENV["BUNDLER_SPEC_RUN"]
|
@@ -287,6 +304,13 @@ module Bundler
|
|
287
304
|
public :set_env
|
288
305
|
|
289
306
|
def set_bundle_variables
|
307
|
+
Bundler::SharedHelpers.set_env "BUNDLE_BIN_PATH", bundle_bin_path
|
308
|
+
Bundler::SharedHelpers.set_env "BUNDLE_GEMFILE", find_gemfile.to_s
|
309
|
+
Bundler::SharedHelpers.set_env "BUNDLER_VERSION", Bundler::VERSION
|
310
|
+
Bundler::SharedHelpers.set_env "BUNDLER_SETUP", File.expand_path("setup", __dir__)
|
311
|
+
end
|
312
|
+
|
313
|
+
def bundle_bin_path
|
290
314
|
# bundler exe & lib folders have same root folder, typical gem installation
|
291
315
|
exe_file = File.expand_path("../../exe/bundle", __dir__)
|
292
316
|
|
@@ -296,11 +320,9 @@ module Bundler
|
|
296
320
|
# bundler is a default gem, exe path is separate
|
297
321
|
exe_file = Bundler.rubygems.bin_path("bundler", "bundle", VERSION) unless File.exist?(exe_file)
|
298
322
|
|
299
|
-
|
300
|
-
Bundler::SharedHelpers.set_env "BUNDLE_GEMFILE", find_gemfile.to_s
|
301
|
-
Bundler::SharedHelpers.set_env "BUNDLER_VERSION", Bundler::VERSION
|
302
|
-
Bundler::SharedHelpers.set_env "BUNDLER_SETUP", File.expand_path("setup", __dir__) unless RUBY_VERSION < "2.7"
|
323
|
+
exe_file
|
303
324
|
end
|
325
|
+
public :bundle_bin_path
|
304
326
|
|
305
327
|
def set_path
|
306
328
|
validate_bundle_path
|
@@ -312,7 +334,7 @@ module Bundler
|
|
312
334
|
def set_rubyopt
|
313
335
|
rubyopt = [ENV["RUBYOPT"]].compact
|
314
336
|
setup_require = "-r#{File.expand_path("setup", __dir__)}"
|
315
|
-
return if !rubyopt.empty? && rubyopt.first
|
337
|
+
return if !rubyopt.empty? && rubyopt.first.include?(setup_require)
|
316
338
|
rubyopt.unshift setup_require
|
317
339
|
Bundler::SharedHelpers.set_env "RUBYOPT", rubyopt.join(" ")
|
318
340
|
end
|
@@ -80,14 +80,14 @@ module Bundler
|
|
80
80
|
|
81
81
|
def current_branch
|
82
82
|
@current_branch ||= with_path do
|
83
|
-
git_local("rev-parse", "--abbrev-ref", "HEAD", :
|
83
|
+
git_local("rev-parse", "--abbrev-ref", "HEAD", dir: path).strip
|
84
84
|
end
|
85
85
|
end
|
86
86
|
|
87
87
|
def contains?(commit)
|
88
88
|
allowed_with_path do
|
89
|
-
result, status = git_null("branch", "--contains", commit, :
|
90
|
-
status.success? && result
|
89
|
+
result, status = git_null("branch", "--contains", commit, dir: path)
|
90
|
+
status.success? && result.match?(/^\* (.*)$/)
|
91
91
|
end
|
92
92
|
end
|
93
93
|
|
@@ -132,18 +132,18 @@ module Bundler
|
|
132
132
|
|
133
133
|
ref = @commit_ref || (locked_to_full_sha? && @revision)
|
134
134
|
if ref
|
135
|
-
git "config", "uploadpack.allowAnySHA1InWant", "true", :
|
135
|
+
git "config", "uploadpack.allowAnySHA1InWant", "true", dir: path.to_s if @commit_ref.nil? && needs_allow_any_sha1_in_want?
|
136
136
|
|
137
|
-
git "fetch", "--force", "--quiet", *extra_fetch_args(ref), :
|
137
|
+
git "fetch", "--force", "--quiet", *extra_fetch_args(ref), dir: destination
|
138
138
|
end
|
139
139
|
|
140
|
-
git "reset", "--hard", @revision, :
|
140
|
+
git "reset", "--hard", @revision, dir: destination
|
141
141
|
|
142
142
|
if submodules
|
143
|
-
git_retry "submodule", "update", "--init", "--recursive", :
|
143
|
+
git_retry "submodule", "update", "--init", "--recursive", dir: destination
|
144
144
|
elsif Gem::Version.create(version) >= Gem::Version.create("2.9.0")
|
145
145
|
inner_command = "git -C $toplevel submodule deinit --force $sm_path"
|
146
|
-
git_retry "submodule", "foreach", "--quiet", inner_command, :
|
146
|
+
git_retry "submodule", "foreach", "--quiet", inner_command, dir: destination
|
147
147
|
end
|
148
148
|
end
|
149
149
|
|
@@ -266,32 +266,32 @@ module Bundler
|
|
266
266
|
def git_null(*command, dir: nil)
|
267
267
|
check_allowed(command)
|
268
268
|
|
269
|
-
capture(command, dir, :
|
269
|
+
capture(command, dir, ignore_err: true)
|
270
270
|
end
|
271
271
|
|
272
272
|
def git_retry(*command, dir: nil)
|
273
273
|
command_with_no_credentials = check_allowed(command)
|
274
274
|
|
275
275
|
Bundler::Retry.new("`#{command_with_no_credentials}` at #{dir || SharedHelpers.pwd}").attempts do
|
276
|
-
git(*command, :
|
276
|
+
git(*command, dir: dir)
|
277
277
|
end
|
278
278
|
end
|
279
279
|
|
280
280
|
def git(*command, dir: nil)
|
281
|
-
run_command(*command, :
|
281
|
+
run_command(*command, dir: dir) do |unredacted_command|
|
282
282
|
check_allowed(unredacted_command)
|
283
283
|
end
|
284
284
|
end
|
285
285
|
|
286
286
|
def git_local(*command, dir: nil)
|
287
|
-
run_command(*command, :
|
287
|
+
run_command(*command, dir: dir) do |unredacted_command|
|
288
288
|
redact_and_check_presence(unredacted_command)
|
289
289
|
end
|
290
290
|
end
|
291
291
|
|
292
292
|
def has_revision_cached?
|
293
293
|
return unless @revision && path.exist?
|
294
|
-
git("cat-file", "-e", @revision, :
|
294
|
+
git("cat-file", "-e", @revision, dir: path)
|
295
295
|
true
|
296
296
|
rescue GitError
|
297
297
|
false
|
@@ -314,7 +314,7 @@ module Bundler
|
|
314
314
|
end
|
315
315
|
|
316
316
|
def verify(reference)
|
317
|
-
git("rev-parse", "--verify", reference, :
|
317
|
+
git("rev-parse", "--verify", reference, dir: path).strip
|
318
318
|
end
|
319
319
|
|
320
320
|
# Adds credentials to the URI
|
@@ -398,7 +398,7 @@ module Bundler
|
|
398
398
|
if Bundler.feature_flag.bundler_3_mode? || supports_minus_c?
|
399
399
|
["git", "-C", dir.to_s, *cmd]
|
400
400
|
else
|
401
|
-
["git", *cmd, { :
|
401
|
+
["git", *cmd, { chdir: dir.to_s }]
|
402
402
|
end
|
403
403
|
end
|
404
404
|
|
@@ -11,6 +11,7 @@ module Bundler
|
|
11
11
|
|
12
12
|
def initialize(options)
|
13
13
|
@options = options
|
14
|
+
@checksum_store = Checksum::Store.new
|
14
15
|
@glob = options["glob"] || DEFAULT_GLOB
|
15
16
|
|
16
17
|
@allow_cached = false
|
@@ -19,7 +20,7 @@ module Bundler
|
|
19
20
|
# Stringify options that could be set as symbols
|
20
21
|
%w[ref branch tag revision].each {|k| options[k] = options[k].to_s if options[k] }
|
21
22
|
|
22
|
-
@uri = URINormalizer.normalize_suffix(options["uri"] || "", :
|
23
|
+
@uri = URINormalizer.normalize_suffix(options["uri"] || "", trailing_slash: false)
|
23
24
|
@safe_uri = URICredentialsFilter.credential_filtered_uri(@uri)
|
24
25
|
@branch = options["branch"]
|
25
26
|
@ref = options["ref"] || options["branch"] || options["tag"]
|
@@ -197,7 +198,7 @@ module Bundler
|
|
197
198
|
@copied = true
|
198
199
|
end
|
199
200
|
|
200
|
-
generate_bin_options = { :
|
201
|
+
generate_bin_options = { disable_extensions: !Bundler.rubygems.spec_missing_extensions?(spec), build_args: options[:build_args] }
|
201
202
|
generate_bin(spec, generate_bin_options)
|
202
203
|
|
203
204
|
requires_checkout? ? spec.post_install_message : nil
|
@@ -359,7 +360,7 @@ module Bundler
|
|
359
360
|
|
360
361
|
def load_gemspec(file)
|
361
362
|
stub = Gem::StubSpecification.gemspec_stub(file, install_path.parent, install_path.parent)
|
362
|
-
stub.full_gem_path = Pathname.new(file).dirname.expand_path(root).to_s
|
363
|
+
stub.full_gem_path = Pathname.new(file).dirname.expand_path(root).to_s
|
363
364
|
StubSpecification.from_stub(stub)
|
364
365
|
end
|
365
366
|
|