rubygems-update 3.1.0 → 3.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CODE_OF_CONDUCT.md +55 -19
- data/CONTRIBUTING.md +25 -11
- data/History.txt +435 -179
- data/Manifest.txt +44 -77
- data/POLICIES.md +2 -9
- data/README.md +5 -5
- data/Rakefile +50 -83
- data/bin/update_rubygems +2 -2
- data/bundler/CHANGELOG.md +1590 -1400
- data/bundler/README.md +6 -8
- data/bundler/UPGRADING.md +18 -32
- data/bundler/bundler.gemspec +3 -3
- data/bundler/exe/bundle +3 -0
- data/bundler/lib/bundler.rb +25 -7
- data/bundler/lib/bundler/build_metadata.rb +4 -12
- data/bundler/lib/bundler/cli.rb +56 -20
- data/bundler/lib/bundler/cli/add.rb +1 -1
- data/bundler/lib/bundler/cli/binstubs.rb +6 -2
- data/bundler/lib/bundler/cli/cache.rb +1 -7
- data/bundler/lib/bundler/cli/clean.rb +1 -1
- data/bundler/lib/bundler/cli/common.rb +14 -0
- data/bundler/lib/bundler/cli/console.rb +1 -1
- data/bundler/lib/bundler/cli/doctor.rb +1 -1
- data/bundler/lib/bundler/cli/exec.rb +7 -16
- data/bundler/lib/bundler/cli/fund.rb +36 -0
- data/bundler/lib/bundler/cli/gem.rb +75 -11
- data/bundler/lib/bundler/cli/info.rb +8 -4
- data/bundler/lib/bundler/cli/init.rb +2 -2
- data/bundler/lib/bundler/cli/inject.rb +1 -1
- data/bundler/lib/bundler/cli/install.rb +12 -18
- data/bundler/lib/bundler/cli/issue.rb +2 -2
- data/bundler/lib/bundler/cli/list.rb +1 -1
- data/bundler/lib/bundler/cli/outdated.rb +2 -4
- data/bundler/lib/bundler/cli/plugin.rb +10 -0
- data/bundler/lib/bundler/cli/pristine.rb +1 -1
- data/bundler/lib/bundler/cli/show.rb +1 -1
- data/bundler/lib/bundler/cli/update.rb +2 -0
- data/bundler/lib/bundler/compact_index_client.rb +1 -1
- data/bundler/lib/bundler/compact_index_client/cache.rb +1 -1
- data/bundler/lib/bundler/compact_index_client/updater.rb +5 -5
- data/bundler/lib/bundler/definition.rb +47 -61
- data/bundler/lib/bundler/dep_proxy.rb +1 -1
- data/bundler/lib/bundler/dependency.rb +0 -9
- data/bundler/lib/bundler/dsl.rb +5 -9
- data/bundler/lib/bundler/endpoint_specification.rb +1 -1
- data/bundler/lib/bundler/env.rb +1 -1
- data/bundler/lib/bundler/environment_preserver.rb +26 -2
- data/bundler/lib/bundler/errors.rb +1 -0
- data/bundler/lib/bundler/feature_flag.rb +0 -3
- data/bundler/lib/bundler/fetcher.rb +4 -3
- data/bundler/lib/bundler/fetcher/base.rb +1 -1
- data/bundler/lib/bundler/fetcher/compact_index.rb +1 -1
- data/bundler/lib/bundler/fetcher/downloader.rb +1 -1
- data/bundler/lib/bundler/fetcher/index.rb +3 -4
- data/bundler/lib/bundler/friendly_errors.rb +22 -13
- data/bundler/lib/bundler/gem_helper.rb +33 -19
- data/bundler/lib/bundler/gem_helpers.rb +6 -1
- data/bundler/lib/bundler/gem_version_promoter.rb +2 -2
- data/bundler/lib/bundler/graph.rb +1 -1
- data/bundler/lib/bundler/index.rb +6 -2
- data/bundler/lib/bundler/injector.rb +22 -4
- data/bundler/lib/bundler/inline.rb +2 -2
- data/bundler/lib/bundler/installer.rb +35 -32
- data/bundler/lib/bundler/installer/gem_installer.rb +3 -3
- data/bundler/lib/bundler/installer/parallel_installer.rb +10 -10
- data/bundler/lib/bundler/installer/standalone.rb +2 -2
- data/bundler/lib/bundler/lazy_specification.rb +20 -9
- data/bundler/lib/bundler/lockfile_generator.rb +1 -1
- data/bundler/lib/bundler/lockfile_parser.rb +1 -1
- data/bundler/lib/bundler/man/.document +1 -0
- data/bundler/{man/bundle-add.ronn → lib/bundler/man/bundle-add.1.ronn} +0 -0
- data/bundler/{man/bundle-binstubs.ronn → lib/bundler/man/bundle-binstubs.1.ronn} +2 -4
- data/bundler/{man/bundle-cache.ronn → lib/bundler/man/bundle-cache.1.ronn} +0 -0
- data/bundler/{man/bundle-check.ronn → lib/bundler/man/bundle-check.1.ronn} +0 -0
- data/bundler/{man/bundle-clean.ronn → lib/bundler/man/bundle-clean.1.ronn} +0 -0
- data/bundler/{man/bundle-config.ronn → lib/bundler/man/bundle-config.1.ronn} +19 -30
- data/bundler/{man/bundle-doctor.ronn → lib/bundler/man/bundle-doctor.1.ronn} +0 -0
- data/bundler/{man/bundle-exec.ronn → lib/bundler/man/bundle-exec.1.ronn} +0 -0
- data/bundler/{man/bundle-gem.ronn → lib/bundler/man/bundle-gem.1.ronn} +30 -7
- data/bundler/{man/bundle-info.ronn → lib/bundler/man/bundle-info.1.ronn} +0 -0
- data/bundler/{man/bundle-init.ronn → lib/bundler/man/bundle-init.1.ronn} +0 -0
- data/bundler/{man/bundle-inject.ronn → lib/bundler/man/bundle-inject.1.ronn} +0 -0
- data/bundler/{man/bundle-install.ronn → lib/bundler/man/bundle-install.1.ronn} +25 -3
- data/bundler/{man/bundle-list.ronn → lib/bundler/man/bundle-list.1.ronn} +0 -0
- data/bundler/{man/bundle-lock.ronn → lib/bundler/man/bundle-lock.1.ronn} +0 -0
- data/bundler/{man/bundle-open.ronn → lib/bundler/man/bundle-open.1.ronn} +0 -0
- data/bundler/{man/bundle-outdated.ronn → lib/bundler/man/bundle-outdated.1.ronn} +0 -0
- data/bundler/{man/bundle-platform.ronn → lib/bundler/man/bundle-platform.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
- data/bundler/{man/bundle-update.ronn → lib/bundler/man/bundle-update.1.ronn} +0 -0
- data/bundler/{man/bundle-viz.ronn → lib/bundler/man/bundle-viz.1.ronn} +0 -0
- data/bundler/{man/bundle.ronn → lib/bundler/man/bundle.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/gemfile.5.ronn +4 -4
- data/bundler/lib/bundler/mirror.rb +2 -2
- data/bundler/lib/bundler/plugin.rb +30 -5
- data/bundler/lib/bundler/plugin/api/source.rb +1 -1
- data/bundler/lib/bundler/plugin/dsl.rb +1 -1
- data/bundler/lib/bundler/plugin/index.rb +10 -1
- data/bundler/lib/bundler/plugin/installer.rb +1 -1
- data/bundler/lib/bundler/plugin/installer/rubygems.rb +1 -1
- data/bundler/lib/bundler/plugin/source_list.rb +1 -1
- data/bundler/lib/bundler/psyched_yaml.rb +0 -15
- data/bundler/lib/bundler/remote_specification.rb +5 -2
- data/bundler/lib/bundler/resolver.rb +32 -10
- data/bundler/lib/bundler/resolver/spec_group.rb +27 -6
- data/bundler/lib/bundler/retry.rb +1 -1
- data/bundler/lib/bundler/ruby_version.rb +1 -1
- data/bundler/lib/bundler/rubygems_ext.rb +53 -9
- data/bundler/lib/bundler/rubygems_gem_installer.rb +3 -9
- data/bundler/lib/bundler/rubygems_integration.rb +35 -25
- data/bundler/lib/bundler/runtime.rb +4 -14
- data/bundler/lib/bundler/settings.rb +49 -46
- data/bundler/lib/bundler/setup.rb +5 -0
- data/bundler/lib/bundler/shared_helpers.rb +2 -2
- data/bundler/lib/bundler/similarity_detector.rb +1 -1
- data/bundler/lib/bundler/source.rb +1 -1
- data/bundler/lib/bundler/source/git.rb +1 -1
- data/bundler/lib/bundler/source/git/git_proxy.rb +57 -60
- data/bundler/lib/bundler/source/path.rb +7 -3
- data/bundler/lib/bundler/source/path/installer.rb +8 -10
- data/bundler/lib/bundler/source/rubygems.rb +13 -16
- data/bundler/lib/bundler/source/rubygems/remote.rb +1 -1
- data/bundler/lib/bundler/source_list.rb +2 -2
- data/bundler/lib/bundler/spec_set.rb +2 -1
- data/bundler/lib/bundler/stub_specification.rb +17 -5
- data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +57 -47
- data/bundler/lib/bundler/templates/newgem/Gemfile.tt +7 -2
- data/bundler/lib/bundler/templates/newgem/README.md.tt +1 -2
- data/bundler/lib/bundler/templates/newgem/Rakefile.tt +12 -5
- data/bundler/lib/bundler/templates/newgem/bin/console.tt +1 -0
- data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +13 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +2 -0
- data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +18 -0
- data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +9 -0
- data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +4 -2
- data/bundler/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +2 -0
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +13 -5
- data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +10 -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/test/{newgem_test.rb.tt → minitest/newgem_test.rb.tt} +2 -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/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 +5 -5
- data/bundler/lib/bundler/uri_credentials_filter.rb +3 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +34 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +2 -2
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +1 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +1 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +38 -40
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +72 -208
- data/bundler/lib/bundler/vendor/thor/lib/thor.rb +0 -7
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +2 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +9 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
- data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +154 -0
- data/bundler/lib/bundler/vendored_persistent.rb +0 -7
- data/bundler/lib/bundler/vendored_tmpdir.rb +4 -0
- data/bundler/lib/bundler/version.rb +1 -1
- data/bundler/lib/bundler/worker.rb +1 -1
- data/bundler/lib/bundler/yaml_serializer.rb +1 -1
- data/bundler/man/bundle-add.1 +1 -1
- data/bundler/man/bundle-binstubs.1 +5 -3
- data/bundler/man/bundle-cache.1 +1 -1
- data/bundler/man/bundle-check.1 +1 -1
- data/bundler/man/bundle-clean.1 +1 -1
- data/bundler/man/bundle-config.1 +16 -25
- data/bundler/man/bundle-doctor.1 +1 -1
- data/bundler/man/bundle-exec.1 +1 -1
- data/bundler/man/bundle-gem.1 +25 -3
- data/bundler/man/bundle-info.1 +1 -1
- data/bundler/man/bundle-init.1 +1 -1
- data/bundler/man/bundle-inject.1 +1 -1
- data/bundler/man/bundle-install.1 +30 -3
- data/bundler/man/bundle-list.1 +1 -1
- data/bundler/man/bundle-lock.1 +1 -1
- data/bundler/man/bundle-open.1 +1 -1
- data/bundler/man/bundle-outdated.1 +1 -1
- data/bundler/man/bundle-platform.1 +1 -1
- data/bundler/man/bundle-pristine.1 +1 -1
- data/bundler/man/bundle-remove.1 +1 -1
- data/bundler/man/bundle-show.1 +1 -1
- data/bundler/man/bundle-update.1 +1 -1
- data/bundler/man/bundle-viz.1 +1 -1
- data/bundler/man/bundle.1 +1 -1
- data/bundler/man/gemfile.5 +4 -4
- data/lib/rubygems.rb +138 -187
- data/lib/rubygems/available_set.rb +4 -6
- data/lib/rubygems/basic_specification.rb +12 -10
- data/lib/rubygems/bundler_version_finder.rb +14 -9
- data/lib/rubygems/command.rb +17 -17
- data/lib/rubygems/command_manager.rb +5 -6
- data/lib/rubygems/commands/build_command.rb +40 -20
- data/lib/rubygems/commands/cert_command.rb +2 -10
- data/lib/rubygems/commands/check_command.rb +0 -2
- data/lib/rubygems/commands/cleanup_command.rb +11 -7
- data/lib/rubygems/commands/contents_command.rb +4 -6
- data/lib/rubygems/commands/dependency_command.rb +6 -8
- data/lib/rubygems/commands/environment_command.rb +1 -3
- data/lib/rubygems/commands/fetch_command.rb +2 -4
- data/lib/rubygems/commands/generate_index_command.rb +0 -2
- data/lib/rubygems/commands/help_command.rb +4 -4
- data/lib/rubygems/commands/info_command.rb +8 -5
- data/lib/rubygems/commands/install_command.rb +3 -5
- data/lib/rubygems/commands/list_command.rb +8 -7
- data/lib/rubygems/commands/lock_command.rb +1 -3
- data/lib/rubygems/commands/mirror_command.rb +0 -2
- data/lib/rubygems/commands/open_command.rb +0 -4
- data/lib/rubygems/commands/outdated_command.rb +0 -2
- data/lib/rubygems/commands/owner_command.rb +9 -3
- data/lib/rubygems/commands/pristine_command.rb +11 -5
- data/lib/rubygems/commands/push_command.rb +10 -46
- data/lib/rubygems/commands/query_command.rb +14 -344
- data/lib/rubygems/commands/rdoc_command.rb +0 -2
- data/lib/rubygems/commands/search_command.rb +7 -7
- data/lib/rubygems/commands/server_command.rb +3 -1
- data/lib/rubygems/commands/setup_command.rb +158 -70
- data/lib/rubygems/commands/signin_command.rb +0 -2
- data/lib/rubygems/commands/signout_command.rb +0 -2
- data/lib/rubygems/commands/sources_command.rb +9 -7
- data/lib/rubygems/commands/specification_command.rb +8 -4
- data/lib/rubygems/commands/stale_command.rb +1 -3
- data/lib/rubygems/commands/uninstall_command.rb +2 -4
- data/lib/rubygems/commands/unpack_command.rb +1 -3
- data/lib/rubygems/commands/update_command.rb +59 -14
- data/lib/rubygems/commands/which_command.rb +0 -2
- data/lib/rubygems/commands/yank_command.rb +4 -6
- data/lib/rubygems/config_file.rb +11 -4
- data/lib/rubygems/core_ext/kernel_require.rb +29 -36
- data/lib/rubygems/core_ext/kernel_warn.rb +12 -13
- data/lib/rubygems/defaults.rb +101 -7
- data/lib/rubygems/dependency.rb +3 -8
- data/lib/rubygems/dependency_installer.rb +5 -78
- data/lib/rubygems/dependency_list.rb +7 -9
- data/lib/rubygems/deprecate.rb +46 -1
- data/lib/rubygems/doctor.rb +4 -4
- data/lib/rubygems/errors.rb +3 -14
- data/lib/rubygems/exceptions.rb +2 -33
- data/lib/rubygems/ext.rb +6 -6
- data/lib/rubygems/ext/build_error.rb +2 -0
- data/lib/rubygems/ext/builder.rb +16 -35
- data/lib/rubygems/ext/cmake_builder.rb +5 -7
- data/lib/rubygems/ext/configure_builder.rb +4 -6
- data/lib/rubygems/ext/ext_conf_builder.rb +21 -19
- data/lib/rubygems/ext/rake_builder.rb +3 -5
- data/lib/rubygems/gem_runner.rb +3 -10
- data/lib/rubygems/gemcutter_utilities.rb +91 -15
- data/lib/rubygems/indexer.rb +1 -22
- data/lib/rubygems/install_update_options.rb +7 -7
- data/lib/rubygems/installer.rb +59 -57
- data/lib/rubygems/installer_test_case.rb +25 -11
- data/lib/rubygems/installer_uninstaller_utils.rb +24 -0
- data/lib/rubygems/local_remote_options.rb +1 -1
- data/lib/rubygems/mock_gem_ui.rb +0 -6
- data/lib/rubygems/name_tuple.rb +3 -7
- data/lib/rubygems/openssl.rb +7 -0
- data/lib/rubygems/package.rb +14 -25
- data/lib/rubygems/package/digest_io.rb +0 -2
- data/lib/rubygems/package/file_source.rb +0 -2
- data/lib/rubygems/package/io_source.rb +0 -2
- data/lib/rubygems/package/old.rb +1 -3
- data/lib/rubygems/package/tar_header.rb +4 -6
- data/lib/rubygems/package/tar_reader.rb +0 -3
- data/lib/rubygems/package/tar_reader/entry.rb +0 -3
- data/lib/rubygems/package/tar_test_case.rb +2 -4
- data/lib/rubygems/package/tar_writer.rb +2 -12
- data/lib/rubygems/package_task.rb +1 -7
- data/lib/rubygems/path_support.rb +1 -3
- data/lib/rubygems/platform.rb +21 -12
- data/lib/rubygems/psych_tree.rb +0 -2
- data/lib/rubygems/query_utils.rb +353 -0
- data/lib/rubygems/rdoc.rb +0 -12
- data/lib/rubygems/remote_fetcher.rb +10 -27
- data/lib/rubygems/request.rb +4 -11
- data/lib/rubygems/request/connection_pools.rb +1 -5
- data/lib/rubygems/request/http_pool.rb +0 -2
- data/lib/rubygems/request/https_pool.rb +0 -2
- data/lib/rubygems/request_set.rb +5 -7
- data/lib/rubygems/request_set/gem_dependency_api.rb +6 -8
- data/lib/rubygems/request_set/lockfile.rb +8 -12
- data/lib/rubygems/request_set/lockfile/parser.rb +0 -2
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +1 -3
- data/lib/rubygems/requirement.rb +20 -21
- data/lib/rubygems/resolver.rb +8 -11
- data/lib/rubygems/resolver/activation_request.rb +9 -3
- data/lib/rubygems/resolver/api_set.rb +4 -6
- data/lib/rubygems/resolver/api_specification.rb +21 -8
- data/lib/rubygems/resolver/best_set.rb +0 -2
- data/lib/rubygems/resolver/composed_set.rb +3 -5
- data/lib/rubygems/resolver/conflict.rb +2 -4
- data/lib/rubygems/resolver/current_set.rb +0 -2
- data/lib/rubygems/resolver/dependency_request.rb +1 -3
- data/lib/rubygems/resolver/git_set.rb +0 -2
- data/lib/rubygems/resolver/git_specification.rb +0 -2
- data/lib/rubygems/resolver/index_set.rb +1 -3
- data/lib/rubygems/resolver/index_specification.rb +11 -2
- data/lib/rubygems/resolver/installed_specification.rb +0 -2
- data/lib/rubygems/resolver/installer_set.rb +4 -7
- data/lib/rubygems/resolver/local_specification.rb +0 -2
- data/lib/rubygems/resolver/lock_set.rb +2 -4
- data/lib/rubygems/resolver/lock_specification.rb +0 -2
- data/lib/rubygems/resolver/molinillo/lib/molinillo.rb +6 -5
- data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb +7 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb +1 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +39 -5
- 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 +43 -10
- data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +75 -7
- data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb +1 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb +3 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb +506 -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/requirement_list.rb +0 -2
- data/lib/rubygems/resolver/set.rb +0 -2
- data/lib/rubygems/resolver/source_set.rb +0 -2
- data/lib/rubygems/resolver/spec_specification.rb +0 -2
- data/lib/rubygems/resolver/specification.rb +1 -3
- data/lib/rubygems/resolver/stats.rb +0 -2
- data/lib/rubygems/resolver/vendor_set.rb +0 -2
- data/lib/rubygems/resolver/vendor_specification.rb +0 -2
- data/lib/rubygems/s3_uri_signer.rb +2 -8
- data/lib/rubygems/safe_yaml.rb +4 -4
- data/lib/rubygems/security.rb +27 -34
- data/lib/rubygems/security/policy.rb +4 -8
- data/lib/rubygems/security/signer.rb +5 -7
- data/lib/rubygems/security/trust_dir.rb +1 -3
- data/lib/rubygems/server.rb +10 -12
- data/lib/rubygems/source.rb +13 -7
- data/lib/rubygems/source/git.rb +7 -8
- data/lib/rubygems/source/installed.rb +0 -2
- data/lib/rubygems/source/local.rb +2 -4
- data/lib/rubygems/source/lock.rb +0 -2
- data/lib/rubygems/source/specific_file.rb +0 -2
- data/lib/rubygems/source/vendor.rb +0 -2
- data/lib/rubygems/source_list.rb +6 -7
- data/lib/rubygems/spec_fetcher.rb +19 -18
- data/lib/rubygems/specification.rb +113 -126
- data/lib/rubygems/specification_policy.rb +88 -30
- data/lib/rubygems/ssl_certs/{index.rubygems.org → rubygems.org}/GlobalSignRootCA.pem +0 -0
- data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem +21 -0
- data/lib/rubygems/stub_specification.rb +1 -5
- data/lib/rubygems/syck_hack.rb +0 -2
- data/lib/rubygems/test_case.rb +135 -118
- data/lib/rubygems/test_utilities.rb +6 -14
- data/lib/rubygems/uninstaller.rb +35 -16
- data/lib/rubygems/uri_formatter.rb +2 -3
- data/lib/rubygems/uri_parser.rb +0 -2
- data/lib/rubygems/user_interaction.rb +1 -26
- data/lib/rubygems/util.rb +15 -3
- data/lib/rubygems/util/licenses.rb +4 -6
- data/lib/rubygems/util/list.rb +0 -2
- data/lib/rubygems/validator.rb +1 -3
- data/lib/rubygems/version.rb +5 -7
- data/lib/rubygems/version_option.rb +6 -0
- data/rubygems-update.gemspec +2 -2
- data/setup.rb +2 -7
- data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -2
- data/test/rubygems/rubygems/commands/crash_command.rb +0 -2
- data/test/rubygems/rubygems_plugin.rb +0 -2
- data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -2
- data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +12 -0
- data/test/rubygems/test_bundled_ca.rb +42 -45
- data/test/rubygems/test_config.rb +0 -2
- data/test/rubygems/test_deprecate.rb +40 -7
- data/test/rubygems/test_gem.rb +153 -106
- data/test/rubygems/test_gem_available_set.rb +3 -5
- data/test/rubygems/test_gem_bundler_version_finder.rb +19 -3
- data/test/rubygems/test_gem_command.rb +24 -7
- data/test/rubygems/test_gem_command_manager.rb +36 -5
- data/test/rubygems/test_gem_commands_build_command.rb +250 -15
- data/test/rubygems/test_gem_commands_cert_command.rb +4 -6
- data/test/rubygems/test_gem_commands_check_command.rb +0 -2
- data/test/rubygems/test_gem_commands_cleanup_command.rb +14 -5
- data/test/rubygems/test_gem_commands_contents_command.rb +50 -19
- data/test/rubygems/test_gem_commands_dependency_command.rb +0 -2
- data/test/rubygems/test_gem_commands_environment_command.rb +21 -23
- data/test/rubygems/test_gem_commands_fetch_command.rb +0 -2
- data/test/rubygems/test_gem_commands_generate_index_command.rb +1 -7
- data/test/rubygems/test_gem_commands_help_command.rb +15 -4
- data/test/rubygems/test_gem_commands_info_command.rb +6 -8
- data/test/rubygems/test_gem_commands_install_command.rb +32 -34
- data/test/rubygems/test_gem_commands_list_command.rb +0 -2
- data/test/rubygems/test_gem_commands_lock_command.rb +0 -2
- data/test/rubygems/test_gem_commands_mirror.rb +1 -3
- data/test/rubygems/test_gem_commands_open_command.rb +4 -6
- data/test/rubygems/test_gem_commands_outdated_command.rb +0 -2
- data/test/rubygems/test_gem_commands_owner_command.rb +59 -5
- data/test/rubygems/test_gem_commands_pristine_command.rb +43 -12
- data/test/rubygems/test_gem_commands_push_command.rb +38 -9
- data/test/rubygems/test_gem_commands_query_command.rb +12 -12
- data/test/rubygems/test_gem_commands_search_command.rb +0 -2
- data/test/rubygems/test_gem_commands_server_command.rb +0 -2
- data/test/rubygems/test_gem_commands_setup_command.rb +211 -124
- data/test/rubygems/test_gem_commands_signin_command.rb +33 -9
- data/test/rubygems/test_gem_commands_signout_command.rb +0 -7
- data/test/rubygems/test_gem_commands_sources_command.rb +99 -3
- data/test/rubygems/test_gem_commands_specification_command.rb +46 -20
- data/test/rubygems/test_gem_commands_stale_command.rb +0 -2
- data/test/rubygems/test_gem_commands_uninstall_command.rb +2 -3
- data/test/rubygems/test_gem_commands_unpack_command.rb +0 -2
- data/test/rubygems/test_gem_commands_update_command.rb +116 -7
- data/test/rubygems/test_gem_commands_which_command.rb +3 -5
- data/test/rubygems/test_gem_commands_yank_command.rb +44 -8
- data/test/rubygems/test_gem_config_file.rb +7 -12
- data/test/rubygems/test_gem_dependency.rb +0 -2
- data/test/rubygems/test_gem_dependency_installer.rb +90 -193
- data/test/rubygems/test_gem_dependency_list.rb +10 -12
- data/test/rubygems/test_gem_dependency_resolution_error.rb +1 -3
- data/test/rubygems/test_gem_doctor.rb +28 -2
- data/test/rubygems/test_gem_ext_builder.rb +26 -47
- data/test/rubygems/test_gem_ext_cmake_builder.rb +16 -23
- data/test/rubygems/test_gem_ext_configure_builder.rb +4 -20
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +9 -29
- data/test/rubygems/test_gem_ext_rake_builder.rb +14 -24
- data/test/rubygems/test_gem_gem_runner.rb +44 -1
- data/test/rubygems/test_gem_gemcutter_utilities.rb +8 -5
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -2
- data/test/rubygems/test_gem_indexer.rb +9 -15
- data/test/rubygems/test_gem_install_update_options.rb +14 -4
- data/test/rubygems/test_gem_installer.rb +265 -81
- data/test/rubygems/test_gem_local_remote_options.rb +0 -2
- data/test/rubygems/test_gem_name_tuple.rb +0 -2
- data/test/rubygems/test_gem_package.rb +41 -39
- data/test/rubygems/test_gem_package_old.rb +4 -6
- data/test/rubygems/test_gem_package_tar_header.rb +18 -1
- data/test/rubygems/test_gem_package_tar_reader.rb +0 -2
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +0 -2
- data/test/rubygems/test_gem_package_tar_writer.rb +9 -6
- data/test/rubygems/test_gem_package_task.rb +46 -13
- data/test/rubygems/test_gem_path_support.rb +0 -2
- data/test/rubygems/test_gem_platform.rb +63 -6
- data/test/rubygems/test_gem_rdoc.rb +0 -2
- data/test/rubygems/test_gem_remote_fetcher.rb +168 -211
- data/test/rubygems/test_gem_request.rb +13 -17
- data/test/rubygems/test_gem_request_connection_pools.rb +0 -4
- data/test/rubygems/test_gem_request_set.rb +72 -22
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +3 -5
- data/test/rubygems/test_gem_request_set_lockfile.rb +4 -6
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +9 -11
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +118 -120
- data/test/rubygems/test_gem_requirement.rb +10 -4
- data/test/rubygems/test_gem_resolver.rb +6 -8
- data/test/rubygems/test_gem_resolver_activation_request.rb +0 -2
- data/test/rubygems/test_gem_resolver_api_set.rb +11 -13
- data/test/rubygems/test_gem_resolver_api_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_best_set.rb +2 -4
- data/test/rubygems/test_gem_resolver_composed_set.rb +0 -2
- data/test/rubygems/test_gem_resolver_conflict.rb +1 -3
- data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -2
- data/test/rubygems/test_gem_resolver_git_set.rb +0 -2
- data/test/rubygems/test_gem_resolver_git_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_index_set.rb +2 -4
- data/test/rubygems/test_gem_resolver_index_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_installer_set.rb +7 -9
- data/test/rubygems/test_gem_resolver_local_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_lock_set.rb +3 -5
- data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -2
- data/test/rubygems/test_gem_resolver_specification.rb +0 -4
- data/test/rubygems/test_gem_resolver_vendor_set.rb +1 -3
- data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -2
- data/test/rubygems/test_gem_security.rb +22 -24
- data/test/rubygems/test_gem_security_policy.rb +7 -12
- data/test/rubygems/test_gem_security_signer.rb +10 -12
- data/test/rubygems/test_gem_security_trust_dir.rb +4 -6
- data/test/rubygems/test_gem_server.rb +10 -14
- data/test/rubygems/test_gem_silent_ui.rb +0 -2
- data/test/rubygems/test_gem_source.rb +17 -16
- data/test/rubygems/test_gem_source_fetch_problem.rb +0 -2
- data/test/rubygems/test_gem_source_git.rb +12 -13
- data/test/rubygems/test_gem_source_installed.rb +7 -9
- data/test/rubygems/test_gem_source_list.rb +1 -2
- data/test/rubygems/test_gem_source_local.rb +8 -10
- data/test/rubygems/test_gem_source_lock.rb +10 -12
- data/test/rubygems/test_gem_source_specific_file.rb +7 -9
- data/test/rubygems/test_gem_source_subpath_problem.rb +49 -0
- data/test/rubygems/test_gem_source_vendor.rb +7 -9
- data/test/rubygems/test_gem_spec_fetcher.rb +11 -4
- data/test/rubygems/test_gem_specification.rb +182 -131
- data/test/rubygems/test_gem_stream_ui.rb +3 -3
- data/test/rubygems/test_gem_stub_specification.rb +4 -7
- data/test/rubygems/test_gem_text.rb +1 -3
- data/test/rubygems/test_gem_uninstaller.rb +134 -12
- data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -2
- data/test/rubygems/test_gem_uri_formatter.rb +0 -2
- data/test/rubygems/test_gem_util.rb +7 -7
- data/test/rubygems/test_gem_validator.rb +1 -3
- data/test/rubygems/test_gem_version.rb +1 -3
- data/test/rubygems/test_gem_version_option.rb +1 -3
- data/test/rubygems/test_kernel.rb +25 -10
- data/test/rubygems/test_project_sanity.rb +7 -2
- data/test/rubygems/test_remote_fetch_error.rb +0 -2
- data/test/rubygems/test_require.rb +291 -56
- metadata +66 -100
- data/.bundle/config +0 -2
- data/.rubocop.yml +0 -91
- data/Gemfile +0 -8
- data/Gemfile.lock +0 -43
- data/bundler/CODE_OF_CONDUCT.md +0 -136
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +0 -26
- 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.txt +0 -91
- 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 -44
- 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/source_local.rb +0 -7
- data/lib/rubygems/source_specific_file.rb +0 -6
- data/lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -23
- data/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -25
- data/lib/ubygems.rb +0 -14
- 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 -139
- data/util/update_changelog.rb +0 -67
data/bundler/man/bundle-doctor.1
CHANGED
data/bundler/man/bundle-exec.1
CHANGED
data/bundler/man/bundle-gem.1
CHANGED
@@ -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\-GEM" "1" "
|
4
|
+
.TH "BUNDLE\-GEM" "1" "November 2020" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-gem\fR \- Generate a project skeleton for creating a rubygem
|
@@ -64,8 +64,30 @@ Add an MIT license to a \fBLICENSE\.txt\fR file in the root of the generated pro
|
|
64
64
|
Do not create a \fBLICENSE\.txt\fR (overrides \fB\-\-mit\fR specified in the global config)\.
|
65
65
|
.
|
66
66
|
.TP
|
67
|
-
\fB\-t\fR, \fB\-\-test=minitest\fR, \fB\-\-test=rspec\fR
|
68
|
-
Specify the test framework that Bundler should use when generating the project\. Acceptable values are \fBminitest\fR and \
|
67
|
+
\fB\-t\fR, \fB\-\-test=minitest\fR, \fB\-\-test=rspec\fR, \fB\-\-test=test\-unit\fR
|
68
|
+
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:
|
69
|
+
.
|
70
|
+
.IP
|
71
|
+
When Bundler is configured to generate tests, this defaults to Bundler\'s global config setting \fBgem\.test\fR\.
|
72
|
+
.
|
73
|
+
.IP
|
74
|
+
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\.
|
75
|
+
.
|
76
|
+
.IP
|
77
|
+
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\.
|
78
|
+
.
|
79
|
+
.TP
|
80
|
+
\fB\-\-ci\fR, \fB\-\-ci=github\fR, \fB\-\-ci=travis\fR, \fB\-\-ci=gitlab\fR, \fB\-\-ci=circle\fR
|
81
|
+
Specify the continuous integration service that Bundler should use when generating the project\. Acceptable values are \fBgithub\fR, \fBtravis\fR, \fBgitlab\fR and \fBcircle\fR\. A configuration file will be generated in the project directory\. Given no option is specified:
|
82
|
+
.
|
83
|
+
.IP
|
84
|
+
When Bundler is configured to generate CI files, this defaults to Bundler\'s global config setting \fBgem\.ci\fR\.
|
85
|
+
.
|
86
|
+
.IP
|
87
|
+
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\.
|
88
|
+
.
|
89
|
+
.IP
|
90
|
+
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
91
|
.
|
70
92
|
.TP
|
71
93
|
\fB\-e\fR, \fB\-\-edit[=EDITOR]\fR
|
data/bundler/man/bundle-info.1
CHANGED
@@ -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\-INFO" "1" "
|
4
|
+
.TH "BUNDLE\-INFO" "1" "November 2020" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-info\fR \- Show information for the given gem in your bundle
|
data/bundler/man/bundle-init.1
CHANGED
@@ -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\-INIT" "1" "
|
4
|
+
.TH "BUNDLE\-INIT" "1" "November 2020" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-init\fR \- Generates a Gemfile into the current working directory
|
data/bundler/man/bundle-inject.1
CHANGED
@@ -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\-INJECT" "1" "
|
4
|
+
.TH "BUNDLE\-INJECT" "1" "November 2020" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-inject\fR \- Add named gem(s) with version requirements to Gemfile
|
@@ -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\-INSTALL" "1" "
|
4
|
+
.TH "BUNDLE\-INSTALL" "1" "November 2020" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-install\fR \- Install the dependencies specified in your Gemfile
|
@@ -19,7 +19,7 @@ If a \fBGemfile\.lock\fR does exist, and you have not updated your Gemfile(5), B
|
|
19
19
|
If a \fBGemfile\.lock\fR does exist, and you have updated your Gemfile(5), Bundler will use the dependencies in the \fBGemfile\.lock\fR for all gems that you did not update, but will re\-resolve the dependencies of gems that you did update\. You can find more information about this update process below under \fICONSERVATIVE UPDATING\fR\.
|
20
20
|
.
|
21
21
|
.SH "OPTIONS"
|
22
|
-
|
22
|
+
The \fB\-\-clean\fR, \fB\-\-deployment\fR, \fB\-\-frozen\fR, \fB\-\-no\-prune\fR, \fB\-\-path\fR, \fB\-\-shebang\fR, \fB\-\-system\fR, \fB\-\-without\fR and \fB\-\-with\fR options are deprecated because they only make sense if they are applied to every subsequent \fBbundle install\fR run automatically and that requires \fBbundler\fR to silently remember them\. Since \fBbundler\fR will no longer remember CLI flags in future versions, \fBbundle config\fR (see bundle\-config(1)) should be used to apply them permanently\.
|
23
23
|
.
|
24
24
|
.TP
|
25
25
|
\fB\-\-binstubs[=<directory>]\fR
|
@@ -32,10 +32,16 @@ Creates a directory (defaults to \fB~/bin\fR) and places any executables from th
|
|
32
32
|
\fB\-\-clean\fR
|
33
33
|
On finishing the installation Bundler is going to remove any gems not present in the current Gemfile(5)\. Don\'t worry, gems currently in use will not be removed\.
|
34
34
|
.
|
35
|
+
.IP
|
36
|
+
This option is deprecated in favor of the \fBclean\fR setting\.
|
37
|
+
.
|
35
38
|
.TP
|
36
39
|
\fB\-\-deployment\fR
|
37
40
|
In \fIdeployment mode\fR, Bundler will \'roll\-out\' the bundle for production or CI use\. Please check carefully if you want to have this option enabled in your development environment\.
|
38
41
|
.
|
42
|
+
.IP
|
43
|
+
This option is deprecated in favor of the \fBdeployment\fR setting\.
|
44
|
+
.
|
39
45
|
.TP
|
40
46
|
\fB\-\-redownload\fR
|
41
47
|
Force download every gem, even if the required versions are already available locally\.
|
@@ -44,6 +50,9 @@ Force download every gem, even if the required versions are already available lo
|
|
44
50
|
\fB\-\-frozen\fR
|
45
51
|
Do not allow the Gemfile\.lock to be updated after this install\. Exits non\-zero if there are going to be changes to the Gemfile\.lock\.
|
46
52
|
.
|
53
|
+
.IP
|
54
|
+
This option is deprecated in favor of the \fBfrozen\fR setting\.
|
55
|
+
.
|
47
56
|
.TP
|
48
57
|
\fB\-\-full\-index\fR
|
49
58
|
Bundler will not call Rubygems\' API endpoint (default) but download and cache a (currently big) index file of all gems\. Performance can be improved for large bundles that seldom change by enabling this option\.
|
@@ -58,7 +67,7 @@ The maximum number of parallel download and install jobs\. The default is \fB1\f
|
|
58
67
|
.
|
59
68
|
.TP
|
60
69
|
\fB\-\-local\fR
|
61
|
-
Do not attempt to connect to \fBrubygems\.org\fR\. Instead, Bundler will use the gems already present in Rubygems\' cache or in \fBvendor/cache\fR\. Note that if
|
70
|
+
Do not attempt to connect to \fBrubygems\.org\fR\. Instead, Bundler will use the gems already present in Rubygems\' cache or in \fBvendor/cache\fR\. Note that if an appropriate platform\-specific gem exists on \fBrubygems\.org\fR it will not be found\.
|
62
71
|
.
|
63
72
|
.TP
|
64
73
|
\fB\-\-no\-cache\fR
|
@@ -68,10 +77,16 @@ Do not update the cache in \fBvendor/cache\fR with the newly bundled gems\. This
|
|
68
77
|
\fB\-\-no\-prune\fR
|
69
78
|
Don\'t remove stale gems from the cache when the installation finishes\.
|
70
79
|
.
|
80
|
+
.IP
|
81
|
+
This option is deprecated in favor of the \fBno_prune\fR setting\.
|
82
|
+
.
|
71
83
|
.TP
|
72
84
|
\fB\-\-path=<path>\fR
|
73
85
|
The location to install the specified gems to\. This defaults to Rubygems\' setting\. Bundler shares this location with Rubygems, \fBgem install \.\.\.\fR will have gem installed there, too\. Therefore, gems installed without a \fB\-\-path \.\.\.\fR setting will show up by calling \fBgem list\fR\. Accordingly, gems installed to other locations will not get listed\.
|
74
86
|
.
|
87
|
+
.IP
|
88
|
+
This option is deprecated in favor of the \fBpath\fR setting\.
|
89
|
+
.
|
75
90
|
.TP
|
76
91
|
\fB\-\-quiet\fR
|
77
92
|
Do not print progress information to the standard output\. Instead, Bundler will exit using a status code (\fB$?\fR)\.
|
@@ -84,6 +99,9 @@ Retry failed network or git requests for \fInumber\fR times\.
|
|
84
99
|
\fB\-\-shebang=<ruby\-executable>\fR
|
85
100
|
Uses the specified ruby executable (usually \fBruby\fR) to execute the scripts created with \fB\-\-binstubs\fR\. In addition, if you use \fB\-\-binstubs\fR together with \fB\-\-shebang jruby\fR these executables will be changed to execute \fBjruby\fR instead\.
|
86
101
|
.
|
102
|
+
.IP
|
103
|
+
This option is deprecated in favor of the \fBshebang\fR setting\.
|
104
|
+
.
|
87
105
|
.TP
|
88
106
|
\fB\-\-standalone[=<list>]\fR
|
89
107
|
Makes a bundle that can work without depending on Rubygems or Bundler at runtime\. A space separated list of groups to install has to be specified\. Bundler creates a directory named \fBbundle\fR and installs the bundle there\. It also generates a \fBbundle/bundler/setup\.rb\fR file to replace Bundler\'s own setup in the manner required\. Using this option implicitly sets \fBpath\fR, which is a [remembered option][REMEMBERED OPTIONS]\.
|
@@ -92,6 +110,9 @@ Makes a bundle that can work without depending on Rubygems or Bundler at runtime
|
|
92
110
|
\fB\-\-system\fR
|
93
111
|
Installs the gems specified in the bundle to the system\'s Rubygems location\. This overrides any previous configuration of \fB\-\-path\fR\.
|
94
112
|
.
|
113
|
+
.IP
|
114
|
+
This option is deprecated in favor of the \fBsystem\fR setting\.
|
115
|
+
.
|
95
116
|
.TP
|
96
117
|
\fB\-\-trust\-policy=[<policy>]\fR
|
97
118
|
Apply the Rubygems security policy \fIpolicy\fR, where policy is one of \fBHighSecurity\fR, \fBMediumSecurity\fR, \fBLowSecurity\fR, \fBAlmostNoSecurity\fR, or \fBNoSecurity\fR\. For more details, please see the Rubygems signing documentation linked below in \fISEE ALSO\fR\.
|
@@ -100,10 +121,16 @@ Apply the Rubygems security policy \fIpolicy\fR, where policy is one of \fBHighS
|
|
100
121
|
\fB\-\-with=<list>\fR
|
101
122
|
A space\-separated list of groups referencing gems to install\. If an optional group is given it is installed\. If a group is given that is in the remembered list of groups given to \-\-without, it is removed from that list\.
|
102
123
|
.
|
124
|
+
.IP
|
125
|
+
This option is deprecated in favor of the \fBwith\fR setting\.
|
126
|
+
.
|
103
127
|
.TP
|
104
128
|
\fB\-\-without=<list>\fR
|
105
129
|
A space\-separated list of groups referencing gems to skip during installation\. If a group is given that is in the remembered list of groups given to \-\-with, it is removed from that list\.
|
106
130
|
.
|
131
|
+
.IP
|
132
|
+
This option is deprecated in favor of the \fBwithout\fR setting\.
|
133
|
+
.
|
107
134
|
.SH "DEPLOYMENT MODE"
|
108
135
|
Bundler\'s defaults are optimized for development\. To switch to defaults optimized for deployment and for CI, use the \fB\-\-deployment\fR flag\. Do not activate deployment mode on development machines, as it will cause an error when the Gemfile(5) is modified\.
|
109
136
|
.
|
data/bundler/man/bundle-list.1
CHANGED
data/bundler/man/bundle-lock.1
CHANGED
@@ -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\-LOCK" "1" "
|
4
|
+
.TH "BUNDLE\-LOCK" "1" "November 2020" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-lock\fR \- Creates / Updates a lockfile without installing
|
data/bundler/man/bundle-open.1
CHANGED
@@ -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\-OPEN" "1" "
|
4
|
+
.TH "BUNDLE\-OPEN" "1" "November 2020" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-open\fR \- Opens the source directory for a gem in your bundle
|
@@ -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\-OUTDATED" "1" "
|
4
|
+
.TH "BUNDLE\-OUTDATED" "1" "November 2020" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-outdated\fR \- List installed gems with newer versions available
|
@@ -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\-PLATFORM" "1" "
|
4
|
+
.TH "BUNDLE\-PLATFORM" "1" "November 2020" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-platform\fR \- Displays platform compatibility information
|
@@ -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\-PRISTINE" "1" "
|
4
|
+
.TH "BUNDLE\-PRISTINE" "1" "November 2020" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-pristine\fR \- Restores installed gems to their pristine condition
|
data/bundler/man/bundle-remove.1
CHANGED
data/bundler/man/bundle-show.1
CHANGED
@@ -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\-SHOW" "1" "
|
4
|
+
.TH "BUNDLE\-SHOW" "1" "November 2020" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-show\fR \- Shows all the gems in your bundle, or the path to a gem
|
data/bundler/man/bundle-update.1
CHANGED
@@ -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\-UPDATE" "1" "
|
4
|
+
.TH "BUNDLE\-UPDATE" "1" "November 2020" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-update\fR \- Update your gems to the latest available versions
|
data/bundler/man/bundle-viz.1
CHANGED
@@ -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\-VIZ" "1" "
|
4
|
+
.TH "BUNDLE\-VIZ" "1" "November 2020" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-viz\fR \- Generates a visual dependency graph for your Gemfile
|
data/bundler/man/bundle.1
CHANGED
data/bundler/man/gemfile.5
CHANGED
@@ -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 "GEMFILE" "5" "
|
4
|
+
.TH "GEMFILE" "5" "November 2020" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBGemfile\fR \- A format for describing gem dependencies for Ruby programs
|
@@ -150,7 +150,7 @@ gem "RedCloth", ">= 4\.1\.0", "< 4\.2\.0"
|
|
150
150
|
.IP "" 0
|
151
151
|
.
|
152
152
|
.SS "REQUIRE AS"
|
153
|
-
Each \fIgem\fR \fBMAY\fR specify files that should be used when autorequiring via \fBBundler\.require\fR\. You may pass an array with multiple files or \fBtrue\fR if file you want \fBrequired\fR has same name as \fIgem\fR or \fBfalse\fR to prevent any file from being autorequired\.
|
153
|
+
Each \fIgem\fR \fBMAY\fR specify files that should be used when autorequiring via \fBBundler\.require\fR\. You may pass an array with multiple files or \fBtrue\fR if the file you want \fBrequired\fR has the same name as \fIgem\fR or \fBfalse\fR to prevent any file from being autorequired\.
|
154
154
|
.
|
155
155
|
.IP "" 4
|
156
156
|
.
|
@@ -227,8 +227,8 @@ To specify multiple groups to ignore, specify a list of groups separated by spac
|
|
227
227
|
.
|
228
228
|
.nf
|
229
229
|
|
230
|
-
bundle config set without test
|
231
|
-
bundle config set without development test
|
230
|
+
bundle config set \-\-local without test
|
231
|
+
bundle config set \-\-local without development test
|
232
232
|
.
|
233
233
|
.fi
|
234
234
|
.
|
data/lib/rubygems.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
# -*- ruby -*-
|
3
2
|
#--
|
4
3
|
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
|
5
4
|
# All rights reserved.
|
@@ -9,7 +8,7 @@
|
|
9
8
|
require 'rbconfig'
|
10
9
|
|
11
10
|
module Gem
|
12
|
-
VERSION = "3.
|
11
|
+
VERSION = "3.2.0".freeze
|
13
12
|
end
|
14
13
|
|
15
14
|
# Must be first since it unloads the prelude from 1.9.2
|
@@ -26,27 +25,27 @@ require 'rubygems/errors'
|
|
26
25
|
# For user documentation, see:
|
27
26
|
#
|
28
27
|
# * <tt>gem help</tt> and <tt>gem help [command]</tt>
|
29
|
-
# * {RubyGems User Guide}[
|
30
|
-
# * {Frequently Asked Questions}[
|
28
|
+
# * {RubyGems User Guide}[https://guides.rubygems.org/]
|
29
|
+
# * {Frequently Asked Questions}[https://guides.rubygems.org/faqs]
|
31
30
|
#
|
32
31
|
# For gem developer documentation see:
|
33
32
|
#
|
34
|
-
# * {Creating Gems}[
|
33
|
+
# * {Creating Gems}[https://guides.rubygems.org/make-your-own-gem]
|
35
34
|
# * Gem::Specification
|
36
35
|
# * Gem::Version for version dependency notes
|
37
36
|
#
|
38
37
|
# Further RubyGems documentation can be found at:
|
39
38
|
#
|
40
|
-
# * {RubyGems Guides}[
|
41
|
-
# * {RubyGems API}[
|
39
|
+
# * {RubyGems Guides}[https://guides.rubygems.org]
|
40
|
+
# * {RubyGems API}[https://www.rubydoc.info/github/rubygems/rubygems] (also available from
|
42
41
|
# <tt>gem server</tt>)
|
43
42
|
#
|
44
43
|
# == RubyGems Plugins
|
45
44
|
#
|
46
|
-
#
|
45
|
+
# RubyGems will load plugins in the latest version of each installed gem or
|
47
46
|
# $LOAD_PATH. Plugins must be named 'rubygems_plugin' (.rb, .so, etc) and
|
48
|
-
# placed at the root of your gem's #require_path. Plugins are
|
49
|
-
#
|
47
|
+
# placed at the root of your gem's #require_path. Plugins are installed at a
|
48
|
+
# special location and loaded on boot.
|
50
49
|
#
|
51
50
|
# For an example plugin, see the {Graph gem}[https://github.com/seattlerb/graph]
|
52
51
|
# which adds a `gem graph` command.
|
@@ -120,6 +119,10 @@ module Gem
|
|
120
119
|
# to avoid deprecation warnings in Ruby 2.7.
|
121
120
|
UNTAINT = RUBY_VERSION < '2.7' ? :untaint.to_sym : proc{}
|
122
121
|
|
122
|
+
# When https://bugs.ruby-lang.org/issues/17259 is available, there is no need to override Kernel#warn
|
123
|
+
KERNEL_WARN_IGNORES_INTERNAL_ENTRIES = RUBY_ENGINE == "truffleruby" ||
|
124
|
+
(RUBY_ENGINE == "ruby" && RUBY_VERSION >= '3.0')
|
125
|
+
|
123
126
|
##
|
124
127
|
# An Array of Regexps that match windows Ruby platforms.
|
125
128
|
|
@@ -148,6 +151,7 @@ module Gem
|
|
148
151
|
doc
|
149
152
|
extensions
|
150
153
|
gems
|
154
|
+
plugins
|
151
155
|
specifications
|
152
156
|
].freeze
|
153
157
|
|
@@ -189,6 +193,8 @@ module Gem
|
|
189
193
|
@pre_reset_hooks ||= []
|
190
194
|
@post_reset_hooks ||= []
|
191
195
|
|
196
|
+
@default_source_date_epoch = nil
|
197
|
+
|
192
198
|
##
|
193
199
|
# Try to activate a gem containing +path+. Returns true if
|
194
200
|
# activation succeeded or wasn't needed because it was already
|
@@ -315,6 +321,13 @@ module Gem
|
|
315
321
|
Gem.default_bindir
|
316
322
|
end
|
317
323
|
|
324
|
+
##
|
325
|
+
# The path were rubygems plugins are to be installed.
|
326
|
+
|
327
|
+
def self.plugindir(install_dir=Gem.dir)
|
328
|
+
File.join install_dir, 'plugins'
|
329
|
+
end
|
330
|
+
|
318
331
|
##
|
319
332
|
# Reset the +dir+ and +path+ values. The next time +dir+ or +path+
|
320
333
|
# is requested, the values will be calculated from scratch. This is
|
@@ -327,13 +340,6 @@ module Gem
|
|
327
340
|
Gem::Security.reset if defined?(Gem::Security)
|
328
341
|
end
|
329
342
|
|
330
|
-
##
|
331
|
-
# The path to standard location of the user's .gemrc file.
|
332
|
-
|
333
|
-
def self.config_file
|
334
|
-
@config_file ||= File.join Gem.user_home, '.gemrc'
|
335
|
-
end
|
336
|
-
|
337
343
|
##
|
338
344
|
# The standard configuration object for gems.
|
339
345
|
|
@@ -391,11 +397,11 @@ module Gem
|
|
391
397
|
target[k] = v
|
392
398
|
when Array
|
393
399
|
unless Gem::Deprecate.skip
|
394
|
-
warn <<-
|
400
|
+
warn <<-EOWARN
|
395
401
|
Array values in the parameter to `Gem.paths=` are deprecated.
|
396
402
|
Please use a String or nil.
|
397
403
|
An Array (#{env.inspect}) was passed in from #{caller[3]}
|
398
|
-
|
404
|
+
EOWARN
|
399
405
|
end
|
400
406
|
target[k] = v.join File::PATH_SEPARATOR
|
401
407
|
end
|
@@ -409,8 +415,6 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
409
415
|
|
410
416
|
##
|
411
417
|
# The path where gems are to be installed.
|
412
|
-
#--
|
413
|
-
# FIXME deprecate these once everything else has been done -ebh
|
414
418
|
|
415
419
|
def self.dir
|
416
420
|
paths.home
|
@@ -463,7 +467,10 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
463
467
|
subdirs.each do |name|
|
464
468
|
subdir = File.join dir, name
|
465
469
|
next if File.exist? subdir
|
466
|
-
|
470
|
+
begin
|
471
|
+
FileUtils.mkdir_p subdir, **options
|
472
|
+
rescue Errno::EACCES
|
473
|
+
end
|
467
474
|
end
|
468
475
|
ensure
|
469
476
|
File.umask old_umask
|
@@ -500,7 +507,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
500
507
|
|
501
508
|
gem_specifications = @gemdeps ? Gem.loaded_specs.values : Gem::Specification.stubs
|
502
509
|
|
503
|
-
files.concat gem_specifications.map {
|
510
|
+
files.concat gem_specifications.map {|spec|
|
504
511
|
spec.matches_for_glob("#{glob}#{Gem.suffix_pattern}")
|
505
512
|
}.flatten
|
506
513
|
|
@@ -515,7 +522,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
515
522
|
glob_with_suffixes = "#{glob}#{Gem.suffix_pattern}"
|
516
523
|
$LOAD_PATH.map do |load_path|
|
517
524
|
Gem::Util.glob_files_in_dir(glob_with_suffixes, load_path)
|
518
|
-
end.flatten.select {
|
525
|
+
end.flatten.select {|file| File.file? file.tap(&Gem::UNTAINT) }
|
519
526
|
end
|
520
527
|
|
521
528
|
##
|
@@ -535,7 +542,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
535
542
|
|
536
543
|
files = find_files_from_load_path glob if check_load_path
|
537
544
|
|
538
|
-
files.concat Gem::Specification.latest_specs(true).map {
|
545
|
+
files.concat Gem::Specification.latest_specs(true).map {|spec|
|
539
546
|
spec.matches_for_glob("#{glob}#{Gem.suffix_pattern}")
|
540
547
|
}.flatten
|
541
548
|
|
@@ -546,83 +553,12 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
546
553
|
return files
|
547
554
|
end
|
548
555
|
|
549
|
-
##
|
550
|
-
# Finds the user's home directory.
|
551
|
-
#--
|
552
|
-
# Some comments from the ruby-talk list regarding finding the home
|
553
|
-
# directory:
|
554
|
-
#
|
555
|
-
# I have HOME, USERPROFILE and HOMEDRIVE + HOMEPATH. Ruby seems
|
556
|
-
# to be depending on HOME in those code samples. I propose that
|
557
|
-
# it should fallback to USERPROFILE and HOMEDRIVE + HOMEPATH (at
|
558
|
-
# least on Win32).
|
559
|
-
#++
|
560
|
-
#--
|
561
|
-
#
|
562
|
-
#++
|
563
|
-
|
564
|
-
def self.find_home
|
565
|
-
Dir.home.dup
|
566
|
-
rescue
|
567
|
-
if Gem.win_platform?
|
568
|
-
File.expand_path File.join(ENV['HOMEDRIVE'] || ENV['SystemDrive'], '/')
|
569
|
-
else
|
570
|
-
File.expand_path "/"
|
571
|
-
end
|
572
|
-
end
|
573
|
-
|
574
|
-
private_class_method :find_home
|
575
|
-
|
576
|
-
# TODO: remove in RubyGems 4.0
|
577
|
-
|
578
|
-
##
|
579
|
-
# Zlib::GzipReader wrapper that unzips +data+.
|
580
|
-
|
581
|
-
def self.gunzip(data)
|
582
|
-
Gem::Util.gunzip data
|
583
|
-
end
|
584
|
-
|
585
|
-
class << self
|
586
|
-
|
587
|
-
extend Gem::Deprecate
|
588
|
-
deprecate :gunzip, "Gem::Util.gunzip", 2018, 12
|
589
|
-
|
590
|
-
end
|
591
|
-
|
592
|
-
##
|
593
|
-
# Zlib::GzipWriter wrapper that zips +data+.
|
594
|
-
|
595
|
-
def self.gzip(data)
|
596
|
-
Gem::Util.gzip data
|
597
|
-
end
|
598
|
-
|
599
|
-
class << self
|
600
|
-
|
601
|
-
extend Gem::Deprecate
|
602
|
-
deprecate :gzip, "Gem::Util.gzip", 2018, 12
|
603
|
-
|
604
|
-
end
|
605
|
-
|
606
|
-
##
|
607
|
-
# A Zlib::Inflate#inflate wrapper
|
608
|
-
|
609
|
-
def self.inflate(data)
|
610
|
-
Gem::Util.inflate data
|
611
|
-
end
|
612
|
-
|
613
|
-
class << self
|
614
|
-
|
615
|
-
extend Gem::Deprecate
|
616
|
-
deprecate :inflate, "Gem::Util.inflate", 2018, 12
|
617
|
-
|
618
|
-
end
|
619
|
-
|
620
556
|
##
|
621
557
|
# Top level install helper method. Allows you to install gems interactively:
|
622
558
|
#
|
623
559
|
# % irb
|
624
560
|
# >> Gem.install "minitest"
|
625
|
-
# Fetching: minitest-
|
561
|
+
# Fetching: minitest-5.14.0.gem (100%)
|
626
562
|
# => [#<Gem::Specification:0x1013b4528 @name="minitest", ...>]
|
627
563
|
|
628
564
|
def self.install(name, version = Gem::Requirement.default, *options)
|
@@ -657,22 +593,25 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
657
593
|
|
658
594
|
index = $LOAD_PATH.index RbConfig::CONFIG['sitelibdir']
|
659
595
|
|
660
|
-
index
|
596
|
+
index || 0
|
597
|
+
end
|
598
|
+
|
599
|
+
##
|
600
|
+
# The number of paths in the `$LOAD_PATH` from activated gems. Used to
|
601
|
+
# prioritize `-I` and `ENV['RUBYLIB`]` entries during `require`.
|
602
|
+
|
603
|
+
def self.activated_gem_paths
|
604
|
+
@activated_gem_paths ||= 0
|
661
605
|
end
|
662
606
|
|
663
607
|
##
|
664
608
|
# Add a list of paths to the $LOAD_PATH at the proper place.
|
665
609
|
|
666
610
|
def self.add_to_load_path(*paths)
|
667
|
-
|
611
|
+
@activated_gem_paths = activated_gem_paths + paths.size
|
668
612
|
|
669
|
-
|
670
|
-
|
671
|
-
$LOAD_PATH.insert(insert_index, *paths)
|
672
|
-
else
|
673
|
-
# we are probably testing in core, -I and RUBYLIB don't apply
|
674
|
-
$LOAD_PATH.unshift(*paths)
|
675
|
-
end
|
613
|
+
# gem directories must come after -I and ENV['RUBYLIB']
|
614
|
+
$LOAD_PATH.insert(Gem.load_path_insert_index, *paths)
|
676
615
|
end
|
677
616
|
|
678
617
|
@yaml_loaded = false
|
@@ -682,14 +621,6 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
682
621
|
|
683
622
|
def self.load_yaml
|
684
623
|
return if @yaml_loaded
|
685
|
-
return unless defined?(gem)
|
686
|
-
|
687
|
-
begin
|
688
|
-
gem 'psych', '>= 2.0.0'
|
689
|
-
rescue Gem::LoadError
|
690
|
-
# It's OK if the user does not have the psych gem installed. We will
|
691
|
-
# attempt to require the stdlib version
|
692
|
-
end
|
693
624
|
|
694
625
|
begin
|
695
626
|
# Try requiring the gem version *or* stdlib version of psych.
|
@@ -904,8 +835,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
904
835
|
|
905
836
|
def self.ruby
|
906
837
|
if @ruby.nil?
|
907
|
-
@ruby =
|
908
|
-
"#{RbConfig::CONFIG['ruby_install_name']}#{RbConfig::CONFIG['EXEEXT']}")
|
838
|
+
@ruby = RbConfig.ruby
|
909
839
|
|
910
840
|
@ruby = "\"#{@ruby}\"" if @ruby =~ /\s/
|
911
841
|
end
|
@@ -1018,21 +948,38 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1018
948
|
@suffix_pattern ||= "{#{suffixes.join(',')}}"
|
1019
949
|
end
|
1020
950
|
|
951
|
+
##
|
952
|
+
# Regexp for require-able path suffixes.
|
953
|
+
|
1021
954
|
def self.suffix_regexp
|
1022
955
|
@suffix_regexp ||= /#{Regexp.union(suffixes)}\z/
|
1023
956
|
end
|
1024
957
|
|
958
|
+
##
|
959
|
+
# Glob pattern for require-able plugin suffixes.
|
960
|
+
|
961
|
+
def self.plugin_suffix_pattern
|
962
|
+
@plugin_suffix_pattern ||= "_plugin#{suffix_pattern}"
|
963
|
+
end
|
964
|
+
|
965
|
+
##
|
966
|
+
# Regexp for require-able plugin suffixes.
|
967
|
+
|
968
|
+
def self.plugin_suffix_regexp
|
969
|
+
@plugin_suffix_regexp ||= /_plugin#{suffix_regexp}\z/
|
970
|
+
end
|
971
|
+
|
1025
972
|
##
|
1026
973
|
# Suffixes for require-able paths.
|
1027
974
|
|
1028
975
|
def self.suffixes
|
1029
976
|
@suffixes ||= ['',
|
1030
977
|
'.rb',
|
1031
|
-
*%w
|
978
|
+
*%w[DLEXT DLEXT2].map do |key|
|
1032
979
|
val = RbConfig::CONFIG[key]
|
1033
980
|
next unless val and not val.empty?
|
1034
981
|
".#{val}"
|
1035
|
-
end
|
982
|
+
end,
|
1036
983
|
].compact.uniq
|
1037
984
|
end
|
1038
985
|
|
@@ -1069,24 +1016,17 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1069
1016
|
paths.flatten!
|
1070
1017
|
paths.compact!
|
1071
1018
|
hash = { "GEM_HOME" => home, "GEM_PATH" => paths.empty? ? home : paths.join(File::PATH_SEPARATOR) }
|
1072
|
-
hash.delete_if {
|
1019
|
+
hash.delete_if {|_, v| v.nil? }
|
1073
1020
|
self.paths = hash
|
1074
1021
|
end
|
1075
1022
|
|
1076
|
-
##
|
1077
|
-
# The home directory for the user.
|
1078
|
-
|
1079
|
-
def self.user_home
|
1080
|
-
@user_home ||= find_home.tap(&Gem::UNTAINT)
|
1081
|
-
end
|
1082
|
-
|
1083
1023
|
##
|
1084
1024
|
# Is this a windows platform?
|
1085
1025
|
|
1086
1026
|
def self.win_platform?
|
1087
1027
|
if @@win_platform.nil?
|
1088
1028
|
ruby_platform = RbConfig::CONFIG['host_os']
|
1089
|
-
@@win_platform = !!WIN_PATTERNS.find {
|
1029
|
+
@@win_platform = !!WIN_PATTERNS.find {|r| ruby_platform =~ r }
|
1090
1030
|
end
|
1091
1031
|
|
1092
1032
|
@@win_platform
|
@@ -1120,35 +1060,17 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1120
1060
|
end
|
1121
1061
|
|
1122
1062
|
##
|
1123
|
-
# Find
|
1124
|
-
# them
|
1063
|
+
# Find rubygems plugin files in the standard location and load them
|
1125
1064
|
|
1126
1065
|
def self.load_plugins
|
1127
|
-
|
1128
|
-
if ENV['RUBYGEMS_LOAD_ALL_PLUGINS']
|
1129
|
-
load_plugin_files find_files('rubygems_plugin', false)
|
1130
|
-
else
|
1131
|
-
load_plugin_files find_latest_files('rubygems_plugin', false)
|
1132
|
-
end
|
1066
|
+
load_plugin_files Gem::Util.glob_files_in_dir("*#{Gem.plugin_suffix_pattern}", plugindir)
|
1133
1067
|
end
|
1134
1068
|
|
1135
1069
|
##
|
1136
1070
|
# Find all 'rubygems_plugin' files in $LOAD_PATH and load them
|
1137
1071
|
|
1138
1072
|
def self.load_env_plugins
|
1139
|
-
|
1140
|
-
|
1141
|
-
files = []
|
1142
|
-
glob = "#{path}#{Gem.suffix_pattern}"
|
1143
|
-
$LOAD_PATH.each do |load_path|
|
1144
|
-
globbed = Gem::Util.glob_files_in_dir(glob, load_path)
|
1145
|
-
|
1146
|
-
globbed.each do |load_path_file|
|
1147
|
-
files << load_path_file if File.file?(load_path_file.tap(&Gem::UNTAINT))
|
1148
|
-
end
|
1149
|
-
end
|
1150
|
-
|
1151
|
-
load_plugin_files files
|
1073
|
+
load_plugin_files find_files_from_load_path("rubygems_plugin")
|
1152
1074
|
end
|
1153
1075
|
|
1154
1076
|
##
|
@@ -1181,7 +1103,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1181
1103
|
|
1182
1104
|
if path == "-"
|
1183
1105
|
Gem::Util.traverse_parents Dir.pwd do |directory|
|
1184
|
-
dep_file = GEM_DEP_FILES.find {
|
1106
|
+
dep_file = GEM_DEP_FILES.find {|f| File.file?(f) }
|
1185
1107
|
|
1186
1108
|
next unless dep_file
|
1187
1109
|
|
@@ -1223,39 +1145,55 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1223
1145
|
end
|
1224
1146
|
end
|
1225
1147
|
|
1226
|
-
|
1148
|
+
##
|
1149
|
+
# If the SOURCE_DATE_EPOCH environment variable is set, returns it's value.
|
1150
|
+
# Otherwise, returns the time that `Gem.source_date_epoch_string` was
|
1151
|
+
# first called in the same format as SOURCE_DATE_EPOCH.
|
1152
|
+
#
|
1153
|
+
# NOTE(@duckinator): The implementation is a tad weird because we want to:
|
1154
|
+
# 1. Make builds reproducible by default, by having this function always
|
1155
|
+
# return the same result during a given run.
|
1156
|
+
# 2. Allow changing ENV['SOURCE_DATE_EPOCH'] at runtime, since multiple
|
1157
|
+
# tests that set this variable will be run in a single process.
|
1158
|
+
#
|
1159
|
+
# If you simplify this function and a lot of tests fail, that is likely
|
1160
|
+
# due to #2 above.
|
1161
|
+
#
|
1162
|
+
# Details on SOURCE_DATE_EPOCH:
|
1163
|
+
# https://reproducible-builds.org/specs/source-date-epoch/
|
1227
1164
|
|
1228
|
-
|
1229
|
-
#
|
1165
|
+
def self.source_date_epoch_string
|
1166
|
+
# The value used if $SOURCE_DATE_EPOCH is not set.
|
1167
|
+
@default_source_date_epoch ||= Time.now.to_i.to_s
|
1230
1168
|
|
1231
|
-
|
1169
|
+
specified_epoch = ENV["SOURCE_DATE_EPOCH"]
|
1232
1170
|
|
1233
|
-
|
1234
|
-
|
1171
|
+
# If it's empty or just whitespace, treat it like it wasn't set at all.
|
1172
|
+
specified_epoch = nil if !specified_epoch.nil? && specified_epoch.strip.empty?
|
1235
1173
|
|
1174
|
+
epoch = specified_epoch || @default_source_date_epoch
|
1175
|
+
|
1176
|
+
epoch.strip
|
1236
1177
|
end
|
1237
1178
|
|
1238
1179
|
##
|
1239
|
-
#
|
1240
|
-
# This is used throughout RubyGems for enabling reproducible builds.
|
1241
|
-
#
|
1242
|
-
# If it is not set as an environment variable already, this also sets it.
|
1180
|
+
# Returns the value of Gem.source_date_epoch_string, as a Time object.
|
1243
1181
|
#
|
1244
|
-
#
|
1245
|
-
# https://reproducible-builds.org/specs/source-date-epoch/
|
1182
|
+
# This is used throughout RubyGems for enabling reproducible builds.
|
1246
1183
|
|
1247
1184
|
def self.source_date_epoch
|
1248
|
-
|
1249
|
-
ENV["SOURCE_DATE_EPOCH"] = Time.now.to_i.to_s
|
1250
|
-
end
|
1251
|
-
|
1252
|
-
Time.at(ENV["SOURCE_DATE_EPOCH"].to_i).utc.freeze
|
1185
|
+
Time.at(self.source_date_epoch_string.to_i).utc.freeze
|
1253
1186
|
end
|
1254
1187
|
|
1255
1188
|
# FIX: Almost everywhere else we use the `def self.` way of defining class
|
1256
1189
|
# methods, and then we switch over to `class << self` here. Pick one or the
|
1257
1190
|
# other.
|
1258
1191
|
class << self
|
1192
|
+
##
|
1193
|
+
# RubyGems distributors (like operating system package managers) can
|
1194
|
+
# disable RubyGems update by setting this to error message printed to
|
1195
|
+
# end-users on gem update --system instead of actual update.
|
1196
|
+
attr_accessor :disable_system_update_message
|
1259
1197
|
|
1260
1198
|
##
|
1261
1199
|
# Hash of loaded Gem::Specification keyed by name
|
@@ -1281,10 +1219,11 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1281
1219
|
#
|
1282
1220
|
|
1283
1221
|
def register_default_spec(spec)
|
1284
|
-
|
1222
|
+
extended_require_paths = spec.require_paths.map {|f| f + "/" }
|
1223
|
+
new_format = extended_require_paths.any? {|path| spec.files.any? {|f| f.start_with? path } }
|
1285
1224
|
|
1286
1225
|
if new_format
|
1287
|
-
prefix_group =
|
1226
|
+
prefix_group = extended_require_paths.join("|")
|
1288
1227
|
prefix_pattern = /^(#{prefix_group})/
|
1289
1228
|
end
|
1290
1229
|
|
@@ -1294,6 +1233,8 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1294
1233
|
next unless $~
|
1295
1234
|
end
|
1296
1235
|
|
1236
|
+
spec.activate if already_loaded?(file)
|
1237
|
+
|
1297
1238
|
@path_to_default_spec_map[file] = spec
|
1298
1239
|
@path_to_default_spec_map[file.sub(suffix_regexp, "")] = spec
|
1299
1240
|
end
|
@@ -1359,6 +1300,17 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1359
1300
|
|
1360
1301
|
attr_reader :pre_uninstall_hooks
|
1361
1302
|
|
1303
|
+
private
|
1304
|
+
|
1305
|
+
def already_loaded?(file)
|
1306
|
+
$LOADED_FEATURES.any? do |feature_path|
|
1307
|
+
feature_path.end_with?(file) && default_gem_load_paths.any? {|load_path_entry| feature_path == "#{load_path_entry}/#{file}" }
|
1308
|
+
end
|
1309
|
+
end
|
1310
|
+
|
1311
|
+
def default_gem_load_paths
|
1312
|
+
@default_gem_load_paths ||= $LOAD_PATH[load_path_insert_index..-1]
|
1313
|
+
end
|
1362
1314
|
end
|
1363
1315
|
|
1364
1316
|
##
|
@@ -1366,25 +1318,24 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1366
1318
|
|
1367
1319
|
MARSHAL_SPEC_DIR = "quick/Marshal.#{Gem.marshal_version}/".freeze
|
1368
1320
|
|
1369
|
-
autoload :BundlerVersionFinder, 'rubygems/bundler_version_finder'
|
1370
|
-
autoload :ConfigFile, 'rubygems/config_file'
|
1371
|
-
autoload :Dependency, 'rubygems/dependency'
|
1372
|
-
autoload :DependencyList, 'rubygems/dependency_list'
|
1373
|
-
autoload :Installer, 'rubygems/installer'
|
1374
|
-
autoload :Licenses, 'rubygems/util/licenses'
|
1375
|
-
autoload :
|
1376
|
-
autoload :
|
1377
|
-
autoload :
|
1378
|
-
autoload :
|
1379
|
-
autoload :
|
1380
|
-
autoload :
|
1381
|
-
autoload :
|
1382
|
-
autoload :
|
1383
|
-
autoload :
|
1384
|
-
autoload :
|
1385
|
-
autoload :
|
1386
|
-
|
1387
|
-
require "rubygems/specification"
|
1321
|
+
autoload :BundlerVersionFinder, File.expand_path('rubygems/bundler_version_finder', __dir__)
|
1322
|
+
autoload :ConfigFile, File.expand_path('rubygems/config_file', __dir__)
|
1323
|
+
autoload :Dependency, File.expand_path('rubygems/dependency', __dir__)
|
1324
|
+
autoload :DependencyList, File.expand_path('rubygems/dependency_list', __dir__)
|
1325
|
+
autoload :Installer, File.expand_path('rubygems/installer', __dir__)
|
1326
|
+
autoload :Licenses, File.expand_path('rubygems/util/licenses', __dir__)
|
1327
|
+
autoload :NameTuple, File.expand_path('rubygems/name_tuple', __dir__)
|
1328
|
+
autoload :PathSupport, File.expand_path('rubygems/path_support', __dir__)
|
1329
|
+
autoload :Platform, File.expand_path('rubygems/platform', __dir__)
|
1330
|
+
autoload :RequestSet, File.expand_path('rubygems/request_set', __dir__)
|
1331
|
+
autoload :Requirement, File.expand_path('rubygems/requirement', __dir__)
|
1332
|
+
autoload :Resolver, File.expand_path('rubygems/resolver', __dir__)
|
1333
|
+
autoload :Source, File.expand_path('rubygems/source', __dir__)
|
1334
|
+
autoload :SourceList, File.expand_path('rubygems/source_list', __dir__)
|
1335
|
+
autoload :SpecFetcher, File.expand_path('rubygems/spec_fetcher', __dir__)
|
1336
|
+
autoload :Specification, File.expand_path('rubygems/specification', __dir__)
|
1337
|
+
autoload :Util, File.expand_path('rubygems/util', __dir__)
|
1338
|
+
autoload :Version, File.expand_path('rubygems/version', __dir__)
|
1388
1339
|
end
|
1389
1340
|
|
1390
1341
|
require 'rubygems/exceptions'
|