rubygems-update 3.1.6 → 3.3.22
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} +1452 -514
- data/CODE_OF_CONDUCT.md +55 -19
- data/CONTRIBUTING.md +74 -27
- data/Manifest.txt +154 -117
- data/POLICIES.md +27 -19
- data/README.md +10 -8
- data/UPGRADING.md +5 -81
- data/bin/gem +3 -8
- data/bin/update_rubygems +5 -5
- data/bundler/CHANGELOG.md +2358 -1430
- data/bundler/README.md +7 -9
- data/bundler/UPGRADING.md +27 -34
- data/bundler/bundler.gemspec +8 -11
- data/bundler/exe/bundle +10 -8
- data/bundler/exe/bundler +1 -1
- data/bundler/lib/bundler/.document +1 -0
- data/bundler/lib/bundler/build_metadata.rb +4 -12
- data/bundler/lib/bundler/cli/add.rb +1 -1
- data/bundler/lib/bundler/cli/binstubs.rb +6 -2
- data/bundler/lib/bundler/cli/cache.rb +3 -8
- data/bundler/lib/bundler/cli/check.rb +4 -2
- data/bundler/lib/bundler/cli/clean.rb +1 -1
- data/bundler/lib/bundler/cli/common.rb +31 -3
- data/bundler/lib/bundler/cli/config.rb +10 -1
- data/bundler/lib/bundler/cli/console.rb +1 -1
- data/bundler/lib/bundler/cli/doctor.rb +25 -6
- data/bundler/lib/bundler/cli/exec.rb +5 -10
- data/bundler/lib/bundler/cli/fund.rb +36 -0
- data/bundler/lib/bundler/cli/gem.rb +219 -28
- data/bundler/lib/bundler/cli/info.rb +38 -6
- data/bundler/lib/bundler/cli/init.rb +3 -3
- data/bundler/lib/bundler/cli/inject.rb +1 -1
- data/bundler/lib/bundler/cli/install.rb +25 -54
- data/bundler/lib/bundler/cli/issue.rb +5 -4
- data/bundler/lib/bundler/cli/list.rb +19 -11
- data/bundler/lib/bundler/cli/lock.rb +5 -1
- data/bundler/lib/bundler/cli/open.rb +1 -2
- data/bundler/lib/bundler/cli/outdated.rb +105 -76
- data/bundler/lib/bundler/cli/platform.rb +2 -2
- data/bundler/lib/bundler/cli/plugin.rb +10 -0
- data/bundler/lib/bundler/cli/pristine.rb +5 -0
- data/bundler/lib/bundler/cli/remove.rb +1 -2
- data/bundler/lib/bundler/cli/show.rb +2 -2
- data/bundler/lib/bundler/cli/update.rb +20 -9
- data/bundler/lib/bundler/cli.rb +106 -83
- data/bundler/lib/bundler/compact_index_client/cache.rb +6 -23
- data/bundler/lib/bundler/compact_index_client/gem_parser.rb +28 -0
- data/bundler/lib/bundler/compact_index_client/updater.rb +29 -25
- data/bundler/lib/bundler/compact_index_client.rb +3 -9
- data/bundler/lib/bundler/current_ruby.rb +17 -6
- data/bundler/lib/bundler/definition.rb +297 -396
- data/bundler/lib/bundler/dep_proxy.rb +16 -9
- data/bundler/lib/bundler/dependency.rb +22 -77
- data/bundler/lib/bundler/digest.rb +71 -0
- data/bundler/lib/bundler/dsl.rb +76 -83
- data/bundler/lib/bundler/endpoint_specification.rb +16 -14
- data/bundler/lib/bundler/env.rb +2 -2
- data/bundler/lib/bundler/environment_preserver.rb +29 -2
- data/bundler/lib/bundler/errors.rb +30 -3
- data/bundler/lib/bundler/feature_flag.rb +0 -9
- data/bundler/lib/bundler/fetcher/base.rb +7 -9
- data/bundler/lib/bundler/fetcher/compact_index.rb +11 -16
- data/bundler/lib/bundler/fetcher/downloader.rb +10 -7
- data/bundler/lib/bundler/fetcher/index.rb +2 -30
- data/bundler/lib/bundler/fetcher.rb +24 -25
- data/bundler/lib/bundler/friendly_errors.rb +46 -47
- data/bundler/lib/bundler/gem_helper.rb +53 -31
- data/bundler/lib/bundler/gem_helpers.rb +43 -24
- data/bundler/lib/bundler/gem_version_promoter.rb +10 -20
- data/bundler/lib/bundler/graph.rb +1 -1
- data/bundler/lib/bundler/index.rb +19 -25
- data/bundler/lib/bundler/injector.rb +38 -6
- data/bundler/lib/bundler/inline.rb +4 -13
- data/bundler/lib/bundler/installer/gem_installer.rb +19 -24
- data/bundler/lib/bundler/installer/parallel_installer.rb +46 -25
- data/bundler/lib/bundler/installer/standalone.rb +58 -11
- data/bundler/lib/bundler/installer.rb +51 -81
- data/bundler/lib/bundler/lazy_specification.rb +79 -36
- data/bundler/lib/bundler/lockfile_generator.rb +3 -3
- data/bundler/lib/bundler/lockfile_parser.rb +19 -44
- data/bundler/lib/bundler/man/.document +1 -0
- data/bundler/{man → lib/bundler/man}/bundle-add.1 +21 -5
- data/bundler/{man/bundle-add.ronn → lib/bundler/man/bundle-add.1.ronn} +16 -4
- data/bundler/{man → lib/bundler/man}/bundle-binstubs.1 +5 -3
- data/bundler/{man/bundle-binstubs.ronn → lib/bundler/man/bundle-binstubs.1.ronn} +2 -4
- data/bundler/{man → lib/bundler/man}/bundle-cache.1 +7 -1
- data/bundler/{man/bundle-cache.ronn → lib/bundler/man/bundle-cache.1.ronn} +7 -0
- data/bundler/{man → lib/bundler/man}/bundle-check.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-clean.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-config.1 +65 -47
- data/bundler/{man/bundle-config.ronn → lib/bundler/man/bundle-config.1.ronn} +74 -65
- data/bundler/lib/bundler/man/bundle-console.1 +53 -0
- data/bundler/lib/bundler/man/bundle-console.1.ronn +44 -0
- data/bundler/{man → lib/bundler/man}/bundle-doctor.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-exec.1 +2 -2
- data/bundler/{man/bundle-exec.ronn → lib/bundler/man/bundle-exec.1.ronn} +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-gem.1 +38 -3
- data/bundler/{man/bundle-gem.ronn → lib/bundler/man/bundle-gem.1.ronn} +46 -7
- data/bundler/lib/bundler/man/bundle-help.1 +13 -0
- data/bundler/lib/bundler/man/bundle-help.1.ronn +12 -0
- data/bundler/{man → lib/bundler/man}/bundle-info.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-init.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-inject.1 +5 -2
- data/bundler/{man/bundle-inject.ronn → lib/bundler/man/bundle-inject.1.ronn} +3 -1
- data/bundler/{man → lib/bundler/man}/bundle-install.1 +35 -4
- data/bundler/{man/bundle-install.ronn → lib/bundler/man/bundle-install.1.ronn} +33 -5
- data/bundler/{man → lib/bundler/man}/bundle-list.1 +7 -7
- data/bundler/{man/bundle-list.ronn → lib/bundler/man/bundle-list.1.ronn} +6 -6
- data/bundler/{man → lib/bundler/man}/bundle-lock.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-open.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-outdated.1 +3 -10
- data/bundler/{man/bundle-outdated.ronn → lib/bundler/man/bundle-outdated.1.ronn} +1 -10
- data/bundler/{man → lib/bundler/man}/bundle-platform.1 +16 -6
- data/bundler/{man/bundle-platform.ronn → lib/bundler/man/bundle-platform.1.ronn} +14 -7
- data/bundler/lib/bundler/man/bundle-plugin.1 +81 -0
- data/bundler/lib/bundler/man/bundle-plugin.1.ronn +59 -0
- data/bundler/{man → lib/bundler/man}/bundle-pristine.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-remove.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-show.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-update.1 +5 -5
- data/bundler/{man/bundle-update.ronn → lib/bundler/man/bundle-update.1.ronn} +5 -4
- data/bundler/lib/bundler/man/bundle-version.1 +35 -0
- data/bundler/lib/bundler/man/bundle-version.1.ronn +24 -0
- data/bundler/{man → lib/bundler/man}/bundle-viz.1 +4 -1
- data/bundler/{man/bundle-viz.ronn → lib/bundler/man/bundle-viz.1.ronn} +2 -0
- data/bundler/{man → lib/bundler/man}/bundle.1 +15 -10
- data/bundler/{man/bundle.ronn → lib/bundler/man/bundle.1.ronn} +12 -7
- data/bundler/{man → lib/bundler/man}/gemfile.5 +106 -80
- data/bundler/{man → lib/bundler/man}/gemfile.5.ronn +94 -83
- data/bundler/{man → lib/bundler/man}/index.txt +4 -0
- data/bundler/lib/bundler/match_metadata.rb +13 -0
- data/bundler/lib/bundler/match_platform.rb +0 -1
- data/bundler/lib/bundler/match_remote_metadata.rb +29 -0
- data/bundler/lib/bundler/mirror.rb +2 -2
- data/bundler/lib/bundler/plugin/api/source.rb +25 -9
- data/bundler/lib/bundler/plugin/dsl.rb +1 -1
- data/bundler/lib/bundler/plugin/index.rb +13 -1
- data/bundler/lib/bundler/plugin/installer/git.rb +0 -4
- data/bundler/lib/bundler/plugin/installer/rubygems.rb +1 -5
- data/bundler/lib/bundler/plugin/installer.rb +11 -11
- data/bundler/lib/bundler/plugin/source_list.rb +5 -1
- data/bundler/lib/bundler/plugin.rb +58 -11
- data/bundler/lib/bundler/process_lock.rb +1 -1
- data/bundler/lib/bundler/remote_specification.rb +11 -6
- data/bundler/lib/bundler/resolver/base.rb +50 -0
- data/bundler/lib/bundler/resolver/spec_group.rb +64 -57
- data/bundler/lib/bundler/resolver.rb +234 -230
- data/bundler/lib/bundler/retry.rb +2 -2
- data/bundler/lib/bundler/ruby_dsl.rb +1 -1
- data/bundler/lib/bundler/ruby_version.rb +6 -19
- data/bundler/lib/bundler/rubygems_ext.rb +194 -33
- data/bundler/lib/bundler/rubygems_gem_installer.rb +87 -16
- data/bundler/lib/bundler/rubygems_integration.rb +71 -153
- data/bundler/lib/bundler/runtime.rb +22 -26
- data/bundler/lib/bundler/self_manager.rb +168 -0
- data/bundler/lib/bundler/settings.rb +145 -66
- data/bundler/lib/bundler/setup.rb +2 -2
- data/bundler/lib/bundler/shared_helpers.rb +17 -32
- data/bundler/lib/bundler/similarity_detector.rb +1 -1
- data/bundler/lib/bundler/source/git/git_proxy.rb +88 -84
- data/bundler/lib/bundler/source/git.rb +50 -32
- data/bundler/lib/bundler/source/metadata.rb +3 -7
- data/bundler/lib/bundler/source/path/installer.rb +10 -10
- data/bundler/lib/bundler/source/path.rb +10 -4
- data/bundler/lib/bundler/source/rubygems/remote.rb +1 -1
- data/bundler/lib/bundler/source/rubygems.rb +201 -179
- data/bundler/lib/bundler/source/rubygems_aggregate.rb +68 -0
- data/bundler/lib/bundler/source.rb +25 -5
- data/bundler/lib/bundler/source_list.rb +105 -63
- data/bundler/lib/bundler/source_map.rb +71 -0
- data/bundler/lib/bundler/spec_set.rb +62 -57
- data/bundler/lib/bundler/stub_specification.rb +30 -10
- data/bundler/lib/bundler/templates/Executable +2 -4
- data/bundler/lib/bundler/templates/Executable.bundler +8 -8
- data/bundler/lib/bundler/templates/Executable.standalone +2 -4
- data/bundler/lib/bundler/templates/Gemfile +0 -2
- data/bundler/lib/bundler/templates/gems.rb +0 -3
- data/bundler/lib/bundler/templates/newgem/CHANGELOG.md.tt +5 -0
- data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +57 -47
- data/bundler/lib/bundler/templates/newgem/Gemfile.tt +12 -1
- data/bundler/lib/bundler/templates/newgem/README.md.tt +9 -14
- data/bundler/lib/bundler/templates/newgem/Rakefile.tt +32 -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 +27 -0
- data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +9 -0
- data/bundler/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +2 -0
- data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +4 -2
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +27 -17
- data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +13 -0
- data/bundler/lib/bundler/templates/newgem/sig/newgem.rbs.tt +8 -0
- data/bundler/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +2 -0
- data/bundler/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +2 -1
- data/bundler/lib/bundler/templates/newgem/standard.yml.tt +3 -0
- data/bundler/lib/bundler/templates/newgem/test/{test_helper.rb.tt → minitest/test_helper.rb.tt} +2 -0
- data/bundler/lib/bundler/templates/newgem/test/{newgem_test.rb.tt → minitest/test_newgem.rb.tt} +3 -1
- data/bundler/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt +15 -0
- data/bundler/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt +6 -0
- data/bundler/lib/bundler/ui/shell.rb +6 -6
- data/bundler/lib/bundler/uri_credentials_filter.rb +3 -1
- data/bundler/lib/bundler/vendor/.document +1 -0
- data/bundler/lib/bundler/vendor/connection_pool/LICENSE +20 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +19 -21
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +1 -1
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +57 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +39 -74
- data/bundler/lib/bundler/vendor/fileutils/LICENSE.txt +22 -0
- data/bundler/lib/bundler/vendor/molinillo/LICENSE +9 -0
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +7 -0
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +2 -2
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +11 -5
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +37 -5
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +34 -28
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +1 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +12 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +49 -47
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -1
- data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +82 -0
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +82 -189
- data/bundler/lib/bundler/vendor/thor/LICENSE.md +20 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +2 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +9 -7
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +1 -2
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions.rb +7 -3
- data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +9 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +6 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/error.rb +10 -5
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +5 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +28 -9
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +27 -6
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/color.rb +5 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/util.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor.rb +5 -13
- data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +154 -0
- data/bundler/lib/bundler/vendor/tsort/LICENSE.txt +22 -0
- data/bundler/lib/bundler/vendor/tsort/lib/tsort.rb +452 -0
- data/bundler/lib/bundler/vendor/uri/LICENSE.txt +22 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +17 -80
- data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +0 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +5 -6
- data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +0 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/https.rb +0 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb +1 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb +0 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +1 -14
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +1 -12
- data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/ws.rb +84 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/wss.rb +22 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri.rb +0 -1
- data/bundler/lib/bundler/vendored_persistent.rb +0 -7
- data/bundler/lib/bundler/vendored_tmpdir.rb +4 -0
- data/bundler/lib/bundler/vendored_tsort.rb +4 -0
- data/bundler/lib/bundler/version.rb +1 -1
- data/bundler/lib/bundler/worker.rb +20 -5
- data/bundler/lib/bundler/yaml_serializer.rb +1 -1
- data/bundler/lib/bundler.rb +79 -47
- data/hide_lib_for_update/note.txt +0 -4
- data/lib/rubygems/available_set.rb +7 -9
- data/lib/rubygems/basic_specification.rb +23 -21
- data/lib/rubygems/bundler_version_finder.rb +26 -53
- data/lib/rubygems/command.rb +48 -45
- data/lib/rubygems/command_manager.rb +20 -14
- data/lib/rubygems/commands/build_command.rb +47 -27
- data/lib/rubygems/commands/cert_command.rb +78 -75
- data/lib/rubygems/commands/check_command.rb +20 -22
- data/lib/rubygems/commands/cleanup_command.rb +30 -26
- data/lib/rubygems/commands/contents_command.rb +16 -18
- data/lib/rubygems/commands/dependency_command.rb +39 -51
- data/lib/rubygems/commands/environment_command.rb +11 -10
- data/lib/rubygems/commands/fetch_command.rb +33 -16
- data/lib/rubygems/commands/generate_index_command.rb +17 -19
- data/lib/rubygems/commands/help_command.rb +6 -6
- data/lib/rubygems/commands/info_command.rb +10 -7
- data/lib/rubygems/commands/install_command.rb +29 -27
- data/lib/rubygems/commands/list_command.rb +9 -8
- data/lib/rubygems/commands/lock_command.rb +5 -7
- data/lib/rubygems/commands/mirror_command.rb +3 -5
- data/lib/rubygems/commands/open_command.rb +10 -14
- data/lib/rubygems/commands/outdated_command.rb +5 -7
- data/lib/rubygems/commands/owner_command.rb +26 -16
- data/lib/rubygems/commands/pristine_command.rb +61 -49
- data/lib/rubygems/commands/push_command.rb +22 -59
- data/lib/rubygems/commands/query_command.rb +21 -351
- data/lib/rubygems/commands/rdoc_command.rb +23 -25
- data/lib/rubygems/commands/search_command.rb +8 -8
- data/lib/rubygems/commands/server_command.rb +16 -77
- data/lib/rubygems/commands/setup_command.rb +255 -229
- data/lib/rubygems/commands/signin_command.rb +9 -11
- data/lib/rubygems/commands/signout_command.rb +7 -9
- data/lib/rubygems/commands/sources_command.rb +27 -25
- data/lib/rubygems/commands/specification_command.rb +25 -21
- data/lib/rubygems/commands/stale_command.rb +3 -5
- data/lib/rubygems/commands/uninstall_command.rb +41 -43
- data/lib/rubygems/commands/unpack_command.rb +13 -15
- data/lib/rubygems/commands/update_command.rb +132 -74
- data/lib/rubygems/commands/which_command.rb +7 -9
- data/lib/rubygems/commands/yank_command.rb +16 -19
- data/lib/rubygems/compatibility.rb +4 -2
- data/lib/rubygems/config_file.rb +42 -26
- data/lib/rubygems/core_ext/kernel_gem.rb +1 -1
- data/lib/rubygems/core_ext/kernel_require.rb +6 -3
- data/lib/rubygems/core_ext/kernel_warn.rb +12 -13
- data/lib/rubygems/core_ext/tcpsocket_init.rb +52 -0
- data/lib/rubygems/defaults.rb +108 -32
- data/lib/rubygems/dependency.rb +21 -22
- data/lib/rubygems/dependency_installer.rb +19 -91
- data/lib/rubygems/dependency_list.rb +13 -15
- data/lib/rubygems/deprecate.rb +102 -8
- data/lib/rubygems/doctor.rb +22 -22
- data/lib/rubygems/errors.rb +6 -21
- data/lib/rubygems/exceptions.rb +33 -34
- data/lib/rubygems/ext/build_error.rb +2 -0
- data/lib/rubygems/ext/builder.rb +48 -54
- data/lib/rubygems/ext/cargo_builder/link_flag_converter.rb +23 -0
- data/lib/rubygems/ext/cargo_builder.rb +321 -0
- data/lib/rubygems/ext/cmake_builder.rb +6 -9
- data/lib/rubygems/ext/configure_builder.rb +5 -8
- data/lib/rubygems/ext/ext_conf_builder.rb +42 -66
- data/lib/rubygems/ext/rake_builder.rb +7 -10
- data/lib/rubygems/ext.rb +7 -6
- data/lib/rubygems/gem_runner.rb +15 -26
- data/lib/rubygems/gemcutter_utilities.rb +153 -32
- data/lib/rubygems/indexer.rb +30 -49
- data/lib/rubygems/install_default_message.rb +2 -2
- data/lib/rubygems/install_message.rb +2 -2
- data/lib/rubygems/install_update_options.rb +73 -64
- data/lib/rubygems/installer.rb +194 -151
- data/lib/rubygems/installer_uninstaller_utils.rb +29 -0
- data/lib/rubygems/local_remote_options.rb +22 -24
- data/lib/rubygems/mock_gem_ui.rb +2 -8
- data/lib/rubygems/name_tuple.rb +9 -14
- data/lib/rubygems/openssl.rb +7 -0
- data/lib/rubygems/optparse/.document +1 -0
- data/lib/rubygems/optparse/COPYING +56 -0
- data/lib/rubygems/optparse/lib/optionparser.rb +2 -0
- data/lib/rubygems/optparse/lib/optparse/ac.rb +54 -0
- data/lib/rubygems/optparse/lib/optparse/date.rb +18 -0
- data/lib/rubygems/optparse/lib/optparse/kwargs.rb +22 -0
- data/lib/rubygems/optparse/lib/optparse/shellwords.rb +7 -0
- data/lib/rubygems/optparse/lib/optparse/time.rb +11 -0
- data/lib/rubygems/optparse/lib/optparse/uri.rb +7 -0
- data/lib/rubygems/optparse/lib/optparse/version.rb +71 -0
- data/lib/rubygems/optparse/lib/optparse.rb +2303 -0
- data/lib/rubygems/optparse.rb +3 -0
- data/lib/rubygems/package/digest_io.rb +0 -2
- data/lib/rubygems/package/file_source.rb +2 -4
- data/lib/rubygems/package/io_source.rb +4 -2
- data/lib/rubygems/package/old.rb +9 -11
- data/lib/rubygems/package/tar_header.rb +54 -56
- data/lib/rubygems/package/tar_reader/entry.rb +2 -5
- data/lib/rubygems/package/tar_reader.rb +1 -4
- data/lib/rubygems/package/tar_writer.rb +8 -18
- data/lib/rubygems/package.rb +101 -117
- data/lib/rubygems/package_task.rb +5 -11
- data/lib/rubygems/path_support.rb +2 -9
- data/lib/rubygems/platform.rb +101 -76
- data/lib/rubygems/psych_tree.rb +1 -3
- data/lib/rubygems/query_utils.rb +351 -0
- data/lib/rubygems/rdoc.rb +2 -14
- data/lib/rubygems/remote_fetcher.rb +48 -74
- data/lib/rubygems/request/connection_pools.rb +6 -10
- data/lib/rubygems/request/http_pool.rb +2 -4
- data/lib/rubygems/request/https_pool.rb +0 -2
- data/lib/rubygems/request.rb +26 -31
- data/lib/rubygems/request_set/gem_dependency_api.rb +23 -25
- data/lib/rubygems/request_set/lockfile/parser.rb +26 -28
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +5 -7
- data/lib/rubygems/request_set/lockfile.rb +17 -21
- data/lib/rubygems/request_set.rb +27 -40
- data/lib/rubygems/requirement.rb +28 -48
- data/lib/rubygems/resolver/activation_request.rb +12 -6
- data/lib/rubygems/resolver/api_set/gem_parser.rb +20 -0
- data/lib/rubygems/resolver/api_set.rb +32 -25
- data/lib/rubygems/resolver/api_specification.rb +29 -15
- data/lib/rubygems/resolver/best_set.rb +7 -9
- data/lib/rubygems/resolver/composed_set.rb +3 -5
- data/lib/rubygems/resolver/conflict.rb +12 -14
- data/lib/rubygems/resolver/current_set.rb +0 -2
- data/lib/rubygems/resolver/dependency_request.rb +3 -5
- data/lib/rubygems/resolver/git_set.rb +2 -4
- data/lib/rubygems/resolver/git_specification.rb +6 -8
- data/lib/rubygems/resolver/index_set.rb +4 -6
- data/lib/rubygems/resolver/index_specification.rb +38 -7
- data/lib/rubygems/resolver/installed_specification.rb +4 -6
- data/lib/rubygems/resolver/installer_set.rb +66 -24
- data/lib/rubygems/resolver/local_specification.rb +2 -4
- data/lib/rubygems/resolver/lock_set.rb +6 -8
- data/lib/rubygems/resolver/lock_specification.rb +4 -6
- data/lib/rubygems/resolver/molinillo/LICENSE +9 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb +7 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb +8 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/action.rb +1 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb +7 -6
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/set_payload.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/tag.rb +4 -3
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb +51 -12
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +41 -8
- data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +76 -8
- data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb +13 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb +3 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb +510 -165
- data/lib/rubygems/resolver/molinillo/lib/molinillo/resolver.rb +3 -2
- data/lib/rubygems/resolver/molinillo/lib/molinillo/state.rb +8 -4
- data/lib/rubygems/resolver/molinillo/lib/molinillo.rb +6 -5
- data/lib/rubygems/resolver/molinillo.rb +1 -1
- data/lib/rubygems/resolver/requirement_list.rb +0 -2
- data/lib/rubygems/resolver/set.rb +0 -3
- data/lib/rubygems/resolver/source_set.rb +0 -2
- data/lib/rubygems/resolver/spec_specification.rb +14 -2
- data/lib/rubygems/resolver/specification.rb +14 -4
- data/lib/rubygems/resolver/stats.rb +0 -2
- data/lib/rubygems/resolver/vendor_set.rb +1 -3
- data/lib/rubygems/resolver/vendor_specification.rb +3 -5
- data/lib/rubygems/resolver.rb +53 -51
- data/lib/rubygems/s3_uri_signer.rb +7 -15
- data/lib/rubygems/safe_yaml.rb +14 -16
- data/lib/rubygems/security/policies.rb +11 -11
- data/lib/rubygems/security/policy.rb +25 -29
- data/lib/rubygems/security/signer.rb +13 -16
- data/lib/rubygems/security/trust_dir.rb +4 -5
- data/lib/rubygems/security.rb +103 -69
- data/lib/rubygems/security_option.rb +7 -7
- data/lib/rubygems/source/git.rb +30 -30
- data/lib/rubygems/source/installed.rb +1 -3
- data/lib/rubygems/source/local.rb +4 -6
- data/lib/rubygems/source/lock.rb +0 -2
- data/lib/rubygems/source/specific_file.rb +1 -3
- data/lib/rubygems/source/vendor.rb +0 -2
- data/lib/rubygems/source.rb +44 -38
- data/lib/rubygems/source_list.rb +9 -16
- data/lib/rubygems/spec_fetcher.rb +49 -48
- data/lib/rubygems/specification.rb +338 -295
- data/lib/rubygems/specification_policy.rb +112 -61
- data/lib/rubygems/stub_specification.rb +21 -28
- data/lib/rubygems/text.rb +21 -20
- data/lib/rubygems/tsort/.document +1 -0
- data/lib/rubygems/tsort/LICENSE.txt +22 -0
- data/lib/rubygems/tsort/lib/tsort.rb +454 -0
- data/lib/rubygems/tsort.rb +3 -0
- data/lib/rubygems/uninstaller.rb +98 -45
- data/lib/rubygems/unknown_command_spell_checker.rb +21 -0
- data/lib/rubygems/uri.rb +126 -0
- data/lib/rubygems/uri_formatter.rb +2 -3
- data/lib/rubygems/user_interaction.rb +43 -54
- data/lib/rubygems/util/licenses.rb +115 -10
- data/lib/rubygems/util/list.rb +0 -2
- data/lib/rubygems/util.rb +18 -12
- data/lib/rubygems/validator.rb +6 -8
- data/lib/rubygems/version.rb +29 -20
- data/lib/rubygems/version_option.rb +11 -5
- data/lib/rubygems.rb +192 -289
- data/rubygems-update.gemspec +4 -4
- data/setup.rb +11 -22
- data/test/rubygems/data/excon-0.7.7.gemspec.rz +0 -0
- data/test/rubygems/data/null-required-ruby-version.gemspec.rz +0 -0
- data/test/rubygems/data/null-required-rubygems-version.gemspec.rz +0 -0
- data/test/rubygems/data/pry-0.4.7.gemspec.rz +0 -0
- data/test/rubygems/encrypted_private_key.pem +26 -26
- data/{lib/rubygems/test_case.rb → test/rubygems/helper.rb} +380 -314
- data/{lib → test}/rubygems/installer_test_case.rb +38 -24
- data/{lib → test}/rubygems/package/tar_test_case.rb +4 -6
- data/test/rubygems/packages/ascii_binder-0.1.10.1.gem +0 -0
- data/test/rubygems/packages/ill-formatted-platform-1.0.0.10.gem +0 -0
- data/test/rubygems/plugin/exception/rubygems_plugin.rb +1 -1
- data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -2
- data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +1 -1
- data/test/rubygems/private_ec_key.pem +9 -0
- data/test/rubygems/rubygems/commands/crash_command.rb +0 -2
- data/test/rubygems/rubygems_plugin.rb +2 -4
- data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -2
- data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +4 -6
- data/test/rubygems/test_bundled_ca.rb +43 -50
- data/test/rubygems/test_config.rb +5 -7
- data/test/rubygems/test_deprecate.rb +87 -10
- data/test/rubygems/test_exit.rb +11 -0
- data/test/rubygems/test_gem.rb +719 -639
- data/test/rubygems/test_gem_available_set.rb +24 -26
- data/test/rubygems/test_gem_bundler_version_finder.rb +37 -44
- data/test/rubygems/test_gem_command.rb +78 -49
- data/test/rubygems/test_gem_command_manager.rb +98 -35
- data/test/rubygems/test_gem_commands_build_command.rb +275 -57
- data/test/rubygems/test_gem_commands_cert_command.rb +180 -125
- data/test/rubygems/test_gem_commands_check_command.rb +9 -11
- data/test/rubygems/test_gem_commands_cleanup_command.rb +78 -69
- data/test/rubygems/test_gem_commands_contents_command.rb +73 -42
- data/test/rubygems/test_gem_commands_dependency_command.rb +38 -40
- data/test/rubygems/test_gem_commands_environment_command.rb +60 -38
- data/test/rubygems/test_gem_commands_fetch_command.rb +163 -32
- data/test/rubygems/test_gem_commands_generate_index_command.rb +8 -14
- data/test/rubygems/test_gem_commands_help_command.rb +34 -16
- data/test/rubygems/test_gem_commands_info_command.rb +33 -9
- data/test/rubygems/test_gem_commands_install_command.rb +401 -198
- data/test/rubygems/test_gem_commands_list_command.rb +5 -7
- data/test/rubygems/test_gem_commands_lock_command.rb +11 -13
- data/test/rubygems/test_gem_commands_mirror.rb +3 -5
- data/test/rubygems/test_gem_commands_open_command.rb +16 -19
- data/test/rubygems/test_gem_commands_outdated_command.rb +23 -7
- data/test/rubygems/test_gem_commands_owner_command.rb +100 -46
- data/test/rubygems/test_gem_commands_pristine_command.rb +131 -99
- data/test/rubygems/test_gem_commands_push_command.rb +134 -66
- data/test/rubygems/test_gem_commands_query_command.rb +91 -91
- data/test/rubygems/test_gem_commands_search_command.rb +2 -4
- data/test/rubygems/test_gem_commands_server_command.rb +6 -50
- data/test/rubygems/test_gem_commands_setup_command.rb +288 -179
- data/test/rubygems/test_gem_commands_signin_command.rb +162 -28
- data/test/rubygems/test_gem_commands_signout_command.rb +3 -10
- data/test/rubygems/test_gem_commands_sources_command.rb +139 -32
- data/test/rubygems/test_gem_commands_specification_command.rb +81 -55
- data/test/rubygems/test_gem_commands_stale_command.rb +4 -6
- data/test/rubygems/test_gem_commands_uninstall_command.rb +80 -82
- data/test/rubygems/test_gem_commands_unpack_command.rb +32 -34
- data/test/rubygems/test_gem_commands_update_command.rb +335 -88
- data/test/rubygems/test_gem_commands_which_command.rb +12 -14
- data/test/rubygems/test_gem_commands_yank_command.rb +80 -44
- data/test/rubygems/test_gem_config_file.rb +114 -97
- data/test/rubygems/test_gem_dependency.rb +87 -87
- data/test/rubygems/test_gem_dependency_installer.rb +277 -391
- data/test/rubygems/test_gem_dependency_list.rb +57 -59
- data/test/rubygems/test_gem_dependency_resolution_error.rb +5 -7
- data/test/rubygems/test_gem_doctor.rb +73 -47
- data/test/rubygems/test_gem_ext_builder.rb +115 -109
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore +1 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.lock +243 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.toml +10 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/build.rb +21 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +10 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/src/lib.rs +27 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/.gitignore +1 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +243 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +10 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/build.rb +21 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +8 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +39 -0
- data/test/rubygems/test_gem_ext_cargo_builder.rb +178 -0
- data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +33 -0
- data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +75 -0
- data/test/rubygems/test_gem_ext_cmake_builder.rb +31 -38
- data/test/rubygems/test_gem_ext_configure_builder.rb +23 -39
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +66 -82
- data/test/rubygems/test_gem_ext_rake_builder.rb +49 -32
- data/test/rubygems/test_gem_gem_runner.rb +51 -8
- data/test/rubygems/test_gem_gemcutter_utilities.rb +87 -76
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +4 -6
- data/test/rubygems/test_gem_indexer.rb +62 -64
- data/test/rubygems/test_gem_install_update_options.rb +31 -21
- data/test/rubygems/test_gem_installer.rb +798 -491
- data/test/rubygems/test_gem_local_remote_options.rb +11 -13
- data/test/rubygems/test_gem_name_tuple.rb +4 -6
- data/test/rubygems/test_gem_package.rb +318 -283
- data/test/rubygems/test_gem_package_old.rb +18 -20
- data/test/rubygems/test_gem_package_tar_header.rb +64 -47
- data/test/rubygems/test_gem_package_tar_reader.rb +8 -10
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +18 -20
- data/test/rubygems/test_gem_package_tar_writer.rb +96 -100
- data/test/rubygems/test_gem_package_task.rb +58 -25
- data/test/rubygems/test_gem_path_support.rb +15 -21
- data/test/rubygems/test_gem_platform.rb +354 -201
- data/test/rubygems/test_gem_rdoc.rb +19 -21
- data/test/rubygems/test_gem_remote_fetcher.rb +376 -337
- data/test/rubygems/test_gem_request.rb +114 -86
- data/test/rubygems/test_gem_request_connection_pools.rb +30 -34
- data/test/rubygems/test_gem_request_set.rb +123 -124
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +222 -226
- data/test/rubygems/test_gem_request_set_lockfile.rb +93 -95
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +68 -70
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +136 -138
- data/test/rubygems/test_gem_requirement.rb +133 -54
- data/test/rubygems/test_gem_resolver.rb +149 -117
- data/test/rubygems/test_gem_resolver_activation_request.rb +6 -8
- data/test/rubygems/test_gem_resolver_api_set.rb +79 -78
- data/test/rubygems/test_gem_resolver_api_specification.rb +47 -49
- data/test/rubygems/test_gem_resolver_best_set.rb +43 -22
- data/test/rubygems/test_gem_resolver_composed_set.rb +1 -3
- data/test/rubygems/test_gem_resolver_conflict.rb +12 -14
- data/test/rubygems/test_gem_resolver_dependency_request.rb +15 -17
- data/test/rubygems/test_gem_resolver_git_set.rb +22 -24
- data/test/rubygems/test_gem_resolver_git_specification.rb +22 -23
- data/test/rubygems/test_gem_resolver_index_set.rb +14 -16
- data/test/rubygems/test_gem_resolver_index_specification.rb +16 -18
- data/test/rubygems/test_gem_resolver_installed_specification.rb +5 -7
- data/test/rubygems/test_gem_resolver_installer_set.rb +104 -44
- data/test/rubygems/test_gem_resolver_local_specification.rb +7 -9
- data/test/rubygems/test_gem_resolver_lock_set.rb +15 -17
- data/test/rubygems/test_gem_resolver_lock_specification.rb +17 -19
- data/test/rubygems/test_gem_resolver_requirement_list.rb +1 -3
- data/test/rubygems/test_gem_resolver_specification.rb +8 -12
- data/test/rubygems/test_gem_resolver_vendor_set.rb +9 -11
- data/test/rubygems/test_gem_resolver_vendor_specification.rb +10 -12
- data/test/rubygems/test_gem_security.rb +104 -78
- data/test/rubygems/test_gem_security_policy.rb +92 -97
- data/test/rubygems/test_gem_security_signer.rb +45 -47
- data/test/rubygems/test_gem_security_trust_dir.rb +12 -14
- data/test/rubygems/test_gem_silent_ui.rb +46 -42
- data/test/rubygems/test_gem_source.rb +53 -52
- data/test/rubygems/test_gem_source_fetch_problem.rb +16 -8
- data/test/rubygems/test_gem_source_git.rb +69 -69
- data/test/rubygems/test_gem_source_installed.rb +16 -18
- data/test/rubygems/test_gem_source_list.rb +5 -6
- data/test/rubygems/test_gem_source_local.rb +15 -17
- data/test/rubygems/test_gem_source_lock.rb +31 -33
- data/test/rubygems/test_gem_source_specific_file.rb +18 -20
- data/test/rubygems/test_gem_source_subpath_problem.rb +49 -0
- data/test/rubygems/test_gem_source_vendor.rb +13 -15
- data/test/rubygems/test_gem_spec_fetcher.rb +74 -67
- data/test/rubygems/test_gem_specification.rb +888 -1024
- data/test/rubygems/test_gem_stream_ui.rb +23 -23
- data/test/rubygems/test_gem_stub_specification.rb +39 -57
- data/test/rubygems/test_gem_text.rb +8 -4
- data/test/rubygems/test_gem_uninstaller.rb +233 -104
- data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +3 -5
- data/test/rubygems/test_gem_uri.rb +39 -0
- data/test/rubygems/test_gem_uri_formatter.rb +14 -16
- data/test/rubygems/test_gem_util.rb +37 -35
- data/test/rubygems/test_gem_validator.rb +10 -12
- data/test/rubygems/test_gem_version.rb +31 -31
- data/test/rubygems/test_gem_version_option.rb +16 -18
- data/test/rubygems/test_kernel.rb +46 -60
- data/test/rubygems/test_project_sanity.rb +8 -3
- data/test/rubygems/test_remote_fetch_error.rb +7 -9
- data/test/rubygems/test_require.rb +240 -167
- data/test/rubygems/test_rubygems.rb +74 -0
- data/{lib/rubygems/test_utilities.rb → test/rubygems/utilities.rb} +30 -39
- data/test/test_changelog_generator.rb +17 -0
- metadata +158 -146
- data/.bundle/config +0 -2
- data/.rubocop.yml +0 -91
- data/Gemfile +0 -8
- data/Gemfile.lock +0 -43
- data/Rakefile +0 -428
- data/bundler/CODE_OF_CONDUCT.md +0 -136
- data/bundler/lib/bundler/gemdeps.rb +0 -29
- data/bundler/lib/bundler/psyched_yaml.rb +0 -37
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/monotonic_time.rb +0 -66
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +0 -26
- data/bundler/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/psych_additions.rb +0 -10
- data/lib/rubygems/server.rb +0 -879
- data/lib/rubygems/source_local.rb +0 -7
- data/lib/rubygems/source_specific_file.rb +0 -6
- data/lib/rubygems/syck_hack.rb +0 -79
- data/lib/rubygems/uri_parser.rb +0 -36
- data/lib/rubygems/uri_parsing.rb +0 -23
- data/lib/ubygems.rb +0 -14
- data/test/rubygems/bogussources.rb +0 -9
- data/test/rubygems/data/null-type.gemspec.rz +0 -0
- data/test/rubygems/test_gem_server.rb +0 -612
- data/tmp/.keep +0 -0
- data/util/CL2notes +0 -55
- data/util/bisect +0 -10
- data/util/ci.sh +0 -62
- data/util/cops/deprecations.rb +0 -52
- data/util/create_certs.rb +0 -171
- data/util/create_certs.sh +0 -27
- data/util/create_encrypted_key.rb +0 -16
- data/util/generate_spdx_license_list.rb +0 -63
- data/util/patch_with_prs.rb +0 -77
- data/util/rubocop +0 -8
- data/util/update_bundled_ca_certificates.rb +0 -137
- data/util/update_changelog.rb +0 -64
- /data/bundler/{man/bundle-check.ronn → lib/bundler/man/bundle-check.1.ronn} +0 -0
- /data/bundler/{man/bundle-clean.ronn → lib/bundler/man/bundle-clean.1.ronn} +0 -0
- /data/bundler/{man/bundle-doctor.ronn → lib/bundler/man/bundle-doctor.1.ronn} +0 -0
- /data/bundler/{man/bundle-info.ronn → lib/bundler/man/bundle-info.1.ronn} +0 -0
- /data/bundler/{man/bundle-init.ronn → lib/bundler/man/bundle-init.1.ronn} +0 -0
- /data/bundler/{man/bundle-lock.ronn → lib/bundler/man/bundle-lock.1.ronn} +0 -0
- /data/bundler/{man/bundle-open.ronn → lib/bundler/man/bundle-open.1.ronn} +0 -0
- /data/bundler/{man/bundle-pristine.ronn → lib/bundler/man/bundle-pristine.1.ronn} +0 -0
- /data/bundler/{man/bundle-remove.ronn → lib/bundler/man/bundle-remove.1.ronn} +0 -0
- /data/bundler/{man/bundle-show.ronn → lib/bundler/man/bundle-show.1.ronn} +0 -0
@@ -1,102 +1,105 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
|
2
|
+
require_relative "../command"
|
3
3
|
|
4
4
|
##
|
5
5
|
# Installs RubyGems itself. This command is ordinarily only available from a
|
6
6
|
# RubyGems checkout or tarball.
|
7
7
|
|
8
8
|
class Gem::Commands::SetupCommand < Gem::Command
|
9
|
-
|
10
|
-
|
11
|
-
VERSION_MATCHER = /^===\s*([\d.a-zA-Z]+)\s*\/\s*\d{4}-\d{2}-\d{2}\s*$/.freeze
|
9
|
+
HISTORY_HEADER = /^#\s*[\d.a-zA-Z]+\s*\/\s*\d{4}-\d{2}-\d{2}\s*$/.freeze
|
10
|
+
VERSION_MATCHER = /^#\s*([\d.a-zA-Z]+)\s*\/\s*\d{4}-\d{2}-\d{2}\s*$/.freeze
|
12
11
|
|
13
12
|
ENV_PATHS = %w[/usr/bin/env /bin/env].freeze
|
14
13
|
|
15
14
|
def initialize
|
16
|
-
|
17
|
-
|
18
|
-
super 'setup', 'Install RubyGems',
|
19
|
-
:format_executable => true, :document => %w[ri],
|
15
|
+
super "setup", "Install RubyGems",
|
16
|
+
:format_executable => false, :document => %w[ri],
|
20
17
|
:force => true,
|
21
|
-
:site_or_vendor =>
|
22
|
-
:destdir =>
|
23
|
-
:regenerate_binstubs => true
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
18
|
+
:site_or_vendor => "sitelibdir",
|
19
|
+
:destdir => "", :prefix => "", :previous_version => "",
|
20
|
+
:regenerate_binstubs => true,
|
21
|
+
:regenerate_plugins => true
|
22
|
+
|
23
|
+
add_option "--previous-version=VERSION",
|
24
|
+
"Previous version of RubyGems",
|
25
|
+
"Used for changelog processing" do |version, options|
|
28
26
|
options[:previous_version] = version
|
29
27
|
end
|
30
28
|
|
31
|
-
add_option
|
32
|
-
|
33
|
-
|
29
|
+
add_option "--prefix=PREFIX",
|
30
|
+
"Prefix path for installing RubyGems",
|
31
|
+
"Will not affect gem repository location" do |prefix, options|
|
34
32
|
options[:prefix] = File.expand_path prefix
|
35
33
|
end
|
36
34
|
|
37
|
-
add_option
|
38
|
-
|
39
|
-
|
35
|
+
add_option "--destdir=DESTDIR",
|
36
|
+
"Root directory to install RubyGems into",
|
37
|
+
"Mainly used for packaging RubyGems" do |destdir, options|
|
40
38
|
options[:destdir] = File.expand_path destdir
|
41
39
|
end
|
42
40
|
|
43
|
-
add_option
|
44
|
-
|
45
|
-
options[:site_or_vendor] = vendor ?
|
41
|
+
add_option "--[no-]vendor",
|
42
|
+
"Install into vendorlibdir not sitelibdir" do |vendor, options|
|
43
|
+
options[:site_or_vendor] = vendor ? "vendorlibdir" : "sitelibdir"
|
46
44
|
end
|
47
45
|
|
48
|
-
add_option
|
49
|
-
|
50
|
-
|
46
|
+
add_option "--[no-]format-executable",
|
47
|
+
"Makes `gem` match ruby",
|
48
|
+
"If Ruby is ruby18, gem will be gem18" do |value, options|
|
51
49
|
options[:format_executable] = value
|
52
50
|
end
|
53
51
|
|
54
|
-
add_option
|
55
|
-
|
56
|
-
|
57
|
-
|
52
|
+
add_option "--[no-]document [TYPES]", Array,
|
53
|
+
"Generate documentation for RubyGems",
|
54
|
+
"List the documentation types you wish to",
|
55
|
+
"generate. For example: rdoc,ri" do |value, options|
|
58
56
|
options[:document] = case value
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
57
|
+
when nil then %w[rdoc ri]
|
58
|
+
when false then []
|
59
|
+
else value
|
60
|
+
end
|
63
61
|
end
|
64
62
|
|
65
|
-
add_option
|
66
|
-
|
63
|
+
add_option "--[no-]rdoc",
|
64
|
+
"Generate RDoc documentation for RubyGems" do |value, options|
|
67
65
|
if value
|
68
|
-
options[:document] <<
|
66
|
+
options[:document] << "rdoc"
|
69
67
|
else
|
70
|
-
options[:document].delete
|
68
|
+
options[:document].delete "rdoc"
|
71
69
|
end
|
72
70
|
|
73
71
|
options[:document].uniq!
|
74
72
|
end
|
75
73
|
|
76
|
-
add_option
|
77
|
-
|
74
|
+
add_option "--[no-]ri",
|
75
|
+
"Generate RI documentation for RubyGems" do |value, options|
|
78
76
|
if value
|
79
|
-
options[:document] <<
|
77
|
+
options[:document] << "ri"
|
80
78
|
else
|
81
|
-
options[:document].delete
|
79
|
+
options[:document].delete "ri"
|
82
80
|
end
|
83
81
|
|
84
82
|
options[:document].uniq!
|
85
83
|
end
|
86
84
|
|
87
|
-
add_option
|
88
|
-
|
85
|
+
add_option "--[no-]regenerate-binstubs",
|
86
|
+
"Regenerate gem binstubs" do |value, options|
|
89
87
|
options[:regenerate_binstubs] = value
|
90
88
|
end
|
91
89
|
|
92
|
-
add_option
|
93
|
-
|
90
|
+
add_option "--[no-]regenerate-plugins",
|
91
|
+
"Regenerate gem plugins" do |value, options|
|
92
|
+
options[:regenerate_plugins] = value
|
93
|
+
end
|
94
|
+
|
95
|
+
add_option "-f", "--[no-]force",
|
96
|
+
"Forcefully overwrite binstubs" do |value, options|
|
94
97
|
options[:force] = value
|
95
98
|
end
|
96
99
|
|
97
|
-
add_option(
|
98
|
-
|
99
|
-
|
100
|
+
add_option("-E", "--[no-]env-shebang",
|
101
|
+
"Rewrite executables with a shebang",
|
102
|
+
"of /usr/bin/env") do |value, options|
|
100
103
|
options[:env_shebang] = value
|
101
104
|
end
|
102
105
|
|
@@ -104,7 +107,7 @@ class Gem::Commands::SetupCommand < Gem::Command
|
|
104
107
|
end
|
105
108
|
|
106
109
|
def check_ruby_version
|
107
|
-
required_version = Gem::Requirement.new
|
110
|
+
required_version = Gem::Requirement.new ">= 2.3.0"
|
108
111
|
|
109
112
|
unless required_version.satisfied_by? Gem.ruby_version
|
110
113
|
alert_error "Expected Ruby version #{required_version}, is #{Gem.ruby_version}"
|
@@ -144,16 +147,9 @@ By default, this RubyGems will install gem as:
|
|
144
147
|
def execute
|
145
148
|
@verbose = Gem.configuration.really_verbose
|
146
149
|
|
147
|
-
install_destdir = options[:destdir]
|
148
|
-
|
149
|
-
unless install_destdir.empty?
|
150
|
-
ENV['GEM_HOME'] ||= File.join(install_destdir,
|
151
|
-
Gem.default_dir.gsub(/^[a-zA-Z]:/, ''))
|
152
|
-
end
|
153
|
-
|
154
150
|
check_ruby_version
|
155
151
|
|
156
|
-
require
|
152
|
+
require "fileutils"
|
157
153
|
if Gem.configuration.really_verbose
|
158
154
|
extend FileUtils::Verbose
|
159
155
|
else
|
@@ -161,7 +157,8 @@ By default, this RubyGems will install gem as:
|
|
161
157
|
end
|
162
158
|
extend MakeDirs
|
163
159
|
|
164
|
-
lib_dir, bin_dir = make_destination_dirs
|
160
|
+
lib_dir, bin_dir = make_destination_dirs
|
161
|
+
man_dir = generate_default_man_dir
|
165
162
|
|
166
163
|
install_lib lib_dir
|
167
164
|
|
@@ -171,6 +168,9 @@ By default, this RubyGems will install gem as:
|
|
171
168
|
|
172
169
|
remove_old_lib_files lib_dir
|
173
170
|
|
171
|
+
# Can be removed one we drop support for bundler 2.2.3 (the last version installing man files to man_dir)
|
172
|
+
remove_old_man_files man_dir if man_dir && File.exist?(man_dir)
|
173
|
+
|
174
174
|
install_default_bundler_gem bin_dir
|
175
175
|
|
176
176
|
if mode = options[:dir_mode]
|
@@ -180,7 +180,8 @@ By default, this RubyGems will install gem as:
|
|
180
180
|
|
181
181
|
say "RubyGems #{Gem::VERSION} installed"
|
182
182
|
|
183
|
-
regenerate_binstubs if options[:regenerate_binstubs]
|
183
|
+
regenerate_binstubs(bin_dir) if options[:regenerate_binstubs]
|
184
|
+
regenerate_plugins(bin_dir) if options[:regenerate_plugins]
|
184
185
|
|
185
186
|
uninstall_old_gemcutter
|
186
187
|
|
@@ -193,7 +194,7 @@ By default, this RubyGems will install gem as:
|
|
193
194
|
end
|
194
195
|
|
195
196
|
if options[:previous_version].empty?
|
196
|
-
options[:previous_version] = Gem::VERSION.sub(/[0-9]+$/,
|
197
|
+
options[:previous_version] = Gem::VERSION.sub(/[0-9]+$/, "0")
|
197
198
|
end
|
198
199
|
|
199
200
|
options[:previous_version] = Gem::Version.new(options[:previous_version])
|
@@ -205,7 +206,7 @@ By default, this RubyGems will install gem as:
|
|
205
206
|
say
|
206
207
|
|
207
208
|
say "RubyGems installed the following executables:"
|
208
|
-
say bin_file_names.map {
|
209
|
+
say bin_file_names.map {|name| "\t#{name}\n" }
|
209
210
|
say
|
210
211
|
|
211
212
|
unless bin_file_names.grep(/#{File::SEPARATOR}gem$/)
|
@@ -215,7 +216,7 @@ By default, this RubyGems will install gem as:
|
|
215
216
|
end
|
216
217
|
|
217
218
|
if documentation_success
|
218
|
-
if options[:document].include?
|
219
|
+
if options[:document].include? "rdoc"
|
219
220
|
say "Rdoc documentation was installed. You may now invoke:"
|
220
221
|
say " gem server"
|
221
222
|
say "and then peruse beautifully formatted documentation for your gems"
|
@@ -226,7 +227,7 @@ By default, this RubyGems will install gem as:
|
|
226
227
|
say
|
227
228
|
end
|
228
229
|
|
229
|
-
if options[:document].include?
|
230
|
+
if options[:document].include? "ri"
|
230
231
|
say "Ruby Interactive (ri) documentation was installed. ri is kind of like man "
|
231
232
|
say "pages for Ruby libraries. You may access it like this:"
|
232
233
|
say " ri Classname"
|
@@ -243,40 +244,39 @@ By default, this RubyGems will install gem as:
|
|
243
244
|
def install_executables(bin_dir)
|
244
245
|
prog_mode = options[:prog_mode] || 0755
|
245
246
|
|
246
|
-
executables = {
|
247
|
+
executables = { "gem" => "bin" }
|
247
248
|
executables.each do |tool, path|
|
248
249
|
say "Installing #{tool} executable" if @verbose
|
249
250
|
|
250
251
|
Dir.chdir path do
|
251
|
-
|
252
|
+
bin_file = "gem"
|
252
253
|
|
253
|
-
|
254
|
+
require "tmpdir"
|
254
255
|
|
255
|
-
|
256
|
-
|
257
|
-
bin_tmp_file = File.join Dir.tmpdir, "#{bin_file}.#{$$}"
|
256
|
+
dest_file = target_bin_path(bin_dir, bin_file)
|
257
|
+
bin_tmp_file = File.join Dir.tmpdir, "#{bin_file}.#{$$}"
|
258
258
|
|
259
|
-
|
260
|
-
|
261
|
-
|
259
|
+
begin
|
260
|
+
bin = File.readlines bin_file
|
261
|
+
bin[0] = shebang
|
262
262
|
|
263
|
-
|
264
|
-
|
265
|
-
end
|
266
|
-
|
267
|
-
install bin_tmp_file, dest_file, :mode => prog_mode
|
268
|
-
bin_file_names << dest_file
|
269
|
-
ensure
|
270
|
-
rm bin_tmp_file
|
263
|
+
File.open bin_tmp_file, "w" do |fp|
|
264
|
+
fp.puts bin.join
|
271
265
|
end
|
272
266
|
|
273
|
-
|
267
|
+
install bin_tmp_file, dest_file, :mode => prog_mode
|
268
|
+
bin_file_names << dest_file
|
269
|
+
ensure
|
270
|
+
rm bin_tmp_file
|
271
|
+
end
|
272
|
+
|
273
|
+
next unless Gem.win_platform?
|
274
274
|
|
275
|
-
|
276
|
-
|
275
|
+
begin
|
276
|
+
bin_cmd_file = File.join Dir.tmpdir, "#{bin_file}.bat"
|
277
277
|
|
278
|
-
|
279
|
-
|
278
|
+
File.open bin_cmd_file, "w" do |file|
|
279
|
+
file.puts <<-TEXT
|
280
280
|
@ECHO OFF
|
281
281
|
IF NOT "%~f0" == "~f0" GOTO :WinNT
|
282
282
|
@"#{File.basename(Gem.ruby).chomp('"')}" "#{dest_file}" %1 %2 %3 %4 %5 %6 %7 %8 %9
|
@@ -284,12 +284,11 @@ By default, this RubyGems will install gem as:
|
|
284
284
|
:WinNT
|
285
285
|
@"#{File.basename(Gem.ruby).chomp('"')}" "%~dpn0" %*
|
286
286
|
TEXT
|
287
|
-
end
|
288
|
-
|
289
|
-
install bin_cmd_file, "#{dest_file}.bat", :mode => prog_mode
|
290
|
-
ensure
|
291
|
-
rm bin_cmd_file
|
292
287
|
end
|
288
|
+
|
289
|
+
install bin_cmd_file, "#{dest_file}.bat", :mode => prog_mode
|
290
|
+
ensure
|
291
|
+
rm bin_cmd_file
|
293
292
|
end
|
294
293
|
end
|
295
294
|
end
|
@@ -297,7 +296,7 @@ By default, this RubyGems will install gem as:
|
|
297
296
|
|
298
297
|
def shebang
|
299
298
|
if options[:env_shebang]
|
300
|
-
ruby_name = RbConfig::CONFIG[
|
299
|
+
ruby_name = RbConfig::CONFIG["ruby_install_name"]
|
301
300
|
@env_path ||= ENV_PATHS.find {|env_path| File.executable? env_path }
|
302
301
|
"#!#{@env_path} #{ruby_name}\n"
|
303
302
|
else
|
@@ -305,41 +304,22 @@ By default, this RubyGems will install gem as:
|
|
305
304
|
end
|
306
305
|
end
|
307
306
|
|
308
|
-
def install_file(file, dest_dir)
|
309
|
-
dest_file = File.join dest_dir, file
|
310
|
-
dest_dir = File.dirname dest_file
|
311
|
-
unless File.directory? dest_dir
|
312
|
-
mkdir_p dest_dir, :mode => 0755
|
313
|
-
end
|
314
|
-
|
315
|
-
install file, dest_file, :mode => options[:data_mode] || 0644
|
316
|
-
end
|
317
|
-
|
318
307
|
def install_lib(lib_dir)
|
319
|
-
libs = {
|
320
|
-
libs[
|
308
|
+
libs = { "RubyGems" => "lib" }
|
309
|
+
libs["Bundler"] = "bundler/lib"
|
321
310
|
libs.each do |tool, path|
|
322
311
|
say "Installing #{tool}" if @verbose
|
323
312
|
|
324
|
-
lib_files =
|
325
|
-
lib_files.concat(template_files) if tool == 'Bundler'
|
326
|
-
|
327
|
-
pem_files = pem_files_in path
|
313
|
+
lib_files = files_in path
|
328
314
|
|
329
315
|
Dir.chdir path do
|
330
|
-
lib_files
|
331
|
-
install_file lib_file, lib_dir
|
332
|
-
end
|
333
|
-
|
334
|
-
pem_files.each do |pem_file|
|
335
|
-
install_file pem_file, lib_dir
|
336
|
-
end
|
316
|
+
install_file_list(lib_files, lib_dir)
|
337
317
|
end
|
338
318
|
end
|
339
319
|
end
|
340
320
|
|
341
321
|
def install_rdoc
|
342
|
-
gem_doc_dir = File.join Gem.dir,
|
322
|
+
gem_doc_dir = File.join Gem.dir, "doc"
|
343
323
|
rubygems_name = "rubygems-#{Gem::VERSION}"
|
344
324
|
rubygems_doc_dir = File.join gem_doc_dir, rubygems_name
|
345
325
|
|
@@ -349,23 +329,23 @@ By default, this RubyGems will install gem as:
|
|
349
329
|
# ignore
|
350
330
|
end
|
351
331
|
|
352
|
-
if File.writable?
|
353
|
-
(
|
354
|
-
File.writable?
|
332
|
+
if File.writable?(gem_doc_dir) &&
|
333
|
+
(!File.exist?(rubygems_doc_dir) ||
|
334
|
+
File.writable?(rubygems_doc_dir))
|
355
335
|
say "Removing old RubyGems RDoc and ri" if @verbose
|
356
|
-
Dir[File.join(Gem.dir,
|
336
|
+
Dir[File.join(Gem.dir, "doc", "rubygems-[0-9]*")].each do |dir|
|
357
337
|
rm_rf dir
|
358
338
|
end
|
359
339
|
|
360
|
-
|
340
|
+
require_relative "../rdoc"
|
361
341
|
|
362
|
-
fake_spec = Gem::Specification.new
|
342
|
+
fake_spec = Gem::Specification.new "rubygems", Gem::VERSION
|
363
343
|
def fake_spec.full_gem_path
|
364
|
-
File.expand_path
|
344
|
+
File.expand_path "../../..", __dir__
|
365
345
|
end
|
366
346
|
|
367
|
-
generate_ri = options[:document].include?
|
368
|
-
generate_rdoc = options[:document].include?
|
347
|
+
generate_ri = options[:document].include? "ri"
|
348
|
+
generate_rdoc = options[:document].include? "rdoc"
|
369
349
|
|
370
350
|
rdoc = Gem::RDoc.new fake_spec, generate_rdoc, generate_ri
|
371
351
|
rdoc.generate
|
@@ -380,30 +360,26 @@ By default, this RubyGems will install gem as:
|
|
380
360
|
end
|
381
361
|
|
382
362
|
def install_default_bundler_gem(bin_dir)
|
383
|
-
|
384
|
-
specs_dir =
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
# Remove bundler-*.gemspec in default specification directory.
|
396
|
-
Dir.entries(specs_dir).
|
397
|
-
select {|gs| gs.start_with?("bundler-") }.
|
398
|
-
each {|gs| File.delete(File.join(specs_dir, gs)) }
|
363
|
+
current_default_spec = Gem::Specification.default_stubs.find {|s| s.name == "bundler" }
|
364
|
+
specs_dir = if current_default_spec && default_dir == Gem.default_dir
|
365
|
+
Gem::Specification.remove_spec current_default_spec
|
366
|
+
loaded_from = current_default_spec.loaded_from
|
367
|
+
File.delete(loaded_from)
|
368
|
+
File.dirname(loaded_from)
|
369
|
+
else
|
370
|
+
target_specs_dir = File.join(default_dir, "specifications", "default")
|
371
|
+
mkdir_p target_specs_dir, :mode => 0755
|
372
|
+
target_specs_dir
|
373
|
+
end
|
399
374
|
|
375
|
+
bundler_spec = Dir.chdir("bundler") { Gem::Specification.load("bundler.gemspec") }
|
400
376
|
default_spec_path = File.join(specs_dir, "#{bundler_spec.full_name}.gemspec")
|
401
377
|
Gem.write_binary(default_spec_path, bundler_spec.to_ruby)
|
402
378
|
|
403
379
|
bundler_spec = Gem::Specification.load(default_spec_path)
|
404
380
|
|
405
381
|
# Remove gemspec that was same version of vendored bundler.
|
406
|
-
normal_gemspec = File.join(
|
382
|
+
normal_gemspec = File.join(default_dir, "specifications", "bundler-#{bundler_spec.version}.gemspec")
|
407
383
|
if File.file? normal_gemspec
|
408
384
|
File.delete normal_gemspec
|
409
385
|
end
|
@@ -416,19 +392,26 @@ By default, this RubyGems will install gem as:
|
|
416
392
|
end
|
417
393
|
|
418
394
|
bundler_bin_dir = bundler_spec.bin_dir
|
419
|
-
bundler_bin_dir = File.join(options[:destdir], bundler_bin_dir) unless Gem.win_platform?
|
420
395
|
mkdir_p bundler_bin_dir, :mode => 0755
|
421
396
|
bundler_spec.executables.each do |e|
|
422
397
|
cp File.join("bundler", bundler_spec.bindir, e), File.join(bundler_bin_dir, e)
|
423
398
|
end
|
424
399
|
|
425
|
-
|
400
|
+
require_relative "../installer"
|
426
401
|
|
427
402
|
Dir.chdir("bundler") do
|
428
403
|
built_gem = Gem::Package.build(bundler_spec)
|
429
404
|
begin
|
430
|
-
|
431
|
-
|
405
|
+
Gem::Installer.at(
|
406
|
+
built_gem,
|
407
|
+
env_shebang: options[:env_shebang],
|
408
|
+
format_executable: options[:format_executable],
|
409
|
+
force: options[:force],
|
410
|
+
install_as_default: true,
|
411
|
+
bin_dir: bin_dir,
|
412
|
+
install_dir: default_dir,
|
413
|
+
wrappers: true
|
414
|
+
).install
|
432
415
|
ensure
|
433
416
|
FileUtils.rm_f built_gem
|
434
417
|
end
|
@@ -439,11 +422,11 @@ By default, this RubyGems will install gem as:
|
|
439
422
|
say "Bundler #{bundler_spec.version} installed"
|
440
423
|
end
|
441
424
|
|
442
|
-
def make_destination_dirs
|
425
|
+
def make_destination_dirs
|
443
426
|
lib_dir, bin_dir = Gem.default_rubygems_dirs
|
444
427
|
|
445
428
|
unless lib_dir
|
446
|
-
lib_dir, bin_dir = generate_default_dirs
|
429
|
+
lib_dir, bin_dir = generate_default_dirs
|
447
430
|
end
|
448
431
|
|
449
432
|
mkdir_p lib_dir, :mode => 0755
|
@@ -452,74 +435,49 @@ By default, this RubyGems will install gem as:
|
|
452
435
|
return lib_dir, bin_dir
|
453
436
|
end
|
454
437
|
|
455
|
-
def
|
438
|
+
def generate_default_man_dir
|
456
439
|
prefix = options[:prefix]
|
457
|
-
site_or_vendor = options[:site_or_vendor]
|
458
440
|
|
459
441
|
if prefix.empty?
|
460
|
-
|
461
|
-
|
442
|
+
man_dir = RbConfig::CONFIG["mandir"]
|
443
|
+
return unless man_dir
|
462
444
|
else
|
463
|
-
|
464
|
-
# confused about installation location, so switch back to
|
465
|
-
# sitelibdir/vendorlibdir.
|
466
|
-
if defined?(APPLE_GEM_HOME) and
|
467
|
-
# just in case Apple and RubyGems don't get this patched up proper.
|
468
|
-
(prefix == RbConfig::CONFIG['libdir'] or
|
469
|
-
# this one is important
|
470
|
-
prefix == File.join(RbConfig::CONFIG['libdir'], 'ruby'))
|
471
|
-
lib_dir = RbConfig::CONFIG[site_or_vendor]
|
472
|
-
bin_dir = RbConfig::CONFIG['bindir']
|
473
|
-
else
|
474
|
-
lib_dir = File.join prefix, 'lib'
|
475
|
-
bin_dir = File.join prefix, 'bin'
|
476
|
-
end
|
445
|
+
man_dir = File.join prefix, "man"
|
477
446
|
end
|
478
447
|
|
479
|
-
|
480
|
-
lib_dir = File.join install_destdir, lib_dir.gsub(/^[a-zA-Z]:/, '')
|
481
|
-
bin_dir = File.join install_destdir, bin_dir.gsub(/^[a-zA-Z]:/, '')
|
482
|
-
end
|
483
|
-
|
484
|
-
[lib_dir, bin_dir]
|
448
|
+
prepend_destdir_if_present(man_dir)
|
485
449
|
end
|
486
450
|
|
487
|
-
def
|
488
|
-
|
489
|
-
|
490
|
-
end
|
491
|
-
end
|
451
|
+
def generate_default_dirs
|
452
|
+
prefix = options[:prefix]
|
453
|
+
site_or_vendor = options[:site_or_vendor]
|
492
454
|
|
493
|
-
|
494
|
-
|
495
|
-
|
455
|
+
if prefix.empty?
|
456
|
+
lib_dir = RbConfig::CONFIG[site_or_vendor]
|
457
|
+
bin_dir = RbConfig::CONFIG["bindir"]
|
458
|
+
else
|
459
|
+
lib_dir = File.join prefix, "lib"
|
460
|
+
bin_dir = File.join prefix, "bin"
|
496
461
|
end
|
497
|
-
end
|
498
462
|
|
499
|
-
|
500
|
-
def template_files
|
501
|
-
Dir.chdir "bundler/lib" do
|
502
|
-
(Dir[File.join('bundler', 'templates', '**', '{*,.*}')]).
|
503
|
-
select{|f| !File.directory?(f)}
|
504
|
-
end
|
463
|
+
[prepend_destdir_if_present(lib_dir), prepend_destdir_if_present(bin_dir)]
|
505
464
|
end
|
506
465
|
|
507
|
-
|
508
|
-
def template_files_in(dir)
|
466
|
+
def files_in(dir)
|
509
467
|
Dir.chdir dir do
|
510
|
-
(
|
511
|
-
select{|f| !File.directory?(f)}
|
468
|
+
Dir.glob(File.join("**", "*"), File::FNM_DOTMATCH).
|
469
|
+
select {|f| !File.directory?(f) }
|
512
470
|
end
|
513
471
|
end
|
514
472
|
|
515
473
|
def remove_old_bin_files(bin_dir)
|
516
474
|
old_bin_files = {
|
517
|
-
|
518
|
-
|
519
|
-
|
520
|
-
|
521
|
-
|
522
|
-
|
475
|
+
"gem_mirror" => "gem mirror",
|
476
|
+
"gem_server" => "gem server",
|
477
|
+
"gemlock" => "gem lock",
|
478
|
+
"gemri" => "ri",
|
479
|
+
"gemwhich" => "gem which",
|
480
|
+
"index_gem_repository.rb" => "gem generate_index",
|
523
481
|
}
|
524
482
|
|
525
483
|
old_bin_files.each do |old_bin_file, new_name|
|
@@ -528,7 +486,7 @@ By default, this RubyGems will install gem as:
|
|
528
486
|
|
529
487
|
deprecation_message = "`#{old_bin_file}` has been deprecated. Use `#{new_name}` instead."
|
530
488
|
|
531
|
-
File.open old_bin_path,
|
489
|
+
File.open old_bin_path, "w" do |fp|
|
532
490
|
fp.write <<-EOF
|
533
491
|
#!#{Gem.ruby}
|
534
492
|
|
@@ -538,41 +496,53 @@ abort "#{deprecation_message}"
|
|
538
496
|
|
539
497
|
next unless Gem.win_platform?
|
540
498
|
|
541
|
-
File.open "#{old_bin_path}.bat",
|
542
|
-
fp.puts %
|
499
|
+
File.open "#{old_bin_path}.bat", "w" do |fp|
|
500
|
+
fp.puts %(@ECHO.#{deprecation_message})
|
543
501
|
end
|
544
502
|
end
|
545
503
|
end
|
546
504
|
|
547
505
|
def remove_old_lib_files(lib_dir)
|
548
|
-
lib_dirs = { File.join(lib_dir,
|
549
|
-
lib_dirs[File.join(lib_dir,
|
506
|
+
lib_dirs = { File.join(lib_dir, "rubygems") => "lib/rubygems" }
|
507
|
+
lib_dirs[File.join(lib_dir, "bundler")] = "bundler/lib/bundler"
|
550
508
|
lib_dirs.each do |old_lib_dir, new_lib_dir|
|
551
|
-
lib_files =
|
552
|
-
lib_files.concat(template_files_in(new_lib_dir)) if new_lib_dir =~ /bundler/
|
509
|
+
lib_files = files_in(new_lib_dir)
|
553
510
|
|
554
|
-
old_lib_files =
|
555
|
-
old_lib_files.concat(template_files_in(old_lib_dir)) if old_lib_dir =~ /bundler/
|
511
|
+
old_lib_files = files_in(old_lib_dir)
|
556
512
|
|
557
513
|
to_remove = old_lib_files - lib_files
|
558
514
|
|
515
|
+
gauntlet_rubygems = File.join(lib_dir, "gauntlet_rubygems.rb")
|
516
|
+
to_remove << gauntlet_rubygems if File.exist? gauntlet_rubygems
|
517
|
+
|
559
518
|
to_remove.delete_if do |file|
|
560
|
-
file.start_with?
|
519
|
+
file.start_with? "defaults"
|
561
520
|
end
|
562
521
|
|
563
|
-
|
564
|
-
|
565
|
-
|
522
|
+
remove_file_list(to_remove, old_lib_dir)
|
523
|
+
end
|
524
|
+
end
|
566
525
|
|
567
|
-
|
568
|
-
|
569
|
-
|
570
|
-
|
526
|
+
def remove_old_man_files(old_man_dir)
|
527
|
+
old_man1_dir = "#{old_man_dir}/man1"
|
528
|
+
|
529
|
+
if File.exist?(old_man1_dir)
|
530
|
+
man1_to_remove = Dir.chdir(old_man1_dir) { Dir["bundle*.1{,.txt,.ronn}"] }
|
531
|
+
|
532
|
+
remove_file_list(man1_to_remove, old_man1_dir)
|
533
|
+
end
|
534
|
+
|
535
|
+
old_man5_dir = "#{old_man_dir}/man5"
|
536
|
+
|
537
|
+
if File.exist?(old_man5_dir)
|
538
|
+
man5_to_remove = Dir.chdir(old_man5_dir) { Dir["gemfile.5{,.txt,.ronn}"] }
|
539
|
+
|
540
|
+
remove_file_list(man5_to_remove, old_man5_dir)
|
571
541
|
end
|
572
542
|
end
|
573
543
|
|
574
544
|
def show_release_notes
|
575
|
-
release_notes = File.join Dir.pwd,
|
545
|
+
release_notes = File.join Dir.pwd, "CHANGELOG.md"
|
576
546
|
|
577
547
|
release_notes =
|
578
548
|
if File.exist? release_notes
|
@@ -580,8 +550,6 @@ abort "#{deprecation_message}"
|
|
580
550
|
|
581
551
|
history.force_encoding Encoding::UTF_8
|
582
552
|
|
583
|
-
history = history.sub(/^# coding:.*?(?=^=)/m, '')
|
584
|
-
|
585
553
|
text = history.split(HISTORY_HEADER)
|
586
554
|
text.shift # correct an off-by-one generated by split
|
587
555
|
version_lines = history.scan(HISTORY_HEADER)
|
@@ -591,7 +559,7 @@ abort "#{deprecation_message}"
|
|
591
559
|
|
592
560
|
history_string = ""
|
593
561
|
|
594
|
-
until versions.length == 0
|
562
|
+
until versions.length == 0 ||
|
595
563
|
versions.shift <= options[:previous_version] do
|
596
564
|
history_string += version_lines.shift + text.shift
|
597
565
|
end
|
@@ -605,19 +573,20 @@ abort "#{deprecation_message}"
|
|
605
573
|
end
|
606
574
|
|
607
575
|
def uninstall_old_gemcutter
|
608
|
-
|
576
|
+
require_relative "../uninstaller"
|
609
577
|
|
610
|
-
ui = Gem::Uninstaller.new(
|
611
|
-
:version =>
|
578
|
+
ui = Gem::Uninstaller.new("gemcutter", :all => true, :ignore => true,
|
579
|
+
:version => "< 0.4")
|
612
580
|
ui.uninstall
|
613
581
|
rescue Gem::InstallError
|
614
582
|
end
|
615
583
|
|
616
|
-
def regenerate_binstubs
|
617
|
-
|
584
|
+
def regenerate_binstubs(bindir)
|
585
|
+
require_relative "pristine_command"
|
618
586
|
say "Regenerating binstubs"
|
619
587
|
|
620
588
|
args = %w[--all --only-executables --silent]
|
589
|
+
args << "--bindir=#{bindir}"
|
621
590
|
if options[:env_shebang]
|
622
591
|
args << "--env-shebang"
|
623
592
|
end
|
@@ -626,19 +595,76 @@ abort "#{deprecation_message}"
|
|
626
595
|
command.invoke(*args)
|
627
596
|
end
|
628
597
|
|
598
|
+
def regenerate_plugins(bindir)
|
599
|
+
require_relative "pristine_command"
|
600
|
+
say "Regenerating plugins"
|
601
|
+
|
602
|
+
args = %w[--all --only-plugins --silent]
|
603
|
+
args << "--bindir=#{bindir}"
|
604
|
+
args << "--install-dir=#{default_dir}"
|
605
|
+
|
606
|
+
command = Gem::Commands::PristineCommand.new
|
607
|
+
command.invoke(*args)
|
608
|
+
end
|
609
|
+
|
629
610
|
private
|
630
611
|
|
612
|
+
def default_dir
|
613
|
+
prefix = options[:prefix]
|
614
|
+
|
615
|
+
if prefix.empty?
|
616
|
+
dir = Gem.default_dir
|
617
|
+
else
|
618
|
+
dir = prefix
|
619
|
+
end
|
620
|
+
|
621
|
+
prepend_destdir_if_present(dir)
|
622
|
+
end
|
623
|
+
|
624
|
+
def prepend_destdir_if_present(path)
|
625
|
+
destdir = options[:destdir]
|
626
|
+
return path if destdir.empty?
|
627
|
+
|
628
|
+
File.join(options[:destdir], path.gsub(/^[a-zA-Z]:/, ""))
|
629
|
+
end
|
630
|
+
|
631
|
+
def install_file_list(files, dest_dir)
|
632
|
+
files.each do |file|
|
633
|
+
install_file file, dest_dir
|
634
|
+
end
|
635
|
+
end
|
636
|
+
|
637
|
+
def install_file(file, dest_dir)
|
638
|
+
dest_file = File.join dest_dir, file
|
639
|
+
dest_dir = File.dirname dest_file
|
640
|
+
unless File.directory? dest_dir
|
641
|
+
mkdir_p dest_dir, :mode => 0755
|
642
|
+
end
|
643
|
+
|
644
|
+
install file, dest_file, :mode => options[:data_mode] || 0644
|
645
|
+
end
|
646
|
+
|
647
|
+
def remove_file_list(files, dir)
|
648
|
+
Dir.chdir dir do
|
649
|
+
files.each do |file|
|
650
|
+
FileUtils.rm_f file
|
651
|
+
|
652
|
+
warn "unable to remove old file #{file} please remove it by hand" if
|
653
|
+
File.exist? file
|
654
|
+
end
|
655
|
+
end
|
656
|
+
end
|
657
|
+
|
631
658
|
def target_bin_path(bin_dir, bin_file)
|
632
659
|
bin_file_formatted = if options[:format_executable]
|
633
|
-
|
634
|
-
|
635
|
-
|
636
|
-
|
660
|
+
Gem.default_exec_format % bin_file
|
661
|
+
else
|
662
|
+
bin_file
|
663
|
+
end
|
637
664
|
File.join bin_dir, bin_file_formatted
|
638
665
|
end
|
639
666
|
|
640
667
|
def bin_file_names
|
641
668
|
@bin_file_names ||= []
|
642
669
|
end
|
643
|
-
|
644
670
|
end
|