bundler 2.3.16 → 2.3.19
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +71 -0
- data/lib/bundler/build_metadata.rb +2 -2
- data/lib/bundler/cli/cache.rb +1 -1
- data/lib/bundler/cli/common.rb +1 -0
- data/lib/bundler/cli/install.rb +2 -0
- data/lib/bundler/cli.rb +6 -2
- data/lib/bundler/compact_index_client/updater.rb +16 -3
- data/lib/bundler/current_ruby.rb +1 -1
- data/lib/bundler/definition.rb +51 -18
- data/lib/bundler/dependency.rb +3 -2
- data/lib/bundler/dsl.rb +3 -3
- data/lib/bundler/friendly_errors.rb +5 -2
- data/lib/bundler/gem_helpers.rb +2 -0
- data/lib/bundler/incomplete_specification.rb +12 -0
- data/lib/bundler/index.rb +11 -17
- data/lib/bundler/installer/standalone.rb +29 -2
- data/lib/bundler/lazy_specification.rb +17 -8
- data/lib/bundler/lockfile_parser.rb +4 -0
- data/lib/bundler/man/bundle-add.1 +2 -2
- data/lib/bundler/man/bundle-add.1.ronn +1 -1
- data/lib/bundler/man/bundle-binstubs.1 +1 -1
- data/lib/bundler/man/bundle-cache.1 +1 -1
- 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 +13 -3
- data/lib/bundler/man/bundle-config.1.ronn +9 -2
- data/lib/bundler/man/bundle-doctor.1 +1 -1
- data/lib/bundler/man/bundle-exec.1 +2 -2
- data/lib/bundler/man/bundle-exec.1.ronn +1 -1
- data/lib/bundler/man/bundle-gem.1 +1 -1
- data/lib/bundler/man/bundle-info.1 +1 -1
- data/lib/bundler/man/bundle-init.1 +1 -1
- data/lib/bundler/man/bundle-inject.1 +5 -2
- data/lib/bundler/man/bundle-inject.1.ronn +3 -1
- data/lib/bundler/man/bundle-install.1 +1 -1
- 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 +1 -1
- data/lib/bundler/man/bundle-outdated.1 +1 -1
- data/lib/bundler/man/bundle-platform.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-viz.1 +4 -1
- data/lib/bundler/man/bundle-viz.1.ronn +2 -0
- data/lib/bundler/man/bundle.1 +3 -3
- data/lib/bundler/man/bundle.1.ronn +2 -2
- data/lib/bundler/man/gemfile.5 +77 -47
- data/lib/bundler/man/gemfile.5.ronn +75 -54
- data/lib/bundler/match_platform.rb +0 -1
- data/lib/bundler/remote_specification.rb +5 -4
- data/lib/bundler/resolver/spec_group.rb +5 -4
- data/lib/bundler/resolver.rb +11 -9
- data/lib/bundler/rubygems_ext.rb +6 -5
- data/lib/bundler/rubygems_gem_installer.rb +19 -12
- data/lib/bundler/runtime.rb +0 -1
- data/lib/bundler/settings.rb +1 -0
- data/lib/bundler/source/rubygems.rb +14 -6
- data/lib/bundler/spec_set.rb +31 -20
- data/lib/bundler/version.rb +1 -1
- data/lib/bundler.rb +1 -0
- metadata +4 -3
@@ -16,7 +16,8 @@ module Bundler
|
|
16
16
|
def initialize(name, version, platform, spec_fetcher)
|
17
17
|
@name = name
|
18
18
|
@version = Gem::Version.create version
|
19
|
-
@
|
19
|
+
@original_platform = platform || Gem::Platform::RUBY
|
20
|
+
@platform = Gem::Platform.new(platform)
|
20
21
|
@spec_fetcher = spec_fetcher
|
21
22
|
@dependencies = nil
|
22
23
|
end
|
@@ -35,10 +36,10 @@ module Bundler
|
|
35
36
|
end
|
36
37
|
|
37
38
|
def full_name
|
38
|
-
if
|
39
|
+
if @original_platform == Gem::Platform::RUBY
|
39
40
|
"#{@name}-#{@version}"
|
40
41
|
else
|
41
|
-
"#{@name}-#{@version}-#{
|
42
|
+
"#{@name}-#{@version}-#{@original_platform}"
|
42
43
|
end
|
43
44
|
end
|
44
45
|
|
@@ -105,7 +106,7 @@ module Bundler
|
|
105
106
|
end
|
106
107
|
|
107
108
|
def _remote_specification
|
108
|
-
@_remote_specification ||= @spec_fetcher.fetch_spec([@name, @version, @
|
109
|
+
@_remote_specification ||= @spec_fetcher.fetch_spec([@name, @version, @original_platform])
|
109
110
|
@_remote_specification || raise(GemspecError, "Gemspec data for #{full_name} was" \
|
110
111
|
" missing from the server! Try installing with `--full-index` as a workaround.")
|
111
112
|
end
|
@@ -4,7 +4,7 @@ module Bundler
|
|
4
4
|
class Resolver
|
5
5
|
class SpecGroup
|
6
6
|
attr_accessor :name, :version, :source
|
7
|
-
attr_accessor :activated_platforms
|
7
|
+
attr_accessor :activated_platforms, :force_ruby_platform
|
8
8
|
|
9
9
|
def self.create_for(specs, all_platforms, specific_platform)
|
10
10
|
specific_platform_specs = specs[specific_platform]
|
@@ -35,6 +35,7 @@ module Bundler
|
|
35
35
|
|
36
36
|
specs.map do |s|
|
37
37
|
lazy_spec = LazySpecification.new(name, version, s.platform, source)
|
38
|
+
lazy_spec.force_ruby_platform = force_ruby_platform
|
38
39
|
lazy_spec.dependencies.replace s.dependencies
|
39
40
|
lazy_spec
|
40
41
|
end
|
@@ -88,7 +89,7 @@ module Bundler
|
|
88
89
|
dependencies = []
|
89
90
|
@specs[platform].first.dependencies.each do |dep|
|
90
91
|
next if dep.type == :development
|
91
|
-
dependencies << DepProxy.get_proxy(dep, platform)
|
92
|
+
dependencies << DepProxy.get_proxy(Dependency.new(dep.name, dep.requirement), platform)
|
92
93
|
end
|
93
94
|
dependencies
|
94
95
|
end
|
@@ -98,10 +99,10 @@ module Bundler
|
|
98
99
|
return [] if spec.is_a?(LazySpecification)
|
99
100
|
dependencies = []
|
100
101
|
unless spec.required_ruby_version.none?
|
101
|
-
dependencies << DepProxy.get_proxy(
|
102
|
+
dependencies << DepProxy.get_proxy(Dependency.new("Ruby\0", spec.required_ruby_version), platform)
|
102
103
|
end
|
103
104
|
unless spec.required_rubygems_version.none?
|
104
|
-
dependencies << DepProxy.get_proxy(
|
105
|
+
dependencies << DepProxy.get_proxy(Dependency.new("RubyGems\0", spec.required_rubygems_version), platform)
|
105
106
|
end
|
106
107
|
dependencies
|
107
108
|
end
|
data/lib/bundler/resolver.rb
CHANGED
@@ -22,17 +22,16 @@ module Bundler
|
|
22
22
|
metadata_requirements, regular_requirements = requirements.partition {|dep| dep.name.end_with?("\0") }
|
23
23
|
resolver = new(source_requirements, base, gem_version_promoter, additional_base_requirements, platforms, metadata_requirements)
|
24
24
|
result = resolver.start(requirements)
|
25
|
-
SpecSet.new(SpecSet.new(result).for(regular_requirements))
|
25
|
+
SpecSet.new(SpecSet.new(result).for(regular_requirements, false, platforms))
|
26
26
|
end
|
27
27
|
|
28
28
|
def initialize(source_requirements, base, gem_version_promoter, additional_base_requirements, platforms, metadata_requirements)
|
29
29
|
@source_requirements = source_requirements
|
30
30
|
@metadata_requirements = metadata_requirements
|
31
|
-
@base = base
|
32
31
|
@resolver = Molinillo::Resolver.new(self, self)
|
33
32
|
@search_for = {}
|
34
33
|
@base_dg = Molinillo::DependencyGraph.new
|
35
|
-
@base.
|
34
|
+
@base = base.materialized_for_resolution do |ls|
|
36
35
|
dep = Dependency.new(ls.name, ls.version)
|
37
36
|
@base_dg.add_vertex(ls.name, DepProxy.get_proxy(dep, ls.platform), true)
|
38
37
|
end
|
@@ -111,7 +110,7 @@ module Bundler
|
|
111
110
|
dependency = dependency_proxy.dep
|
112
111
|
name = dependency.name
|
113
112
|
@search_for[dependency_proxy] ||= begin
|
114
|
-
results = results_for(dependency
|
113
|
+
results = results_for(dependency) + @base[name].select {|spec| requirement_satisfied_by?(dependency, nil, spec) }
|
115
114
|
|
116
115
|
if vertex = @base_dg.vertex_named(name)
|
117
116
|
locked_requirement = vertex.payload.requirement
|
@@ -143,9 +142,12 @@ module Bundler
|
|
143
142
|
end
|
144
143
|
|
145
144
|
spec_group_ruby = SpecGroup.create_for(specs_by_platform, [Gem::Platform::RUBY], Gem::Platform::RUBY)
|
146
|
-
|
145
|
+
if spec_group_ruby
|
146
|
+
spec_group_ruby.force_ruby_platform = dependency.force_ruby_platform
|
147
|
+
groups << spec_group_ruby
|
148
|
+
end
|
147
149
|
|
148
|
-
next groups if @resolving_only_for_ruby
|
150
|
+
next groups if @resolving_only_for_ruby || dependency.force_ruby_platform
|
149
151
|
|
150
152
|
spec_group = SpecGroup.create_for(specs_by_platform, @platforms, platform)
|
151
153
|
groups << spec_group
|
@@ -173,8 +175,8 @@ module Bundler
|
|
173
175
|
@source_requirements[name] || @source_requirements[:default]
|
174
176
|
end
|
175
177
|
|
176
|
-
def results_for(dependency
|
177
|
-
index_for(dependency).search(dependency
|
178
|
+
def results_for(dependency)
|
179
|
+
index_for(dependency).search(dependency)
|
178
180
|
end
|
179
181
|
|
180
182
|
def name_for(dependency)
|
@@ -284,7 +286,7 @@ module Bundler
|
|
284
286
|
if specs_matching_requirement.any?
|
285
287
|
specs = specs_matching_requirement
|
286
288
|
matching_part = requirement_label
|
287
|
-
requirement_label = "#{requirement_label} #{requirement.__platform}"
|
289
|
+
requirement_label = "#{requirement_label}' with platform '#{requirement.__platform}"
|
288
290
|
end
|
289
291
|
|
290
292
|
message = String.new("Could not find gem '#{requirement_label}'#{extra_message} in #{source}#{cache_message}.\n")
|
data/lib/bundler/rubygems_ext.rb
CHANGED
@@ -216,11 +216,12 @@ module Gem
|
|
216
216
|
require "rubygems/platform"
|
217
217
|
|
218
218
|
class Platform
|
219
|
-
JAVA = Gem::Platform.new("java")
|
220
|
-
MSWIN = Gem::Platform.new("mswin32")
|
221
|
-
MSWIN64 = Gem::Platform.new("mswin64")
|
222
|
-
MINGW = Gem::Platform.new("x86-mingw32")
|
223
|
-
X64_MINGW = Gem::Platform.new("x64-mingw32")
|
219
|
+
JAVA = Gem::Platform.new("java")
|
220
|
+
MSWIN = Gem::Platform.new("mswin32")
|
221
|
+
MSWIN64 = Gem::Platform.new("mswin64")
|
222
|
+
MINGW = Gem::Platform.new("x86-mingw32")
|
223
|
+
X64_MINGW = [Gem::Platform.new("x64-mingw32"),
|
224
|
+
Gem::Platform.new("x64-mingw-ucrt")].freeze
|
224
225
|
end
|
225
226
|
|
226
227
|
Platform.singleton_class.module_eval do
|
@@ -25,7 +25,7 @@ module Bundler
|
|
25
25
|
|
26
26
|
extract_files
|
27
27
|
|
28
|
-
build_extensions
|
28
|
+
build_extensions if spec.extensions.any?
|
29
29
|
write_build_info_file
|
30
30
|
run_post_build_hooks
|
31
31
|
|
@@ -66,26 +66,26 @@ module Bundler
|
|
66
66
|
|
67
67
|
def build_extensions
|
68
68
|
extension_cache_path = options[:bundler_extension_cache_path]
|
69
|
-
|
70
|
-
|
69
|
+
extension_dir = spec.extension_dir
|
70
|
+
unless extension_cache_path && extension_dir
|
71
|
+
prepare_extension_build(extension_dir)
|
71
72
|
return super
|
72
73
|
end
|
73
74
|
|
74
|
-
extension_dir = Pathname.new(extension_dir)
|
75
75
|
build_complete = SharedHelpers.filesystem_access(extension_cache_path.join("gem.build_complete"), :read, &:file?)
|
76
76
|
if build_complete && !options[:force]
|
77
|
-
SharedHelpers.filesystem_access(extension_dir
|
77
|
+
SharedHelpers.filesystem_access(File.dirname(extension_dir)) do |p|
|
78
|
+
FileUtils.mkpath p
|
79
|
+
end
|
78
80
|
SharedHelpers.filesystem_access(extension_cache_path) do
|
79
|
-
FileUtils.cp_r extension_cache_path,
|
81
|
+
FileUtils.cp_r extension_cache_path, extension_dir
|
80
82
|
end
|
81
83
|
else
|
82
|
-
|
84
|
+
prepare_extension_build(extension_dir)
|
83
85
|
super
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
FileUtils.cp_r extension_dir, extension_cache_path
|
88
|
-
end
|
86
|
+
SharedHelpers.filesystem_access(extension_cache_path.parent, &:mkpath)
|
87
|
+
SharedHelpers.filesystem_access(extension_cache_path) do
|
88
|
+
FileUtils.cp_r extension_dir, extension_cache_path
|
89
89
|
end
|
90
90
|
end
|
91
91
|
end
|
@@ -100,6 +100,13 @@ module Bundler
|
|
100
100
|
|
101
101
|
private
|
102
102
|
|
103
|
+
def prepare_extension_build(extension_dir)
|
104
|
+
SharedHelpers.filesystem_access(extension_dir, :create) do
|
105
|
+
FileUtils.mkdir_p extension_dir
|
106
|
+
end
|
107
|
+
require "shellwords" unless Bundler.rubygems.provides?(">= 3.2.25")
|
108
|
+
end
|
109
|
+
|
103
110
|
def strict_rm_rf(dir)
|
104
111
|
Bundler.rm_rf dir
|
105
112
|
rescue Errno::ENOTEMPTY => e
|
data/lib/bundler/runtime.rb
CHANGED
@@ -125,7 +125,6 @@ module Bundler
|
|
125
125
|
specs_to_cache.each do |spec|
|
126
126
|
next if spec.name == "bundler"
|
127
127
|
next if spec.source.is_a?(Source::Gemspec)
|
128
|
-
spec.source.send(:fetch_gem, spec) if Bundler.settings[:cache_all_platforms] && spec.source.respond_to?(:fetch_gem, true)
|
129
128
|
spec.source.cache(spec, custom_path) if spec.source.respond_to?(:cache)
|
130
129
|
end
|
131
130
|
|
data/lib/bundler/settings.rb
CHANGED
@@ -153,13 +153,13 @@ module Bundler
|
|
153
153
|
# Check for this spec from other sources
|
154
154
|
uris = [spec.remote, *remotes_for_spec(spec)].map(&:anonymized_uri).uniq
|
155
155
|
Installer.ambiguous_gems << [spec.name, *uris] if uris.length > 1
|
156
|
-
|
157
|
-
path = fetch_gem(spec, options[:previous_spec])
|
158
|
-
else
|
159
|
-
path = cached_gem(spec)
|
160
|
-
raise GemNotFound, "Could not find #{spec.file_name} for installation" unless path
|
161
156
|
end
|
162
157
|
|
158
|
+
path = fetch_gem_if_possible(spec, options[:previous_spec])
|
159
|
+
raise GemNotFound, "Could not find #{spec.file_name} for installation" unless path
|
160
|
+
|
161
|
+
return if Bundler.settings[:no_install]
|
162
|
+
|
163
163
|
if requires_sudo?
|
164
164
|
install_path = Bundler.tmp(spec.full_name)
|
165
165
|
bin_path = install_path.join("bin")
|
@@ -240,7 +240,7 @@ module Bundler
|
|
240
240
|
end
|
241
241
|
|
242
242
|
def cache(spec, custom_path = nil)
|
243
|
-
cached_path = cached_gem(spec)
|
243
|
+
cached_path = Bundler.settings[:cache_all_platforms] ? fetch_gem_if_possible(spec) : cached_gem(spec)
|
244
244
|
raise GemNotFound, "Missing gem file '#{spec.file_name}'." unless cached_path
|
245
245
|
return if File.dirname(cached_path) == Bundler.app_cache.to_s
|
246
246
|
Bundler.ui.info " * #{File.basename(cached_path)}"
|
@@ -460,6 +460,14 @@ module Bundler
|
|
460
460
|
end
|
461
461
|
end
|
462
462
|
|
463
|
+
def fetch_gem_if_possible(spec, previous_spec = nil)
|
464
|
+
if spec.remote
|
465
|
+
fetch_gem(spec, previous_spec)
|
466
|
+
else
|
467
|
+
cached_gem(spec)
|
468
|
+
end
|
469
|
+
end
|
470
|
+
|
463
471
|
def fetch_gem(spec, previous_spec = nil)
|
464
472
|
spec.fetch_platform
|
465
473
|
|
data/lib/bundler/spec_set.rb
CHANGED
@@ -11,28 +11,27 @@ module Bundler
|
|
11
11
|
@specs = specs
|
12
12
|
end
|
13
13
|
|
14
|
-
def for(dependencies, check = false,
|
15
|
-
handled = []
|
16
|
-
deps = dependencies.
|
14
|
+
def for(dependencies, check = false, platforms = [nil])
|
15
|
+
handled = ["bundler"].product(platforms).map {|k| [k, true] }.to_h
|
16
|
+
deps = dependencies.product(platforms).map {|dep, platform| [dep.name, platform && dep.force_ruby_platform ? Gem::Platform::RUBY : platform] }
|
17
17
|
specs = []
|
18
18
|
|
19
19
|
loop do
|
20
20
|
break unless dep = deps.shift
|
21
|
-
next if handled.
|
21
|
+
next if handled.key?(dep)
|
22
22
|
|
23
|
-
handled
|
23
|
+
handled[dep] = true
|
24
24
|
|
25
|
-
specs_for_dep =
|
25
|
+
specs_for_dep = specs_for_dependency(*dep)
|
26
26
|
if specs_for_dep.any?
|
27
27
|
specs.concat(specs_for_dep)
|
28
28
|
|
29
29
|
specs_for_dep.first.dependencies.each do |d|
|
30
30
|
next if d.type == :development
|
31
|
-
|
32
|
-
deps << d
|
31
|
+
deps << [d.name, dep[1]]
|
33
32
|
end
|
34
33
|
elsif check
|
35
|
-
|
34
|
+
specs << IncompleteSpecification.new(*dep)
|
36
35
|
end
|
37
36
|
end
|
38
37
|
|
@@ -40,9 +39,7 @@ module Bundler
|
|
40
39
|
specs << spec
|
41
40
|
end
|
42
41
|
|
43
|
-
specs
|
44
|
-
|
45
|
-
check ? true : specs
|
42
|
+
specs
|
46
43
|
end
|
47
44
|
|
48
45
|
def [](key)
|
@@ -69,12 +66,12 @@ module Bundler
|
|
69
66
|
end
|
70
67
|
|
71
68
|
def materialize(deps)
|
72
|
-
materialized = self.for(deps,
|
69
|
+
materialized = self.for(deps, true).uniq
|
73
70
|
|
74
71
|
materialized.map! do |s|
|
75
72
|
next s unless s.is_a?(LazySpecification)
|
76
73
|
s.source.local!
|
77
|
-
s.
|
74
|
+
s.materialize_for_installation || s
|
78
75
|
end
|
79
76
|
SpecSet.new(materialized)
|
80
77
|
end
|
@@ -87,16 +84,29 @@ module Bundler
|
|
87
84
|
next s unless s.is_a?(LazySpecification)
|
88
85
|
s.source.local!
|
89
86
|
s.source.remote!
|
90
|
-
spec = s.
|
87
|
+
spec = s.materialize_for_installation
|
91
88
|
raise GemNotFound, "Could not find #{s.full_name} in any of the sources" unless spec
|
92
89
|
spec
|
93
90
|
end
|
94
91
|
end
|
95
92
|
|
93
|
+
def materialized_for_resolution
|
94
|
+
materialized = @specs.map do |s|
|
95
|
+
spec = s.materialize_for_resolution
|
96
|
+
yield spec if spec
|
97
|
+
spec
|
98
|
+
end.compact
|
99
|
+
SpecSet.new(materialized)
|
100
|
+
end
|
101
|
+
|
96
102
|
def missing_specs
|
97
103
|
@specs.select {|s| s.is_a?(LazySpecification) }
|
98
104
|
end
|
99
105
|
|
106
|
+
def incomplete_specs
|
107
|
+
@specs.select {|s| s.is_a?(IncompleteSpecification) }
|
108
|
+
end
|
109
|
+
|
100
110
|
def merge(set)
|
101
111
|
arr = sorted.dup
|
102
112
|
set.each do |set_spec|
|
@@ -171,12 +181,13 @@ module Bundler
|
|
171
181
|
@specs.sort_by(&:name).each {|s| yield s }
|
172
182
|
end
|
173
183
|
|
174
|
-
def
|
175
|
-
|
176
|
-
if
|
177
|
-
GemHelpers.select_best_platform_match(
|
184
|
+
def specs_for_dependency(name, platform)
|
185
|
+
specs_for_name = lookup[name]
|
186
|
+
if platform.nil?
|
187
|
+
GemHelpers.select_best_platform_match(specs_for_name.select {|s| Gem::Platform.match_spec?(s) }, Bundler.local_platform)
|
178
188
|
else
|
179
|
-
GemHelpers.select_best_platform_match(
|
189
|
+
specs_for_name_and_platform = GemHelpers.select_best_platform_match(specs_for_name, platform)
|
190
|
+
specs_for_name_and_platform.any? ? specs_for_name_and_platform : specs_for_name
|
180
191
|
end
|
181
192
|
end
|
182
193
|
|
data/lib/bundler/version.rb
CHANGED
data/lib/bundler.rb
CHANGED
@@ -53,6 +53,7 @@ module Bundler
|
|
53
53
|
autoload :GemHelpers, File.expand_path("bundler/gem_helpers", __dir__)
|
54
54
|
autoload :GemVersionPromoter, File.expand_path("bundler/gem_version_promoter", __dir__)
|
55
55
|
autoload :Graph, File.expand_path("bundler/graph", __dir__)
|
56
|
+
autoload :IncompleteSpecification, File.expand_path("bundler/incomplete_specification", __dir__)
|
56
57
|
autoload :Index, File.expand_path("bundler/index", __dir__)
|
57
58
|
autoload :Injector, File.expand_path("bundler/injector", __dir__)
|
58
59
|
autoload :Installer, File.expand_path("bundler/installer", __dir__)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bundler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.3.
|
4
|
+
version: 2.3.19
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- André Arko
|
@@ -22,7 +22,7 @@ authors:
|
|
22
22
|
autorequire:
|
23
23
|
bindir: exe
|
24
24
|
cert_chain: []
|
25
|
-
date: 2022-
|
25
|
+
date: 2022-07-27 00:00:00.000000000 Z
|
26
26
|
dependencies: []
|
27
27
|
description: Bundler manages an application's dependencies through its entire life,
|
28
28
|
across many machines, systematically and repeatably
|
@@ -103,6 +103,7 @@ files:
|
|
103
103
|
- lib/bundler/gem_tasks.rb
|
104
104
|
- lib/bundler/gem_version_promoter.rb
|
105
105
|
- lib/bundler/graph.rb
|
106
|
+
- lib/bundler/incomplete_specification.rb
|
106
107
|
- lib/bundler/index.rb
|
107
108
|
- lib/bundler/injector.rb
|
108
109
|
- lib/bundler/inline.rb
|
@@ -369,7 +370,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
369
370
|
- !ruby/object:Gem::Version
|
370
371
|
version: 2.5.2
|
371
372
|
requirements: []
|
372
|
-
rubygems_version: 3.3.
|
373
|
+
rubygems_version: 3.3.19
|
373
374
|
signing_key:
|
374
375
|
specification_version: 4
|
375
376
|
summary: The best way to manage your application's dependencies
|