rubygems-update 3.1.2 → 3.2.6
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/{History.txt → CHANGELOG.md} +756 -489
- data/CODE_OF_CONDUCT.md +55 -19
- data/CONTRIBUTING.md +25 -11
- data/Manifest.txt +75 -104
- data/POLICIES.md +6 -12
- data/README.md +5 -5
- data/Rakefile +64 -92
- data/bin/update_rubygems +1 -1
- data/bundler/CHANGELOG.md +1636 -1422
- data/bundler/README.md +6 -8
- data/bundler/UPGRADING.md +18 -32
- data/bundler/bundler.gemspec +4 -4
- data/bundler/exe/bundle +3 -0
- data/bundler/lib/bundler.rb +32 -8
- data/bundler/lib/bundler/build_metadata.rb +4 -12
- data/bundler/lib/bundler/cli.rb +55 -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 +86 -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 -13
- data/bundler/lib/bundler/definition.rb +66 -82
- data/bundler/lib/bundler/dep_proxy.rb +16 -9
- 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 +4 -4
- 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 → lib/bundler/man}/bundle-add.1 +1 -1
- data/bundler/{man/bundle-add.ronn → lib/bundler/man/bundle-add.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-binstubs.1 +5 -3
- data/bundler/{man/bundle-binstubs.ronn → lib/bundler/man/bundle-binstubs.1.ronn} +2 -4
- data/bundler/{man → lib/bundler/man}/bundle-cache.1 +1 -1
- data/bundler/{man/bundle-cache.ronn → lib/bundler/man/bundle-cache.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-check.1 +1 -1
- data/bundler/{man/bundle-check.ronn → lib/bundler/man/bundle-check.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-clean.1 +1 -1
- data/bundler/{man/bundle-clean.ronn → lib/bundler/man/bundle-clean.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-config.1 +16 -25
- data/bundler/{man/bundle-config.ronn → lib/bundler/man/bundle-config.1.ronn} +19 -30
- data/bundler/{man → lib/bundler/man}/bundle-doctor.1 +1 -1
- data/bundler/{man/bundle-doctor.ronn → lib/bundler/man/bundle-doctor.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-exec.1 +1 -1
- data/bundler/{man/bundle-exec.ronn → lib/bundler/man/bundle-exec.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-gem.1 +25 -3
- data/bundler/{man/bundle-gem.ronn → lib/bundler/man/bundle-gem.1.ronn} +30 -7
- data/bundler/{man → lib/bundler/man}/bundle-info.1 +1 -1
- data/bundler/{man/bundle-info.ronn → lib/bundler/man/bundle-info.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-init.1 +1 -1
- data/bundler/{man/bundle-init.ronn → lib/bundler/man/bundle-init.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-inject.1 +1 -1
- data/bundler/{man/bundle-inject.ronn → lib/bundler/man/bundle-inject.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-install.1 +30 -3
- data/bundler/{man/bundle-install.ronn → lib/bundler/man/bundle-install.1.ronn} +25 -3
- data/bundler/{man → lib/bundler/man}/bundle-list.1 +7 -7
- data/bundler/{man/bundle-list.ronn → lib/bundler/man/bundle-list.1.ronn} +6 -6
- data/bundler/{man → lib/bundler/man}/bundle-lock.1 +1 -1
- data/bundler/{man/bundle-lock.ronn → lib/bundler/man/bundle-lock.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-open.1 +1 -1
- data/bundler/{man/bundle-open.ronn → lib/bundler/man/bundle-open.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-outdated.1 +1 -1
- data/bundler/{man/bundle-outdated.ronn → lib/bundler/man/bundle-outdated.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-platform.1 +1 -1
- data/bundler/{man/bundle-platform.ronn → lib/bundler/man/bundle-platform.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-pristine.1 +1 -1
- data/bundler/{man/bundle-pristine.ronn → lib/bundler/man/bundle-pristine.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-remove.1 +1 -1
- data/bundler/{man/bundle-remove.ronn → lib/bundler/man/bundle-remove.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-show.1 +1 -1
- data/bundler/{man/bundle-show.ronn → lib/bundler/man/bundle-show.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-update.1 +1 -1
- data/bundler/{man/bundle-update.ronn → lib/bundler/man/bundle-update.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-viz.1 +1 -1
- data/bundler/{man/bundle-viz.ronn → lib/bundler/man/bundle-viz.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle.1 +1 -1
- data/bundler/{man/bundle.ronn → lib/bundler/man/bundle.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/gemfile.5 +4 -4
- data/bundler/{man → lib/bundler/man}/gemfile.5.ronn +4 -4
- data/bundler/{man → lib/bundler/man}/index.txt +0 -0
- 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 +43 -19
- data/bundler/lib/bundler/resolver/spec_group.rb +39 -24
- data/bundler/lib/bundler/retry.rb +1 -1
- data/bundler/lib/bundler/ruby_version.rb +1 -1
- data/bundler/lib/bundler/rubygems_ext.rb +69 -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 +23 -21
- data/bundler/lib/bundler/source/git/git_proxy.rb +82 -80
- data/bundler/lib/bundler/source/path.rb +7 -3
- data/bundler/lib/bundler/source/path/installer.rb +10 -10
- data/bundler/lib/bundler/source/rubygems.rb +23 -17
- 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 +8 -10
- 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 +15 -7
- data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +13 -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 +48 -46
- 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/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 +101 -74
- 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 +21 -39
- data/lib/rubygems/ext/cmake_builder.rb +6 -9
- data/lib/rubygems/ext/configure_builder.rb +5 -8
- data/lib/rubygems/ext/ext_conf_builder.rb +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 -16
- 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 +14 -29
- 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 +21 -22
- 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 +2 -4
- 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 +29 -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 +122 -131
- 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 +120 -134
- 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 +3 -3
- data/setup.rb +2 -7
- data/test/rubygems/data/null-required-rubygems-version.gemspec.rz +0 -0
- 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 +156 -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 +160 -135
- 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 +116 -239
- 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 +50 -47
- data/test/rubygems/test_gem_ext_cmake_builder.rb +16 -25
- data/test/rubygems/test_gem_ext_configure_builder.rb +6 -22
- 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 +71 -6
- data/test/rubygems/test_gem_rdoc.rb +0 -2
- data/test/rubygems/test_gem_remote_fetcher.rb +169 -212
- 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 +43 -3
- 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 +27 -6
- 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 +188 -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 +79 -133
- 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
data/lib/rubygems/deprecate.rb
CHANGED
@@ -41,6 +41,10 @@ module Gem::Deprecate
|
|
41
41
|
Gem::Deprecate.skip = original
|
42
42
|
end
|
43
43
|
|
44
|
+
def self.next_rubygems_major_version # :nodoc:
|
45
|
+
Gem::Version.new(Gem.rubygems_version.segments.first).bump
|
46
|
+
end
|
47
|
+
|
44
48
|
##
|
45
49
|
# Simple deprecation method that deprecates +name+ by wrapping it up
|
46
50
|
# in a dummy method. It warns on each call to the dummy method
|
@@ -65,6 +69,47 @@ module Gem::Deprecate
|
|
65
69
|
end
|
66
70
|
end
|
67
71
|
|
68
|
-
|
72
|
+
##
|
73
|
+
# Simple deprecation method that deprecates +name+ by wrapping it up
|
74
|
+
# in a dummy method. It warns on each call to the dummy method
|
75
|
+
# telling the user of +repl+ (unless +repl+ is :none) and the
|
76
|
+
# Rubygems version that it is planned to go away.
|
77
|
+
|
78
|
+
def rubygems_deprecate(name, replacement=:none)
|
79
|
+
class_eval do
|
80
|
+
old = "_deprecated_#{name}"
|
81
|
+
alias_method old, name
|
82
|
+
define_method name do |*args, &block|
|
83
|
+
klass = self.kind_of? Module
|
84
|
+
target = klass ? "#{self}." : "#{self.class}#"
|
85
|
+
msg = [ "NOTE: #{target}#{name} is deprecated",
|
86
|
+
replacement == :none ? " with no replacement" : "; use #{replacement} instead",
|
87
|
+
". It will be removed in Rubygems #{Gem::Deprecate.next_rubygems_major_version}",
|
88
|
+
"\n#{target}#{name} called from #{Gem.location_of_caller.join(":")}",
|
89
|
+
]
|
90
|
+
warn "#{msg.join}." unless Gem::Deprecate.skip
|
91
|
+
send old, *args, &block
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
# Deprecation method to deprecate Rubygems commands
|
97
|
+
def rubygems_deprecate_command
|
98
|
+
class_eval do
|
99
|
+
define_method "deprecated?" do
|
100
|
+
true
|
101
|
+
end
|
102
|
+
|
103
|
+
define_method "deprecation_warning" do
|
104
|
+
msg = [ "#{self.command} command is deprecated",
|
105
|
+
". It will be removed in Rubygems #{Gem::Deprecate.next_rubygems_major_version}.\n",
|
106
|
+
]
|
107
|
+
|
108
|
+
alert_warning "#{msg.join}" unless Gem::Deprecate.skip
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
module_function :rubygems_deprecate, :rubygems_deprecate_command, :skip_during
|
69
114
|
|
70
115
|
end
|
data/lib/rubygems/doctor.rb
CHANGED
@@ -12,7 +12,6 @@ require 'rubygems/user_interaction'
|
|
12
12
|
# removing the bogus specification.
|
13
13
|
|
14
14
|
class Gem::Doctor
|
15
|
-
|
16
15
|
include Gem::UserInteraction
|
17
16
|
|
18
17
|
##
|
@@ -26,11 +25,12 @@ class Gem::Doctor
|
|
26
25
|
['doc', ''],
|
27
26
|
['extensions', ''],
|
28
27
|
['gems', ''],
|
28
|
+
['plugins', ''],
|
29
29
|
].freeze
|
30
30
|
|
31
31
|
missing =
|
32
32
|
Gem::REPOSITORY_SUBDIRECTORIES.sort -
|
33
|
-
REPOSITORY_EXTENSION_MAP.map {
|
33
|
+
REPOSITORY_EXTENSION_MAP.map {|(k,_)| k }.sort
|
34
34
|
|
35
35
|
raise "Update REPOSITORY_EXTENSION_MAP, missing: #{missing.join ', '}" unless
|
36
36
|
missing.empty?
|
@@ -52,7 +52,7 @@ class Gem::Doctor
|
|
52
52
|
# Specs installed in this gem repository
|
53
53
|
|
54
54
|
def installed_specs # :nodoc:
|
55
|
-
@installed_specs ||= Gem::Specification.map {
|
55
|
+
@installed_specs ||= Gem::Specification.map {|s| s.full_name }
|
56
56
|
end
|
57
57
|
|
58
58
|
##
|
@@ -112,6 +112,7 @@ class Gem::Doctor
|
|
112
112
|
next if installed_specs.include? basename
|
113
113
|
next if /^rubygems-\d/ =~ basename
|
114
114
|
next if 'specifications' == sub_directory and 'default' == basename
|
115
|
+
next if 'plugins' == sub_directory and Gem.plugin_suffix_regexp =~ basename
|
115
116
|
|
116
117
|
type = File.directory?(child) ? 'directory' : 'file'
|
117
118
|
|
@@ -127,5 +128,4 @@ class Gem::Doctor
|
|
127
128
|
rescue Errno::ENOENT
|
128
129
|
# ignore
|
129
130
|
end
|
130
|
-
|
131
131
|
end
|
data/lib/rubygems/errors.rb
CHANGED
@@ -13,13 +13,11 @@ module Gem
|
|
13
13
|
# already activated gems or that RubyGems is otherwise unable to activate.
|
14
14
|
|
15
15
|
class LoadError < ::LoadError
|
16
|
-
|
17
16
|
# Name of gem
|
18
17
|
attr_accessor :name
|
19
18
|
|
20
19
|
# Version requirement of gem
|
21
20
|
attr_accessor :requirement
|
22
|
-
|
23
21
|
end
|
24
22
|
|
25
23
|
##
|
@@ -27,15 +25,15 @@ module Gem
|
|
27
25
|
# system. Instead of rescuing from this class, make sure to rescue from the
|
28
26
|
# superclass Gem::LoadError to catch all types of load errors.
|
29
27
|
class MissingSpecError < Gem::LoadError
|
30
|
-
|
31
|
-
def initialize(name, requirement)
|
28
|
+
def initialize(name, requirement, extra_message=nil)
|
32
29
|
@name = name
|
33
30
|
@requirement = requirement
|
31
|
+
@extra_message = extra_message
|
34
32
|
end
|
35
33
|
|
36
34
|
def message # :nodoc:
|
37
35
|
build_message +
|
38
|
-
"Checked in 'GEM_PATH=#{Gem.path.join(File::PATH_SEPARATOR)}', execute `gem env` for more information"
|
36
|
+
"Checked in 'GEM_PATH=#{Gem.path.join(File::PATH_SEPARATOR)}' #{@extra_message}, execute `gem env` for more information"
|
39
37
|
end
|
40
38
|
|
41
39
|
private
|
@@ -44,7 +42,6 @@ module Gem
|
|
44
42
|
total = Gem::Specification.stubs.size
|
45
43
|
"Could not find '#{name}' (#{requirement}) among #{total} total gem(s)\n"
|
46
44
|
end
|
47
|
-
|
48
45
|
end
|
49
46
|
|
50
47
|
##
|
@@ -52,7 +49,6 @@ module Gem
|
|
52
49
|
# not the requested version. Instead of rescuing from this class, make sure to
|
53
50
|
# rescue from the superclass Gem::LoadError to catch all types of load errors.
|
54
51
|
class MissingSpecVersionError < MissingSpecError
|
55
|
-
|
56
52
|
attr_reader :specs
|
57
53
|
|
58
54
|
def initialize(name, requirement, specs)
|
@@ -69,13 +65,11 @@ module Gem
|
|
69
65
|
names = specs.map(&:full_name)
|
70
66
|
"Could not find '#{name}' (#{requirement}) - did find: [#{names.join ','}]\n"
|
71
67
|
end
|
72
|
-
|
73
68
|
end
|
74
69
|
|
75
70
|
# Raised when there are conflicting gem specs loaded
|
76
71
|
|
77
72
|
class ConflictError < LoadError
|
78
|
-
|
79
73
|
##
|
80
74
|
# A Hash mapping conflicting specifications to the dependencies that
|
81
75
|
# caused the conflict
|
@@ -100,7 +94,6 @@ module Gem
|
|
100
94
|
|
101
95
|
super("Unable to activate #{target.full_name}, because #{reason}")
|
102
96
|
end
|
103
|
-
|
104
97
|
end
|
105
98
|
|
106
99
|
class ErrorReason; end
|
@@ -112,7 +105,6 @@ module Gem
|
|
112
105
|
# in figuring out why a gem couldn't be installed.
|
113
106
|
#
|
114
107
|
class PlatformMismatch < ErrorReason
|
115
|
-
|
116
108
|
##
|
117
109
|
# the name of the gem
|
118
110
|
attr_reader :name
|
@@ -150,7 +142,6 @@ module Gem
|
|
150
142
|
@platforms.size == 1 ? '' : 's',
|
151
143
|
@platforms.join(' ,')]
|
152
144
|
end
|
153
|
-
|
154
145
|
end
|
155
146
|
|
156
147
|
##
|
@@ -158,7 +149,6 @@ module Gem
|
|
158
149
|
# data from a source
|
159
150
|
|
160
151
|
class SourceFetchProblem < ErrorReason
|
161
|
-
|
162
152
|
##
|
163
153
|
# Creates a new SourceFetchProblem for the given +source+ and +error+.
|
164
154
|
|
@@ -189,6 +179,5 @@ module Gem
|
|
189
179
|
# The "exception" alias allows you to call raise on a SourceFetchProblem.
|
190
180
|
|
191
181
|
alias exception error
|
192
|
-
|
193
182
|
end
|
194
183
|
end
|
data/lib/rubygems/exceptions.rb
CHANGED
@@ -5,18 +5,7 @@ require 'rubygems/deprecate'
|
|
5
5
|
##
|
6
6
|
# Base exception class for RubyGems. All exception raised by RubyGems are a
|
7
7
|
# subclass of this one.
|
8
|
-
class Gem::Exception < RuntimeError
|
9
|
-
|
10
|
-
##
|
11
|
-
#--
|
12
|
-
# TODO: remove in RubyGems 4, nobody sets this
|
13
|
-
|
14
|
-
attr_accessor :source_exception # :nodoc:
|
15
|
-
|
16
|
-
extend Gem::Deprecate
|
17
|
-
deprecate :source_exception, :none, 2018, 12
|
18
|
-
|
19
|
-
end
|
8
|
+
class Gem::Exception < RuntimeError; end
|
20
9
|
|
21
10
|
class Gem::CommandLineError < Gem::Exception; end
|
22
11
|
|
@@ -30,7 +19,6 @@ class Gem::DependencyRemovalException < Gem::Exception; end
|
|
30
19
|
# and #conflicting_dependencies
|
31
20
|
|
32
21
|
class Gem::DependencyResolutionError < Gem::DependencyError
|
33
|
-
|
34
22
|
attr_reader :conflict
|
35
23
|
|
36
24
|
def initialize(conflict)
|
@@ -43,25 +31,20 @@ class Gem::DependencyResolutionError < Gem::DependencyError
|
|
43
31
|
def conflicting_dependencies
|
44
32
|
@conflict.conflicting_dependencies
|
45
33
|
end
|
46
|
-
|
47
34
|
end
|
48
35
|
|
49
36
|
##
|
50
37
|
# Raised when attempting to uninstall a gem that isn't in GEM_HOME.
|
51
38
|
|
52
39
|
class Gem::GemNotInHomeException < Gem::Exception
|
53
|
-
|
54
40
|
attr_accessor :spec
|
55
|
-
|
56
41
|
end
|
57
42
|
|
58
43
|
###
|
59
44
|
# Raised when removing a gem with the uninstall command fails
|
60
45
|
|
61
46
|
class Gem::UninstallError < Gem::Exception
|
62
|
-
|
63
47
|
attr_accessor :spec
|
64
|
-
|
65
48
|
end
|
66
49
|
|
67
50
|
class Gem::DocumentError < Gem::Exception; end
|
@@ -75,7 +58,6 @@ class Gem::EndOfYAMLException < Gem::Exception; end
|
|
75
58
|
# operating on the given directory.
|
76
59
|
|
77
60
|
class Gem::FilePermissionError < Gem::Exception
|
78
|
-
|
79
61
|
attr_reader :directory
|
80
62
|
|
81
63
|
def initialize(directory)
|
@@ -83,15 +65,12 @@ class Gem::FilePermissionError < Gem::Exception
|
|
83
65
|
|
84
66
|
super "You don't have write permissions for the #{directory} directory."
|
85
67
|
end
|
86
|
-
|
87
68
|
end
|
88
69
|
|
89
70
|
##
|
90
71
|
# Used to raise parsing and loading errors
|
91
72
|
class Gem::FormatException < Gem::Exception
|
92
|
-
|
93
73
|
attr_accessor :file_path
|
94
|
-
|
95
74
|
end
|
96
75
|
|
97
76
|
class Gem::GemNotFoundException < Gem::Exception; end
|
@@ -100,7 +79,6 @@ class Gem::GemNotFoundException < Gem::Exception; end
|
|
100
79
|
# Raised by the DependencyInstaller when a specific gem cannot be found
|
101
80
|
|
102
81
|
class Gem::SpecificGemNotFoundException < Gem::GemNotFoundException
|
103
|
-
|
104
82
|
##
|
105
83
|
# Creates a new SpecificGemNotFoundException for a gem with the given +name+
|
106
84
|
# and +version+. Any +errors+ encountered when attempting to find the gem
|
@@ -128,7 +106,6 @@ class Gem::SpecificGemNotFoundException < Gem::GemNotFoundException
|
|
128
106
|
# Errors encountered attempting to find the gem.
|
129
107
|
|
130
108
|
attr_reader :errors
|
131
|
-
|
132
109
|
end
|
133
110
|
|
134
111
|
##
|
@@ -136,7 +113,6 @@ end
|
|
136
113
|
# inability to find a valid possible spec for a request.
|
137
114
|
|
138
115
|
class Gem::ImpossibleDependenciesError < Gem::Exception
|
139
|
-
|
140
116
|
attr_reader :conflicts
|
141
117
|
attr_reader :request
|
142
118
|
|
@@ -164,17 +140,14 @@ class Gem::ImpossibleDependenciesError < Gem::Exception
|
|
164
140
|
def dependency
|
165
141
|
@request.dependency
|
166
142
|
end
|
167
|
-
|
168
143
|
end
|
169
144
|
|
170
145
|
class Gem::InstallError < Gem::Exception; end
|
171
146
|
class Gem::RuntimeRequirementNotMetError < Gem::InstallError
|
172
|
-
|
173
147
|
attr_accessor :suggestion
|
174
148
|
def message
|
175
149
|
[suggestion, super].compact.join("\n\t")
|
176
150
|
end
|
177
|
-
|
178
151
|
end
|
179
152
|
|
180
153
|
##
|
@@ -216,7 +189,6 @@ class Gem::VerificationError < Gem::Exception; end
|
|
216
189
|
# exit_code
|
217
190
|
|
218
191
|
class Gem::SystemExitException < SystemExit
|
219
|
-
|
220
192
|
##
|
221
193
|
# The exit code for the process
|
222
194
|
|
@@ -230,7 +202,6 @@ class Gem::SystemExitException < SystemExit
|
|
230
202
|
|
231
203
|
super "Exiting RubyGems with exit_code #{exit_code}"
|
232
204
|
end
|
233
|
-
|
234
205
|
end
|
235
206
|
|
236
207
|
##
|
@@ -238,7 +209,6 @@ end
|
|
238
209
|
# there is no spec.
|
239
210
|
|
240
211
|
class Gem::UnsatisfiableDependencyError < Gem::DependencyError
|
241
|
-
|
242
212
|
##
|
243
213
|
# The unsatisfiable dependency. This is a
|
244
214
|
# Gem::Resolver::DependencyRequest, not a Gem::Dependency
|
@@ -256,7 +226,7 @@ class Gem::UnsatisfiableDependencyError < Gem::DependencyError
|
|
256
226
|
|
257
227
|
def initialize(dep, platform_mismatch=nil)
|
258
228
|
if platform_mismatch and !platform_mismatch.empty?
|
259
|
-
plats = platform_mismatch.map {
|
229
|
+
plats = platform_mismatch.map {|x| x.platform.to_s }.sort.uniq
|
260
230
|
super "Unable to resolve dependency: No match for '#{dep}' on this platform. Found: #{plats.join(', ')}"
|
261
231
|
else
|
262
232
|
if dep.explicit?
|
@@ -283,7 +253,6 @@ class Gem::UnsatisfiableDependencyError < Gem::DependencyError
|
|
283
253
|
def version
|
284
254
|
@dependency.requirement
|
285
255
|
end
|
286
|
-
|
287
256
|
end
|
288
257
|
|
289
258
|
##
|
data/lib/rubygems/ext.rb
CHANGED
@@ -10,9 +10,9 @@
|
|
10
10
|
|
11
11
|
module Gem::Ext; end
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
13
|
+
require_relative 'ext/build_error'
|
14
|
+
require_relative 'ext/builder'
|
15
|
+
require_relative 'ext/configure_builder'
|
16
|
+
require_relative 'ext/ext_conf_builder'
|
17
|
+
require_relative 'ext/rake_builder'
|
18
|
+
require_relative 'ext/cmake_builder'
|
data/lib/rubygems/ext/builder.rb
CHANGED
@@ -5,20 +5,11 @@
|
|
5
5
|
# See LICENSE.txt for permissions.
|
6
6
|
#++
|
7
7
|
|
8
|
-
|
8
|
+
require_relative '../user_interaction'
|
9
9
|
|
10
10
|
class Gem::Ext::Builder
|
11
|
-
|
12
11
|
include Gem::UserInteraction
|
13
12
|
|
14
|
-
##
|
15
|
-
# The builder shells-out to run various commands after changing the
|
16
|
-
# directory. This means multiple installations cannot be allowed to build
|
17
|
-
# extensions in parallel as they may change each other's directories leading
|
18
|
-
# to broken extensions or failed installations.
|
19
|
-
|
20
|
-
CHDIR_MUTEX = Mutex.new # :nodoc:
|
21
|
-
|
22
13
|
attr_accessor :build_args # :nodoc:
|
23
14
|
|
24
15
|
def self.class_name
|
@@ -26,8 +17,8 @@ class Gem::Ext::Builder
|
|
26
17
|
$1.downcase
|
27
18
|
end
|
28
19
|
|
29
|
-
def self.make(dest_path, results)
|
30
|
-
unless File.exist? 'Makefile'
|
20
|
+
def self.make(dest_path, results, make_dir = Dir.pwd)
|
21
|
+
unless File.exist? File.join(make_dir, 'Makefile')
|
31
22
|
raise Gem::InstallError, 'Makefile not found'
|
32
23
|
end
|
33
24
|
|
@@ -37,38 +28,41 @@ class Gem::Ext::Builder
|
|
37
28
|
unless make_program
|
38
29
|
make_program = (/mswin/ =~ RUBY_PLATFORM) ? 'nmake' : 'make'
|
39
30
|
end
|
31
|
+
make_program = Shellwords.split(make_program)
|
40
32
|
|
41
|
-
destdir = '
|
33
|
+
destdir = 'DESTDIR=%s' % ENV['DESTDIR']
|
42
34
|
|
43
35
|
['clean', '', 'install'].each do |target|
|
44
36
|
# Pass DESTDIR via command line to override what's in MAKEFLAGS
|
45
37
|
cmd = [
|
46
|
-
make_program,
|
38
|
+
*make_program,
|
47
39
|
destdir,
|
48
|
-
target
|
49
|
-
].
|
40
|
+
target,
|
41
|
+
].reject(&:empty?)
|
50
42
|
begin
|
51
|
-
run(cmd, results, "make #{target}".rstrip)
|
43
|
+
run(cmd, results, "make #{target}".rstrip, make_dir)
|
52
44
|
rescue Gem::InstallError
|
53
45
|
raise unless target == 'clean' # ignore clean failure
|
54
46
|
end
|
55
47
|
end
|
56
48
|
end
|
57
49
|
|
58
|
-
def self.run(command, results, command_name = nil)
|
50
|
+
def self.run(command, results, command_name = nil, dir = Dir.pwd)
|
59
51
|
verbose = Gem.configuration.really_verbose
|
60
52
|
|
61
53
|
begin
|
62
54
|
rubygems_gemdeps, ENV['RUBYGEMS_GEMDEPS'] = ENV['RUBYGEMS_GEMDEPS'], nil
|
63
55
|
if verbose
|
64
|
-
puts("current directory: #{
|
56
|
+
puts("current directory: #{dir}")
|
65
57
|
p(command)
|
66
58
|
end
|
67
|
-
results << "current directory: #{
|
68
|
-
results <<
|
59
|
+
results << "current directory: #{dir}"
|
60
|
+
results << command.shelljoin
|
69
61
|
|
70
62
|
require "open3"
|
71
|
-
|
63
|
+
# Set $SOURCE_DATE_EPOCH for the subprocess.
|
64
|
+
env = {'SOURCE_DATE_EPOCH' => Gem.source_date_epoch_string}
|
65
|
+
output, status = Open3.capture2e(env, *command, :chdir => dir)
|
72
66
|
if verbose
|
73
67
|
puts output
|
74
68
|
else
|
@@ -160,22 +154,10 @@ EOF
|
|
160
154
|
begin
|
161
155
|
FileUtils.mkdir_p dest_path
|
162
156
|
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
results = builder.build(extension, dest_path,
|
168
|
-
results, @build_args, lib_dir)
|
169
|
-
|
170
|
-
verbose { results.join("\n") }
|
171
|
-
ensure
|
172
|
-
begin
|
173
|
-
Dir.chdir pwd
|
174
|
-
rescue SystemCallError
|
175
|
-
Dir.chdir dest_path
|
176
|
-
end
|
177
|
-
end
|
178
|
-
end
|
157
|
+
results = builder.build(extension, dest_path,
|
158
|
+
results, @build_args, lib_dir, extension_dir)
|
159
|
+
|
160
|
+
verbose { results.join("\n") }
|
179
161
|
|
180
162
|
write_gem_make_out results.join "\n"
|
181
163
|
rescue => e
|
@@ -200,6 +182,7 @@ EOF
|
|
200
182
|
|
201
183
|
dest_path = @spec.extension_dir
|
202
184
|
|
185
|
+
require "fileutils"
|
203
186
|
FileUtils.rm_f @spec.gem_build_complete_path
|
204
187
|
|
205
188
|
@spec.extensions.each do |extension|
|
@@ -225,5 +208,4 @@ EOF
|
|
225
208
|
|
226
209
|
destination
|
227
210
|
end
|
228
|
-
|
229
211
|
end
|