bundler 1.17.2 → 2.2.33
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +2095 -1251
- data/LICENSE.md +18 -19
- data/README.md +10 -11
- data/bundler.gemspec +10 -28
- data/exe/bundle +22 -3
- data/lib/bundler/build_metadata.rb +4 -12
- data/lib/bundler/capistrano.rb +4 -4
- data/lib/bundler/cli/add.rb +28 -16
- data/lib/bundler/cli/binstubs.rb +6 -2
- data/lib/bundler/cli/cache.rb +24 -17
- data/lib/bundler/cli/check.rb +4 -2
- data/lib/bundler/cli/clean.rb +1 -1
- data/lib/bundler/cli/common.rb +39 -13
- data/lib/bundler/cli/config.rb +161 -86
- data/lib/bundler/cli/console.rb +1 -1
- data/lib/bundler/cli/doctor.rb +20 -9
- data/lib/bundler/cli/exec.rb +8 -25
- data/lib/bundler/cli/fund.rb +36 -0
- data/lib/bundler/cli/gem.rb +213 -32
- data/lib/bundler/cli/info.rb +42 -7
- data/lib/bundler/cli/init.rb +2 -2
- data/lib/bundler/cli/inject.rb +1 -1
- data/lib/bundler/cli/install.rb +34 -44
- data/lib/bundler/cli/issue.rb +8 -7
- data/lib/bundler/cli/list.rb +19 -11
- data/lib/bundler/cli/lock.rb +5 -1
- data/lib/bundler/cli/open.rb +11 -8
- data/lib/bundler/cli/outdated.rb +142 -118
- data/lib/bundler/cli/plugin.rb +19 -2
- data/lib/bundler/cli/pristine.rb +6 -1
- data/lib/bundler/cli/remove.rb +1 -2
- data/lib/bundler/cli/show.rb +2 -2
- data/lib/bundler/cli/update.rb +43 -16
- data/lib/bundler/cli.rb +211 -150
- data/lib/bundler/compact_index_client/cache.rb +6 -14
- data/lib/bundler/compact_index_client/gem_parser.rb +28 -0
- data/lib/bundler/compact_index_client/updater.rb +15 -28
- data/lib/bundler/compact_index_client.rb +28 -12
- data/lib/bundler/current_ruby.rb +14 -11
- data/lib/bundler/definition.rb +207 -368
- data/lib/bundler/dep_proxy.rb +16 -9
- data/lib/bundler/dependency.rb +19 -14
- data/lib/bundler/deployment.rb +1 -1
- data/lib/bundler/digest.rb +71 -0
- data/lib/bundler/dsl.rb +81 -81
- data/lib/bundler/endpoint_specification.rb +1 -1
- data/lib/bundler/env.rb +9 -14
- data/lib/bundler/environment_preserver.rb +29 -3
- data/lib/bundler/errors.rb +20 -3
- data/lib/bundler/feature_flag.rb +14 -33
- data/lib/bundler/fetcher/base.rb +1 -1
- data/lib/bundler/fetcher/compact_index.rb +28 -14
- data/lib/bundler/fetcher/dependency.rb +1 -1
- data/lib/bundler/fetcher/downloader.rb +14 -8
- data/lib/bundler/fetcher/index.rb +8 -8
- data/lib/bundler/fetcher.rb +22 -17
- data/lib/bundler/friendly_errors.rb +29 -48
- data/lib/bundler/gem_helper.rb +79 -43
- data/lib/bundler/gem_helpers.rb +38 -29
- data/lib/bundler/gem_tasks.rb +1 -1
- data/lib/bundler/gem_version_promoter.rb +5 -5
- data/lib/bundler/graph.rb +3 -3
- data/lib/bundler/index.rb +9 -9
- data/lib/bundler/injector.rb +33 -13
- data/lib/bundler/inline.rb +41 -30
- data/lib/bundler/installer/gem_installer.rb +9 -18
- data/lib/bundler/installer/parallel_installer.rb +50 -33
- data/lib/bundler/installer/standalone.rb +30 -11
- data/lib/bundler/installer.rb +39 -66
- data/lib/bundler/lazy_specification.rb +63 -28
- data/lib/bundler/lockfile_generator.rb +1 -1
- data/lib/bundler/lockfile_parser.rb +19 -52
- data/lib/bundler/{ssl_certs → man}/.document +0 -0
- data/{man → lib/bundler/man}/bundle-add.1 +10 -2
- data/{man/bundle-add.ronn → lib/bundler/man/bundle-add.1.ronn} +7 -1
- data/{man → lib/bundler/man}/bundle-binstubs.1 +6 -4
- data/{man/bundle-binstubs.ronn → lib/bundler/man/bundle-binstubs.1.ronn} +3 -5
- data/lib/bundler/man/bundle-cache.1 +55 -0
- data/{man/bundle-package.ronn → lib/bundler/man/bundle-cache.1.ronn} +15 -15
- data/{man → lib/bundler/man}/bundle-check.1 +1 -1
- data/{man/bundle-check.ronn → lib/bundler/man/bundle-check.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-clean.1 +1 -1
- data/{man/bundle-clean.ronn → lib/bundler/man/bundle-clean.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-config.1 +59 -60
- data/{man/bundle-config.ronn → lib/bundler/man/bundle-config.1.ronn} +77 -78
- data/{man → lib/bundler/man}/bundle-doctor.1 +1 -1
- data/{man/bundle-doctor.ronn → lib/bundler/man/bundle-doctor.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-exec.1 +2 -2
- data/{man/bundle-exec.ronn → lib/bundler/man/bundle-exec.1.ronn} +1 -1
- data/{man → lib/bundler/man}/bundle-gem.1 +38 -3
- data/{man/bundle-gem.ronn → lib/bundler/man/bundle-gem.1.ronn} +46 -7
- data/{man → lib/bundler/man}/bundle-info.1 +1 -1
- data/{man/bundle-info.ronn → lib/bundler/man/bundle-info.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-init.1 +2 -2
- data/{man/bundle-init.ronn → lib/bundler/man/bundle-init.1.ronn} +1 -1
- data/{man → lib/bundler/man}/bundle-inject.1 +1 -1
- data/{man/bundle-inject.ronn → lib/bundler/man/bundle-inject.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-install.1 +37 -7
- data/{man/bundle-install.ronn → lib/bundler/man/bundle-install.1.ronn} +34 -7
- data/{man → lib/bundler/man}/bundle-list.1 +7 -7
- data/{man/bundle-list.ronn → lib/bundler/man/bundle-list.1.ronn} +6 -6
- data/{man → lib/bundler/man}/bundle-lock.1 +1 -1
- data/{man/bundle-lock.ronn → lib/bundler/man/bundle-lock.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-open.1 +1 -1
- data/{man/bundle-open.ronn → lib/bundler/man/bundle-open.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-outdated.1 +1 -1
- data/{man/bundle-outdated.ronn → lib/bundler/man/bundle-outdated.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-platform.1 +1 -1
- data/{man/bundle-platform.ronn → lib/bundler/man/bundle-platform.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-pristine.1 +1 -1
- data/{man/bundle-pristine.ronn → lib/bundler/man/bundle-pristine.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-remove.1 +1 -1
- data/{man/bundle-remove.ronn → lib/bundler/man/bundle-remove.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-show.1 +1 -1
- data/{man/bundle-show.ronn → lib/bundler/man/bundle-show.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-update.1 +7 -7
- data/{man/bundle-update.ronn → lib/bundler/man/bundle-update.1.ronn} +6 -6
- data/{man → lib/bundler/man}/bundle-viz.1 +1 -1
- data/{man/bundle-viz.ronn → lib/bundler/man/bundle-viz.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle.1 +7 -3
- data/{man/bundle.ronn → lib/bundler/man/bundle.1.ronn} +5 -2
- data/{man → lib/bundler/man}/gemfile.5 +44 -21
- data/{man → lib/bundler/man}/gemfile.5.ronn +24 -20
- data/{man → lib/bundler/man}/index.txt +1 -1
- data/lib/bundler/match_platform.rb +1 -1
- data/lib/bundler/mirror.rb +5 -5
- data/lib/bundler/plugin/api/source.rb +27 -7
- data/lib/bundler/plugin/api.rb +1 -1
- data/lib/bundler/plugin/dsl.rb +1 -1
- data/lib/bundler/plugin/index.rb +27 -4
- data/lib/bundler/plugin/installer/rubygems.rb +1 -1
- data/lib/bundler/plugin/installer.rb +35 -22
- data/lib/bundler/plugin/source_list.rb +5 -1
- data/lib/bundler/plugin.rb +100 -42
- data/lib/bundler/psyched_yaml.rb +0 -15
- data/lib/bundler/remote_specification.rb +5 -4
- data/lib/bundler/resolver/spec_group.rb +57 -53
- data/lib/bundler/resolver.rb +127 -113
- data/lib/bundler/retry.rb +4 -4
- data/lib/bundler/ruby_version.rb +5 -20
- data/lib/bundler/rubygems_ext.rb +103 -79
- data/lib/bundler/rubygems_gem_installer.rb +69 -8
- data/lib/bundler/rubygems_integration.rb +181 -446
- data/lib/bundler/runtime.rb +24 -34
- data/lib/bundler/settings.rb +159 -110
- data/lib/bundler/setup.rb +11 -12
- data/lib/bundler/shared_helpers.rb +56 -90
- data/lib/bundler/similarity_detector.rb +3 -3
- data/lib/bundler/source/git/git_proxy.rb +106 -105
- data/lib/bundler/source/git.rb +66 -39
- data/lib/bundler/source/metadata.rb +9 -9
- data/lib/bundler/source/path/installer.rb +10 -10
- data/lib/bundler/source/path.rb +23 -12
- data/lib/bundler/source/rubygems/remote.rb +3 -4
- data/lib/bundler/source/rubygems.rb +136 -120
- data/lib/bundler/source/rubygems_aggregate.rb +68 -0
- data/lib/bundler/source.rb +27 -6
- data/lib/bundler/source_list.rb +101 -66
- data/lib/bundler/source_map.rb +58 -0
- data/lib/bundler/spec_set.rb +49 -53
- data/lib/bundler/stub_specification.rb +40 -34
- data/lib/bundler/templates/Executable.bundler +24 -15
- data/lib/bundler/templates/Gemfile +1 -1
- data/lib/bundler/templates/gems.rb +1 -1
- data/lib/bundler/templates/newgem/CHANGELOG.md.tt +5 -0
- data/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +57 -47
- data/lib/bundler/templates/newgem/Gemfile.tt +19 -2
- data/lib/bundler/templates/newgem/README.md.tt +7 -5
- data/lib/bundler/templates/newgem/Rakefile.tt +23 -5
- data/lib/bundler/templates/newgem/bin/console.tt +1 -0
- data/lib/bundler/templates/newgem/circleci/config.yml.tt +13 -0
- data/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +2 -0
- data/lib/bundler/templates/newgem/github/workflows/main.yml.tt +27 -0
- data/lib/bundler/templates/newgem/gitlab-ci.yml.tt +9 -0
- data/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +2 -0
- data/lib/bundler/templates/newgem/lib/newgem.rb.tt +4 -2
- data/lib/bundler/templates/newgem/newgem.gemspec.tt +29 -40
- data/lib/bundler/templates/newgem/rubocop.yml.tt +13 -0
- data/lib/bundler/templates/newgem/sig/newgem.rbs.tt +8 -0
- data/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +2 -0
- data/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +2 -1
- data/lib/bundler/templates/newgem/standard.yml.tt +2 -0
- data/lib/bundler/templates/newgem/test/{newgem_test.rb.tt → minitest/newgem_test.rb.tt} +2 -0
- data/lib/bundler/templates/newgem/test/minitest/test_helper.rb.tt +6 -0
- data/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt +15 -0
- data/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt +6 -0
- data/lib/bundler/templates/newgem/travis.yml.tt +0 -1
- data/lib/bundler/ui/rg_proxy.rb +1 -1
- data/lib/bundler/ui/shell.rb +7 -11
- data/lib/bundler/ui.rb +3 -3
- data/lib/bundler/uri_credentials_filter.rb +10 -4
- data/lib/bundler/vendor/.document +1 -0
- data/lib/bundler/vendor/connection_pool/LICENSE +20 -0
- data/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +174 -0
- data/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +3 -0
- data/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +57 -0
- data/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +126 -0
- data/lib/bundler/vendor/fileutils/LICENSE.txt +22 -0
- data/lib/bundler/vendor/fileutils/lib/fileutils.rb +273 -147
- data/lib/bundler/vendor/molinillo/LICENSE +9 -0
- data/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +7 -0
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +1 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +1 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +1 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +1 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +6 -6
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +1 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +3 -3
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +39 -11
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +38 -6
- data/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +4 -4
- data/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +1 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +12 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +53 -51
- data/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +2 -2
- data/lib/bundler/vendor/molinillo/lib/molinillo.rb +5 -6
- data/lib/bundler/vendor/net-http-persistent/README.rdoc +82 -0
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +40 -0
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +53 -0
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +79 -0
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +302 -462
- data/lib/bundler/vendor/thor/LICENSE.md +20 -0
- data/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +3 -2
- data/lib/bundler/vendor/thor/lib/thor/actions/directory.rb +7 -17
- data/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +20 -9
- data/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +19 -8
- data/lib/bundler/vendor/thor/lib/thor/actions.rb +28 -13
- data/lib/bundler/vendor/thor/lib/thor/base.rb +63 -43
- data/lib/bundler/vendor/thor/lib/thor/command.rb +21 -14
- data/lib/bundler/vendor/thor/lib/thor/error.rb +78 -0
- data/lib/bundler/vendor/thor/lib/thor/group.rb +3 -3
- data/lib/bundler/vendor/thor/lib/thor/invocation.rb +1 -0
- data/lib/bundler/vendor/thor/lib/thor/line_editor/basic.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor/line_editor/readline.rb +6 -6
- data/lib/bundler/vendor/thor/lib/thor/line_editor.rb +2 -2
- data/lib/bundler/vendor/thor/lib/thor/nested_context.rb +29 -0
- data/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +7 -3
- data/lib/bundler/vendor/thor/lib/thor/parser/option.rb +20 -7
- data/lib/bundler/vendor/thor/lib/thor/parser/options.rb +21 -5
- data/lib/bundler/vendor/thor/lib/thor/parser.rb +4 -4
- data/lib/bundler/vendor/thor/lib/thor/rake_compat.rb +1 -0
- data/lib/bundler/vendor/thor/lib/thor/runner.rb +15 -14
- data/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +65 -8
- data/lib/bundler/vendor/thor/lib/thor/shell/color.rb +10 -2
- data/lib/bundler/vendor/thor/lib/thor/shell/html.rb +3 -3
- data/lib/bundler/vendor/thor/lib/thor/shell.rb +4 -4
- data/lib/bundler/vendor/thor/lib/thor/util.rb +18 -2
- data/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor.rb +16 -9
- data/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +154 -0
- data/lib/bundler/vendor/tsort/LICENSE.txt +22 -0
- data/lib/bundler/vendor/tsort/lib/tsort.rb +453 -0
- data/lib/bundler/vendor/uri/LICENSE.txt +22 -0
- data/lib/bundler/vendor/uri/lib/uri/common.rb +744 -0
- data/lib/bundler/vendor/uri/lib/uri/file.rb +94 -0
- data/lib/bundler/vendor/uri/lib/uri/ftp.rb +267 -0
- data/lib/bundler/vendor/uri/lib/uri/generic.rb +1568 -0
- data/lib/bundler/vendor/uri/lib/uri/http.rb +88 -0
- data/lib/bundler/vendor/uri/lib/uri/https.rb +23 -0
- data/lib/bundler/vendor/uri/lib/uri/ldap.rb +261 -0
- data/lib/bundler/vendor/uri/lib/uri/ldaps.rb +21 -0
- data/lib/bundler/vendor/uri/lib/uri/mailto.rb +294 -0
- data/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +546 -0
- data/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +125 -0
- data/lib/bundler/vendor/uri/lib/uri/version.rb +6 -0
- data/lib/bundler/vendor/uri/lib/uri.rb +104 -0
- data/lib/bundler/vendored_fileutils.rb +1 -6
- data/lib/bundler/vendored_molinillo.rb +1 -1
- data/lib/bundler/vendored_persistent.rb +7 -12
- data/lib/bundler/vendored_thor.rb +2 -2
- data/lib/bundler/vendored_tmpdir.rb +4 -0
- data/lib/bundler/vendored_tsort.rb +4 -0
- data/lib/bundler/vendored_uri.rb +4 -0
- data/lib/bundler/version.rb +1 -20
- data/lib/bundler/version_ranges.rb +51 -5
- data/lib/bundler/vlad.rb +2 -2
- data/lib/bundler/worker.rb +21 -8
- data/lib/bundler/yaml_serializer.rb +3 -4
- data/lib/bundler.rb +248 -118
- metadata +115 -190
- data/exe/bundle_ruby +0 -60
- data/lib/bundler/cli/package.rb +0 -49
- data/lib/bundler/compatibility_guard.rb +0 -14
- data/lib/bundler/gem_remote_fetcher.rb +0 -43
- data/lib/bundler/ssl_certs/certificate_manager.rb +0 -66
- data/lib/bundler/ssl_certs/index.rubygems.org/GlobalSignRootCA.pem +0 -21
- data/lib/bundler/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -23
- data/lib/bundler/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -25
- data/lib/bundler/templates/newgem/test/test_helper.rb.tt +0 -4
- data/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +0 -26
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/faster.rb +0 -27
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/ssl_reuse.rb +0 -129
- data/lib/bundler/vendor/thor/lib/thor/core_ext/io_binary_read.rb +0 -12
- data/lib/bundler/vendor/thor/lib/thor/core_ext/ordered_hash.rb +0 -129
- data/man/bundle-add.1.txt +0 -52
- data/man/bundle-binstubs.1.txt +0 -48
- data/man/bundle-check.1.txt +0 -33
- data/man/bundle-clean.1.txt +0 -26
- data/man/bundle-config.1.txt +0 -529
- data/man/bundle-doctor.1.txt +0 -44
- data/man/bundle-exec.1.txt +0 -178
- data/man/bundle-gem.1.txt +0 -91
- data/man/bundle-info.1.txt +0 -21
- data/man/bundle-init.1.txt +0 -34
- data/man/bundle-inject.1.txt +0 -32
- data/man/bundle-install.1.txt +0 -396
- data/man/bundle-list.1.txt +0 -43
- data/man/bundle-lock.1.txt +0 -93
- data/man/bundle-open.1.txt +0 -29
- data/man/bundle-outdated.1.txt +0 -131
- data/man/bundle-package.1 +0 -55
- data/man/bundle-package.1.txt +0 -79
- data/man/bundle-platform.1.txt +0 -57
- data/man/bundle-pristine.1.txt +0 -44
- data/man/bundle-remove.1.txt +0 -34
- data/man/bundle-show.1.txt +0 -27
- data/man/bundle-update.1.txt +0 -391
- data/man/bundle-viz.1.txt +0 -39
- data/man/bundle.1.txt +0 -113
- data/man/gemfile.5.txt +0 -653
@@ -1,26 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
require "bundler/match_platform"
|
3
|
+
require_relative "match_platform"
|
5
4
|
|
6
5
|
module Bundler
|
7
6
|
class LazySpecification
|
8
|
-
Identifier = Struct.new(:name, :version, :source, :platform, :dependencies)
|
9
|
-
class Identifier
|
10
|
-
include Comparable
|
11
|
-
def <=>(other)
|
12
|
-
return unless other.is_a?(Identifier)
|
13
|
-
[name, version, platform_string] <=> [other.name, other.version, other.platform_string]
|
14
|
-
end
|
15
|
-
|
16
|
-
protected
|
17
|
-
|
18
|
-
def platform_string
|
19
|
-
platform_string = platform.to_s
|
20
|
-
platform_string == Index::RUBY ? Index::NULL : platform_string
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
7
|
include MatchPlatform
|
25
8
|
|
26
9
|
attr_reader :name, :version, :dependencies, :platform
|
@@ -47,8 +30,32 @@ module Bundler
|
|
47
30
|
identifier == other.identifier
|
48
31
|
end
|
49
32
|
|
33
|
+
def eql?(other)
|
34
|
+
identifier.eql?(other.identifier)
|
35
|
+
end
|
36
|
+
|
37
|
+
def hash
|
38
|
+
identifier.hash
|
39
|
+
end
|
40
|
+
|
41
|
+
##
|
42
|
+
# Does this locked specification satisfy +dependency+?
|
43
|
+
#
|
44
|
+
# NOTE: Rubygems default requirement is ">= 0", which doesn't match
|
45
|
+
# prereleases of 0 versions, like "0.0.0.dev" or "0.0.0.SNAPSHOT". However,
|
46
|
+
# bundler users expect those to work. We need to make sure that Gemfile
|
47
|
+
# dependencies without explicit requirements (which use ">= 0" under the
|
48
|
+
# hood by default) are still valid for locked specs using this kind of
|
49
|
+
# versions. The method implements an ad-hoc fix for that. A better solution
|
50
|
+
# might be to change default rubygems requirement of dependencies to be ">=
|
51
|
+
# 0.A" but that's a major refactoring likely to break things. Hopefully we
|
52
|
+
# can attempt it in the future.
|
53
|
+
#
|
54
|
+
|
50
55
|
def satisfies?(dependency)
|
51
|
-
|
56
|
+
effective_requirement = dependency.requirement == Gem::Requirement.default ? Gem::Requirement.new(">= 0.A") : dependency.requirement
|
57
|
+
|
58
|
+
@name == dependency.name && effective_requirement.satisfied_by?(Gem::Version.new(@version))
|
52
59
|
end
|
53
60
|
|
54
61
|
def to_lock
|
@@ -69,17 +76,25 @@ module Bundler
|
|
69
76
|
end
|
70
77
|
|
71
78
|
def __materialize__
|
72
|
-
search_object = Bundler.feature_flag.specific_platform? || Bundler.settings[:force_ruby_platform] ? self : Dependency.new(name, version)
|
73
79
|
@specification = if source.is_a?(Source::Gemspec) && source.gemspec.name == name
|
74
80
|
source.gemspec.tap {|s| s.source = source }
|
75
81
|
else
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
+
search_object = if source.is_a?(Source::Path)
|
83
|
+
Dependency.new(name, version)
|
84
|
+
else
|
85
|
+
ruby_platform_materializes_to_ruby_platform? ? self : Dependency.new(name, version)
|
86
|
+
end
|
87
|
+
platform_object = Gem::Platform.new(platform)
|
88
|
+
candidates = source.specs.search(search_object)
|
89
|
+
same_platform_candidates = candidates.select do |spec|
|
90
|
+
MatchPlatform.platforms_match?(spec.platform, platform_object)
|
82
91
|
end
|
92
|
+
installable_candidates = same_platform_candidates.select do |spec|
|
93
|
+
!spec.is_a?(EndpointSpecification) ||
|
94
|
+
(spec.required_ruby_version.satisfied_by?(Gem.ruby_version) &&
|
95
|
+
spec.required_rubygems_version.satisfied_by?(Gem.rubygems_version))
|
96
|
+
end
|
97
|
+
search = installable_candidates.last || same_platform_candidates.last
|
83
98
|
search.dependencies = dependencies if search && (search.is_a?(RemoteSpecification) || search.is_a?(EndpointSpecification))
|
84
99
|
search
|
85
100
|
end
|
@@ -98,7 +113,7 @@ module Bundler
|
|
98
113
|
end
|
99
114
|
|
100
115
|
def identifier
|
101
|
-
@__identifier ||=
|
116
|
+
@__identifier ||= [name, version, platform_string]
|
102
117
|
end
|
103
118
|
|
104
119
|
def git_version
|
@@ -106,7 +121,14 @@ module Bundler
|
|
106
121
|
" #{source.revision[0..6]}"
|
107
122
|
end
|
108
123
|
|
109
|
-
|
124
|
+
protected
|
125
|
+
|
126
|
+
def platform_string
|
127
|
+
platform_string = platform.to_s
|
128
|
+
platform_string == Index::RUBY ? Index::NULL : platform_string
|
129
|
+
end
|
130
|
+
|
131
|
+
private
|
110
132
|
|
111
133
|
def to_ary
|
112
134
|
nil
|
@@ -119,5 +141,18 @@ module Bundler
|
|
119
141
|
|
120
142
|
@specification.send(method, *args, &blk)
|
121
143
|
end
|
144
|
+
|
145
|
+
#
|
146
|
+
# For backwards compatibility with existing lockfiles, if the most specific
|
147
|
+
# locked platform is RUBY, we keep the previous behaviour of resolving the
|
148
|
+
# best platform variant at materiliazation time. For previous bundler
|
149
|
+
# versions (before 2.2.0) this was always the case (except when the lockfile
|
150
|
+
# only included non-ruby platforms), but we're also keeping this behaviour
|
151
|
+
# on newer bundlers unless users generate the lockfile from scratch or
|
152
|
+
# explicitly add a more specific platform.
|
153
|
+
#
|
154
|
+
def ruby_platform_materializes_to_ruby_platform?
|
155
|
+
!Bundler.most_specific_locked_platform?(Gem::Platform::RUBY) || Bundler.settings[:force_ruby_platform]
|
156
|
+
end
|
122
157
|
end
|
123
158
|
end
|
@@ -1,15 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
# Some versions of the Bundler 1.1 RC series introduced corrupted
|
4
|
-
# lockfiles. There were two major problems:
|
5
|
-
#
|
6
|
-
# * multiple copies of the same GIT section appeared in the lockfile
|
7
|
-
# * when this happened, those sections got multiple copies of gems
|
8
|
-
# in those sections.
|
9
|
-
#
|
10
|
-
# As a result, Bundler 1.1 contains code that fixes the earlier
|
11
|
-
# corruption. We will remove this fix-up code in Bundler 1.2.
|
12
|
-
|
13
3
|
module Bundler
|
14
4
|
class LockfileParser
|
15
5
|
attr_reader :sources, :dependencies, :specs, :platforms, :bundler_version, :ruby_version
|
@@ -23,16 +13,14 @@ module Bundler
|
|
23
13
|
PATH = "PATH".freeze
|
24
14
|
PLUGIN = "PLUGIN SOURCE".freeze
|
25
15
|
SPECS = " specs:".freeze
|
26
|
-
OPTIONS = /^ ([a-z]+): (.*)$/i
|
16
|
+
OPTIONS = /^ ([a-z]+): (.*)$/i.freeze
|
27
17
|
SOURCE = [GIT, GEM, PATH, PLUGIN].freeze
|
28
18
|
|
29
19
|
SECTIONS_BY_VERSION_INTRODUCED = {
|
30
|
-
|
31
|
-
|
32
|
-
Gem::Version.create("1.
|
33
|
-
Gem::Version.create("1.
|
34
|
-
Gem::Version.create("1.12".dup) => [RUBY].freeze,
|
35
|
-
Gem::Version.create("1.13".dup) => [PLUGIN].freeze,
|
20
|
+
Gem::Version.create("1.0") => [DEPENDENCIES, PLATFORMS, GIT, GEM, PATH].freeze,
|
21
|
+
Gem::Version.create("1.10") => [BUNDLED].freeze,
|
22
|
+
Gem::Version.create("1.12") => [RUBY].freeze,
|
23
|
+
Gem::Version.create("1.13") => [PLUGIN].freeze,
|
36
24
|
}.freeze
|
37
25
|
|
38
26
|
KNOWN_SECTIONS = SECTIONS_BY_VERSION_INTRODUCED.values.flatten.freeze
|
@@ -65,8 +53,6 @@ module Bundler
|
|
65
53
|
@state = nil
|
66
54
|
@specs = {}
|
67
55
|
|
68
|
-
@rubygems_aggregate = Source::Rubygems.new
|
69
|
-
|
70
56
|
if lockfile.match(/<<<<<<<|=======|>>>>>>>|\|\|\|\|\|\|\|/)
|
71
57
|
raise LockfileError, "Your #{Bundler.default_lockfile.relative_path_from(SharedHelpers.pwd)} contains merge conflicts.\n" \
|
72
58
|
"Run `git checkout HEAD -- #{Bundler.default_lockfile.relative_path_from(SharedHelpers.pwd)}` first to get a clean lock."
|
@@ -90,7 +76,6 @@ module Bundler
|
|
90
76
|
send("parse_#{@state}", line)
|
91
77
|
end
|
92
78
|
end
|
93
|
-
@sources << @rubygems_aggregate unless Bundler.feature_flag.lockfile_uses_separate_rubygems_sources?
|
94
79
|
@specs = @specs.values.sort_by(&:identifier)
|
95
80
|
warn_for_outdated_bundler_version
|
96
81
|
rescue ArgumentError => e
|
@@ -101,22 +86,17 @@ module Bundler
|
|
101
86
|
|
102
87
|
def warn_for_outdated_bundler_version
|
103
88
|
return unless bundler_version
|
89
|
+
return if bundler_version.segments.last == "dev"
|
104
90
|
prerelease_text = bundler_version.prerelease? ? " --pre" : ""
|
105
91
|
current_version = Gem::Version.create(Bundler::VERSION)
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
Bundler.ui.warn "Warning: the running version of Bundler (#{current_version}) is older " \
|
112
|
-
"than the version that created the lockfile (#{bundler_version}). We suggest you " \
|
113
|
-
"upgrade to the latest version of Bundler by running `gem " \
|
114
|
-
"install bundler#{prerelease_text}`.\n"
|
115
|
-
end
|
116
|
-
end
|
92
|
+
return unless current_version < bundler_version
|
93
|
+
Bundler.ui.warn "Warning: the running version of Bundler (#{current_version}) is older " \
|
94
|
+
"than the version that created the lockfile (#{bundler_version}). We suggest you to " \
|
95
|
+
"upgrade to the version that created the lockfile by running `gem install " \
|
96
|
+
"bundler:#{bundler_version}#{prerelease_text}`.\n"
|
117
97
|
end
|
118
98
|
|
119
|
-
|
99
|
+
private
|
120
100
|
|
121
101
|
TYPES = {
|
122
102
|
GIT => Bundler::Source::Git,
|
@@ -134,23 +114,11 @@ module Bundler
|
|
134
114
|
@sources << @current_source
|
135
115
|
when GIT
|
136
116
|
@current_source = TYPES[@type].from_lock(@opts)
|
137
|
-
|
138
|
-
if @sources.include?(@current_source)
|
139
|
-
@current_source = @sources.find {|s| s == @current_source }
|
140
|
-
else
|
141
|
-
@sources << @current_source
|
142
|
-
end
|
117
|
+
@sources << @current_source
|
143
118
|
when GEM
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
@sources << @current_source
|
148
|
-
else
|
149
|
-
Array(@opts["remote"]).each do |url|
|
150
|
-
@rubygems_aggregate.add_remote(url)
|
151
|
-
end
|
152
|
-
@current_source = @rubygems_aggregate
|
153
|
-
end
|
119
|
+
@opts["remotes"] = Array(@opts.delete("remote")).reverse
|
120
|
+
@current_source = TYPES[@type].from_lock(@opts)
|
121
|
+
@sources << @current_source
|
154
122
|
when PLUGIN
|
155
123
|
@current_source = Plugin.source_from_lock(@opts)
|
156
124
|
@sources << @current_source
|
@@ -185,7 +153,7 @@ module Bundler
|
|
185
153
|
(?:-(.*))?\))? # Optional platform
|
186
154
|
(!)? # Optional pinned marker
|
187
155
|
$ # Line end
|
188
|
-
/xo
|
156
|
+
/xo.freeze
|
189
157
|
|
190
158
|
def parse_dependency(line)
|
191
159
|
return unless line =~ NAME_VERSION
|
@@ -228,10 +196,9 @@ module Bundler
|
|
228
196
|
platform = platform ? Gem::Platform.new(platform) : Gem::Platform::RUBY
|
229
197
|
@current_spec = LazySpecification.new(name, version, platform)
|
230
198
|
@current_spec.source = @current_source
|
199
|
+
@current_source.add_dependency_names(name)
|
231
200
|
|
232
|
-
|
233
|
-
# duplicate GIT sections)
|
234
|
-
@specs[@current_spec.identifier] ||= @current_spec
|
201
|
+
@specs[@current_spec.identifier] = @current_spec
|
235
202
|
elsif spaces.size == 6
|
236
203
|
version = version.split(",").map(&:strip) if version
|
237
204
|
dep = Gem::Dependency.new(name, version)
|
File without changes
|
@@ -1,13 +1,13 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "BUNDLE\-ADD" "1" "
|
4
|
+
.TH "BUNDLE\-ADD" "1" "December 2021" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-add\fR \- Add gem to the Gemfile and run bundle install
|
8
8
|
.
|
9
9
|
.SH "SYNOPSIS"
|
10
|
-
\fBbundle add\fR \fIGEM_NAME\fR [\-\-group=GROUP] [\-\-version=VERSION] [\-\-source=SOURCE] [\-\-skip\-install] [\-\-strict] [\-\-optimistic]
|
10
|
+
\fBbundle add\fR \fIGEM_NAME\fR [\-\-group=GROUP] [\-\-version=VERSION] [\-\-source=SOURCE] [\-\-git=GIT] [\-\-branch=BRANCH] [\-\-skip\-install] [\-\-strict] [\-\-optimistic]
|
11
11
|
.
|
12
12
|
.SH "DESCRIPTION"
|
13
13
|
Adds the named gem to the Gemfile and run \fBbundle install\fR\. \fBbundle install\fR can be avoided by using the flag \fB\-\-skip\-install\fR\.
|
@@ -45,6 +45,14 @@ Specify the group(s) for the added gem\. Multiple groups should be separated by
|
|
45
45
|
Specify the source for the added gem\.
|
46
46
|
.
|
47
47
|
.TP
|
48
|
+
\fB\-\-git\fR
|
49
|
+
Specify the git source for the added gem\.
|
50
|
+
.
|
51
|
+
.TP
|
52
|
+
\fB\-\-branch\fR
|
53
|
+
Specify the git branch for the added gem\.
|
54
|
+
.
|
55
|
+
.TP
|
48
56
|
\fB\-\-skip\-install\fR
|
49
57
|
Adds the gem to the Gemfile but does not install it\.
|
50
58
|
.
|
@@ -3,7 +3,7 @@ bundle-add(1) -- Add gem to the Gemfile and run bundle install
|
|
3
3
|
|
4
4
|
## SYNOPSIS
|
5
5
|
|
6
|
-
`bundle add` <GEM_NAME> [--group=GROUP] [--version=VERSION] [--source=SOURCE] [--skip-install] [--strict] [--optimistic]
|
6
|
+
`bundle add` <GEM_NAME> [--group=GROUP] [--version=VERSION] [--source=SOURCE] [--git=GIT] [--branch=BRANCH] [--skip-install] [--strict] [--optimistic]
|
7
7
|
|
8
8
|
## DESCRIPTION
|
9
9
|
Adds the named gem to the Gemfile and run `bundle install`. `bundle install` can be avoided by using the flag `--skip-install`.
|
@@ -30,6 +30,12 @@ bundle add rails --group "development, test"
|
|
30
30
|
* `--source`, , `-s`:
|
31
31
|
Specify the source for the added gem.
|
32
32
|
|
33
|
+
* `--git`:
|
34
|
+
Specify the git source for the added gem.
|
35
|
+
|
36
|
+
* `--branch`:
|
37
|
+
Specify the git branch for the added gem.
|
38
|
+
|
33
39
|
* `--skip-install`:
|
34
40
|
Adds the gem to the Gemfile but does not install it.
|
35
41
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "BUNDLE\-BINSTUBS" "1" "
|
4
|
+
.TH "BUNDLE\-BINSTUBS" "1" "December 2021" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-binstubs\fR \- Install the binstubs of the listed gems
|
@@ -10,7 +10,7 @@
|
|
10
10
|
\fBbundle binstubs\fR \fIGEM_NAME\fR [\-\-force] [\-\-path PATH] [\-\-standalone]
|
11
11
|
.
|
12
12
|
.SH "DESCRIPTION"
|
13
|
-
Binstubs are scripts that wrap around executables\. Bundler creates a small Ruby file (a binstub) that loads Bundler, runs the command, and puts it into \fBbin/\fR\. Binstubs are a shortcut\-or alternative\- to always using \fBbundle exec\fR\. This gives you a file that can
|
13
|
+
Binstubs are scripts that wrap around executables\. Bundler creates a small Ruby file (a binstub) that loads Bundler, runs the command, and puts it into \fBbin/\fR\. Binstubs are a shortcut\-or alternative\- to always using \fBbundle exec\fR\. This gives you a file that can be run directly, and one that will always run the correct gem version used by the application\.
|
14
14
|
.
|
15
15
|
.P
|
16
16
|
For example, if you run \fBbundle binstubs rspec\-core\fR, Bundler will create the file \fBbin/rspec\fR\. That file will contain enough code to load Bundler, tell it to load the bundled gems, and then run rspec\.
|
@@ -36,5 +36,7 @@ Makes binstubs that can work without depending on Rubygems or Bundler at runtime
|
|
36
36
|
\fB\-\-shebang\fR
|
37
37
|
Specify a different shebang executable name than the default (default \'ruby\')
|
38
38
|
.
|
39
|
-
.
|
40
|
-
|
39
|
+
.TP
|
40
|
+
\fB\-\-all\fR
|
41
|
+
Create binstubs for all gems in the bundle\.
|
42
|
+
|
@@ -10,7 +10,7 @@ bundle-binstubs(1) -- Install the binstubs of the listed gems
|
|
10
10
|
Binstubs are scripts that wrap around executables. Bundler creates a
|
11
11
|
small Ruby file (a binstub) that loads Bundler, runs the command,
|
12
12
|
and puts it into `bin/`. Binstubs are a shortcut-or alternative-
|
13
|
-
to always using `bundle exec`. This gives you a file that can
|
13
|
+
to always using `bundle exec`. This gives you a file that can be run
|
14
14
|
directly, and one that will always run the correct gem version
|
15
15
|
used by the application.
|
16
16
|
|
@@ -37,7 +37,5 @@ Calling binstubs with [GEM [GEM]] will create binstubs for all given gems.
|
|
37
37
|
* `--shebang`:
|
38
38
|
Specify a different shebang executable name than the default (default 'ruby')
|
39
39
|
|
40
|
-
|
41
|
-
|
42
|
-
To create binstubs for all the gems in the bundle you can use the `--binstubs`
|
43
|
-
flag in [bundle install(1)](bundle-install.1.html).
|
40
|
+
* `--all`:
|
41
|
+
Create binstubs for all gems in the bundle.
|
@@ -0,0 +1,55 @@
|
|
1
|
+
.\" generated with Ronn/v0.7.3
|
2
|
+
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
|
+
.
|
4
|
+
.TH "BUNDLE\-CACHE" "1" "December 2021" "" ""
|
5
|
+
.
|
6
|
+
.SH "NAME"
|
7
|
+
\fBbundle\-cache\fR \- Package your needed \fB\.gem\fR files into your application
|
8
|
+
.
|
9
|
+
.SH "SYNOPSIS"
|
10
|
+
\fBbundle cache\fR
|
11
|
+
.
|
12
|
+
.SH "DESCRIPTION"
|
13
|
+
Copy all of the \fB\.gem\fR files needed to run the application into the \fBvendor/cache\fR directory\. In the future, when running [bundle install(1)][bundle\-install], use the gems in the cache in preference to the ones on \fBrubygems\.org\fR\.
|
14
|
+
.
|
15
|
+
.SH "GIT AND PATH GEMS"
|
16
|
+
The \fBbundle cache\fR command can also package \fB:git\fR and \fB:path\fR dependencies besides \.gem files\. This needs to be explicitly enabled via the \fB\-\-all\fR option\. Once used, the \fB\-\-all\fR option will be remembered\.
|
17
|
+
.
|
18
|
+
.SH "SUPPORT FOR MULTIPLE PLATFORMS"
|
19
|
+
When using gems that have different packages for different platforms, Bundler supports caching of gems for other platforms where the Gemfile has been resolved (i\.e\. present in the lockfile) in \fBvendor/cache\fR\. This needs to be enabled via the \fB\-\-all\-platforms\fR option\. This setting will be remembered in your local bundler configuration\.
|
20
|
+
.
|
21
|
+
.SH "REMOTE FETCHING"
|
22
|
+
By default, if you run \fBbundle install(1)\fR](bundle\-install\.1\.html) after running bundle cache(1) \fIbundle\-cache\.1\.html\fR, bundler will still connect to \fBrubygems\.org\fR to check whether a platform\-specific gem exists for any of the gems in \fBvendor/cache\fR\.
|
23
|
+
.
|
24
|
+
.P
|
25
|
+
For instance, consider this Gemfile(5):
|
26
|
+
.
|
27
|
+
.IP "" 4
|
28
|
+
.
|
29
|
+
.nf
|
30
|
+
|
31
|
+
source "https://rubygems\.org"
|
32
|
+
|
33
|
+
gem "nokogiri"
|
34
|
+
.
|
35
|
+
.fi
|
36
|
+
.
|
37
|
+
.IP "" 0
|
38
|
+
.
|
39
|
+
.P
|
40
|
+
If you run \fBbundle cache\fR under C Ruby, bundler will retrieve the version of \fBnokogiri\fR for the \fB"ruby"\fR platform\. If you deploy to JRuby and run \fBbundle install\fR, bundler is forced to check to see whether a \fB"java"\fR platformed \fBnokogiri\fR exists\.
|
41
|
+
.
|
42
|
+
.P
|
43
|
+
Even though the \fBnokogiri\fR gem for the Ruby platform is \fItechnically\fR acceptable on JRuby, it has a C extension that does not run on JRuby\. As a result, bundler will, by default, still connect to \fBrubygems\.org\fR to check whether it has a version of one of your gems more specific to your platform\.
|
44
|
+
.
|
45
|
+
.P
|
46
|
+
This problem is also not limited to the \fB"java"\fR platform\. A similar (common) problem can happen when developing on Windows and deploying to Linux, or even when developing on OSX and deploying to Linux\.
|
47
|
+
.
|
48
|
+
.P
|
49
|
+
If you know for sure that the gems packaged in \fBvendor/cache\fR are appropriate for the platform you are on, you can run \fBbundle install \-\-local\fR to skip checking for more appropriate gems, and use the ones in \fBvendor/cache\fR\.
|
50
|
+
.
|
51
|
+
.P
|
52
|
+
One way to be sure that you have the right platformed versions of all your gems is to run \fBbundle cache\fR on an identical machine and check in the gems\. For instance, you can run \fBbundle cache\fR on an identical staging box during your staging process, and check in the \fBvendor/cache\fR before deploying to production\.
|
53
|
+
.
|
54
|
+
.P
|
55
|
+
By default, bundle cache(1) \fIbundle\-cache\.1\.html\fR fetches and also installs the gems to the default location\. To package the dependencies to \fBvendor/cache\fR without installing them to the local install location, you can run \fBbundle cache \-\-no\-install\fR\.
|
@@ -1,9 +1,9 @@
|
|
1
|
-
bundle-
|
1
|
+
bundle-cache(1) -- Package your needed `.gem` files into your application
|
2
2
|
===========================================================================
|
3
3
|
|
4
4
|
## SYNOPSIS
|
5
5
|
|
6
|
-
`bundle
|
6
|
+
`bundle cache`
|
7
7
|
|
8
8
|
## DESCRIPTION
|
9
9
|
|
@@ -13,22 +13,22 @@ use the gems in the cache in preference to the ones on `rubygems.org`.
|
|
13
13
|
|
14
14
|
## GIT AND PATH GEMS
|
15
15
|
|
16
|
-
|
17
|
-
|
18
|
-
|
16
|
+
The `bundle cache` command can also package `:git` and `:path` dependencies
|
17
|
+
besides .gem files. This needs to be explicitly enabled via the `--all` option.
|
18
|
+
Once used, the `--all` option will be remembered.
|
19
19
|
|
20
20
|
## SUPPORT FOR MULTIPLE PLATFORMS
|
21
21
|
|
22
22
|
When using gems that have different packages for different platforms, Bundler
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
23
|
+
supports caching of gems for other platforms where the Gemfile has been resolved
|
24
|
+
(i.e. present in the lockfile) in `vendor/cache`. This needs to be enabled via
|
25
|
+
the `--all-platforms` option. This setting will be remembered in your local
|
26
|
+
bundler configuration.
|
27
27
|
|
28
28
|
## REMOTE FETCHING
|
29
29
|
|
30
30
|
By default, if you run `bundle install(1)`](bundle-install.1.html) after running
|
31
|
-
[bundle
|
31
|
+
[bundle cache(1)](bundle-cache.1.html), bundler will still connect to `rubygems.org`
|
32
32
|
to check whether a platform-specific gem exists for any of the gems
|
33
33
|
in `vendor/cache`.
|
34
34
|
|
@@ -38,7 +38,7 @@ For instance, consider this Gemfile(5):
|
|
38
38
|
|
39
39
|
gem "nokogiri"
|
40
40
|
|
41
|
-
If you run `bundle
|
41
|
+
If you run `bundle cache` under C Ruby, bundler will retrieve
|
42
42
|
the version of `nokogiri` for the `"ruby"` platform. If you deploy
|
43
43
|
to JRuby and run `bundle install`, bundler is forced to check to
|
44
44
|
see whether a `"java"` platformed `nokogiri` exists.
|
@@ -60,13 +60,13 @@ are appropriate for the platform you are on, you can run
|
|
60
60
|
gems, and use the ones in `vendor/cache`.
|
61
61
|
|
62
62
|
One way to be sure that you have the right platformed versions
|
63
|
-
of all your gems is to run `bundle
|
63
|
+
of all your gems is to run `bundle cache` on an identical
|
64
64
|
machine and check in the gems. For instance, you can run
|
65
|
-
`bundle
|
65
|
+
`bundle cache` on an identical staging box during your
|
66
66
|
staging process, and check in the `vendor/cache` before
|
67
67
|
deploying to production.
|
68
68
|
|
69
|
-
By default, [bundle
|
69
|
+
By default, [bundle cache(1)](bundle-cache.1.html) fetches and also
|
70
70
|
installs the gems to the default location. To package the
|
71
71
|
dependencies to `vendor/cache` without installing them to the
|
72
|
-
local install location, you can run `bundle
|
72
|
+
local install location, you can run `bundle cache --no-install`.
|
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "BUNDLE\-CHECK" "1" "
|
4
|
+
.TH "BUNDLE\-CHECK" "1" "December 2021" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-check\fR \- Verifies if dependencies are satisfied by installed gems
|
File without changes
|
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "BUNDLE\-CLEAN" "1" "
|
4
|
+
.TH "BUNDLE\-CLEAN" "1" "December 2021" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-clean\fR \- Cleans up unused gems in your bundler directory
|
File without changes
|