bundler 2.3.17 → 2.3.20
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +76 -0
- data/lib/bundler/build_metadata.rb +2 -2
- data/lib/bundler/cli/common.rb +1 -0
- data/lib/bundler/cli/install.rb +5 -2
- data/lib/bundler/cli/outdated.rb +12 -3
- data/lib/bundler/cli/platform.rb +1 -1
- data/lib/bundler/cli.rb +5 -3
- data/lib/bundler/compact_index_client/updater.rb +16 -3
- data/lib/bundler/definition.rb +111 -28
- data/lib/bundler/dependency.rb +2 -1
- data/lib/bundler/dsl.rb +3 -3
- data/lib/bundler/fetcher.rb +6 -6
- data/lib/bundler/gem_helpers.rb +8 -1
- data/lib/bundler/incomplete_specification.rb +12 -0
- data/lib/bundler/index.rb +10 -12
- data/lib/bundler/installer/standalone.rb +1 -1
- data/lib/bundler/installer.rb +8 -1
- data/lib/bundler/lazy_specification.rb +30 -21
- data/lib/bundler/lockfile_parser.rb +4 -0
- 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 +7 -1
- data/lib/bundler/man/bundle-cache.1.ronn +7 -0
- 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 +15 -5
- data/lib/bundler/man/bundle-config.1.ronn +12 -5
- 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 +5 -1
- data/lib/bundler/man/bundle-install.1.ronn +6 -0
- 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 +16 -6
- data/lib/bundler/man/bundle-platform.1.ronn +14 -7
- 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 +6 -9
- data/lib/bundler/man/bundle.1.ronn +5 -6
- data/lib/bundler/man/gemfile.5 +77 -47
- data/lib/bundler/man/gemfile.5.ronn +75 -54
- data/lib/bundler/remote_specification.rb +5 -4
- data/lib/bundler/resolver/spec_group.rb +5 -4
- data/lib/bundler/resolver.rb +10 -7
- data/lib/bundler/ruby_dsl.rb +1 -1
- data/lib/bundler/ruby_version.rb +5 -5
- data/lib/bundler/rubygems_ext.rb +13 -0
- 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/metadata.rb +1 -1
- data/lib/bundler/source/rubygems.rb +12 -6
- data/lib/bundler/source_list.rb +4 -0
- data/lib/bundler/spec_set.rb +26 -31
- data/lib/bundler/version.rb +1 -1
- data/lib/bundler.rb +1 -0
- metadata +4 -3
data/lib/bundler/spec_set.rb
CHANGED
@@ -11,40 +11,33 @@ module Bundler
|
|
11
11
|
@specs = specs
|
12
12
|
end
|
13
13
|
|
14
|
-
def for(dependencies, check = false,
|
15
|
-
|
16
|
-
|
17
|
-
deps = dependencies.dup
|
14
|
+
def for(dependencies, check = false, platforms = [nil])
|
15
|
+
handled = ["bundler"].product(platforms).map {|k| [k, true] }.to_h
|
16
|
+
deps = dependencies.product(platforms)
|
18
17
|
specs = []
|
19
18
|
|
20
19
|
loop do
|
21
20
|
break unless dep = deps.shift
|
22
|
-
next if handled[dep.name].any? {|d| match_current_platform || d.__platform == dep.__platform } || dep.name == "bundler"
|
23
21
|
|
24
|
-
|
25
|
-
handled
|
22
|
+
key = [dep[0].name, dep[1]]
|
23
|
+
next if handled.key?(key)
|
26
24
|
|
27
|
-
|
25
|
+
handled[key] = true
|
26
|
+
|
27
|
+
specs_for_dep = specs_for_dependency(*dep)
|
28
28
|
if specs_for_dep.any?
|
29
29
|
specs.concat(specs_for_dep)
|
30
30
|
|
31
31
|
specs_for_dep.first.dependencies.each do |d|
|
32
32
|
next if d.type == :development
|
33
|
-
|
34
|
-
deps << d
|
33
|
+
deps << [d, dep[1]]
|
35
34
|
end
|
36
35
|
elsif check
|
37
|
-
|
36
|
+
specs << IncompleteSpecification.new(*key)
|
38
37
|
end
|
39
38
|
end
|
40
39
|
|
41
|
-
|
42
|
-
specs << spec
|
43
|
-
end
|
44
|
-
|
45
|
-
specs.uniq! unless match_current_platform
|
46
|
-
|
47
|
-
check ? true : specs
|
40
|
+
specs
|
48
41
|
end
|
49
42
|
|
50
43
|
def [](key)
|
@@ -71,13 +64,8 @@ module Bundler
|
|
71
64
|
end
|
72
65
|
|
73
66
|
def materialize(deps)
|
74
|
-
materialized = self.for(deps,
|
67
|
+
materialized = self.for(deps, true)
|
75
68
|
|
76
|
-
materialized.map! do |s|
|
77
|
-
next s unless s.is_a?(LazySpecification)
|
78
|
-
s.source.local!
|
79
|
-
s.__materialize__ || s
|
80
|
-
end
|
81
69
|
SpecSet.new(materialized)
|
82
70
|
end
|
83
71
|
|
@@ -87,18 +75,25 @@ module Bundler
|
|
87
75
|
def materialized_for_all_platforms
|
88
76
|
@specs.map do |s|
|
89
77
|
next s unless s.is_a?(LazySpecification)
|
90
|
-
s.source.local!
|
91
78
|
s.source.remote!
|
92
|
-
spec = s.
|
79
|
+
spec = s.materialize_for_installation
|
93
80
|
raise GemNotFound, "Could not find #{s.full_name} in any of the sources" unless spec
|
94
81
|
spec
|
95
82
|
end
|
96
83
|
end
|
97
84
|
|
85
|
+
def incomplete_ruby_specs?(deps)
|
86
|
+
self.class.new(self.for(deps, true, [Gem::Platform::RUBY])).incomplete_specs.any?
|
87
|
+
end
|
88
|
+
|
98
89
|
def missing_specs
|
99
90
|
@specs.select {|s| s.is_a?(LazySpecification) }
|
100
91
|
end
|
101
92
|
|
93
|
+
def incomplete_specs
|
94
|
+
@specs.select {|s| s.is_a?(IncompleteSpecification) }
|
95
|
+
end
|
96
|
+
|
102
97
|
def merge(set)
|
103
98
|
arr = sorted.dup
|
104
99
|
set.each do |set_spec|
|
@@ -173,13 +168,13 @@ module Bundler
|
|
173
168
|
@specs.sort_by(&:name).each {|s| yield s }
|
174
169
|
end
|
175
170
|
|
176
|
-
def specs_for_dependency(dep,
|
171
|
+
def specs_for_dependency(dep, platform)
|
177
172
|
specs_for_name = lookup[dep.name]
|
178
|
-
if
|
179
|
-
|
173
|
+
if platform.nil?
|
174
|
+
matching_specs = specs_for_name.map {|s| s.materialize_for_installation if Gem::Platform.match_spec?(s) }.compact
|
175
|
+
GemHelpers.sort_best_platform_match(matching_specs, Bundler.local_platform)
|
180
176
|
else
|
181
|
-
|
182
|
-
specs_for_name_and_platform.any? ? specs_for_name_and_platform : specs_for_name
|
177
|
+
GemHelpers.select_best_platform_match(specs_for_name, dep.force_ruby_platform ? Gem::Platform::RUBY : platform)
|
183
178
|
end
|
184
179
|
end
|
185
180
|
|
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.20
|
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-08-10 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.20
|
373
374
|
signing_key:
|
374
375
|
specification_version: 4
|
375
376
|
summary: The best way to manage your application's dependencies
|