rubygems-update 3.5.3 → 3.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +1410 -686
- data/CODE_OF_CONDUCT.md +79 -28
- data/CONTRIBUTING.md +4 -226
- data/Manifest.txt +107 -83
- data/README.md +16 -11
- data/SECURITY.md +7 -0
- data/bundler/CHANGELOG.md +1525 -931
- data/bundler/README.md +9 -9
- data/bundler/bundler.gemspec +2 -2
- data/bundler/lib/bundler/build_metadata.rb +10 -11
- data/bundler/lib/bundler/checksum.rb +22 -12
- data/bundler/lib/bundler/cli/add.rb +3 -1
- data/bundler/lib/bundler/cli/binstubs.rb +1 -1
- data/bundler/lib/bundler/cli/check.rb +3 -3
- data/bundler/lib/bundler/cli/common.rb +1 -1
- data/bundler/lib/bundler/cli/config.rb +2 -2
- data/bundler/lib/bundler/cli/console.rb +8 -10
- data/bundler/lib/bundler/cli/doctor/diagnose.rb +167 -0
- data/bundler/lib/bundler/cli/doctor/ssl.rb +249 -0
- data/bundler/lib/bundler/cli/doctor.rb +27 -151
- data/bundler/lib/bundler/cli/exec.rb +1 -0
- data/bundler/lib/bundler/cli/fund.rb +1 -1
- data/bundler/lib/bundler/cli/gem.rb +74 -46
- data/bundler/lib/bundler/cli/info.rb +6 -6
- data/bundler/lib/bundler/cli/inject.rb +3 -3
- data/bundler/lib/bundler/cli/install.rb +19 -10
- data/bundler/lib/bundler/cli/issue.rb +3 -3
- data/bundler/lib/bundler/cli/lock.rb +32 -11
- data/bundler/lib/bundler/cli/outdated.rb +23 -23
- data/bundler/lib/bundler/cli/plugin.rb +3 -2
- data/bundler/lib/bundler/cli/pristine.rb +1 -1
- data/bundler/lib/bundler/cli/show.rb +3 -3
- data/bundler/lib/bundler/cli/update.rb +3 -3
- data/bundler/lib/bundler/cli.rb +75 -145
- data/bundler/lib/bundler/compact_index_client/cache.rb +48 -73
- data/bundler/lib/bundler/compact_index_client/cache_file.rb +0 -5
- data/bundler/lib/bundler/compact_index_client/parser.rb +84 -0
- data/bundler/lib/bundler/compact_index_client/updater.rb +6 -16
- data/bundler/lib/bundler/compact_index_client.rb +52 -85
- data/bundler/lib/bundler/constants.rb +8 -1
- data/bundler/lib/bundler/current_ruby.rb +48 -34
- data/bundler/lib/bundler/definition.rb +501 -328
- data/bundler/lib/bundler/dependency.rb +93 -47
- data/bundler/lib/bundler/dsl.rb +147 -103
- data/bundler/lib/bundler/endpoint_specification.rb +30 -3
- data/bundler/lib/bundler/env.rb +1 -1
- data/bundler/lib/bundler/environment_preserver.rb +5 -23
- data/bundler/lib/bundler/errors.rb +53 -5
- data/bundler/lib/bundler/feature_flag.rb +18 -18
- data/bundler/lib/bundler/fetcher/compact_index.rb +16 -25
- data/bundler/lib/bundler/fetcher/dependency.rb +2 -1
- data/bundler/lib/bundler/fetcher/downloader.rb +34 -8
- data/bundler/lib/bundler/fetcher.rb +63 -26
- data/bundler/lib/bundler/force_platform.rb +0 -2
- data/bundler/lib/bundler/friendly_errors.rb +3 -2
- data/bundler/lib/bundler/gem_helper.rb +1 -1
- data/bundler/lib/bundler/gem_version_promoter.rb +42 -40
- data/bundler/lib/bundler/index.rb +7 -2
- data/bundler/lib/bundler/injector.rb +14 -16
- data/bundler/lib/bundler/inline.rb +42 -17
- data/bundler/lib/bundler/installer/gem_installer.rb +4 -3
- data/bundler/lib/bundler/installer/parallel_installer.rb +3 -2
- data/bundler/lib/bundler/installer/standalone.rb +2 -5
- data/bundler/lib/bundler/installer.rb +22 -45
- data/bundler/lib/bundler/lazy_specification.rb +121 -48
- data/bundler/lib/bundler/lockfile_generator.rb +1 -1
- data/bundler/lib/bundler/lockfile_parser.rb +36 -9
- data/bundler/lib/bundler/man/bundle-add.1 +44 -27
- data/bundler/lib/bundler/man/bundle-add.1.ronn +52 -23
- data/bundler/lib/bundler/man/bundle-binstubs.1 +9 -6
- data/bundler/lib/bundler/man/bundle-binstubs.1.ronn +6 -3
- data/bundler/lib/bundler/man/bundle-cache.1 +32 -4
- data/bundler/lib/bundler/man/bundle-cache.1.ronn +31 -2
- data/bundler/lib/bundler/man/bundle-check.1 +7 -5
- data/bundler/lib/bundler/man/bundle-check.1.ronn +7 -2
- data/bundler/lib/bundler/man/bundle-clean.1 +3 -3
- data/bundler/lib/bundler/man/bundle-config.1 +180 -138
- data/bundler/lib/bundler/man/bundle-config.1.ronn +96 -99
- data/bundler/lib/bundler/man/bundle-console.1 +4 -6
- data/bundler/lib/bundler/man/bundle-console.1.ronn +2 -7
- data/bundler/lib/bundler/man/bundle-doctor.1 +46 -7
- data/bundler/lib/bundler/man/bundle-doctor.1.ronn +49 -5
- data/bundler/lib/bundler/man/bundle-env.1 +9 -0
- data/bundler/lib/bundler/man/bundle-env.1.ronn +10 -0
- data/bundler/lib/bundler/man/bundle-exec.1 +9 -6
- data/bundler/lib/bundler/man/bundle-exec.1.ronn +6 -3
- data/bundler/lib/bundler/man/bundle-fund.1 +22 -0
- data/bundler/lib/bundler/man/bundle-fund.1.ronn +25 -0
- data/bundler/lib/bundler/man/bundle-gem.1 +69 -28
- data/bundler/lib/bundler/man/bundle-gem.1.ronn +42 -6
- data/bundler/lib/bundler/man/bundle-help.1 +3 -3
- data/bundler/lib/bundler/man/bundle-info.1 +7 -4
- data/bundler/lib/bundler/man/bundle-info.1.ronn +6 -2
- data/bundler/lib/bundler/man/bundle-init.1 +5 -5
- data/bundler/lib/bundler/man/bundle-init.1.ronn +3 -2
- data/bundler/lib/bundler/man/bundle-inject.1 +13 -5
- data/bundler/lib/bundler/man/bundle-inject.1.ronn +10 -2
- data/bundler/lib/bundler/man/bundle-install.1 +20 -17
- data/bundler/lib/bundler/man/bundle-install.1.ronn +26 -23
- data/bundler/lib/bundler/man/bundle-issue.1 +45 -0
- data/bundler/lib/bundler/man/bundle-issue.1.ronn +37 -0
- data/bundler/lib/bundler/man/bundle-licenses.1 +9 -0
- data/bundler/lib/bundler/man/bundle-licenses.1.ronn +10 -0
- data/bundler/lib/bundler/man/bundle-list.1 +3 -3
- data/bundler/lib/bundler/man/bundle-list.1.ronn +4 -1
- data/bundler/lib/bundler/man/bundle-lock.1 +23 -8
- data/bundler/lib/bundler/man/bundle-lock.1.ronn +25 -4
- data/bundler/lib/bundler/man/bundle-open.1 +4 -4
- data/bundler/lib/bundler/man/bundle-open.1.ronn +2 -1
- data/bundler/lib/bundler/man/bundle-outdated.1 +10 -7
- data/bundler/lib/bundler/man/bundle-outdated.1.ronn +8 -4
- data/bundler/lib/bundler/man/bundle-platform.1 +3 -3
- data/bundler/lib/bundler/man/bundle-plugin.1 +9 -6
- data/bundler/lib/bundler/man/bundle-plugin.1.ronn +7 -3
- data/bundler/lib/bundler/man/bundle-pristine.1 +3 -3
- data/bundler/lib/bundler/man/bundle-pristine.1.ronn +1 -1
- data/bundler/lib/bundler/man/bundle-remove.1 +3 -3
- data/bundler/lib/bundler/man/bundle-remove.1.ronn +1 -1
- data/bundler/lib/bundler/man/bundle-show.1 +7 -4
- data/bundler/lib/bundler/man/bundle-show.1.ronn +4 -0
- data/bundler/lib/bundler/man/bundle-update.1 +17 -11
- data/bundler/lib/bundler/man/bundle-update.1.ronn +17 -9
- data/bundler/lib/bundler/man/bundle-version.1 +3 -3
- data/bundler/lib/bundler/man/bundle-viz.1 +6 -6
- data/bundler/lib/bundler/man/bundle-viz.1.ronn +7 -3
- data/bundler/lib/bundler/man/bundle.1 +3 -3
- data/bundler/lib/bundler/man/gemfile.5 +7 -5
- data/bundler/lib/bundler/man/gemfile.5.ronn +8 -2
- data/bundler/lib/bundler/man/index.txt +4 -0
- data/bundler/lib/bundler/match_metadata.rb +13 -0
- data/bundler/lib/bundler/match_platform.rb +31 -12
- data/bundler/lib/bundler/materialization.rb +59 -0
- data/bundler/lib/bundler/mirror.rb +3 -3
- data/bundler/lib/bundler/plugin/api/source.rb +5 -4
- data/bundler/lib/bundler/plugin/events.rb +24 -0
- data/bundler/lib/bundler/plugin/index.rb +5 -1
- data/bundler/lib/bundler/plugin/installer/path.rb +26 -0
- data/bundler/lib/bundler/plugin/installer.rb +37 -17
- data/bundler/lib/bundler/plugin/source_list.rb +4 -4
- data/bundler/lib/bundler/plugin.rb +21 -2
- data/bundler/lib/bundler/process_lock.rb +10 -14
- data/bundler/lib/bundler/remote_specification.rb +6 -1
- data/bundler/lib/bundler/resolver/base.rb +14 -3
- data/bundler/lib/bundler/resolver/candidate.rb +18 -27
- data/bundler/lib/bundler/resolver/package.rb +20 -3
- data/bundler/lib/bundler/resolver/spec_group.rb +22 -27
- data/bundler/lib/bundler/resolver/strategy.rb +40 -0
- data/bundler/lib/bundler/resolver.rb +114 -52
- data/bundler/lib/bundler/retry.rb +1 -1
- data/bundler/lib/bundler/ruby_dsl.rb +12 -3
- data/bundler/lib/bundler/ruby_version.rb +7 -1
- data/bundler/lib/bundler/rubygems_ext.rb +303 -150
- data/bundler/lib/bundler/rubygems_gem_installer.rb +40 -5
- data/bundler/lib/bundler/rubygems_integration.rb +40 -73
- data/bundler/lib/bundler/runtime.rb +48 -35
- data/bundler/lib/bundler/self_manager.rb +36 -26
- data/bundler/lib/bundler/settings/validator.rb +0 -23
- data/bundler/lib/bundler/settings.rb +36 -27
- data/bundler/lib/bundler/setup.rb +6 -0
- data/bundler/lib/bundler/shared_helpers.rb +45 -25
- data/bundler/lib/bundler/source/gemspec.rb +1 -4
- data/bundler/lib/bundler/source/git/git_proxy.rb +26 -9
- data/bundler/lib/bundler/source/git.rb +113 -41
- data/bundler/lib/bundler/source/metadata.rb +4 -3
- data/bundler/lib/bundler/source/path.rb +14 -18
- data/bundler/lib/bundler/source/rubygems/remote.rb +12 -4
- data/bundler/lib/bundler/source/rubygems.rb +54 -48
- data/bundler/lib/bundler/source.rb +2 -0
- data/bundler/lib/bundler/source_list.rb +54 -12
- data/bundler/lib/bundler/source_map.rb +1 -1
- data/bundler/lib/bundler/spec_set.rb +227 -103
- data/bundler/lib/bundler/stub_specification.rb +29 -2
- data/bundler/lib/bundler/templates/Executable +0 -11
- data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +77 -29
- data/bundler/lib/bundler/templates/newgem/Gemfile.tt +1 -3
- data/bundler/lib/bundler/templates/newgem/README.md.tt +7 -3
- data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +17 -15
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +14 -12
- data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +0 -5
- data/bundler/lib/bundler/ui/shell.rb +26 -4
- data/bundler/lib/bundler/ui/silent.rb +12 -1
- data/bundler/lib/bundler/uri_credentials_filter.rb +3 -3
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +53 -3
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +1 -1
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +11 -0
- data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +15 -13
- data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +1 -1
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +2 -1
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +134 -57
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +4 -24
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +1 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/strategy.rb +42 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +20 -8
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +17 -29
- data/bundler/lib/bundler/vendor/securerandom/COPYING +56 -0
- data/bundler/lib/bundler/vendor/securerandom/lib/securerandom.rb +102 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +3 -5
- data/bundler/lib/bundler/vendor/thor/lib/thor/group.rb +11 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/argument.rb +1 -4
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/option.rb +2 -2
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +2 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +9 -9
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/html.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/table_printer.rb +5 -21
- data/bundler/lib/bundler/vendor/thor/lib/thor/util.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor.rb +11 -0
- data/bundler/lib/bundler/vendor/uri/COPYING +56 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +43 -16
- data/bundler/lib/bundler/vendor/uri/lib/uri/file.rb +3 -3
- data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +1 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +28 -37
- data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +2 -2
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +16 -9
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +26 -3
- data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri.rb +9 -9
- data/bundler/lib/bundler/vendored_net_http.rb +20 -5
- data/bundler/lib/bundler/vendored_securerandom.rb +12 -0
- data/bundler/lib/bundler/vendored_timeout.rb +7 -3
- data/bundler/lib/bundler/vendored_uri.rb +18 -1
- data/bundler/lib/bundler/version.rb +10 -2
- data/bundler/lib/bundler/worker.rb +1 -1
- data/bundler/lib/bundler/yaml_serializer.rb +12 -7
- data/bundler/lib/bundler.rb +101 -61
- data/{bundler → doc/bundler}/UPGRADING.md +132 -127
- data/doc/rubygems/CONTRIBUTING.md +227 -0
- data/{POLICIES.md → doc/rubygems/POLICIES.md} +86 -17
- data/exe/update_rubygems +1 -1
- data/lib/rubygems/basic_specification.rb +50 -10
- data/lib/rubygems/bundler_version_finder.rb +1 -1
- data/lib/rubygems/command.rb +1 -4
- data/lib/rubygems/command_manager.rb +5 -6
- data/lib/rubygems/commands/build_command.rb +2 -11
- data/lib/rubygems/commands/cleanup_command.rb +3 -13
- data/lib/rubygems/commands/contents_command.rb +17 -10
- data/lib/rubygems/commands/environment_command.rb +5 -0
- data/lib/rubygems/commands/exec_command.rb +18 -11
- data/lib/rubygems/commands/fetch_command.rb +14 -0
- data/lib/rubygems/commands/help_command.rb +2 -2
- data/lib/rubygems/commands/install_command.rb +0 -4
- data/lib/rubygems/commands/pristine_command.rb +29 -19
- data/lib/rubygems/commands/push_command.rb +31 -6
- data/lib/rubygems/commands/rdoc_command.rb +3 -10
- data/lib/rubygems/commands/rebuild_command.rb +262 -0
- data/lib/rubygems/commands/setup_command.rb +13 -18
- data/lib/rubygems/commands/sources_command.rb +2 -2
- data/lib/rubygems/commands/uninstall_command.rb +9 -4
- data/lib/rubygems/commands/unpack_command.rb +0 -6
- data/lib/rubygems/commands/update_command.rb +13 -22
- data/lib/rubygems/config_file.rb +45 -16
- data/lib/rubygems/core_ext/kernel_require.rb +15 -3
- data/lib/rubygems/core_ext/kernel_warn.rb +2 -6
- data/lib/rubygems/defaults.rb +7 -7
- data/lib/rubygems/dependency.rb +12 -16
- data/lib/rubygems/dependency_list.rb +1 -1
- data/lib/rubygems/deprecate.rb +79 -77
- data/lib/rubygems/errors.rb +2 -1
- data/lib/rubygems/exceptions.rb +2 -9
- data/lib/rubygems/ext/builder.rb +21 -8
- data/lib/rubygems/ext/cargo_builder.rb +16 -26
- data/lib/rubygems/ext/cmake_builder.rb +7 -2
- data/lib/rubygems/ext/configure_builder.rb +7 -2
- data/lib/rubygems/ext/ext_conf_builder.rb +9 -5
- data/lib/rubygems/ext/rake_builder.rb +7 -4
- data/lib/rubygems/gem_runner.rb +9 -0
- data/lib/rubygems/gemcutter_utilities/webauthn_listener.rb +11 -4
- data/lib/rubygems/gemcutter_utilities/webauthn_poller.rb +3 -1
- data/lib/rubygems/gemcutter_utilities.rb +52 -26
- data/lib/rubygems/gemspec_helpers.rb +19 -0
- data/lib/rubygems/install_update_options.rb +5 -0
- data/lib/rubygems/installer.rb +76 -90
- data/lib/rubygems/local_remote_options.rb +8 -8
- data/lib/rubygems/package/tar_header.rb +31 -4
- data/lib/rubygems/package/tar_reader/entry.rb +1 -5
- data/lib/rubygems/package/tar_writer.rb +5 -4
- data/lib/rubygems/package.rb +13 -8
- data/lib/rubygems/platform.rb +148 -43
- data/lib/rubygems/psych_tree.rb +4 -0
- data/lib/rubygems/query_utils.rb +2 -2
- data/lib/rubygems/rdoc.rb +16 -3
- data/lib/rubygems/remote_fetcher.rb +6 -7
- data/lib/rubygems/request.rb +5 -5
- data/lib/rubygems/request_set/gem_dependency_api.rb +1 -1
- data/lib/rubygems/request_set.rb +4 -7
- data/lib/rubygems/requirement.rb +16 -12
- data/lib/rubygems/resolver/activation_request.rb +1 -1
- data/lib/rubygems/resolver/api_set/gem_parser.rb +2 -5
- data/lib/rubygems/resolver/api_set.rb +13 -8
- data/lib/rubygems/resolver/best_set.rb +1 -29
- data/lib/rubygems/resolver/composed_set.rb +3 -3
- data/lib/rubygems/resolver/git_set.rb +0 -1
- data/lib/rubygems/resolver/index_set.rb +2 -2
- data/lib/rubygems/resolver/source_set.rb +1 -1
- data/lib/rubygems/resolver/spec_specification.rb +7 -0
- data/lib/rubygems/resolver.rb +8 -8
- data/lib/rubygems/s3_uri_signer.rb +8 -6
- data/lib/rubygems/safe_marshal/reader.rb +31 -14
- data/lib/rubygems/safe_marshal/visitors/to_ruby.rb +29 -16
- data/lib/rubygems/safe_yaml.rb +10 -1
- data/lib/rubygems/security.rb +1 -1
- data/lib/rubygems/source/git.rb +22 -17
- data/lib/rubygems/source/installed.rb +3 -1
- data/lib/rubygems/source/local.rb +8 -4
- data/lib/rubygems/source/specific_file.rb +5 -3
- data/lib/rubygems/source.rb +37 -29
- data/lib/rubygems/source_list.rb +1 -1
- data/lib/rubygems/spec_fetcher.rb +47 -15
- data/lib/rubygems/specification.rb +110 -183
- data/lib/rubygems/specification_policy.rb +33 -13
- data/lib/rubygems/specification_record.rb +212 -0
- data/lib/rubygems/stub_specification.rb +32 -10
- data/lib/rubygems/target_rbconfig.rb +50 -0
- data/lib/rubygems/uninstaller.rb +42 -22
- data/lib/rubygems/uri.rb +6 -6
- data/lib/rubygems/uri_formatter.rb +2 -1
- data/lib/rubygems/util/licenses.rb +118 -1
- data/lib/rubygems/util.rb +1 -1
- data/lib/rubygems/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +57 -0
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/delegates/specification_provider.rb +11 -11
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/dependency_graph/action.rb +1 -1
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +1 -1
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +1 -1
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +1 -1
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +1 -1
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/dependency_graph/log.rb +1 -1
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/dependency_graph/set_payload.rb +1 -1
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/dependency_graph/tag.rb +1 -1
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/dependency_graph/vertex.rb +1 -1
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/dependency_graph.rb +2 -2
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/errors.rb +1 -1
- data/lib/rubygems/vendor/molinillo/lib/molinillo/gem_metadata.rb +6 -0
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/modules/specification_provider.rb +2 -2
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/modules/ui.rb +1 -1
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/resolution.rb +4 -4
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/resolver.rb +1 -1
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/state.rb +1 -1
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo.rb +2 -2
- data/lib/rubygems/vendor/net-http/COPYING +56 -0
- data/lib/rubygems/{net-http → vendor/net-http}/lib/net/http/generic_request.rb +9 -9
- data/lib/rubygems/{net-http → vendor/net-http}/lib/net/http/header.rb +3 -3
- data/lib/rubygems/{net-http → vendor/net-http}/lib/net/http/request.rb +3 -3
- data/lib/rubygems/{net-http → vendor/net-http}/lib/net/http/requests.rb +35 -30
- data/lib/rubygems/{net-http → vendor/net-http}/lib/net/http/response.rb +2 -2
- data/lib/rubygems/{net-http → vendor/net-http}/lib/net/http/responses.rb +6 -6
- data/lib/rubygems/{net-http → vendor/net-http}/lib/net/http/status.rb +1 -1
- data/lib/rubygems/{net-http → vendor/net-http}/lib/net/http.rb +149 -70
- data/lib/rubygems/{net-http → vendor/net-http}/lib/net/https.rb +1 -1
- data/lib/rubygems/vendor/optparse/COPYING +56 -0
- data/lib/rubygems/{optparse → vendor/optparse}/lib/optparse/ac.rb +16 -0
- data/lib/rubygems/{optparse → vendor/optparse}/lib/optparse/kwargs.rb +8 -3
- data/lib/rubygems/vendor/optparse/lib/optparse/uri.rb +7 -0
- data/lib/rubygems/{optparse → vendor/optparse}/lib/optparse/version.rb +9 -0
- data/lib/rubygems/{optparse → vendor/optparse}/lib/optparse.rb +158 -62
- data/lib/rubygems/vendor/resolv/COPYING +56 -0
- data/lib/rubygems/{resolv → vendor/resolv}/lib/resolv.rb +165 -69
- data/lib/rubygems/vendor/securerandom/COPYING +56 -0
- data/lib/rubygems/vendor/securerandom/lib/securerandom.rb +102 -0
- data/lib/rubygems/vendor/timeout/COPYING +56 -0
- data/lib/rubygems/{timeout → vendor/timeout}/lib/timeout.rb +10 -11
- data/lib/rubygems/{tsort → vendor/tsort}/lib/tsort.rb +2 -2
- data/lib/rubygems/vendor/uri/COPYING +56 -0
- data/lib/rubygems/vendor/uri/lib/uri/common.rb +880 -0
- data/lib/rubygems/vendor/uri/lib/uri/file.rb +100 -0
- data/lib/rubygems/vendor/uri/lib/uri/ftp.rb +267 -0
- data/lib/rubygems/vendor/uri/lib/uri/generic.rb +1579 -0
- data/lib/rubygems/vendor/uri/lib/uri/http.rb +125 -0
- data/lib/rubygems/vendor/uri/lib/uri/https.rb +23 -0
- data/lib/rubygems/vendor/uri/lib/uri/ldap.rb +261 -0
- data/lib/rubygems/vendor/uri/lib/uri/ldaps.rb +22 -0
- data/lib/rubygems/vendor/uri/lib/uri/mailto.rb +293 -0
- data/lib/rubygems/vendor/uri/lib/uri/rfc2396_parser.rb +546 -0
- data/lib/rubygems/vendor/uri/lib/uri/rfc3986_parser.rb +206 -0
- data/lib/rubygems/vendor/uri/lib/uri/version.rb +6 -0
- data/lib/rubygems/vendor/uri/lib/uri/ws.rb +83 -0
- data/lib/rubygems/vendor/uri/lib/uri/wss.rb +23 -0
- data/lib/rubygems/vendor/uri/lib/uri.rb +104 -0
- data/lib/rubygems/vendored_molinillo.rb +3 -0
- data/lib/rubygems/vendored_net_http.rb +5 -0
- data/lib/rubygems/vendored_optparse.rb +3 -0
- data/lib/rubygems/vendored_securerandom.rb +3 -0
- data/lib/rubygems/vendored_timeout.rb +5 -0
- data/lib/rubygems/vendored_tsort.rb +3 -0
- data/lib/rubygems/version.rb +26 -9
- data/lib/rubygems/yaml_serializer.rb +12 -7
- data/lib/rubygems.rb +160 -53
- data/rubygems-update.gemspec +11 -6
- data/setup.rb +1 -1
- metadata +124 -96
- data/bundler/lib/bundler/compact_index_client/gem_parser.rb +0 -32
- data/bundler/lib/bundler/gem_helpers.rb +0 -127
- data/bundler/lib/bundler/templates/Executable.bundler +0 -109
- data/bundler/lib/bundler/vendor/fileutils/.document +0 -1
- data/bundler/lib/bundler/vendor/net-http-persistent/.document +0 -1
- data/bundler/lib/bundler/vendor/pub_grub/.document +0 -1
- data/bundler/lib/bundler/vendor/thor/.document +0 -1
- data/bundler/lib/bundler/vendor/tsort/.document +0 -1
- data/bundler/lib/bundler/vendor/uri/.document +0 -1
- data/lib/rubygems/net/http.rb +0 -3
- data/lib/rubygems/net-http/.document +0 -1
- data/lib/rubygems/net-http/LICENSE.txt +0 -22
- data/lib/rubygems/net-http/lib/net/http/backward.rb +0 -40
- data/lib/rubygems/net-protocol/.document +0 -1
- data/lib/rubygems/net-protocol/LICENSE.txt +0 -22
- data/lib/rubygems/optparse/.document +0 -1
- data/lib/rubygems/optparse/lib/optparse/uri.rb +0 -7
- data/lib/rubygems/optparse.rb +0 -3
- data/lib/rubygems/resolv/.document +0 -1
- data/lib/rubygems/resolv/LICENSE.txt +0 -22
- data/lib/rubygems/resolver/molinillo/.document +0 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
- data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +0 -6
- data/lib/rubygems/resolver/molinillo.rb +0 -3
- data/lib/rubygems/shellwords.rb +0 -3
- data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA.pem +0 -21
- data/lib/rubygems/timeout/.document +0 -1
- data/lib/rubygems/timeout/LICENSE.txt +0 -22
- data/lib/rubygems/timeout.rb +0 -3
- data/lib/rubygems/tsort/.document +0 -1
- data/lib/rubygems/tsort/LICENSE.txt +0 -22
- data/lib/rubygems/tsort.rb +0 -3
- /data/{lib/rubygems/optparse → bundler/lib/bundler/vendor/fileutils}/COPYING +0 -0
- /data/{MAINTAINERS.txt → doc/MAINTAINERS.txt} +0 -0
- /data/{UPGRADING.md → doc/rubygems/UPGRADING.md} +0 -0
- /data/lib/rubygems/ssl_certs/rubygems.org/{GlobalSignRootCA_R3.pem → GlobalSign.pem} +0 -0
- /data/{bundler/lib/bundler/vendor/connection_pool → lib/rubygems/vendor}/.document +0 -0
- /data/lib/rubygems/{resolver → vendor}/molinillo/LICENSE +0 -0
- /data/lib/rubygems/{net-http → vendor/net-http}/lib/net/http/exceptions.rb +0 -0
- /data/lib/rubygems/{net-http → vendor/net-http}/lib/net/http/proxy_delta.rb +0 -0
- /data/{bundler/lib/bundler/vendor/fileutils → lib/rubygems/vendor/net-protocol}/LICENSE.txt +0 -0
- /data/lib/rubygems/{net-protocol → vendor/net-protocol}/lib/net/protocol.rb +0 -0
- /data/lib/rubygems/{optparse → vendor/optparse}/lib/optionparser.rb +0 -0
- /data/lib/rubygems/{optparse → vendor/optparse}/lib/optparse/date.rb +0 -0
- /data/lib/rubygems/{optparse → vendor/optparse}/lib/optparse/shellwords.rb +0 -0
- /data/lib/rubygems/{optparse → vendor/optparse}/lib/optparse/time.rb +0 -0
- /data/{bundler/lib/bundler/vendor/uri → lib/rubygems/vendor/tsort}/LICENSE.txt +0 -0
@@ -7,14 +7,11 @@ module Bundler
|
|
7
7
|
autoload :Validator, File.expand_path("settings/validator", __dir__)
|
8
8
|
|
9
9
|
BOOL_KEYS = %w[
|
10
|
-
allow_deployment_source_credential_changes
|
11
10
|
allow_offline_install
|
12
|
-
auto_clean_without_path
|
13
11
|
auto_install
|
14
12
|
cache_all
|
15
13
|
cache_all_platforms
|
16
14
|
clean
|
17
|
-
default_install_uses_path
|
18
15
|
deployment
|
19
16
|
disable_checksum_validation
|
20
17
|
disable_exec_load
|
@@ -28,22 +25,22 @@ module Bundler
|
|
28
25
|
gem.changelog
|
29
26
|
gem.coc
|
30
27
|
gem.mit
|
28
|
+
gem.bundle
|
31
29
|
git.allow_insecure
|
32
30
|
global_gem_cache
|
33
31
|
ignore_messages
|
34
32
|
init_gems_rb
|
35
33
|
inline
|
34
|
+
lockfile_checksums
|
36
35
|
no_install
|
37
36
|
no_prune
|
38
|
-
path_relative_to_cwd
|
39
37
|
path.system
|
40
38
|
plugins
|
41
39
|
prefer_patch
|
42
|
-
print_only_version_number
|
43
|
-
setup_makes_kernel_gem_public
|
44
40
|
silence_deprecations
|
45
41
|
silence_root_warning
|
46
42
|
update_requires_all_flag
|
43
|
+
verbose
|
47
44
|
].freeze
|
48
45
|
|
49
46
|
REMEMBERED_KEYS = %w[
|
@@ -86,6 +83,7 @@ module Bundler
|
|
86
83
|
gemfile
|
87
84
|
path
|
88
85
|
shebang
|
86
|
+
simulate_version
|
89
87
|
system_bindir
|
90
88
|
trust-policy
|
91
89
|
version
|
@@ -104,6 +102,7 @@ module Bundler
|
|
104
102
|
def initialize(root = nil)
|
105
103
|
@root = root
|
106
104
|
@local_config = load_config(local_config_file)
|
105
|
+
@local_root = root || Pathname.new(".bundle").expand_path
|
107
106
|
|
108
107
|
@env_config = ENV.to_h
|
109
108
|
@env_config.select! {|key, _value| key.start_with?("BUNDLE_") }
|
@@ -143,7 +142,7 @@ module Bundler
|
|
143
142
|
end
|
144
143
|
|
145
144
|
def set_local(key, value)
|
146
|
-
local_config_file
|
145
|
+
local_config_file = @local_root.join("config")
|
147
146
|
|
148
147
|
set_key(key, value, @local_config, local_config_file)
|
149
148
|
end
|
@@ -189,7 +188,7 @@ module Bundler
|
|
189
188
|
def mirror_for(uri)
|
190
189
|
if uri.is_a?(String)
|
191
190
|
require_relative "vendored_uri"
|
192
|
-
uri =
|
191
|
+
uri = Gem::URI(uri)
|
193
192
|
end
|
194
193
|
|
195
194
|
gem_mirrors.for(uri.to_s).uri
|
@@ -273,7 +272,7 @@ module Bundler
|
|
273
272
|
def use_system_gems?
|
274
273
|
return true if system_path
|
275
274
|
return false if explicit_path
|
276
|
-
!Bundler.feature_flag.
|
275
|
+
!Bundler.feature_flag.bundler_4_mode?
|
277
276
|
end
|
278
277
|
|
279
278
|
def base_path
|
@@ -425,8 +424,12 @@ module Bundler
|
|
425
424
|
Validator.validate!(raw_key, converted_value(value, raw_key), hash)
|
426
425
|
|
427
426
|
return unless file
|
427
|
+
|
428
|
+
SharedHelpers.filesystem_access(file.dirname, :create) do |p|
|
429
|
+
FileUtils.mkdir_p(p)
|
430
|
+
end
|
431
|
+
|
428
432
|
SharedHelpers.filesystem_access(file) do |p|
|
429
|
-
FileUtils.mkdir_p(p.dirname)
|
430
433
|
p.open("w") {|f| f.write(serializer_class.dump(hash)) }
|
431
434
|
end
|
432
435
|
end
|
@@ -492,16 +495,23 @@ module Bundler
|
|
492
495
|
valid_file = file.exist? && !file.size.zero?
|
493
496
|
return {} unless valid_file
|
494
497
|
serializer_class.load(file.read).inject({}) do |config, (k, v)|
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
"Please edit #{file} and replace any dashes in configuration keys with a triple underscore (`___`)."
|
498
|
+
k = k.dup
|
499
|
+
k << "/" if /https?:/i.match?(k) && !k.end_with?("/", "__#{FALLBACK_TIMEOUT_URI_OPTION.upcase}")
|
500
|
+
k.gsub!(".", "__")
|
499
501
|
|
500
|
-
|
501
|
-
|
502
|
+
unless k.start_with?("#")
|
503
|
+
if k.include?("-")
|
504
|
+
Bundler.ui.warn "Your #{file} config includes `#{k}`, which contains the dash character (`-`).\n" \
|
505
|
+
"This is deprecated, because configuration through `ENV` should be possible, but `ENV` keys cannot include dashes.\n" \
|
506
|
+
"Please edit #{file} and replace any dashes in configuration keys with a triple underscore (`___`)."
|
507
|
+
|
508
|
+
# string hash keys are frozen
|
509
|
+
k = k.gsub("-", "___")
|
510
|
+
end
|
511
|
+
|
512
|
+
config[k] = v
|
502
513
|
end
|
503
514
|
|
504
|
-
config[k] = v
|
505
515
|
config
|
506
516
|
end
|
507
517
|
end
|
@@ -516,26 +526,25 @@ module Bundler
|
|
516
526
|
YAMLSerializer
|
517
527
|
end
|
518
528
|
|
519
|
-
|
520
|
-
fallback_timeout
|
521
|
-
].freeze
|
529
|
+
FALLBACK_TIMEOUT_URI_OPTION = "fallback_timeout"
|
522
530
|
|
523
531
|
NORMALIZE_URI_OPTIONS_PATTERN =
|
524
532
|
/
|
525
533
|
\A
|
526
534
|
(\w+\.)? # optional prefix key
|
527
535
|
(https?.*?) # URI
|
528
|
-
(\.#{
|
536
|
+
(\.#{FALLBACK_TIMEOUT_URI_OPTION})? # optional suffix key
|
529
537
|
\z
|
530
538
|
/ix
|
531
539
|
|
532
540
|
def self.key_for(key)
|
533
|
-
key =
|
534
|
-
key =
|
541
|
+
key = key_to_s(key)
|
542
|
+
key = normalize_uri(key) if key.start_with?("http", "mirror.http")
|
543
|
+
key = key.gsub(".", "__")
|
535
544
|
key.gsub!("-", "___")
|
536
545
|
key.upcase!
|
537
546
|
|
538
|
-
key.
|
547
|
+
key.gsub(/\A([ #]*)/, '\1BUNDLE_')
|
539
548
|
end
|
540
549
|
|
541
550
|
# TODO: duplicates Rubygems#normalize_uri
|
@@ -549,7 +558,7 @@ module Bundler
|
|
549
558
|
end
|
550
559
|
uri = URINormalizer.normalize_suffix(uri)
|
551
560
|
require_relative "vendored_uri"
|
552
|
-
uri =
|
561
|
+
uri = Gem::URI(uri)
|
553
562
|
unless uri.absolute?
|
554
563
|
raise ArgumentError, format("Gem sources must be absolute. You provided '%s'.", uri)
|
555
564
|
end
|
@@ -564,7 +573,7 @@ module Bundler
|
|
564
573
|
key
|
565
574
|
when Symbol
|
566
575
|
key.name
|
567
|
-
when
|
576
|
+
when Gem::URI::HTTP
|
568
577
|
key.to_s
|
569
578
|
else
|
570
579
|
raise ArgumentError, "Invalid key: #{key.inspect}"
|
@@ -577,7 +586,7 @@ module Bundler
|
|
577
586
|
key
|
578
587
|
when Symbol
|
579
588
|
key.to_s
|
580
|
-
when
|
589
|
+
when Gem::URI::HTTP
|
581
590
|
key.to_s
|
582
591
|
else
|
583
592
|
raise ArgumentError, "Invalid key: #{key.inspect}"
|
@@ -5,6 +5,12 @@ require_relative "shared_helpers"
|
|
5
5
|
if Bundler::SharedHelpers.in_bundle?
|
6
6
|
require_relative "../bundler"
|
7
7
|
|
8
|
+
# autoswitch to locked Bundler version if available
|
9
|
+
Bundler.auto_switch
|
10
|
+
|
11
|
+
# try to auto_install first before we get to the `Bundler.ui.silence`, so user knows what is happening
|
12
|
+
Bundler.auto_install
|
13
|
+
|
8
14
|
if STDOUT.tty? || ENV["BUNDLER_FORCE_TTY"]
|
9
15
|
begin
|
10
16
|
Bundler.ui.silence { Bundler.setup }
|
@@ -1,14 +1,16 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require "pathname"
|
4
|
-
require "rbconfig"
|
5
|
-
|
6
3
|
require_relative "version"
|
7
|
-
require_relative "constants"
|
8
4
|
require_relative "rubygems_integration"
|
9
5
|
require_relative "current_ruby"
|
10
6
|
|
7
|
+
autoload :Pathname, "pathname"
|
8
|
+
|
11
9
|
module Bundler
|
10
|
+
autoload :WINDOWS, File.expand_path("constants", __dir__)
|
11
|
+
autoload :FREEBSD, File.expand_path("constants", __dir__)
|
12
|
+
autoload :NULL, File.expand_path("constants", __dir__)
|
13
|
+
|
12
14
|
module SharedHelpers
|
13
15
|
def root
|
14
16
|
gemfile = find_gemfile
|
@@ -94,14 +96,16 @@ module Bundler
|
|
94
96
|
# given block
|
95
97
|
#
|
96
98
|
# @example
|
97
|
-
# filesystem_access("vendor/cache", :
|
99
|
+
# filesystem_access("vendor/cache", :create) do
|
98
100
|
# FileUtils.mkdir_p("vendor/cache")
|
99
101
|
# end
|
100
102
|
#
|
101
103
|
# @see {Bundler::PermissionError}
|
102
104
|
def filesystem_access(path, action = :write, &block)
|
103
105
|
yield(path.dup)
|
104
|
-
rescue Errno::EACCES
|
106
|
+
rescue Errno::EACCES => e
|
107
|
+
raise unless e.message.include?(path.to_s) || action == :create
|
108
|
+
|
105
109
|
raise PermissionError.new(path, action)
|
106
110
|
rescue Errno::EAGAIN
|
107
111
|
raise TemporaryResourceError.new(path, action)
|
@@ -111,10 +115,14 @@ module Bundler
|
|
111
115
|
raise NoSpaceOnDeviceError.new(path, action)
|
112
116
|
rescue Errno::ENOTSUP
|
113
117
|
raise OperationNotSupportedError.new(path, action)
|
118
|
+
rescue Errno::EPERM
|
119
|
+
raise OperationNotPermittedError.new(path, action)
|
120
|
+
rescue Errno::EROFS
|
121
|
+
raise ReadOnlyFileSystemError.new(path, action)
|
114
122
|
rescue Errno::EEXIST, Errno::ENOENT
|
115
123
|
raise
|
116
124
|
rescue SystemCallError => e
|
117
|
-
raise GenericSystemCallError.new(e, "There was an error accessing `#{path}`.")
|
125
|
+
raise GenericSystemCallError.new(e, "There was an error #{[:create, :write].include?(action) ? "creating" : "accessing"} `#{path}`.")
|
118
126
|
end
|
119
127
|
|
120
128
|
def major_deprecation(major_version, message, removed_message: nil, print_caller_location: false)
|
@@ -125,13 +133,16 @@ module Bundler
|
|
125
133
|
removed_message += suffix if removed_message
|
126
134
|
end
|
127
135
|
|
128
|
-
|
129
|
-
|
136
|
+
require_relative "../bundler"
|
137
|
+
|
138
|
+
feature_flag = Bundler.feature_flag
|
139
|
+
|
140
|
+
if feature_flag.removed_major?(major_version)
|
130
141
|
require_relative "errors"
|
131
142
|
raise DeprecatedError, "[REMOVED] #{removed_message || message}"
|
132
143
|
end
|
133
144
|
|
134
|
-
return unless
|
145
|
+
return unless feature_flag.deprecated_major?(major_version) && prints_major_deprecations?
|
135
146
|
Bundler.ui.warn("[DEPRECATED] #{message}")
|
136
147
|
end
|
137
148
|
|
@@ -158,10 +169,10 @@ module Bundler
|
|
158
169
|
extra_deps = new_deps - old_deps
|
159
170
|
return if extra_deps.empty?
|
160
171
|
|
161
|
-
Bundler.ui.debug "#{spec.full_name} from #{spec.remote} has
|
172
|
+
Bundler.ui.debug "#{spec.full_name} from #{spec.remote} has corrupted API dependencies" \
|
162
173
|
" (was expecting #{old_deps.map(&:to_s)}, but the real spec has #{new_deps.map(&:to_s)})"
|
163
174
|
raise APIResponseMismatchError,
|
164
|
-
"Downloading #{spec.full_name} revealed dependencies not in the API
|
175
|
+
"Downloading #{spec.full_name} revealed dependencies not in the API (#{extra_deps.join(", ")})." \
|
165
176
|
"\nRunning `bundle update #{spec.name}` should fix the problem."
|
166
177
|
end
|
167
178
|
|
@@ -272,15 +283,7 @@ module Bundler
|
|
272
283
|
until !File.directory?(current) || current == previous
|
273
284
|
if ENV["BUNDLER_SPEC_RUN"]
|
274
285
|
# avoid stepping above the tmp directory when testing
|
275
|
-
|
276
|
-
# for Ruby Core
|
277
|
-
"lib/bundler/bundler.gemspec"
|
278
|
-
else
|
279
|
-
"bundler.gemspec"
|
280
|
-
end
|
281
|
-
|
282
|
-
# avoid stepping above the tmp directory when testing
|
283
|
-
return nil if File.file?(File.join(current, gemspec))
|
286
|
+
return nil if File.directory?(File.join(current, "tmp"))
|
284
287
|
end
|
285
288
|
|
286
289
|
names.each do |name|
|
@@ -312,18 +315,36 @@ module Bundler
|
|
312
315
|
|
313
316
|
def bundle_bin_path
|
314
317
|
# bundler exe & lib folders have same root folder, typical gem installation
|
315
|
-
exe_file = File.
|
318
|
+
exe_file = File.join(source_root, "exe/bundle")
|
316
319
|
|
317
320
|
# for Ruby core repository testing
|
318
|
-
exe_file = File.
|
321
|
+
exe_file = File.join(source_root, "libexec/bundle") unless File.exist?(exe_file)
|
319
322
|
|
320
323
|
# bundler is a default gem, exe path is separate
|
321
|
-
exe_file =
|
324
|
+
exe_file = Gem.bin_path("bundler", "bundle", VERSION) unless File.exist?(exe_file)
|
322
325
|
|
323
326
|
exe_file
|
324
327
|
end
|
325
328
|
public :bundle_bin_path
|
326
329
|
|
330
|
+
def gemspec_path
|
331
|
+
# inside a gem repository, typical gem installation
|
332
|
+
gemspec_file = File.join(source_root, "../../specifications/bundler-#{VERSION}.gemspec")
|
333
|
+
|
334
|
+
# for Ruby core repository testing
|
335
|
+
gemspec_file = File.expand_path("bundler.gemspec", __dir__) unless File.exist?(gemspec_file)
|
336
|
+
|
337
|
+
# bundler is a default gem
|
338
|
+
gemspec_file = File.join(Gem.default_specifications_dir, "bundler-#{VERSION}.gemspec") unless File.exist?(gemspec_file)
|
339
|
+
|
340
|
+
gemspec_file
|
341
|
+
end
|
342
|
+
public :gemspec_path
|
343
|
+
|
344
|
+
def source_root
|
345
|
+
File.expand_path("../..", __dir__)
|
346
|
+
end
|
347
|
+
|
327
348
|
def set_path
|
328
349
|
validate_bundle_path
|
329
350
|
paths = (ENV["PATH"] || "").split(File::PATH_SEPARATOR)
|
@@ -368,7 +389,6 @@ module Bundler
|
|
368
389
|
end
|
369
390
|
|
370
391
|
def prints_major_deprecations?
|
371
|
-
require_relative "../bundler"
|
372
392
|
return false if Bundler.settings[:silence_deprecations]
|
373
393
|
require_relative "deprecate"
|
374
394
|
return false if Bundler::Deprecate.skip
|
@@ -4,15 +4,12 @@ module Bundler
|
|
4
4
|
class Source
|
5
5
|
class Gemspec < Path
|
6
6
|
attr_reader :gemspec
|
7
|
+
attr_writer :checksum_store
|
7
8
|
|
8
9
|
def initialize(options)
|
9
10
|
super
|
10
11
|
@gemspec = options["gemspec"]
|
11
12
|
end
|
12
|
-
|
13
|
-
def as_path_source
|
14
|
-
Path.new(options)
|
15
|
-
end
|
16
13
|
end
|
17
14
|
end
|
18
15
|
end
|
@@ -147,6 +147,12 @@ module Bundler
|
|
147
147
|
end
|
148
148
|
end
|
149
149
|
|
150
|
+
def installed_to?(destination)
|
151
|
+
# if copy_to is interrupted, it may leave a partially installed directory that
|
152
|
+
# contains .git but no other files -- consider this not to be installed
|
153
|
+
Dir.exist?(destination) && (Dir.children(destination) - [".git"]).any?
|
154
|
+
end
|
155
|
+
|
150
156
|
private
|
151
157
|
|
152
158
|
def git_remote_fetch(args)
|
@@ -179,9 +185,18 @@ module Bundler
|
|
179
185
|
_, err, status = capture(command, nil)
|
180
186
|
return extra_ref if status.success?
|
181
187
|
|
182
|
-
if err.include?("Could not find remote branch")
|
188
|
+
if err.include?("Could not find remote branch") || # git up to 2.49
|
189
|
+
err.include?("Remote branch #{branch_option} not found") # git 2.49 or higher
|
183
190
|
raise MissingGitRevisionError.new(command_with_no_credentials, nil, explicit_ref, credential_filtered_uri)
|
184
191
|
else
|
192
|
+
idx = command.index("--depth")
|
193
|
+
if idx
|
194
|
+
command.delete_at(idx)
|
195
|
+
command.delete_at(idx)
|
196
|
+
command_with_no_credentials = check_allowed(command)
|
197
|
+
|
198
|
+
err += "Retrying without --depth argument."
|
199
|
+
end
|
185
200
|
raise GitCommandError.new(command_with_no_credentials, path, err)
|
186
201
|
end
|
187
202
|
end
|
@@ -248,7 +263,7 @@ module Bundler
|
|
248
263
|
end
|
249
264
|
|
250
265
|
def not_pinned?
|
251
|
-
|
266
|
+
branch_option || ref.nil?
|
252
267
|
end
|
253
268
|
|
254
269
|
def pinned_to_full_sha?
|
@@ -290,8 +305,8 @@ module Bundler
|
|
290
305
|
end
|
291
306
|
|
292
307
|
def has_revision_cached?
|
293
|
-
return unless
|
294
|
-
git("cat-file", "-e",
|
308
|
+
return unless commit && path.exist?
|
309
|
+
git("cat-file", "-e", commit, dir: path)
|
295
310
|
true
|
296
311
|
rescue GitError
|
297
312
|
false
|
@@ -320,12 +335,10 @@ module Bundler
|
|
320
335
|
# Adds credentials to the URI
|
321
336
|
def configured_uri
|
322
337
|
if /https?:/.match?(uri)
|
323
|
-
remote =
|
338
|
+
remote = Gem::URI(uri)
|
324
339
|
config_auth = Bundler.settings[remote.to_s] || Bundler.settings[remote.host]
|
325
340
|
remote.userinfo ||= config_auth
|
326
341
|
remote.to_s
|
327
|
-
elsif File.exist?(uri)
|
328
|
-
"file://#{uri}"
|
329
342
|
else
|
330
343
|
uri.to_s
|
331
344
|
end
|
@@ -395,7 +408,7 @@ module Bundler
|
|
395
408
|
def capture3_args_for(cmd, dir)
|
396
409
|
return ["git", *cmd] unless dir
|
397
410
|
|
398
|
-
if Bundler.feature_flag.
|
411
|
+
if Bundler.feature_flag.bundler_4_mode? || supports_minus_c?
|
399
412
|
["git", "-C", dir.to_s, *cmd]
|
400
413
|
else
|
401
414
|
["git", *cmd, { chdir: dir.to_s }]
|
@@ -414,7 +427,7 @@ module Bundler
|
|
414
427
|
# anyways.
|
415
428
|
return args if @revision
|
416
429
|
|
417
|
-
args += ["--branch",
|
430
|
+
args += ["--branch", branch_option] if branch_option
|
418
431
|
args
|
419
432
|
end
|
420
433
|
|
@@ -430,6 +443,10 @@ module Bundler
|
|
430
443
|
extra_args
|
431
444
|
end
|
432
445
|
|
446
|
+
def branch_option
|
447
|
+
branch || tag
|
448
|
+
end
|
449
|
+
|
433
450
|
def full_clone?
|
434
451
|
depth.nil?
|
435
452
|
end
|