rubygems-update 3.1.6 → 3.4.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5619 -0
- data/CODE_OF_CONDUCT.md +55 -19
- data/CONTRIBUTING.md +97 -27
- data/Manifest.txt +185 -143
- data/POLICIES.md +70 -27
- data/README.md +29 -14
- data/UPGRADING.md +5 -81
- data/bin/gem +2 -10
- data/bin/update_rubygems +5 -5
- data/bundler/CHANGELOG.md +2605 -1431
- data/bundler/README.md +9 -14
- data/bundler/UPGRADING.md +27 -34
- data/bundler/bundler.gemspec +10 -13
- data/bundler/exe/bundle +7 -8
- data/bundler/exe/bundler +1 -1
- data/bundler/lib/bundler/.document +1 -0
- data/bundler/lib/bundler/build_metadata.rb +4 -12
- data/bundler/lib/bundler/cli/add.rb +2 -2
- data/bundler/lib/bundler/cli/binstubs.rb +11 -3
- data/bundler/lib/bundler/cli/cache.rb +3 -8
- data/bundler/lib/bundler/cli/check.rb +5 -3
- data/bundler/lib/bundler/cli/clean.rb +1 -1
- data/bundler/lib/bundler/cli/common.rb +32 -3
- data/bundler/lib/bundler/cli/config.rb +10 -1
- data/bundler/lib/bundler/cli/console.rb +3 -3
- data/bundler/lib/bundler/cli/doctor.rb +23 -6
- data/bundler/lib/bundler/cli/exec.rb +5 -10
- data/bundler/lib/bundler/cli/fund.rb +36 -0
- data/bundler/lib/bundler/cli/gem.rb +258 -45
- data/bundler/lib/bundler/cli/info.rb +38 -6
- data/bundler/lib/bundler/cli/init.rb +7 -3
- data/bundler/lib/bundler/cli/inject.rb +1 -1
- data/bundler/lib/bundler/cli/install.rb +27 -57
- data/bundler/lib/bundler/cli/issue.rb +5 -4
- data/bundler/lib/bundler/cli/list.rb +19 -11
- data/bundler/lib/bundler/cli/lock.rb +11 -4
- data/bundler/lib/bundler/cli/open.rb +7 -6
- data/bundler/lib/bundler/cli/outdated.rb +106 -79
- data/bundler/lib/bundler/cli/platform.rb +2 -2
- data/bundler/lib/bundler/cli/plugin.rb +10 -0
- data/bundler/lib/bundler/cli/pristine.rb +5 -0
- data/bundler/lib/bundler/cli/remove.rb +1 -2
- data/bundler/lib/bundler/cli/show.rb +2 -2
- data/bundler/lib/bundler/cli/update.rb +20 -9
- data/bundler/lib/bundler/cli/viz.rb +1 -1
- data/bundler/lib/bundler/cli.rb +151 -85
- data/bundler/lib/bundler/compact_index_client/cache.rb +7 -24
- data/bundler/lib/bundler/compact_index_client/gem_parser.rb +28 -0
- data/bundler/lib/bundler/compact_index_client/updater.rb +56 -51
- data/bundler/lib/bundler/compact_index_client.rb +3 -9
- data/bundler/lib/bundler/constants.rb +1 -1
- data/bundler/lib/bundler/current_ruby.rb +19 -6
- data/bundler/lib/bundler/definition.rb +353 -440
- data/bundler/lib/bundler/dependency.rb +23 -77
- data/bundler/lib/bundler/digest.rb +71 -0
- data/bundler/lib/bundler/dsl.rb +77 -85
- data/bundler/lib/bundler/endpoint_specification.rb +16 -14
- data/bundler/lib/bundler/env.rb +3 -3
- data/bundler/lib/bundler/environment_preserver.rb +32 -4
- data/bundler/lib/bundler/errors.rb +31 -14
- data/bundler/lib/bundler/feature_flag.rb +0 -9
- data/bundler/lib/bundler/fetcher/base.rb +7 -9
- data/bundler/lib/bundler/fetcher/compact_index.rb +20 -27
- data/bundler/lib/bundler/fetcher/dependency.rb +2 -6
- data/bundler/lib/bundler/fetcher/downloader.rb +11 -11
- data/bundler/lib/bundler/fetcher/index.rb +2 -30
- data/bundler/lib/bundler/fetcher.rb +26 -31
- data/bundler/lib/bundler/force_platform.rb +18 -0
- data/bundler/lib/bundler/friendly_errors.rb +45 -49
- data/bundler/lib/bundler/gem_helper.rb +53 -31
- data/bundler/lib/bundler/gem_helpers.rb +42 -24
- data/bundler/lib/bundler/gem_version_promoter.rb +54 -99
- data/bundler/lib/bundler/graph.rb +4 -4
- data/bundler/lib/bundler/index.rb +16 -54
- data/bundler/lib/bundler/injector.rb +41 -9
- data/bundler/lib/bundler/inline.rb +11 -22
- data/bundler/lib/bundler/installer/gem_installer.rb +19 -24
- data/bundler/lib/bundler/installer/parallel_installer.rb +34 -43
- data/bundler/lib/bundler/installer/standalone.rb +62 -11
- data/bundler/lib/bundler/installer.rb +43 -87
- data/bundler/lib/bundler/lazy_specification.rb +88 -51
- data/bundler/lib/bundler/lockfile_generator.rb +4 -4
- data/bundler/lib/bundler/lockfile_parser.rb +34 -59
- data/bundler/lib/bundler/man/.document +1 -0
- data/bundler/{man → lib/bundler/man}/bundle-add.1 +21 -5
- data/bundler/{man/bundle-add.ronn → lib/bundler/man/bundle-add.1.ronn} +16 -4
- data/bundler/{man → lib/bundler/man}/bundle-binstubs.1 +5 -3
- data/bundler/{man/bundle-binstubs.ronn → lib/bundler/man/bundle-binstubs.1.ronn} +2 -4
- data/bundler/{man → lib/bundler/man}/bundle-cache.1 +7 -1
- data/bundler/{man/bundle-cache.ronn → lib/bundler/man/bundle-cache.1.ronn} +7 -0
- data/bundler/{man → lib/bundler/man}/bundle-check.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-clean.1 +2 -2
- data/bundler/{man/bundle-clean.ronn → lib/bundler/man/bundle-clean.1.ronn} +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-config.1 +66 -48
- data/bundler/{man/bundle-config.ronn → lib/bundler/man/bundle-config.1.ronn} +75 -66
- data/bundler/lib/bundler/man/bundle-console.1 +53 -0
- data/bundler/lib/bundler/man/bundle-console.1.ronn +44 -0
- data/bundler/{man → lib/bundler/man}/bundle-doctor.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-exec.1 +6 -6
- data/bundler/{man/bundle-exec.ronn → lib/bundler/man/bundle-exec.1.ronn} +6 -6
- data/bundler/lib/bundler/man/bundle-gem.1 +105 -0
- data/bundler/lib/bundler/man/bundle-gem.1.ronn +117 -0
- data/bundler/lib/bundler/man/bundle-help.1 +13 -0
- data/bundler/lib/bundler/man/bundle-help.1.ronn +12 -0
- data/bundler/{man → lib/bundler/man}/bundle-info.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-init.1 +5 -1
- data/bundler/{man/bundle-init.ronn → lib/bundler/man/bundle-init.1.ronn} +2 -0
- data/bundler/{man → lib/bundler/man}/bundle-inject.1 +5 -2
- data/bundler/{man/bundle-inject.ronn → lib/bundler/man/bundle-inject.1.ronn} +3 -1
- data/bundler/{man → lib/bundler/man}/bundle-install.1 +35 -33
- data/bundler/{man/bundle-install.ronn → lib/bundler/man/bundle-install.1.ronn} +33 -34
- data/bundler/{man → lib/bundler/man}/bundle-list.1 +7 -7
- data/bundler/{man/bundle-list.ronn → lib/bundler/man/bundle-list.1.ronn} +6 -6
- data/bundler/{man → lib/bundler/man}/bundle-lock.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-open.1 +22 -2
- data/bundler/{man/bundle-open.ronn → lib/bundler/man/bundle-open.1.ronn} +9 -1
- data/bundler/{man → lib/bundler/man}/bundle-outdated.1 +3 -10
- data/bundler/{man/bundle-outdated.ronn → lib/bundler/man/bundle-outdated.1.ronn} +1 -10
- data/bundler/{man → lib/bundler/man}/bundle-platform.1 +16 -6
- data/bundler/{man/bundle-platform.ronn → 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/{man → lib/bundler/man}/bundle-pristine.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-remove.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-show.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-update.1 +5 -5
- data/bundler/{man/bundle-update.ronn → lib/bundler/man/bundle-update.1.ronn} +5 -4
- data/bundler/lib/bundler/man/bundle-version.1 +35 -0
- data/bundler/lib/bundler/man/bundle-version.1.ronn +24 -0
- data/bundler/{man → lib/bundler/man}/bundle-viz.1 +4 -1
- data/bundler/{man/bundle-viz.ronn → lib/bundler/man/bundle-viz.1.ronn} +2 -0
- data/bundler/{man → lib/bundler/man}/bundle.1 +15 -10
- data/bundler/{man/bundle.ronn → lib/bundler/man/bundle.1.ronn} +12 -7
- data/bundler/{man → lib/bundler/man}/gemfile.5 +120 -83
- data/bundler/{man → lib/bundler/man}/gemfile.5.ronn +109 -88
- data/bundler/{man → 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 +7 -9
- data/bundler/lib/bundler/plugin/api/source.rb +25 -9
- data/bundler/lib/bundler/plugin/dsl.rb +1 -1
- data/bundler/lib/bundler/plugin/index.rb +17 -5
- data/bundler/lib/bundler/plugin/installer/git.rb +0 -4
- data/bundler/lib/bundler/plugin/installer/rubygems.rb +1 -9
- data/bundler/lib/bundler/plugin/installer.rb +16 -13
- data/bundler/lib/bundler/plugin/source_list.rb +5 -1
- data/bundler/lib/bundler/plugin.rb +59 -12
- data/bundler/lib/bundler/process_lock.rb +1 -1
- data/bundler/lib/bundler/remote_specification.rb +12 -7
- 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 +49 -74
- data/bundler/lib/bundler/resolver.rb +336 -344
- data/bundler/lib/bundler/retry.rb +2 -2
- data/bundler/lib/bundler/ruby_dsl.rb +1 -1
- data/bundler/lib/bundler/ruby_version.rb +6 -19
- data/bundler/lib/bundler/rubygems_ext.rb +231 -32
- data/bundler/lib/bundler/rubygems_gem_installer.rb +89 -16
- data/bundler/lib/bundler/rubygems_integration.rb +81 -167
- data/bundler/lib/bundler/runtime.rb +23 -31
- data/bundler/lib/bundler/self_manager.rb +168 -0
- data/bundler/lib/bundler/settings.rb +146 -73
- data/bundler/lib/bundler/setup.rb +5 -2
- data/bundler/lib/bundler/shared_helpers.rb +20 -35
- data/bundler/lib/bundler/similarity_detector.rb +1 -1
- data/bundler/lib/bundler/source/git/git_proxy.rb +263 -114
- data/bundler/lib/bundler/source/git.rb +64 -47
- data/bundler/lib/bundler/source/metadata.rb +3 -8
- data/bundler/lib/bundler/source/path/installer.rb +11 -32
- data/bundler/lib/bundler/source/path.rb +16 -10
- data/bundler/lib/bundler/source/rubygems/remote.rb +1 -1
- data/bundler/lib/bundler/source/rubygems.rb +167 -200
- data/bundler/lib/bundler/source/rubygems_aggregate.rb +68 -0
- data/bundler/lib/bundler/source.rb +25 -5
- data/bundler/lib/bundler/source_list.rb +112 -64
- data/bundler/lib/bundler/source_map.rb +71 -0
- data/bundler/lib/bundler/spec_set.rb +74 -61
- data/bundler/lib/bundler/stub_specification.rb +30 -10
- data/bundler/lib/bundler/templates/Executable +3 -5
- data/bundler/lib/bundler/templates/Executable.bundler +11 -16
- data/bundler/lib/bundler/templates/Executable.standalone +4 -4
- data/bundler/lib/bundler/templates/Gemfile +0 -2
- data/bundler/lib/bundler/templates/newgem/CHANGELOG.md.tt +5 -0
- data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +57 -47
- data/bundler/lib/bundler/templates/newgem/Cargo.toml.tt +7 -0
- data/bundler/lib/bundler/templates/newgem/Gemfile.tt +15 -1
- data/bundler/lib/bundler/templates/newgem/README.md.tt +13 -16
- data/bundler/lib/bundler/templates/newgem/Rakefile.tt +43 -5
- data/bundler/lib/bundler/templates/newgem/bin/console.tt +1 -0
- data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +25 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +15 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/{extconf.rb.tt → extconf-c.rb.tt} +2 -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 +37 -0
- data/bundler/lib/bundler/templates/newgem/gitignore.tt +3 -0
- data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +18 -0
- data/bundler/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +2 -0
- data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +4 -2
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +34 -18
- data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +13 -0
- data/bundler/lib/bundler/templates/newgem/sig/newgem.rbs.tt +8 -0
- data/bundler/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +2 -0
- data/bundler/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +2 -1
- data/bundler/lib/bundler/templates/newgem/standard.yml.tt +3 -0
- data/bundler/lib/bundler/templates/newgem/test/{test_helper.rb.tt → minitest/test_helper.rb.tt} +2 -0
- data/bundler/lib/bundler/templates/newgem/test/{newgem_test.rb.tt → minitest/test_newgem.rb.tt} +3 -1
- data/bundler/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt +15 -0
- data/bundler/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt +6 -0
- data/bundler/lib/bundler/ui/shell.rb +37 -14
- data/bundler/lib/bundler/ui/silent.rb +21 -5
- data/bundler/lib/bundler/uri_credentials_filter.rb +3 -1
- data/bundler/lib/bundler/uri_normalizer.rb +23 -0
- data/bundler/lib/bundler/vendor/.document +1 -0
- data/bundler/lib/bundler/vendor/connection_pool/LICENSE +20 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +19 -21
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +1 -1
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +56 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +41 -74
- data/bundler/lib/bundler/vendor/fileutils/LICENSE.txt +22 -0
- data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +1350 -408
- data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +82 -0
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +82 -189
- 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/LICENSE.md +20 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +2 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +9 -7
- 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 +7 -3
- data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +9 -0
- 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 +10 -5
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +5 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +28 -9
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +28 -7
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/color.rb +5 -1
- 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/thor/lib/thor.rb +5 -13
- 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/LICENSE.txt +22 -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 -40
- data/bundler/lib/bundler/{vendored_molinillo.rb → vendored_pub_grub.rb} +1 -1
- data/bundler/lib/bundler/vendored_tsort.rb +4 -0
- data/bundler/lib/bundler/version.rb +5 -1
- data/bundler/lib/bundler/worker.rb +25 -12
- data/bundler/lib/bundler/yaml_serializer.rb +1 -1
- data/bundler/lib/bundler.rb +98 -110
- data/hide_lib_for_update/note.txt +0 -4
- data/lib/rubygems/available_set.rb +7 -9
- data/lib/rubygems/basic_specification.rb +23 -21
- data/lib/rubygems/bundler_version_finder.rb +27 -54
- data/lib/rubygems/command.rb +63 -52
- data/lib/rubygems/command_manager.rb +36 -16
- data/lib/rubygems/commands/build_command.rb +50 -27
- data/lib/rubygems/commands/cert_command.rb +78 -75
- data/lib/rubygems/commands/check_command.rb +20 -22
- data/lib/rubygems/commands/cleanup_command.rb +30 -26
- data/lib/rubygems/commands/contents_command.rb +16 -18
- data/lib/rubygems/commands/dependency_command.rb +39 -51
- data/lib/rubygems/commands/environment_command.rb +11 -10
- data/lib/rubygems/commands/exec_command.rb +248 -0
- data/lib/rubygems/commands/fetch_command.rb +33 -16
- data/lib/rubygems/commands/generate_index_command.rb +17 -19
- data/lib/rubygems/commands/help_command.rb +9 -9
- data/lib/rubygems/commands/info_command.rb +10 -7
- data/lib/rubygems/commands/install_command.rb +36 -30
- data/lib/rubygems/commands/list_command.rb +9 -8
- data/lib/rubygems/commands/lock_command.rb +5 -7
- data/lib/rubygems/commands/mirror_command.rb +3 -5
- data/lib/rubygems/commands/open_command.rb +10 -14
- data/lib/rubygems/commands/outdated_command.rb +5 -7
- data/lib/rubygems/commands/owner_command.rb +26 -16
- data/lib/rubygems/commands/pristine_command.rb +70 -49
- data/lib/rubygems/commands/push_command.rb +22 -59
- data/lib/rubygems/commands/query_command.rb +21 -351
- data/lib/rubygems/commands/rdoc_command.rb +26 -27
- data/lib/rubygems/commands/search_command.rb +8 -8
- data/lib/rubygems/commands/server_command.rb +16 -77
- data/lib/rubygems/commands/setup_command.rb +255 -229
- data/lib/rubygems/commands/signin_command.rb +9 -11
- data/lib/rubygems/commands/signout_command.rb +7 -9
- data/lib/rubygems/commands/sources_command.rb +27 -25
- data/lib/rubygems/commands/specification_command.rb +25 -21
- data/lib/rubygems/commands/stale_command.rb +3 -5
- data/lib/rubygems/commands/uninstall_command.rb +44 -43
- data/lib/rubygems/commands/unpack_command.rb +14 -16
- data/lib/rubygems/commands/update_command.rb +126 -74
- data/lib/rubygems/commands/which_command.rb +7 -9
- data/lib/rubygems/commands/yank_command.rb +16 -19
- data/lib/rubygems/compatibility.rb +4 -2
- data/lib/rubygems/config_file.rb +75 -26
- data/lib/rubygems/core_ext/kernel_gem.rb +1 -6
- data/lib/rubygems/core_ext/kernel_require.rb +108 -112
- data/lib/rubygems/core_ext/kernel_warn.rb +31 -36
- data/lib/rubygems/core_ext/tcpsocket_init.rb +52 -0
- data/lib/rubygems/defaults.rb +124 -34
- data/lib/rubygems/dependency.rb +24 -22
- data/lib/rubygems/dependency_installer.rb +43 -115
- data/lib/rubygems/dependency_list.rb +13 -15
- data/lib/rubygems/deprecate.rb +102 -8
- data/lib/rubygems/doctor.rb +22 -22
- data/lib/rubygems/errors.rb +6 -21
- data/lib/rubygems/exceptions.rb +34 -37
- data/lib/rubygems/ext/build_error.rb +2 -0
- data/lib/rubygems/ext/builder.rb +64 -54
- 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 +6 -9
- data/lib/rubygems/ext/configure_builder.rb +5 -8
- data/lib/rubygems/ext/ext_conf_builder.rb +43 -66
- data/lib/rubygems/ext/rake_builder.rb +7 -10
- data/lib/rubygems/ext.rb +7 -6
- data/lib/rubygems/gem_runner.rb +15 -26
- data/lib/rubygems/gemcutter_utilities.rb +161 -33
- data/lib/rubygems/indexer.rb +31 -50
- data/lib/rubygems/install_default_message.rb +2 -2
- data/lib/rubygems/install_message.rb +2 -2
- data/lib/rubygems/install_update_options.rb +73 -64
- data/lib/rubygems/installer.rb +199 -156
- data/lib/rubygems/installer_uninstaller_utils.rb +29 -0
- data/lib/rubygems/local_remote_options.rb +22 -24
- data/lib/rubygems/mock_gem_ui.rb +2 -8
- data/lib/rubygems/name_tuple.rb +9 -14
- data/lib/rubygems/openssl.rb +7 -0
- 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/digest_io.rb +0 -2
- data/lib/rubygems/package/file_source.rb +2 -4
- data/lib/rubygems/package/io_source.rb +4 -2
- data/lib/rubygems/package/old.rb +9 -11
- data/lib/rubygems/package/tar_header.rb +65 -67
- data/lib/rubygems/package/tar_reader/entry.rb +89 -11
- data/lib/rubygems/package/tar_reader.rb +1 -32
- data/lib/rubygems/package/tar_writer.rb +8 -18
- data/lib/rubygems/package.rb +109 -120
- data/lib/rubygems/package_task.rb +5 -11
- data/lib/rubygems/path_support.rb +2 -9
- data/lib/rubygems/platform.rb +113 -74
- data/lib/rubygems/psych_tree.rb +1 -3
- data/lib/rubygems/query_utils.rb +351 -0
- data/lib/rubygems/rdoc.rb +2 -14
- data/lib/rubygems/remote_fetcher.rb +48 -74
- data/lib/rubygems/request/connection_pools.rb +6 -10
- data/lib/rubygems/request/http_pool.rb +2 -4
- data/lib/rubygems/request/https_pool.rb +0 -2
- data/lib/rubygems/request.rb +26 -31
- data/lib/rubygems/request_set/gem_dependency_api.rb +127 -130
- data/lib/rubygems/request_set/lockfile/parser.rb +26 -28
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +5 -7
- data/lib/rubygems/request_set/lockfile.rb +17 -21
- data/lib/rubygems/request_set.rb +27 -40
- data/lib/rubygems/requirement.rb +29 -49
- data/lib/rubygems/resolver/activation_request.rb +12 -6
- data/lib/rubygems/resolver/api_set/gem_parser.rb +20 -0
- data/lib/rubygems/resolver/api_set.rb +32 -25
- data/lib/rubygems/resolver/api_specification.rb +29 -15
- data/lib/rubygems/resolver/best_set.rb +7 -9
- data/lib/rubygems/resolver/composed_set.rb +3 -5
- data/lib/rubygems/resolver/conflict.rb +12 -14
- data/lib/rubygems/resolver/current_set.rb +0 -2
- data/lib/rubygems/resolver/dependency_request.rb +3 -5
- data/lib/rubygems/resolver/git_set.rb +2 -4
- data/lib/rubygems/resolver/git_specification.rb +6 -8
- data/lib/rubygems/resolver/index_set.rb +4 -6
- data/lib/rubygems/resolver/index_specification.rb +38 -7
- data/lib/rubygems/resolver/installed_specification.rb +4 -6
- data/lib/rubygems/resolver/installer_set.rb +66 -24
- data/lib/rubygems/resolver/local_specification.rb +2 -4
- data/lib/rubygems/resolver/lock_set.rb +6 -8
- data/lib/rubygems/resolver/lock_specification.rb +4 -6
- data/lib/rubygems/resolver/molinillo/LICENSE +9 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb +7 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb +8 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/action.rb +1 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb +7 -6
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/set_payload.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/tag.rb +4 -3
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb +51 -12
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +42 -9
- data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +82 -8
- data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb +13 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb +3 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb +510 -165
- data/lib/rubygems/resolver/molinillo/lib/molinillo/resolver.rb +3 -2
- data/lib/rubygems/resolver/molinillo/lib/molinillo/state.rb +8 -4
- data/lib/rubygems/resolver/molinillo/lib/molinillo.rb +6 -5
- data/lib/rubygems/resolver/molinillo.rb +1 -1
- data/lib/rubygems/resolver/requirement_list.rb +0 -2
- data/lib/rubygems/resolver/set.rb +0 -3
- data/lib/rubygems/resolver/source_set.rb +0 -2
- data/lib/rubygems/resolver/spec_specification.rb +14 -2
- data/lib/rubygems/resolver/specification.rb +14 -4
- data/lib/rubygems/resolver/stats.rb +1 -3
- data/lib/rubygems/resolver/vendor_set.rb +1 -3
- data/lib/rubygems/resolver/vendor_specification.rb +3 -5
- data/lib/rubygems/resolver.rb +53 -51
- data/lib/rubygems/s3_uri_signer.rb +7 -15
- data/lib/rubygems/safe_yaml.rb +14 -16
- data/lib/rubygems/security/policies.rb +47 -47
- data/lib/rubygems/security/policy.rb +25 -29
- data/lib/rubygems/security/signer.rb +13 -16
- data/lib/rubygems/security/trust_dir.rb +5 -6
- data/lib/rubygems/security.rb +90 -69
- data/lib/rubygems/security_option.rb +7 -7
- data/lib/rubygems/source/git.rb +31 -31
- data/lib/rubygems/source/installed.rb +1 -3
- data/lib/rubygems/source/local.rb +4 -6
- data/lib/rubygems/source/lock.rb +0 -2
- data/lib/rubygems/source/specific_file.rb +1 -3
- data/lib/rubygems/source/vendor.rb +0 -2
- data/lib/rubygems/source.rb +44 -38
- data/lib/rubygems/source_list.rb +9 -16
- data/lib/rubygems/spec_fetcher.rb +49 -48
- data/lib/rubygems/specification.rb +382 -343
- data/lib/rubygems/specification_policy.rb +131 -61
- data/lib/rubygems/stub_specification.rb +24 -31
- 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 +98 -45
- data/lib/rubygems/unknown_command_spell_checker.rb +21 -0
- data/lib/rubygems/update_suggestion.rb +69 -0
- data/lib/rubygems/uri.rb +126 -0
- data/lib/rubygems/uri_formatter.rb +2 -3
- data/lib/rubygems/user_interaction.rb +43 -54
- data/lib/rubygems/util/licenses.rb +115 -10
- data/lib/rubygems/util/list.rb +0 -2
- data/lib/rubygems/util.rb +19 -17
- data/lib/rubygems/validator.rb +7 -9
- data/lib/rubygems/version.rb +31 -22
- data/lib/rubygems/version_option.rb +11 -5
- data/lib/rubygems.rb +213 -290
- data/rubygems-update.gemspec +5 -5
- data/setup.rb +11 -22
- 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/null-required-ruby-version.gemspec.rz +0 -0
- data/test/rubygems/data/null-required-rubygems-version.gemspec.rz +0 -0
- data/test/rubygems/data/pry-0.4.7.gemspec.rz +0 -0
- data/test/rubygems/encrypted_private_key.pem +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/{lib/rubygems/test_case.rb → test/rubygems/helper.rb} +402 -327
- data/{lib → test}/rubygems/installer_test_case.rb +38 -24
- 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/{lib → test}/rubygems/package/tar_test_case.rb +51 -18
- data/test/rubygems/packages/Bluebie-legs-0.6.2.gem +0 -0
- data/test/rubygems/packages/ascii_binder-0.1.10.1.gem +0 -0
- data/test/rubygems/packages/ill-formatted-platform-1.0.0.10.gem +0 -0
- data/test/rubygems/plugin/exception/rubygems_plugin.rb +1 -1
- data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -2
- data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +1 -1
- data/test/rubygems/private_ec_key.pem +9 -0
- 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/commands/crash_command.rb +0 -2
- data/test/rubygems/rubygems_plugin.rb +2 -4
- data/test/rubygems/simple_gem.rb +1 -1
- data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -2
- data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +4 -6
- data/test/rubygems/test_bundled_ca.rb +43 -50
- data/test/rubygems/test_config.rb +5 -7
- data/test/rubygems/test_deprecate.rb +87 -10
- data/test/rubygems/test_exit.rb +17 -0
- data/test/rubygems/test_gem.rb +560 -826
- data/test/rubygems/test_gem_available_set.rb +24 -26
- data/test/rubygems/test_gem_bundler_version_finder.rb +40 -46
- data/test/rubygems/test_gem_command.rb +78 -49
- data/test/rubygems/test_gem_command_manager.rb +163 -35
- data/test/rubygems/test_gem_commands_build_command.rb +285 -57
- data/test/rubygems/test_gem_commands_cert_command.rb +180 -125
- data/test/rubygems/test_gem_commands_check_command.rb +9 -11
- data/test/rubygems/test_gem_commands_cleanup_command.rb +78 -69
- data/test/rubygems/test_gem_commands_contents_command.rb +73 -42
- data/test/rubygems/test_gem_commands_dependency_command.rb +38 -40
- data/test/rubygems/test_gem_commands_environment_command.rb +60 -38
- data/test/rubygems/test_gem_commands_exec_command.rb +851 -0
- data/test/rubygems/test_gem_commands_fetch_command.rb +163 -32
- data/test/rubygems/test_gem_commands_generate_index_command.rb +8 -14
- data/test/rubygems/test_gem_commands_help_command.rb +34 -16
- data/test/rubygems/test_gem_commands_info_command.rb +33 -9
- data/test/rubygems/test_gem_commands_install_command.rb +420 -198
- data/test/rubygems/test_gem_commands_list_command.rb +5 -7
- data/test/rubygems/test_gem_commands_lock_command.rb +11 -13
- data/test/rubygems/test_gem_commands_mirror.rb +3 -5
- data/test/rubygems/test_gem_commands_open_command.rb +16 -19
- data/test/rubygems/test_gem_commands_outdated_command.rb +23 -7
- data/test/rubygems/test_gem_commands_owner_command.rb +181 -46
- data/test/rubygems/test_gem_commands_pristine_command.rb +179 -99
- data/test/rubygems/test_gem_commands_push_command.rb +156 -67
- data/test/rubygems/test_gem_commands_query_command.rb +91 -91
- data/test/rubygems/test_gem_commands_search_command.rb +2 -4
- data/test/rubygems/test_gem_commands_server_command.rb +6 -50
- data/test/rubygems/test_gem_commands_setup_command.rb +285 -183
- data/test/rubygems/test_gem_commands_signin_command.rb +187 -28
- data/test/rubygems/test_gem_commands_signout_command.rb +3 -10
- data/test/rubygems/test_gem_commands_sources_command.rb +139 -32
- data/test/rubygems/test_gem_commands_specification_command.rb +81 -55
- data/test/rubygems/test_gem_commands_stale_command.rb +4 -6
- data/test/rubygems/test_gem_commands_uninstall_command.rb +102 -87
- data/test/rubygems/test_gem_commands_unpack_command.rb +32 -34
- data/test/rubygems/test_gem_commands_update_command.rb +341 -94
- data/test/rubygems/test_gem_commands_which_command.rb +12 -14
- data/test/rubygems/test_gem_commands_yank_command.rb +80 -44
- data/test/rubygems/test_gem_config_file.rb +114 -97
- data/test/rubygems/test_gem_dependency.rb +88 -86
- data/test/rubygems/test_gem_dependency_installer.rb +277 -391
- data/test/rubygems/test_gem_dependency_list.rb +57 -59
- data/test/rubygems/test_gem_dependency_resolution_error.rb +5 -7
- data/test/rubygems/test_gem_doctor.rb +73 -47
- data/test/rubygems/test_gem_ext_builder.rb +115 -111
- 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 +31 -38
- data/test/rubygems/test_gem_ext_configure_builder.rb +23 -39
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +66 -82
- data/test/rubygems/test_gem_ext_rake_builder.rb +49 -32
- data/test/rubygems/test_gem_gem_runner.rb +57 -9
- data/test/rubygems/test_gem_gemcutter_utilities.rb +91 -76
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +4 -6
- data/test/rubygems/test_gem_indexer.rb +100 -83
- data/test/rubygems/test_gem_install_update_options.rb +31 -21
- data/test/rubygems/test_gem_installer.rb +857 -484
- data/test/rubygems/test_gem_local_remote_options.rb +11 -13
- data/test/rubygems/test_gem_name_tuple.rb +4 -6
- data/test/rubygems/test_gem_package.rb +330 -305
- data/test/rubygems/test_gem_package_old.rb +18 -20
- data/test/rubygems/test_gem_package_tar_header.rb +69 -52
- data/test/rubygems/test_gem_package_tar_reader.rb +54 -9
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +168 -25
- data/test/rubygems/test_gem_package_tar_writer.rb +96 -100
- data/test/rubygems/test_gem_package_task.rb +58 -25
- data/test/rubygems/test_gem_path_support.rb +15 -21
- data/test/rubygems/test_gem_platform.rb +388 -201
- data/test/rubygems/test_gem_rdoc.rb +19 -21
- data/test/rubygems/test_gem_remote_fetcher.rb +377 -338
- data/test/rubygems/test_gem_request.rb +114 -86
- data/test/rubygems/test_gem_request_connection_pools.rb +30 -34
- data/test/rubygems/test_gem_request_set.rb +124 -125
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +227 -231
- data/test/rubygems/test_gem_request_set_lockfile.rb +93 -95
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +69 -71
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +136 -138
- data/test/rubygems/test_gem_requirement.rb +133 -54
- data/test/rubygems/test_gem_resolver.rb +182 -117
- data/test/rubygems/test_gem_resolver_activation_request.rb +6 -8
- data/test/rubygems/test_gem_resolver_api_set.rb +79 -78
- data/test/rubygems/test_gem_resolver_api_specification.rb +47 -49
- data/test/rubygems/test_gem_resolver_best_set.rb +43 -22
- data/test/rubygems/test_gem_resolver_composed_set.rb +1 -3
- data/test/rubygems/test_gem_resolver_conflict.rb +12 -14
- data/test/rubygems/test_gem_resolver_dependency_request.rb +15 -17
- data/test/rubygems/test_gem_resolver_git_set.rb +22 -24
- data/test/rubygems/test_gem_resolver_git_specification.rb +22 -23
- data/test/rubygems/test_gem_resolver_index_set.rb +14 -16
- data/test/rubygems/test_gem_resolver_index_specification.rb +16 -18
- data/test/rubygems/test_gem_resolver_installed_specification.rb +5 -7
- data/test/rubygems/test_gem_resolver_installer_set.rb +104 -44
- data/test/rubygems/test_gem_resolver_local_specification.rb +7 -9
- data/test/rubygems/test_gem_resolver_lock_set.rb +15 -17
- data/test/rubygems/test_gem_resolver_lock_specification.rb +17 -19
- data/test/rubygems/test_gem_resolver_requirement_list.rb +1 -3
- data/test/rubygems/test_gem_resolver_specification.rb +8 -12
- data/test/rubygems/test_gem_resolver_vendor_set.rb +9 -11
- data/test/rubygems/test_gem_resolver_vendor_specification.rb +10 -12
- data/test/rubygems/test_gem_security.rb +105 -79
- data/test/rubygems/test_gem_security_policy.rb +102 -107
- data/test/rubygems/test_gem_security_signer.rb +51 -53
- data/test/rubygems/test_gem_security_trust_dir.rb +14 -16
- data/test/rubygems/test_gem_silent_ui.rb +46 -42
- data/test/rubygems/test_gem_source.rb +53 -52
- data/test/rubygems/test_gem_source_fetch_problem.rb +16 -8
- data/test/rubygems/test_gem_source_git.rb +78 -72
- data/test/rubygems/test_gem_source_installed.rb +16 -18
- data/test/rubygems/test_gem_source_list.rb +5 -6
- data/test/rubygems/test_gem_source_local.rb +15 -17
- data/test/rubygems/test_gem_source_lock.rb +31 -33
- data/test/rubygems/test_gem_source_specific_file.rb +18 -20
- data/test/rubygems/test_gem_source_subpath_problem.rb +49 -0
- data/test/rubygems/test_gem_source_vendor.rb +13 -15
- data/test/rubygems/test_gem_spec_fetcher.rb +74 -67
- data/test/rubygems/test_gem_specification.rb +967 -1056
- data/test/rubygems/test_gem_stream_ui.rb +23 -23
- data/test/rubygems/test_gem_stub_specification.rb +39 -57
- data/test/rubygems/test_gem_text.rb +8 -4
- data/test/rubygems/test_gem_uninstaller.rb +234 -105
- data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +3 -5
- data/test/rubygems/test_gem_update_suggestion.rb +208 -0
- data/test/rubygems/test_gem_uri.rb +39 -0
- data/test/rubygems/test_gem_uri_formatter.rb +14 -16
- data/test/rubygems/test_gem_util.rb +37 -35
- data/test/rubygems/test_gem_validator.rb +10 -12
- data/test/rubygems/test_gem_version.rb +32 -32
- data/test/rubygems/test_gem_version_option.rb +16 -18
- data/test/rubygems/test_kernel.rb +47 -67
- data/test/rubygems/test_project_sanity.rb +8 -3
- data/test/rubygems/test_remote_fetch_error.rb +7 -9
- data/test/rubygems/test_require.rb +269 -182
- data/test/rubygems/test_rubygems.rb +74 -0
- data/{lib/rubygems/test_utilities.rb → test/rubygems/utilities.rb} +63 -50
- 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 +17 -0
- metadata +190 -173
- data/.bundle/config +0 -2
- data/.rubocop.yml +0 -91
- data/Gemfile +0 -8
- data/Gemfile.lock +0 -43
- data/History.txt +0 -4473
- data/Rakefile +0 -428
- data/bundler/CODE_OF_CONDUCT.md +0 -136
- data/bundler/lib/bundler/dep_proxy.rb +0 -48
- data/bundler/lib/bundler/gemdeps.rb +0 -29
- data/bundler/lib/bundler/psyched_yaml.rb +0 -37
- 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/connection_pool/lib/connection_pool/monotonic_time.rb +0 -66
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +0 -26
- 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 -81
- 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 -158
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +0 -223
- 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 -101
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +0 -67
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +0 -837
- 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 -12
- data/bundler/lib/bundler/version_ranges.rb +0 -122
- data/bundler/man/bundle-add.1.txt +0 -58
- data/bundler/man/bundle-binstubs.1.txt +0 -48
- data/bundler/man/bundle-cache.1.txt +0 -78
- data/bundler/man/bundle-check.1.txt +0 -33
- data/bundler/man/bundle-clean.1.txt +0 -26
- data/bundler/man/bundle-config.1.txt +0 -528
- data/bundler/man/bundle-doctor.1.txt +0 -44
- data/bundler/man/bundle-exec.1.txt +0 -178
- data/bundler/man/bundle-gem.1 +0 -80
- data/bundler/man/bundle-gem.1.txt +0 -91
- data/bundler/man/bundle-gem.ronn +0 -78
- data/bundler/man/bundle-info.1.txt +0 -21
- data/bundler/man/bundle-init.1.txt +0 -34
- data/bundler/man/bundle-inject.1.txt +0 -32
- data/bundler/man/bundle-install.1.txt +0 -401
- data/bundler/man/bundle-list.1.txt +0 -43
- data/bundler/man/bundle-lock.1.txt +0 -93
- data/bundler/man/bundle-open.1.txt +0 -29
- data/bundler/man/bundle-outdated.1.txt +0 -131
- data/bundler/man/bundle-platform.1.txt +0 -57
- data/bundler/man/bundle-pristine.1.txt +0 -44
- data/bundler/man/bundle-remove.1.txt +0 -34
- data/bundler/man/bundle-show.1.txt +0 -27
- data/bundler/man/bundle-update.1.txt +0 -390
- data/bundler/man/bundle-viz.1.txt +0 -39
- data/bundler/man/bundle.1.txt +0 -116
- data/bundler/man/gemfile.5.txt +0 -649
- data/lib/rubygems/psych_additions.rb +0 -10
- data/lib/rubygems/server.rb +0 -879
- data/lib/rubygems/source_local.rb +0 -7
- data/lib/rubygems/source_specific_file.rb +0 -6
- data/lib/rubygems/syck_hack.rb +0 -79
- data/lib/rubygems/uri_parser.rb +0 -36
- data/lib/rubygems/uri_parsing.rb +0 -23
- data/lib/ubygems.rb +0 -14
- 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 -612
- data/tmp/.keep +0 -0
- data/util/CL2notes +0 -55
- data/util/bisect +0 -10
- data/util/ci.sh +0 -62
- data/util/cops/deprecations.rb +0 -52
- data/util/create_certs.rb +0 -171
- data/util/create_certs.sh +0 -27
- data/util/create_encrypted_key.rb +0 -16
- data/util/generate_spdx_license_list.rb +0 -63
- data/util/patch_with_prs.rb +0 -77
- data/util/rubocop +0 -8
- data/util/update_bundled_ca_certificates.rb +0 -137
- data/util/update_changelog.rb +0 -64
- /data/bundler/{man/bundle-check.ronn → lib/bundler/man/bundle-check.1.ronn} +0 -0
- /data/bundler/{man/bundle-doctor.ronn → lib/bundler/man/bundle-doctor.1.ronn} +0 -0
- /data/bundler/{man/bundle-info.ronn → lib/bundler/man/bundle-info.1.ronn} +0 -0
- /data/bundler/{man/bundle-lock.ronn → lib/bundler/man/bundle-lock.1.ronn} +0 -0
- /data/bundler/{man/bundle-pristine.ronn → lib/bundler/man/bundle-pristine.1.ronn} +0 -0
- /data/bundler/{man/bundle-remove.ronn → lib/bundler/man/bundle-remove.1.ronn} +0 -0
- /data/bundler/{man/bundle-show.ronn → lib/bundler/man/bundle-show.1.ronn} +0 -0
@@ -3,7 +3,10 @@ bundle-config(1) -- Set bundler configuration options
|
|
3
3
|
|
4
4
|
## SYNOPSIS
|
5
5
|
|
6
|
-
`bundle config`
|
6
|
+
`bundle config` list<br>
|
7
|
+
`bundle config` [get] NAME<br>
|
8
|
+
`bundle config` [set] NAME VALUE<br>
|
9
|
+
`bundle config` unset NAME
|
7
10
|
|
8
11
|
## DESCRIPTION
|
9
12
|
|
@@ -11,27 +14,31 @@ This command allows you to interact with Bundler's configuration system.
|
|
11
14
|
|
12
15
|
Bundler loads configuration settings in this order:
|
13
16
|
|
14
|
-
1. Local config (
|
17
|
+
1. Local config (`<project_root>/.bundle/config` or `$BUNDLE_APP_CONFIG/config`)
|
15
18
|
2. Environmental variables (`ENV`)
|
16
19
|
3. Global config (`~/.bundle/config`)
|
17
20
|
4. Bundler default config
|
18
21
|
|
19
|
-
Executing `bundle config list`
|
22
|
+
Executing `bundle config list` will print a list of all bundler
|
20
23
|
configuration for the current bundle, and where that configuration
|
21
24
|
was set.
|
22
25
|
|
23
26
|
Executing `bundle config get <name>` will print the value of that configuration
|
24
27
|
setting, and where it was set.
|
25
28
|
|
26
|
-
Executing `bundle config set <name> <value>`
|
27
|
-
|
28
|
-
|
29
|
-
overridden and user will be warned.
|
29
|
+
Executing `bundle config set <name> <value>` defaults to setting `local`
|
30
|
+
configuration if executing from within a local application, otherwise it will
|
31
|
+
set `global` configuration. See `--local` and `--global` options below.
|
30
32
|
|
31
|
-
Executing `bundle config set --
|
33
|
+
Executing `bundle config set --local <name> <value>` will set that configuration
|
34
|
+
in the directory for the local application. The configuration will be stored in
|
35
|
+
`<project_root>/.bundle/config`. If `BUNDLE_APP_CONFIG` is set, the configuration
|
36
|
+
will be stored in `$BUNDLE_APP_CONFIG/config`.
|
32
37
|
|
33
|
-
Executing `bundle config set --
|
34
|
-
the
|
38
|
+
Executing `bundle config set --global <name> <value>` will set that
|
39
|
+
configuration to the value specified for all bundles executed as the current
|
40
|
+
user. The configuration will be stored in `~/.bundle/config`. If <name> already
|
41
|
+
is set, <name> will be overridden and user will be warned.
|
35
42
|
|
36
43
|
Executing `bundle config unset <name>` will delete the configuration in both
|
37
44
|
local and global sources.
|
@@ -39,16 +46,12 @@ local and global sources.
|
|
39
46
|
Executing `bundle config unset --global <name>` will delete the configuration
|
40
47
|
only from the user configuration.
|
41
48
|
|
42
|
-
Executing `bundle config unset --local <name
|
43
|
-
|
49
|
+
Executing `bundle config unset --local <name>` will delete the configuration
|
50
|
+
only from the local application.
|
44
51
|
|
45
52
|
Executing bundle with the `BUNDLE_IGNORE_CONFIG` environment variable set will
|
46
53
|
cause it to ignore all configuration.
|
47
54
|
|
48
|
-
Executing `bundle config set disable_multisource true` upgrades the warning about
|
49
|
-
the Gemfile containing multiple primary sources to an error. Executing `bundle
|
50
|
-
config unset disable_multisource` downgrades this error to a warning.
|
51
|
-
|
52
55
|
## REMEMBERING OPTIONS
|
53
56
|
|
54
57
|
Flags passed to `bundle install` or the Bundler runtime, such as `--path foo` or
|
@@ -57,7 +60,7 @@ application's configuration (normally, `./.bundle/config`).
|
|
57
60
|
|
58
61
|
However, this will be changed in bundler 3, so it's better not to rely on this
|
59
62
|
behavior. If these options must be remembered, it's better to set them using
|
60
|
-
`bundle config` (e.g., `bundle config set path foo`).
|
63
|
+
`bundle config` (e.g., `bundle config set --local path foo`).
|
61
64
|
|
62
65
|
The options that can be configured are:
|
63
66
|
|
@@ -74,6 +77,9 @@ The options that can be configured are:
|
|
74
77
|
`production` use. Please check carefully if you want to have this option
|
75
78
|
enabled in `development` or `test` environments.
|
76
79
|
|
80
|
+
* `only`:
|
81
|
+
A space-separated list of groups to install only gems of the specified groups.
|
82
|
+
|
77
83
|
* `path`:
|
78
84
|
The location to install the specified gems to. This defaults to Rubygems'
|
79
85
|
setting. Bundler shares this location with Rubygems, `gem install ...` will
|
@@ -85,7 +91,7 @@ The options that can be configured are:
|
|
85
91
|
A space-separated list of groups referencing gems to skip during installation.
|
86
92
|
|
87
93
|
* `with`:
|
88
|
-
A space-separated list of groups referencing gems to include during installation.
|
94
|
+
A space-separated list of **optional** groups referencing gems to include during installation.
|
89
95
|
|
90
96
|
## BUILD OPTIONS
|
91
97
|
|
@@ -101,7 +107,7 @@ pass configuration flags to `gem install` to specify where to find the
|
|
101
107
|
Since the specific location of that executable can change from machine
|
102
108
|
to machine, you can specify these flags on a per-machine basis.
|
103
109
|
|
104
|
-
bundle config set build.mysql --with-mysql-config=/usr/local/mysql/bin/mysql_config
|
110
|
+
bundle config set --global build.mysql --with-mysql-config=/usr/local/mysql/bin/mysql_config
|
105
111
|
|
106
112
|
After running this command, every time bundler needs to install the
|
107
113
|
`mysql` gem, it will pass along the flags you specified.
|
@@ -131,9 +137,6 @@ the environment variable `BUNDLE_LOCAL__RACK`.
|
|
131
137
|
The following is a list of all configuration keys and their purpose. You can
|
132
138
|
learn more about their operation in [bundle install(1)](bundle-install.1.html).
|
133
139
|
|
134
|
-
* `allow_bundler_dependency_conflicts` (`BUNDLE_ALLOW_BUNDLER_DEPENDENCY_CONFLICTS`):
|
135
|
-
Allow resolving to specifications that have dependencies on `bundler` that
|
136
|
-
are incompatible with the running Bundler version.
|
137
140
|
* `allow_deployment_source_credential_changes` (`BUNDLE_ALLOW_DEPLOYMENT_SOURCE_CREDENTIAL_CHANGES`):
|
138
141
|
When in deployment mode, allow changing the credentials to a gem's source.
|
139
142
|
Ex: `https://some.host.com/gems/path/` -> `https://user_name:password@some.host.com/gems/path`
|
@@ -148,7 +151,8 @@ learn more about their operation in [bundle install(1)](bundle-install.1.html).
|
|
148
151
|
Install executables from gems in the bundle to the specified directory.
|
149
152
|
Defaults to `false`.
|
150
153
|
* `cache_all` (`BUNDLE_CACHE_ALL`):
|
151
|
-
Cache all gems, including path and git gems.
|
154
|
+
Cache all gems, including path and git gems. This needs to be explicitly
|
155
|
+
configured on bundler 1 and bundler 2, but will be the default on bundler 3.
|
152
156
|
* `cache_all_platforms` (`BUNDLE_CACHE_ALL_PLATFORMS`):
|
153
157
|
Cache gems for all platforms.
|
154
158
|
* `cache_path` (`BUNDLE_CACHE_PATH`):
|
@@ -175,12 +179,9 @@ learn more about their operation in [bundle install(1)](bundle-install.1.html).
|
|
175
179
|
* `disable_local_branch_check` (`BUNDLE_DISABLE_LOCAL_BRANCH_CHECK`):
|
176
180
|
Allow Bundler to use a local git override without a branch specified in the
|
177
181
|
Gemfile.
|
178
|
-
* `
|
179
|
-
|
180
|
-
|
181
|
-
Use `bundle config unset disable_multisource` to unset.
|
182
|
-
* `disable_platform_warnings` (`BUNDLE_DISABLE_PLATFORM_WARNINGS`):
|
183
|
-
Disable warnings during bundle install when a dependency is unused on the current platform.
|
182
|
+
* `disable_local_revision_check` (`BUNDLE_DISABLE_LOCAL_REVISION_CHECK`):
|
183
|
+
Allow Bundler to use a local git override without checking if the revision
|
184
|
+
present in the lockfile is present in the repository.
|
184
185
|
* `disable_shared_gems` (`BUNDLE_DISABLE_SHARED_GEMS`):
|
185
186
|
Stop Bundler from accessing gems installed to RubyGems' normal location.
|
186
187
|
* `disable_version_check` (`BUNDLE_DISABLE_VERSION_CHECK`):
|
@@ -193,6 +194,10 @@ learn more about their operation in [bundle install(1)](bundle-install.1.html).
|
|
193
194
|
Disallow changes to the `Gemfile`. When the `Gemfile` is changed and the
|
194
195
|
lockfile has not been updated, running Bundler commands will be blocked.
|
195
196
|
Defaults to `true` when `--deployment` is used.
|
197
|
+
* `gem.github_username` (`BUNDLE_GEM__GITHUB_USERNAME`):
|
198
|
+
Sets a GitHub username or organization to be used in `README` file when you
|
199
|
+
create a new gem via `bundle gem` command. It can be overridden by passing an
|
200
|
+
explicit `--github-username` flag to `bundle gem`.
|
196
201
|
* `gem.push_key` (`BUNDLE_GEM__PUSH_KEY`):
|
197
202
|
Sets the `--key` parameter for `gem push` when using the `rake release`
|
198
203
|
command with a private gemstash server.
|
@@ -205,20 +210,22 @@ learn more about their operation in [bundle install(1)](bundle-install.1.html).
|
|
205
210
|
* `global_gem_cache` (`BUNDLE_GLOBAL_GEM_CACHE`):
|
206
211
|
Whether Bundler should cache all gems globally, rather than locally to the
|
207
212
|
installing Ruby installation.
|
208
|
-
* `
|
209
|
-
|
210
|
-
|
211
|
-
|
213
|
+
* `ignore_funding_requests` (`BUNDLE_IGNORE_FUNDING_REQUESTS`):
|
214
|
+
When set, no funding requests will be printed.
|
215
|
+
* `ignore_messages` (`BUNDLE_IGNORE_MESSAGES`):
|
216
|
+
When set, no post install messages will be printed. To silence a single gem,
|
217
|
+
use dot notation like `ignore_messages.httparty true`.
|
218
|
+
* `init_gems_rb` (`BUNDLE_INIT_GEMS_RB`):
|
212
219
|
Generate a `gems.rb` instead of a `Gemfile` when running `bundle init`.
|
213
220
|
* `jobs` (`BUNDLE_JOBS`):
|
214
|
-
The number of gems Bundler can install in parallel. Defaults to
|
221
|
+
The number of gems Bundler can install in parallel. Defaults to the number of
|
222
|
+
available processors.
|
215
223
|
* `no_install` (`BUNDLE_NO_INSTALL`):
|
216
224
|
Whether `bundle package` should skip installing gems.
|
217
225
|
* `no_prune` (`BUNDLE_NO_PRUNE`):
|
218
226
|
Whether Bundler should leave outdated gems unpruned when caching.
|
219
|
-
* `
|
220
|
-
|
221
|
-
lockfile.
|
227
|
+
* `only` (`BUNDLE_ONLY`):
|
228
|
+
A space-separated list of groups to install only gems of the specified groups.
|
222
229
|
* `path` (`BUNDLE_PATH`):
|
223
230
|
The location on disk where all gems in your bundle will be located regardless
|
224
231
|
of `$GEM_HOME` or `$GEM_PATH` values. Bundle gems not found in this location
|
@@ -232,7 +239,7 @@ learn more about their operation in [bundle install(1)](bundle-install.1.html).
|
|
232
239
|
Enable Bundler's experimental plugin system.
|
233
240
|
* `prefer_patch` (BUNDLE_PREFER_PATCH):
|
234
241
|
Prefer updating only to next patch version during updates. Makes `bundle update` calls equivalent to `bundler update --patch`.
|
235
|
-
* `print_only_version_number` (`BUNDLE_PRINT_ONLY_VERSION_NUMBER`)
|
242
|
+
* `print_only_version_number` (`BUNDLE_PRINT_ONLY_VERSION_NUMBER`):
|
236
243
|
Print only version number from `bundler --version`.
|
237
244
|
* `redirect` (`BUNDLE_REDIRECT`):
|
238
245
|
The number of redirects allowed for network requests. Defaults to `5`.
|
@@ -249,17 +256,6 @@ learn more about their operation in [bundle install(1)](bundle-install.1.html).
|
|
249
256
|
be changed in the next major version.
|
250
257
|
* `silence_root_warning` (`BUNDLE_SILENCE_ROOT_WARNING`):
|
251
258
|
Silence the warning Bundler prints when installing gems as root.
|
252
|
-
* `skip_default_git_sources` (`BUNDLE_SKIP_DEFAULT_GIT_SOURCES`):
|
253
|
-
Whether Bundler should skip adding default git source shortcuts to the
|
254
|
-
Gemfile DSL.
|
255
|
-
* `specific_platform` (`BUNDLE_SPECIFIC_PLATFORM`):
|
256
|
-
Allow bundler to resolve for the specific running platform and store it in
|
257
|
-
the lockfile, instead of only using a generic platform.
|
258
|
-
A specific platform is the exact platform triple reported by
|
259
|
-
`Gem::Platform.local`, such as `x86_64-darwin-16` or `universal-java-1.8`.
|
260
|
-
On the other hand, generic platforms are those such as `ruby`, `mswin`, or
|
261
|
-
`java`. In this example, `x86_64-darwin-16` would map to `ruby` and
|
262
|
-
`universal-java-1.8` to `java`.
|
263
259
|
* `ssl_ca_cert` (`BUNDLE_SSL_CA_CERT`):
|
264
260
|
Path to a designated CA certificate file or folder containing multiple
|
265
261
|
certificates for trusted CAs in PEM format.
|
@@ -276,10 +272,7 @@ learn more about their operation in [bundle install(1)](bundle-install.1.html).
|
|
276
272
|
The location where RubyGems installs binstubs. Defaults to `Gem.bindir`.
|
277
273
|
* `timeout` (`BUNDLE_TIMEOUT`):
|
278
274
|
The seconds allowed before timing out for network requests. Defaults to `10`.
|
279
|
-
* `
|
280
|
-
Whether running `bundle update --source NAME` unlocks a gem with the given
|
281
|
-
name. Defaults to `true`.
|
282
|
-
* `update_requires_all_flag` (`BUNDLE_UPDATE_REQUIRES_ALL_FLAG`)
|
275
|
+
* `update_requires_all_flag` (`BUNDLE_UPDATE_REQUIRES_ALL_FLAG`):
|
283
276
|
Require passing `--all` to `bundle update` when everything should be updated,
|
284
277
|
and disallow passing no options to `bundle update`.
|
285
278
|
* `user_agent` (`BUNDLE_USER_AGENT`):
|
@@ -290,7 +283,7 @@ learn more about their operation in [bundle install(1)](bundle-install.1.html).
|
|
290
283
|
A `:`-separated list of groups whose gems bundler should not install.
|
291
284
|
|
292
285
|
In general, you should set these settings per-application by using the applicable
|
293
|
-
flag to the [bundle install(1)](bundle-install.1.html) or [bundle
|
286
|
+
flag to the [bundle install(1)](bundle-install.1.html) or [bundle cache(1)](bundle-cache.1.html) command.
|
294
287
|
|
295
288
|
You can set them globally either via environment variables or `bundle config`,
|
296
289
|
whichever is preferable for your setup. If you use both, environment variables
|
@@ -302,11 +295,11 @@ Bundler also allows you to work against a git repository locally
|
|
302
295
|
instead of using the remote version. This can be achieved by setting
|
303
296
|
up a local override:
|
304
297
|
|
305
|
-
bundle config set local.GEM_NAME /path/to/local/git/repository
|
298
|
+
bundle config set --local local.GEM_NAME /path/to/local/git/repository
|
306
299
|
|
307
300
|
For example, in order to use a local Rack repository, a developer could call:
|
308
301
|
|
309
|
-
bundle config set local.rack ~/Work/git/rack
|
302
|
+
bundle config set --local local.rack ~/Work/git/rack
|
310
303
|
|
311
304
|
Now instead of checking out the remote git repository, the local
|
312
305
|
override will be used. Similar to a path source, every time the local
|
@@ -336,21 +329,21 @@ Bundler supports overriding gem sources with mirrors. This allows you to
|
|
336
329
|
configure rubygems.org as the gem source in your Gemfile while still using your
|
337
330
|
mirror to fetch gems.
|
338
331
|
|
339
|
-
bundle config set mirror.SOURCE_URL MIRROR_URL
|
332
|
+
bundle config set --global mirror.SOURCE_URL MIRROR_URL
|
340
333
|
|
341
|
-
For example, to use a mirror of rubygems.org hosted at
|
334
|
+
For example, to use a mirror of https://rubygems.org hosted at https://example.org:
|
342
335
|
|
343
|
-
bundle config set mirror.
|
336
|
+
bundle config set --global mirror.https://rubygems.org https://example.org
|
344
337
|
|
345
338
|
Each mirror also provides a fallback timeout setting. If the mirror does not
|
346
339
|
respond within the fallback timeout, Bundler will try to use the original
|
347
340
|
server instead of the mirror.
|
348
341
|
|
349
|
-
bundle config set mirror.SOURCE_URL.fallback_timeout TIMEOUT
|
342
|
+
bundle config set --global mirror.SOURCE_URL.fallback_timeout TIMEOUT
|
350
343
|
|
351
344
|
For example, to fall back to rubygems.org after 3 seconds:
|
352
345
|
|
353
|
-
bundle config set mirror.https://rubygems.org.fallback_timeout 3
|
346
|
+
bundle config set --global mirror.https://rubygems.org.fallback_timeout 3
|
354
347
|
|
355
348
|
The default fallback timeout is 0.1 seconds, but the setting can currently
|
356
349
|
only accept whole seconds (for example, 1, 15, or 30).
|
@@ -360,12 +353,12 @@ only accept whole seconds (for example, 1, 15, or 30).
|
|
360
353
|
Bundler allows you to configure credentials for any gem source, which allows
|
361
354
|
you to avoid putting secrets into your Gemfile.
|
362
355
|
|
363
|
-
bundle config set SOURCE_HOSTNAME USERNAME:PASSWORD
|
356
|
+
bundle config set --global SOURCE_HOSTNAME USERNAME:PASSWORD
|
364
357
|
|
365
358
|
For example, to save the credentials of user `claudette` for the gem source at
|
366
359
|
`gems.longerous.com`, you would run:
|
367
360
|
|
368
|
-
bundle config set gems.longerous.com claudette:s00pers3krit
|
361
|
+
bundle config set --global gems.longerous.com claudette:s00pers3krit
|
369
362
|
|
370
363
|
Or you can set the credentials as an environment variable like this:
|
371
364
|
|
@@ -373,17 +366,34 @@ Or you can set the credentials as an environment variable like this:
|
|
373
366
|
|
374
367
|
For gems with a git source with HTTP(S) URL you can specify credentials like so:
|
375
368
|
|
376
|
-
bundle config set https://github.com/
|
369
|
+
bundle config set --global https://github.com/rubygems/rubygems.git username:password
|
377
370
|
|
378
371
|
Or you can set the credentials as an environment variable like so:
|
379
372
|
|
380
373
|
export BUNDLE_GITHUB__COM=username:password
|
381
374
|
|
382
|
-
This is especially useful for private repositories on hosts such as
|
375
|
+
This is especially useful for private repositories on hosts such as GitHub,
|
383
376
|
where you can use personal OAuth tokens:
|
384
377
|
|
385
378
|
export BUNDLE_GITHUB__COM=abcd0123generatedtoken:x-oauth-basic
|
386
379
|
|
380
|
+
Note that any configured credentials will be redacted by informative commands
|
381
|
+
such as `bundle config list` or `bundle config get`, unless you use the
|
382
|
+
`--parseable` flag. This is to avoid unintentionally leaking credentials when
|
383
|
+
copy-pasting bundler output.
|
384
|
+
|
385
|
+
Also note that to guarantee a sane mapping between valid environment variable
|
386
|
+
names and valid host names, bundler makes the following transformations:
|
387
|
+
|
388
|
+
* Any `-` characters in a host name are mapped to a triple dash (`___`) in the
|
389
|
+
corresponding environment variable.
|
390
|
+
|
391
|
+
* Any `.` characters in a host name are mapped to a double dash (`__`) in the
|
392
|
+
corresponding environment variable.
|
393
|
+
|
394
|
+
This means that if you have a gem server named `my.gem-host.com`, you'll need to
|
395
|
+
use the `BUNDLE_MY__GEM___HOST__COM` variable to configure credentials for it
|
396
|
+
through ENV.
|
387
397
|
|
388
398
|
## CONFIGURE BUNDLER DIRECTORIES
|
389
399
|
|
@@ -396,4 +406,3 @@ outlines the available environment variables and their default values
|
|
396
406
|
BUNDLE_USER_CACHE : $BUNDLE_USER_HOME/cache
|
397
407
|
BUNDLE_USER_CONFIG : $BUNDLE_USER_HOME/config
|
398
408
|
BUNDLE_USER_PLUGIN : $BUNDLE_USER_HOME/plugin
|
399
|
-
|
@@ -0,0 +1,53 @@
|
|
1
|
+
.\" generated with Ronn/v0.7.3
|
2
|
+
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
|
+
.
|
4
|
+
.TH "BUNDLE\-CONSOLE" "1" "February 2023" "" ""
|
5
|
+
.
|
6
|
+
.SH "NAME"
|
7
|
+
\fBbundle\-console\fR \- Deprecated way to open an IRB session with the bundle pre\-loaded
|
8
|
+
.
|
9
|
+
.SH "SYNOPSIS"
|
10
|
+
\fBbundle console\fR [GROUP]
|
11
|
+
.
|
12
|
+
.SH "DESCRIPTION"
|
13
|
+
Starts an interactive Ruby console session in the context of the current bundle\.
|
14
|
+
.
|
15
|
+
.P
|
16
|
+
If no \fBGROUP\fR is specified, all gems in the \fBdefault\fR group in the Gemfile(5) \fIhttps://bundler\.io/man/gemfile\.5\.html\fR are preliminarily loaded\.
|
17
|
+
.
|
18
|
+
.P
|
19
|
+
If \fBGROUP\fR is specified, all gems in the given group in the Gemfile in addition to the gems in \fBdefault\fR group are loaded\. Even if the given group does not exist in the Gemfile, IRB console starts without any warning or error\.
|
20
|
+
.
|
21
|
+
.P
|
22
|
+
The environment variable \fBBUNDLE_CONSOLE\fR or \fBbundle config set console\fR can be used to change the shell from the following:
|
23
|
+
.
|
24
|
+
.IP "\(bu" 4
|
25
|
+
\fBirb\fR (default)
|
26
|
+
.
|
27
|
+
.IP "\(bu" 4
|
28
|
+
\fBpry\fR (https://github\.com/pry/pry)
|
29
|
+
.
|
30
|
+
.IP "\(bu" 4
|
31
|
+
\fBripl\fR (https://github\.com/cldwalker/ripl)
|
32
|
+
.
|
33
|
+
.IP "" 0
|
34
|
+
.
|
35
|
+
.P
|
36
|
+
\fBbundle console\fR uses irb by default\. An alternative Pry or Ripl can be used with \fBbundle console\fR by adjusting the \fBconsole\fR Bundler setting\. Also make sure that \fBpry\fR or \fBripl\fR is in your Gemfile\.
|
37
|
+
.
|
38
|
+
.SH "EXAMPLE"
|
39
|
+
.
|
40
|
+
.nf
|
41
|
+
|
42
|
+
$ bundle config set console pry
|
43
|
+
$ bundle console
|
44
|
+
Resolving dependencies\.\.\.
|
45
|
+
[1] pry(main)>
|
46
|
+
.
|
47
|
+
.fi
|
48
|
+
.
|
49
|
+
.SH "NOTES"
|
50
|
+
This command was deprecated in Bundler 2\.1 and will be removed in 3\.0\. Use \fBbin/console\fR script, which can be generated by \fBbundle gem <NAME>\fR\.
|
51
|
+
.
|
52
|
+
.SH "SEE ALSO"
|
53
|
+
Gemfile(5) \fIhttps://bundler\.io/man/gemfile\.5\.html\fR
|
@@ -0,0 +1,44 @@
|
|
1
|
+
bundle-console(1) -- Deprecated way to open an IRB session with the bundle pre-loaded
|
2
|
+
=====================================================================================
|
3
|
+
|
4
|
+
## SYNOPSIS
|
5
|
+
|
6
|
+
`bundle console` [GROUP]
|
7
|
+
|
8
|
+
## DESCRIPTION
|
9
|
+
|
10
|
+
Starts an interactive Ruby console session in the context of the current bundle.
|
11
|
+
|
12
|
+
If no `GROUP` is specified, all gems in the `default` group in the [Gemfile(5)](https://bundler.io/man/gemfile.5.html) are
|
13
|
+
preliminarily loaded.
|
14
|
+
|
15
|
+
If `GROUP` is specified, all gems in the given group in the Gemfile in addition
|
16
|
+
to the gems in `default` group are loaded. Even if the given group does not
|
17
|
+
exist in the Gemfile, IRB console starts without any warning or error.
|
18
|
+
|
19
|
+
The environment variable `BUNDLE_CONSOLE` or `bundle config set console` can be used to change
|
20
|
+
the shell from the following:
|
21
|
+
|
22
|
+
* `irb` (default)
|
23
|
+
* `pry` (https://github.com/pry/pry)
|
24
|
+
* `ripl` (https://github.com/cldwalker/ripl)
|
25
|
+
|
26
|
+
`bundle console` uses irb by default. An alternative Pry or Ripl can be used with
|
27
|
+
`bundle console` by adjusting the `console` Bundler setting. Also make sure that
|
28
|
+
`pry` or `ripl` is in your Gemfile.
|
29
|
+
|
30
|
+
## EXAMPLE
|
31
|
+
|
32
|
+
$ bundle config set console pry
|
33
|
+
$ bundle console
|
34
|
+
Resolving dependencies...
|
35
|
+
[1] pry(main)>
|
36
|
+
|
37
|
+
## NOTES
|
38
|
+
|
39
|
+
This command was deprecated in Bundler 2.1 and will be removed in 3.0.
|
40
|
+
Use `bin/console` script, which can be generated by `bundle gem <NAME>`.
|
41
|
+
|
42
|
+
## SEE ALSO
|
43
|
+
|
44
|
+
[Gemfile(5)](https://bundler.io/man/gemfile.5.html)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "BUNDLE\-EXEC" "1" "
|
4
|
+
.TH "BUNDLE\-EXEC" "1" "February 2023" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-exec\fR \- Execute a command in the context of the bundle
|
@@ -74,13 +74,13 @@ Finally, \fBbundle exec\fR also implicitly modifies \fBGemfile\.lock\fR if the l
|
|
74
74
|
By default, when attempting to \fBbundle exec\fR to a file with a ruby shebang, Bundler will \fBKernel\.load\fR that file instead of using \fBKernel\.exec\fR\. For the vast majority of cases, this is a performance improvement\. In a rare few cases, this could cause some subtle side\-effects (such as dependence on the exact contents of \fB$0\fR or \fB__FILE__\fR) and the optimization can be disabled by enabling the \fBdisable_exec_load\fR setting\.
|
75
75
|
.
|
76
76
|
.SS "Shelling out"
|
77
|
-
Any Ruby code that opens a subshell (like \fBsystem\fR, backticks, or \fB%x{}\fR) will automatically use the current Bundler environment\. If you need to shell out to a Ruby command that is not part of your current bundle, use the \
|
77
|
+
Any Ruby code that opens a subshell (like \fBsystem\fR, backticks, or \fB%x{}\fR) will automatically use the current Bundler environment\. If you need to shell out to a Ruby command that is not part of your current bundle, use the \fBwith_unbundled_env\fR method with a block\. Any subshells created inside the block will be given the environment present before Bundler was activated\. For example, Homebrew commands run Ruby, but don\'t work inside a bundle:
|
78
78
|
.
|
79
79
|
.IP "" 4
|
80
80
|
.
|
81
81
|
.nf
|
82
82
|
|
83
|
-
Bundler\.
|
83
|
+
Bundler\.with_unbundled_env do
|
84
84
|
`brew install wget`
|
85
85
|
end
|
86
86
|
.
|
@@ -89,13 +89,13 @@ end
|
|
89
89
|
.IP "" 0
|
90
90
|
.
|
91
91
|
.P
|
92
|
-
Using \
|
92
|
+
Using \fBwith_unbundled_env\fR is also necessary if you are shelling out to a different bundle\. Any Bundler commands run in a subshell will inherit the current Gemfile, so commands that need to run in the context of a different bundle also need to use \fBwith_unbundled_env\fR\.
|
93
93
|
.
|
94
94
|
.IP "" 4
|
95
95
|
.
|
96
96
|
.nf
|
97
97
|
|
98
|
-
Bundler\.
|
98
|
+
Bundler\.with_unbundled_env do
|
99
99
|
Dir\.chdir "/other/bundler/project" do
|
100
100
|
`bundle exec \./script`
|
101
101
|
end
|
@@ -155,7 +155,7 @@ You can find a list of all the gems containing gem plugins by running
|
|
155
155
|
.
|
156
156
|
.nf
|
157
157
|
|
158
|
-
ruby \-
|
158
|
+
ruby \-e "puts Gem\.find_files(\'rubygems_plugin\.rb\')"
|
159
159
|
.
|
160
160
|
.fi
|
161
161
|
.
|
@@ -84,20 +84,20 @@ the `disable_exec_load` setting.
|
|
84
84
|
Any Ruby code that opens a subshell (like `system`, backticks, or `%x{}`) will
|
85
85
|
automatically use the current Bundler environment. If you need to shell out to
|
86
86
|
a Ruby command that is not part of your current bundle, use the
|
87
|
-
`
|
87
|
+
`with_unbundled_env` method with a block. Any subshells created inside the block
|
88
88
|
will be given the environment present before Bundler was activated. For
|
89
89
|
example, Homebrew commands run Ruby, but don't work inside a bundle:
|
90
90
|
|
91
|
-
Bundler.
|
91
|
+
Bundler.with_unbundled_env do
|
92
92
|
`brew install wget`
|
93
93
|
end
|
94
94
|
|
95
|
-
Using `
|
95
|
+
Using `with_unbundled_env` is also necessary if you are shelling out to a different
|
96
96
|
bundle. Any Bundler commands run in a subshell will inherit the current
|
97
97
|
Gemfile, so commands that need to run in the context of a different bundle also
|
98
|
-
need to use `
|
98
|
+
need to use `with_unbundled_env`.
|
99
99
|
|
100
|
-
Bundler.
|
100
|
+
Bundler.with_unbundled_env do
|
101
101
|
Dir.chdir "/other/bundler/project" do
|
102
102
|
`bundle exec ./script`
|
103
103
|
end
|
@@ -145,7 +145,7 @@ their plugins.
|
|
145
145
|
You can find a list of all the gems containing gem plugins
|
146
146
|
by running
|
147
147
|
|
148
|
-
ruby -
|
148
|
+
ruby -e "puts Gem.find_files('rubygems_plugin.rb')"
|
149
149
|
|
150
150
|
At the very least, you should remove all but the newest
|
151
151
|
version of each gem plugin, and also remove all gem plugins
|
@@ -0,0 +1,105 @@
|
|
1
|
+
.\" generated with Ronn/v0.7.3
|
2
|
+
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
|
+
.
|
4
|
+
.TH "BUNDLE\-GEM" "1" "February 2023" "" ""
|
5
|
+
.
|
6
|
+
.SH "NAME"
|
7
|
+
\fBbundle\-gem\fR \- Generate a project skeleton for creating a rubygem
|
8
|
+
.
|
9
|
+
.SH "SYNOPSIS"
|
10
|
+
\fBbundle gem\fR \fIGEM_NAME\fR \fIOPTIONS\fR
|
11
|
+
.
|
12
|
+
.SH "DESCRIPTION"
|
13
|
+
Generates a directory named \fBGEM_NAME\fR with a \fBRakefile\fR, \fBGEM_NAME\.gemspec\fR, and other supporting files and directories that can be used to develop a rubygem with that name\.
|
14
|
+
.
|
15
|
+
.P
|
16
|
+
Run \fBrake \-T\fR in the resulting project for a list of Rake tasks that can be used to test and publish the gem to rubygems\.org\.
|
17
|
+
.
|
18
|
+
.P
|
19
|
+
The generated project skeleton can be customized with OPTIONS, as explained below\. Note that these options can also be specified via Bundler\'s global configuration file using the following names:
|
20
|
+
.
|
21
|
+
.IP "\(bu" 4
|
22
|
+
\fBgem\.coc\fR
|
23
|
+
.
|
24
|
+
.IP "\(bu" 4
|
25
|
+
\fBgem\.mit\fR
|
26
|
+
.
|
27
|
+
.IP "\(bu" 4
|
28
|
+
\fBgem\.test\fR
|
29
|
+
.
|
30
|
+
.IP "" 0
|
31
|
+
.
|
32
|
+
.SH "OPTIONS"
|
33
|
+
.
|
34
|
+
.IP "\(bu" 4
|
35
|
+
\fB\-\-exe\fR or \fB\-b\fR or \fB\-\-bin\fR: Specify that Bundler should create a binary executable (as \fBexe/GEM_NAME\fR) in the generated rubygem project\. This binary will also be added to the \fBGEM_NAME\.gemspec\fR manifest\. This behavior is disabled by default\.
|
36
|
+
.
|
37
|
+
.IP "\(bu" 4
|
38
|
+
\fB\-\-no\-exe\fR: Do not create a binary (overrides \fB\-\-exe\fR specified in the global config)\.
|
39
|
+
.
|
40
|
+
.IP "\(bu" 4
|
41
|
+
\fB\-\-coc\fR: Add a \fBCODE_OF_CONDUCT\.md\fR file to the root of the generated project\. If this option is unspecified, an interactive prompt will be displayed and the answer will be saved in Bundler\'s global config for future \fBbundle gem\fR use\.
|
42
|
+
.
|
43
|
+
.IP "\(bu" 4
|
44
|
+
\fB\-\-no\-coc\fR: Do not create a \fBCODE_OF_CONDUCT\.md\fR (overrides \fB\-\-coc\fR specified in the global config)\.
|
45
|
+
.
|
46
|
+
.IP "\(bu" 4
|
47
|
+
\fB\-\-ext=c\fR, \fB\-\-ext=rust\fR Add boilerplate for C or Rust (currently magnus \fIhttps://docs\.rs/magnus\fR based) extension code to the generated project\. This behavior is disabled by default\.
|
48
|
+
.
|
49
|
+
.IP "\(bu" 4
|
50
|
+
\fB\-\-no\-ext\fR: Do not add extension code (overrides \fB\-\-ext\fR specified in the global config)\.
|
51
|
+
.
|
52
|
+
.IP "\(bu" 4
|
53
|
+
\fB\-\-mit\fR: Add an MIT license to a \fBLICENSE\.txt\fR file in the root of the generated project\. Your name from the global git config is used for the copyright statement\. If this option is unspecified, an interactive prompt will be displayed and the answer will be saved in Bundler\'s global config for future \fBbundle gem\fR use\.
|
54
|
+
.
|
55
|
+
.IP "\(bu" 4
|
56
|
+
\fB\-\-no\-mit\fR: Do not create a \fBLICENSE\.txt\fR (overrides \fB\-\-mit\fR specified in the global config)\.
|
57
|
+
.
|
58
|
+
.IP "\(bu" 4
|
59
|
+
\fB\-t\fR, \fB\-\-test=minitest\fR, \fB\-\-test=rspec\fR, \fB\-\-test=test\-unit\fR: Specify the test framework that Bundler should use when generating the project\. Acceptable values are \fBminitest\fR, \fBrspec\fR and \fBtest\-unit\fR\. The \fBGEM_NAME\.gemspec\fR will be configured and a skeleton test/spec directory will be created based on this option\. Given no option is specified:
|
60
|
+
.
|
61
|
+
.IP
|
62
|
+
When Bundler is configured to generate tests, this defaults to Bundler\'s global config setting \fBgem\.test\fR\.
|
63
|
+
.
|
64
|
+
.IP
|
65
|
+
When Bundler is configured to not generate tests, an interactive prompt will be displayed and the answer will be used for the current rubygem project\.
|
66
|
+
.
|
67
|
+
.IP
|
68
|
+
When Bundler is unconfigured, an interactive prompt will be displayed and the answer will be saved in Bundler\'s global config for future \fBbundle gem\fR use\.
|
69
|
+
.
|
70
|
+
.IP "\(bu" 4
|
71
|
+
\fB\-\-ci\fR, \fB\-\-ci=github\fR, \fB\-\-ci=gitlab\fR, \fB\-\-ci=circle\fR: Specify the continuous integration service that Bundler should use when generating the project\. Acceptable values are \fBgithub\fR, \fBgitlab\fR and \fBcircle\fR\. A configuration file will be generated in the project directory\. Given no option is specified:
|
72
|
+
.
|
73
|
+
.IP
|
74
|
+
When Bundler is configured to generate CI files, this defaults to Bundler\'s global config setting \fBgem\.ci\fR\.
|
75
|
+
.
|
76
|
+
.IP
|
77
|
+
When Bundler is configured to not generate CI files, an interactive prompt will be displayed and the answer will be used for the current rubygem project\.
|
78
|
+
.
|
79
|
+
.IP
|
80
|
+
When Bundler is unconfigured, an interactive prompt will be displayed and the answer will be saved in Bundler\'s global config for future \fBbundle gem\fR use\.
|
81
|
+
.
|
82
|
+
.IP "\(bu" 4
|
83
|
+
\fB\-\-linter\fR, \fB\-\-linter=rubocop\fR, \fB\-\-linter=standard\fR: Specify the linter and code formatter that Bundler should add to the project\'s development dependencies\. Acceptable values are \fBrubocop\fR and \fBstandard\fR\. A configuration file will be generated in the project directory\. Given no option is specified:
|
84
|
+
.
|
85
|
+
.IP
|
86
|
+
When Bundler is configured to add a linter, this defaults to Bundler\'s global config setting \fBgem\.linter\fR\.
|
87
|
+
.
|
88
|
+
.IP
|
89
|
+
When Bundler is configured not to add a linter, an interactive prompt will be displayed and the answer will be used for the current rubygem project\.
|
90
|
+
.
|
91
|
+
.IP
|
92
|
+
When Bundler is unconfigured, an interactive prompt will be displayed and the answer will be saved in Bundler\'s global config for future \fBbundle gem\fR use\.
|
93
|
+
.
|
94
|
+
.IP "\(bu" 4
|
95
|
+
\fB\-e\fR, \fB\-\-edit[=EDITOR]\fR: Open the resulting GEM_NAME\.gemspec in EDITOR, or the default editor if not specified\. The default is \fB$BUNDLER_EDITOR\fR, \fB$VISUAL\fR, or \fB$EDITOR\fR\.
|
96
|
+
.
|
97
|
+
.IP "" 0
|
98
|
+
.
|
99
|
+
.SH "SEE ALSO"
|
100
|
+
.
|
101
|
+
.IP "\(bu" 4
|
102
|
+
bundle config(1) \fIbundle\-config\.1\.html\fR
|
103
|
+
.
|
104
|
+
.IP "" 0
|
105
|
+
|