rubygems-update 3.2.30 → 3.4.10
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 +1666 -994
- data/CONTRIBUTING.md +71 -15
- data/Manifest.txt +93 -37
- data/POLICIES.md +65 -16
- data/README.md +28 -13
- data/UPGRADING.md +5 -81
- data/bin/gem +2 -10
- data/bin/update_rubygems +5 -5
- data/bundler/CHANGELOG.md +647 -1
- data/bundler/README.md +3 -6
- data/bundler/UPGRADING.md +11 -4
- data/bundler/bundler.gemspec +8 -10
- data/bundler/exe/bundle +7 -11
- data/bundler/exe/bundler +1 -1
- data/bundler/lib/bundler/.document +1 -0
- data/bundler/lib/bundler/build_metadata.rb +3 -3
- data/bundler/lib/bundler/cli/add.rb +1 -1
- data/bundler/lib/bundler/cli/binstubs.rb +5 -1
- data/bundler/lib/bundler/cli/check.rb +1 -1
- data/bundler/lib/bundler/cli/common.rb +4 -2
- data/bundler/lib/bundler/cli/config.rb +10 -1
- data/bundler/lib/bundler/cli/console.rb +2 -2
- data/bundler/lib/bundler/cli/doctor.rb +10 -3
- data/bundler/lib/bundler/cli/gem.rb +136 -42
- data/bundler/lib/bundler/cli/info.rb +17 -3
- data/bundler/lib/bundler/cli/init.rb +6 -2
- data/bundler/lib/bundler/cli/install.rb +15 -33
- data/bundler/lib/bundler/cli/lock.rb +8 -5
- data/bundler/lib/bundler/cli/open.rb +6 -4
- data/bundler/lib/bundler/cli/outdated.rb +13 -6
- data/bundler/lib/bundler/cli/platform.rb +2 -2
- data/bundler/lib/bundler/cli/show.rb +1 -1
- data/bundler/lib/bundler/cli/update.rb +8 -4
- data/bundler/lib/bundler/cli/viz.rb +1 -1
- data/bundler/lib/bundler/cli.rb +67 -21
- data/bundler/lib/bundler/compact_index_client/cache.rb +1 -10
- data/bundler/lib/bundler/compact_index_client/updater.rb +53 -44
- data/bundler/lib/bundler/compact_index_client.rb +0 -6
- data/bundler/lib/bundler/constants.rb +1 -1
- data/bundler/lib/bundler/current_ruby.rb +18 -6
- data/bundler/lib/bundler/definition.rb +259 -242
- data/bundler/lib/bundler/dependency.rb +24 -71
- data/bundler/lib/bundler/digest.rb +1 -1
- data/bundler/lib/bundler/dsl.rb +29 -46
- data/bundler/lib/bundler/endpoint_specification.rb +15 -13
- data/bundler/lib/bundler/env.rb +2 -2
- data/bundler/lib/bundler/environment_preserver.rb +7 -3
- data/bundler/lib/bundler/errors.rb +15 -15
- data/bundler/lib/bundler/feature_flag.rb +0 -1
- data/bundler/lib/bundler/fetcher/base.rb +6 -8
- data/bundler/lib/bundler/fetcher/compact_index.rb +18 -25
- data/bundler/lib/bundler/fetcher/dependency.rb +2 -6
- data/bundler/lib/bundler/fetcher/downloader.rb +2 -5
- data/bundler/lib/bundler/fetcher/index.rb +0 -26
- data/bundler/lib/bundler/fetcher.rb +22 -29
- data/bundler/lib/bundler/force_platform.rb +18 -0
- data/bundler/lib/bundler/friendly_errors.rb +21 -7
- data/bundler/lib/bundler/gem_helper.rb +4 -4
- data/bundler/lib/bundler/gem_helpers.rb +9 -2
- data/bundler/lib/bundler/gem_version_promoter.rb +53 -98
- data/bundler/lib/bundler/graph.rb +3 -3
- data/bundler/lib/bundler/index.rb +13 -51
- data/bundler/lib/bundler/injector.rb +18 -4
- data/bundler/lib/bundler/inline.rb +9 -21
- data/bundler/lib/bundler/installer/gem_installer.rb +13 -5
- data/bundler/lib/bundler/installer/parallel_installer.rb +3 -33
- data/bundler/lib/bundler/installer/standalone.rb +42 -11
- data/bundler/lib/bundler/installer.rb +20 -44
- data/bundler/lib/bundler/lazy_specification.rb +72 -55
- data/bundler/lib/bundler/lockfile_generator.rb +3 -3
- data/bundler/lib/bundler/lockfile_parser.rb +28 -26
- data/bundler/lib/bundler/man/bundle-add.1 +21 -5
- data/bundler/lib/bundler/man/bundle-add.1.ronn +16 -4
- 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 +2 -2
- data/bundler/lib/bundler/man/bundle-clean.1.ronn +1 -1
- data/bundler/lib/bundler/man/bundle-config.1 +34 -15
- data/bundler/lib/bundler/man/bundle-config.1.ronn +31 -19
- data/bundler/lib/bundler/man/bundle-console.1 +53 -0
- data/bundler/lib/bundler/man/bundle-console.1.ronn +44 -0
- data/bundler/lib/bundler/man/bundle-doctor.1 +1 -1
- data/bundler/lib/bundler/man/bundle-exec.1 +6 -6
- data/bundler/lib/bundler/man/bundle-exec.1.ronn +6 -6
- data/bundler/lib/bundler/man/bundle-gem.1 +37 -34
- data/bundler/lib/bundler/man/bundle-gem.1.ronn +21 -5
- data/bundler/lib/bundler/man/bundle-help.1 +13 -0
- data/bundler/lib/bundler/man/bundle-help.1.ronn +12 -0
- data/bundler/lib/bundler/man/bundle-info.1 +1 -1
- data/bundler/lib/bundler/man/bundle-init.1 +5 -1
- data/bundler/lib/bundler/man/bundle-init.1.ronn +2 -0
- 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 +6 -31
- data/bundler/lib/bundler/man/bundle-install.1.ronn +8 -31
- 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 +22 -2
- data/bundler/lib/bundler/man/bundle-open.1.ronn +9 -1
- data/bundler/lib/bundler/man/bundle-outdated.1 +3 -10
- data/bundler/lib/bundler/man/bundle-outdated.1.ronn +1 -10
- 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 +2 -2
- data/bundler/lib/bundler/man/bundle-update.1.ronn +2 -1
- data/bundler/lib/bundler/man/bundle-version.1 +35 -0
- data/bundler/lib/bundler/man/bundle-version.1.ronn +24 -0
- 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 +15 -10
- data/bundler/lib/bundler/man/bundle.1.ronn +12 -7
- data/bundler/lib/bundler/man/gemfile.5 +117 -80
- data/bundler/lib/bundler/man/gemfile.5.ronn +105 -84
- data/bundler/lib/bundler/man/index.txt +4 -0
- data/bundler/lib/bundler/match_metadata.rb +13 -0
- data/bundler/lib/bundler/match_platform.rb +0 -1
- data/bundler/lib/bundler/match_remote_metadata.rb +29 -0
- data/bundler/lib/bundler/mirror.rb +5 -7
- data/bundler/lib/bundler/plugin/api/source.rb +4 -9
- data/bundler/lib/bundler/plugin/index.rb +4 -4
- data/bundler/lib/bundler/plugin/installer/git.rb +0 -4
- data/bundler/lib/bundler/plugin/installer/rubygems.rb +0 -8
- data/bundler/lib/bundler/plugin/installer.rb +6 -3
- data/bundler/lib/bundler/plugin.rb +3 -1
- data/bundler/lib/bundler/process_lock.rb +1 -1
- data/bundler/lib/bundler/remote_specification.rb +7 -5
- data/bundler/lib/bundler/resolver/base.rb +109 -0
- data/bundler/lib/bundler/resolver/candidate.rb +94 -0
- data/bundler/lib/bundler/resolver/incompatibility.rb +15 -0
- data/bundler/lib/bundler/resolver/package.rb +72 -0
- data/bundler/lib/bundler/resolver/root.rb +25 -0
- data/bundler/lib/bundler/resolver/spec_group.rb +43 -71
- data/bundler/lib/bundler/resolver.rb +332 -308
- data/bundler/lib/bundler/ruby_dsl.rb +1 -1
- data/bundler/lib/bundler/ruby_version.rb +5 -18
- data/bundler/lib/bundler/rubygems_ext.rb +144 -25
- data/bundler/lib/bundler/rubygems_gem_installer.rb +32 -20
- data/bundler/lib/bundler/rubygems_integration.rb +24 -95
- data/bundler/lib/bundler/runtime.rb +2 -7
- data/bundler/lib/bundler/self_manager.rb +168 -0
- data/bundler/lib/bundler/settings.rb +5 -10
- data/bundler/lib/bundler/setup.rb +4 -1
- data/bundler/lib/bundler/shared_helpers.rb +17 -25
- data/bundler/lib/bundler/source/git/git_proxy.rb +219 -71
- data/bundler/lib/bundler/source/git.rb +23 -26
- data/bundler/lib/bundler/source/metadata.rb +3 -4
- data/bundler/lib/bundler/source/path/installer.rb +1 -22
- data/bundler/lib/bundler/source/path.rb +7 -7
- data/bundler/lib/bundler/source/rubygems.rb +91 -130
- data/bundler/lib/bundler/source/rubygems_aggregate.rb +1 -1
- data/bundler/lib/bundler/source.rb +4 -5
- data/bundler/lib/bundler/source_list.rb +19 -31
- data/bundler/lib/bundler/source_map.rb +15 -2
- data/bundler/lib/bundler/spec_set.rb +63 -35
- data/bundler/lib/bundler/stub_specification.rb +5 -3
- data/bundler/lib/bundler/templates/Executable +3 -5
- data/bundler/lib/bundler/templates/Executable.bundler +6 -11
- data/bundler/lib/bundler/templates/Executable.standalone +4 -4
- data/bundler/lib/bundler/templates/Gemfile +0 -2
- data/bundler/lib/bundler/templates/newgem/Cargo.toml.tt +7 -0
- data/bundler/lib/bundler/templates/newgem/Gemfile.tt +8 -2
- data/bundler/lib/bundler/templates/newgem/README.md.tt +7 -11
- data/bundler/lib/bundler/templates/newgem/Rakefile.tt +27 -3
- data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +12 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +15 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +6 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +12 -0
- data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +13 -3
- data/bundler/lib/bundler/templates/newgem/gitignore.tt +3 -0
- data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +13 -4
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +22 -16
- data/bundler/lib/bundler/templates/newgem/sig/newgem.rbs.tt +8 -0
- data/bundler/lib/bundler/templates/newgem/standard.yml.tt +3 -0
- data/bundler/lib/bundler/templates/newgem/test/minitest/{newgem_test.rb.tt → test_newgem.rb.tt} +1 -1
- data/bundler/lib/bundler/ui/shell.rb +36 -13
- data/bundler/lib/bundler/ui/silent.rb +21 -5
- data/bundler/lib/bundler/uri_normalizer.rb +23 -0
- data/bundler/lib/bundler/vendor/.document +1 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +3 -3
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +0 -1
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +3 -1
- data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +1350 -408
- data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +1 -1
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +1 -1
- data/bundler/lib/bundler/vendor/pub_grub/LICENSE.txt +21 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb +20 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +189 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb +182 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb +150 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb +43 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb +121 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb +45 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb +19 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +60 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb +105 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb +3 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb +129 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +411 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +243 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb +178 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +31 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +6 -6
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +1 -2
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions.rb +6 -2
- data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +6 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/error.rb +9 -4
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +19 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +23 -5
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell.rb +1 -1
- 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/tsort/LICENSE.txt +22 -0
- data/bundler/lib/bundler/vendor/tsort/lib/tsort.rb +452 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +76 -91
- data/bundler/lib/bundler/vendor/uri/lib/uri/file.rb +7 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +2 -2
- data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +32 -13
- data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +40 -3
- data/bundler/lib/bundler/vendor/uri/lib/uri/https.rb +2 -2
- data/bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb +2 -2
- data/bundler/lib/bundler/vendor/uri/lib/uri/ldaps.rb +2 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb +2 -3
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +14 -21
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +11 -17
- data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/ws.rb +83 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/wss.rb +23 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri.rb +3 -3
- data/bundler/lib/bundler/vendored_persistent.rb +1 -33
- data/bundler/lib/bundler/{vendored_molinillo.rb → vendored_pub_grub.rb} +1 -1
- data/bundler/lib/bundler/{vendored_tmpdir.rb → vendored_tsort.rb} +1 -1
- data/bundler/lib/bundler/version.rb +5 -1
- data/bundler/lib/bundler/worker.rb +5 -7
- data/bundler/lib/bundler.rb +50 -77
- data/hide_lib_for_update/note.txt +0 -4
- data/lib/rubygems/available_set.rb +3 -3
- data/lib/rubygems/basic_specification.rb +12 -12
- data/lib/rubygems/bundler_version_finder.rb +14 -46
- data/lib/rubygems/command.rb +47 -39
- data/lib/rubygems/command_manager.rb +34 -13
- data/lib/rubygems/commands/build_command.rb +11 -8
- data/lib/rubygems/commands/cert_command.rb +39 -39
- data/lib/rubygems/commands/check_command.rb +20 -20
- data/lib/rubygems/commands/cleanup_command.rb +23 -23
- data/lib/rubygems/commands/contents_command.rb +13 -13
- data/lib/rubygems/commands/dependency_command.rb +35 -45
- data/lib/rubygems/commands/environment_command.rb +10 -7
- data/lib/rubygems/commands/exec_command.rb +248 -0
- data/lib/rubygems/commands/fetch_command.rb +32 -13
- data/lib/rubygems/commands/generate_index_command.rb +17 -17
- data/lib/rubygems/commands/help_command.rb +6 -6
- data/lib/rubygems/commands/info_command.rb +3 -3
- data/lib/rubygems/commands/install_command.rb +31 -24
- data/lib/rubygems/commands/list_command.rb +4 -4
- 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 +17 -12
- data/lib/rubygems/commands/pristine_command.rb +64 -49
- data/lib/rubygems/commands/push_command.rb +16 -16
- data/lib/rubygems/commands/query_command.rb +9 -9
- data/lib/rubygems/commands/rdoc_command.rb +26 -25
- data/lib/rubygems/commands/search_command.rb +4 -4
- data/lib/rubygems/commands/server_command.rb +16 -79
- data/lib/rubygems/commands/setup_command.rb +172 -173
- 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 +22 -22
- data/lib/rubygems/commands/specification_command.rb +18 -18
- data/lib/rubygems/commands/stale_command.rb +2 -2
- data/lib/rubygems/commands/uninstall_command.rb +43 -40
- data/lib/rubygems/commands/unpack_command.rb +13 -13
- data/lib/rubygems/commands/update_command.rb +61 -72
- data/lib/rubygems/commands/which_command.rb +7 -7
- data/lib/rubygems/commands/yank_command.rb +11 -11
- data/lib/rubygems/compatibility.rb +4 -2
- data/lib/rubygems/config_file.rb +58 -25
- data/lib/rubygems/core_ext/kernel_gem.rb +1 -6
- data/lib/rubygems/core_ext/kernel_require.rb +108 -115
- data/lib/rubygems/core_ext/kernel_warn.rb +33 -37
- data/lib/rubygems/core_ext/tcpsocket_init.rb +1 -1
- data/lib/rubygems/defaults.rb +32 -36
- data/lib/rubygems/dependency.rb +20 -17
- data/lib/rubygems/dependency_installer.rb +37 -37
- data/lib/rubygems/dependency_list.rb +7 -7
- data/lib/rubygems/deprecate.rb +55 -8
- data/lib/rubygems/doctor.rb +21 -21
- data/lib/rubygems/errors.rb +3 -6
- data/lib/rubygems/exceptions.rb +35 -7
- data/lib/rubygems/ext/build_error.rb +1 -1
- data/lib/rubygems/ext/builder.rb +51 -22
- data/lib/rubygems/ext/cargo_builder/link_flag_converter.rb +27 -0
- data/lib/rubygems/ext/cargo_builder.rb +360 -0
- 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 +35 -59
- data/lib/rubygems/ext/rake_builder.rb +3 -3
- data/lib/rubygems/ext.rb +7 -6
- data/lib/rubygems/gem_runner.rb +12 -16
- data/lib/rubygems/gemcutter_utilities.rb +60 -21
- data/lib/rubygems/indexer.rb +30 -28
- data/lib/rubygems/install_default_message.rb +2 -2
- data/lib/rubygems/install_message.rb +2 -2
- data/lib/rubygems/install_update_options.rb +70 -61
- data/lib/rubygems/installer.rb +135 -87
- data/lib/rubygems/installer_uninstaller_utils.rb +2 -2
- data/lib/rubygems/local_remote_options.rb +22 -24
- data/lib/rubygems/mock_gem_ui.rb +2 -2
- data/lib/rubygems/name_tuple.rb +6 -7
- data/lib/rubygems/optparse/.document +1 -0
- data/lib/rubygems/optparse/COPYING +56 -0
- data/lib/rubygems/optparse/lib/optionparser.rb +2 -0
- data/lib/rubygems/optparse/lib/optparse/ac.rb +54 -0
- data/lib/rubygems/optparse/lib/optparse/date.rb +18 -0
- data/lib/rubygems/optparse/lib/optparse/kwargs.rb +22 -0
- data/lib/rubygems/optparse/lib/optparse/shellwords.rb +7 -0
- data/lib/rubygems/optparse/lib/optparse/time.rb +11 -0
- data/lib/rubygems/optparse/lib/optparse/uri.rb +7 -0
- data/lib/rubygems/optparse/lib/optparse/version.rb +71 -0
- data/lib/rubygems/optparse/lib/optparse.rb +2308 -0
- data/lib/rubygems/optparse.rb +3 -0
- data/lib/rubygems/package/file_source.rb +2 -2
- data/lib/rubygems/package/old.rb +9 -9
- data/lib/rubygems/package/tar_header.rb +62 -62
- data/lib/rubygems/package/tar_reader/entry.rb +90 -9
- data/lib/rubygems/package/tar_reader.rb +1 -29
- data/lib/rubygems/package/tar_writer.rb +7 -7
- data/lib/rubygems/package.rb +77 -60
- data/lib/rubygems/package_task.rb +4 -4
- data/lib/rubygems/path_support.rb +1 -6
- data/lib/rubygems/platform.rb +94 -61
- data/lib/rubygems/psych_tree.rb +1 -1
- data/lib/rubygems/query_utils.rb +49 -51
- data/lib/rubygems/rdoc.rb +2 -2
- data/lib/rubygems/remote_fetcher.rb +27 -27
- data/lib/rubygems/request/connection_pools.rb +4 -4
- data/lib/rubygems/request/http_pool.rb +1 -1
- data/lib/rubygems/request.rb +24 -24
- data/lib/rubygems/request_set/gem_dependency_api.rb +122 -123
- 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 +9 -9
- data/lib/rubygems/request_set.rb +18 -18
- data/lib/rubygems/requirement.rb +15 -15
- 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 +21 -26
- 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/lib/molinillo/dependency_graph.rb +3 -3
- data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +32 -26
- data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +1 -1
- data/lib/rubygems/resolver/molinillo.rb +1 -1
- data/lib/rubygems/resolver/specification.rb +1 -1
- data/lib/rubygems/resolver/stats.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 +40 -40
- data/lib/rubygems/s3_uri_signer.rb +6 -6
- data/lib/rubygems/safe_yaml.rb +10 -10
- data/lib/rubygems/security/policies.rb +47 -47
- data/lib/rubygems/security/policy.rb +19 -21
- data/lib/rubygems/security/signer.rb +5 -5
- data/lib/rubygems/security/trust_dir.rb +4 -4
- data/lib/rubygems/security.rb +37 -43
- data/lib/rubygems/security_option.rb +7 -7
- data/lib/rubygems/source/git.rb +25 -24
- 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 +27 -32
- data/lib/rubygems/source_list.rb +5 -9
- data/lib/rubygems/spec_fetcher.rb +37 -37
- data/lib/rubygems/specification.rb +265 -211
- data/lib/rubygems/specification_policy.rb +49 -30
- data/lib/rubygems/stub_specification.rb +24 -27
- data/lib/rubygems/text.rb +22 -21
- data/lib/rubygems/tsort/.document +1 -0
- data/lib/rubygems/tsort/LICENSE.txt +22 -0
- data/lib/rubygems/tsort/lib/tsort.rb +452 -0
- data/lib/rubygems/tsort.rb +3 -0
- data/lib/rubygems/uninstaller.rb +29 -26
- data/lib/rubygems/unknown_command_spell_checker.rb +21 -0
- data/lib/rubygems/update_suggestion.rb +69 -0
- data/lib/rubygems/uri.rb +45 -30
- data/lib/rubygems/uri_formatter.rb +1 -1
- data/lib/rubygems/user_interaction.rb +42 -28
- data/lib/rubygems/util/licenses.rb +4 -2
- data/lib/rubygems/util.rb +12 -16
- data/lib/rubygems/validator.rb +6 -6
- data/lib/rubygems/version.rb +28 -17
- data/lib/rubygems/version_option.rb +5 -5
- data/lib/rubygems.rb +129 -117
- data/rubygems-update.gemspec +3 -3
- data/setup.rb +11 -16
- data/test/rubygems/alternate_cert.pem +14 -14
- data/test/rubygems/alternate_cert_32.pem +15 -15
- data/test/rubygems/alternate_key.pem +25 -25
- data/test/rubygems/bundler_test_gem.rb +419 -0
- data/test/rubygems/child_cert.pem +15 -16
- data/test/rubygems/child_cert_32.pem +15 -16
- data/test/rubygems/child_key.pem +25 -25
- data/test/rubygems/data/excon-0.7.7.gemspec.rz +0 -0
- data/test/rubygems/data/pry-0.4.7.gemspec.rz +0 -0
- data/test/rubygems/encrypted_private_key.pem +26 -26
- data/test/rubygems/expired_cert.pem +15 -15
- data/test/rubygems/future_cert.pem +15 -15
- data/test/rubygems/future_cert_32.pem +15 -15
- data/test/rubygems/grandchild_cert.pem +15 -16
- data/test/rubygems/grandchild_cert_32.pem +15 -16
- data/test/rubygems/grandchild_key.pem +25 -25
- data/test/rubygems/helper.rb +237 -207
- data/test/rubygems/installer_test_case.rb +13 -13
- data/test/rubygems/invalid_issuer_cert.pem +16 -16
- data/test/rubygems/invalid_issuer_cert_32.pem +16 -16
- data/test/rubygems/invalid_key.pem +25 -25
- data/test/rubygems/invalid_signer_cert.pem +15 -15
- data/test/rubygems/invalid_signer_cert_32.pem +15 -15
- data/test/rubygems/invalidchild_cert.pem +15 -16
- data/test/rubygems/invalidchild_cert_32.pem +15 -16
- data/test/rubygems/invalidchild_key.pem +25 -25
- data/test/rubygems/package/tar_test_case.rb +52 -17
- data/test/rubygems/packages/Bluebie-legs-0.6.2.gem +0 -0
- data/test/rubygems/plugin/exception/rubygems_plugin.rb +1 -1
- data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +1 -1
- data/test/rubygems/private_key.pem +25 -25
- data/test/rubygems/public_cert.pem +16 -16
- data/test/rubygems/public_cert_32.pem +15 -15
- data/test/rubygems/public_key.pem +7 -7
- data/test/rubygems/rubygems_plugin.rb +2 -2
- data/test/rubygems/simple_gem.rb +1 -1
- data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +4 -4
- data/test/rubygems/test_bundled_ca.rb +11 -11
- data/test/rubygems/test_config.rb +5 -5
- data/test/rubygems/test_deprecate.rb +3 -3
- data/test/rubygems/test_exit.rb +17 -0
- data/test/rubygems/test_gem.rb +367 -757
- data/test/rubygems/test_gem_available_set.rb +21 -21
- data/test/rubygems/test_gem_bundler_version_finder.rb +27 -47
- data/test/rubygems/test_gem_command.rb +45 -45
- data/test/rubygems/test_gem_command_manager.rb +124 -27
- data/test/rubygems/test_gem_commands_build_command.rb +73 -63
- data/test/rubygems/test_gem_commands_cert_command.rb +105 -107
- 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 +28 -28
- data/test/rubygems/test_gem_commands_dependency_command.rb +36 -36
- data/test/rubygems/test_gem_commands_environment_command.rb +38 -14
- data/test/rubygems/test_gem_commands_exec_command.rb +851 -0
- data/test/rubygems/test_gem_commands_fetch_command.rb +159 -26
- 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 +28 -2
- data/test/rubygems/test_gem_commands_install_command.rb +200 -132
- 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 +5 -5
- data/test/rubygems/test_gem_commands_outdated_command.rb +9 -9
- data/test/rubygems/test_gem_commands_owner_command.rb +126 -45
- data/test/rubygems/test_gem_commands_pristine_command.rb +141 -92
- data/test/rubygems/test_gem_commands_push_command.rb +85 -59
- 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 +6 -48
- data/test/rubygems/test_gem_commands_setup_command.rb +169 -92
- data/test/rubygems/test_gem_commands_signin_command.rb +154 -26
- data/test/rubygems/test_gem_commands_signout_command.rb +3 -3
- data/test/rubygems/test_gem_commands_sources_command.rb +74 -25
- 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 +99 -82
- data/test/rubygems/test_gem_commands_unpack_command.rb +31 -31
- data/test/rubygems/test_gem_commands_update_command.rb +202 -91
- data/test/rubygems/test_gem_commands_which_command.rb +6 -6
- data/test/rubygems/test_gem_commands_yank_command.rb +43 -43
- data/test/rubygems/test_gem_config_file.rb +93 -81
- data/test/rubygems/test_gem_dependency.rb +78 -80
- 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 +60 -62
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore +1 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +8 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.lock +233 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.toml +10 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/src/lib.rs +27 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb +1 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/.gitignore +1 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +247 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +10 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +8 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +51 -0
- data/test/rubygems/test_gem_ext_cargo_builder.rb +166 -0
- data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +33 -0
- data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +60 -0
- data/test/rubygems/test_gem_ext_cmake_builder.rb +17 -15
- data/test/rubygems/test_gem_ext_configure_builder.rb +13 -13
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +53 -50
- data/test/rubygems/test_gem_ext_rake_builder.rb +15 -15
- data/test/rubygems/test_gem_gem_runner.rb +13 -8
- data/test/rubygems/test_gem_gemcutter_utilities.rb +71 -65
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +4 -4
- data/test/rubygems/test_gem_indexer.rb +90 -67
- data/test/rubygems/test_gem_install_update_options.rb +18 -18
- data/test/rubygems/test_gem_installer.rb +511 -327
- 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 +246 -236
- data/test/rubygems/test_gem_package_old.rb +13 -13
- data/test/rubygems/test_gem_package_tar_header.rb +47 -47
- data/test/rubygems/test_gem_package_tar_reader.rb +55 -8
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +161 -16
- 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 +15 -19
- data/test/rubygems/test_gem_platform.rb +335 -214
- data/test/rubygems/test_gem_rdoc.rb +14 -14
- data/test/rubygems/test_gem_remote_fetcher.rb +169 -154
- data/test/rubygems/test_gem_request.rb +65 -59
- data/test/rubygems/test_gem_request_connection_pools.rb +29 -29
- data/test/rubygems/test_gem_request_set.rb +100 -100
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +209 -211
- data/test/rubygems/test_gem_request_set_lockfile.rb +86 -86
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +58 -58
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +62 -62
- data/test/rubygems/test_gem_requirement.rb +47 -42
- data/test/rubygems/test_gem_resolver.rb +173 -106
- 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 +79 -35
- 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 +69 -69
- data/test/rubygems/test_gem_security_policy.rb +72 -72
- data/test/rubygems/test_gem_security_signer.rb +34 -34
- data/test/rubygems/test_gem_security_trust_dir.rb +6 -6
- 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 +69 -62
- 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 +560 -493
- data/test/rubygems/test_gem_stream_ui.rb +20 -20
- data/test/rubygems/test_gem_stub_specification.rb +32 -48
- data/test/rubygems/test_gem_text.rb +7 -1
- data/test/rubygems/test_gem_uninstaller.rb +113 -113
- data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +3 -3
- data/test/rubygems/test_gem_update_suggestion.rb +208 -0
- 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 +27 -16
- data/test/rubygems/test_gem_version_option.rb +15 -15
- data/test/rubygems/test_kernel.rb +42 -60
- data/test/rubygems/test_project_sanity.rb +2 -2
- data/test/rubygems/test_remote_fetch_error.rb +6 -6
- data/test/rubygems/test_require.rb +132 -174
- data/test/rubygems/test_rubygems.rb +42 -12
- data/test/rubygems/utilities.rb +59 -37
- data/test/rubygems/wrong_key_cert.pem +15 -15
- data/test/rubygems/wrong_key_cert_32.pem +15 -15
- data/test/test_changelog_generator.rb +1 -0
- metadata +97 -41
- data/bundler/lib/bundler/dep_proxy.rb +0 -55
- data/bundler/lib/bundler/gemdeps.rb +0 -29
- data/bundler/lib/bundler/psyched_yaml.rb +0 -22
- data/bundler/lib/bundler/templates/gems.rb +0 -8
- data/bundler/lib/bundler/templates/newgem/travis.yml.tt +0 -6
- data/bundler/lib/bundler/vendor/molinillo/LICENSE +0 -9
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +0 -88
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +0 -36
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +0 -66
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +0 -62
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +0 -63
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +0 -61
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +0 -126
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +0 -46
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +0 -36
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +0 -164
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +0 -255
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +0 -143
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +0 -6
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +0 -112
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +0 -67
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +0 -839
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +0 -46
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +0 -58
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -11
- data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +0 -154
- data/bundler/lib/bundler/version_ranges.rb +0 -122
- data/lib/rubygems/psych_additions.rb +0 -10
- data/lib/rubygems/server.rb +0 -882
- data/test/rubygems/bogussources.rb +0 -9
- data/test/rubygems/data/null-type.gemspec.rz +0 -0
- data/test/rubygems/test_gem_server.rb +0 -608
- /data/bundler/lib/bundler/templates/newgem/ext/newgem/{extconf.rb.tt → extconf-c.rb.tt} +0 -0
|
@@ -12,6 +12,8 @@ module Bundler
|
|
|
12
12
|
|
|
13
13
|
warn_if_root
|
|
14
14
|
|
|
15
|
+
Bundler.self_manager.install_locked_bundler_and_restart_with_it_if_needed
|
|
16
|
+
|
|
15
17
|
Bundler::SharedHelpers.set_env "RB_USER_INSTALL", "1" if Bundler::FREEBSD
|
|
16
18
|
|
|
17
19
|
# Disable color in deployment mode
|
|
@@ -92,9 +94,8 @@ module Bundler
|
|
|
92
94
|
|
|
93
95
|
def warn_if_root
|
|
94
96
|
return if Bundler.settings[:silence_root_warning] || Gem.win_platform? || !Process.uid.zero?
|
|
95
|
-
Bundler.ui.warn "Don't run Bundler as root.
|
|
96
|
-
|
|
97
|
-
"application for all non-root users on this machine.", :wrap => true
|
|
97
|
+
Bundler.ui.warn "Don't run Bundler as root. Installing your bundle as root " \
|
|
98
|
+
"will break this application for all non-root users on this machine.", :wrap => true
|
|
98
99
|
end
|
|
99
100
|
|
|
100
101
|
def dependencies_count_for(definition)
|
|
@@ -133,42 +134,23 @@ module Bundler
|
|
|
133
134
|
end
|
|
134
135
|
|
|
135
136
|
def normalize_groups
|
|
136
|
-
options[:with] &&= options[:with].join(":").tr(" ", ":").split(":")
|
|
137
|
-
options[:without] &&= options[:without].join(":").tr(" ", ":").split(":")
|
|
138
|
-
|
|
139
137
|
check_for_group_conflicts_in_cli_options
|
|
140
138
|
|
|
141
|
-
|
|
142
|
-
Bundler.settings.set_command_option :without, nil
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
with -= options[:without] if options[:without]
|
|
147
|
-
|
|
148
|
-
without = options.fetch(:without, [])
|
|
149
|
-
without |= Bundler.settings[:without].map(&:to_s)
|
|
150
|
-
without -= options[:with] if options[:with]
|
|
151
|
-
|
|
152
|
-
options[:with] = with
|
|
153
|
-
options[:without] = without
|
|
154
|
-
|
|
155
|
-
unless Bundler.settings[:without] == options[:without] && Bundler.settings[:with] == options[:with]
|
|
156
|
-
# need to nil them out first to get around validation for backwards compatibility
|
|
157
|
-
Bundler.settings.set_command_option :without, nil
|
|
158
|
-
Bundler.settings.set_command_option :with, nil
|
|
159
|
-
Bundler.settings.set_command_option :without, options[:without] - options[:with]
|
|
160
|
-
Bundler.settings.set_command_option :with, options[:with]
|
|
161
|
-
end
|
|
139
|
+
# need to nil them out first to get around validation for backwards compatibility
|
|
140
|
+
Bundler.settings.set_command_option :without, nil
|
|
141
|
+
Bundler.settings.set_command_option :with, nil
|
|
142
|
+
Bundler.settings.set_command_option :without, options[:without]
|
|
143
|
+
Bundler.settings.set_command_option :with, options[:with]
|
|
162
144
|
end
|
|
163
145
|
|
|
164
146
|
def normalize_settings
|
|
165
147
|
Bundler.settings.set_command_option :path, nil if options[:system]
|
|
166
|
-
Bundler.settings.temporary(:path_relative_to_cwd => false) do
|
|
167
|
-
Bundler.settings.set_command_option :path, "vendor/bundle" if Bundler.settings[:deployment] && Bundler.settings[:path].nil?
|
|
168
|
-
end
|
|
169
148
|
Bundler.settings.set_command_option_if_given :path, options[:path]
|
|
170
|
-
|
|
171
|
-
|
|
149
|
+
|
|
150
|
+
if options["standalone"] && Bundler.settings[:path].nil? && !options["local"]
|
|
151
|
+
Bundler.settings.temporary(:path_relative_to_cwd => false) do
|
|
152
|
+
Bundler.settings.set_command_option :path, "bundle"
|
|
153
|
+
end
|
|
172
154
|
end
|
|
173
155
|
|
|
174
156
|
bin_option = options["binstubs"]
|
|
@@ -185,7 +167,7 @@ module Bundler
|
|
|
185
167
|
|
|
186
168
|
Bundler.settings.set_command_option_if_given :clean, options["clean"]
|
|
187
169
|
|
|
188
|
-
normalize_groups
|
|
170
|
+
normalize_groups if options[:without] || options[:with]
|
|
189
171
|
|
|
190
172
|
options[:force] = options[:redownload]
|
|
191
173
|
end
|
|
@@ -15,19 +15,22 @@ module Bundler
|
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
print = options[:print]
|
|
18
|
-
|
|
19
|
-
Bundler.ui =
|
|
18
|
+
previous_ui_level = Bundler.ui.level
|
|
19
|
+
Bundler.ui.level = "silent" if print
|
|
20
20
|
|
|
21
21
|
Bundler::Fetcher.disable_endpoint = options["full-index"]
|
|
22
22
|
|
|
23
23
|
update = options[:update]
|
|
24
24
|
conservative = options[:conservative]
|
|
25
|
+
bundler = options[:bundler]
|
|
25
26
|
|
|
26
27
|
if update.is_a?(Array) # unlocking specific gems
|
|
27
28
|
Bundler::CLI::Common.ensure_all_gems_in_lockfile!(update)
|
|
28
29
|
update = { :gems => update, :conservative => conservative }
|
|
29
|
-
elsif update
|
|
30
|
-
update = { :conservative => conservative }
|
|
30
|
+
elsif update && conservative
|
|
31
|
+
update = { :conservative => conservative }
|
|
32
|
+
elsif update && bundler
|
|
33
|
+
update = { :bundler => bundler }
|
|
31
34
|
end
|
|
32
35
|
definition = Bundler.definition(update)
|
|
33
36
|
|
|
@@ -61,7 +64,7 @@ module Bundler
|
|
|
61
64
|
definition.lock(file)
|
|
62
65
|
end
|
|
63
66
|
|
|
64
|
-
Bundler.ui =
|
|
67
|
+
Bundler.ui.level = previous_ui_level
|
|
65
68
|
end
|
|
66
69
|
end
|
|
67
70
|
end
|
|
@@ -2,23 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
module Bundler
|
|
4
4
|
class CLI::Open
|
|
5
|
-
attr_reader :options, :name
|
|
5
|
+
attr_reader :options, :name, :path
|
|
6
6
|
def initialize(options, name)
|
|
7
7
|
@options = options
|
|
8
8
|
@name = name
|
|
9
|
+
@path = options[:path] unless options[:path].nil?
|
|
9
10
|
end
|
|
10
11
|
|
|
11
12
|
def run
|
|
13
|
+
raise InvalidOption, "Cannot specify `--path` option without a value" if !@path.nil? && @path.empty?
|
|
12
14
|
editor = [ENV["BUNDLER_EDITOR"], ENV["VISUAL"], ENV["EDITOR"]].find {|e| !e.nil? && !e.empty? }
|
|
13
15
|
return Bundler.ui.info("To open a bundled gem, set $EDITOR or $BUNDLER_EDITOR") unless editor
|
|
14
16
|
return unless spec = Bundler::CLI::Common.select_spec(name, :regex_match)
|
|
15
17
|
if spec.default_gem?
|
|
16
18
|
Bundler.ui.info "Unable to open #{name} because it's a default gem, so the directory it would normally be installed to does not exist."
|
|
17
19
|
else
|
|
18
|
-
|
|
19
|
-
Dir.chdir(
|
|
20
|
+
root_path = spec.full_gem_path
|
|
21
|
+
Dir.chdir(root_path) do
|
|
20
22
|
require "shellwords"
|
|
21
|
-
command = Shellwords.split(editor)
|
|
23
|
+
command = Shellwords.split(editor) << File.join([root_path, path].compact)
|
|
22
24
|
Bundler.with_original_env do
|
|
23
25
|
system(*command)
|
|
24
26
|
end || Bundler.ui.info("Could not run '#{command.join(" ")}'")
|
|
@@ -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
|
|
@@ -111,9 +111,7 @@ module Bundler
|
|
|
111
111
|
end.compact
|
|
112
112
|
|
|
113
113
|
if options[:parseable]
|
|
114
|
-
relevant_outdated_gems
|
|
115
|
-
print_gems(gems)
|
|
116
|
-
end
|
|
114
|
+
print_gems(relevant_outdated_gems)
|
|
117
115
|
else
|
|
118
116
|
print_gems_table(relevant_outdated_gems)
|
|
119
117
|
end
|
|
@@ -129,6 +127,12 @@ module Bundler
|
|
|
129
127
|
|
|
130
128
|
private
|
|
131
129
|
|
|
130
|
+
def loaded_from_for(spec)
|
|
131
|
+
return unless spec.respond_to?(:loaded_from)
|
|
132
|
+
|
|
133
|
+
spec.loaded_from
|
|
134
|
+
end
|
|
135
|
+
|
|
132
136
|
def groups_text(group_text, groups)
|
|
133
137
|
"#{group_text}#{groups.split(",").size > 1 ? "s" : ""} \"#{groups}\""
|
|
134
138
|
end
|
|
@@ -184,7 +188,10 @@ module Bundler
|
|
|
184
188
|
|
|
185
189
|
def print_gem(current_spec, active_spec, dependency, groups)
|
|
186
190
|
spec_version = "#{active_spec.version}#{active_spec.git_version}"
|
|
187
|
-
|
|
191
|
+
if Bundler.ui.debug?
|
|
192
|
+
loaded_from = loaded_from_for(active_spec)
|
|
193
|
+
spec_version += " (from #{loaded_from})" if loaded_from
|
|
194
|
+
end
|
|
188
195
|
current_version = "#{current_spec.version}#{current_spec.git_version}"
|
|
189
196
|
|
|
190
197
|
if dependency && dependency.specific?
|
|
@@ -211,7 +218,7 @@ module Bundler
|
|
|
211
218
|
dependency = dependency.requirement if dependency
|
|
212
219
|
|
|
213
220
|
ret_val = [active_spec.name, current_version, spec_version, dependency.to_s, groups.to_s]
|
|
214
|
-
ret_val << active_spec.
|
|
221
|
+
ret_val << loaded_from_for(active_spec).to_s if Bundler.ui.debug?
|
|
215
222
|
ret_val
|
|
216
223
|
end
|
|
217
224
|
|
|
@@ -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]
|
|
@@ -23,7 +23,7 @@ module Bundler
|
|
|
23
23
|
output << "No ruby version specified"
|
|
24
24
|
end
|
|
25
25
|
else
|
|
26
|
-
output << "Your platform is: #{
|
|
26
|
+
output << "Your platform is: #{Gem::Platform.local}"
|
|
27
27
|
output << "Your app has gems that work on these platforms:\n#{platforms.join("\n")}"
|
|
28
28
|
|
|
29
29
|
if ruby_version
|
|
@@ -11,12 +11,16 @@ module Bundler
|
|
|
11
11
|
def run
|
|
12
12
|
Bundler.ui.level = "warn" if options[:quiet]
|
|
13
13
|
|
|
14
|
+
update_bundler = options[:bundler]
|
|
15
|
+
|
|
16
|
+
Bundler.self_manager.update_bundler_and_restart_with_it_if_needed(update_bundler) if update_bundler
|
|
17
|
+
|
|
14
18
|
Plugin.gemfile_install(Bundler.default_gemfile) if Bundler.feature_flag.plugins?
|
|
15
19
|
|
|
16
20
|
sources = Array(options[:source])
|
|
17
21
|
groups = Array(options[:group]).map(&:to_sym)
|
|
18
22
|
|
|
19
|
-
full_update = gems.empty? && sources.empty? && groups.empty? && !options[:ruby] && !
|
|
23
|
+
full_update = gems.empty? && sources.empty? && groups.empty? && !options[:ruby] && !update_bundler
|
|
20
24
|
|
|
21
25
|
if full_update && !options[:all]
|
|
22
26
|
if Bundler.feature_flag.update_requires_all_flag?
|
|
@@ -49,7 +53,7 @@ module Bundler
|
|
|
49
53
|
|
|
50
54
|
Bundler.definition(:gems => gems, :sources => sources, :ruby => options[:ruby],
|
|
51
55
|
:conservative => conservative,
|
|
52
|
-
:bundler =>
|
|
56
|
+
:bundler => update_bundler)
|
|
53
57
|
end
|
|
54
58
|
|
|
55
59
|
Bundler::CLI::Common.configure_gem_version_promoter(Bundler.definition, options)
|
|
@@ -66,7 +70,7 @@ module Bundler
|
|
|
66
70
|
|
|
67
71
|
if locked_gems = Bundler.definition.locked_gems
|
|
68
72
|
previous_locked_info = locked_gems.specs.reduce({}) do |h, s|
|
|
69
|
-
h[s.name] = { :spec => s, :version => s.version, :source => s.source.
|
|
73
|
+
h[s.name] = { :spec => s, :version => s.version, :source => s.source.identifier }
|
|
70
74
|
h
|
|
71
75
|
end
|
|
72
76
|
end
|
|
@@ -95,7 +99,7 @@ module Bundler
|
|
|
95
99
|
end
|
|
96
100
|
|
|
97
101
|
locked_source = locked_info[:source]
|
|
98
|
-
new_source = new_spec.source.
|
|
102
|
+
new_source = new_spec.source.identifier
|
|
99
103
|
next if locked_source != new_source
|
|
100
104
|
|
|
101
105
|
new_version = new_spec.version
|
|
@@ -23,7 +23,7 @@ module Bundler
|
|
|
23
23
|
Bundler.ui.warn "Make sure you have the graphviz ruby gem. You can install it with:"
|
|
24
24
|
Bundler.ui.warn "`gem install ruby-graphviz`"
|
|
25
25
|
rescue StandardError => e
|
|
26
|
-
raise unless e.message
|
|
26
|
+
raise unless e.message.to_s.include?("GraphViz not installed or dot not in PATH")
|
|
27
27
|
Bundler.ui.error e.message
|
|
28
28
|
Bundler.ui.warn "Please install GraphViz. On a Mac with Homebrew, you can run `brew install graphviz`."
|
|
29
29
|
end
|
data/bundler/lib/bundler/cli.rb
CHANGED
|
@@ -10,6 +10,7 @@ module Bundler
|
|
|
10
10
|
|
|
11
11
|
AUTO_INSTALL_CMDS = %w[show binstubs outdated exec open console licenses clean].freeze
|
|
12
12
|
PARSEABLE_COMMANDS = %w[check config help exec platform show version].freeze
|
|
13
|
+
EXTENSIONS = ["c", "rust"].freeze
|
|
13
14
|
|
|
14
15
|
COMMAND_ALIASES = {
|
|
15
16
|
"check" => "c",
|
|
@@ -22,6 +23,8 @@ module Bundler
|
|
|
22
23
|
}.freeze
|
|
23
24
|
|
|
24
25
|
def self.start(*)
|
|
26
|
+
check_deprecated_ext_option(ARGV) if ARGV.include?("--ext")
|
|
27
|
+
|
|
25
28
|
super
|
|
26
29
|
ensure
|
|
27
30
|
Bundler::SharedHelpers.print_major_deprecations!
|
|
@@ -61,6 +64,8 @@ module Bundler
|
|
|
61
64
|
Bundler.reset_settings_and_root!
|
|
62
65
|
end
|
|
63
66
|
|
|
67
|
+
Bundler.self_manager.restart_with_locked_bundler_if_needed
|
|
68
|
+
|
|
64
69
|
Bundler.settings.set_command_option_if_given :retry, options[:retry]
|
|
65
70
|
|
|
66
71
|
current_cmd = args.last[:current_command].name
|
|
@@ -151,6 +156,7 @@ module Bundler
|
|
|
151
156
|
dependency listed in the gemspec file to the newly created Gemfile.
|
|
152
157
|
D
|
|
153
158
|
method_option "gemspec", :type => :string, :banner => "Use the specified .gemspec to create the Gemfile"
|
|
159
|
+
method_option "gemfile", :type => :string, :banner => "Use the specified name for the gemfile instead of 'Gemfile'"
|
|
154
160
|
def init
|
|
155
161
|
require_relative "cli/init"
|
|
156
162
|
Init.new(options.dup).run
|
|
@@ -216,6 +222,8 @@ module Bundler
|
|
|
216
222
|
"Specify the number of jobs to run in parallel"
|
|
217
223
|
method_option "local", :type => :boolean, :banner =>
|
|
218
224
|
"Do not attempt to fetch gems remotely and use the gem cache instead"
|
|
225
|
+
method_option "prefer-local", :type => :boolean, :banner =>
|
|
226
|
+
"Only attempt to fetch gems remotely if not present locally, even if newer versions are available remotely"
|
|
219
227
|
method_option "no-cache", :type => :boolean, :banner =>
|
|
220
228
|
"Don't update the existing gem cache."
|
|
221
229
|
method_option "redownload", :type => :boolean, :aliases => "--force", :banner =>
|
|
@@ -234,7 +242,7 @@ module Bundler
|
|
|
234
242
|
"Install to the system location ($BUNDLE_PATH or $GEM_HOME) even if the bundle was previously installed somewhere else for this application"
|
|
235
243
|
method_option "trust-policy", :alias => "P", :type => :string, :banner =>
|
|
236
244
|
"Gem trust policy (like gem install -P). Must be one of " +
|
|
237
|
-
|
|
245
|
+
Bundler.rubygems.security_policy_keys.join("|")
|
|
238
246
|
method_option "without", :type => :array, :banner =>
|
|
239
247
|
"Exclude gems that are part of the specified named group."
|
|
240
248
|
method_option "with", :type => :array, :banner =>
|
|
@@ -288,6 +296,8 @@ module Bundler
|
|
|
288
296
|
"Prefer updating only to next minor version"
|
|
289
297
|
method_option "major", :type => :boolean, :banner =>
|
|
290
298
|
"Prefer updating to next major version (default)"
|
|
299
|
+
method_option "pre", :type => :boolean, :banner =>
|
|
300
|
+
"Always choose the highest allowed version when updating gems, regardless of prerelease status"
|
|
291
301
|
method_option "strict", :type => :boolean, :banner =>
|
|
292
302
|
"Do not allow any gem to be updated past latest --patch | --minor | --major"
|
|
293
303
|
method_option "conservative", :type => :boolean, :banner =>
|
|
@@ -331,6 +341,7 @@ module Bundler
|
|
|
331
341
|
|
|
332
342
|
desc "info GEM [OPTIONS]", "Show information for the given gem"
|
|
333
343
|
method_option "path", :type => :boolean, :banner => "Print full path to gem"
|
|
344
|
+
method_option "version", :type => :boolean, :banner => "Print gem version"
|
|
334
345
|
def info(gem_name)
|
|
335
346
|
require_relative "cli/info"
|
|
336
347
|
Info.new(options, gem_name).run
|
|
@@ -366,8 +377,12 @@ module Bundler
|
|
|
366
377
|
method_option "version", :aliases => "-v", :type => :string
|
|
367
378
|
method_option "group", :aliases => "-g", :type => :string
|
|
368
379
|
method_option "source", :aliases => "-s", :type => :string
|
|
380
|
+
method_option "require", :aliases => "-r", :type => :string, :banner => "Adds require path to gem. Provide false, or a path as a string."
|
|
381
|
+
method_option "path", :type => :string
|
|
369
382
|
method_option "git", :type => :string
|
|
383
|
+
method_option "github", :type => :string
|
|
370
384
|
method_option "branch", :type => :string
|
|
385
|
+
method_option "ref", :type => :string
|
|
371
386
|
method_option "skip-install", :type => :boolean, :banner =>
|
|
372
387
|
"Adds gem to the Gemfile but does not install it"
|
|
373
388
|
method_option "optimistic", :type => :boolean, :banner => "Adds optimistic declaration of version to gem"
|
|
@@ -385,7 +400,7 @@ module Bundler
|
|
|
385
400
|
are up to date, Bundler will exit with a status of 0. Otherwise, it will exit 1.
|
|
386
401
|
|
|
387
402
|
For more information on patch level options (--major, --minor, --patch,
|
|
388
|
-
--
|
|
403
|
+
--strict) see documentation on the same options on the update command.
|
|
389
404
|
D
|
|
390
405
|
method_option "group", :type => :string, :banner => "List gems from a specific group"
|
|
391
406
|
method_option "groups", :type => :boolean, :banner => "List gems organized by groups"
|
|
@@ -393,10 +408,9 @@ module Bundler
|
|
|
393
408
|
"Do not attempt to fetch gems remotely and use the gem cache instead"
|
|
394
409
|
method_option "pre", :type => :boolean, :banner => "Check for newer pre-release gems"
|
|
395
410
|
method_option "source", :type => :array, :banner => "Check against a specific source"
|
|
396
|
-
|
|
397
|
-
method_option "filter-strict", :type => :boolean, :aliases => strict_is_update ? [] : %w[--strict], :banner =>
|
|
411
|
+
method_option "filter-strict", :type => :boolean, :aliases => "--strict", :banner =>
|
|
398
412
|
"Only list newer versions allowed by your Gemfile requirements"
|
|
399
|
-
method_option "update-strict", :type => :boolean, :
|
|
413
|
+
method_option "update-strict", :type => :boolean, :banner =>
|
|
400
414
|
"Strict conservative resolution, do not allow any gem to be updated past latest --patch | --minor | --major"
|
|
401
415
|
method_option "minor", :type => :boolean, :banner => "Prefer updating only to next minor version"
|
|
402
416
|
method_option "major", :type => :boolean, :banner => "Prefer updating to next major version (default)"
|
|
@@ -496,6 +510,7 @@ module Bundler
|
|
|
496
510
|
subcommand "config", Config
|
|
497
511
|
|
|
498
512
|
desc "open GEM", "Opens the source directory of the given bundled gem"
|
|
513
|
+
method_option "path", :type => :string, :lazy_default => "", :banner => "Open relative path of the gem source."
|
|
499
514
|
def open(name)
|
|
500
515
|
require_relative "cli/open"
|
|
501
516
|
Open.new(options, name).run
|
|
@@ -509,7 +524,7 @@ module Bundler
|
|
|
509
524
|
end
|
|
510
525
|
end
|
|
511
526
|
|
|
512
|
-
desc "version", "Prints
|
|
527
|
+
desc "version", "Prints Bundler version information"
|
|
513
528
|
def version
|
|
514
529
|
cli_help = current_command.name == "cli_help"
|
|
515
530
|
if cli_help || ARGV.include?("version")
|
|
@@ -552,7 +567,7 @@ module Bundler
|
|
|
552
567
|
method_option :version, :type => :boolean, :default => false, :aliases => "-v", :desc => "Set to show each gem version."
|
|
553
568
|
method_option :without, :type => :array, :default => [], :aliases => "-W", :banner => "GROUP[ GROUP...]", :desc => "Exclude gems that are part of the specified named group."
|
|
554
569
|
def viz
|
|
555
|
-
SharedHelpers.major_deprecation 2, "The `viz` command has been
|
|
570
|
+
SharedHelpers.major_deprecation 2, "The `viz` command has been renamed to `graph` and moved to a plugin. See https://github.com/rubygems/bundler-graph"
|
|
556
571
|
require_relative "cli/viz"
|
|
557
572
|
Viz.new(options.dup).run
|
|
558
573
|
end
|
|
@@ -566,7 +581,7 @@ module Bundler
|
|
|
566
581
|
method_option :edit, :type => :string, :aliases => "-e", :required => false, :banner => "EDITOR",
|
|
567
582
|
:lazy_default => [ENV["BUNDLER_EDITOR"], ENV["VISUAL"], ENV["EDITOR"]].find {|e| !e.nil? && !e.empty? },
|
|
568
583
|
:desc => "Open generated gemspec in the specified editor (defaults to $EDITOR or $BUNDLER_EDITOR)"
|
|
569
|
-
method_option :ext, :type => :
|
|
584
|
+
method_option :ext, :type => :string, :desc => "Generate the boilerplate for C extension code.", :enum => EXTENSIONS
|
|
570
585
|
method_option :git, :type => :boolean, :default => true, :desc => "Initialize a git repo inside your library."
|
|
571
586
|
method_option :mit, :type => :boolean, :desc => "Generate an MIT license file. Set a default with `bundle config set --global gem.mit true`."
|
|
572
587
|
method_option :rubocop, :type => :boolean, :desc => "Add rubocop to the generated Rakefile and gemspec. Set a default with `bundle config set --global gem.rubocop true`."
|
|
@@ -574,7 +589,9 @@ module Bundler
|
|
|
574
589
|
method_option :test, :type => :string, :lazy_default => Bundler.settings["gem.test"] || "", :aliases => "-t", :banner => "Use the specified test framework for your library",
|
|
575
590
|
:desc => "Generate a test directory for your library, either rspec, minitest or test-unit. Set a default with `bundle config set --global gem.test (rspec|minitest|test-unit)`."
|
|
576
591
|
method_option :ci, :type => :string, :lazy_default => Bundler.settings["gem.ci"] || "",
|
|
577
|
-
:desc => "Generate CI configuration, either GitHub Actions,
|
|
592
|
+
:desc => "Generate CI configuration, either GitHub Actions, GitLab CI or CircleCI. Set a default with `bundle config set --global gem.ci (github|gitlab|circle)`"
|
|
593
|
+
method_option :linter, :type => :string, :lazy_default => Bundler.settings["gem.linter"] || "",
|
|
594
|
+
:desc => "Add a linter and code formatter, either RuboCop or Standard. Set a default with `bundle config set --global gem.linter (rubocop|standard)`"
|
|
578
595
|
method_option :github_username, :type => :string, :default => Bundler.settings["gem.github_username"], :banner => "Set your username on GitHub", :desc => "Fill in GitHub username on README so that you don't have to do it manually. Set a default with `bundle config set --global gem.github_username <your_username>`."
|
|
579
596
|
|
|
580
597
|
def gem(name)
|
|
@@ -603,14 +620,14 @@ module Bundler
|
|
|
603
620
|
private :gem
|
|
604
621
|
|
|
605
622
|
def self.source_root
|
|
606
|
-
File.expand_path(
|
|
623
|
+
File.expand_path("templates", __dir__)
|
|
607
624
|
end
|
|
608
625
|
|
|
609
626
|
desc "clean [OPTIONS]", "Cleans up unused gems in your bundler directory", :hide => true
|
|
610
627
|
method_option "dry-run", :type => :boolean, :default => false, :banner =>
|
|
611
628
|
"Only print out changes, do not clean gems"
|
|
612
629
|
method_option "force", :type => :boolean, :default => false, :banner =>
|
|
613
|
-
"Forces
|
|
630
|
+
"Forces cleaning up unused gems even if Bundler is configured to use globally installed gems. As a consequence, removes all system gems except for the ones in the current application."
|
|
614
631
|
def clean
|
|
615
632
|
require_relative "cli/clean"
|
|
616
633
|
Clean.new(options.dup).run
|
|
@@ -658,10 +675,14 @@ module Bundler
|
|
|
658
675
|
"If updating, prefer updating only to next minor version"
|
|
659
676
|
method_option "major", :type => :boolean, :banner =>
|
|
660
677
|
"If updating, prefer updating to next major version (default)"
|
|
678
|
+
method_option "pre", :type => :boolean, :banner =>
|
|
679
|
+
"If updating, always choose the highest allowed version, regardless of prerelease status"
|
|
661
680
|
method_option "strict", :type => :boolean, :banner =>
|
|
662
681
|
"If updating, do not allow any gem to be updated past latest --patch | --minor | --major"
|
|
663
682
|
method_option "conservative", :type => :boolean, :banner =>
|
|
664
683
|
"If updating, use bundle install conservative update behavior and do not allow shared dependencies to be updated"
|
|
684
|
+
method_option "bundler", :type => :string, :lazy_default => "> 0.a", :banner =>
|
|
685
|
+
"Update the locked version of bundler"
|
|
665
686
|
def lock
|
|
666
687
|
require_relative "cli/lock"
|
|
667
688
|
Lock.new(options).run
|
|
@@ -739,6 +760,38 @@ module Bundler
|
|
|
739
760
|
end
|
|
740
761
|
end
|
|
741
762
|
|
|
763
|
+
def self.check_deprecated_ext_option(arguments)
|
|
764
|
+
# when deprecated version of `--ext` is called
|
|
765
|
+
# print out deprecation warning and pretend `--ext=c` was provided
|
|
766
|
+
if deprecated_ext_value?(arguments)
|
|
767
|
+
SharedHelpers.major_deprecation 2, "Extensions can now be generated using C or Rust, so `--ext` with no arguments has been deprecated. Please select a language, e.g. `--ext=rust` to generate a Rust extension. This gem will now be generated as if `--ext=c` was used."
|
|
768
|
+
arguments[arguments.index("--ext")] = "--ext=c"
|
|
769
|
+
end
|
|
770
|
+
end
|
|
771
|
+
|
|
772
|
+
def self.deprecated_ext_value?(arguments)
|
|
773
|
+
index = arguments.index("--ext")
|
|
774
|
+
next_argument = arguments[index+1]
|
|
775
|
+
|
|
776
|
+
# it is ok when --ext is followed with valid extension value
|
|
777
|
+
# for example `bundle gem hello --ext c`
|
|
778
|
+
return false if EXTENSIONS.include?(next_argument)
|
|
779
|
+
|
|
780
|
+
# deprecated call when --ext is called with no value in last position
|
|
781
|
+
# for example `bundle gem hello_gem --ext`
|
|
782
|
+
return true if next_argument.nil?
|
|
783
|
+
|
|
784
|
+
# deprecated call when --ext is followed by other parameter
|
|
785
|
+
# for example `bundle gem --ext --no-ci hello_gem`
|
|
786
|
+
return true if next_argument.start_with?("-")
|
|
787
|
+
|
|
788
|
+
# deprecated call when --ext is followed by gem name
|
|
789
|
+
# for example `bundle gem --ext hello_gem`
|
|
790
|
+
return true if next_argument
|
|
791
|
+
|
|
792
|
+
false
|
|
793
|
+
end
|
|
794
|
+
|
|
742
795
|
private
|
|
743
796
|
|
|
744
797
|
# Automatically invoke `bundle install` and resume if
|
|
@@ -801,17 +854,10 @@ module Bundler
|
|
|
801
854
|
|
|
802
855
|
current = Gem::Version.new(VERSION)
|
|
803
856
|
return if current >= latest
|
|
804
|
-
latest_installed = Bundler.rubygems.find_name("bundler").map(&:version).max
|
|
805
|
-
|
|
806
|
-
installation = "To install the latest version, run `gem install bundler#{" --pre" if latest.prerelease?}`"
|
|
807
|
-
if latest_installed && latest_installed > current
|
|
808
|
-
suggestion = "To update to the most recent installed version (#{latest_installed}), run `bundle update --bundler`"
|
|
809
|
-
suggestion = "#{installation}\n#{suggestion}" if latest_installed < latest
|
|
810
|
-
else
|
|
811
|
-
suggestion = installation
|
|
812
|
-
end
|
|
813
857
|
|
|
814
|
-
Bundler.ui.warn
|
|
858
|
+
Bundler.ui.warn \
|
|
859
|
+
"The latest bundler is #{latest}, but you are currently running #{current}.\n" \
|
|
860
|
+
"To update to the most recent version, run `bundle update --bundler`"
|
|
815
861
|
rescue RuntimeError
|
|
816
862
|
nil
|
|
817
863
|
end
|
|
@@ -68,7 +68,7 @@ module Bundler
|
|
|
68
68
|
|
|
69
69
|
def info_path(name)
|
|
70
70
|
name = name.to_s
|
|
71
|
-
if
|
|
71
|
+
if /[^a-z0-9_-]/.match?(name)
|
|
72
72
|
name += "-#{SharedHelpers.digest(:MD5).hexdigest(name).downcase}"
|
|
73
73
|
info_roots.last.join(name)
|
|
74
74
|
else
|
|
@@ -76,15 +76,6 @@ module Bundler
|
|
|
76
76
|
end
|
|
77
77
|
end
|
|
78
78
|
|
|
79
|
-
def specific_dependency(name, version, platform)
|
|
80
|
-
pattern = [version, platform].compact.join("-")
|
|
81
|
-
return nil if pattern.empty?
|
|
82
|
-
|
|
83
|
-
gem_lines = info_path(name).read
|
|
84
|
-
gem_line = gem_lines[/^#{Regexp.escape(pattern)}\b.*/, 0]
|
|
85
|
-
gem_line ? parse_gem(gem_line) : nil
|
|
86
|
-
end
|
|
87
|
-
|
|
88
79
|
private
|
|
89
80
|
|
|
90
81
|
def lines(path)
|