rubygems-update 3.5.5 → 3.6.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +606 -1
- data/CODE_OF_CONDUCT.md +79 -28
- data/Manifest.txt +114 -73
- data/README.md +16 -11
- data/bundler/CHANGELOG.md +506 -6
- data/bundler/README.md +2 -2
- data/bundler/bundler.gemspec +2 -2
- data/bundler/lib/bundler/build_metadata.rb +2 -2
- data/bundler/lib/bundler/checksum.rb +22 -12
- data/bundler/lib/bundler/cli/add.rb +3 -1
- data/bundler/lib/bundler/cli/binstubs.rb +1 -1
- data/bundler/lib/bundler/cli/check.rb +3 -3
- data/bundler/lib/bundler/cli/console.rb +8 -10
- data/bundler/lib/bundler/cli/doctor/diagnose.rb +167 -0
- data/bundler/lib/bundler/cli/doctor/ssl.rb +249 -0
- data/bundler/lib/bundler/cli/doctor.rb +27 -151
- data/bundler/lib/bundler/cli/exec.rb +1 -0
- data/bundler/lib/bundler/cli/fund.rb +1 -1
- data/bundler/lib/bundler/cli/gem.rb +13 -17
- data/bundler/lib/bundler/cli/info.rb +6 -6
- data/bundler/lib/bundler/cli/inject.rb +3 -3
- data/bundler/lib/bundler/cli/install.rb +14 -5
- data/bundler/lib/bundler/cli/issue.rb +3 -3
- data/bundler/lib/bundler/cli/lock.rb +32 -11
- data/bundler/lib/bundler/cli/outdated.rb +22 -22
- data/bundler/lib/bundler/cli/plugin.rb +3 -2
- data/bundler/lib/bundler/cli/pristine.rb +1 -1
- data/bundler/lib/bundler/cli/show.rb +3 -3
- data/bundler/lib/bundler/cli.rb +51 -107
- data/bundler/lib/bundler/compact_index_client/cache.rb +48 -73
- data/bundler/lib/bundler/compact_index_client/cache_file.rb +0 -5
- data/bundler/lib/bundler/compact_index_client/parser.rb +84 -0
- data/bundler/lib/bundler/compact_index_client/updater.rb +2 -12
- data/bundler/lib/bundler/compact_index_client.rb +51 -80
- data/bundler/lib/bundler/constants.rb +8 -1
- data/bundler/lib/bundler/current_ruby.rb +23 -33
- data/bundler/lib/bundler/definition.rb +485 -313
- data/bundler/lib/bundler/dependency.rb +92 -46
- data/bundler/lib/bundler/dsl.rb +135 -101
- data/bundler/lib/bundler/endpoint_specification.rb +30 -3
- data/bundler/lib/bundler/env.rb +1 -1
- data/bundler/lib/bundler/environment_preserver.rb +5 -23
- data/bundler/lib/bundler/errors.rb +53 -5
- data/bundler/lib/bundler/feature_flag.rb +3 -6
- data/bundler/lib/bundler/fetcher/compact_index.rb +16 -25
- data/bundler/lib/bundler/fetcher/downloader.rb +1 -1
- data/bundler/lib/bundler/fetcher.rb +14 -7
- data/bundler/lib/bundler/force_platform.rb +0 -2
- data/bundler/lib/bundler/friendly_errors.rb +1 -1
- data/bundler/lib/bundler/gem_helper.rb +1 -1
- data/bundler/lib/bundler/gem_helpers.rb +36 -19
- data/bundler/lib/bundler/gem_version_promoter.rb +42 -40
- data/bundler/lib/bundler/injector.rb +14 -16
- data/bundler/lib/bundler/inline.rb +42 -17
- data/bundler/lib/bundler/installer/gem_installer.rb +4 -3
- data/bundler/lib/bundler/installer/parallel_installer.rb +3 -2
- data/bundler/lib/bundler/installer/standalone.rb +2 -5
- data/bundler/lib/bundler/installer.rb +17 -41
- data/bundler/lib/bundler/lazy_specification.rb +117 -46
- data/bundler/lib/bundler/lockfile_generator.rb +1 -1
- data/bundler/lib/bundler/lockfile_parser.rb +18 -7
- data/bundler/lib/bundler/man/bundle-add.1 +44 -27
- data/bundler/lib/bundler/man/bundle-add.1.ronn +52 -23
- data/bundler/lib/bundler/man/bundle-binstubs.1 +9 -6
- data/bundler/lib/bundler/man/bundle-binstubs.1.ronn +6 -3
- data/bundler/lib/bundler/man/bundle-cache.1 +32 -4
- data/bundler/lib/bundler/man/bundle-cache.1.ronn +31 -2
- data/bundler/lib/bundler/man/bundle-check.1 +7 -5
- data/bundler/lib/bundler/man/bundle-check.1.ronn +7 -2
- data/bundler/lib/bundler/man/bundle-clean.1 +3 -3
- data/bundler/lib/bundler/man/bundle-config.1 +11 -15
- data/bundler/lib/bundler/man/bundle-config.1.ronn +12 -15
- data/bundler/lib/bundler/man/bundle-console.1 +4 -6
- data/bundler/lib/bundler/man/bundle-console.1.ronn +2 -7
- data/bundler/lib/bundler/man/bundle-doctor.1 +4 -4
- data/bundler/lib/bundler/man/bundle-doctor.1.ronn +1 -1
- data/bundler/lib/bundler/man/bundle-env.1 +9 -0
- data/bundler/lib/bundler/man/bundle-env.1.ronn +10 -0
- data/bundler/lib/bundler/man/bundle-exec.1 +9 -6
- data/bundler/lib/bundler/man/bundle-exec.1.ronn +6 -3
- data/bundler/lib/bundler/man/bundle-fund.1 +22 -0
- data/bundler/lib/bundler/man/bundle-fund.1.ronn +25 -0
- data/bundler/lib/bundler/man/bundle-gem.1 +25 -7
- data/bundler/lib/bundler/man/bundle-gem.1.ronn +38 -6
- data/bundler/lib/bundler/man/bundle-help.1 +3 -3
- data/bundler/lib/bundler/man/bundle-info.1 +7 -4
- data/bundler/lib/bundler/man/bundle-info.1.ronn +6 -2
- data/bundler/lib/bundler/man/bundle-init.1 +5 -5
- data/bundler/lib/bundler/man/bundle-init.1.ronn +3 -2
- data/bundler/lib/bundler/man/bundle-inject.1 +12 -4
- data/bundler/lib/bundler/man/bundle-inject.1.ronn +9 -1
- data/bundler/lib/bundler/man/bundle-install.1 +19 -16
- data/bundler/lib/bundler/man/bundle-install.1.ronn +24 -20
- data/bundler/lib/bundler/man/bundle-issue.1 +45 -0
- data/bundler/lib/bundler/man/bundle-issue.1.ronn +37 -0
- data/bundler/lib/bundler/man/bundle-licenses.1 +9 -0
- data/bundler/lib/bundler/man/bundle-licenses.1.ronn +10 -0
- data/bundler/lib/bundler/man/bundle-list.1 +3 -3
- data/bundler/lib/bundler/man/bundle-list.1.ronn +4 -1
- data/bundler/lib/bundler/man/bundle-lock.1 +23 -8
- data/bundler/lib/bundler/man/bundle-lock.1.ronn +25 -4
- data/bundler/lib/bundler/man/bundle-open.1 +4 -4
- data/bundler/lib/bundler/man/bundle-open.1.ronn +2 -1
- data/bundler/lib/bundler/man/bundle-outdated.1 +10 -7
- data/bundler/lib/bundler/man/bundle-outdated.1.ronn +8 -4
- data/bundler/lib/bundler/man/bundle-platform.1 +3 -3
- data/bundler/lib/bundler/man/bundle-plugin.1 +9 -6
- data/bundler/lib/bundler/man/bundle-plugin.1.ronn +7 -3
- data/bundler/lib/bundler/man/bundle-pristine.1 +3 -3
- data/bundler/lib/bundler/man/bundle-pristine.1.ronn +1 -1
- data/bundler/lib/bundler/man/bundle-remove.1 +3 -3
- data/bundler/lib/bundler/man/bundle-remove.1.ronn +1 -1
- data/bundler/lib/bundler/man/bundle-show.1 +7 -4
- data/bundler/lib/bundler/man/bundle-show.1.ronn +4 -0
- data/bundler/lib/bundler/man/bundle-update.1 +15 -9
- data/bundler/lib/bundler/man/bundle-update.1.ronn +14 -6
- data/bundler/lib/bundler/man/bundle-version.1 +3 -3
- data/bundler/lib/bundler/man/bundle-viz.1 +6 -6
- data/bundler/lib/bundler/man/bundle-viz.1.ronn +7 -3
- data/bundler/lib/bundler/man/bundle.1 +3 -3
- data/bundler/lib/bundler/man/gemfile.5 +7 -5
- data/bundler/lib/bundler/man/gemfile.5.ronn +8 -2
- data/bundler/lib/bundler/man/index.txt +4 -0
- data/bundler/lib/bundler/match_metadata.rb +13 -0
- data/bundler/lib/bundler/materialization.rb +59 -0
- data/bundler/lib/bundler/mirror.rb +3 -3
- data/bundler/lib/bundler/plugin/api/source.rb +5 -4
- data/bundler/lib/bundler/plugin/events.rb +24 -0
- data/bundler/lib/bundler/plugin/index.rb +5 -1
- data/bundler/lib/bundler/plugin/installer/path.rb +26 -0
- data/bundler/lib/bundler/plugin/installer.rb +37 -17
- data/bundler/lib/bundler/plugin/source_list.rb +4 -4
- data/bundler/lib/bundler/plugin.rb +21 -2
- data/bundler/lib/bundler/process_lock.rb +10 -14
- data/bundler/lib/bundler/remote_specification.rb +6 -1
- data/bundler/lib/bundler/resolver/base.rb +14 -3
- data/bundler/lib/bundler/resolver/candidate.rb +18 -27
- data/bundler/lib/bundler/resolver/package.rb +20 -3
- data/bundler/lib/bundler/resolver/spec_group.rb +22 -27
- data/bundler/lib/bundler/resolver/strategy.rb +40 -0
- data/bundler/lib/bundler/resolver.rb +114 -50
- data/bundler/lib/bundler/retry.rb +1 -1
- data/bundler/lib/bundler/ruby_dsl.rb +12 -3
- data/bundler/lib/bundler/ruby_version.rb +7 -1
- data/bundler/lib/bundler/rubygems_ext.rb +282 -125
- data/bundler/lib/bundler/rubygems_gem_installer.rb +40 -5
- data/bundler/lib/bundler/rubygems_integration.rb +29 -67
- data/bundler/lib/bundler/runtime.rb +48 -35
- data/bundler/lib/bundler/self_manager.rb +27 -7
- data/bundler/lib/bundler/settings.rb +32 -21
- data/bundler/lib/bundler/setup.rb +6 -0
- data/bundler/lib/bundler/shared_helpers.rb +39 -21
- data/bundler/lib/bundler/source/gemspec.rb +1 -4
- data/bundler/lib/bundler/source/git/git_proxy.rb +23 -6
- data/bundler/lib/bundler/source/git.rb +113 -41
- data/bundler/lib/bundler/source/metadata.rb +4 -3
- data/bundler/lib/bundler/source/path.rb +7 -18
- data/bundler/lib/bundler/source/rubygems/remote.rb +12 -4
- data/bundler/lib/bundler/source/rubygems.rb +54 -48
- data/bundler/lib/bundler/source.rb +2 -0
- data/bundler/lib/bundler/source_list.rb +53 -7
- data/bundler/lib/bundler/spec_set.rb +187 -88
- data/bundler/lib/bundler/stub_specification.rb +29 -2
- data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +77 -29
- data/bundler/lib/bundler/templates/newgem/Gemfile.tt +1 -3
- data/bundler/lib/bundler/templates/newgem/README.md.tt +7 -3
- data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +15 -15
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +8 -7
- data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +0 -5
- data/bundler/lib/bundler/ui/shell.rb +24 -2
- data/bundler/lib/bundler/ui/silent.rb +12 -1
- data/bundler/lib/bundler/uri_credentials_filter.rb +3 -3
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +53 -3
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +1 -1
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +11 -0
- data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +15 -13
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +68 -30
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +4 -24
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +1 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/strategy.rb +42 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +20 -8
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +17 -29
- data/bundler/lib/bundler/vendor/securerandom/COPYING +56 -0
- data/bundler/lib/bundler/vendor/securerandom/lib/securerandom.rb +102 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +3 -5
- data/bundler/lib/bundler/vendor/thor/lib/thor/group.rb +11 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/argument.rb +1 -4
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/option.rb +2 -2
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +2 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +9 -9
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/html.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/table_printer.rb +5 -21
- data/bundler/lib/bundler/vendor/thor/lib/thor/util.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor.rb +11 -0
- data/bundler/lib/bundler/vendor/uri/COPYING +56 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +43 -16
- data/bundler/lib/bundler/vendor/uri/lib/uri/file.rb +3 -3
- data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +1 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +28 -37
- data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +2 -2
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +16 -9
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +26 -3
- data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri.rb +9 -9
- data/bundler/lib/bundler/vendored_net_http.rb +20 -5
- data/bundler/lib/bundler/vendored_securerandom.rb +12 -0
- data/bundler/lib/bundler/vendored_timeout.rb +7 -3
- data/bundler/lib/bundler/vendored_uri.rb +18 -1
- data/bundler/lib/bundler/version.rb +1 -1
- data/bundler/lib/bundler/yaml_serializer.rb +12 -7
- data/bundler/lib/bundler.rb +89 -51
- data/{CONTRIBUTING.md → doc/rubygems/CONTRIBUTING.md} +10 -14
- data/{POLICIES.md → doc/rubygems/POLICIES.md} +81 -12
- data/exe/update_rubygems +1 -1
- data/lib/rubygems/basic_specification.rb +43 -10
- data/lib/rubygems/bundler_version_finder.rb +1 -1
- data/lib/rubygems/command.rb +1 -4
- data/lib/rubygems/command_manager.rb +5 -6
- data/lib/rubygems/commands/build_command.rb +2 -11
- data/lib/rubygems/commands/cleanup_command.rb +3 -13
- data/lib/rubygems/commands/contents_command.rb +17 -10
- data/lib/rubygems/commands/environment_command.rb +5 -0
- data/lib/rubygems/commands/exec_command.rb +18 -11
- data/lib/rubygems/commands/fetch_command.rb +14 -0
- data/lib/rubygems/commands/help_command.rb +2 -2
- data/lib/rubygems/commands/install_command.rb +0 -4
- data/lib/rubygems/commands/pristine_command.rb +30 -17
- data/lib/rubygems/commands/push_command.rb +31 -6
- data/lib/rubygems/commands/rdoc_command.rb +3 -10
- data/lib/rubygems/commands/rebuild_command.rb +262 -0
- data/lib/rubygems/commands/setup_command.rb +11 -16
- data/lib/rubygems/commands/sources_command.rb +2 -2
- data/lib/rubygems/commands/uninstall_command.rb +9 -4
- data/lib/rubygems/commands/unpack_command.rb +0 -6
- data/lib/rubygems/commands/update_command.rb +10 -17
- data/lib/rubygems/config_file.rb +45 -16
- data/lib/rubygems/core_ext/kernel_warn.rb +2 -6
- data/lib/rubygems/defaults.rb +6 -6
- data/lib/rubygems/dependency.rb +12 -16
- data/lib/rubygems/dependency_list.rb +1 -1
- data/lib/rubygems/deprecate.rb +79 -77
- data/lib/rubygems/errors.rb +2 -1
- data/lib/rubygems/exceptions.rb +2 -9
- data/lib/rubygems/ext/builder.rb +21 -8
- data/lib/rubygems/ext/cargo_builder.rb +12 -26
- data/lib/rubygems/ext/cmake_builder.rb +7 -2
- data/lib/rubygems/ext/configure_builder.rb +7 -2
- data/lib/rubygems/ext/ext_conf_builder.rb +9 -5
- data/lib/rubygems/ext/rake_builder.rb +7 -4
- data/lib/rubygems/gem_runner.rb +9 -0
- data/lib/rubygems/gemcutter_utilities/webauthn_listener.rb +1 -1
- data/lib/rubygems/gemcutter_utilities/webauthn_poller.rb +3 -1
- data/lib/rubygems/gemcutter_utilities.rb +52 -26
- data/lib/rubygems/gemspec_helpers.rb +19 -0
- data/lib/rubygems/install_update_options.rb +5 -0
- data/lib/rubygems/installer.rb +31 -40
- data/lib/rubygems/local_remote_options.rb +8 -8
- data/lib/rubygems/package/tar_header.rb +31 -4
- data/lib/rubygems/package/tar_reader/entry.rb +1 -5
- data/lib/rubygems/package/tar_writer.rb +5 -4
- data/lib/rubygems/package.rb +13 -8
- data/lib/rubygems/platform.rb +7 -5
- data/lib/rubygems/psych_tree.rb +4 -0
- data/lib/rubygems/query_utils.rb +2 -2
- data/lib/rubygems/rdoc.rb +16 -3
- data/lib/rubygems/remote_fetcher.rb +3 -4
- data/lib/rubygems/request.rb +5 -5
- data/lib/rubygems/request_set/gem_dependency_api.rb +1 -1
- data/lib/rubygems/request_set.rb +1 -1
- data/lib/rubygems/requirement.rb +16 -12
- data/lib/rubygems/resolver/activation_request.rb +1 -1
- data/lib/rubygems/resolver/api_set/gem_parser.rb +2 -5
- data/lib/rubygems/resolver/api_set.rb +13 -8
- data/lib/rubygems/resolver/best_set.rb +0 -28
- data/lib/rubygems/resolver/composed_set.rb +3 -3
- data/lib/rubygems/resolver/git_set.rb +0 -1
- data/lib/rubygems/resolver/index_set.rb +2 -2
- data/lib/rubygems/resolver/spec_specification.rb +7 -0
- data/lib/rubygems/resolver.rb +7 -7
- data/lib/rubygems/s3_uri_signer.rb +3 -3
- data/lib/rubygems/safe_marshal/reader.rb +31 -14
- data/lib/rubygems/safe_marshal/visitors/to_ruby.rb +29 -16
- data/lib/rubygems/safe_yaml.rb +10 -1
- data/lib/rubygems/security.rb +1 -1
- data/lib/rubygems/source/git.rb +22 -17
- data/lib/rubygems/source/installed.rb +3 -1
- data/lib/rubygems/source/local.rb +8 -4
- data/lib/rubygems/source/specific_file.rb +5 -3
- data/lib/rubygems/source.rb +10 -8
- data/lib/rubygems/source_list.rb +1 -1
- data/lib/rubygems/spec_fetcher.rb +47 -15
- data/lib/rubygems/specification.rb +107 -180
- data/lib/rubygems/specification_policy.rb +33 -13
- data/lib/rubygems/specification_record.rb +212 -0
- data/lib/rubygems/stub_specification.rb +32 -10
- data/lib/rubygems/target_rbconfig.rb +50 -0
- data/lib/rubygems/uninstaller.rb +42 -22
- data/lib/rubygems/uri.rb +6 -6
- data/lib/rubygems/util/licenses.rb +97 -1
- data/lib/rubygems/util.rb +1 -1
- data/lib/rubygems/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +57 -0
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/delegates/specification_provider.rb +11 -11
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/dependency_graph/action.rb +1 -1
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +1 -1
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +1 -1
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +1 -1
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +1 -1
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/dependency_graph/log.rb +1 -1
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/dependency_graph/set_payload.rb +1 -1
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/dependency_graph/tag.rb +1 -1
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/dependency_graph/vertex.rb +1 -1
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/dependency_graph.rb +2 -2
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/errors.rb +1 -1
- data/lib/rubygems/vendor/molinillo/lib/molinillo/gem_metadata.rb +6 -0
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/modules/specification_provider.rb +2 -2
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/modules/ui.rb +1 -1
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/resolution.rb +4 -4
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/resolver.rb +1 -1
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo/state.rb +1 -1
- data/lib/rubygems/{resolver → vendor}/molinillo/lib/molinillo.rb +2 -2
- data/lib/rubygems/vendor/net-http/COPYING +56 -0
- data/lib/rubygems/{net-http → vendor/net-http}/lib/net/http/generic_request.rb +9 -9
- data/lib/rubygems/{net-http → vendor/net-http}/lib/net/http/header.rb +3 -3
- data/lib/rubygems/{net-http → vendor/net-http}/lib/net/http/request.rb +3 -3
- data/lib/rubygems/{net-http → vendor/net-http}/lib/net/http/requests.rb +35 -30
- data/lib/rubygems/{net-http → vendor/net-http}/lib/net/http/response.rb +2 -2
- data/lib/rubygems/{net-http → vendor/net-http}/lib/net/http/responses.rb +6 -6
- data/lib/rubygems/{net-http → vendor/net-http}/lib/net/http/status.rb +1 -1
- data/lib/rubygems/{net-http → vendor/net-http}/lib/net/http.rb +135 -51
- data/lib/rubygems/{net-http → vendor/net-http}/lib/net/https.rb +1 -1
- data/lib/rubygems/vendor/optparse/COPYING +56 -0
- data/lib/rubygems/{optparse → vendor/optparse}/lib/optparse/ac.rb +16 -0
- data/lib/rubygems/{optparse → vendor/optparse}/lib/optparse/kwargs.rb +8 -3
- data/lib/rubygems/vendor/optparse/lib/optparse/uri.rb +7 -0
- data/lib/rubygems/{optparse → vendor/optparse}/lib/optparse/version.rb +9 -0
- data/lib/rubygems/{optparse → vendor/optparse}/lib/optparse.rb +158 -62
- data/lib/rubygems/vendor/resolv/COPYING +56 -0
- data/lib/rubygems/{resolv → vendor/resolv}/lib/resolv.rb +117 -49
- data/lib/rubygems/vendor/securerandom/COPYING +56 -0
- data/lib/rubygems/vendor/securerandom/lib/securerandom.rb +102 -0
- data/lib/rubygems/vendor/timeout/.document +1 -0
- data/lib/rubygems/vendor/timeout/COPYING +56 -0
- data/lib/rubygems/{timeout → vendor/timeout}/lib/timeout.rb +10 -11
- data/lib/rubygems/vendor/tsort/.document +1 -0
- data/lib/rubygems/{tsort → vendor/tsort}/lib/tsort.rb +2 -2
- data/lib/rubygems/vendor/uri/.document +1 -0
- data/lib/rubygems/vendor/uri/COPYING +56 -0
- data/lib/rubygems/vendor/uri/lib/uri/common.rb +880 -0
- data/lib/rubygems/vendor/uri/lib/uri/file.rb +100 -0
- data/lib/rubygems/vendor/uri/lib/uri/ftp.rb +267 -0
- data/lib/rubygems/vendor/uri/lib/uri/generic.rb +1579 -0
- data/lib/rubygems/vendor/uri/lib/uri/http.rb +125 -0
- data/lib/rubygems/vendor/uri/lib/uri/https.rb +23 -0
- data/lib/rubygems/vendor/uri/lib/uri/ldap.rb +261 -0
- data/lib/rubygems/vendor/uri/lib/uri/ldaps.rb +22 -0
- data/lib/rubygems/vendor/uri/lib/uri/mailto.rb +293 -0
- data/lib/rubygems/vendor/uri/lib/uri/rfc2396_parser.rb +546 -0
- data/lib/rubygems/vendor/uri/lib/uri/rfc3986_parser.rb +206 -0
- data/lib/rubygems/vendor/uri/lib/uri/version.rb +6 -0
- data/lib/rubygems/vendor/uri/lib/uri/ws.rb +83 -0
- data/lib/rubygems/vendor/uri/lib/uri/wss.rb +23 -0
- data/lib/rubygems/vendor/uri/lib/uri.rb +104 -0
- data/lib/rubygems/vendored_molinillo.rb +3 -0
- data/lib/rubygems/vendored_net_http.rb +5 -0
- data/lib/rubygems/vendored_optparse.rb +3 -0
- data/lib/rubygems/vendored_securerandom.rb +3 -0
- data/lib/rubygems/vendored_timeout.rb +5 -0
- data/lib/rubygems/vendored_tsort.rb +3 -0
- data/lib/rubygems/version.rb +26 -9
- data/lib/rubygems/yaml_serializer.rb +12 -7
- data/lib/rubygems.rb +82 -47
- data/rubygems-update.gemspec +11 -6
- data/setup.rb +1 -1
- metadata +131 -86
- data/bundler/lib/bundler/compact_index_client/gem_parser.rb +0 -32
- data/lib/rubygems/net/http.rb +0 -3
- data/lib/rubygems/net-http/LICENSE.txt +0 -22
- data/lib/rubygems/net-http/lib/net/http/backward.rb +0 -40
- data/lib/rubygems/net-protocol/LICENSE.txt +0 -22
- data/lib/rubygems/optparse/lib/optparse/uri.rb +0 -7
- data/lib/rubygems/optparse.rb +0 -3
- data/lib/rubygems/resolv/LICENSE.txt +0 -22
- data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
- data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +0 -6
- data/lib/rubygems/resolver/molinillo.rb +0 -3
- data/lib/rubygems/shellwords.rb +0 -3
- data/lib/rubygems/timeout/LICENSE.txt +0 -22
- data/lib/rubygems/timeout.rb +0 -3
- data/lib/rubygems/tsort/LICENSE.txt +0 -22
- data/lib/rubygems/tsort.rb +0 -3
- /data/{lib/rubygems/optparse → bundler/lib/bundler/vendor/fileutils}/COPYING +0 -0
- /data/{lib/rubygems/net-http → bundler/lib/bundler/vendor/securerandom}/.document +0 -0
- /data/{MAINTAINERS.txt → doc/MAINTAINERS.txt} +0 -0
- /data/{bundler → doc/bundler}/UPGRADING.md +0 -0
- /data/{UPGRADING.md → doc/rubygems/UPGRADING.md} +0 -0
- /data/lib/rubygems/{net-protocol → vendor/molinillo}/.document +0 -0
- /data/lib/rubygems/{resolver → vendor}/molinillo/LICENSE +0 -0
- /data/lib/rubygems/{optparse → vendor/net-http}/.document +0 -0
- /data/lib/rubygems/{net-http → vendor/net-http}/lib/net/http/exceptions.rb +0 -0
- /data/lib/rubygems/{net-http → vendor/net-http}/lib/net/http/proxy_delta.rb +0 -0
- /data/lib/rubygems/{resolv → vendor/net-protocol}/.document +0 -0
- /data/{bundler/lib/bundler/vendor/fileutils → lib/rubygems/vendor/net-protocol}/LICENSE.txt +0 -0
- /data/lib/rubygems/{net-protocol → vendor/net-protocol}/lib/net/protocol.rb +0 -0
- /data/lib/rubygems/{resolver/molinillo → vendor/optparse}/.document +0 -0
- /data/lib/rubygems/{optparse → vendor/optparse}/lib/optionparser.rb +0 -0
- /data/lib/rubygems/{optparse → vendor/optparse}/lib/optparse/date.rb +0 -0
- /data/lib/rubygems/{optparse → vendor/optparse}/lib/optparse/shellwords.rb +0 -0
- /data/lib/rubygems/{optparse → vendor/optparse}/lib/optparse/time.rb +0 -0
- /data/lib/rubygems/{timeout → vendor/resolv}/.document +0 -0
- /data/lib/rubygems/{tsort → vendor/securerandom}/.document +0 -0
- /data/{bundler/lib/bundler/vendor/uri → lib/rubygems/vendor/tsort}/LICENSE.txt +0 -0
|
@@ -78,7 +78,7 @@ module Bundler::URI
|
|
|
78
78
|
begin
|
|
79
79
|
uri = uri.to_str
|
|
80
80
|
rescue NoMethodError
|
|
81
|
-
raise InvalidURIError, "bad Bundler::URI(is not Bundler::URI?): #{uri.inspect}"
|
|
81
|
+
raise InvalidURIError, "bad Bundler::URI (is not Bundler::URI?): #{uri.inspect}"
|
|
82
82
|
end
|
|
83
83
|
uri.ascii_only? or
|
|
84
84
|
raise InvalidURIError, "Bundler::URI must be ascii only #{uri.dump}"
|
|
@@ -127,7 +127,7 @@ module Bundler::URI
|
|
|
127
127
|
m["fragment"]
|
|
128
128
|
]
|
|
129
129
|
else
|
|
130
|
-
raise InvalidURIError, "bad Bundler::URI(is not Bundler::URI?): #{uri.inspect}"
|
|
130
|
+
raise InvalidURIError, "bad Bundler::URI (is not Bundler::URI?): #{uri.inspect}"
|
|
131
131
|
end
|
|
132
132
|
end
|
|
133
133
|
|
|
@@ -135,12 +135,35 @@ module Bundler::URI
|
|
|
135
135
|
Bundler::URI.for(*self.split(uri), self)
|
|
136
136
|
end
|
|
137
137
|
|
|
138
|
-
|
|
139
138
|
def join(*uris) # :nodoc:
|
|
140
139
|
uris[0] = convert_to_uri(uris[0])
|
|
141
140
|
uris.inject :merge
|
|
142
141
|
end
|
|
143
142
|
|
|
143
|
+
# Compatibility for RFC2396 parser
|
|
144
|
+
def extract(str, schemes = nil, &block) # :nodoc:
|
|
145
|
+
warn "Bundler::URI::RFC3986_PARSER.extract is obsolete. Use Bundler::URI::RFC2396_PARSER.extract explicitly.", uplevel: 1 if $VERBOSE
|
|
146
|
+
RFC2396_PARSER.extract(str, schemes, &block)
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
# Compatibility for RFC2396 parser
|
|
150
|
+
def make_regexp(schemes = nil) # :nodoc:
|
|
151
|
+
warn "Bundler::URI::RFC3986_PARSER.make_regexp is obsolete. Use Bundler::URI::RFC2396_PARSER.make_regexp explicitly.", uplevel: 1 if $VERBOSE
|
|
152
|
+
RFC2396_PARSER.make_regexp(schemes)
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
# Compatibility for RFC2396 parser
|
|
156
|
+
def escape(str, unsafe = nil) # :nodoc:
|
|
157
|
+
warn "Bundler::URI::RFC3986_PARSER.escape is obsolete. Use Bundler::URI::RFC2396_PARSER.escape explicitly.", uplevel: 1 if $VERBOSE
|
|
158
|
+
unsafe ? RFC2396_PARSER.escape(str, unsafe) : RFC2396_PARSER.escape(str)
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
# Compatibility for RFC2396 parser
|
|
162
|
+
def unescape(str, escaped = nil) # :nodoc:
|
|
163
|
+
warn "Bundler::URI::RFC3986_PARSER.unescape is obsolete. Use Bundler::URI::RFC2396_PARSER.unescape explicitly.", uplevel: 1 if $VERBOSE
|
|
164
|
+
escaped ? RFC2396_PARSER.unescape(str, escaped) : RFC2396_PARSER.unescape(str)
|
|
165
|
+
end
|
|
166
|
+
|
|
144
167
|
@@to_s = Kernel.instance_method(:to_s)
|
|
145
168
|
if @@to_s.respond_to?(:bind_call)
|
|
146
169
|
def inspect
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: false
|
|
2
2
|
# Bundler::URI is a module providing classes to handle Uniform Resource Identifiers
|
|
3
|
-
# (RFC2396[
|
|
3
|
+
# (RFC2396[https://www.rfc-editor.org/rfc/rfc2396]).
|
|
4
4
|
#
|
|
5
5
|
# == Features
|
|
6
6
|
#
|
|
@@ -47,14 +47,14 @@
|
|
|
47
47
|
# A good place to view an RFC spec is http://www.ietf.org/rfc.html.
|
|
48
48
|
#
|
|
49
49
|
# Here is a list of all related RFC's:
|
|
50
|
-
# - RFC822[
|
|
51
|
-
# - RFC1738[
|
|
52
|
-
# - RFC2255[
|
|
53
|
-
# - RFC2368[
|
|
54
|
-
# - RFC2373[
|
|
55
|
-
# - RFC2396[
|
|
56
|
-
# - RFC2732[
|
|
57
|
-
# - RFC3986[
|
|
50
|
+
# - RFC822[https://www.rfc-editor.org/rfc/rfc822]
|
|
51
|
+
# - RFC1738[https://www.rfc-editor.org/rfc/rfc1738]
|
|
52
|
+
# - RFC2255[https://www.rfc-editor.org/rfc/rfc2255]
|
|
53
|
+
# - RFC2368[https://www.rfc-editor.org/rfc/rfc2368]
|
|
54
|
+
# - RFC2373[https://www.rfc-editor.org/rfc/rfc2373]
|
|
55
|
+
# - RFC2396[https://www.rfc-editor.org/rfc/rfc2396]
|
|
56
|
+
# - RFC2732[https://www.rfc-editor.org/rfc/rfc2732]
|
|
57
|
+
# - RFC3986[https://www.rfc-editor.org/rfc/rfc3986]
|
|
58
58
|
#
|
|
59
59
|
# == Class tree
|
|
60
60
|
#
|
|
@@ -1,8 +1,23 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
# This defined? guard can be removed once RubyGems 3.4 support is dropped.
|
|
4
|
+
#
|
|
5
|
+
# Bundler specs load this code from `spec/support/vendored_net_http.rb` to avoid
|
|
6
|
+
# activating the Bundler gem too early. Without this guard, we get redefinition
|
|
7
|
+
# warnings once Bundler is actually activated and
|
|
8
|
+
# `lib/bundler/vendored_net_http.rb` is required. This is not an issue in
|
|
9
|
+
# RubyGems versions including `rubygems/vendored_net_http` since `require` takes
|
|
10
|
+
# care of avoiding the double load.
|
|
11
|
+
#
|
|
12
|
+
unless defined?(Gem::Net)
|
|
13
|
+
begin
|
|
14
|
+
require "rubygems/vendored_net_http"
|
|
15
|
+
rescue LoadError
|
|
16
|
+
begin
|
|
17
|
+
require "rubygems/net/http"
|
|
18
|
+
rescue LoadError
|
|
19
|
+
require "net/http"
|
|
20
|
+
Gem::Net = Net
|
|
21
|
+
end
|
|
22
|
+
end
|
|
8
23
|
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Use RubyGems vendored copy when available. Otherwise fallback to Bundler
|
|
4
|
+
# vendored copy. The vendored copy in Bundler can be removed once support for
|
|
5
|
+
# RubyGems 3.5.18 is dropped.
|
|
6
|
+
|
|
7
|
+
begin
|
|
8
|
+
require "rubygems/vendored_securerandom"
|
|
9
|
+
rescue LoadError
|
|
10
|
+
require_relative "vendor/securerandom/lib/securerandom"
|
|
11
|
+
Gem::SecureRandom = Bundler::SecureRandom
|
|
12
|
+
end
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
begin
|
|
4
|
-
require "rubygems/
|
|
4
|
+
require "rubygems/vendored_timeout"
|
|
5
5
|
rescue LoadError
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
begin
|
|
7
|
+
require "rubygems/timeout"
|
|
8
|
+
rescue LoadError
|
|
9
|
+
require "timeout"
|
|
10
|
+
Gem::Timeout = Timeout
|
|
11
|
+
end
|
|
8
12
|
end
|
|
@@ -1,4 +1,21 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
module Bundler; end
|
|
4
|
-
|
|
4
|
+
|
|
5
|
+
# Use RubyGems vendored copy when available. Otherwise fallback to Bundler
|
|
6
|
+
# vendored copy. The vendored copy in Bundler can be removed once support for
|
|
7
|
+
# RubyGems 3.5 is dropped.
|
|
8
|
+
|
|
9
|
+
begin
|
|
10
|
+
require "rubygems/vendor/uri/lib/uri"
|
|
11
|
+
rescue LoadError
|
|
12
|
+
require_relative "vendor/uri/lib/uri"
|
|
13
|
+
Gem::URI = Bundler::URI
|
|
14
|
+
|
|
15
|
+
module Gem
|
|
16
|
+
def URI(uri) # rubocop:disable Naming/MethodName
|
|
17
|
+
Bundler::URI(uri)
|
|
18
|
+
end
|
|
19
|
+
module_function :URI
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -41,7 +41,7 @@ module Bundler
|
|
|
41
41
|
HASH_REGEX = /
|
|
42
42
|
^
|
|
43
43
|
([ ]*) # indentations
|
|
44
|
-
(
|
|
44
|
+
([^#]+) # key excludes comment char '#'
|
|
45
45
|
(?::(?=(?:\s|$))) # : (without the lookahead the #key includes this when : is present in value)
|
|
46
46
|
[ ]?
|
|
47
47
|
(['"]?) # optional opening quote
|
|
@@ -58,7 +58,8 @@ module Bundler
|
|
|
58
58
|
str.split(/\r?\n/) do |line|
|
|
59
59
|
if match = HASH_REGEX.match(line)
|
|
60
60
|
indent, key, quote, val = match.captures
|
|
61
|
-
|
|
61
|
+
val = strip_comment(val)
|
|
62
|
+
|
|
62
63
|
depth = indent.size / 2
|
|
63
64
|
if quote.empty? && val.empty?
|
|
64
65
|
new_hash = {}
|
|
@@ -72,6 +73,8 @@ module Bundler
|
|
|
72
73
|
end
|
|
73
74
|
elsif match = ARRAY_REGEX.match(line)
|
|
74
75
|
_, val = match.captures
|
|
76
|
+
val = strip_comment(val)
|
|
77
|
+
|
|
75
78
|
last_hash[last_empty_key] = [] unless last_hash[last_empty_key].is_a?(Array)
|
|
76
79
|
|
|
77
80
|
last_hash[last_empty_key].push(val)
|
|
@@ -80,14 +83,16 @@ module Bundler
|
|
|
80
83
|
res
|
|
81
84
|
end
|
|
82
85
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
86
|
+
def strip_comment(val)
|
|
87
|
+
if val.include?("#") && !val.start_with?("#")
|
|
88
|
+
val.split("#", 2).first.strip
|
|
89
|
+
else
|
|
90
|
+
val
|
|
91
|
+
end
|
|
87
92
|
end
|
|
88
93
|
|
|
89
94
|
class << self
|
|
90
|
-
private :dump_hash
|
|
95
|
+
private :dump_hash
|
|
91
96
|
end
|
|
92
97
|
end
|
|
93
98
|
end
|
data/bundler/lib/bundler.rb
CHANGED
|
@@ -10,7 +10,6 @@ require_relative "bundler/plugin"
|
|
|
10
10
|
require_relative "bundler/rubygems_ext"
|
|
11
11
|
require_relative "bundler/rubygems_integration"
|
|
12
12
|
require_relative "bundler/version"
|
|
13
|
-
require_relative "bundler/constants"
|
|
14
13
|
require_relative "bundler/current_ruby"
|
|
15
14
|
require_relative "bundler/build_metadata"
|
|
16
15
|
|
|
@@ -40,7 +39,9 @@ module Bundler
|
|
|
40
39
|
SUDO_MUTEX = Thread::Mutex.new
|
|
41
40
|
|
|
42
41
|
autoload :Checksum, File.expand_path("bundler/checksum", __dir__)
|
|
42
|
+
autoload :CLI, File.expand_path("bundler/cli", __dir__)
|
|
43
43
|
autoload :CIDetector, File.expand_path("bundler/ci_detector", __dir__)
|
|
44
|
+
autoload :CompactIndexClient, File.expand_path("bundler/compact_index_client", __dir__)
|
|
44
45
|
autoload :Definition, File.expand_path("bundler/definition", __dir__)
|
|
45
46
|
autoload :Dependency, File.expand_path("bundler/dependency", __dir__)
|
|
46
47
|
autoload :Deprecate, File.expand_path("bundler/deprecate", __dir__)
|
|
@@ -50,6 +51,7 @@ module Bundler
|
|
|
50
51
|
autoload :Env, File.expand_path("bundler/env", __dir__)
|
|
51
52
|
autoload :Fetcher, File.expand_path("bundler/fetcher", __dir__)
|
|
52
53
|
autoload :FeatureFlag, File.expand_path("bundler/feature_flag", __dir__)
|
|
54
|
+
autoload :FREEBSD, File.expand_path("bundler/constants", __dir__)
|
|
53
55
|
autoload :GemHelper, File.expand_path("bundler/gem_helper", __dir__)
|
|
54
56
|
autoload :GemHelpers, File.expand_path("bundler/gem_helpers", __dir__)
|
|
55
57
|
autoload :GemVersionPromoter, File.expand_path("bundler/gem_version_promoter", __dir__)
|
|
@@ -60,6 +62,8 @@ module Bundler
|
|
|
60
62
|
autoload :LazySpecification, File.expand_path("bundler/lazy_specification", __dir__)
|
|
61
63
|
autoload :LockfileParser, File.expand_path("bundler/lockfile_parser", __dir__)
|
|
62
64
|
autoload :MatchRemoteMetadata, File.expand_path("bundler/match_remote_metadata", __dir__)
|
|
65
|
+
autoload :Materialization, File.expand_path("bundler/materialization", __dir__)
|
|
66
|
+
autoload :NULL, File.expand_path("bundler/constants", __dir__)
|
|
63
67
|
autoload :ProcessLock, File.expand_path("bundler/process_lock", __dir__)
|
|
64
68
|
autoload :RemoteSpecification, File.expand_path("bundler/remote_specification", __dir__)
|
|
65
69
|
autoload :Resolver, File.expand_path("bundler/resolver", __dir__)
|
|
@@ -78,6 +82,7 @@ module Bundler
|
|
|
78
82
|
autoload :UI, File.expand_path("bundler/ui", __dir__)
|
|
79
83
|
autoload :URICredentialsFilter, File.expand_path("bundler/uri_credentials_filter", __dir__)
|
|
80
84
|
autoload :URINormalizer, File.expand_path("bundler/uri_normalizer", __dir__)
|
|
85
|
+
autoload :WINDOWS, File.expand_path("bundler/constants", __dir__)
|
|
81
86
|
autoload :SafeMarshal, File.expand_path("bundler/safe_marshal", __dir__)
|
|
82
87
|
|
|
83
88
|
class << self
|
|
@@ -165,6 +170,29 @@ module Bundler
|
|
|
165
170
|
end
|
|
166
171
|
end
|
|
167
172
|
|
|
173
|
+
def auto_switch
|
|
174
|
+
self_manager.restart_with_locked_bundler_if_needed
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
# Automatically install dependencies if Bundler.settings[:auto_install] exists.
|
|
178
|
+
# This is set through config cmd `bundle config set --global auto_install 1`.
|
|
179
|
+
#
|
|
180
|
+
# Note that this method `nil`s out the global Definition object, so it
|
|
181
|
+
# should be called first, before you instantiate anything like an
|
|
182
|
+
# `Installer` that'll keep a reference to the old one instead.
|
|
183
|
+
def auto_install
|
|
184
|
+
return unless settings[:auto_install]
|
|
185
|
+
|
|
186
|
+
begin
|
|
187
|
+
definition.specs
|
|
188
|
+
rescue GemNotFound, GitError
|
|
189
|
+
ui.info "Automatically installing missing gems."
|
|
190
|
+
reset!
|
|
191
|
+
CLI::Install.new({}).run
|
|
192
|
+
reset!
|
|
193
|
+
end
|
|
194
|
+
end
|
|
195
|
+
|
|
168
196
|
# Setups Bundler environment (see Bundler.setup) if it is not already set,
|
|
169
197
|
# and loads all gems from groups specified. Unlike ::setup, can be called
|
|
170
198
|
# multiple times with different groups (if they were allowed by setup).
|
|
@@ -200,12 +228,13 @@ module Bundler
|
|
|
200
228
|
#
|
|
201
229
|
# @param unlock [Hash, Boolean, nil] Gems that have been requested
|
|
202
230
|
# to be updated or true if all gems should be updated
|
|
231
|
+
# @param lockfile [Pathname] Path to Gemfile.lock
|
|
203
232
|
# @return [Bundler::Definition]
|
|
204
|
-
def definition(unlock = nil)
|
|
233
|
+
def definition(unlock = nil, lockfile = default_lockfile)
|
|
205
234
|
@definition = nil if unlock
|
|
206
235
|
@definition ||= begin
|
|
207
236
|
configure
|
|
208
|
-
Definition.build(default_gemfile,
|
|
237
|
+
Definition.build(default_gemfile, lockfile, unlock)
|
|
209
238
|
end
|
|
210
239
|
end
|
|
211
240
|
|
|
@@ -226,12 +255,6 @@ module Bundler
|
|
|
226
255
|
end
|
|
227
256
|
end
|
|
228
257
|
|
|
229
|
-
def most_specific_locked_platform?(platform)
|
|
230
|
-
return false unless defined?(@definition) && @definition
|
|
231
|
-
|
|
232
|
-
definition.most_specific_locked_platform == platform
|
|
233
|
-
end
|
|
234
|
-
|
|
235
258
|
def ruby_scope
|
|
236
259
|
"#{Bundler.rubygems.ruby_engine}/#{RbConfig::CONFIG["ruby_version"]}"
|
|
237
260
|
end
|
|
@@ -335,7 +358,7 @@ module Bundler
|
|
|
335
358
|
def settings
|
|
336
359
|
@settings ||= Settings.new(app_config_path)
|
|
337
360
|
rescue GemfileNotFound
|
|
338
|
-
@settings = Settings.new
|
|
361
|
+
@settings = Settings.new
|
|
339
362
|
end
|
|
340
363
|
|
|
341
364
|
# @return [Hash] Environment present before Bundler was activated
|
|
@@ -357,28 +380,12 @@ module Bundler
|
|
|
357
380
|
|
|
358
381
|
# @return [Hash] Environment with all bundler-related variables removed
|
|
359
382
|
def unbundled_env
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
if env.key?("BUNDLER_ORIG_MANPATH")
|
|
363
|
-
env["MANPATH"] = env["BUNDLER_ORIG_MANPATH"]
|
|
364
|
-
end
|
|
365
|
-
|
|
366
|
-
env.delete_if {|k, _| k[0, 7] == "BUNDLE_" }
|
|
367
|
-
|
|
368
|
-
if env.key?("RUBYOPT")
|
|
369
|
-
rubyopt = env["RUBYOPT"].split(" ")
|
|
370
|
-
rubyopt.delete("-r#{File.expand_path("bundler/setup", __dir__)}")
|
|
371
|
-
rubyopt.delete("-rbundler/setup")
|
|
372
|
-
env["RUBYOPT"] = rubyopt.join(" ")
|
|
373
|
-
end
|
|
374
|
-
|
|
375
|
-
if env.key?("RUBYLIB")
|
|
376
|
-
rubylib = env["RUBYLIB"].split(File::PATH_SEPARATOR)
|
|
377
|
-
rubylib.delete(__dir__)
|
|
378
|
-
env["RUBYLIB"] = rubylib.join(File::PATH_SEPARATOR)
|
|
379
|
-
end
|
|
383
|
+
unbundle_env(original_env)
|
|
384
|
+
end
|
|
380
385
|
|
|
381
|
-
|
|
386
|
+
# Remove all bundler-related variables from ENV
|
|
387
|
+
def unbundle_env!
|
|
388
|
+
ENV.replace(unbundle_env(ENV))
|
|
382
389
|
end
|
|
383
390
|
|
|
384
391
|
# Run block with environment present before Bundler was activated
|
|
@@ -482,24 +489,33 @@ module Bundler
|
|
|
482
489
|
end
|
|
483
490
|
|
|
484
491
|
def mkdir_p(path)
|
|
485
|
-
SharedHelpers.filesystem_access(path, :
|
|
492
|
+
SharedHelpers.filesystem_access(path, :create) do |p|
|
|
486
493
|
FileUtils.mkdir_p(p)
|
|
487
494
|
end
|
|
488
495
|
end
|
|
489
496
|
|
|
490
497
|
def which(executable)
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
498
|
+
executable_path = find_executable(executable)
|
|
499
|
+
return executable_path if executable_path
|
|
500
|
+
|
|
501
|
+
if (paths = ENV["PATH"])
|
|
494
502
|
quote = '"'
|
|
495
503
|
paths.split(File::PATH_SEPARATOR).find do |path|
|
|
496
504
|
path = path[1..-2] if path.start_with?(quote) && path.end_with?(quote)
|
|
497
|
-
executable_path = File.expand_path(executable, path)
|
|
498
|
-
return executable_path if
|
|
505
|
+
executable_path = find_executable(File.expand_path(executable, path))
|
|
506
|
+
return executable_path if executable_path
|
|
499
507
|
end
|
|
500
508
|
end
|
|
501
509
|
end
|
|
502
510
|
|
|
511
|
+
def find_executable(path)
|
|
512
|
+
extensions = RbConfig::CONFIG["EXECUTABLE_EXTS"]&.split
|
|
513
|
+
extensions = [RbConfig::CONFIG["EXEEXT"]] unless extensions&.any?
|
|
514
|
+
candidates = extensions.map {|ext| "#{path}#{ext}" }
|
|
515
|
+
|
|
516
|
+
candidates.find {|candidate| File.file?(candidate) && File.executable?(candidate) }
|
|
517
|
+
end
|
|
518
|
+
|
|
503
519
|
def read_file(file)
|
|
504
520
|
SharedHelpers.filesystem_access(file, :read) do
|
|
505
521
|
File.open(file, "r:UTF-8", &:read)
|
|
@@ -531,15 +547,7 @@ module Bundler
|
|
|
531
547
|
def load_gemspec_uncached(file, validate = false)
|
|
532
548
|
path = Pathname.new(file)
|
|
533
549
|
contents = read_file(file)
|
|
534
|
-
spec =
|
|
535
|
-
eval_yaml_gemspec(path, contents)
|
|
536
|
-
else
|
|
537
|
-
# Eval the gemspec from its parent directory, because some gemspecs
|
|
538
|
-
# depend on "./" relative paths.
|
|
539
|
-
SharedHelpers.chdir(path.dirname.to_s) do
|
|
540
|
-
eval_gemspec(path, contents)
|
|
541
|
-
end
|
|
542
|
-
end
|
|
550
|
+
spec = eval_gemspec(path, contents)
|
|
543
551
|
return unless spec
|
|
544
552
|
spec.loaded_from = path.expand_path.to_s
|
|
545
553
|
Bundler.rubygems.validate(spec) if validate
|
|
@@ -552,7 +560,7 @@ module Bundler
|
|
|
552
560
|
|
|
553
561
|
def git_present?
|
|
554
562
|
return @git_present if defined?(@git_present)
|
|
555
|
-
@git_present = Bundler.which("git
|
|
563
|
+
@git_present = Bundler.which("git")
|
|
556
564
|
end
|
|
557
565
|
|
|
558
566
|
def feature_flag
|
|
@@ -607,6 +615,30 @@ module Bundler
|
|
|
607
615
|
|
|
608
616
|
private
|
|
609
617
|
|
|
618
|
+
def unbundle_env(env)
|
|
619
|
+
if env.key?("BUNDLER_ORIG_MANPATH")
|
|
620
|
+
env["MANPATH"] = env["BUNDLER_ORIG_MANPATH"]
|
|
621
|
+
end
|
|
622
|
+
|
|
623
|
+
env.delete_if {|k, _| k[0, 7] == "BUNDLE_" }
|
|
624
|
+
env.delete("BUNDLER_SETUP")
|
|
625
|
+
|
|
626
|
+
if env.key?("RUBYOPT")
|
|
627
|
+
rubyopt = env["RUBYOPT"].split(" ")
|
|
628
|
+
rubyopt.delete("-r#{File.expand_path("bundler/setup", __dir__)}")
|
|
629
|
+
rubyopt.delete("-rbundler/setup")
|
|
630
|
+
env["RUBYOPT"] = rubyopt.join(" ")
|
|
631
|
+
end
|
|
632
|
+
|
|
633
|
+
if env.key?("RUBYLIB")
|
|
634
|
+
rubylib = env["RUBYLIB"].split(File::PATH_SEPARATOR)
|
|
635
|
+
rubylib.delete(__dir__)
|
|
636
|
+
env["RUBYLIB"] = rubylib.join(File::PATH_SEPARATOR)
|
|
637
|
+
end
|
|
638
|
+
|
|
639
|
+
env
|
|
640
|
+
end
|
|
641
|
+
|
|
610
642
|
def load_marshal(data, marshal_proc: nil)
|
|
611
643
|
Marshal.load(data, marshal_proc)
|
|
612
644
|
rescue TypeError => e
|
|
@@ -617,16 +649,22 @@ module Bundler
|
|
|
617
649
|
Kernel.require "psych"
|
|
618
650
|
|
|
619
651
|
Gem::Specification.from_yaml(contents)
|
|
620
|
-
rescue ::Psych::SyntaxError, ArgumentError, Gem::EndOfYAMLException, Gem::Exception
|
|
621
|
-
eval_gemspec(path, contents)
|
|
622
652
|
end
|
|
623
653
|
|
|
624
654
|
def eval_gemspec(path, contents)
|
|
625
|
-
|
|
655
|
+
if contents.start_with?("---") # YAML header
|
|
656
|
+
eval_yaml_gemspec(path, contents)
|
|
657
|
+
else
|
|
658
|
+
# Eval the gemspec from its parent directory, because some gemspecs
|
|
659
|
+
# depend on "./" relative paths.
|
|
660
|
+
SharedHelpers.chdir(path.dirname.to_s) do
|
|
661
|
+
eval(contents, TOPLEVEL_BINDING.dup, path.expand_path.to_s)
|
|
662
|
+
end
|
|
663
|
+
end
|
|
626
664
|
rescue ScriptError, StandardError => e
|
|
627
665
|
msg = "There was an error while loading `#{path.basename}`: #{e.message}"
|
|
628
666
|
|
|
629
|
-
raise GemspecError, Dsl::DSLError.new(msg, path, e.backtrace, contents)
|
|
667
|
+
raise GemspecError, Dsl::DSLError.new(msg, path.to_s, e.backtrace, contents)
|
|
630
668
|
end
|
|
631
669
|
|
|
632
670
|
def configure_gem_path
|
|
@@ -11,11 +11,11 @@ contributors to follow to reduce the time it takes to get changes merged in.
|
|
|
11
11
|
2. Ensure that your code blends well with ours:
|
|
12
12
|
* No trailing whitespace
|
|
13
13
|
* Match indentation (two spaces)
|
|
14
|
-
* Match coding style (run `rake rubocop`)
|
|
14
|
+
* Match coding style (run `bin/rake rubocop`)
|
|
15
15
|
|
|
16
16
|
3. If any new files are added or existing files removed in a commit or PR,
|
|
17
17
|
please update the `Manifest.txt` accordingly. This can be done by running
|
|
18
|
-
`rake update_manifest`
|
|
18
|
+
`bin/rake update_manifest`
|
|
19
19
|
|
|
20
20
|
4. Don't modify the history file or version number.
|
|
21
21
|
|
|
@@ -31,7 +31,7 @@ here: https://guides.rubygems.org/contributing/
|
|
|
31
31
|
|
|
32
32
|
### Installing dependencies
|
|
33
33
|
|
|
34
|
-
rake setup
|
|
34
|
+
bin/rake setup
|
|
35
35
|
|
|
36
36
|
> **NOTE**: If the above fails with permission related errors, you're most
|
|
37
37
|
> likely using a global Ruby installation (like the one packaged by your OS),
|
|
@@ -58,7 +58,7 @@ To run commands like `bundle install` from the repo:
|
|
|
58
58
|
|
|
59
59
|
To run the entire test suite you can use:
|
|
60
60
|
|
|
61
|
-
rake test
|
|
61
|
+
bin/rake test
|
|
62
62
|
|
|
63
63
|
To run an individual test file located for example in `test/rubygems/test_deprecate.rb` you can use:
|
|
64
64
|
|
|
@@ -70,13 +70,7 @@ And to run an individual test method named `test_default` within a test file, yo
|
|
|
70
70
|
|
|
71
71
|
### Running bundler tests
|
|
72
72
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
To setup bundler tests:
|
|
76
|
-
|
|
77
|
-
rake spec:parallel_deps
|
|
78
|
-
|
|
79
|
-
To run the entire bundler test suite in parallel (it takes a while):
|
|
73
|
+
To run the entire bundler test suite in parallel (it takes a while), run the following from the `bundler/` subfolder:
|
|
80
74
|
|
|
81
75
|
bin/parallel_rspec
|
|
82
76
|
|
|
@@ -84,7 +78,7 @@ There are some realworld higher level specs run in CI, but not run by `bin/paral
|
|
|
84
78
|
|
|
85
79
|
bin/rake spec:realworld
|
|
86
80
|
|
|
87
|
-
To run an individual test file location for example in `spec/install/gems/standalone_spec.rb` you can use:
|
|
81
|
+
To run an individual test file location for example in `spec/install/gems/standalone_spec.rb` you can use the following from the `bundler/` subfolder:
|
|
88
82
|
|
|
89
83
|
bin/rspec spec/install/gems/standalone_spec.rb
|
|
90
84
|
|
|
@@ -92,11 +86,13 @@ To run an individual test file location for example in `spec/install/gems/standa
|
|
|
92
86
|
|
|
93
87
|
You can check compliance with our code style with
|
|
94
88
|
|
|
95
|
-
rake rubocop
|
|
89
|
+
bin/rake rubocop
|
|
96
90
|
|
|
97
91
|
Optionally you can configure git hooks with to check this before every commit with
|
|
98
92
|
|
|
99
|
-
rake git_hooks
|
|
93
|
+
bin/rake git_hooks
|
|
94
|
+
|
|
95
|
+
For more information, check [SETUP.md](../bundler/development/SETUP.md) and [DEBUGGING.md](../bundler/development/DEBUGGING.md).
|
|
100
96
|
|
|
101
97
|
## Issues
|
|
102
98
|
|