rubygems-update 4.0.21 → 4.1.0.beta1
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/CHANGELOG.md +590 -53
- data/CONTRIBUTING.md +66 -5
- data/MIT.txt +4 -3
- data/Manifest.txt +332 -375
- data/README.md +26 -6
- data/bundler.gemspec +63 -0
- data/doc/POLICIES.md +147 -0
- data/doc/UPGRADING.md +4 -4
- data/{bundler/lib → lib}/bundler/build_metadata.rb +2 -2
- data/{bundler/lib → lib}/bundler/checksum.rb +40 -25
- data/{bundler/lib → lib}/bundler/ci_detector.rb +1 -1
- data/{bundler/lib → lib}/bundler/cli/add.rb +3 -4
- data/{bundler/lib → lib}/bundler/cli/cache.rb +4 -0
- data/{bundler/lib → lib}/bundler/cli/clean.rb +5 -0
- data/{bundler/lib → lib}/bundler/cli/common.rb +37 -1
- data/{bundler/lib → lib}/bundler/cli/config.rb +4 -2
- data/{bundler/lib → lib}/bundler/cli/gem.rb +0 -17
- data/{bundler/lib → lib}/bundler/cli/install.rb +4 -5
- data/{bundler/lib → lib}/bundler/cli/lock.rb +1 -2
- data/{bundler/lib → lib}/bundler/cli/outdated.rb +8 -3
- data/{bundler/lib → lib}/bundler/cli/pristine.rb +2 -1
- data/{bundler/lib → lib}/bundler/cli/update.rb +21 -12
- data/{bundler/lib → lib}/bundler/cli.rb +14 -11
- data/{bundler/lib → lib}/bundler/definition.rb +61 -24
- data/{bundler/lib → lib}/bundler/dependency.rb +4 -0
- data/{bundler/lib → lib}/bundler/dsl.rb +77 -11
- data/{bundler/lib → lib}/bundler/endpoint_specification.rb +51 -14
- data/{bundler/lib → lib}/bundler/env.rb +7 -24
- data/{bundler/lib → lib}/bundler/errors.rb +34 -5
- data/{bundler/lib → lib}/bundler/fetcher/compact_index.rb +14 -5
- data/lib/bundler/fetcher/connection_pools.rb +150 -0
- data/{bundler/lib → lib}/bundler/fetcher/downloader.rb +31 -16
- data/{bundler/lib → lib}/bundler/fetcher.rb +8 -47
- data/{bundler/lib → lib}/bundler/injector.rb +3 -3
- data/{bundler/lib → lib}/bundler/inline.rb +44 -4
- data/{bundler/lib → lib}/bundler/installer/parallel_installer.rb +25 -30
- data/{bundler/lib → lib}/bundler/installer.rb +20 -6
- data/{bundler/lib → lib}/bundler/lazy_specification.rb +44 -17
- data/{bundler/lib → lib}/bundler/lockfile_generator.rb +24 -2
- data/{bundler/lib → lib}/bundler/lockfile_parser.rb +43 -5
- data/{bundler/lib → lib}/bundler/man/bundle-add.1 +7 -4
- data/{bundler/lib → lib}/bundler/man/bundle-add.1.ronn +8 -4
- data/{bundler/lib → lib}/bundler/man/bundle-binstubs.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-cache.1 +2 -2
- data/{bundler/lib → lib}/bundler/man/bundle-cache.1.ronn +2 -2
- data/{bundler/lib → lib}/bundler/man/bundle-check.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-clean.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-config.1 +38 -6
- data/{bundler/lib → lib}/bundler/man/bundle-config.1.ronn +143 -10
- data/{bundler/lib → lib}/bundler/man/bundle-console.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-doctor.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-env.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-exec.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-fund.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-gem.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-help.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-info.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-init.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-install.1 +2 -2
- data/{bundler/lib → lib}/bundler/man/bundle-install.1.ronn +4 -4
- data/{bundler/lib → lib}/bundler/man/bundle-issue.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-licenses.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-list.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-lock.1 +3 -3
- data/{bundler/lib → lib}/bundler/man/bundle-lock.1.ronn +5 -5
- data/{bundler/lib → lib}/bundler/man/bundle-open.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-outdated.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-platform.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-plugin.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-pristine.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-remove.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-show.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-update.1 +3 -3
- data/{bundler/lib → lib}/bundler/man/bundle-update.1.ronn +3 -5
- data/{bundler/lib → lib}/bundler/man/bundle-version.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/gemfile.5 +45 -1
- data/{bundler/lib → lib}/bundler/man/gemfile.5.ronn +53 -0
- data/lib/bundler/match_metadata.rb +50 -0
- data/{bundler/lib → lib}/bundler/match_platform.rb +25 -2
- data/lib/bundler/match_remote_metadata.rb +44 -0
- data/{bundler/lib → lib}/bundler/materialization.rb +2 -1
- data/lib/bundler/override.rb +69 -0
- data/{bundler/lib → lib}/bundler/plugin/dsl.rb +3 -5
- data/{bundler/lib → lib}/bundler/plugin/events.rb +55 -13
- data/{bundler/lib → lib}/bundler/plugin/index.rb +87 -11
- data/{bundler/lib → lib}/bundler/plugin/installer/path.rb +1 -1
- data/{bundler/lib → lib}/bundler/plugin/installer.rb +13 -5
- data/{bundler/lib → lib}/bundler/plugin.rb +58 -30
- data/{bundler/lib → lib}/bundler/remote_specification.rb +6 -3
- data/{bundler/lib → lib}/bundler/resolver/base.rb +2 -1
- data/{bundler/lib → lib}/bundler/resolver/incompatibility.rb +1 -1
- data/{bundler/lib → lib}/bundler/resolver.rb +73 -23
- data/{bundler/lib → lib}/bundler/ruby_version.rb +0 -2
- data/{bundler/lib → lib}/bundler/rubygems_ext.rb +71 -1
- data/{bundler/lib → lib}/bundler/rubygems_gem_installer.rb +41 -2
- data/{bundler/lib → lib}/bundler/rubygems_integration.rb +7 -2
- data/{bundler/lib → lib}/bundler/runtime.rb +69 -2
- data/{bundler/lib → lib}/bundler/self_manager.rb +9 -15
- data/{bundler/lib → lib}/bundler/settings.rb +373 -30
- data/{bundler/lib → lib}/bundler/shared_helpers.rb +2 -1
- data/{bundler/lib → lib}/bundler/source/git/git_proxy.rb +2 -10
- data/{bundler/lib → lib}/bundler/source/git.rb +15 -6
- data/{bundler/lib → lib}/bundler/source/path/installer.rb +1 -1
- data/{bundler/lib → lib}/bundler/source/rubygems/remote.rb +10 -5
- data/{bundler/lib → lib}/bundler/source/rubygems.rb +48 -12
- data/{bundler/lib → lib}/bundler/spec_set.rb +16 -4
- data/{bundler/lib → lib}/bundler/stub_specification.rb +2 -1
- data/{bundler/lib → lib}/bundler/templates/newgem/Gemfile.tt +4 -4
- data/{bundler/lib → lib}/bundler/templates/newgem/newgem.gemspec.tt +3 -3
- data/{bundler/lib → lib}/bundler/templates/newgem/spec/newgem_spec.rb.tt +1 -1
- data/{bundler/lib → lib}/bundler/templates/newgem/test/minitest/test_newgem.rb.tt +1 -1
- data/{bundler/lib → lib}/bundler/ui/shell.rb +0 -4
- data/{bundler/lib → lib}/bundler/ui/silent.rb +0 -4
- data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +35 -2
- data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/base.rb +2 -1
- data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/shell/basic.rb +14 -6
- data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/shell/color.rb +2 -0
- data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/version.rb +1 -1
- data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor.rb +34 -1
- data/lib/bundler/vendored_pub_grub.rb +7 -0
- data/lib/bundler/vendored_securerandom.rb +15 -0
- data/lib/bundler/vendored_uri.rb +21 -0
- data/{bundler/lib → lib}/bundler/version.rb +1 -1
- data/{bundler/lib → lib}/bundler/worker.rb +3 -2
- data/{bundler/lib → lib}/bundler.rb +1 -1
- data/lib/rubygems/basic_specification.rb +15 -14
- data/lib/rubygems/bundler_settings.rb +137 -0
- data/lib/rubygems/bundler_version_finder.rb +13 -55
- data/lib/rubygems/ci_detector.rb +1 -1
- data/lib/rubygems/commands/build_command.rb +8 -1
- data/lib/rubygems/commands/cert_command.rb +9 -7
- data/lib/rubygems/commands/contents_command.rb +1 -1
- data/lib/rubygems/commands/dependency_command.rb +15 -3
- data/lib/rubygems/commands/environment_command.rb +1 -0
- data/lib/rubygems/commands/exec_command.rb +3 -0
- data/lib/rubygems/commands/fetch_command.rb +1 -1
- data/lib/rubygems/commands/help_command.rb +3 -1
- data/lib/rubygems/commands/install_command.rb +13 -3
- data/lib/rubygems/commands/lock_command.rb +2 -2
- data/lib/rubygems/commands/outdated_command.rb +77 -2
- data/lib/rubygems/commands/owner_command.rb +1 -1
- data/lib/rubygems/commands/push_command.rb +159 -21
- data/lib/rubygems/commands/setup_command.rb +20 -23
- data/lib/rubygems/commands/signin_command.rb +3 -1
- data/lib/rubygems/commands/signout_command.rb +26 -6
- data/lib/rubygems/commands/specification_command.rb +1 -1
- data/lib/rubygems/commands/uninstall_command.rb +1 -1
- data/lib/rubygems/commands/update_command.rb +84 -2
- data/lib/rubygems/commands/yank_command.rb +10 -7
- data/lib/rubygems/compact_index_client/cache.rb +122 -0
- data/lib/rubygems/compact_index_client/cache_file.rb +147 -0
- data/lib/rubygems/compact_index_client/http_fetcher.rb +88 -0
- data/lib/rubygems/compact_index_client/parser.rb +90 -0
- data/lib/rubygems/compact_index_client/updater.rb +113 -0
- data/lib/rubygems/compact_index_client.rb +111 -0
- data/lib/rubygems/config_file.rb +304 -22
- data/lib/rubygems/content_address.rb +194 -0
- data/lib/rubygems/cooldown.rb +173 -0
- data/lib/rubygems/cooldown_option.rb +27 -0
- data/lib/rubygems/cooldown_settings.rb +57 -0
- data/lib/rubygems/credential_store/native/linux.rb +97 -0
- data/lib/rubygems/credential_store/native/macos.rb +88 -0
- data/lib/rubygems/credential_store/native/windows.rb +130 -0
- data/lib/rubygems/credential_store.rb +332 -0
- data/lib/rubygems/defaults.rb +9 -0
- data/lib/rubygems/dependency_installer.rb +15 -0
- data/lib/rubygems/doctor.rb +23 -6
- data/lib/rubygems/exceptions.rb +11 -43
- data/lib/rubygems/ext/builder.rb +70 -5
- data/lib/rubygems/ext/cargo_builder.rb +0 -9
- data/lib/rubygems/ext/ext_conf_builder.rb +8 -15
- data/lib/rubygems/gemcutter_utilities.rb +44 -2
- data/lib/rubygems/install_update_options.rb +16 -0
- data/lib/rubygems/installer.rb +90 -11
- data/lib/rubygems/installer_uninstaller_utils.rb +24 -3
- data/lib/rubygems/name_tuple.rb +55 -18
- data/lib/rubygems/package/old.rb +1 -1
- data/lib/rubygems/package.rb +200 -47
- data/lib/rubygems/package_task.rb +2 -2
- data/lib/rubygems/platform.rb +2 -2
- data/lib/rubygems/query_utils.rb +84 -24
- data/lib/rubygems/remote_fetcher.rb +65 -17
- data/lib/rubygems/request/connection_pools.rb +3 -0
- data/lib/rubygems/request_set/gem_dependency_api.rb +1 -1
- data/lib/rubygems/request_set/lockfile.rb +0 -2
- data/lib/rubygems/request_set.rb +105 -17
- data/lib/rubygems/resolver/api_set.rb +14 -26
- data/lib/rubygems/resolver/api_specification.rb +56 -15
- data/lib/rubygems/resolver/incompatibility.rb +10 -0
- data/lib/rubygems/resolver/index_specification.rb +6 -4
- data/lib/rubygems/resolver/installer_set.rb +2 -2
- data/lib/rubygems/resolver/lock_specification.rb +5 -1
- data/lib/rubygems/resolver/spec_specification.rb +4 -0
- data/lib/rubygems/resolver/specification.rb +16 -1
- data/lib/rubygems/resolver/strategy.rb +44 -0
- data/lib/rubygems/resolver.rb +471 -145
- data/lib/rubygems/safe_marshal.rb +2 -1
- data/lib/rubygems/safe_yaml.rb +20 -3
- data/lib/rubygems/security/policy.rb +11 -3
- data/lib/rubygems/security/signer.rb +15 -7
- data/lib/rubygems/security.rb +111 -17
- data/lib/rubygems/source/local.rb +7 -2
- data/lib/rubygems/source.rb +270 -23
- data/lib/rubygems/spec_fetcher.rb +47 -12
- data/lib/rubygems/specification.rb +76 -32
- data/lib/rubygems/specification_policy.rb +33 -6
- data/lib/rubygems/specification_record.rb +41 -2
- data/lib/rubygems/stub_specification.rb +39 -16
- data/lib/rubygems/uninstaller.rb +2 -0
- data/lib/rubygems/util/atomic_file_writer.rb +109 -0
- data/lib/rubygems/vendor/net-http/lib/net/http/exceptions.rb +2 -1
- data/lib/rubygems/vendor/net-http/lib/net/http/generic_request.rb +5 -6
- data/lib/rubygems/vendor/net-http/lib/net/http/header.rb +8 -4
- data/lib/rubygems/vendor/net-http/lib/net/http/requests.rb +15 -1
- data/lib/rubygems/vendor/net-http/lib/net/http/response.rb +2 -1
- data/lib/rubygems/vendor/net-http/lib/net/http/responses.rb +68 -0
- data/lib/rubygems/vendor/net-http/lib/net/http.rb +60 -49
- data/lib/rubygems/vendor/optparse/lib/optparse.rb +23 -30
- data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/assignment.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +7 -7
- data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/failure_writer.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/incompatibility.rb +4 -4
- data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/package.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/partial_solution.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/rubygems.rb +3 -3
- data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/solve_failure.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/static_package_source.rb +3 -3
- data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/strategy.rb +2 -2
- data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/term.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/version.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/version_constraint.rb +3 -3
- data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/version_range.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/version_solver.rb +2 -2
- data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/version_union.rb +1 -1
- data/lib/rubygems/vendor/pub_grub/lib/pub_grub.rb +57 -0
- data/lib/rubygems/vendor/resolv/lib/resolv.rb +3508 -0
- data/lib/rubygems/vendor/securerandom/lib/securerandom.rb +4 -0
- data/lib/rubygems/vendor/timeout/lib/timeout.rb +190 -77
- data/lib/rubygems/vendor/uri/lib/uri.rb +4 -0
- data/{bundler/lib/bundler → lib/rubygems}/vendored_pub_grub.rb +0 -1
- data/lib/rubygems/version.rb +129 -111
- data/lib/rubygems/version_option.rb +14 -0
- data/lib/rubygems/yaml_serializer.rb +853 -71
- data/lib/rubygems.rb +45 -11
- data/rubygems-update.gemspec +3 -4
- data/setup.rb +1 -0
- metadata +365 -410
- data/bundler/CHANGELOG.md +0 -5784
- data/bundler/LICENSE.md +0 -22
- data/bundler/README.md +0 -58
- data/bundler/bundler.gemspec +0 -46
- data/bundler/lib/bundler/compact_index_client/cache.rb +0 -107
- data/bundler/lib/bundler/compact_index_client/cache_file.rb +0 -148
- data/bundler/lib/bundler/compact_index_client/parser.rb +0 -87
- data/bundler/lib/bundler/compact_index_client/updater.rb +0 -105
- data/bundler/lib/bundler/compact_index_client.rb +0 -92
- data/bundler/lib/bundler/match_metadata.rb +0 -30
- data/bundler/lib/bundler/match_remote_metadata.rb +0 -29
- data/bundler/lib/bundler/vendor/connection_pool/LICENSE +0 -20
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +0 -227
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +0 -3
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +0 -56
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +0 -230
- data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +0 -82
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +0 -41
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +0 -65
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +0 -80
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +0 -1153
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +0 -31
- data/bundler/lib/bundler/vendor/securerandom/lib/securerandom.rb +0 -102
- data/bundler/lib/bundler/vendor/uri/COPYING +0 -56
- data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +0 -922
- data/bundler/lib/bundler/vendor/uri/lib/uri/file.rb +0 -100
- data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +0 -267
- data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +0 -1592
- data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +0 -137
- data/bundler/lib/bundler/vendor/uri/lib/uri/https.rb +0 -23
- data/bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb +0 -261
- data/bundler/lib/bundler/vendor/uri/lib/uri/ldaps.rb +0 -22
- data/bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb +0 -293
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +0 -547
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +0 -206
- data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +0 -6
- data/bundler/lib/bundler/vendor/uri/lib/uri/ws.rb +0 -83
- data/bundler/lib/bundler/vendor/uri/lib/uri/wss.rb +0 -23
- data/bundler/lib/bundler/vendor/uri/lib/uri.rb +0 -104
- data/bundler/lib/bundler/vendored_persistent.rb +0 -11
- data/bundler/lib/bundler/vendored_securerandom.rb +0 -12
- data/bundler/lib/bundler/vendored_uri.rb +0 -21
- data/bundler/lib/bundler/yaml_serializer.rb +0 -98
- data/doc/rubygems/CONTRIBUTING.md +0 -231
- data/doc/rubygems/POLICIES.md +0 -60
- data/lib/rubygems/request_set/lockfile/parser.rb +0 -344
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +0 -122
- data/lib/rubygems/resolver/conflict.rb +0 -146
- data/lib/rubygems/resolver/stats.rb +0 -46
- data/lib/rubygems/util/list.rb +0 -40
- data/lib/rubygems/vendor/molinillo/LICENSE +0 -9
- data/lib/rubygems/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
- data/lib/rubygems/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +0 -88
- data/lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +0 -36
- data/lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +0 -66
- data/lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +0 -62
- data/lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +0 -63
- data/lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +0 -61
- data/lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +0 -126
- data/lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +0 -46
- data/lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +0 -36
- data/lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +0 -164
- data/lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph.rb +0 -255
- data/lib/rubygems/vendor/molinillo/lib/molinillo/errors.rb +0 -149
- data/lib/rubygems/vendor/molinillo/lib/molinillo/gem_metadata.rb +0 -6
- data/lib/rubygems/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +0 -112
- data/lib/rubygems/vendor/molinillo/lib/molinillo/modules/ui.rb +0 -67
- data/lib/rubygems/vendor/molinillo/lib/molinillo/resolution.rb +0 -839
- data/lib/rubygems/vendor/molinillo/lib/molinillo/resolver.rb +0 -46
- data/lib/rubygems/vendor/molinillo/lib/molinillo/state.rb +0 -58
- data/lib/rubygems/vendor/molinillo/lib/molinillo.rb +0 -11
- data/lib/rubygems/vendored_molinillo.rb +0 -3
- /data/{bundler/exe → exe}/bundle +0 -0
- /data/{bundler/exe → exe}/bundler +0 -0
- /data/{bundler/lib → lib}/bundler/.document +0 -0
- /data/{bundler/lib → lib}/bundler/capistrano.rb +0 -0
- /data/{bundler/lib → lib}/bundler/cli/binstubs.rb +0 -0
- /data/{bundler/lib → lib}/bundler/cli/check.rb +0 -0
- /data/{bundler/lib → lib}/bundler/cli/console.rb +0 -0
- /data/{bundler/lib → lib}/bundler/cli/doctor/diagnose.rb +0 -0
- /data/{bundler/lib → lib}/bundler/cli/doctor/ssl.rb +0 -0
- /data/{bundler/lib → lib}/bundler/cli/doctor.rb +0 -0
- /data/{bundler/lib → lib}/bundler/cli/exec.rb +0 -0
- /data/{bundler/lib → lib}/bundler/cli/fund.rb +0 -0
- /data/{bundler/lib → lib}/bundler/cli/info.rb +0 -0
- /data/{bundler/lib → lib}/bundler/cli/init.rb +0 -0
- /data/{bundler/lib → lib}/bundler/cli/issue.rb +0 -0
- /data/{bundler/lib → lib}/bundler/cli/list.rb +0 -0
- /data/{bundler/lib → lib}/bundler/cli/open.rb +0 -0
- /data/{bundler/lib → lib}/bundler/cli/platform.rb +0 -0
- /data/{bundler/lib → lib}/bundler/cli/plugin.rb +0 -0
- /data/{bundler/lib → lib}/bundler/cli/remove.rb +0 -0
- /data/{bundler/lib → lib}/bundler/cli/show.rb +0 -0
- /data/{bundler/lib → lib}/bundler/constants.rb +0 -0
- /data/{bundler/lib → lib}/bundler/current_ruby.rb +0 -0
- /data/{bundler/lib → lib}/bundler/deployment.rb +0 -0
- /data/{bundler/lib → lib}/bundler/deprecate.rb +0 -0
- /data/{bundler/lib → lib}/bundler/digest.rb +0 -0
- /data/{bundler/lib → lib}/bundler/environment_preserver.rb +0 -0
- /data/{bundler/lib → lib}/bundler/feature_flag.rb +0 -0
- /data/{bundler/lib → lib}/bundler/fetcher/base.rb +0 -0
- /data/{bundler/lib → lib}/bundler/fetcher/dependency.rb +0 -0
- /data/{bundler/lib → lib}/bundler/fetcher/gem_remote_fetcher.rb +0 -0
- /data/{bundler/lib → lib}/bundler/fetcher/index.rb +0 -0
- /data/{bundler/lib → lib}/bundler/force_platform.rb +0 -0
- /data/{bundler/lib → lib}/bundler/friendly_errors.rb +0 -0
- /data/{bundler/lib → lib}/bundler/gem_helper.rb +0 -0
- /data/{bundler/lib → lib}/bundler/gem_tasks.rb +0 -0
- /data/{bundler/lib → lib}/bundler/gem_version_promoter.rb +0 -0
- /data/{bundler/lib → lib}/bundler/index.rb +0 -0
- /data/{bundler/lib → lib}/bundler/installer/gem_installer.rb +0 -0
- /data/{bundler/lib → lib}/bundler/installer/standalone.rb +0 -0
- /data/{bundler/lib → lib}/bundler/man/.document +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-binstubs.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-check.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-clean.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-console.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-doctor.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-env.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-exec.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-fund.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-gem.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-help.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-info.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-init.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-issue.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-licenses.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-list.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-open.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-outdated.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-platform.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-plugin.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-pristine.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-remove.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-show.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-version.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/index.txt +0 -0
- /data/{bundler/lib → lib}/bundler/mirror.rb +0 -0
- /data/{bundler/lib → lib}/bundler/plugin/api/source.rb +0 -0
- /data/{bundler/lib → lib}/bundler/plugin/api.rb +0 -0
- /data/{bundler/lib → lib}/bundler/plugin/installer/git.rb +0 -0
- /data/{bundler/lib → lib}/bundler/plugin/installer/rubygems.rb +0 -0
- /data/{bundler/lib → lib}/bundler/plugin/source_list.rb +0 -0
- /data/{bundler/lib → lib}/bundler/plugin/unloaded_source.rb +0 -0
- /data/{bundler/lib → lib}/bundler/process_lock.rb +0 -0
- /data/{bundler/lib → lib}/bundler/resolver/candidate.rb +0 -0
- /data/{bundler/lib → lib}/bundler/resolver/package.rb +0 -0
- /data/{bundler/lib → lib}/bundler/resolver/root.rb +0 -0
- /data/{bundler/lib → lib}/bundler/resolver/spec_group.rb +0 -0
- /data/{bundler/lib → lib}/bundler/resolver/strategy.rb +0 -0
- /data/{bundler/lib → lib}/bundler/retry.rb +0 -0
- /data/{bundler/lib → lib}/bundler/ruby_dsl.rb +0 -0
- /data/{bundler/lib → lib}/bundler/safe_marshal.rb +0 -0
- /data/{bundler/lib → lib}/bundler/settings/validator.rb +0 -0
- /data/{bundler/lib → lib}/bundler/setup.rb +0 -0
- /data/{bundler/lib → lib}/bundler/source/gemspec.rb +0 -0
- /data/{bundler/lib → lib}/bundler/source/metadata.rb +0 -0
- /data/{bundler/lib → lib}/bundler/source/path.rb +0 -0
- /data/{bundler/lib → lib}/bundler/source/rubygems_aggregate.rb +0 -0
- /data/{bundler/lib → lib}/bundler/source.rb +0 -0
- /data/{bundler/lib → lib}/bundler/source_list.rb +0 -0
- /data/{bundler/lib → lib}/bundler/source_map.rb +0 -0
- /data/{bundler/lib → lib}/bundler/templates/.document +0 -0
- /data/{bundler/lib → lib}/bundler/templates/Executable +0 -0
- /data/{bundler/lib → lib}/bundler/templates/Executable.standalone +0 -0
- /data/{bundler/lib → lib}/bundler/templates/Gemfile +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/CHANGELOG.md.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/Cargo.toml.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/LICENSE.txt.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/README.md.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/Rakefile.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/bin/console.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/bin/setup.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/circleci/config.yml.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/exe/newgem.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/ext/newgem/build.rs.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/ext/newgem/extconf-go.rb.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/ext/newgem/go.mod.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/ext/newgem/newgem-go.c.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/ext/newgem/newgem.c.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/ext/newgem/newgem.go.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/ext/newgem/newgem.h.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/github/workflows/build-gems.yml.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/github/workflows/main.yml.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/gitignore.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/gitlab-ci.yml.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/lib/newgem/version.rb.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/lib/newgem.rb.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/rspec.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/rubocop.yml.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/sig/newgem.rbs.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/spec/spec_helper.rb.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/standard.yml.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/test/minitest/test_helper.rb.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/test/test-unit/test_helper.rb.tt +0 -0
- /data/{bundler/lib → lib}/bundler/ui/rg_proxy.rb +0 -0
- /data/{bundler/lib → lib}/bundler/ui.rb +0 -0
- /data/{bundler/lib → lib}/bundler/uri_credentials_filter.rb +0 -0
- /data/{bundler/lib → lib}/bundler/uri_normalizer.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/.document +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/fileutils/COPYING +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/fileutils/lib/fileutils.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/LICENSE.md +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/actions/create_file.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/actions/create_link.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/actions/directory.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/actions/empty_directory.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/actions.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/command.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/error.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/group.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/invocation.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/line_editor/basic.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/line_editor/readline.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/line_editor.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/nested_context.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/parser/argument.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/parser/arguments.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/parser/option.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/parser/options.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/parser.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/rake_compat.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/runner.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/shell/column_printer.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/shell/html.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/shell/table_printer.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/shell/terminal.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/shell/wrapped_printer.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/shell.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/util.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendored_fileutils.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendored_net_http.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendored_thor.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendored_timeout.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendored_tsort.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vlad.rb +0 -0
- /data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/LICENSE.txt +0 -0
- /data/{bundler/lib/bundler/vendor/securerandom → lib/rubygems/vendor/resolv}/COPYING +0 -0
|
@@ -20,10 +20,6 @@ module Bundler
|
|
|
20
20
|
state == :installed
|
|
21
21
|
end
|
|
22
22
|
|
|
23
|
-
def enqueued?
|
|
24
|
-
state == :enqueued
|
|
25
|
-
end
|
|
26
|
-
|
|
27
23
|
def enqueue_with_priority?
|
|
28
24
|
state == :installable && spec.extensions.any?
|
|
29
25
|
end
|
|
@@ -100,7 +96,8 @@ module Bundler
|
|
|
100
96
|
handle_error if failed_specs.any?
|
|
101
97
|
@specs
|
|
102
98
|
ensure
|
|
103
|
-
worker_pool&.stop
|
|
99
|
+
@worker_pool&.stop
|
|
100
|
+
@download_worker_pool&.stop
|
|
104
101
|
end
|
|
105
102
|
|
|
106
103
|
private
|
|
@@ -170,17 +167,18 @@ module Bundler
|
|
|
170
167
|
end
|
|
171
168
|
end
|
|
172
169
|
|
|
170
|
+
def download_worker_pool
|
|
171
|
+
@download_worker_pool ||= Bundler::Worker.new(@size, "Gem Downloader",
|
|
172
|
+
->(spec_install, worker_num) { do_download(spec_install, worker_num) }, response_queue: response_queue)
|
|
173
|
+
end
|
|
174
|
+
|
|
173
175
|
def worker_pool
|
|
174
|
-
@worker_pool ||= Bundler::Worker.new
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
else
|
|
181
|
-
spec_install
|
|
182
|
-
end
|
|
183
|
-
}
|
|
176
|
+
@worker_pool ||= Bundler::Worker.new(@size, "Parallel Installer",
|
|
177
|
+
->(spec_install, worker_num) { do_install(spec_install, worker_num) }, response_queue: response_queue)
|
|
178
|
+
end
|
|
179
|
+
|
|
180
|
+
def response_queue
|
|
181
|
+
@response_queue ||= Thread::Queue.new
|
|
184
182
|
end
|
|
185
183
|
|
|
186
184
|
def do_download(spec_install, worker_num)
|
|
@@ -218,24 +216,24 @@ module Bundler
|
|
|
218
216
|
spec_install
|
|
219
217
|
end
|
|
220
218
|
|
|
221
|
-
#
|
|
222
|
-
#
|
|
223
|
-
#
|
|
224
|
-
# processed so the call to `enqueue_specs` is important after every
|
|
225
|
-
# dequeue.
|
|
219
|
+
# Process one completed download or installation. Downloads can finish
|
|
220
|
+
# before their dependencies are installed, so check all downloaded specs
|
|
221
|
+
# after each completion and enqueue any that are now installable.
|
|
226
222
|
def process_specs(installed_specs)
|
|
227
223
|
spec = worker_pool.deq
|
|
228
224
|
|
|
229
225
|
if spec.installed?
|
|
230
226
|
installed_specs[spec.name] = true
|
|
231
|
-
return
|
|
232
227
|
elsif spec.failed?
|
|
233
228
|
return
|
|
234
|
-
elsif spec.ready_to_install?(installed_specs)
|
|
235
|
-
spec.state = :installable
|
|
236
229
|
end
|
|
237
230
|
|
|
238
|
-
|
|
231
|
+
@specs.each do |candidate|
|
|
232
|
+
next unless candidate.ready_to_install?(installed_specs)
|
|
233
|
+
|
|
234
|
+
candidate.state = :installable
|
|
235
|
+
worker_pool.enq(candidate, priority: candidate.enqueue_with_priority?)
|
|
236
|
+
end
|
|
239
237
|
end
|
|
240
238
|
|
|
241
239
|
def finished_installing?
|
|
@@ -274,11 +272,8 @@ module Bundler
|
|
|
274
272
|
t
|
|
275
273
|
end
|
|
276
274
|
|
|
277
|
-
#
|
|
278
|
-
#
|
|
279
|
-
# Later we call this lambda again to install specs that depended on
|
|
280
|
-
# previously installed specifications. We continue until all specs
|
|
281
|
-
# are installed.
|
|
275
|
+
# Queue every missing spec for download. `process_specs` schedules each
|
|
276
|
+
# downloaded spec for installation once its dependencies are installed.
|
|
282
277
|
def enqueue_specs(installed_specs)
|
|
283
278
|
@specs.each do |spec|
|
|
284
279
|
if spec.installed?
|
|
@@ -287,7 +282,7 @@ module Bundler
|
|
|
287
282
|
end
|
|
288
283
|
|
|
289
284
|
spec.state = :enqueued
|
|
290
|
-
|
|
285
|
+
download_worker_pool.enq spec
|
|
291
286
|
end
|
|
292
287
|
end
|
|
293
288
|
end
|
|
@@ -228,18 +228,32 @@ module Bundler
|
|
|
228
228
|
end
|
|
229
229
|
|
|
230
230
|
def ensure_specs_are_compatible!
|
|
231
|
+
overrides = @definition.overrides
|
|
231
232
|
@definition.specs.each do |spec|
|
|
232
|
-
unless spec.
|
|
233
|
-
raise InstallError,
|
|
234
|
-
"which is incompatible with the current version, #{Gem.ruby_version}"
|
|
233
|
+
unless spec.matches_current_ruby_with_overrides?(overrides)
|
|
234
|
+
raise InstallError, incompatibility_message(spec, "requires ruby version #{spec.required_ruby_version}, " \
|
|
235
|
+
"which is incompatible with the current version, #{Gem.ruby_version}")
|
|
235
236
|
end
|
|
236
|
-
unless spec.
|
|
237
|
-
raise InstallError,
|
|
238
|
-
"which is incompatible with the current version, #{Gem.rubygems_version}"
|
|
237
|
+
unless spec.matches_current_rubygems_with_overrides?(overrides)
|
|
238
|
+
raise InstallError, incompatibility_message(spec, "requires rubygems version #{spec.required_rubygems_version}, " \
|
|
239
|
+
"which is incompatible with the current version, #{Gem.rubygems_version}")
|
|
239
240
|
end
|
|
240
241
|
end
|
|
241
242
|
end
|
|
242
243
|
|
|
244
|
+
# Build the error raised when a locked spec can't run on the current Ruby or
|
|
245
|
+
# RubyGems. When the offending spec is a platform-specific variant locked in
|
|
246
|
+
# frozen mode, point users at the fix: re-resolving outside frozen mode adds
|
|
247
|
+
# the Ruby (non platform-specific) fallback variant to the lockfile.
|
|
248
|
+
def incompatibility_message(spec, reason)
|
|
249
|
+
message = "#{spec.full_name} #{reason}"
|
|
250
|
+
return message unless Bundler.frozen_bundle? && spec.platform != Gem::Platform::RUBY
|
|
251
|
+
|
|
252
|
+
message + "\n\nThe lockfile only includes the #{spec.platform} variant of #{spec.name}. " \
|
|
253
|
+
"If a compatible Ruby variant is available, run `bundle install` outside of frozen/deployment mode " \
|
|
254
|
+
"to add it to the lockfile as a fallback, then commit the updated #{SharedHelpers.relative_lockfile_path}."
|
|
255
|
+
end
|
|
256
|
+
|
|
243
257
|
def lock
|
|
244
258
|
@definition.lock
|
|
245
259
|
end
|
|
@@ -8,8 +8,9 @@ module Bundler
|
|
|
8
8
|
include MatchPlatform
|
|
9
9
|
include ForcePlatform
|
|
10
10
|
|
|
11
|
-
attr_reader :name, :version, :platform, :materialization
|
|
11
|
+
attr_reader :name, :version, :platform, :materialization, :content_address
|
|
12
12
|
attr_accessor :source, :remote, :force_ruby_platform, :dependencies, :required_ruby_version, :required_rubygems_version
|
|
13
|
+
attr_accessor :overrides
|
|
13
14
|
|
|
14
15
|
#
|
|
15
16
|
# For backwards compatibility with existing lockfiles, if the most specific
|
|
@@ -26,20 +27,22 @@ module Bundler
|
|
|
26
27
|
alias_method :runtime_dependencies, :dependencies
|
|
27
28
|
|
|
28
29
|
def self.from_spec(s)
|
|
29
|
-
lazy_spec = new(s.name, s.version, s.platform, s.source)
|
|
30
|
+
lazy_spec = new(s.name, s.version, s.platform, s.source, content_address: s.content_address)
|
|
30
31
|
lazy_spec.dependencies = s.runtime_dependencies
|
|
31
32
|
lazy_spec.required_ruby_version = s.required_ruby_version
|
|
32
33
|
lazy_spec.required_rubygems_version = s.required_rubygems_version
|
|
34
|
+
lazy_spec.overrides = s.overrides if s.is_a?(LazySpecification)
|
|
33
35
|
lazy_spec
|
|
34
36
|
end
|
|
35
37
|
|
|
36
|
-
def initialize(name, version, platform, source = nil, **materialization_options)
|
|
38
|
+
def initialize(name, version, platform, source = nil, content_address: nil, **materialization_options)
|
|
37
39
|
@name = name
|
|
38
40
|
@version = version
|
|
39
41
|
@dependencies = []
|
|
40
42
|
@required_ruby_version = Gem::Requirement.default
|
|
41
43
|
@required_rubygems_version = Gem::Requirement.default
|
|
42
44
|
@platform = platform || Gem::Platform::RUBY
|
|
45
|
+
@content_address = content_address
|
|
43
46
|
|
|
44
47
|
@original_source = source
|
|
45
48
|
@source = source
|
|
@@ -63,19 +66,25 @@ module Bundler
|
|
|
63
66
|
end
|
|
64
67
|
|
|
65
68
|
def full_name
|
|
66
|
-
@full_name ||= if
|
|
69
|
+
@full_name ||= if Gem::ContentAddress.content_addressed?(self, validate_ruby_abi: false)
|
|
70
|
+
"#{@name}-#{@version}-#{@content_address}"
|
|
71
|
+
elsif platform == Gem::Platform::RUBY
|
|
67
72
|
"#{@name}-#{@version}"
|
|
68
73
|
else
|
|
69
74
|
"#{@name}-#{@version}-#{platform}"
|
|
70
75
|
end
|
|
71
76
|
end
|
|
72
77
|
|
|
78
|
+
def file_name
|
|
79
|
+
"#{full_name}.gem"
|
|
80
|
+
end
|
|
81
|
+
|
|
73
82
|
def lock_name
|
|
74
83
|
@lock_name ||= name_tuple.lock_name
|
|
75
84
|
end
|
|
76
85
|
|
|
77
86
|
def name_tuple
|
|
78
|
-
Gem::NameTuple.new(@name, @version, @platform)
|
|
87
|
+
Gem::NameTuple.new(@name, @version, @platform, content_address: @content_address)
|
|
79
88
|
end
|
|
80
89
|
|
|
81
90
|
def ==(other)
|
|
@@ -110,6 +119,16 @@ module Bundler
|
|
|
110
119
|
@name == dependency.name && effective_requirement.satisfied_by?(Gem::Version.new(@version))
|
|
111
120
|
end
|
|
112
121
|
|
|
122
|
+
##
|
|
123
|
+
# Assigns the content address parsed from the lockfile's CONTENT
|
|
124
|
+
# ADDRESSES section. The full name embeds the content address, so its
|
|
125
|
+
# memoization must be invalidated.
|
|
126
|
+
|
|
127
|
+
def content_address=(value)
|
|
128
|
+
@content_address = value
|
|
129
|
+
@full_name = nil
|
|
130
|
+
end
|
|
131
|
+
|
|
113
132
|
def to_lock
|
|
114
133
|
out = String.new
|
|
115
134
|
out << " #{lock_name}\n"
|
|
@@ -128,13 +147,13 @@ module Bundler
|
|
|
128
147
|
materialize(self, &:first)
|
|
129
148
|
end
|
|
130
149
|
|
|
131
|
-
def materialized_for_installation
|
|
132
|
-
@materialization = materialize_for_installation
|
|
150
|
+
def materialized_for_installation(locked_platforms = nil)
|
|
151
|
+
@materialization = materialize_for_installation(locked_platforms)
|
|
133
152
|
|
|
134
153
|
self unless incomplete?
|
|
135
154
|
end
|
|
136
155
|
|
|
137
|
-
def materialize_for_installation
|
|
156
|
+
def materialize_for_installation(locked_platforms)
|
|
138
157
|
source.local!
|
|
139
158
|
|
|
140
159
|
if use_exact_resolved_specifications?
|
|
@@ -144,7 +163,7 @@ module Bundler
|
|
|
144
163
|
# Exact spec is incompatible; in frozen mode, try to find a compatible platform variant
|
|
145
164
|
# In non-frozen mode, return nil to trigger re-resolution and lockfile update
|
|
146
165
|
if Bundler.frozen_bundle?
|
|
147
|
-
materialize([name, version]) {|specs| resolve_best_platform(specs) }
|
|
166
|
+
materialize([name, version]) {|specs| resolve_best_platform(specs, locked_platforms: locked_platforms) }
|
|
148
167
|
end
|
|
149
168
|
else
|
|
150
169
|
materialize([name, version]) {|specs| resolve_best_platform(specs) }
|
|
@@ -185,12 +204,14 @@ module Bundler
|
|
|
185
204
|
# Try platforms in order of preference until finding a compatible spec.
|
|
186
205
|
# Used for legacy lockfiles and as a fallback when the exact locked spec
|
|
187
206
|
# is incompatible. Falls back to frozen bundle behavior if none match.
|
|
188
|
-
def resolve_best_platform(specs)
|
|
189
|
-
|
|
207
|
+
def resolve_best_platform(specs, locked_platforms: nil)
|
|
208
|
+
specs = MatchPlatform.select_all_content_address_match(specs, content_address)
|
|
209
|
+
|
|
210
|
+
find_compatible_platform_spec(specs, locked_platforms: locked_platforms) || frozen_bundle_fallback(specs)
|
|
190
211
|
end
|
|
191
212
|
|
|
192
|
-
def find_compatible_platform_spec(specs)
|
|
193
|
-
candidate_platforms.each do |plat|
|
|
213
|
+
def find_compatible_platform_spec(specs, locked_platforms: nil)
|
|
214
|
+
candidate_platforms(locked_platforms: locked_platforms).each do |plat|
|
|
194
215
|
candidates = MatchPlatform.select_best_platform_match(specs, plat)
|
|
195
216
|
spec = choose_compatible(candidates, fallback_to_non_installable: false)
|
|
196
217
|
return spec if spec
|
|
@@ -200,9 +221,14 @@ module Bundler
|
|
|
200
221
|
|
|
201
222
|
# Platforms to try in order of preference. Ruby platform is last since it
|
|
202
223
|
# requires compilation, but works when precompiled gems are incompatible.
|
|
203
|
-
|
|
224
|
+
# When a set of locked platforms is given (frozen mode), restrict the
|
|
225
|
+
# candidates to those, so we never materialize a platform that wasn't locked.
|
|
226
|
+
def candidate_platforms(locked_platforms: nil)
|
|
204
227
|
target = source.is_a?(Source::Path) ? platform : Bundler.local_platform
|
|
205
|
-
[target, platform, Gem::Platform::RUBY].uniq
|
|
228
|
+
platforms = [target, platform, Gem::Platform::RUBY].uniq
|
|
229
|
+
return platforms unless locked_platforms
|
|
230
|
+
|
|
231
|
+
platforms & locked_platforms
|
|
206
232
|
end
|
|
207
233
|
|
|
208
234
|
# In frozen mode, accept any candidate. Will error at install time.
|
|
@@ -234,8 +260,9 @@ module Bundler
|
|
|
234
260
|
# about the mismatch higher up the stack, right before trying to install the
|
|
235
261
|
# bad gem.
|
|
236
262
|
def choose_compatible(candidates, fallback_to_non_installable: Bundler.frozen_bundle?)
|
|
263
|
+
override_list = overrides || []
|
|
237
264
|
search = candidates.reverse.find do |spec|
|
|
238
|
-
spec.is_a?(StubSpecification) || spec.
|
|
265
|
+
spec.is_a?(StubSpecification) || spec.matches_current_metadata_with_overrides?(override_list)
|
|
239
266
|
end
|
|
240
267
|
if search.nil? && fallback_to_non_installable
|
|
241
268
|
search = candidates.last
|
|
@@ -262,7 +289,7 @@ module Bundler
|
|
|
262
289
|
spec.dependencies = dependencies
|
|
263
290
|
else
|
|
264
291
|
if !source.is_a?(Source::Path) && spec.runtime_dependencies.sort != dependencies.sort
|
|
265
|
-
raise IncorrectLockfileDependencies.new(self)
|
|
292
|
+
raise IncorrectLockfileDependencies.new(self, spec.runtime_dependencies, dependencies)
|
|
266
293
|
end
|
|
267
294
|
end
|
|
268
295
|
end
|
|
@@ -19,6 +19,7 @@ module Bundler
|
|
|
19
19
|
add_sources
|
|
20
20
|
add_platforms
|
|
21
21
|
add_dependencies
|
|
22
|
+
add_content_addresses
|
|
22
23
|
add_checksums
|
|
23
24
|
add_locked_ruby_version
|
|
24
25
|
add_bundled_with
|
|
@@ -66,10 +67,31 @@ module Bundler
|
|
|
66
67
|
end
|
|
67
68
|
end
|
|
68
69
|
|
|
70
|
+
def add_content_addresses
|
|
71
|
+
content_addresses = definition.resolve.filter_map do |spec|
|
|
72
|
+
next unless Gem::ContentAddress.content_addressed?(spec, validate_ruby_abi: false)
|
|
73
|
+
|
|
74
|
+
line = "#{spec.lock_name} #{spec.content_address}"
|
|
75
|
+
|
|
76
|
+
if definition.locked_checksums
|
|
77
|
+
checksums = spec.source.checksum_store.checksums_to_lock(spec.full_name)
|
|
78
|
+
line += " #{checksums}" if checksums
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
line
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
add_section("CONTENT ADDRESSES", content_addresses) unless content_addresses.empty?
|
|
85
|
+
end
|
|
86
|
+
|
|
69
87
|
def add_checksums
|
|
70
88
|
return unless definition.locked_checksums
|
|
71
|
-
checksums = definition.resolve.
|
|
72
|
-
spec.source.checksum_store.to_lock(spec)
|
|
89
|
+
checksums = definition.resolve.filter_map do |spec|
|
|
90
|
+
line = spec.source.checksum_store.to_lock(spec)
|
|
91
|
+
|
|
92
|
+
next if line == spec.lock_name && Gem::ContentAddress.content_addressed?(spec, validate_ruby_abi: false)
|
|
93
|
+
|
|
94
|
+
line
|
|
73
95
|
end
|
|
74
96
|
|
|
75
97
|
add_section("CHECKSUMS", checksums + bundler_checksum)
|
|
@@ -41,6 +41,7 @@ module Bundler
|
|
|
41
41
|
BUNDLED = "BUNDLED WITH"
|
|
42
42
|
DEPENDENCIES = "DEPENDENCIES"
|
|
43
43
|
CHECKSUMS = "CHECKSUMS"
|
|
44
|
+
CONTENT_ADDRESSES = "CONTENT ADDRESSES"
|
|
44
45
|
PLATFORMS = "PLATFORMS"
|
|
45
46
|
RUBY = "RUBY VERSION"
|
|
46
47
|
GIT = "GIT"
|
|
@@ -57,6 +58,7 @@ module Bundler
|
|
|
57
58
|
Gem::Version.create("1.12") => [RUBY].freeze,
|
|
58
59
|
Gem::Version.create("1.13") => [PLUGIN].freeze,
|
|
59
60
|
Gem::Version.create("2.5.0") => [CHECKSUMS].freeze,
|
|
61
|
+
Gem::Version.create("4.1.0") => [CONTENT_ADDRESSES].freeze,
|
|
60
62
|
}.freeze
|
|
61
63
|
|
|
62
64
|
KNOWN_SECTIONS = SECTIONS_BY_VERSION_INTRODUCED.values.flatten!.freeze
|
|
@@ -95,14 +97,14 @@ module Bundler
|
|
|
95
97
|
lockfile_contents.split(BUNDLED).last.strip
|
|
96
98
|
end
|
|
97
99
|
|
|
98
|
-
def initialize(lockfile, strict: false)
|
|
100
|
+
def initialize(lockfile, strict: false, lockfile_path: nil)
|
|
99
101
|
@platforms = []
|
|
100
102
|
@sources = []
|
|
101
103
|
@metadata_source = Source::Metadata.new
|
|
102
104
|
@dependencies = {}
|
|
103
105
|
@parse_method = nil
|
|
104
106
|
@specs = {}
|
|
105
|
-
@lockfile_path = begin
|
|
107
|
+
@lockfile_path = lockfile_path || begin
|
|
106
108
|
SharedHelpers.relative_lockfile_path
|
|
107
109
|
rescue GemfileNotFound
|
|
108
110
|
"Gemfile.lock"
|
|
@@ -140,6 +142,8 @@ module Bundler
|
|
|
140
142
|
# for all gemfiles that don't already explicitly include the feature.
|
|
141
143
|
@checksums = true
|
|
142
144
|
@parse_method = :parse_checksum
|
|
145
|
+
elsif line == CONTENT_ADDRESSES
|
|
146
|
+
@parse_method = :parse_content_address
|
|
143
147
|
elsif line == PLATFORMS
|
|
144
148
|
@parse_method = :parse_platform
|
|
145
149
|
elsif line == RUBY
|
|
@@ -227,6 +231,16 @@ module Bundler
|
|
|
227
231
|
$ # Line end
|
|
228
232
|
/xo
|
|
229
233
|
|
|
234
|
+
NAME_VERSION_CONTENT_ADDRESS = /
|
|
235
|
+
^#{space}{2}(?!#{space}) # Exactly 2 spaces at the start of the line
|
|
236
|
+
(.*?) # Name
|
|
237
|
+
#{space}\(([^-]*) # Space, followed by version
|
|
238
|
+
-(.*)\) # Platform, always present for content-addressable gems
|
|
239
|
+
#{space}([0-9a-f]{8,64}) # Content address
|
|
240
|
+
(?:#{space}([^ ]+))? # Optional checksums
|
|
241
|
+
$ # Line end
|
|
242
|
+
/xo
|
|
243
|
+
|
|
230
244
|
def parse_dependency(line)
|
|
231
245
|
return unless line =~ NAME_VERSION
|
|
232
246
|
spaces = $1
|
|
@@ -268,7 +282,8 @@ module Bundler
|
|
|
268
282
|
|
|
269
283
|
version = Gem::Version.new(version)
|
|
270
284
|
platform = platform ? Gem::Platform.new(platform) : Gem::Platform::RUBY
|
|
271
|
-
|
|
285
|
+
name_tuple = Gem::NameTuple.new(name, version, platform)
|
|
286
|
+
full_name = name_tuple.full_name
|
|
272
287
|
spec = @specs[full_name]
|
|
273
288
|
|
|
274
289
|
if name == "bundler"
|
|
@@ -280,10 +295,33 @@ module Bundler
|
|
|
280
295
|
checksums.split(",") do |lock_checksum|
|
|
281
296
|
column = line.index(lock_checksum) + 1
|
|
282
297
|
checksum = Checksum.from_lock(lock_checksum, "#{@lockfile_path}:#{@pos.line}:#{column}")
|
|
283
|
-
spec.source.checksum_store.register(
|
|
298
|
+
spec.source.checksum_store.register(name_tuple, checksum)
|
|
284
299
|
end
|
|
285
300
|
else
|
|
286
|
-
spec.source.checksum_store.register(
|
|
301
|
+
spec.source.checksum_store.register(name_tuple, nil)
|
|
302
|
+
end
|
|
303
|
+
end
|
|
304
|
+
|
|
305
|
+
def parse_content_address(line)
|
|
306
|
+
return unless line =~ NAME_VERSION_CONTENT_ADDRESS
|
|
307
|
+
|
|
308
|
+
name = -$1
|
|
309
|
+
version = Gem::Version.new($2)
|
|
310
|
+
platform = Gem::Platform.new($3)
|
|
311
|
+
content_address = $4
|
|
312
|
+
checksums = $5
|
|
313
|
+
|
|
314
|
+
spec = @specs[Gem::NameTuple.new(name, version, platform).full_name]
|
|
315
|
+
return unless spec
|
|
316
|
+
|
|
317
|
+
spec.content_address = content_address
|
|
318
|
+
|
|
319
|
+
return unless checksums
|
|
320
|
+
|
|
321
|
+
checksums.split(",") do |lock_checksum|
|
|
322
|
+
column = line.index(lock_checksum) + 1
|
|
323
|
+
checksum = Checksum.from_lock(lock_checksum, "#{@lockfile_path}:#{@pos.line}:#{column}")
|
|
324
|
+
spec.source.checksum_store.register(spec, checksum)
|
|
287
325
|
end
|
|
288
326
|
end
|
|
289
327
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.\" generated with Ronn-NG/v0.10.1
|
|
2
2
|
.\" http://github.com/apjanke/ronn-ng/tree/0.10.1
|
|
3
|
-
.TH "BUNDLE\-ADD" "1" "
|
|
3
|
+
.TH "BUNDLE\-ADD" "1" "May 2026" ""
|
|
4
4
|
.SH "NAME"
|
|
5
5
|
\fBbundle\-add\fR \- Add gem to the Gemfile and run bundle install
|
|
6
6
|
.SH "SYNOPSIS"
|
|
@@ -46,13 +46,16 @@ Do not print progress information to the standard output\.
|
|
|
46
46
|
Adds the gem to the Gemfile but does not install it\.
|
|
47
47
|
.TP
|
|
48
48
|
\fB\-\-optimistic\fR
|
|
49
|
-
|
|
49
|
+
Ignored (now default behavior)
|
|
50
|
+
.TP
|
|
51
|
+
\fB\-\-pessimistic\fR
|
|
52
|
+
Adds pessimistic declaration of version\.
|
|
50
53
|
.TP
|
|
51
54
|
\fB\-\-strict\fR
|
|
52
55
|
Adds strict declaration of version\.
|
|
53
56
|
.TP
|
|
54
57
|
\fB\-\-cooldown=<number>\fR
|
|
55
|
-
Only consider gem versions published at least \fInumber\fR days ago when resolving\. Pass \fB0\fR to disable cooldown for this run\. See \fBcooldown\fR in bundle\-config(1) for precedence rules\.
|
|
58
|
+
Only consider gem versions published at least \fInumber\fR days ago when resolving\. Pass \fB0\fR to disable cooldown for this run, overriding every other cooldown setting, RubyGems' own included\. See \fBcooldown\fR in bundle\-config(1) for precedence rules\.
|
|
56
59
|
.SH "EXAMPLES"
|
|
57
60
|
.IP "1." 4
|
|
58
61
|
You can add the \fBrails\fR gem to the Gemfile without any version restriction\. The source of the gem will be the global source\.
|
|
@@ -65,7 +68,7 @@ You can add the \fBrails\fR gem with version greater than 1\.1 (not including 1\
|
|
|
65
68
|
.IP "3." 4
|
|
66
69
|
You can use the \fBhttps://gems\.example\.com\fR custom source and assign the gem to a group\.
|
|
67
70
|
.IP
|
|
68
|
-
\fBbundle add rails \-\-version "
|
|
71
|
+
\fBbundle add rails \-\-version ">= 5\.0\.0" \-\-source "https://gems\.example\.com" \-\-group "development"\fR
|
|
69
72
|
.IP "4." 4
|
|
70
73
|
The following adds the \fBgem\fR entry to the Gemfile without installing the gem\. You can install gems later via \fBbundle install\fR\.
|
|
71
74
|
.IP
|
|
@@ -51,15 +51,19 @@ Adds the named gem to the [`Gemfile(5)`][Gemfile(5)] and run `bundle install`.
|
|
|
51
51
|
Adds the gem to the Gemfile but does not install it.
|
|
52
52
|
|
|
53
53
|
* `--optimistic`:
|
|
54
|
-
|
|
54
|
+
Ignored (now default behavior)
|
|
55
|
+
|
|
56
|
+
* `--pessimistic`:
|
|
57
|
+
Adds pessimistic declaration of version.
|
|
55
58
|
|
|
56
59
|
* `--strict`:
|
|
57
60
|
Adds strict declaration of version.
|
|
58
61
|
|
|
59
62
|
* `--cooldown=<number>`:
|
|
60
63
|
Only consider gem versions published at least <number> days ago when
|
|
61
|
-
resolving. Pass `0` to disable cooldown for this run
|
|
62
|
-
|
|
64
|
+
resolving. Pass `0` to disable cooldown for this run, overriding every
|
|
65
|
+
other cooldown setting, RubyGems' own included. See `cooldown` in
|
|
66
|
+
bundle-config(1) for precedence rules.
|
|
63
67
|
|
|
64
68
|
## EXAMPLES
|
|
65
69
|
|
|
@@ -75,7 +79,7 @@ Adds the named gem to the [`Gemfile(5)`][Gemfile(5)] and run `bundle install`.
|
|
|
75
79
|
3. You can use the `https://gems.example.com` custom source and assign the gem
|
|
76
80
|
to a group.
|
|
77
81
|
|
|
78
|
-
`bundle add rails --version "
|
|
82
|
+
`bundle add rails --version ">= 5.0.0" --source "https://gems.example.com" --group "development"`
|
|
79
83
|
|
|
80
84
|
4. The following adds the `gem` entry to the Gemfile without installing the
|
|
81
85
|
gem. You can install gems later via `bundle install`.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.\" generated with Ronn-NG/v0.10.1
|
|
2
2
|
.\" http://github.com/apjanke/ronn-ng/tree/0.10.1
|
|
3
|
-
.TH "BUNDLE\-BINSTUBS" "1" "
|
|
3
|
+
.TH "BUNDLE\-BINSTUBS" "1" "May 2026" ""
|
|
4
4
|
.SH "NAME"
|
|
5
5
|
\fBbundle\-binstubs\fR \- Install the binstubs of the listed gems
|
|
6
6
|
.SH "SYNOPSIS"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.\" generated with Ronn-NG/v0.10.1
|
|
2
2
|
.\" http://github.com/apjanke/ronn-ng/tree/0.10.1
|
|
3
|
-
.TH "BUNDLE\-CACHE" "1" "
|
|
3
|
+
.TH "BUNDLE\-CACHE" "1" "May 2026" ""
|
|
4
4
|
.SH "NAME"
|
|
5
5
|
\fBbundle\-cache\fR \- Package your needed \fB\.gem\fR files into your application
|
|
6
6
|
.SH "SYNOPSIS"
|
|
@@ -18,7 +18,7 @@ Include gems for all platforms present in the lockfile, not only the current one
|
|
|
18
18
|
Specify a different cache path than the default (vendor/cache)\.
|
|
19
19
|
.TP
|
|
20
20
|
\fB\-\-cooldown=<number>\fR
|
|
21
|
-
Only consider gem versions published at least \fInumber\fR days ago when resolving before caching\. Pass \fB0\fR to disable cooldown for this run, overriding
|
|
21
|
+
Only consider gem versions published at least \fInumber\fR days ago when resolving before caching\. Pass \fB0\fR to disable cooldown for this run, overriding every other cooldown setting, RubyGems' own included\. See \fBcooldown\fR in bundle\-config(1)\.
|
|
22
22
|
.TP
|
|
23
23
|
\fB\-\-gemfile=GEMFILE\fR
|
|
24
24
|
Use the specified gemfile instead of Gemfile\.
|
|
@@ -24,8 +24,8 @@ use the gems in the cache in preference to the ones on `rubygems.org`.
|
|
|
24
24
|
* `--cooldown=<number>`:
|
|
25
25
|
Only consider gem versions published at least <number> days ago when
|
|
26
26
|
resolving before caching. Pass `0` to disable cooldown for this run,
|
|
27
|
-
overriding
|
|
28
|
-
bundle-config(1).
|
|
27
|
+
overriding every other cooldown setting, RubyGems' own included. See
|
|
28
|
+
`cooldown` in bundle-config(1).
|
|
29
29
|
|
|
30
30
|
* `--gemfile=GEMFILE`:
|
|
31
31
|
Use the specified gemfile instead of Gemfile.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.\" generated with Ronn-NG/v0.10.1
|
|
2
2
|
.\" http://github.com/apjanke/ronn-ng/tree/0.10.1
|
|
3
|
-
.TH "BUNDLE\-CHECK" "1" "
|
|
3
|
+
.TH "BUNDLE\-CHECK" "1" "May 2026" ""
|
|
4
4
|
.SH "NAME"
|
|
5
5
|
\fBbundle\-check\fR \- Verifies if dependencies are satisfied by installed gems
|
|
6
6
|
.SH "SYNOPSIS"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.\" generated with Ronn-NG/v0.10.1
|
|
2
2
|
.\" http://github.com/apjanke/ronn-ng/tree/0.10.1
|
|
3
|
-
.TH "BUNDLE\-CLEAN" "1" "
|
|
3
|
+
.TH "BUNDLE\-CLEAN" "1" "May 2026" ""
|
|
4
4
|
.SH "NAME"
|
|
5
5
|
\fBbundle\-clean\fR \- Cleans up unused gems in your bundler directory
|
|
6
6
|
.SH "SYNOPSIS"
|