bundler 2.3.26 → 2.4.13
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 +228 -1
- data/README.md +3 -6
- data/bundler.gemspec +2 -2
- data/exe/bundle +1 -4
- data/lib/bundler/build_metadata.rb +2 -2
- data/lib/bundler/cli/add.rb +1 -1
- data/lib/bundler/cli/binstubs.rb +5 -1
- data/lib/bundler/cli/check.rb +1 -1
- data/lib/bundler/cli/common.rb +1 -0
- data/lib/bundler/cli/console.rb +2 -2
- data/lib/bundler/cli/doctor.rb +4 -6
- data/lib/bundler/cli/gem.rb +62 -40
- data/lib/bundler/cli/init.rb +2 -2
- data/lib/bundler/cli/install.rb +2 -3
- data/lib/bundler/cli/lock.rb +8 -5
- data/lib/bundler/cli/open.rb +6 -4
- data/lib/bundler/cli/outdated.rb +1 -3
- data/lib/bundler/cli/viz.rb +1 -1
- data/lib/bundler/cli.rb +45 -2
- data/lib/bundler/compact_index_client/cache.rb +1 -1
- data/lib/bundler/compact_index_client/updater.rb +40 -39
- data/lib/bundler/constants.rb +1 -1
- data/lib/bundler/current_ruby.rb +2 -0
- data/lib/bundler/definition.rb +99 -51
- data/lib/bundler/dependency.rb +13 -12
- data/lib/bundler/digest.rb +1 -1
- data/lib/bundler/dsl.rb +3 -3
- data/lib/bundler/endpoint_specification.rb +0 -4
- data/lib/bundler/env.rb +1 -1
- data/lib/bundler/environment_preserver.rb +3 -2
- data/lib/bundler/errors.rb +1 -11
- data/lib/bundler/fetcher/compact_index.rb +9 -11
- data/lib/bundler/fetcher/dependency.rb +2 -6
- data/lib/bundler/fetcher/downloader.rb +2 -5
- data/lib/bundler/fetcher.rb +4 -8
- data/lib/bundler/force_platform.rb +18 -0
- data/lib/bundler/friendly_errors.rb +0 -3
- data/lib/bundler/gem_version_promoter.rb +52 -86
- data/lib/bundler/graph.rb +3 -3
- data/lib/bundler/index.rb +7 -15
- data/lib/bundler/injector.rb +2 -2
- data/lib/bundler/inline.rb +8 -10
- data/lib/bundler/installer/parallel_installer.rb +3 -33
- data/lib/bundler/installer/standalone.rb +12 -8
- data/lib/bundler/installer.rb +9 -23
- data/lib/bundler/lazy_specification.rb +42 -42
- data/lib/bundler/lockfile_generator.rb +1 -1
- data/lib/bundler/lockfile_parser.rb +16 -16
- data/lib/bundler/man/bundle-add.1 +1 -1
- data/lib/bundler/man/bundle-binstubs.1 +1 -1
- data/lib/bundler/man/bundle-cache.1 +3 -3
- data/lib/bundler/man/bundle-cache.1.ronn +2 -2
- data/lib/bundler/man/bundle-check.1 +1 -1
- data/lib/bundler/man/bundle-clean.1 +1 -1
- data/lib/bundler/man/bundle-config.1 +2 -2
- data/lib/bundler/man/bundle-config.1.ronn +1 -1
- data/lib/bundler/man/bundle-console.1 +1 -1
- data/lib/bundler/man/bundle-doctor.1 +1 -1
- data/lib/bundler/man/bundle-exec.1 +5 -5
- data/lib/bundler/man/bundle-exec.1.ronn +5 -5
- data/lib/bundler/man/bundle-gem.1 +27 -37
- data/lib/bundler/man/bundle-gem.1.ronn +5 -5
- data/lib/bundler/man/bundle-help.1 +1 -1
- data/lib/bundler/man/bundle-info.1 +1 -1
- data/lib/bundler/man/bundle-init.1 +5 -1
- data/lib/bundler/man/bundle-init.1.ronn +2 -0
- data/lib/bundler/man/bundle-inject.1 +1 -1
- data/lib/bundler/man/bundle-install.1 +1 -30
- data/lib/bundler/man/bundle-install.1.ronn +0 -29
- data/lib/bundler/man/bundle-list.1 +1 -1
- data/lib/bundler/man/bundle-lock.1 +1 -1
- data/lib/bundler/man/bundle-open.1 +22 -2
- data/lib/bundler/man/bundle-open.1.ronn +9 -1
- data/lib/bundler/man/bundle-outdated.1 +1 -1
- data/lib/bundler/man/bundle-platform.1 +2 -2
- data/lib/bundler/man/bundle-platform.1.ronn +1 -1
- data/lib/bundler/man/bundle-plugin.1 +1 -1
- data/lib/bundler/man/bundle-pristine.1 +1 -1
- data/lib/bundler/man/bundle-remove.1 +1 -1
- data/lib/bundler/man/bundle-show.1 +1 -1
- data/lib/bundler/man/bundle-update.1 +1 -1
- data/lib/bundler/man/bundle-version.1 +1 -1
- data/lib/bundler/man/bundle-viz.1 +1 -1
- data/lib/bundler/man/bundle.1 +1 -1
- data/lib/bundler/man/gemfile.5 +1 -1
- data/lib/bundler/mirror.rb +5 -7
- data/lib/bundler/plugin/index.rb +4 -4
- data/lib/bundler/plugin/installer/rubygems.rb +0 -4
- data/lib/bundler/plugin/installer.rb +5 -2
- data/lib/bundler/plugin.rb +1 -1
- data/lib/bundler/remote_specification.rb +2 -6
- data/lib/bundler/resolver/base.rb +72 -15
- data/lib/bundler/resolver/candidate.rb +94 -0
- data/lib/bundler/resolver/incompatibility.rb +15 -0
- data/lib/bundler/resolver/package.rb +72 -0
- data/lib/bundler/resolver/root.rb +25 -0
- data/lib/bundler/resolver/spec_group.rb +26 -36
- data/lib/bundler/resolver.rb +311 -278
- data/lib/bundler/ruby_version.rb +1 -1
- data/lib/bundler/rubygems_ext.rb +16 -9
- data/lib/bundler/rubygems_gem_installer.rb +4 -2
- data/lib/bundler/rubygems_integration.rb +10 -14
- data/lib/bundler/runtime.rb +1 -5
- data/lib/bundler/safe_marshal.rb +31 -0
- data/lib/bundler/settings.rb +1 -7
- data/lib/bundler/setup.rb +4 -1
- data/lib/bundler/shared_helpers.rb +2 -1
- data/lib/bundler/source/git/git_proxy.rb +214 -69
- data/lib/bundler/source/git.rb +17 -18
- data/lib/bundler/source/metadata.rb +0 -1
- data/lib/bundler/source/path/installer.rb +1 -22
- data/lib/bundler/source/path.rb +6 -6
- data/lib/bundler/source/rubygems.rb +19 -77
- data/lib/bundler/source_list.rb +8 -2
- data/lib/bundler/spec_set.rb +22 -14
- data/lib/bundler/templates/Executable +1 -1
- data/lib/bundler/templates/Executable.bundler +5 -10
- data/lib/bundler/templates/Executable.standalone +2 -0
- data/lib/bundler/templates/newgem/Cargo.toml.tt +7 -0
- data/lib/bundler/templates/newgem/Gemfile.tt +3 -0
- data/lib/bundler/templates/newgem/README.md.tt +6 -4
- data/lib/bundler/templates/newgem/Rakefile.tt +12 -1
- data/lib/bundler/templates/newgem/bin/console.tt +0 -4
- data/lib/bundler/templates/newgem/circleci/config.yml.tt +12 -0
- data/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +15 -0
- data/lib/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt +10 -0
- data/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +6 -0
- data/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt +1 -1
- data/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +12 -0
- data/lib/bundler/templates/newgem/github/workflows/main.yml.tt +10 -0
- data/lib/bundler/templates/newgem/gitignore.tt +3 -0
- data/lib/bundler/templates/newgem/gitlab-ci.yml.tt +8 -0
- data/lib/bundler/templates/newgem/newgem.gemspec.tt +8 -2
- data/lib/bundler/ui/shell.rb +35 -12
- data/lib/bundler/ui/silent.rb +21 -5
- data/lib/bundler/uri_normalizer.rb +23 -0
- data/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +3 -3
- data/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +0 -1
- data/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +3 -1
- data/lib/bundler/vendor/fileutils/lib/fileutils.rb +1350 -408
- data/lib/bundler/vendor/net-http-persistent/README.rdoc +1 -1
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +1 -1
- data/lib/bundler/vendor/pub_grub/LICENSE.txt +21 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb +20 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +189 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb +182 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb +150 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb +43 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb +121 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb +45 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb +19 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +60 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb +105 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb +3 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb +129 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +411 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +243 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb +178 -0
- data/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +31 -0
- data/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +1 -1
- data/lib/bundler/vendor/uri/lib/uri/common.rb +64 -16
- data/lib/bundler/vendor/uri/lib/uri/file.rb +7 -1
- data/lib/bundler/vendor/uri/lib/uri/ftp.rb +2 -1
- data/lib/bundler/vendor/uri/lib/uri/generic.rb +27 -7
- data/lib/bundler/vendor/uri/lib/uri/http.rb +40 -2
- data/lib/bundler/vendor/uri/lib/uri/https.rb +2 -1
- data/lib/bundler/vendor/uri/lib/uri/ldap.rb +1 -1
- data/lib/bundler/vendor/uri/lib/uri/ldaps.rb +2 -1
- data/lib/bundler/vendor/uri/lib/uri/mailto.rb +2 -2
- data/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +13 -7
- data/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +10 -5
- data/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
- data/lib/bundler/vendor/uri/lib/uri/ws.rb +1 -2
- data/lib/bundler/vendor/uri/lib/uri/wss.rb +2 -1
- data/lib/bundler/vendor/uri/lib/uri.rb +3 -2
- data/lib/bundler/vendored_persistent.rb +1 -33
- data/lib/bundler/{vendored_tmpdir.rb → vendored_pub_grub.rb} +1 -1
- data/lib/bundler/version.rb +5 -1
- data/lib/bundler/worker.rb +5 -7
- data/lib/bundler.rb +17 -69
- metadata +35 -33
- data/lib/bundler/templates/gems.rb +0 -5
- data/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +0 -5
- data/lib/bundler/templates/newgem/travis.yml.tt +0 -6
- data/lib/bundler/vendor/molinillo/LICENSE +0 -9
- data/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
- data/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +0 -88
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +0 -36
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +0 -66
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +0 -62
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +0 -63
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +0 -61
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +0 -126
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +0 -46
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +0 -36
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +0 -164
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +0 -255
- data/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +0 -149
- data/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +0 -6
- data/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +0 -112
- data/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +0 -67
- data/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +0 -839
- data/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +0 -46
- data/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +0 -58
- data/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -11
- data/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +0 -154
- data/lib/bundler/vendored_molinillo.rb +0 -4
- data/lib/bundler/version_ranges.rb +0 -122
|
@@ -52,7 +52,7 @@ module Bundler
|
|
|
52
52
|
|
|
53
53
|
def gem_path(path, spec)
|
|
54
54
|
full_path = Pathname.new(path).absolute? ? path : File.join(spec.full_gem_path, path)
|
|
55
|
-
if spec.source.instance_of?(Source::Path)
|
|
55
|
+
if spec.source.instance_of?(Source::Path) && spec.source.path.absolute?
|
|
56
56
|
full_path
|
|
57
57
|
else
|
|
58
58
|
Pathname.new(full_path).relative_path_from(Bundler.root.join(bundler_path)).to_s
|
|
@@ -84,13 +84,17 @@ module Bundler
|
|
|
84
84
|
|
|
85
85
|
def reverse_rubygems_kernel_mixin
|
|
86
86
|
<<~END
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
87
|
+
if Gem.respond_to?(:discover_gems_on_require=)
|
|
88
|
+
Gem.discover_gems_on_require = false
|
|
89
|
+
else
|
|
90
|
+
kernel = (class << ::Kernel; self; end)
|
|
91
|
+
[kernel, ::Kernel].each do |k|
|
|
92
|
+
if k.private_method_defined?(:gem_original_require)
|
|
93
|
+
private_require = k.private_method_defined?(:require)
|
|
94
|
+
k.send(:remove_method, :require)
|
|
95
|
+
k.send(:define_method, :require, k.instance_method(:gem_original_require))
|
|
96
|
+
k.send(:private, :require) if private_require
|
|
97
|
+
end
|
|
94
98
|
end
|
|
95
99
|
end
|
|
96
100
|
END
|
data/lib/bundler/installer.rb
CHANGED
|
@@ -136,11 +136,7 @@ module Bundler
|
|
|
136
136
|
|
|
137
137
|
mode = Gem.win_platform? ? "wb:UTF-8" : "w"
|
|
138
138
|
require "erb"
|
|
139
|
-
content =
|
|
140
|
-
ERB.new(template, :trim_mode => "-").result(binding)
|
|
141
|
-
else
|
|
142
|
-
ERB.new(template, nil, "-").result(binding)
|
|
143
|
-
end
|
|
139
|
+
content = ERB.new(template, :trim_mode => "-").result(binding)
|
|
144
140
|
|
|
145
141
|
File.write(binstub_path, content, :mode => mode, :perm => 0o777 & ~File.umask)
|
|
146
142
|
if Gem.win_platform? || options[:all_platforms]
|
|
@@ -183,11 +179,7 @@ module Bundler
|
|
|
183
179
|
|
|
184
180
|
mode = Gem.win_platform? ? "wb:UTF-8" : "w"
|
|
185
181
|
require "erb"
|
|
186
|
-
content =
|
|
187
|
-
ERB.new(template, :trim_mode => "-").result(binding)
|
|
188
|
-
else
|
|
189
|
-
ERB.new(template, nil, "-").result(binding)
|
|
190
|
-
end
|
|
182
|
+
content = ERB.new(template, :trim_mode => "-").result(binding)
|
|
191
183
|
|
|
192
184
|
File.write("#{bin_path}/#{executable}", content, :mode => mode, :perm => 0o755)
|
|
193
185
|
if Gem.win_platform? || options[:all_platforms]
|
|
@@ -226,12 +218,10 @@ module Bundler
|
|
|
226
218
|
|
|
227
219
|
requested_path_gems = @definition.requested_specs.select {|s| s.source.is_a?(Source::Path) }
|
|
228
220
|
path_plugin_files = requested_path_gems.map do |spec|
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
raise Gem::InvalidSpecificationException, error_message
|
|
234
|
-
end
|
|
221
|
+
Bundler.rubygems.spec_matches_for_glob(spec, "rubygems_plugin#{Bundler.rubygems.suffix_pattern}")
|
|
222
|
+
rescue TypeError
|
|
223
|
+
error_message = "#{spec.name} #{spec.version} has an invalid gemspec"
|
|
224
|
+
raise Gem::InvalidSpecificationException, error_message
|
|
235
225
|
end.flatten
|
|
236
226
|
Bundler.rubygems.load_plugin_files(path_plugin_files)
|
|
237
227
|
Bundler.rubygems.load_env_plugins
|
|
@@ -259,17 +249,13 @@ module Bundler
|
|
|
259
249
|
|
|
260
250
|
# returns whether or not a re-resolve was needed
|
|
261
251
|
def resolve_if_needed(options)
|
|
252
|
+
@definition.resolution_mode = options
|
|
253
|
+
|
|
262
254
|
if !@definition.unlocking? && !options["force"] && !Bundler.settings[:inline] && Bundler.default_lockfile.file?
|
|
263
255
|
return false if @definition.nothing_changed? && !@definition.missing_specs?
|
|
264
256
|
end
|
|
265
257
|
|
|
266
|
-
|
|
267
|
-
@definition.resolve_with_cache!
|
|
268
|
-
elsif options["prefer-local"]
|
|
269
|
-
@definition.resolve_prefering_local!
|
|
270
|
-
else
|
|
271
|
-
@definition.resolve_remotely!
|
|
272
|
-
end
|
|
258
|
+
@definition.setup_sources_for_resolve
|
|
273
259
|
|
|
274
260
|
true
|
|
275
261
|
end
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require_relative "force_platform"
|
|
4
|
+
|
|
3
5
|
module Bundler
|
|
4
6
|
class LazySpecification
|
|
5
7
|
include MatchPlatform
|
|
8
|
+
include ForcePlatform
|
|
6
9
|
|
|
7
10
|
attr_reader :name, :version, :dependencies, :platform
|
|
8
11
|
attr_accessor :source, :remote, :force_ruby_platform
|
|
@@ -13,11 +16,11 @@ module Bundler
|
|
|
13
16
|
@dependencies = []
|
|
14
17
|
@platform = platform || Gem::Platform::RUBY
|
|
15
18
|
@source = source
|
|
16
|
-
@
|
|
19
|
+
@force_ruby_platform = default_force_ruby_platform
|
|
17
20
|
end
|
|
18
21
|
|
|
19
22
|
def full_name
|
|
20
|
-
if platform == Gem::Platform::RUBY
|
|
23
|
+
@full_name ||= if platform == Gem::Platform::RUBY
|
|
21
24
|
"#{@name}-#{@version}"
|
|
22
25
|
else
|
|
23
26
|
"#{@name}-#{@version}-#{platform}"
|
|
@@ -25,15 +28,15 @@ module Bundler
|
|
|
25
28
|
end
|
|
26
29
|
|
|
27
30
|
def ==(other)
|
|
28
|
-
|
|
31
|
+
full_name == other.full_name
|
|
29
32
|
end
|
|
30
33
|
|
|
31
34
|
def eql?(other)
|
|
32
|
-
|
|
35
|
+
full_name.eql?(other.full_name)
|
|
33
36
|
end
|
|
34
37
|
|
|
35
38
|
def hash
|
|
36
|
-
|
|
39
|
+
full_name.hash
|
|
37
40
|
end
|
|
38
41
|
|
|
39
42
|
##
|
|
@@ -76,51 +79,56 @@ module Bundler
|
|
|
76
79
|
def materialize_for_installation
|
|
77
80
|
source.local!
|
|
78
81
|
|
|
79
|
-
|
|
80
|
-
|
|
82
|
+
matching_specs = source.specs.search(use_exact_resolved_specifications? ? self : [name, version])
|
|
83
|
+
return self if matching_specs.empty?
|
|
81
84
|
|
|
82
|
-
|
|
85
|
+
candidates = if use_exact_resolved_specifications?
|
|
86
|
+
matching_specs
|
|
83
87
|
else
|
|
84
|
-
|
|
85
|
-
end
|
|
88
|
+
target_platform = ruby_platform_materializes_to_ruby_platform? ? platform : local_platform
|
|
86
89
|
|
|
87
|
-
|
|
90
|
+
installable_candidates = GemHelpers.select_best_platform_match(matching_specs, target_platform)
|
|
88
91
|
|
|
89
|
-
|
|
90
|
-
|
|
92
|
+
specification = __materialize__(installable_candidates, :fallback_to_non_installable => false)
|
|
93
|
+
return specification unless specification.nil?
|
|
91
94
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
search = candidates.reverse.find do |spec|
|
|
95
|
-
spec.is_a?(StubSpecification) ||
|
|
96
|
-
(spec.matches_current_ruby? &&
|
|
97
|
-
spec.matches_current_rubygems?)
|
|
98
|
-
end
|
|
99
|
-
if search.nil? && Bundler.frozen_bundle?
|
|
100
|
-
search = candidates.last
|
|
101
|
-
else
|
|
102
|
-
search.dependencies = dependencies if search && search.full_name == full_name && (search.is_a?(RemoteSpecification) || search.is_a?(EndpointSpecification))
|
|
95
|
+
if target_platform != platform
|
|
96
|
+
installable_candidates = GemHelpers.select_best_platform_match(matching_specs, platform)
|
|
103
97
|
end
|
|
104
|
-
|
|
98
|
+
|
|
99
|
+
installable_candidates
|
|
105
100
|
end
|
|
101
|
+
|
|
102
|
+
__materialize__(candidates)
|
|
106
103
|
end
|
|
107
104
|
|
|
108
|
-
|
|
109
|
-
|
|
105
|
+
# If in frozen mode, we fallback to a non-installable candidate because by
|
|
106
|
+
# doing this we avoid re-resolving and potentially end up changing the
|
|
107
|
+
# lock file, which is not allowed. In that case, we will give a proper error
|
|
108
|
+
# about the mismatch higher up the stack, right before trying to install the
|
|
109
|
+
# bad gem.
|
|
110
|
+
def __materialize__(candidates, fallback_to_non_installable: Bundler.frozen_bundle?)
|
|
111
|
+
search = candidates.reverse.find do |spec|
|
|
112
|
+
spec.is_a?(StubSpecification) ||
|
|
113
|
+
(spec.matches_current_ruby? &&
|
|
114
|
+
spec.matches_current_rubygems?)
|
|
115
|
+
end
|
|
116
|
+
if search.nil? && fallback_to_non_installable
|
|
117
|
+
search = candidates.last
|
|
118
|
+
else
|
|
119
|
+
search.dependencies = dependencies if search && search.full_name == full_name && (search.is_a?(RemoteSpecification) || search.is_a?(EndpointSpecification))
|
|
120
|
+
end
|
|
121
|
+
search
|
|
110
122
|
end
|
|
111
123
|
|
|
112
124
|
def to_s
|
|
113
|
-
@
|
|
125
|
+
@to_s ||= if platform == Gem::Platform::RUBY
|
|
114
126
|
"#{name} (#{version})"
|
|
115
127
|
else
|
|
116
128
|
"#{name} (#{version}-#{platform})"
|
|
117
129
|
end
|
|
118
130
|
end
|
|
119
131
|
|
|
120
|
-
def identifier
|
|
121
|
-
@__identifier ||= [name, version, platform.to_s]
|
|
122
|
-
end
|
|
123
|
-
|
|
124
132
|
def git_version
|
|
125
133
|
return unless source.is_a?(Bundler::Source::Git)
|
|
126
134
|
" #{source.revision[0..6]}"
|
|
@@ -128,16 +136,8 @@ module Bundler
|
|
|
128
136
|
|
|
129
137
|
private
|
|
130
138
|
|
|
131
|
-
def
|
|
132
|
-
|
|
133
|
-
end
|
|
134
|
-
|
|
135
|
-
def method_missing(method, *args, &blk)
|
|
136
|
-
raise "LazySpecification has not been materialized yet (calling :#{method} #{args.inspect})" unless @specification
|
|
137
|
-
|
|
138
|
-
return super unless respond_to?(method)
|
|
139
|
-
|
|
140
|
-
@specification.send(method, *args, &blk)
|
|
139
|
+
def use_exact_resolved_specifications?
|
|
140
|
+
@use_exact_resolved_specifications ||= !source.is_a?(Source::Path) && ruby_platform_materializes_to_ruby_platform?
|
|
141
141
|
end
|
|
142
142
|
|
|
143
143
|
#
|
|
@@ -4,15 +4,15 @@ module Bundler
|
|
|
4
4
|
class LockfileParser
|
|
5
5
|
attr_reader :sources, :dependencies, :specs, :platforms, :bundler_version, :ruby_version
|
|
6
6
|
|
|
7
|
-
BUNDLED = "BUNDLED WITH"
|
|
8
|
-
DEPENDENCIES = "DEPENDENCIES"
|
|
9
|
-
PLATFORMS = "PLATFORMS"
|
|
10
|
-
RUBY = "RUBY VERSION"
|
|
11
|
-
GIT = "GIT"
|
|
12
|
-
GEM = "GEM"
|
|
13
|
-
PATH = "PATH"
|
|
14
|
-
PLUGIN = "PLUGIN SOURCE"
|
|
15
|
-
SPECS = " specs:"
|
|
7
|
+
BUNDLED = "BUNDLED WITH"
|
|
8
|
+
DEPENDENCIES = "DEPENDENCIES"
|
|
9
|
+
PLATFORMS = "PLATFORMS"
|
|
10
|
+
RUBY = "RUBY VERSION"
|
|
11
|
+
GIT = "GIT"
|
|
12
|
+
GEM = "GEM"
|
|
13
|
+
PATH = "PATH"
|
|
14
|
+
PLUGIN = "PLUGIN SOURCE"
|
|
15
|
+
SPECS = " specs:"
|
|
16
16
|
OPTIONS = /^ ([a-z]+): (.*)$/i.freeze
|
|
17
17
|
SOURCE = [GIT, GEM, PATH, PLUGIN].freeze
|
|
18
18
|
|
|
@@ -63,7 +63,7 @@ module Bundler
|
|
|
63
63
|
@state = nil
|
|
64
64
|
@specs = {}
|
|
65
65
|
|
|
66
|
-
if lockfile.match(/<<<<<<<|=======|>>>>>>>|\|\|\|\|\|\|\|/)
|
|
66
|
+
if lockfile.match?(/<<<<<<<|=======|>>>>>>>|\|\|\|\|\|\|\|/)
|
|
67
67
|
raise LockfileError, "Your #{Bundler.default_lockfile.relative_path_from(SharedHelpers.pwd)} contains merge conflicts.\n" \
|
|
68
68
|
"Run `git checkout HEAD -- #{Bundler.default_lockfile.relative_path_from(SharedHelpers.pwd)}` first to get a clean lock."
|
|
69
69
|
end
|
|
@@ -80,13 +80,13 @@ module Bundler
|
|
|
80
80
|
@state = :ruby
|
|
81
81
|
elsif line == BUNDLED
|
|
82
82
|
@state = :bundled_with
|
|
83
|
-
elsif
|
|
83
|
+
elsif /^[^\s]/.match?(line)
|
|
84
84
|
@state = nil
|
|
85
85
|
elsif @state
|
|
86
86
|
send("parse_#{@state}", line)
|
|
87
87
|
end
|
|
88
88
|
end
|
|
89
|
-
@specs = @specs.values.sort_by(&:
|
|
89
|
+
@specs = @specs.values.sort_by(&:full_name)
|
|
90
90
|
rescue ArgumentError => e
|
|
91
91
|
Bundler.ui.debug(e)
|
|
92
92
|
raise LockfileError, "Your lockfile is unreadable. Run `rm #{Bundler.default_lockfile.relative_path_from(SharedHelpers.pwd)}` " \
|
|
@@ -100,9 +100,9 @@ module Bundler
|
|
|
100
100
|
private
|
|
101
101
|
|
|
102
102
|
TYPES = {
|
|
103
|
-
GIT
|
|
104
|
-
GEM
|
|
105
|
-
PATH
|
|
103
|
+
GIT => Bundler::Source::Git,
|
|
104
|
+
GEM => Bundler::Source::Rubygems,
|
|
105
|
+
PATH => Bundler::Source::Path,
|
|
106
106
|
PLUGIN => Bundler::Plugin,
|
|
107
107
|
}.freeze
|
|
108
108
|
|
|
@@ -199,7 +199,7 @@ module Bundler
|
|
|
199
199
|
@current_spec.source = @current_source
|
|
200
200
|
@current_source.add_dependency_names(name)
|
|
201
201
|
|
|
202
|
-
@specs[@current_spec.
|
|
202
|
+
@specs[@current_spec.full_name] = @current_spec
|
|
203
203
|
elsif spaces.size == 6
|
|
204
204
|
version = version.split(",").map(&:strip) if version
|
|
205
205
|
dep = Gem::Dependency.new(name, version)
|
|
@@ -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" "February 2023" "" ""
|
|
5
5
|
.
|
|
6
6
|
.SH "NAME"
|
|
7
7
|
\fBbundle\-binstubs\fR \- Install the binstubs of the listed gems
|
|
@@ -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\-CACHE" "1" "
|
|
4
|
+
.TH "BUNDLE\-CACHE" "1" "February 2023" "" ""
|
|
5
5
|
.
|
|
6
6
|
.SH "NAME"
|
|
7
7
|
\fBbundle\-cache\fR \- Package your needed \fB\.gem\fR files into your application
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
alias: \fBpackage\fR, \fBpack\fR
|
|
14
14
|
.
|
|
15
15
|
.SH "DESCRIPTION"
|
|
16
|
-
Copy all of the \fB\.gem\fR files needed to run the application into the \fBvendor/cache\fR directory\. In the future, when running
|
|
16
|
+
Copy all of the \fB\.gem\fR files needed to run the application into the \fBvendor/cache\fR directory\. In the future, when running \fBbundle install(1)\fR \fIbundle\-install\.1\.html\fR, use the gems in the cache in preference to the ones on \fBrubygems\.org\fR\.
|
|
17
17
|
.
|
|
18
18
|
.SH "GIT AND PATH GEMS"
|
|
19
19
|
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\.
|
|
@@ -22,7 +22,7 @@ The \fBbundle cache\fR command can also package \fB:git\fR and \fB:path\fR depen
|
|
|
22
22
|
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\.
|
|
23
23
|
.
|
|
24
24
|
.SH "REMOTE FETCHING"
|
|
25
|
-
By default, if you run \fBbundle install(1)\fR
|
|
25
|
+
By default, if you run \fBbundle install(1)\fR \fIbundle\-install\.1\.html\fR 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\.
|
|
26
26
|
.
|
|
27
27
|
.P
|
|
28
28
|
For instance, consider this Gemfile(5):
|
|
@@ -10,7 +10,7 @@ alias: `package`, `pack`
|
|
|
10
10
|
## DESCRIPTION
|
|
11
11
|
|
|
12
12
|
Copy all of the `.gem` files needed to run the application into the
|
|
13
|
-
`vendor/cache` directory. In the future, when running [bundle install(1)]
|
|
13
|
+
`vendor/cache` directory. In the future, when running [`bundle install(1)`](bundle-install.1.html),
|
|
14
14
|
use the gems in the cache in preference to the ones on `rubygems.org`.
|
|
15
15
|
|
|
16
16
|
## GIT AND PATH GEMS
|
|
@@ -29,7 +29,7 @@ bundler configuration.
|
|
|
29
29
|
|
|
30
30
|
## REMOTE FETCHING
|
|
31
31
|
|
|
32
|
-
By default, if you run `bundle install(1)`](bundle-install.1.html) after running
|
|
32
|
+
By default, if you run [`bundle install(1)`](bundle-install.1.html) after running
|
|
33
33
|
[bundle cache(1)](bundle-cache.1.html), bundler will still connect to `rubygems.org`
|
|
34
34
|
to check whether a platform-specific gem exists for any of the gems
|
|
35
35
|
in `vendor/cache`.
|
|
@@ -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" "February 2023" "" ""
|
|
5
5
|
.
|
|
6
6
|
.SH "NAME"
|
|
7
7
|
\fBbundle\-check\fR \- Verifies if dependencies are satisfied by installed gems
|
|
@@ -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" "February 2023" "" ""
|
|
5
5
|
.
|
|
6
6
|
.SH "NAME"
|
|
7
7
|
\fBbundle\-clean\fR \- Cleans up unused gems in your bundler directory
|
|
@@ -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\-CONFIG" "1" "
|
|
4
|
+
.TH "BUNDLE\-CONFIG" "1" "February 2023" "" ""
|
|
5
5
|
.
|
|
6
6
|
.SH "NAME"
|
|
7
7
|
\fBbundle\-config\fR \- Set bundler configuration options
|
|
@@ -39,7 +39,7 @@ Bundler default config
|
|
|
39
39
|
.IP "" 0
|
|
40
40
|
.
|
|
41
41
|
.P
|
|
42
|
-
Executing \fBbundle config list\fR
|
|
42
|
+
Executing \fBbundle config list\fR will print a list of all bundler configuration for the current bundle, and where that configuration was set\.
|
|
43
43
|
.
|
|
44
44
|
.P
|
|
45
45
|
Executing \fBbundle config get <name>\fR will print the value of that configuration setting, and where it was set\.
|
|
@@ -19,7 +19,7 @@ Bundler loads configuration settings in this order:
|
|
|
19
19
|
3. Global config (`~/.bundle/config`)
|
|
20
20
|
4. Bundler default config
|
|
21
21
|
|
|
22
|
-
Executing `bundle config list`
|
|
22
|
+
Executing `bundle config list` will print a list of all bundler
|
|
23
23
|
configuration for the current bundle, and where that configuration
|
|
24
24
|
was set.
|
|
25
25
|
|
|
@@ -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\-CONSOLE" "1" "
|
|
4
|
+
.TH "BUNDLE\-CONSOLE" "1" "February 2023" "" ""
|
|
5
5
|
.
|
|
6
6
|
.SH "NAME"
|
|
7
7
|
\fBbundle\-console\fR \- Deprecated way to open an IRB session with the bundle pre\-loaded
|
|
@@ -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\-EXEC" "1" "
|
|
4
|
+
.TH "BUNDLE\-EXEC" "1" "February 2023" "" ""
|
|
5
5
|
.
|
|
6
6
|
.SH "NAME"
|
|
7
7
|
\fBbundle\-exec\fR \- Execute a command in the context of the bundle
|
|
@@ -74,13 +74,13 @@ Finally, \fBbundle exec\fR also implicitly modifies \fBGemfile\.lock\fR if the l
|
|
|
74
74
|
By default, when attempting to \fBbundle exec\fR to a file with a ruby shebang, Bundler will \fBKernel\.load\fR that file instead of using \fBKernel\.exec\fR\. For the vast majority of cases, this is a performance improvement\. In a rare few cases, this could cause some subtle side\-effects (such as dependence on the exact contents of \fB$0\fR or \fB__FILE__\fR) and the optimization can be disabled by enabling the \fBdisable_exec_load\fR setting\.
|
|
75
75
|
.
|
|
76
76
|
.SS "Shelling out"
|
|
77
|
-
Any Ruby code that opens a subshell (like \fBsystem\fR, backticks, or \fB%x{}\fR) will automatically use the current Bundler environment\. If you need to shell out to a Ruby command that is not part of your current bundle, use the \
|
|
77
|
+
Any Ruby code that opens a subshell (like \fBsystem\fR, backticks, or \fB%x{}\fR) will automatically use the current Bundler environment\. If you need to shell out to a Ruby command that is not part of your current bundle, use the \fBwith_unbundled_env\fR method with a block\. Any subshells created inside the block will be given the environment present before Bundler was activated\. For example, Homebrew commands run Ruby, but don\'t work inside a bundle:
|
|
78
78
|
.
|
|
79
79
|
.IP "" 4
|
|
80
80
|
.
|
|
81
81
|
.nf
|
|
82
82
|
|
|
83
|
-
Bundler\.
|
|
83
|
+
Bundler\.with_unbundled_env do
|
|
84
84
|
`brew install wget`
|
|
85
85
|
end
|
|
86
86
|
.
|
|
@@ -89,13 +89,13 @@ end
|
|
|
89
89
|
.IP "" 0
|
|
90
90
|
.
|
|
91
91
|
.P
|
|
92
|
-
Using \
|
|
92
|
+
Using \fBwith_unbundled_env\fR is also necessary if you are shelling out to a different bundle\. Any Bundler commands run in a subshell will inherit the current Gemfile, so commands that need to run in the context of a different bundle also need to use \fBwith_unbundled_env\fR\.
|
|
93
93
|
.
|
|
94
94
|
.IP "" 4
|
|
95
95
|
.
|
|
96
96
|
.nf
|
|
97
97
|
|
|
98
|
-
Bundler\.
|
|
98
|
+
Bundler\.with_unbundled_env do
|
|
99
99
|
Dir\.chdir "/other/bundler/project" do
|
|
100
100
|
`bundle exec \./script`
|
|
101
101
|
end
|
|
@@ -84,20 +84,20 @@ the `disable_exec_load` setting.
|
|
|
84
84
|
Any Ruby code that opens a subshell (like `system`, backticks, or `%x{}`) will
|
|
85
85
|
automatically use the current Bundler environment. If you need to shell out to
|
|
86
86
|
a Ruby command that is not part of your current bundle, use the
|
|
87
|
-
`
|
|
87
|
+
`with_unbundled_env` method with a block. Any subshells created inside the block
|
|
88
88
|
will be given the environment present before Bundler was activated. For
|
|
89
89
|
example, Homebrew commands run Ruby, but don't work inside a bundle:
|
|
90
90
|
|
|
91
|
-
Bundler.
|
|
91
|
+
Bundler.with_unbundled_env do
|
|
92
92
|
`brew install wget`
|
|
93
93
|
end
|
|
94
94
|
|
|
95
|
-
Using `
|
|
95
|
+
Using `with_unbundled_env` is also necessary if you are shelling out to a different
|
|
96
96
|
bundle. Any Bundler commands run in a subshell will inherit the current
|
|
97
97
|
Gemfile, so commands that need to run in the context of a different bundle also
|
|
98
|
-
need to use `
|
|
98
|
+
need to use `with_unbundled_env`.
|
|
99
99
|
|
|
100
|
-
Bundler.
|
|
100
|
+
Bundler.with_unbundled_env do
|
|
101
101
|
Dir.chdir "/other/bundler/project" do
|
|
102
102
|
`bundle exec ./script`
|
|
103
103
|
end
|
|
@@ -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\-GEM" "1" "
|
|
4
|
+
.TH "BUNDLE\-GEM" "1" "February 2023" "" ""
|
|
5
5
|
.
|
|
6
6
|
.SH "NAME"
|
|
7
7
|
\fBbundle\-gem\fR \- Generate a project skeleton for creating a rubygem
|
|
@@ -31,41 +31,32 @@ The generated project skeleton can be customized with OPTIONS, as explained belo
|
|
|
31
31
|
.
|
|
32
32
|
.SH "OPTIONS"
|
|
33
33
|
.
|
|
34
|
-
.
|
|
35
|
-
\fB\-\-exe\fR or \fB\-b\fR or \fB\-\-bin\fR
|
|
36
|
-
Specify that Bundler should create a binary executable (as \fBexe/GEM_NAME\fR) in the generated rubygem project\. This binary will also be added to the \fBGEM_NAME\.gemspec\fR manifest\. This behavior is disabled by default\.
|
|
34
|
+
.IP "\(bu" 4
|
|
35
|
+
\fB\-\-exe\fR or \fB\-b\fR or \fB\-\-bin\fR: Specify that Bundler should create a binary executable (as \fBexe/GEM_NAME\fR) in the generated rubygem project\. This binary will also be added to the \fBGEM_NAME\.gemspec\fR manifest\. This behavior is disabled by default\.
|
|
37
36
|
.
|
|
38
|
-
.
|
|
39
|
-
\fB\-\-no\-exe\fR
|
|
40
|
-
Do not create a binary (overrides \fB\-\-exe\fR specified in the global config)\.
|
|
37
|
+
.IP "\(bu" 4
|
|
38
|
+
\fB\-\-no\-exe\fR: Do not create a binary (overrides \fB\-\-exe\fR specified in the global config)\.
|
|
41
39
|
.
|
|
42
|
-
.
|
|
43
|
-
\fB\-\-coc\fR
|
|
44
|
-
Add a \fBCODE_OF_CONDUCT\.md\fR file to the root of the generated project\. If this option is unspecified, an interactive prompt will be displayed and the answer will be saved in Bundler\'s global config for future \fBbundle gem\fR use\.
|
|
40
|
+
.IP "\(bu" 4
|
|
41
|
+
\fB\-\-coc\fR: Add a \fBCODE_OF_CONDUCT\.md\fR file to the root of the generated project\. If this option is unspecified, an interactive prompt will be displayed and the answer will be saved in Bundler\'s global config for future \fBbundle gem\fR use\.
|
|
45
42
|
.
|
|
46
|
-
.
|
|
47
|
-
\fB\-\-no\-coc\fR
|
|
48
|
-
Do not create a \fBCODE_OF_CONDUCT\.md\fR (overrides \fB\-\-coc\fR specified in the global config)\.
|
|
43
|
+
.IP "\(bu" 4
|
|
44
|
+
\fB\-\-no\-coc\fR: Do not create a \fBCODE_OF_CONDUCT\.md\fR (overrides \fB\-\-coc\fR specified in the global config)\.
|
|
49
45
|
.
|
|
50
|
-
.
|
|
51
|
-
\fB\-\-ext\fR
|
|
52
|
-
Add boilerplate for C extension code to the generated project\. This behavior is disabled by default\.
|
|
46
|
+
.IP "\(bu" 4
|
|
47
|
+
\fB\-\-ext=c\fR, \fB\-\-ext=rust\fR Add boilerplate for C or Rust (currently magnus \fIhttps://docs\.rs/magnus\fR based) extension code to the generated project\. This behavior is disabled by default\.
|
|
53
48
|
.
|
|
54
|
-
.
|
|
55
|
-
\fB\-\-no\-ext\fR
|
|
56
|
-
Do not add C extension code (overrides \fB\-\-ext\fR specified in the global config)\.
|
|
49
|
+
.IP "\(bu" 4
|
|
50
|
+
\fB\-\-no\-ext\fR: Do not add extension code (overrides \fB\-\-ext\fR specified in the global config)\.
|
|
57
51
|
.
|
|
58
|
-
.
|
|
59
|
-
\fB\-\-mit\fR
|
|
60
|
-
Add an MIT license to a \fBLICENSE\.txt\fR file in the root of the generated project\. Your name from the global git config is used for the copyright statement\. If this option is unspecified, an interactive prompt will be displayed and the answer will be saved in Bundler\'s global config for future \fBbundle gem\fR use\.
|
|
52
|
+
.IP "\(bu" 4
|
|
53
|
+
\fB\-\-mit\fR: Add an MIT license to a \fBLICENSE\.txt\fR file in the root of the generated project\. Your name from the global git config is used for the copyright statement\. If this option is unspecified, an interactive prompt will be displayed and the answer will be saved in Bundler\'s global config for future \fBbundle gem\fR use\.
|
|
61
54
|
.
|
|
62
|
-
.
|
|
63
|
-
\fB\-\-no\-mit\fR
|
|
64
|
-
Do not create a \fBLICENSE\.txt\fR (overrides \fB\-\-mit\fR specified in the global config)\.
|
|
55
|
+
.IP "\(bu" 4
|
|
56
|
+
\fB\-\-no\-mit\fR: Do not create a \fBLICENSE\.txt\fR (overrides \fB\-\-mit\fR specified in the global config)\.
|
|
65
57
|
.
|
|
66
|
-
.
|
|
67
|
-
\fB\-t\fR, \fB\-\-test=minitest\fR, \fB\-\-test=rspec\fR, \fB\-\-test=test\-unit\fR
|
|
68
|
-
Specify the test framework that Bundler should use when generating the project\. Acceptable values are \fBminitest\fR, \fBrspec\fR and \fBtest\-unit\fR\. The \fBGEM_NAME\.gemspec\fR will be configured and a skeleton test/spec directory will be created based on this option\. Given no option is specified:
|
|
58
|
+
.IP "\(bu" 4
|
|
59
|
+
\fB\-t\fR, \fB\-\-test=minitest\fR, \fB\-\-test=rspec\fR, \fB\-\-test=test\-unit\fR: Specify the test framework that Bundler should use when generating the project\. Acceptable values are \fBminitest\fR, \fBrspec\fR and \fBtest\-unit\fR\. The \fBGEM_NAME\.gemspec\fR will be configured and a skeleton test/spec directory will be created based on this option\. Given no option is specified:
|
|
69
60
|
.
|
|
70
61
|
.IP
|
|
71
62
|
When Bundler is configured to generate tests, this defaults to Bundler\'s global config setting \fBgem\.test\fR\.
|
|
@@ -76,9 +67,8 @@ When Bundler is configured to not generate tests, an interactive prompt will be
|
|
|
76
67
|
.IP
|
|
77
68
|
When Bundler is unconfigured, an interactive prompt will be displayed and the answer will be saved in Bundler\'s global config for future \fBbundle gem\fR use\.
|
|
78
69
|
.
|
|
79
|
-
.
|
|
80
|
-
\fB\-\-ci\fR, \fB\-\-ci=github\fR, \fB\-\-ci=
|
|
81
|
-
Specify the continuous integration service that Bundler should use when generating the project\. Acceptable values are \fBgithub\fR, \fBtravis\fR, \fBgitlab\fR and \fBcircle\fR\. A configuration file will be generated in the project directory\. Given no option is specified:
|
|
70
|
+
.IP "\(bu" 4
|
|
71
|
+
\fB\-\-ci\fR, \fB\-\-ci=github\fR, \fB\-\-ci=gitlab\fR, \fB\-\-ci=circle\fR: Specify the continuous integration service that Bundler should use when generating the project\. Acceptable values are \fBgithub\fR, \fBgitlab\fR and \fBcircle\fR\. A configuration file will be generated in the project directory\. Given no option is specified:
|
|
82
72
|
.
|
|
83
73
|
.IP
|
|
84
74
|
When Bundler is configured to generate CI files, this defaults to Bundler\'s global config setting \fBgem\.ci\fR\.
|
|
@@ -89,9 +79,8 @@ When Bundler is configured to not generate CI files, an interactive prompt will
|
|
|
89
79
|
.IP
|
|
90
80
|
When Bundler is unconfigured, an interactive prompt will be displayed and the answer will be saved in Bundler\'s global config for future \fBbundle gem\fR use\.
|
|
91
81
|
.
|
|
92
|
-
.
|
|
93
|
-
\fB\-\-linter\fR, \fB\-\-linter=rubocop\fR, \fB\-\-linter=standard\fR
|
|
94
|
-
Specify the linter and code formatter that Bundler should add to the project\'s development dependencies\. Acceptable values are \fBrubocop\fR and \fBstandard\fR\. A configuration file will be generated in the project directory\. Given no option is specified:
|
|
82
|
+
.IP "\(bu" 4
|
|
83
|
+
\fB\-\-linter\fR, \fB\-\-linter=rubocop\fR, \fB\-\-linter=standard\fR: Specify the linter and code formatter that Bundler should add to the project\'s development dependencies\. Acceptable values are \fBrubocop\fR and \fBstandard\fR\. A configuration file will be generated in the project directory\. Given no option is specified:
|
|
95
84
|
.
|
|
96
85
|
.IP
|
|
97
86
|
When Bundler is configured to add a linter, this defaults to Bundler\'s global config setting \fBgem\.linter\fR\.
|
|
@@ -102,9 +91,10 @@ When Bundler is configured not to add a linter, an interactive prompt will be di
|
|
|
102
91
|
.IP
|
|
103
92
|
When Bundler is unconfigured, an interactive prompt will be displayed and the answer will be saved in Bundler\'s global config for future \fBbundle gem\fR use\.
|
|
104
93
|
.
|
|
105
|
-
.
|
|
106
|
-
\fB\-e\fR, \fB\-\-edit[=EDITOR]\fR
|
|
107
|
-
|
|
94
|
+
.IP "\(bu" 4
|
|
95
|
+
\fB\-e\fR, \fB\-\-edit[=EDITOR]\fR: Open the resulting GEM_NAME\.gemspec in EDITOR, or the default editor if not specified\. The default is \fB$BUNDLER_EDITOR\fR, \fB$VISUAL\fR, or \fB$EDITOR\fR\.
|
|
96
|
+
.
|
|
97
|
+
.IP "" 0
|
|
108
98
|
.
|
|
109
99
|
.SH "SEE ALSO"
|
|
110
100
|
.
|