rubygems-update 3.1.2 → 3.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CODE_OF_CONDUCT.md +55 -19
- data/CONTRIBUTING.md +25 -11
- data/History.txt +460 -232
- data/Manifest.txt +47 -77
- data/POLICIES.md +6 -12
- data/README.md +5 -5
- data/Rakefile +59 -83
- data/bin/update_rubygems +1 -1
- data/bundler/CHANGELOG.md +1598 -1421
- 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 +32 -7
- data/bundler/lib/bundler/build_metadata.rb +4 -12
- data/bundler/lib/bundler/cli.rb +58 -21
- 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 +4 -4
- data/bundler/lib/bundler/cli/fund.rb +36 -0
- data/bundler/lib/bundler/cli/gem.rb +84 -11
- data/bundler/lib/bundler/cli/info.rb +15 -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 +16 -13
- data/bundler/lib/bundler/cli/issue.rb +2 -2
- data/bundler/lib/bundler/cli/list.rb +12 -10
- data/bundler/lib/bundler/cli/outdated.rb +87 -66
- data/bundler/lib/bundler/cli/plugin.rb +10 -0
- data/bundler/lib/bundler/cli/pristine.rb +5 -0
- data/bundler/lib/bundler/cli/show.rb +1 -1
- data/bundler/lib/bundler/cli/update.rb +3 -1
- data/bundler/lib/bundler/compact_index_client.rb +1 -1
- data/bundler/lib/bundler/compact_index_client/cache.rb +6 -14
- data/bundler/lib/bundler/compact_index_client/gem_parser.rb +28 -0
- data/bundler/lib/bundler/compact_index_client/updater.rb +5 -5
- data/bundler/lib/bundler/definition.rb +65 -76
- data/bundler/lib/bundler/dep_proxy.rb +1 -1
- data/bundler/lib/bundler/dependency.rb +3 -10
- 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 +36 -25
- 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 +35 -11
- 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} +6 -6
- 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 +37 -18
- data/bundler/lib/bundler/resolver/spec_group.rb +36 -21
- 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 +26 -61
- data/bundler/lib/bundler/runtime.rb +4 -14
- data/bundler/lib/bundler/settings.rb +49 -46
- 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 +5 -5
- 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 +7 -9
- data/bundler/lib/bundler/stub_specification.rb +17 -7
- data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +57 -47
- data/bundler/lib/bundler/templates/newgem/Gemfile.tt +9 -1
- data/bundler/lib/bundler/templates/newgem/README.md.tt +1 -2
- data/bundler/lib/bundler/templates/newgem/Rakefile.tt +19 -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 +14 -6
- 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 +79 -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 +7 -7
- 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 -4
- data/lib/rubygems/commands/pristine_command.rb +11 -5
- data/lib/rubygems/commands/push_command.rb +10 -47
- 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 +131 -58
- 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 -7
- 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 +6 -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 +4 -6
- data/lib/rubygems/gem_runner.rb +3 -10
- data/lib/rubygems/gemcutter_utilities.rb +102 -21
- data/lib/rubygems/indexer.rb +1 -22
- data/lib/rubygems/install_update_options.rb +7 -7
- data/lib/rubygems/installer.rb +59 -80
- 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 +11 -28
- 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 +7 -20
- 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 +14 -12
- data/lib/rubygems/resolver/activation_request.rb +9 -3
- data/lib/rubygems/resolver/api_set.rb +31 -24
- data/lib/rubygems/resolver/api_set/gem_parser.rb +20 -0
- data/lib/rubygems/resolver/api_specification.rb +24 -10
- data/lib/rubygems/resolver/best_set.rb +1 -3
- 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 +26 -2
- data/lib/rubygems/resolver/installed_specification.rb +0 -2
- data/lib/rubygems/resolver/installer_set.rb +60 -13
- 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 +14 -2
- data/lib/rubygems/resolver/specification.rb +13 -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 +16 -13
- data/lib/rubygems/source.rb +23 -12
- 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 +4 -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 +105 -132
- data/lib/rubygems/test_utilities.rb +12 -19
- 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 +151 -99
- 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 +163 -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 +77 -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 +165 -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 +39 -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 +258 -115
- 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 +60 -59
- data/test/rubygems/test_gem_resolver_api_specification.rb +3 -5
- data/test/rubygems/test_gem_resolver_best_set.rb +5 -7
- 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 +19 -18
- 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
- data/test/test_changelog_generator.rb +17 -0
- metadata +65 -96
- 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 -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/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
@@ -6,9 +6,10 @@ module Bundler
|
|
6
6
|
include GemHelpers
|
7
7
|
|
8
8
|
attr_accessor :name, :version, :source
|
9
|
-
attr_accessor :ignores_bundler_dependencies
|
9
|
+
attr_accessor :ignores_bundler_dependencies, :activated_platforms
|
10
10
|
|
11
11
|
def initialize(all_specs)
|
12
|
+
@all_specs = all_specs
|
12
13
|
raise ArgumentError, "cannot initialize with an empty value" unless exemplary_spec = all_specs.first
|
13
14
|
@name = exemplary_spec.name
|
14
15
|
@version = exemplary_spec.version
|
@@ -24,32 +25,40 @@ module Bundler
|
|
24
25
|
|
25
26
|
def to_specs
|
26
27
|
@activated_platforms.map do |p|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
28
|
+
specs = @specs[p]
|
29
|
+
next unless specs.any?
|
30
|
+
|
31
|
+
specs.map do |s|
|
32
|
+
lazy_spec = LazySpecification.new(name, version, s.platform, source)
|
33
|
+
lazy_spec.dependencies.replace s.dependencies
|
34
|
+
lazy_spec
|
35
|
+
end
|
36
|
+
end.flatten.compact.uniq
|
32
37
|
end
|
33
38
|
|
34
|
-
def
|
35
|
-
|
36
|
-
return
|
37
|
-
|
39
|
+
def copy_for(platforms)
|
40
|
+
platforms.select! {|p| for?(p) }
|
41
|
+
return unless platforms.any?
|
42
|
+
|
43
|
+
copied_sg = self.class.new(@all_specs)
|
44
|
+
copied_sg.ignores_bundler_dependencies = @ignores_bundler_dependencies
|
45
|
+
copied_sg.activated_platforms = platforms
|
46
|
+
copied_sg
|
38
47
|
end
|
39
48
|
|
40
49
|
def for?(platform)
|
41
|
-
|
42
|
-
!spec.nil?
|
50
|
+
@specs[platform].any?
|
43
51
|
end
|
44
52
|
|
45
53
|
def to_s
|
46
|
-
|
54
|
+
activated_platforms_string = sorted_activated_platforms.join(", ")
|
55
|
+
"#{name} (#{version}) (#{activated_platforms_string})"
|
47
56
|
end
|
48
57
|
|
49
58
|
def dependencies_for_activated_platforms
|
50
59
|
dependencies = @activated_platforms.map {|p| __dependencies[p] }
|
51
60
|
metadata_dependencies = @activated_platforms.map do |platform|
|
52
|
-
metadata_dependencies(@specs[platform], platform)
|
61
|
+
metadata_dependencies(@specs[platform].first, platform)
|
53
62
|
end
|
54
63
|
dependencies.concat(metadata_dependencies).flatten
|
55
64
|
end
|
@@ -58,6 +67,7 @@ module Bundler
|
|
58
67
|
return unless other.is_a?(SpecGroup)
|
59
68
|
name == other.name &&
|
60
69
|
version == other.version &&
|
70
|
+
sorted_activated_platforms == other.sorted_activated_platforms &&
|
61
71
|
source == other.source
|
62
72
|
end
|
63
73
|
|
@@ -65,19 +75,27 @@ module Bundler
|
|
65
75
|
return unless other.is_a?(SpecGroup)
|
66
76
|
name.eql?(other.name) &&
|
67
77
|
version.eql?(other.version) &&
|
78
|
+
sorted_activated_platforms.eql?(other.sorted_activated_platforms) &&
|
68
79
|
source.eql?(other.source)
|
69
80
|
end
|
70
81
|
|
71
82
|
def hash
|
72
|
-
|
83
|
+
name.hash ^ version.hash ^ sorted_activated_platforms.hash ^ source.hash
|
84
|
+
end
|
85
|
+
|
86
|
+
protected
|
87
|
+
|
88
|
+
def sorted_activated_platforms
|
89
|
+
@activated_platforms.sort_by(&:to_s)
|
73
90
|
end
|
74
91
|
|
75
|
-
|
92
|
+
private
|
76
93
|
|
77
94
|
def __dependencies
|
78
95
|
@dependencies = Hash.new do |dependencies, platform|
|
79
96
|
dependencies[platform] = []
|
80
|
-
|
97
|
+
specs = @specs[platform]
|
98
|
+
if spec = specs.first
|
81
99
|
spec.dependencies.each do |dep|
|
82
100
|
next if dep.type == :development
|
83
101
|
next if @ignores_bundler_dependencies && dep.name == "bundler".freeze
|
@@ -89,10 +107,7 @@ module Bundler
|
|
89
107
|
end
|
90
108
|
|
91
109
|
def metadata_dependencies(spec, platform)
|
92
|
-
return [] unless spec
|
93
|
-
# Only allow endpoint specifications since they won't hit the network to
|
94
|
-
# fetch the full gemspec when calling required_ruby_version
|
95
|
-
return [] if !spec.is_a?(EndpointSpecification) && !spec.is_a?(Gem::Specification)
|
110
|
+
return [] unless spec && spec.is_a?(Gem::Specification)
|
96
111
|
dependencies = []
|
97
112
|
if !spec.required_ruby_version.nil? && !spec.required_ruby_version.none?
|
98
113
|
dependencies << DepProxy.new(Gem::Dependency.new("Ruby\0", spec.required_ruby_version), platform)
|
@@ -47,14 +47,13 @@ module Gem
|
|
47
47
|
full_require_paths
|
48
48
|
end
|
49
49
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
end
|
50
|
+
alias_method :rg_extension_dir, :extension_dir
|
51
|
+
def extension_dir
|
52
|
+
@bundler_extension_dir ||= if source.respond_to?(:extension_dir_name)
|
53
|
+
unique_extension_dir = [source.extension_dir_name, File.basename(full_gem_path)].uniq.join("-")
|
54
|
+
File.expand_path(File.join(extensions_dir, unique_extension_dir))
|
55
|
+
else
|
56
|
+
rg_extension_dir
|
58
57
|
end
|
59
58
|
end
|
60
59
|
|
@@ -86,7 +85,7 @@ module Gem
|
|
86
85
|
dependencies - development_dependencies
|
87
86
|
end
|
88
87
|
|
89
|
-
|
88
|
+
private
|
90
89
|
|
91
90
|
def dependencies_to_gemfile(dependencies, group = nil)
|
92
91
|
gemfile = String.new
|
@@ -130,6 +129,35 @@ module Gem
|
|
130
129
|
end
|
131
130
|
end
|
132
131
|
|
132
|
+
# comparison is done order independently since rubygems 3.2.0.rc.2
|
133
|
+
unless Gem::Requirement.new("> 1", "< 2") == Gem::Requirement.new("< 2", "> 1")
|
134
|
+
class Requirement
|
135
|
+
module OrderIndependentComparison
|
136
|
+
def ==(other)
|
137
|
+
if _requirements_sorted? && other._requirements_sorted?
|
138
|
+
super
|
139
|
+
else
|
140
|
+
_with_sorted_requirements == other._with_sorted_requirements
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
protected
|
145
|
+
|
146
|
+
def _requirements_sorted?
|
147
|
+
return @_are_requirements_sorted if defined?(@_are_requirements_sorted)
|
148
|
+
strings = as_list
|
149
|
+
@_are_requirements_sorted = strings == strings.sort
|
150
|
+
end
|
151
|
+
|
152
|
+
def _with_sorted_requirements
|
153
|
+
@_with_sorted_requirements ||= _requirements_sorted? ? self : self.class.new(as_list.sort)
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
prepend OrderIndependentComparison
|
158
|
+
end
|
159
|
+
end
|
160
|
+
|
133
161
|
class Platform
|
134
162
|
JAVA = Gem::Platform.new("java") unless defined?(JAVA)
|
135
163
|
MSWIN = Gem::Platform.new("mswin32") unless defined?(MSWIN)
|
@@ -145,6 +173,22 @@ module Gem
|
|
145
173
|
undef_method :eql? if method_defined? :eql?
|
146
174
|
alias_method :eql?, :==
|
147
175
|
end
|
176
|
+
|
177
|
+
require "rubygems/util"
|
178
|
+
|
179
|
+
Util.singleton_class.module_eval do
|
180
|
+
if Util.singleton_methods.include?(:glob_files_in_dir) # since 3.0.0.beta.2
|
181
|
+
remove_method :glob_files_in_dir
|
182
|
+
end
|
183
|
+
|
184
|
+
def glob_files_in_dir(glob, base_path)
|
185
|
+
if RUBY_VERSION >= "2.5"
|
186
|
+
Dir.glob(glob, :base => base_path).map! {|f| File.expand_path(f, base_path) }
|
187
|
+
else
|
188
|
+
Dir.glob(File.join(base_path.to_s.gsub(/[\[\]]/, '\\\\\\&'), glob)).map! {|f| File.expand_path(f) }
|
189
|
+
end
|
190
|
+
end
|
191
|
+
end
|
148
192
|
end
|
149
193
|
|
150
194
|
module Gem
|
@@ -4,12 +4,6 @@ require "rubygems/installer"
|
|
4
4
|
|
5
5
|
module Bundler
|
6
6
|
class RubyGemsGemInstaller < Gem::Installer
|
7
|
-
unless respond_to?(:at)
|
8
|
-
def self.at(*args)
|
9
|
-
new(*args)
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
7
|
def check_executable_overwrite(filename)
|
14
8
|
# Bundler needs to install gems regardless of binstub overwriting
|
15
9
|
end
|
@@ -20,7 +14,7 @@ module Bundler
|
|
20
14
|
|
21
15
|
def build_extensions
|
22
16
|
extension_cache_path = options[:bundler_extension_cache_path]
|
23
|
-
return super unless extension_cache_path && extension_dir =
|
17
|
+
return super unless extension_cache_path && extension_dir = spec.extension_dir
|
24
18
|
|
25
19
|
extension_dir = Pathname.new(extension_dir)
|
26
20
|
build_complete = SharedHelpers.filesystem_access(extension_cache_path.join("gem.build_complete"), :read, &:file?)
|
@@ -40,7 +34,7 @@ module Bundler
|
|
40
34
|
end
|
41
35
|
end
|
42
36
|
|
43
|
-
|
37
|
+
private
|
44
38
|
|
45
39
|
def validate_bundler_checksum(checksum)
|
46
40
|
return true if Bundler.settings[:disable_checksum_validation]
|
@@ -66,7 +60,7 @@ module Bundler
|
|
66
60
|
|
67
61
|
If you wish to continue installing the downloaded gem, and are certain it does not pose a \
|
68
62
|
security issue despite the mismatching checksum, do the following:
|
69
|
-
1. run `bundle config set disable_checksum_validation true` to turn off checksum verification
|
63
|
+
1. run `bundle config set --local disable_checksum_validation true` to turn off checksum verification
|
70
64
|
2. run `bundle install`
|
71
65
|
|
72
66
|
(More info: The expected SHA256 checksum was #{checksum.inspect}, but the \
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require "rubygems"
|
3
|
+
require "rubygems" unless defined?(Gem)
|
4
4
|
|
5
5
|
module Bundler
|
6
6
|
class RubygemsIntegration
|
@@ -102,11 +102,6 @@ module Bundler
|
|
102
102
|
end.flatten(1)
|
103
103
|
end
|
104
104
|
|
105
|
-
def spec_extension_dir(spec)
|
106
|
-
return unless spec.respond_to?(:extension_dir)
|
107
|
-
spec.extension_dir
|
108
|
-
end
|
109
|
-
|
110
105
|
def stub_set_spec(stub, spec)
|
111
106
|
stub.instance_variable_set(:@spec, spec)
|
112
107
|
end
|
@@ -115,11 +110,6 @@ module Bundler
|
|
115
110
|
obj.to_s
|
116
111
|
end
|
117
112
|
|
118
|
-
def platforms
|
119
|
-
return [Gem::Platform::RUBY] if Bundler.settings[:force_ruby_platform]
|
120
|
-
Gem.platforms
|
121
|
-
end
|
122
|
-
|
123
113
|
def configuration
|
124
114
|
require_relative "psyched_yaml"
|
125
115
|
Gem.configuration
|
@@ -141,14 +131,10 @@ module Bundler
|
|
141
131
|
end
|
142
132
|
|
143
133
|
def inflate(obj)
|
144
|
-
require "rubygems/util"
|
145
|
-
|
146
134
|
Gem::Util.inflate(obj)
|
147
135
|
end
|
148
136
|
|
149
137
|
def correct_for_windows_path(path)
|
150
|
-
require "rubygems/util"
|
151
|
-
|
152
138
|
if Gem::Util.respond_to?(:correct_for_windows_path)
|
153
139
|
Gem::Util.correct_for_windows_path(path)
|
154
140
|
elsif path[0].chr == "/" && path[1].chr =~ /[a-z]/i && path[2].chr == ":"
|
@@ -223,11 +209,6 @@ module Bundler
|
|
223
209
|
Gem.bin_path(gem, bin, ver)
|
224
210
|
end
|
225
211
|
|
226
|
-
def preserve_paths
|
227
|
-
# this is a no-op outside of RubyGems 1.8
|
228
|
-
yield
|
229
|
-
end
|
230
|
-
|
231
212
|
def loaded_gem_paths
|
232
213
|
loaded_gem_paths = Gem.loaded_specs.map {|_, s| s.full_require_paths }
|
233
214
|
loaded_gem_paths.flatten
|
@@ -241,6 +222,10 @@ module Bundler
|
|
241
222
|
Gem.load_plugin_files(files) if Gem.respond_to?(:load_plugin_files)
|
242
223
|
end
|
243
224
|
|
225
|
+
def load_env_plugins
|
226
|
+
Gem.load_env_plugins if Gem.respond_to?(:load_env_plugins)
|
227
|
+
end
|
228
|
+
|
244
229
|
def ui=(obj)
|
245
230
|
Gem::DefaultUserInteraction.ui = obj
|
246
231
|
end
|
@@ -265,8 +250,6 @@ module Bundler
|
|
265
250
|
require "rubygems/security"
|
266
251
|
require_relative "psyched_yaml"
|
267
252
|
gem_from_path(path, security_policies[policy]).spec
|
268
|
-
rescue Gem::Package::FormatError
|
269
|
-
raise GemspecError, "Could not read gem at #{path}. It may be corrupted."
|
270
253
|
rescue Exception, Gem::Exception, Gem::Security::Exception => e # rubocop:disable Lint/RescueException
|
271
254
|
if e.is_a?(Gem::Security::Exception) ||
|
272
255
|
e.message =~ /unknown trust policy|unsigned gem/i ||
|
@@ -329,8 +312,13 @@ module Bundler
|
|
329
312
|
end
|
330
313
|
|
331
314
|
message = if spec.nil?
|
315
|
+
target_file = begin
|
316
|
+
Bundler.default_gemfile.basename
|
317
|
+
rescue GemfileNotFound
|
318
|
+
"inline Gemfile"
|
319
|
+
end
|
332
320
|
"#{dep.name} is not part of the bundle." \
|
333
|
-
" Add it to your #{
|
321
|
+
" Add it to your #{target_file}."
|
334
322
|
else
|
335
323
|
"can't activate #{dep}, already activated #{spec.full_name}. " \
|
336
324
|
"Make sure all dependencies are added to Gemfile."
|
@@ -346,7 +334,7 @@ module Bundler
|
|
346
334
|
raise e
|
347
335
|
end
|
348
336
|
|
349
|
-
# backwards compatibility shim, see https://github.com/
|
337
|
+
# backwards compatibility shim, see https://github.com/rubygems/bundler/issues/5102
|
350
338
|
kernel_class.send(:public, :gem) if Bundler.feature_flag.setup_makes_kernel_gem_public?
|
351
339
|
end
|
352
340
|
end
|
@@ -422,6 +410,17 @@ module Bundler
|
|
422
410
|
# Replace or hook into RubyGems to provide a bundlerized view
|
423
411
|
# of the world.
|
424
412
|
def replace_entrypoints(specs)
|
413
|
+
specs_by_name = add_default_gems_to(specs)
|
414
|
+
|
415
|
+
replace_gem(specs, specs_by_name)
|
416
|
+
stub_rubygems(specs)
|
417
|
+
replace_bin_path(specs_by_name)
|
418
|
+
|
419
|
+
Gem.clear_paths
|
420
|
+
end
|
421
|
+
|
422
|
+
# Add default gems not already present in specs, and return them as a hash.
|
423
|
+
def add_default_gems_to(specs)
|
425
424
|
specs_by_name = specs.reduce({}) do |h, s|
|
426
425
|
h[s.name] = s
|
427
426
|
h
|
@@ -436,40 +435,7 @@ module Bundler
|
|
436
435
|
specs_by_name[default_spec_name] = default_spec
|
437
436
|
end
|
438
437
|
|
439
|
-
|
440
|
-
stub_rubygems(specs)
|
441
|
-
replace_bin_path(specs_by_name)
|
442
|
-
|
443
|
-
Gem.clear_paths
|
444
|
-
end
|
445
|
-
|
446
|
-
# This backports base_dir which replaces installation path
|
447
|
-
# RubyGems 1.8+
|
448
|
-
def backport_base_dir
|
449
|
-
redefine_method(Gem::Specification, :base_dir) do
|
450
|
-
return Gem.dir unless loaded_from
|
451
|
-
File.dirname File.dirname loaded_from
|
452
|
-
end
|
453
|
-
end
|
454
|
-
|
455
|
-
def backport_cache_file
|
456
|
-
redefine_method(Gem::Specification, :cache_dir) do
|
457
|
-
@cache_dir ||= File.join base_dir, "cache"
|
458
|
-
end
|
459
|
-
|
460
|
-
redefine_method(Gem::Specification, :cache_file) do
|
461
|
-
@cache_file ||= File.join cache_dir, "#{full_name}.gem"
|
462
|
-
end
|
463
|
-
end
|
464
|
-
|
465
|
-
def backport_spec_file
|
466
|
-
redefine_method(Gem::Specification, :spec_dir) do
|
467
|
-
@spec_dir ||= File.join base_dir, "specifications"
|
468
|
-
end
|
469
|
-
|
470
|
-
redefine_method(Gem::Specification, :spec_file) do
|
471
|
-
@spec_file ||= File.join spec_dir, "#{full_name}.gemspec"
|
472
|
-
end
|
438
|
+
specs_by_name
|
473
439
|
end
|
474
440
|
|
475
441
|
def undo_replacements
|
@@ -594,7 +560,6 @@ module Bundler
|
|
594
560
|
end
|
595
561
|
|
596
562
|
def all_specs
|
597
|
-
require_relative "remote_specification"
|
598
563
|
Gem::Specification.stubs.map do |stub|
|
599
564
|
StubSpecification.from_stub(stub)
|
600
565
|
end
|
@@ -602,10 +567,10 @@ module Bundler
|
|
602
567
|
|
603
568
|
def backport_ext_builder_monitor
|
604
569
|
# So we can avoid requiring "rubygems/ext" in its entirety
|
605
|
-
Gem.module_eval <<-
|
570
|
+
Gem.module_eval <<-RUBY, __FILE__, __LINE__ + 1
|
606
571
|
module Ext
|
607
572
|
end
|
608
|
-
|
573
|
+
RUBY
|
609
574
|
|
610
575
|
require "rubygems/ext/builder"
|
611
576
|
|
@@ -43,14 +43,6 @@ module Bundler
|
|
43
43
|
self
|
44
44
|
end
|
45
45
|
|
46
|
-
REQUIRE_ERRORS = [
|
47
|
-
/^no such file to load -- (.+)$/i,
|
48
|
-
/^Missing \w+ (?:file\s*)?([^\s]+.rb)$/i,
|
49
|
-
/^Missing API definition file in (.+)$/i,
|
50
|
-
/^cannot load such file -- (.+)$/i,
|
51
|
-
/^dlopen\([^)]*\): Library not loaded: (.+)$/i,
|
52
|
-
].freeze
|
53
|
-
|
54
46
|
def require(*groups)
|
55
47
|
groups.map!(&:to_sym)
|
56
48
|
groups = [:default] if groups.empty?
|
@@ -79,16 +71,14 @@ module Bundler
|
|
79
71
|
end
|
80
72
|
end
|
81
73
|
rescue LoadError => e
|
82
|
-
|
83
|
-
raise if dep.autorequire || $1 != required_file
|
74
|
+
raise if dep.autorequire || e.path != required_file
|
84
75
|
|
85
76
|
if dep.autorequire.nil? && dep.name.include?("-")
|
86
77
|
begin
|
87
78
|
namespaced_file = dep.name.tr("-", "/")
|
88
79
|
Kernel.require namespaced_file
|
89
80
|
rescue LoadError => e
|
90
|
-
|
91
|
-
raise if $1 != namespaced_file
|
81
|
+
raise if e.path != namespaced_file
|
92
82
|
end
|
93
83
|
end
|
94
84
|
end
|
@@ -165,7 +155,7 @@ module Bundler
|
|
165
155
|
spec_cache_paths = []
|
166
156
|
spec_gemspec_paths = []
|
167
157
|
spec_extension_paths = []
|
168
|
-
specs.each do |spec|
|
158
|
+
Bundler.rubygems.add_default_gems_to(specs).values.each do |spec|
|
169
159
|
spec_gem_paths << spec.full_gem_path
|
170
160
|
# need to check here in case gems are nested like for the rails git repo
|
171
161
|
md = %r{(.+bundler/gems/.+-[a-f0-9]{7,12})}.match(spec.full_gem_path)
|
@@ -213,7 +203,7 @@ module Bundler
|
|
213
203
|
output
|
214
204
|
end
|
215
205
|
|
216
|
-
|
206
|
+
private
|
217
207
|
|
218
208
|
def prune_gem_cache(resolve, cache_path)
|
219
209
|
cached = Dir["#{cache_path}/*.gem"]
|