rubygems-update 3.3.18 → 3.3.21
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +52 -0
- data/Manifest.txt +4 -0
- data/bin/gem +2 -2
- data/bin/update_rubygems +4 -4
- data/bundler/CHANGELOG.md +78 -0
- data/bundler/UPGRADING.md +11 -4
- data/bundler/lib/bundler/build_metadata.rb +2 -2
- data/bundler/lib/bundler/cli/common.rb +1 -0
- data/bundler/lib/bundler/cli/install.rb +5 -2
- data/bundler/lib/bundler/cli/outdated.rb +12 -3
- data/bundler/lib/bundler/cli/platform.rb +1 -1
- data/bundler/lib/bundler/cli.rb +5 -3
- data/bundler/lib/bundler/definition.rb +103 -29
- data/bundler/lib/bundler/dsl.rb +2 -2
- data/bundler/lib/bundler/endpoint_specification.rb +1 -12
- data/bundler/lib/bundler/fetcher.rb +6 -6
- data/bundler/lib/bundler/gem_helpers.rb +7 -1
- data/bundler/lib/bundler/gem_version_promoter.rb +4 -0
- data/bundler/lib/bundler/index.rb +10 -12
- data/bundler/lib/bundler/inline.rb +1 -1
- data/bundler/lib/bundler/installer/standalone.rb +1 -1
- data/bundler/lib/bundler/installer.rb +14 -12
- data/bundler/lib/bundler/lazy_specification.rb +30 -23
- data/bundler/lib/bundler/man/bundle-add.1 +1 -1
- data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
- data/bundler/lib/bundler/man/bundle-cache.1 +7 -1
- data/bundler/lib/bundler/man/bundle-cache.1.ronn +7 -0
- data/bundler/lib/bundler/man/bundle-check.1 +1 -1
- data/bundler/lib/bundler/man/bundle-clean.1 +1 -1
- data/bundler/lib/bundler/man/bundle-config.1 +25 -6
- data/bundler/lib/bundler/man/bundle-config.1.ronn +16 -6
- data/bundler/lib/bundler/man/bundle-doctor.1 +1 -1
- data/bundler/lib/bundler/man/bundle-exec.1 +2 -2
- data/bundler/lib/bundler/man/bundle-exec.1.ronn +1 -1
- data/bundler/lib/bundler/man/bundle-gem.1 +1 -1
- data/bundler/lib/bundler/man/bundle-info.1 +1 -1
- data/bundler/lib/bundler/man/bundle-init.1 +1 -1
- data/bundler/lib/bundler/man/bundle-inject.1 +5 -2
- data/bundler/lib/bundler/man/bundle-inject.1.ronn +3 -1
- data/bundler/lib/bundler/man/bundle-install.1 +5 -1
- data/bundler/lib/bundler/man/bundle-install.1.ronn +6 -0
- data/bundler/lib/bundler/man/bundle-list.1 +1 -1
- data/bundler/lib/bundler/man/bundle-lock.1 +1 -1
- data/bundler/lib/bundler/man/bundle-open.1 +1 -1
- data/bundler/lib/bundler/man/bundle-outdated.1 +1 -1
- data/bundler/lib/bundler/man/bundle-platform.1 +16 -6
- data/bundler/lib/bundler/man/bundle-platform.1.ronn +14 -7
- data/bundler/lib/bundler/man/bundle-plugin.1 +81 -0
- data/bundler/lib/bundler/man/bundle-plugin.1.ronn +59 -0
- data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
- data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
- data/bundler/lib/bundler/man/bundle-show.1 +1 -1
- data/bundler/lib/bundler/man/bundle-update.1 +1 -1
- data/bundler/lib/bundler/man/bundle-viz.1 +4 -1
- data/bundler/lib/bundler/man/bundle-viz.1.ronn +2 -0
- data/bundler/lib/bundler/man/bundle.1 +10 -9
- data/bundler/lib/bundler/man/bundle.1.ronn +8 -6
- data/bundler/lib/bundler/man/gemfile.5 +16 -10
- data/bundler/lib/bundler/man/gemfile.5.ronn +23 -16
- data/bundler/lib/bundler/man/index.txt +1 -0
- data/bundler/lib/bundler/match_metadata.rb +13 -0
- data/bundler/lib/bundler/match_remote_metadata.rb +26 -0
- data/bundler/lib/bundler/plugin.rb +2 -0
- data/bundler/lib/bundler/remote_specification.rb +6 -11
- data/bundler/lib/bundler/resolver/spec_group.rb +11 -8
- data/bundler/lib/bundler/resolver.rb +40 -18
- data/bundler/lib/bundler/ruby_dsl.rb +1 -1
- data/bundler/lib/bundler/ruby_version.rb +5 -5
- data/bundler/lib/bundler/rubygems_ext.rb +41 -0
- data/bundler/lib/bundler/rubygems_gem_installer.rb +19 -12
- data/bundler/lib/bundler/settings.rb +1 -0
- data/bundler/lib/bundler/source/metadata.rb +1 -1
- data/bundler/lib/bundler/source_list.rb +4 -0
- data/bundler/lib/bundler/spec_set.rb +38 -33
- data/bundler/lib/bundler/version.rb +1 -1
- data/bundler/lib/bundler.rb +3 -3
- data/lib/rubygems/available_set.rb +3 -3
- data/lib/rubygems/basic_specification.rb +4 -4
- data/lib/rubygems/command.rb +25 -25
- data/lib/rubygems/command_manager.rb +9 -9
- data/lib/rubygems/commands/build_command.rb +8 -8
- data/lib/rubygems/commands/cert_command.rb +33 -33
- data/lib/rubygems/commands/check_command.rb +20 -20
- data/lib/rubygems/commands/cleanup_command.rb +17 -17
- data/lib/rubygems/commands/contents_command.rb +13 -13
- data/lib/rubygems/commands/dependency_command.rb +16 -16
- data/lib/rubygems/commands/environment_command.rb +5 -5
- data/lib/rubygems/commands/fetch_command.rb +8 -8
- data/lib/rubygems/commands/generate_index_command.rb +17 -17
- data/lib/rubygems/commands/help_command.rb +3 -3
- data/lib/rubygems/commands/info_command.rb +3 -3
- data/lib/rubygems/commands/install_command.rb +20 -20
- data/lib/rubygems/commands/list_command.rb +3 -3
- data/lib/rubygems/commands/lock_command.rb +4 -4
- data/lib/rubygems/commands/mirror_command.rb +3 -3
- data/lib/rubygems/commands/open_command.rb +9 -9
- data/lib/rubygems/commands/outdated_command.rb +5 -5
- data/lib/rubygems/commands/owner_command.rb +11 -11
- data/lib/rubygems/commands/pristine_command.rb +36 -36
- data/lib/rubygems/commands/push_command.rb +8 -8
- data/lib/rubygems/commands/query_command.rb +8 -8
- data/lib/rubygems/commands/rdoc_command.rb +17 -17
- data/lib/rubygems/commands/search_command.rb +3 -3
- data/lib/rubygems/commands/server_command.rb +3 -3
- data/lib/rubygems/commands/setup_command.rb +96 -106
- data/lib/rubygems/commands/signin_command.rb +9 -9
- data/lib/rubygems/commands/signout_command.rb +7 -7
- data/lib/rubygems/commands/sources_command.rb +21 -21
- data/lib/rubygems/commands/specification_command.rb +13 -13
- data/lib/rubygems/commands/stale_command.rb +2 -2
- data/lib/rubygems/commands/uninstall_command.rb +40 -40
- data/lib/rubygems/commands/unpack_command.rb +12 -12
- data/lib/rubygems/commands/update_command.rb +40 -56
- data/lib/rubygems/commands/which_command.rb +7 -7
- data/lib/rubygems/commands/yank_command.rb +11 -11
- data/lib/rubygems/config_file.rb +21 -21
- data/lib/rubygems/core_ext/kernel_gem.rb +1 -1
- data/lib/rubygems/core_ext/kernel_require.rb +1 -1
- 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 +16 -16
- data/lib/rubygems/dependency.rb +9 -9
- data/lib/rubygems/dependency_installer.rb +13 -13
- data/lib/rubygems/dependency_list.rb +6 -6
- data/lib/rubygems/doctor.rb +18 -18
- data/lib/rubygems/errors.rb +2 -2
- data/lib/rubygems/exceptions.rb +5 -5
- data/lib/rubygems/ext/build_error.rb +1 -1
- data/lib/rubygems/ext/builder.rb +16 -16
- data/lib/rubygems/ext/cargo_builder.rb +7 -7
- data/lib/rubygems/ext/cmake_builder.rb +2 -2
- data/lib/rubygems/ext/configure_builder.rb +1 -1
- data/lib/rubygems/ext/ext_conf_builder.rb +8 -8
- data/lib/rubygems/ext/rake_builder.rb +3 -3
- data/lib/rubygems/ext.rb +7 -7
- data/lib/rubygems/gem_runner.rb +5 -5
- data/lib/rubygems/gemcutter_utilities.rb +31 -28
- data/lib/rubygems/indexer.rb +27 -27
- data/lib/rubygems/install_default_message.rb +2 -2
- data/lib/rubygems/install_message.rb +2 -2
- data/lib/rubygems/install_update_options.rb +55 -55
- data/lib/rubygems/installer.rb +32 -40
- data/lib/rubygems/installer_uninstaller_utils.rb +2 -2
- data/lib/rubygems/local_remote_options.rb +18 -20
- data/lib/rubygems/mock_gem_ui.rb +2 -2
- data/lib/rubygems/name_tuple.rb +4 -4
- data/lib/rubygems/optparse.rb +1 -1
- data/lib/rubygems/package/file_source.rb +2 -2
- data/lib/rubygems/package/old.rb +8 -8
- data/lib/rubygems/package/tar_header.rb +50 -50
- data/lib/rubygems/package/tar_reader/entry.rb +2 -2
- data/lib/rubygems/package/tar_reader.rb +1 -1
- data/lib/rubygems/package/tar_writer.rb +7 -7
- data/lib/rubygems/package.rb +54 -43
- data/lib/rubygems/package_task.rb +4 -4
- data/lib/rubygems/platform.rb +66 -55
- data/lib/rubygems/psych_tree.rb +1 -1
- data/lib/rubygems/query_utils.rb +33 -33
- data/lib/rubygems/rdoc.rb +2 -2
- data/lib/rubygems/remote_fetcher.rb +22 -22
- data/lib/rubygems/request/connection_pools.rb +4 -4
- data/lib/rubygems/request/http_pool.rb +1 -1
- data/lib/rubygems/request.rb +22 -22
- data/lib/rubygems/request_set/gem_dependency_api.rb +18 -18
- data/lib/rubygems/request_set/lockfile/parser.rb +26 -26
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +4 -4
- data/lib/rubygems/request_set/lockfile.rb +5 -5
- data/lib/rubygems/request_set.rb +17 -17
- data/lib/rubygems/requirement.rb +6 -6
- data/lib/rubygems/resolver/activation_request.rb +3 -3
- data/lib/rubygems/resolver/api_set.rb +4 -4
- data/lib/rubygems/resolver/api_specification.rb +6 -6
- data/lib/rubygems/resolver/best_set.rb +5 -5
- data/lib/rubygems/resolver/conflict.rb +10 -10
- data/lib/rubygems/resolver/dependency_request.rb +2 -2
- data/lib/rubygems/resolver/git_set.rb +2 -2
- data/lib/rubygems/resolver/git_specification.rb +6 -6
- data/lib/rubygems/resolver/index_set.rb +3 -3
- data/lib/rubygems/resolver/index_specification.rb +6 -5
- data/lib/rubygems/resolver/installed_specification.rb +4 -4
- data/lib/rubygems/resolver/installer_set.rb +11 -16
- data/lib/rubygems/resolver/local_specification.rb +2 -2
- data/lib/rubygems/resolver/lock_set.rb +4 -4
- data/lib/rubygems/resolver/lock_specification.rb +4 -4
- data/lib/rubygems/resolver/molinillo.rb +1 -1
- data/lib/rubygems/resolver/specification.rb +1 -1
- data/lib/rubygems/resolver/vendor_set.rb +1 -1
- data/lib/rubygems/resolver/vendor_specification.rb +3 -3
- data/lib/rubygems/resolver.rb +39 -39
- data/lib/rubygems/s3_uri_signer.rb +6 -6
- data/lib/rubygems/safe_yaml.rb +2 -2
- data/lib/rubygems/security/policies.rb +11 -11
- data/lib/rubygems/security/policy.rb +18 -18
- data/lib/rubygems/security/signer.rb +5 -5
- data/lib/rubygems/security/trust_dir.rb +3 -3
- data/lib/rubygems/security.rb +28 -28
- data/lib/rubygems/security_option.rb +5 -5
- data/lib/rubygems/source/git.rb +21 -21
- data/lib/rubygems/source/installed.rb +1 -1
- data/lib/rubygems/source/local.rb +2 -2
- data/lib/rubygems/source/specific_file.rb +1 -1
- data/lib/rubygems/source.rb +16 -16
- data/lib/rubygems/spec_fetcher.rb +9 -9
- data/lib/rubygems/specification.rb +63 -62
- data/lib/rubygems/specification_policy.rb +15 -15
- data/lib/rubygems/stub_specification.rb +5 -5
- data/lib/rubygems/tsort.rb +1 -1
- data/lib/rubygems/uninstaller.rb +18 -18
- data/lib/rubygems/uri.rb +4 -4
- data/lib/rubygems/uri_formatter.rb +1 -1
- data/lib/rubygems/user_interaction.rb +33 -19
- data/lib/rubygems/util/licenses.rb +3 -3
- data/lib/rubygems/util.rb +10 -10
- data/lib/rubygems/validator.rb +5 -5
- data/lib/rubygems/version.rb +15 -9
- data/lib/rubygems/version_option.rb +3 -3
- data/lib/rubygems.rb +62 -61
- data/rubygems-update.gemspec +2 -2
- data/setup.rb +9 -9
- data/test/rubygems/helper.rb +132 -132
- data/test/rubygems/installer_test_case.rb +13 -13
- data/test/rubygems/package/tar_test_case.rb +2 -2
- data/test/rubygems/plugin/exception/rubygems_plugin.rb +1 -1
- data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +1 -1
- data/test/rubygems/rubygems_plugin.rb +2 -2
- data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +4 -4
- data/test/rubygems/test_bundled_ca.rb +10 -10
- data/test/rubygems/test_config.rb +3 -3
- data/test/rubygems/test_deprecate.rb +3 -3
- data/test/rubygems/test_exit.rb +2 -2
- data/test/rubygems/test_gem.rb +342 -342
- data/test/rubygems/test_gem_available_set.rb +21 -21
- data/test/rubygems/test_gem_bundler_version_finder.rb +1 -1
- data/test/rubygems/test_gem_command.rb +44 -44
- data/test/rubygems/test_gem_command_manager.rb +29 -29
- data/test/rubygems/test_gem_commands_build_command.rb +63 -63
- data/test/rubygems/test_gem_commands_cert_command.rb +97 -99
- data/test/rubygems/test_gem_commands_check_command.rb +4 -4
- data/test/rubygems/test_gem_commands_cleanup_command.rb +40 -40
- data/test/rubygems/test_gem_commands_contents_command.rb +27 -27
- data/test/rubygems/test_gem_commands_dependency_command.rb +36 -36
- data/test/rubygems/test_gem_commands_environment_command.rb +16 -16
- data/test/rubygems/test_gem_commands_fetch_command.rb +37 -37
- data/test/rubygems/test_gem_commands_generate_index_command.rb +7 -7
- data/test/rubygems/test_gem_commands_help_command.rb +13 -13
- data/test/rubygems/test_gem_commands_info_command.rb +2 -2
- data/test/rubygems/test_gem_commands_install_command.rb +131 -131
- data/test/rubygems/test_gem_commands_list_command.rb +4 -4
- data/test/rubygems/test_gem_commands_lock_command.rb +10 -10
- data/test/rubygems/test_gem_commands_mirror.rb +2 -2
- data/test/rubygems/test_gem_commands_open_command.rb +4 -4
- data/test/rubygems/test_gem_commands_outdated_command.rb +9 -9
- data/test/rubygems/test_gem_commands_owner_command.rb +41 -41
- data/test/rubygems/test_gem_commands_pristine_command.rb +92 -92
- data/test/rubygems/test_gem_commands_push_command.rb +54 -54
- data/test/rubygems/test_gem_commands_query_command.rb +73 -73
- data/test/rubygems/test_gem_commands_search_command.rb +2 -2
- data/test/rubygems/test_gem_commands_server_command.rb +2 -2
- data/test/rubygems/test_gem_commands_setup_command.rb +119 -85
- data/test/rubygems/test_gem_commands_signin_command.rb +45 -31
- data/test/rubygems/test_gem_commands_signout_command.rb +3 -3
- data/test/rubygems/test_gem_commands_sources_command.rb +28 -29
- data/test/rubygems/test_gem_commands_specification_command.rb +32 -32
- data/test/rubygems/test_gem_commands_stale_command.rb +4 -4
- data/test/rubygems/test_gem_commands_uninstall_command.rb +75 -75
- data/test/rubygems/test_gem_commands_unpack_command.rb +31 -31
- data/test/rubygems/test_gem_commands_update_command.rb +89 -89
- data/test/rubygems/test_gem_commands_which_command.rb +6 -6
- data/test/rubygems/test_gem_commands_yank_command.rb +40 -40
- data/test/rubygems/test_gem_config_file.rb +93 -81
- data/test/rubygems/test_gem_dependency.rb +73 -73
- data/test/rubygems/test_gem_dependency_installer.rb +165 -165
- data/test/rubygems/test_gem_dependency_list.rb +47 -47
- data/test/rubygems/test_gem_dependency_resolution_error.rb +4 -4
- data/test/rubygems/test_gem_doctor.rb +26 -26
- data/test/rubygems/test_gem_ext_builder.rb +59 -59
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.lock +6 -6
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.toml +1 -1
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/build.rb +8 -8
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +1 -1
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +6 -6
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +1 -1
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/build.rb +8 -8
- data/test/rubygems/test_gem_ext_cargo_builder.rb +26 -26
- data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +3 -3
- data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +23 -23
- data/test/rubygems/test_gem_ext_cmake_builder.rb +15 -15
- data/test/rubygems/test_gem_ext_configure_builder.rb +13 -13
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +51 -52
- data/test/rubygems/test_gem_ext_rake_builder.rb +15 -15
- data/test/rubygems/test_gem_gem_runner.rb +7 -7
- data/test/rubygems/test_gem_gemcutter_utilities.rb +66 -66
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +4 -4
- data/test/rubygems/test_gem_indexer.rb +48 -48
- data/test/rubygems/test_gem_install_update_options.rb +16 -16
- data/test/rubygems/test_gem_installer.rb +303 -300
- data/test/rubygems/test_gem_local_remote_options.rb +10 -10
- data/test/rubygems/test_gem_name_tuple.rb +4 -4
- data/test/rubygems/test_gem_package.rb +228 -206
- data/test/rubygems/test_gem_package_old.rb +13 -13
- data/test/rubygems/test_gem_package_tar_header.rb +42 -42
- data/test/rubygems/test_gem_package_tar_reader.rb +8 -8
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +10 -10
- data/test/rubygems/test_gem_package_tar_writer.rb +76 -76
- data/test/rubygems/test_gem_package_task.rb +18 -18
- data/test/rubygems/test_gem_path_support.rb +14 -14
- data/test/rubygems/test_gem_platform.rb +266 -227
- data/test/rubygems/test_gem_rdoc.rb +14 -14
- data/test/rubygems/test_gem_remote_fetcher.rb +149 -149
- data/test/rubygems/test_gem_request.rb +55 -55
- data/test/rubygems/test_gem_request_connection_pools.rb +29 -29
- data/test/rubygems/test_gem_request_set.rb +99 -99
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +204 -206
- data/test/rubygems/test_gem_request_set_lockfile.rb +86 -86
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +56 -56
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +62 -62
- data/test/rubygems/test_gem_requirement.rb +47 -41
- data/test/rubygems/test_gem_resolver.rb +133 -99
- data/test/rubygems/test_gem_resolver_activation_request.rb +6 -6
- data/test/rubygems/test_gem_resolver_api_set.rb +33 -33
- data/test/rubygems/test_gem_resolver_api_specification.rb +47 -47
- data/test/rubygems/test_gem_resolver_best_set.rb +22 -22
- data/test/rubygems/test_gem_resolver_composed_set.rb +1 -1
- data/test/rubygems/test_gem_resolver_conflict.rb +12 -12
- data/test/rubygems/test_gem_resolver_dependency_request.rb +15 -15
- data/test/rubygems/test_gem_resolver_git_set.rb +21 -21
- data/test/rubygems/test_gem_resolver_git_specification.rb +21 -21
- data/test/rubygems/test_gem_resolver_index_set.rb +12 -12
- data/test/rubygems/test_gem_resolver_index_specification.rb +16 -16
- data/test/rubygems/test_gem_resolver_installed_specification.rb +5 -5
- data/test/rubygems/test_gem_resolver_installer_set.rb +78 -34
- data/test/rubygems/test_gem_resolver_local_specification.rb +7 -7
- data/test/rubygems/test_gem_resolver_lock_set.rb +12 -12
- data/test/rubygems/test_gem_resolver_lock_specification.rb +17 -17
- data/test/rubygems/test_gem_resolver_requirement_list.rb +1 -1
- data/test/rubygems/test_gem_resolver_specification.rb +8 -8
- data/test/rubygems/test_gem_resolver_vendor_set.rb +6 -6
- data/test/rubygems/test_gem_resolver_vendor_specification.rb +10 -10
- data/test/rubygems/test_gem_security.rb +67 -67
- data/test/rubygems/test_gem_security_policy.rb +62 -62
- data/test/rubygems/test_gem_security_signer.rb +28 -28
- data/test/rubygems/test_gem_security_trust_dir.rb +4 -4
- data/test/rubygems/test_gem_silent_ui.rb +38 -32
- data/test/rubygems/test_gem_source.rb +44 -44
- data/test/rubygems/test_gem_source_fetch_problem.rb +9 -9
- data/test/rubygems/test_gem_source_git.rb +59 -59
- data/test/rubygems/test_gem_source_installed.rb +16 -16
- data/test/rubygems/test_gem_source_list.rb +5 -5
- data/test/rubygems/test_gem_source_local.rb +14 -14
- data/test/rubygems/test_gem_source_lock.rb +31 -31
- data/test/rubygems/test_gem_source_specific_file.rb +17 -17
- data/test/rubygems/test_gem_source_subpath_problem.rb +7 -7
- data/test/rubygems/test_gem_source_vendor.rb +13 -13
- data/test/rubygems/test_gem_spec_fetcher.rb +72 -72
- data/test/rubygems/test_gem_specification.rb +444 -436
- data/test/rubygems/test_gem_stream_ui.rb +19 -19
- data/test/rubygems/test_gem_stub_specification.rb +32 -32
- data/test/rubygems/test_gem_text.rb +1 -1
- data/test/rubygems/test_gem_uninstaller.rb +112 -112
- data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +3 -3
- data/test/rubygems/test_gem_uri.rb +4 -4
- data/test/rubygems/test_gem_uri_formatter.rb +14 -14
- data/test/rubygems/test_gem_util.rb +23 -23
- data/test/rubygems/test_gem_validator.rb +8 -8
- data/test/rubygems/test_gem_version.rb +22 -15
- data/test/rubygems/test_gem_version_option.rb +15 -15
- data/test/rubygems/test_kernel.rb +31 -31
- data/test/rubygems/test_project_sanity.rb +1 -1
- data/test/rubygems/test_remote_fetch_error.rb +6 -6
- data/test/rubygems/test_require.rb +43 -43
- data/test/rubygems/test_rubygems.rb +8 -8
- data/test/rubygems/utilities.rb +19 -19
- metadata +7 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: abfdbab5d664b8189d2ee8b68769e3530bb7ffb54b324b61b70eae773305e142
|
4
|
+
data.tar.gz: 7f2b71150cc622d254ea1287dff9dc8c6879a662a2e8452035666f020d1f1be6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5e7973dc92bf831135bfae7327b8f1dd11a890693c4bbfbaf9adac050ce6c6d12c4176f74ec3f372f57a712bcb524e25569e1afde66f48b9a19b421966c61796
|
7
|
+
data.tar.gz: 993a269fd39cea74ea2c136812e691d1c9b8477470d5180d2f0a06c4819800fabded2a401b2267bbdde72731c4bbb40f14e468d05a8fc52c7b3216a49ea2df30
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,55 @@
|
|
1
|
+
# 3.3.21 / 2022-08-24
|
2
|
+
|
3
|
+
## Enhancements:
|
4
|
+
|
5
|
+
* Support non gnu libc linux platforms. Pull request #5852 by
|
6
|
+
deivid-rodriguez
|
7
|
+
* Installs bundler 2.3.21 as a default gem.
|
8
|
+
|
9
|
+
# 3.3.20 / 2022-08-10
|
10
|
+
|
11
|
+
## Enhancements:
|
12
|
+
|
13
|
+
* Include backtrace with crashes by default. Pull request #5811 by
|
14
|
+
deivid-rodriguez
|
15
|
+
* Don't create broken symlinks when a gem includes them, but print a
|
16
|
+
warning instead. Pull request #5801 by deivid-rodriguez
|
17
|
+
* Warn (rather than crash) when setting `nil` specification versions. Pull
|
18
|
+
request #5794 by deivid-rodriguez
|
19
|
+
* Installs bundler 2.3.20 as a default gem.
|
20
|
+
|
21
|
+
## Bug fixes:
|
22
|
+
|
23
|
+
* Always consider installed specs for resolution, even if prereleases.
|
24
|
+
Pull request #5821 by deivid-rodriguez
|
25
|
+
* Fix `gem install` with `--platform` flag not matching simulated platform
|
26
|
+
correctly. Pull request #5820 by deivid-rodriguez
|
27
|
+
* Fix platform matching for index specs. Pull request #5795 by Ilushkanama
|
28
|
+
|
29
|
+
# 3.3.19 / 2022-07-27
|
30
|
+
|
31
|
+
## Enhancements:
|
32
|
+
|
33
|
+
* Display mfa warnings on `gem signin`. Pull request #5590 by aellispierce
|
34
|
+
* Require fileutils more lazily when installing gems. Pull request #5738
|
35
|
+
by deivid-rodriguez
|
36
|
+
* Fix upgrading RubyGems with a customized `Gem.default_dir`. Pull request
|
37
|
+
#5728 by deivid-rodriguez
|
38
|
+
* Stop using `/dev/null` for silent ui for WASI platform. Pull request
|
39
|
+
#5703 by kateinoigakukun
|
40
|
+
* Unify loading `Gem::Requirement`. Pull request #5596 by deivid-rodriguez
|
41
|
+
* Installs bundler 2.3.19 as a default gem.
|
42
|
+
|
43
|
+
## Bug fixes:
|
44
|
+
|
45
|
+
* Fix `ruby setup.rb` with `--destdir` writing outside of `--destdir`.
|
46
|
+
Pull request #5737 by deivid-rodriguez
|
47
|
+
|
48
|
+
## Documentation:
|
49
|
+
|
50
|
+
* Fix wrong information about default RubyGems source. Pull request #5723
|
51
|
+
by tnir
|
52
|
+
|
1
53
|
# 3.3.18 / 2022-07-14
|
2
54
|
|
3
55
|
## Enhancements:
|
data/Manifest.txt
CHANGED
@@ -127,6 +127,8 @@ bundler/lib/bundler/man/bundle-outdated.1
|
|
127
127
|
bundler/lib/bundler/man/bundle-outdated.1.ronn
|
128
128
|
bundler/lib/bundler/man/bundle-platform.1
|
129
129
|
bundler/lib/bundler/man/bundle-platform.1.ronn
|
130
|
+
bundler/lib/bundler/man/bundle-plugin.1
|
131
|
+
bundler/lib/bundler/man/bundle-plugin.1.ronn
|
130
132
|
bundler/lib/bundler/man/bundle-pristine.1
|
131
133
|
bundler/lib/bundler/man/bundle-pristine.1.ronn
|
132
134
|
bundler/lib/bundler/man/bundle-remove.1
|
@@ -142,7 +144,9 @@ bundler/lib/bundler/man/bundle.1.ronn
|
|
142
144
|
bundler/lib/bundler/man/gemfile.5
|
143
145
|
bundler/lib/bundler/man/gemfile.5.ronn
|
144
146
|
bundler/lib/bundler/man/index.txt
|
147
|
+
bundler/lib/bundler/match_metadata.rb
|
145
148
|
bundler/lib/bundler/match_platform.rb
|
149
|
+
bundler/lib/bundler/match_remote_metadata.rb
|
146
150
|
bundler/lib/bundler/mirror.rb
|
147
151
|
bundler/lib/bundler/plugin.rb
|
148
152
|
bundler/lib/bundler/plugin/api.rb
|
data/bin/gem
CHANGED
data/bin/update_rubygems
CHANGED
@@ -5,9 +5,9 @@
|
|
5
5
|
# See LICENSE.txt for permissions.
|
6
6
|
#++
|
7
7
|
|
8
|
-
require
|
8
|
+
require "rubygems"
|
9
9
|
|
10
|
-
if ARGV.include?
|
10
|
+
if ARGV.include?("-h") || ARGV.include?("--help")
|
11
11
|
$stderr.puts "rubygems_update [options]"
|
12
12
|
$stderr.puts
|
13
13
|
$stderr.puts "This will install the latest version of RubyGems."
|
@@ -17,7 +17,7 @@ if ARGV.include? '-h' or ARGV.include? '--help'
|
|
17
17
|
end
|
18
18
|
|
19
19
|
unless ARGV.grep(/--version=([\d\.]*)/).empty?
|
20
|
-
exec Gem.ruby,
|
20
|
+
exec Gem.ruby, "-S", $PROGRAM_NAME, "_#{$1}_"
|
21
21
|
end
|
22
22
|
|
23
23
|
update_dir = $LOAD_PATH.find {|dir| dir =~ /rubygems-update/ }
|
@@ -32,5 +32,5 @@ else
|
|
32
32
|
update_dir = File.dirname(update_dir)
|
33
33
|
Dir.chdir update_dir
|
34
34
|
ENV["GEM_PREV_VER"] = Gem::VERSION
|
35
|
-
abort unless system(Gem.ruby,
|
35
|
+
abort unless system(Gem.ruby, "setup.rb", *ARGV)
|
36
36
|
end
|
data/bundler/CHANGELOG.md
CHANGED
@@ -1,3 +1,81 @@
|
|
1
|
+
# 2.3.21 (August 24, 2022)
|
2
|
+
|
3
|
+
## Enhancements:
|
4
|
+
|
5
|
+
- Backport non gnu libc linux support from RubyGems [#4488](https://github.com/rubygems/rubygems/pull/4488)
|
6
|
+
- Improve `Bundler.rm_rf` error message [#5861](https://github.com/rubygems/rubygems/pull/5861)
|
7
|
+
- Disallow both `--branch` and `--ref` at the same time in bundle-plugin [#5855](https://github.com/rubygems/rubygems/pull/5855)
|
8
|
+
- Restore previous performance of private RubyGems servers [#5826](https://github.com/rubygems/rubygems/pull/5826)
|
9
|
+
|
10
|
+
## Bug fixes:
|
11
|
+
|
12
|
+
- Fix conservative update downgrading top level gems [#5847](https://github.com/rubygems/rubygems/pull/5847)
|
13
|
+
- Fix edge case where `bundler/inline` unintentionally skips install [#5848](https://github.com/rubygems/rubygems/pull/5848)
|
14
|
+
- Fix `bundle platform` crash when there's a lockfile with no Ruby locked [#5850](https://github.com/rubygems/rubygems/pull/5850)
|
15
|
+
- Fix crash when incomplete locked specifications are found in transitive dependencies [#5840](https://github.com/rubygems/rubygems/pull/5840)
|
16
|
+
- Fix Ruby platform incorrectly removed on `bundle update` [#5832](https://github.com/rubygems/rubygems/pull/5832)
|
17
|
+
|
18
|
+
## Documentation:
|
19
|
+
|
20
|
+
- Explain cancelled CLI deprecations clearly [#5864](https://github.com/rubygems/rubygems/pull/5864)
|
21
|
+
- Improve `bundle config` command synopsis [#5854](https://github.com/rubygems/rubygems/pull/5854)
|
22
|
+
- Introduce bundle-plugin(1) man [#5853](https://github.com/rubygems/rubygems/pull/5853)
|
23
|
+
|
24
|
+
# 2.3.20 (August 10, 2022)
|
25
|
+
|
26
|
+
## Enhancements:
|
27
|
+
|
28
|
+
- Consistently ignore patchlevel when reporting `bundle platform --ruby` [#5793](https://github.com/rubygems/rubygems/pull/5793)
|
29
|
+
- Make `--standalone` play nice with `--local` [#5762](https://github.com/rubygems/rubygems/pull/5762)
|
30
|
+
- Implement `bundle install --prefer-local` [#5761](https://github.com/rubygems/rubygems/pull/5761)
|
31
|
+
|
32
|
+
## Bug fixes:
|
33
|
+
|
34
|
+
- Fix regression where yanked gems are now unintentionally updated when other gems are unlocked [#5812](https://github.com/rubygems/rubygems/pull/5812)
|
35
|
+
- Automatically remove "ruby" from lockfile if incomplete [#5807](https://github.com/rubygems/rubygems/pull/5807)
|
36
|
+
- Fix `bundle outdated --strict` showing too many outdated gems [#5798](https://github.com/rubygems/rubygems/pull/5798)
|
37
|
+
- Don't discard candidates matching Ruby metadata [#5784](https://github.com/rubygems/rubygems/pull/5784)
|
38
|
+
- Fix `bundle outdated` crash in debug mode [#5796](https://github.com/rubygems/rubygems/pull/5796)
|
39
|
+
- Fix `ruby` DSL requirement matching for head and prerelease rubies [#5766](https://github.com/rubygems/rubygems/pull/5766)
|
40
|
+
|
41
|
+
## Documentation:
|
42
|
+
|
43
|
+
- Update Bundler support policies to match what we do these days [#5813](https://github.com/rubygems/rubygems/pull/5813)
|
44
|
+
- Fix arguments for bundle-config(1) docs [#5804](https://github.com/rubygems/rubygems/pull/5804)
|
45
|
+
- Improve `bundle platform` man page [#5788](https://github.com/rubygems/rubygems/pull/5788)
|
46
|
+
- Remove `bundle cache` from deprecated commands list, and consistently link to `bundle cache` in man pages [#5783](https://github.com/rubygems/rubygems/pull/5783)
|
47
|
+
- Add package/pack aliases to man pages for cache [#5785](https://github.com/rubygems/rubygems/pull/5785)
|
48
|
+
- Add deprecation notice of bundle console [#5775](https://github.com/rubygems/rubygems/pull/5775)
|
49
|
+
|
50
|
+
# 2.3.19 (July 27, 2022)
|
51
|
+
|
52
|
+
## Enhancements:
|
53
|
+
|
54
|
+
- Add `Bundler.settings[:only]` to install gems of the specified groups [#5759](https://github.com/rubygems/rubygems/pull/5759)
|
55
|
+
- Add `ignore_funding_requests` config flag [#5767](https://github.com/rubygems/rubygems/pull/5767)
|
56
|
+
- Prevent random crash when autoloading `Pathname` [#5769](https://github.com/rubygems/rubygems/pull/5769)
|
57
|
+
- Don't corrupt lockfile when user moves a gem that's already in the lockfile to an incorrect source by mistake [#5070](https://github.com/rubygems/rubygems/pull/5070)
|
58
|
+
- Reconcile error/warning message for multiple global sources with documentation [#5741](https://github.com/rubygems/rubygems/pull/5741)
|
59
|
+
- Improve error message when gems cannot be found to include the source for each gem [#5729](https://github.com/rubygems/rubygems/pull/5729)
|
60
|
+
|
61
|
+
## Bug fixes:
|
62
|
+
|
63
|
+
- Fix yet another TruffleRuby platform selection regression [#5746](https://github.com/rubygems/rubygems/pull/5746)
|
64
|
+
- Show a proper error if extension dir is not writable [#5726](https://github.com/rubygems/rubygems/pull/5726)
|
65
|
+
|
66
|
+
## Performance:
|
67
|
+
|
68
|
+
- Lazily check incomplete lockfile to improve performance [#5546](https://github.com/rubygems/rubygems/pull/5546)
|
69
|
+
|
70
|
+
## Documentation:
|
71
|
+
|
72
|
+
- Add deprecation notice of bundle inject [#5776](https://github.com/rubygems/rubygems/pull/5776)
|
73
|
+
- Add deprecation notice of `bundle viz` to man pages [#5765](https://github.com/rubygems/rubygems/pull/5765)
|
74
|
+
- Update command example in `bundle exec` man page [#5754](https://github.com/rubygems/rubygems/pull/5754)
|
75
|
+
- Remove bundle show from obsolete commands [#5753](https://github.com/rubygems/rubygems/pull/5753)
|
76
|
+
- Improve global source(s) documentation [#5732](https://github.com/rubygems/rubygems/pull/5732)
|
77
|
+
- Use https protocol for URLs for config mirror in bundler man [#5722](https://github.com/rubygems/rubygems/pull/5722)
|
78
|
+
|
1
79
|
# 2.3.18 (July 14, 2022)
|
2
80
|
|
3
81
|
## Enhancements:
|
data/bundler/UPGRADING.md
CHANGED
@@ -25,7 +25,7 @@ I'll be dividing the deprecations into four groups: CLI deprecations, Helper
|
|
25
25
|
deprecations, DSL deprecations, and misc deprecations. Let's dive into each of
|
26
26
|
them.
|
27
27
|
|
28
|
-
|
28
|
+
### CLI deprecations
|
29
29
|
|
30
30
|
The CLI defines a set of commands and options that can be used by our users to
|
31
31
|
create command lines that bundler can understand. There's a number of changes
|
@@ -82,7 +82,6 @@ in the upcoming 3 version.
|
|
82
82
|
in favor of a `bin/console` script created by `bundle gem` on gem generation
|
83
83
|
that users can tweak to their needs.
|
84
84
|
|
85
|
-
* ~The `bundle update` command will no longer update all gems, you'll need to pass `--all` to it.~ (postponed)
|
86
85
|
|
87
86
|
* The `bundle install` command will no longer accept a `--binstubs` flag.
|
88
87
|
|
@@ -94,7 +93,6 @@ in the upcoming 3 version.
|
|
94
93
|
likely unused files into source control. Because of this, binstubs now must
|
95
94
|
be created and checked into version control individually.
|
96
95
|
|
97
|
-
* ~The `bundle config` command has a new subcommand-based interface.~ (postponed)
|
98
96
|
|
99
97
|
* The `bundle inject` command is deprecated and replaced with `bundle add`.
|
100
98
|
|
@@ -103,7 +101,16 @@ in the upcoming 3 version.
|
|
103
101
|
exactly the same in `bundle add`, so it should be easy to migrate to the new
|
104
102
|
command.
|
105
103
|
|
106
|
-
####
|
104
|
+
#### Cancelled CLI deprecations
|
105
|
+
|
106
|
+
These deprecations have been initally announced before, but the deprecations
|
107
|
+
were cancelled before the release of Bundler 2.1.0 in [rubygems/bundler#7475](https://github.com/rubygems/bundler/pull/7475).
|
108
|
+
|
109
|
+
* ~The `bundle update` command will no longer update all gems, you'll need to pass `--all` to it.~ (postponed)
|
110
|
+
|
111
|
+
* ~The `bundle config` command will no longer accept old subcommand-based interface before Bundler 2.1.~ (postponed)
|
112
|
+
|
113
|
+
### Helper deprecations
|
107
114
|
|
108
115
|
* `Bundler.clean_env`, `Bundler.with_clean_env`, `Bundler.clean_system`, and `Bundler.clean_exec` are deprecated.
|
109
116
|
|
@@ -4,8 +4,8 @@ module Bundler
|
|
4
4
|
# Represents metadata from when the Bundler gem was built.
|
5
5
|
module BuildMetadata
|
6
6
|
# begin ivars
|
7
|
-
@built_at = "2022-
|
8
|
-
@git_commit_sha = "
|
7
|
+
@built_at = "2022-08-24".freeze
|
8
|
+
@git_commit_sha = "d54be5fdd8".freeze
|
9
9
|
@release = true
|
10
10
|
# end ivars
|
11
11
|
|
@@ -147,8 +147,11 @@ module Bundler
|
|
147
147
|
def normalize_settings
|
148
148
|
Bundler.settings.set_command_option :path, nil if options[:system]
|
149
149
|
Bundler.settings.set_command_option_if_given :path, options[:path]
|
150
|
-
|
151
|
-
|
150
|
+
|
151
|
+
if options["standalone"] && Bundler.settings[:path].nil? && !options["local"]
|
152
|
+
Bundler.settings.temporary(:path_relative_to_cwd => false) do
|
153
|
+
Bundler.settings.set_command_option :path, "bundle"
|
154
|
+
end
|
152
155
|
end
|
153
156
|
|
154
157
|
bin_option = options["binstubs"]
|
@@ -46,7 +46,7 @@ module Bundler
|
|
46
46
|
|
47
47
|
Bundler::CLI::Common.configure_gem_version_promoter(
|
48
48
|
Bundler.definition,
|
49
|
-
options
|
49
|
+
options.merge(:strict => @strict)
|
50
50
|
)
|
51
51
|
|
52
52
|
definition_resolution = proc do
|
@@ -129,6 +129,12 @@ module Bundler
|
|
129
129
|
|
130
130
|
private
|
131
131
|
|
132
|
+
def loaded_from_for(spec)
|
133
|
+
return unless spec.respond_to?(:loaded_from)
|
134
|
+
|
135
|
+
spec.loaded_from
|
136
|
+
end
|
137
|
+
|
132
138
|
def groups_text(group_text, groups)
|
133
139
|
"#{group_text}#{groups.split(",").size > 1 ? "s" : ""} \"#{groups}\""
|
134
140
|
end
|
@@ -184,7 +190,10 @@ module Bundler
|
|
184
190
|
|
185
191
|
def print_gem(current_spec, active_spec, dependency, groups)
|
186
192
|
spec_version = "#{active_spec.version}#{active_spec.git_version}"
|
187
|
-
|
193
|
+
if Bundler.ui.debug?
|
194
|
+
loaded_from = loaded_from_for(active_spec)
|
195
|
+
spec_version += " (from #{loaded_from})" if loaded_from
|
196
|
+
end
|
188
197
|
current_version = "#{current_spec.version}#{current_spec.git_version}"
|
189
198
|
|
190
199
|
if dependency && dependency.specific?
|
@@ -211,7 +220,7 @@ module Bundler
|
|
211
220
|
dependency = dependency.requirement if dependency
|
212
221
|
|
213
222
|
ret_val = [active_spec.name, current_version, spec_version, dependency.to_s, groups.to_s]
|
214
|
-
ret_val << active_spec.
|
223
|
+
ret_val << loaded_from_for(active_spec).to_s if Bundler.ui.debug?
|
215
224
|
ret_val
|
216
225
|
end
|
217
226
|
|
@@ -9,7 +9,7 @@ module Bundler
|
|
9
9
|
|
10
10
|
def run
|
11
11
|
platforms, ruby_version = Bundler.ui.silence do
|
12
|
-
locked_ruby_version = Bundler.locked_gems && Bundler.locked_gems.ruby_version
|
12
|
+
locked_ruby_version = Bundler.locked_gems && Bundler.locked_gems.ruby_version&.gsub(/p\d+\Z/, "")
|
13
13
|
gemfile_ruby_version = Bundler.definition.ruby_version && Bundler.definition.ruby_version.single_version_string
|
14
14
|
[Bundler.definition.platforms.map {|p| "* #{p}" },
|
15
15
|
locked_ruby_version || gemfile_ruby_version]
|
data/bundler/lib/bundler/cli.rb
CHANGED
@@ -218,6 +218,8 @@ module Bundler
|
|
218
218
|
"Specify the number of jobs to run in parallel"
|
219
219
|
method_option "local", :type => :boolean, :banner =>
|
220
220
|
"Do not attempt to fetch gems remotely and use the gem cache instead"
|
221
|
+
method_option "prefer-local", :type => :boolean, :banner =>
|
222
|
+
"Only attempt to fetch gems remotely if not present locally, even if newer versions are available remotely"
|
221
223
|
method_option "no-cache", :type => :boolean, :banner =>
|
222
224
|
"Don't update the existing gem cache."
|
223
225
|
method_option "redownload", :type => :boolean, :aliases => "--force", :banner =>
|
@@ -236,7 +238,7 @@ module Bundler
|
|
236
238
|
"Install to the system location ($BUNDLE_PATH or $GEM_HOME) even if the bundle was previously installed somewhere else for this application"
|
237
239
|
method_option "trust-policy", :alias => "P", :type => :string, :banner =>
|
238
240
|
"Gem trust policy (like gem install -P). Must be one of " +
|
239
|
-
|
241
|
+
Bundler.rubygems.security_policy_keys.join("|")
|
240
242
|
method_option "without", :type => :array, :banner =>
|
241
243
|
"Exclude gems that are part of the specified named group."
|
242
244
|
method_option "with", :type => :array, :banner =>
|
@@ -399,9 +401,9 @@ module Bundler
|
|
399
401
|
"Do not attempt to fetch gems remotely and use the gem cache instead"
|
400
402
|
method_option "pre", :type => :boolean, :banner => "Check for newer pre-release gems"
|
401
403
|
method_option "source", :type => :array, :banner => "Check against a specific source"
|
402
|
-
method_option "filter-strict", :type => :boolean, :banner =>
|
404
|
+
method_option "filter-strict", :type => :boolean, :aliases => "--strict", :banner =>
|
403
405
|
"Only list newer versions allowed by your Gemfile requirements"
|
404
|
-
method_option "strict", :type => :boolean, :
|
406
|
+
method_option "update-strict", :type => :boolean, :banner =>
|
405
407
|
"Strict conservative resolution, do not allow any gem to be updated past latest --patch | --minor | --major"
|
406
408
|
method_option "minor", :type => :boolean, :banner => "Prefer updating only to next minor version"
|
407
409
|
method_option "major", :type => :boolean, :banner => "Prefer updating to next major version (default)"
|
@@ -70,6 +70,7 @@ module Bundler
|
|
70
70
|
@unlock = unlock
|
71
71
|
@optional_groups = optional_groups
|
72
72
|
@remote = false
|
73
|
+
@prefer_local = false
|
73
74
|
@specs = nil
|
74
75
|
@ruby_version = ruby_version
|
75
76
|
@gemfiles = gemfiles
|
@@ -138,14 +139,12 @@ module Bundler
|
|
138
139
|
@unlock[:gems] ||= @dependencies.map(&:name)
|
139
140
|
else
|
140
141
|
eager_unlock = expand_dependencies(@unlock[:gems] || [], true)
|
141
|
-
@unlock[:gems] = @locked_specs.for(eager_unlock, false,
|
142
|
+
@unlock[:gems] = @locked_specs.for(eager_unlock, false, platforms).map(&:name)
|
142
143
|
end
|
143
144
|
|
144
145
|
@dependency_changes = converge_dependencies
|
145
146
|
@local_changes = converge_locals
|
146
147
|
|
147
|
-
@locked_specs_incomplete_for_platform = !@locked_specs.for(requested_dependencies & expand_dependencies(locked_dependencies), true, true)
|
148
|
-
|
149
148
|
@requires = compute_requires
|
150
149
|
end
|
151
150
|
|
@@ -170,6 +169,13 @@ module Bundler
|
|
170
169
|
resolve
|
171
170
|
end
|
172
171
|
|
172
|
+
def resolve_prefering_local!
|
173
|
+
@prefer_local = true
|
174
|
+
@remote = true
|
175
|
+
sources.remote!
|
176
|
+
resolve
|
177
|
+
end
|
178
|
+
|
173
179
|
def resolve_with_cache!
|
174
180
|
sources.cached!
|
175
181
|
resolve
|
@@ -210,6 +216,7 @@ module Bundler
|
|
210
216
|
true
|
211
217
|
rescue BundlerError => e
|
212
218
|
@resolve = nil
|
219
|
+
@resolver = nil
|
213
220
|
@specs = nil
|
214
221
|
@gem_version_promoter = nil
|
215
222
|
|
@@ -279,11 +286,8 @@ module Bundler
|
|
279
286
|
end
|
280
287
|
end
|
281
288
|
else
|
282
|
-
last_resolve = converge_locked_specs
|
283
|
-
# Run a resolve against the locally available gems
|
284
289
|
Bundler.ui.debug("Found changes from the lockfile, re-resolving dependencies because #{change_reason}")
|
285
|
-
expanded_dependencies
|
286
|
-
Resolver.resolve(expanded_dependencies, source_requirements, last_resolve, gem_version_promoter, additional_base_requirements_for_resolve, platforms)
|
290
|
+
resolver.start(expanded_dependencies)
|
287
291
|
end
|
288
292
|
end
|
289
293
|
|
@@ -468,7 +472,7 @@ module Bundler
|
|
468
472
|
private :sources
|
469
473
|
|
470
474
|
def nothing_changed?
|
471
|
-
!@source_changes && !@dependency_changes && !@new_platform && !@path_changes && !@local_changes
|
475
|
+
!@source_changes && !@dependency_changes && !@new_platform && !@path_changes && !@local_changes
|
472
476
|
end
|
473
477
|
|
474
478
|
def unlocking?
|
@@ -477,8 +481,22 @@ module Bundler
|
|
477
481
|
|
478
482
|
private
|
479
483
|
|
484
|
+
def resolver
|
485
|
+
@resolver ||= begin
|
486
|
+
last_resolve = converge_locked_specs
|
487
|
+
Resolver.new(source_requirements, last_resolve, gem_version_promoter, additional_base_requirements_for_resolve, platforms)
|
488
|
+
end
|
489
|
+
end
|
490
|
+
|
491
|
+
def expanded_dependencies
|
492
|
+
@expanded_dependencies ||= begin
|
493
|
+
remove_ruby_from_platforms_if_necessary!(dependencies)
|
494
|
+
expand_dependencies(dependencies + metadata_dependencies, true)
|
495
|
+
end
|
496
|
+
end
|
497
|
+
|
480
498
|
def filter_specs(specs, deps)
|
481
|
-
SpecSet.new(specs).for(expand_dependencies(deps, true), false,
|
499
|
+
SpecSet.new(specs).for(expand_dependencies(deps, true), false, platforms)
|
482
500
|
end
|
483
501
|
|
484
502
|
def materialize(dependencies)
|
@@ -495,14 +513,25 @@ module Bundler
|
|
495
513
|
"removed in order to install."
|
496
514
|
end
|
497
515
|
|
498
|
-
|
516
|
+
missing_specs_list = missing_specs.group_by(&:source).map do |source, missing_specs_for_source|
|
517
|
+
"#{missing_specs_for_source.map(&:full_name).join(", ")} in #{source}"
|
518
|
+
end
|
519
|
+
|
520
|
+
raise GemNotFound, "Could not find #{missing_specs_list.join(" nor ")}"
|
499
521
|
end
|
500
522
|
|
501
|
-
|
502
|
-
|
503
|
-
|
523
|
+
loop do
|
524
|
+
incomplete_specs = specs.incomplete_specs
|
525
|
+
break if incomplete_specs.empty?
|
526
|
+
|
527
|
+
Bundler.ui.debug("The lockfile does not have all gems needed for the current platform though, Bundler will still re-resolve dependencies")
|
528
|
+
@resolve = resolver.start(expanded_dependencies, :exclude_specs => incomplete_specs)
|
529
|
+
specs = resolve.materialize(dependencies)
|
504
530
|
end
|
505
531
|
|
532
|
+
bundler = sources.metadata_source.specs.search(Gem::Dependency.new("bundler", VERSION)).last
|
533
|
+
specs["bundler"] = bundler
|
534
|
+
|
506
535
|
specs
|
507
536
|
end
|
508
537
|
|
@@ -510,6 +539,19 @@ module Bundler
|
|
510
539
|
@remote && sources.non_global_rubygems_sources.all?(&:dependency_api_available?) && !sources.aggregate_global_source?
|
511
540
|
end
|
512
541
|
|
542
|
+
def pin_locally_available_names(source_requirements)
|
543
|
+
source_requirements.each_with_object({}) do |(name, original_source), new_source_requirements|
|
544
|
+
local_source = original_source.dup
|
545
|
+
local_source.local_only!
|
546
|
+
|
547
|
+
new_source_requirements[name] = if local_source.specs.search(name).any?
|
548
|
+
local_source
|
549
|
+
else
|
550
|
+
original_source
|
551
|
+
end
|
552
|
+
end
|
553
|
+
end
|
554
|
+
|
513
555
|
def current_ruby_platform_locked?
|
514
556
|
return false unless generic_local_platform == Gem::Platform::RUBY
|
515
557
|
return false if Bundler.settings[:force_ruby_platform] && !@platforms.include?(Gem::Platform::RUBY)
|
@@ -545,7 +587,6 @@ module Bundler
|
|
545
587
|
[@new_platform, "you added a new platform to your gemfile"],
|
546
588
|
[@path_changes, "the gemspecs for path gems changed"],
|
547
589
|
[@local_changes, "the gemspecs for git local gems changed"],
|
548
|
-
[@locked_specs_incomplete_for_platform, "the lockfile does not have all gems needed for the current platform"],
|
549
590
|
].select(&:first).map(&:last).join(", ")
|
550
591
|
end
|
551
592
|
|
@@ -678,7 +719,9 @@ module Bundler
|
|
678
719
|
# commonly happen if the Gemfile has changed since the lockfile was last
|
679
720
|
# generated
|
680
721
|
def converge_locked_specs
|
681
|
-
|
722
|
+
converged = converge_specs(@locked_specs)
|
723
|
+
|
724
|
+
resolve = SpecSet.new(converged.reject {|s| @unlock[:gems].include?(s.name) })
|
682
725
|
|
683
726
|
diff = nil
|
684
727
|
|
@@ -702,16 +745,24 @@ module Bundler
|
|
702
745
|
specs[dep].any? {|s| s.satisfies?(dep) && (!dep.source || s.source.include?(dep.source)) }
|
703
746
|
end
|
704
747
|
|
748
|
+
@specs_that_changed_sources = []
|
749
|
+
|
705
750
|
specs.each do |s|
|
706
|
-
# Replace the locked dependency's source with the equivalent source from the Gemfile
|
707
751
|
dep = @dependencies.find {|d| s.satisfies?(d) }
|
708
752
|
|
709
|
-
s
|
753
|
+
# Replace the locked dependency's source with the equivalent source from the Gemfile
|
754
|
+
s.source = if dep && dep.source
|
755
|
+
gemfile_source = dep.source
|
756
|
+
lockfile_source = s.source
|
710
757
|
|
711
|
-
|
758
|
+
@specs_that_changed_sources << s if gemfile_source != lockfile_source
|
759
|
+
|
760
|
+
gemfile_source
|
761
|
+
else
|
762
|
+
sources.get_with_fallback(s.source)
|
763
|
+
end
|
712
764
|
|
713
|
-
|
714
|
-
# then we unlock it.
|
765
|
+
next if @unlock[:sources].include?(s.source.name)
|
715
766
|
|
716
767
|
# Path sources have special logic
|
717
768
|
if s.source.instance_of?(Source::Path) || s.source.instance_of?(Source::Gemspec)
|
@@ -721,7 +772,7 @@ module Bundler
|
|
721
772
|
# if we won't need the source (according to the lockfile),
|
722
773
|
# don't error if the path/git source isn't available
|
723
774
|
next if specs.
|
724
|
-
for(requested_dependencies, false
|
775
|
+
for(requested_dependencies, false).
|
725
776
|
none? {|locked_spec| locked_spec.source == s.source }
|
726
777
|
|
727
778
|
raise
|
@@ -743,12 +794,12 @@ module Bundler
|
|
743
794
|
end
|
744
795
|
end
|
745
796
|
|
746
|
-
|
797
|
+
filter_specs(converged, deps)
|
747
798
|
end
|
748
799
|
|
749
800
|
def metadata_dependencies
|
750
801
|
@metadata_dependencies ||= [
|
751
|
-
Dependency.new("Ruby\0",
|
802
|
+
Dependency.new("Ruby\0", Gem.ruby_version),
|
752
803
|
Dependency.new("RubyGems\0", Gem::VERSION),
|
753
804
|
]
|
754
805
|
end
|
@@ -775,7 +826,9 @@ module Bundler
|
|
775
826
|
# specs will be available later when the resolver knows where to
|
776
827
|
# look for that gemspec (or its dependencies)
|
777
828
|
source_requirements = if precompute_source_requirements_for_indirect_dependencies?
|
778
|
-
|
829
|
+
all_requirements = source_map.all_requirements
|
830
|
+
all_requirements = pin_locally_available_names(all_requirements) if @prefer_local
|
831
|
+
{ :default => sources.default_source }.merge(all_requirements)
|
779
832
|
else
|
780
833
|
{ :default => Source::RubygemsAggregate.new(sources, source_map) }.merge(source_map.direct_requirements)
|
781
834
|
end
|
@@ -785,11 +838,22 @@ module Bundler
|
|
785
838
|
end
|
786
839
|
source_requirements[:default_bundler] = source_requirements["bundler"] || sources.default_source
|
787
840
|
source_requirements["bundler"] = sources.metadata_source # needs to come last to override
|
841
|
+
verify_changed_sources!
|
788
842
|
source_requirements
|
789
843
|
end
|
790
844
|
|
845
|
+
def verify_changed_sources!
|
846
|
+
@specs_that_changed_sources.each do |s|
|
847
|
+
if s.source.specs.search(s.name).empty?
|
848
|
+
raise GemNotFound, "Could not find gem '#{s.name}' in #{s.source}"
|
849
|
+
end
|
850
|
+
end
|
851
|
+
end
|
852
|
+
|
791
853
|
def requested_groups
|
792
|
-
groups - Bundler.settings[:without] - @optional_groups + Bundler.settings[:with]
|
854
|
+
values = groups - Bundler.settings[:without] - @optional_groups + Bundler.settings[:with]
|
855
|
+
values &= Bundler.settings[:only] unless Bundler.settings[:only].empty?
|
856
|
+
values
|
793
857
|
end
|
794
858
|
|
795
859
|
def lockfiles_equal?(current, proposed, preserve_unknown_sections)
|
@@ -819,10 +883,20 @@ module Bundler
|
|
819
883
|
def additional_base_requirements_for_resolve
|
820
884
|
return [] unless @locked_gems && unlocking? && !sources.expired_sources?(@locked_gems.sources)
|
821
885
|
converge_specs(@originally_locked_specs).map do |locked_spec|
|
822
|
-
name
|
823
|
-
|
824
|
-
|
825
|
-
|
886
|
+
Dependency.new(locked_spec.name, ">= #{locked_spec.version}")
|
887
|
+
end.uniq
|
888
|
+
end
|
889
|
+
|
890
|
+
def remove_ruby_from_platforms_if_necessary!(dependencies)
|
891
|
+
return if Bundler.frozen_bundle? ||
|
892
|
+
Bundler.local_platform == Gem::Platform::RUBY ||
|
893
|
+
!platforms.include?(Gem::Platform::RUBY) ||
|
894
|
+
(@new_platform && platforms.last == Gem::Platform::RUBY) ||
|
895
|
+
!@originally_locked_specs.incomplete_ruby_specs?(expand_dependencies(dependencies))
|
896
|
+
|
897
|
+
remove_platform(Gem::Platform::RUBY)
|
898
|
+
add_current_platform
|
899
|
+
resolver.platforms = @platforms
|
826
900
|
end
|
827
901
|
|
828
902
|
def source_map
|
data/bundler/lib/bundler/dsl.rb
CHANGED
@@ -465,12 +465,12 @@ module Bundler
|
|
465
465
|
|
466
466
|
def multiple_global_source_warning
|
467
467
|
if Bundler.feature_flag.bundler_3_mode?
|
468
|
-
msg = "This Gemfile contains multiple
|
468
|
+
msg = "This Gemfile contains multiple global sources. " \
|
469
469
|
"Each source after the first must include a block to indicate which gems " \
|
470
470
|
"should come from that source"
|
471
471
|
raise GemfileEvalError, msg
|
472
472
|
else
|
473
|
-
Bundler::SharedHelpers.major_deprecation 2, "Your Gemfile contains multiple
|
473
|
+
Bundler::SharedHelpers.major_deprecation 2, "Your Gemfile contains multiple global sources. " \
|
474
474
|
"Using `source` more than once without a block is a security risk, and " \
|
475
475
|
"may result in installing unexpected gems. To resolve this warning, use " \
|
476
476
|
"a block to indicate which gems should come from the secondary source."
|