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
@@ -4,7 +4,6 @@ require 'rubygems/local_remote_options'
|
|
4
4
|
require 'rubygems/command'
|
5
5
|
|
6
6
|
class TestGemLocalRemoteOptions < Gem::TestCase
|
7
|
-
|
8
7
|
def setup
|
9
8
|
super
|
10
9
|
|
@@ -130,5 +129,4 @@ class TestGemLocalRemoteOptions < Gem::TestCase
|
|
130
129
|
|
131
130
|
assert_equal [@gem_repo], Gem.sources
|
132
131
|
end
|
133
|
-
|
134
132
|
end
|
@@ -3,7 +3,6 @@ require 'rubygems/test_case'
|
|
3
3
|
require 'rubygems/name_tuple'
|
4
4
|
|
5
5
|
class TestGemNameTuple < Gem::TestCase
|
6
|
-
|
7
6
|
def test_full_name
|
8
7
|
n = Gem::NameTuple.new "a", Gem::Version.new(0), "ruby"
|
9
8
|
assert_equal "a-0", n.full_name
|
@@ -40,5 +39,4 @@ class TestGemNameTuple < Gem::TestCase
|
|
40
39
|
|
41
40
|
assert_equal 1, a_p.<=>(a)
|
42
41
|
end
|
43
|
-
|
44
42
|
end
|
@@ -1,11 +1,9 @@
|
|
1
|
-
# coding: utf-8
|
2
1
|
# frozen_string_literal: true
|
3
2
|
|
4
3
|
require 'rubygems/package/tar_test_case'
|
5
4
|
require 'digest'
|
6
5
|
|
7
6
|
class TestGemPackage < Gem::Package::TarTestCase
|
8
|
-
|
9
7
|
def setup
|
10
8
|
super
|
11
9
|
|
@@ -93,20 +91,17 @@ class TestGemPackage < Gem::Package::TarTestCase
|
|
93
91
|
'SHA512' => {
|
94
92
|
'metadata.gz' => metadata_sha512,
|
95
93
|
'data.tar.gz' => Digest::SHA512.hexdigest(tar),
|
96
|
-
}
|
97
|
-
|
98
|
-
|
99
|
-
if defined?(OpenSSL::Digest)
|
100
|
-
expected['SHA256'] = {
|
94
|
+
},
|
95
|
+
'SHA256' => {
|
101
96
|
'metadata.gz' => metadata_sha256,
|
102
97
|
'data.tar.gz' => Digest::SHA256.hexdigest(tar),
|
103
|
-
}
|
104
|
-
|
98
|
+
},
|
99
|
+
}
|
105
100
|
|
106
101
|
assert_equal expected, YAML.load(checksums)
|
107
102
|
end
|
108
103
|
|
109
|
-
def
|
104
|
+
def test_build_time_uses_source_date_epoch
|
110
105
|
epoch = ENV["SOURCE_DATE_EPOCH"]
|
111
106
|
ENV["SOURCE_DATE_EPOCH"] = "123456789"
|
112
107
|
|
@@ -124,12 +119,10 @@ class TestGemPackage < Gem::Package::TarTestCase
|
|
124
119
|
ENV["SOURCE_DATE_EPOCH"] = epoch
|
125
120
|
end
|
126
121
|
|
127
|
-
def
|
122
|
+
def test_build_time_without_source_date_epoch
|
128
123
|
epoch = ENV["SOURCE_DATE_EPOCH"]
|
129
124
|
ENV["SOURCE_DATE_EPOCH"] = nil
|
130
125
|
|
131
|
-
start_time = Time.now.utc.to_i
|
132
|
-
|
133
126
|
spec = Gem::Specification.new 'build', '1'
|
134
127
|
spec.summary = 'build'
|
135
128
|
spec.authors = 'build'
|
@@ -138,14 +131,11 @@ class TestGemPackage < Gem::Package::TarTestCase
|
|
138
131
|
|
139
132
|
package = Gem::Package.new spec.file_name
|
140
133
|
|
141
|
-
end_time = Time.now.utc.to_i
|
142
|
-
|
143
134
|
assert_kind_of Time, package.build_time
|
144
135
|
|
145
136
|
build_time = package.build_time.to_i
|
146
137
|
|
147
|
-
|
148
|
-
assert_operator(build_time, :<=, end_time)
|
138
|
+
assert_equal Gem.source_date_epoch.to_i, build_time
|
149
139
|
ensure
|
150
140
|
ENV["SOURCE_DATE_EPOCH"] = epoch
|
151
141
|
end
|
@@ -156,7 +146,7 @@ class TestGemPackage < Gem::Package::TarTestCase
|
|
156
146
|
|
157
147
|
FileUtils.mkdir_p 'lib/empty'
|
158
148
|
|
159
|
-
File.open 'lib/code.rb',
|
149
|
+
File.open 'lib/code.rb', 'w' do |io|
|
160
150
|
io.write '# lib/code.rb'
|
161
151
|
end
|
162
152
|
|
@@ -190,7 +180,7 @@ class TestGemPackage < Gem::Package::TarTestCase
|
|
190
180
|
|
191
181
|
FileUtils.mkdir_p 'lib'
|
192
182
|
|
193
|
-
File.open 'lib/code.rb',
|
183
|
+
File.open 'lib/code.rb', 'w' do |io|
|
194
184
|
io.write '# lib/code.rb'
|
195
185
|
end
|
196
186
|
|
@@ -262,7 +252,7 @@ class TestGemPackage < Gem::Package::TarTestCase
|
|
262
252
|
end
|
263
253
|
|
264
254
|
def test_build_auto_signed
|
265
|
-
skip 'openssl is missing' unless
|
255
|
+
skip 'openssl is missing' unless Gem::HAVE_OPENSSL
|
266
256
|
|
267
257
|
FileUtils.mkdir_p File.join(Gem.user_home, '.gem')
|
268
258
|
|
@@ -305,7 +295,7 @@ class TestGemPackage < Gem::Package::TarTestCase
|
|
305
295
|
end
|
306
296
|
|
307
297
|
def test_build_auto_signed_encrypted_key
|
308
|
-
skip 'openssl is missing' unless
|
298
|
+
skip 'openssl is missing' unless Gem::HAVE_OPENSSL
|
309
299
|
|
310
300
|
FileUtils.mkdir_p File.join(Gem.user_home, '.gem')
|
311
301
|
|
@@ -374,7 +364,7 @@ class TestGemPackage < Gem::Package::TarTestCase
|
|
374
364
|
end
|
375
365
|
|
376
366
|
def test_build_signed
|
377
|
-
skip 'openssl is missing' unless
|
367
|
+
skip 'openssl is missing' unless Gem::HAVE_OPENSSL
|
378
368
|
|
379
369
|
spec = Gem::Specification.new 'build', '1'
|
380
370
|
spec.summary = 'build'
|
@@ -411,7 +401,7 @@ class TestGemPackage < Gem::Package::TarTestCase
|
|
411
401
|
end
|
412
402
|
|
413
403
|
def test_build_signed_encrypted_key
|
414
|
-
skip 'openssl is missing' unless
|
404
|
+
skip 'openssl is missing' unless Gem::HAVE_OPENSSL
|
415
405
|
|
416
406
|
spec = Gem::Specification.new 'build', '1'
|
417
407
|
spec.summary = 'build'
|
@@ -448,7 +438,7 @@ class TestGemPackage < Gem::Package::TarTestCase
|
|
448
438
|
end
|
449
439
|
|
450
440
|
def test_raw_spec
|
451
|
-
data_tgz = util_tar_gz {
|
441
|
+
data_tgz = util_tar_gz {}
|
452
442
|
|
453
443
|
gem = util_tar do |tar|
|
454
444
|
tar.add_file 'data.tar.gz', 0644 do |io|
|
@@ -495,7 +485,7 @@ class TestGemPackage < Gem::Package::TarTestCase
|
|
495
485
|
end
|
496
486
|
|
497
487
|
def test_extract_files_empty
|
498
|
-
data_tgz = util_tar_gz {
|
488
|
+
data_tgz = util_tar_gz {}
|
499
489
|
|
500
490
|
gem = util_tar do |tar|
|
501
491
|
tar.add_file 'data.tar.gz', 0644 do |io|
|
@@ -541,11 +531,11 @@ class TestGemPackage < Gem::Package::TarTestCase
|
|
541
531
|
package = Gem::Package.new @gem
|
542
532
|
|
543
533
|
tgz_io = util_tar_gz do |tar|
|
544
|
-
tar.add_file
|
534
|
+
tar.add_file 'relative.rb', 0644 do |io|
|
545
535
|
io.write 'hi'
|
546
536
|
end
|
547
537
|
|
548
|
-
tar.mkdir 'lib',
|
538
|
+
tar.mkdir 'lib', 0755
|
549
539
|
tar.add_symlink 'lib/foo.rb', '../relative.rb', 0644
|
550
540
|
end
|
551
541
|
|
@@ -611,6 +601,8 @@ class TestGemPackage < Gem::Package::TarTestCase
|
|
611
601
|
destination_user_subdir = File.join destination_user_dir, 'dir'
|
612
602
|
FileUtils.mkdir_p destination_user_subdir
|
613
603
|
|
604
|
+
skip "TMPDIR seems too long to add it as symlink into tar" if destination_user_dir.size > 90
|
605
|
+
|
614
606
|
tgz_io = util_tar_gz do |tar|
|
615
607
|
tar.add_symlink 'link', destination_user_dir, 16877
|
616
608
|
tar.add_symlink 'link/dir', '.', 16877
|
@@ -640,7 +632,7 @@ class TestGemPackage < Gem::Package::TarTestCase
|
|
640
632
|
tar.add_file 'lib/foo.rb', 0644 do |io|
|
641
633
|
io.write 'hi'
|
642
634
|
end
|
643
|
-
tar.mkdir 'lib/foo',
|
635
|
+
tar.mkdir 'lib/foo', 0755
|
644
636
|
end
|
645
637
|
|
646
638
|
package.extract_tar_gz tgz_io, @destination
|
@@ -934,8 +926,8 @@ class TestGemPackage < Gem::Package::TarTestCase
|
|
934
926
|
package.verify
|
935
927
|
end
|
936
928
|
|
937
|
-
assert_match %r
|
938
|
-
assert_match %r
|
929
|
+
assert_match %r{^No such file or directory}, e.message
|
930
|
+
assert_match %r{nonexistent.gem$}, e.message
|
939
931
|
end
|
940
932
|
|
941
933
|
def test_verify_duplicate_file
|
@@ -965,7 +957,7 @@ class TestGemPackage < Gem::Package::TarTestCase
|
|
965
957
|
end
|
966
958
|
|
967
959
|
def test_verify_security_policy
|
968
|
-
skip 'openssl is missing' unless
|
960
|
+
skip 'openssl is missing' unless Gem::HAVE_OPENSSL
|
969
961
|
|
970
962
|
package = Gem::Package.new @gem
|
971
963
|
package.security_policy = Gem::Security::HighSecurity
|
@@ -982,7 +974,7 @@ class TestGemPackage < Gem::Package::TarTestCase
|
|
982
974
|
end
|
983
975
|
|
984
976
|
def test_verify_security_policy_low_security
|
985
|
-
skip 'openssl is missing' unless
|
977
|
+
skip 'openssl is missing' unless Gem::HAVE_OPENSSL
|
986
978
|
|
987
979
|
@spec.cert_chain = [PUBLIC_CERT.to_pem]
|
988
980
|
@spec.signing_key = PRIVATE_KEY
|
@@ -1002,7 +994,7 @@ class TestGemPackage < Gem::Package::TarTestCase
|
|
1002
994
|
end
|
1003
995
|
|
1004
996
|
def test_verify_security_policy_checksum_missing
|
1005
|
-
skip 'openssl is missing' unless
|
997
|
+
skip 'openssl is missing' unless Gem::HAVE_OPENSSL
|
1006
998
|
|
1007
999
|
@spec.cert_chain = [PUBLIC_CERT.to_pem]
|
1008
1000
|
@spec.signing_key = PRIVATE_KEY
|
@@ -1023,7 +1015,7 @@ class TestGemPackage < Gem::Package::TarTestCase
|
|
1023
1015
|
bogus_data = Gem::Util.gzip 'hello'
|
1024
1016
|
fake_signer = Class.new do
|
1025
1017
|
def digest_name; 'SHA512'; end
|
1026
|
-
def digest_algorithm; Digest(:SHA512); end
|
1018
|
+
def digest_algorithm; Digest(:SHA512).new; end
|
1027
1019
|
def key; 'key'; end
|
1028
1020
|
def sign(*); 'fake_sig'; end
|
1029
1021
|
end
|
@@ -1073,11 +1065,22 @@ class TestGemPackage < Gem::Package::TarTestCase
|
|
1073
1065
|
|
1074
1066
|
package = Gem::Package.new @gem
|
1075
1067
|
|
1076
|
-
|
1077
|
-
|
1068
|
+
_, err = use_ui @ui do
|
1069
|
+
e = nil
|
1070
|
+
|
1071
|
+
out_err = capture_io do
|
1072
|
+
e = assert_raises ArgumentError do
|
1073
|
+
package.verify_entry entry
|
1074
|
+
end
|
1075
|
+
end
|
1076
|
+
|
1077
|
+
assert_equal "whatever", e.message
|
1078
|
+
assert_equal "full_name", e.backtrace_locations.first.label
|
1079
|
+
|
1080
|
+
out_err
|
1078
1081
|
end
|
1079
1082
|
|
1080
|
-
assert_equal "
|
1083
|
+
assert_equal "Exception while verifying #{@gem}\n", err
|
1081
1084
|
|
1082
1085
|
valid_metadata = ["metadata", "metadata.gz"]
|
1083
1086
|
valid_metadata.each do |vm|
|
@@ -1102,7 +1105,7 @@ class TestGemPackage < Gem::Package::TarTestCase
|
|
1102
1105
|
$bad_name = vm
|
1103
1106
|
|
1104
1107
|
entry = Object.new
|
1105
|
-
def entry.full_name() $bad_name
|
1108
|
+
def entry.full_name() $bad_name end
|
1106
1109
|
|
1107
1110
|
package = Gem::Package.new(@gem)
|
1108
1111
|
package.instance_variable_set(:@files, [])
|
@@ -1166,5 +1169,4 @@ class TestGemPackage < Gem::Package::TarTestCase
|
|
1166
1169
|
|
1167
1170
|
StringIO.new tgz_io.string
|
1168
1171
|
end
|
1169
|
-
|
1170
1172
|
end
|
@@ -5,7 +5,6 @@ unless Gem.java_platform? # jruby can't require the simple_gem file
|
|
5
5
|
require 'rubygems/simple_gem'
|
6
6
|
|
7
7
|
class TestGemPackageOld < Gem::TestCase
|
8
|
-
|
9
8
|
def setup
|
10
9
|
super
|
11
10
|
|
@@ -24,7 +23,7 @@ unless Gem.java_platform? # jruby can't require the simple_gem file
|
|
24
23
|
end
|
25
24
|
|
26
25
|
def test_contents_security_policy
|
27
|
-
skip 'openssl is missing' unless
|
26
|
+
skip 'openssl is missing' unless Gem::HAVE_OPENSSL
|
28
27
|
|
29
28
|
@package.security_policy = Gem::Security::AlmostNoSecurity
|
30
29
|
|
@@ -45,7 +44,7 @@ unless Gem.java_platform? # jruby can't require the simple_gem file
|
|
45
44
|
end
|
46
45
|
|
47
46
|
def test_extract_files_security_policy
|
48
|
-
skip 'openssl is missing' unless
|
47
|
+
skip 'openssl is missing' unless Gem::HAVE_OPENSSL
|
49
48
|
|
50
49
|
@package.security_policy = Gem::Security::AlmostNoSecurity
|
51
50
|
|
@@ -59,7 +58,7 @@ unless Gem.java_platform? # jruby can't require the simple_gem file
|
|
59
58
|
end
|
60
59
|
|
61
60
|
def test_spec_security_policy
|
62
|
-
skip 'openssl is missing' unless
|
61
|
+
skip 'openssl is missing' unless Gem::HAVE_OPENSSL
|
63
62
|
|
64
63
|
@package.security_policy = Gem::Security::AlmostNoSecurity
|
65
64
|
|
@@ -69,7 +68,7 @@ unless Gem.java_platform? # jruby can't require the simple_gem file
|
|
69
68
|
end
|
70
69
|
|
71
70
|
def test_verify
|
72
|
-
skip 'openssl is missing' unless
|
71
|
+
skip 'openssl is missing' unless Gem::HAVE_OPENSSL
|
73
72
|
|
74
73
|
assert @package.verify
|
75
74
|
|
@@ -87,6 +86,5 @@ unless Gem.java_platform? # jruby can't require the simple_gem file
|
|
87
86
|
'and cannot be verified',
|
88
87
|
e.message
|
89
88
|
end
|
90
|
-
|
91
89
|
end
|
92
90
|
end
|
@@ -3,7 +3,6 @@ require 'rubygems/package/tar_test_case'
|
|
3
3
|
require 'rubygems/package'
|
4
4
|
|
5
5
|
class TestGemPackageTarHeader < Gem::Package::TarTestCase
|
6
|
-
|
7
6
|
def setup
|
8
7
|
super
|
9
8
|
|
@@ -205,4 +204,22 @@ tjmather\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
|
|
205
204
|
assert_equal 6932, tar_header.checksum
|
206
205
|
end
|
207
206
|
|
207
|
+
def test_spaces_in_headers
|
208
|
+
stream = StringIO.new(
|
209
|
+
<<-EOF.dup.force_encoding('binary').split("\n").join
|
210
|
+
Access_Points_09202018.csv
|
211
|
+
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
|
212
|
+
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
|
213
|
+
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
|
214
|
+
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
|
215
|
+
\x00\x00100777 \x00 0 \x00 0 \x00 4357 13545040367 104501
|
216
|
+
\x000
|
217
|
+
EOF
|
218
|
+
)
|
219
|
+
|
220
|
+
tar_header = Gem::Package::TarHeader.from stream
|
221
|
+
|
222
|
+
assert_equal 0, tar_header.uid
|
223
|
+
assert_equal 0, tar_header.gid
|
224
|
+
end
|
208
225
|
end
|
@@ -3,7 +3,6 @@ require 'rubygems/package/tar_test_case'
|
|
3
3
|
require 'rubygems/package'
|
4
4
|
|
5
5
|
class TestGemPackageTarReader < Gem::Package::TarTestCase
|
6
|
-
|
7
6
|
def test_each_entry
|
8
7
|
tar = tar_dir_header "foo", "bar", 0, Time.now
|
9
8
|
tar << tar_file_header("bar", "baz", 0, 0, Time.now)
|
@@ -85,5 +84,4 @@ class TestGemPackageTarReader < Gem::Package::TarTestCase
|
|
85
84
|
ensure
|
86
85
|
io.close!
|
87
86
|
end
|
88
|
-
|
89
87
|
end
|
@@ -3,7 +3,6 @@ require 'rubygems/package/tar_test_case'
|
|
3
3
|
require 'rubygems/package'
|
4
4
|
|
5
5
|
class TestGemPackageTarReaderEntry < Gem::Package::TarTestCase
|
6
|
-
|
7
6
|
def setup
|
8
7
|
super
|
9
8
|
|
@@ -150,5 +149,4 @@ class TestGemPackageTarReaderEntry < Gem::Package::TarTestCase
|
|
150
149
|
|
151
150
|
assert_equal char, @entry.getc
|
152
151
|
end
|
153
|
-
|
154
152
|
end
|
@@ -4,10 +4,14 @@ require 'rubygems/package/tar_writer'
|
|
4
4
|
require 'minitest/mock'
|
5
5
|
|
6
6
|
class TestGemPackageTarWriter < Gem::Package::TarTestCase
|
7
|
-
|
8
7
|
def setup
|
9
8
|
super
|
10
9
|
|
10
|
+
# Setting `@default_source_date_epoch` to `nil` effectively resets the
|
11
|
+
# value used for `Gem.source_date_epoch` whenever `$SOURCE_DATE_EPOCH`
|
12
|
+
# is not set.
|
13
|
+
Gem.instance_variable_set(:'@default_source_date_epoch', nil)
|
14
|
+
|
11
15
|
@data = 'abcde12345'
|
12
16
|
@io = TempIO.new
|
13
17
|
@tar_writer = Gem::Package::TarWriter.new @io
|
@@ -67,7 +71,7 @@ class TestGemPackageTarWriter < Gem::Package::TarTestCase
|
|
67
71
|
end
|
68
72
|
|
69
73
|
def test_add_file_digest
|
70
|
-
digest_algorithms = Digest::SHA1, Digest::SHA512
|
74
|
+
digest_algorithms = Digest::SHA1.new, Digest::SHA512.new
|
71
75
|
|
72
76
|
Time.stub :now, Time.at(1458518157) do
|
73
77
|
digests = @tar_writer.add_file_digest 'x', 0644, digest_algorithms do |io|
|
@@ -90,7 +94,7 @@ class TestGemPackageTarWriter < Gem::Package::TarTestCase
|
|
90
94
|
end
|
91
95
|
|
92
96
|
def test_add_file_digest_multiple
|
93
|
-
digest_algorithms = [Digest::SHA1, Digest::SHA512]
|
97
|
+
digest_algorithms = [Digest::SHA1.new, Digest::SHA512.new]
|
94
98
|
|
95
99
|
Time.stub :now, Time.at(1458518157) do
|
96
100
|
digests = @tar_writer.add_file_digest 'x', 0644, digest_algorithms do |io|
|
@@ -113,7 +117,7 @@ class TestGemPackageTarWriter < Gem::Package::TarTestCase
|
|
113
117
|
end
|
114
118
|
|
115
119
|
def test_add_file_signer
|
116
|
-
skip 'openssl is missing' unless
|
120
|
+
skip 'openssl is missing' unless Gem::HAVE_OPENSSL
|
117
121
|
|
118
122
|
signer = Gem::Security::Signer.new PRIVATE_KEY, [PUBLIC_CERT]
|
119
123
|
|
@@ -197,7 +201,7 @@ class TestGemPackageTarWriter < Gem::Package::TarTestCase
|
|
197
201
|
end
|
198
202
|
|
199
203
|
def test_add_file_simple_data
|
200
|
-
@tar_writer.add_file_simple("lib/foo/bar", 0, 10) {
|
204
|
+
@tar_writer.add_file_simple("lib/foo/bar", 0, 10) {|f| f.write @data }
|
201
205
|
@tar_writer.flush
|
202
206
|
|
203
207
|
assert_equal @data + ("\0" * (512 - @data.size)),
|
@@ -325,5 +329,4 @@ class TestGemPackageTarWriter < Gem::Package::TarTestCase
|
|
325
329
|
end
|
326
330
|
assert_includes exception.message, name
|
327
331
|
end
|
328
|
-
|
329
332
|
end
|
@@ -1,22 +1,22 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
require 'rubygems/test_case'
|
3
3
|
require 'rubygems'
|
4
|
-
|
4
|
+
|
5
5
|
begin
|
6
6
|
require 'rubygems/package_task'
|
7
|
-
rescue LoadError
|
7
|
+
rescue LoadError => e
|
8
|
+
raise unless e.path == 'rake/packagetask'
|
8
9
|
end
|
9
10
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
super
|
11
|
+
unless defined?(Rake::PackageTask)
|
12
|
+
warn 'Skipping Gem::PackageTask tests. rake not found.'
|
13
|
+
end
|
14
14
|
|
15
|
-
|
15
|
+
class TestGemPackageTask < Gem::TestCase
|
16
|
+
def test_gem_package
|
17
|
+
original_rake_fileutils_verbosity = RakeFileUtils.verbose_flag
|
16
18
|
RakeFileUtils.verbose_flag = false
|
17
|
-
end
|
18
19
|
|
19
|
-
def test_gem_package
|
20
20
|
gem = Gem::Specification.new do |g|
|
21
21
|
g.name = "pkgr"
|
22
22
|
g.version = "1.2.3"
|
@@ -26,7 +26,9 @@ class TestGemPackageTask < Gem::TestCase
|
|
26
26
|
g.summary = 'summary'
|
27
27
|
end
|
28
28
|
|
29
|
-
|
29
|
+
Rake.application = Rake::Application.new
|
30
|
+
|
31
|
+
pkg = Gem::PackageTask.new(gem) do |p|
|
30
32
|
p.package_files << "y"
|
31
33
|
end
|
32
34
|
|
@@ -40,6 +42,38 @@ class TestGemPackageTask < Gem::TestCase
|
|
40
42
|
|
41
43
|
assert_path_exists 'pkg/pkgr-1.2.3.gem'
|
42
44
|
end
|
45
|
+
ensure
|
46
|
+
RakeFileUtils.verbose_flag = original_rake_fileutils_verbosity
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_gem_package_prints_to_stdout_by_default
|
50
|
+
gem = Gem::Specification.new do |g|
|
51
|
+
g.name = "pkgr"
|
52
|
+
g.version = "1.2.3"
|
53
|
+
|
54
|
+
g.authors = %w[author]
|
55
|
+
g.files = %w[x]
|
56
|
+
g.summary = 'summary'
|
57
|
+
end
|
58
|
+
|
59
|
+
_, err = capture_io do
|
60
|
+
Rake.application = Rake::Application.new
|
61
|
+
|
62
|
+
pkg = Gem::PackageTask.new(gem) do |p|
|
63
|
+
p.package_files << "y"
|
64
|
+
end
|
65
|
+
|
66
|
+
assert_equal %w[x y], pkg.package_files
|
67
|
+
|
68
|
+
Dir.chdir @tempdir do
|
69
|
+
FileUtils.touch 'x'
|
70
|
+
FileUtils.touch 'y'
|
71
|
+
|
72
|
+
Rake.application['package'].invoke
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
assert_empty err
|
43
77
|
end
|
44
78
|
|
45
79
|
def test_gem_package_with_current_platform
|
@@ -49,7 +83,7 @@ class TestGemPackageTask < Gem::TestCase
|
|
49
83
|
g.files = Rake::FileList["x"].resolve
|
50
84
|
g.platform = Gem::Platform::CURRENT
|
51
85
|
end
|
52
|
-
pkg = Gem::PackageTask.new(gem)
|
86
|
+
pkg = Gem::PackageTask.new(gem) do |p|
|
53
87
|
p.package_files << "y"
|
54
88
|
end
|
55
89
|
assert_equal ["x", "y"], pkg.package_files
|
@@ -62,7 +96,7 @@ class TestGemPackageTask < Gem::TestCase
|
|
62
96
|
g.files = Rake::FileList["x"].resolve
|
63
97
|
g.platform = Gem::Platform::RUBY
|
64
98
|
end
|
65
|
-
pkg = Gem::PackageTask.new(gem)
|
99
|
+
pkg = Gem::PackageTask.new(gem) do |p|
|
66
100
|
p.package_files << "y"
|
67
101
|
end
|
68
102
|
assert_equal ["x", "y"], pkg.package_files
|
@@ -80,5 +114,4 @@ class TestGemPackageTask < Gem::TestCase
|
|
80
114
|
|
81
115
|
assert_equal 'pkg/nokogiri-1.5.0-java', pkg.package_dir_path
|
82
116
|
end
|
83
|
-
|
84
117
|
end if defined?(Rake::PackageTask)
|