bundler 2.3.22 → 2.3.23
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +18 -0
- data/lib/bundler/build_metadata.rb +2 -2
- data/lib/bundler/cli/init.rb +5 -1
- data/lib/bundler/definition.rb +2 -12
- data/lib/bundler/dsl.rb +0 -1
- data/lib/bundler/gem_version_promoter.rb +6 -7
- data/lib/bundler/index.rb +3 -26
- data/lib/bundler/resolver.rb +7 -11
- data/lib/bundler/rubygems_ext.rb +12 -1
- data/lib/bundler/spec_set.rb +1 -1
- data/lib/bundler/templates/newgem/gitlab-ci.yml.tt +5 -4
- data/lib/bundler/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 28c415ab98b0a481538fb3881860945bc2ec0b0d78afd59dbd8a38d75fcfdd4b
|
4
|
+
data.tar.gz: ccf31d79b872afd5d3fffd60b8ccfd425eb14e189f512b5187e6c171a2cf696b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6486b340fde2e41727126b985846503e89f7fd22a5f2b197f5e687b2e8840c7043be9eab0a54797cf9b0b1d777d9f9ee92bfc6b0c069c5eb310a2812c5af8460
|
7
|
+
data.tar.gz: 591190883dfb54835e5f11129ac09a87e9462a427fb97831c5def834664e18b55ca59b80b68028b35fe015fde2d5cfa3a372218a6b4c9432bfd9a0e585612f23
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,21 @@
|
|
1
|
+
# 2.3.23 (October 5, 2022)
|
2
|
+
|
3
|
+
## Enhancements:
|
4
|
+
|
5
|
+
- Update GitLab CI template with new one [#5944](https://github.com/rubygems/rubygems/pull/5944)
|
6
|
+
|
7
|
+
## Bug fixes:
|
8
|
+
|
9
|
+
- Fix `bundle init` not respecting umask in generated gem's Gemfile [#5947](https://github.com/rubygems/rubygems/pull/5947)
|
10
|
+
|
11
|
+
## Performance:
|
12
|
+
|
13
|
+
- Further speed up Bundler by not sorting specs unnecessarily [#5868](https://github.com/rubygems/rubygems/pull/5868)
|
14
|
+
|
15
|
+
## Documentation:
|
16
|
+
|
17
|
+
- Update Bundler new feature instructions [#5912](https://github.com/rubygems/rubygems/pull/5912)
|
18
|
+
|
1
19
|
# 2.3.22 (September 7, 2022)
|
2
20
|
|
3
21
|
## Enhancements:
|
@@ -4,8 +4,8 @@ module Bundler
|
|
4
4
|
# Represents metadata from when the Bundler gem was built.
|
5
5
|
module BuildMetadata
|
6
6
|
# begin ivars
|
7
|
-
@built_at = "2022-
|
8
|
-
@git_commit_sha = "
|
7
|
+
@built_at = "2022-10-05".freeze
|
8
|
+
@git_commit_sha = "250d9d485d".freeze
|
9
9
|
@release = true
|
10
10
|
# end ivars
|
11
11
|
|
data/lib/bundler/cli/init.rb
CHANGED
@@ -32,7 +32,11 @@ module Bundler
|
|
32
32
|
file << spec.to_gemfile
|
33
33
|
end
|
34
34
|
else
|
35
|
-
|
35
|
+
File.open(File.expand_path("../templates/#{gemfile}", __dir__), "r") do |template|
|
36
|
+
File.open(gemfile, "wb") do |destination|
|
37
|
+
IO.copy_stream(template, destination)
|
38
|
+
end
|
39
|
+
end
|
36
40
|
end
|
37
41
|
|
38
42
|
puts "Writing new #{gemfile} to #{SharedHelpers.pwd}/#{gemfile}"
|
data/lib/bundler/definition.rb
CHANGED
@@ -106,6 +106,7 @@ module Bundler
|
|
106
106
|
@locked_gems = nil
|
107
107
|
@locked_deps = {}
|
108
108
|
@locked_specs = SpecSet.new([])
|
109
|
+
@originally_locked_specs = @locked_specs
|
109
110
|
@locked_sources = []
|
110
111
|
@locked_platforms = []
|
111
112
|
end
|
@@ -149,18 +150,7 @@ module Bundler
|
|
149
150
|
end
|
150
151
|
|
151
152
|
def gem_version_promoter
|
152
|
-
@gem_version_promoter ||=
|
153
|
-
locked_specs =
|
154
|
-
if unlocking? && @locked_specs.empty? && !@lockfile_contents.empty?
|
155
|
-
# Definition uses an empty set of locked_specs to indicate all gems
|
156
|
-
# are unlocked, but GemVersionPromoter needs the locked_specs
|
157
|
-
# for conservative comparison.
|
158
|
-
Bundler::SpecSet.new(@locked_gems.specs)
|
159
|
-
else
|
160
|
-
@locked_specs
|
161
|
-
end
|
162
|
-
GemVersionPromoter.new(locked_specs, @unlock[:gems])
|
163
|
-
end
|
153
|
+
@gem_version_promoter ||= GemVersionPromoter.new(@originally_locked_specs, @unlock[:gems])
|
164
154
|
end
|
165
155
|
|
166
156
|
def resolve_only_locally!
|
data/lib/bundler/dsl.rb
CHANGED
@@ -67,7 +67,6 @@ module Bundler
|
|
67
67
|
|
68
68
|
gemspecs = Gem::Util.glob_files_in_dir("{,*}.gemspec", expanded_path).map {|g| Bundler.load_gemspec(g) }.compact
|
69
69
|
gemspecs.reject! {|s| s.name != name } if name
|
70
|
-
Index.sort_specs(gemspecs)
|
71
70
|
specs_by_name_and_version = gemspecs.group_by {|s| [s.name, s.version] }
|
72
71
|
|
73
72
|
case specs_by_name_and_version.size
|
@@ -116,15 +116,14 @@ module Bundler
|
|
116
116
|
end
|
117
117
|
|
118
118
|
def sort_dep_specs(spec_groups, locked_spec)
|
119
|
-
|
120
|
-
@gem_name = locked_spec
|
121
|
-
@locked_version = locked_spec.version
|
119
|
+
@locked_version = locked_spec&.version
|
120
|
+
@gem_name = locked_spec&.name
|
122
121
|
|
123
122
|
result = spec_groups.sort do |a, b|
|
124
123
|
@a_ver = a.version
|
125
124
|
@b_ver = b.version
|
126
125
|
|
127
|
-
unless @prerelease_specified[@gem_name]
|
126
|
+
unless @gem_name && @prerelease_specified[@gem_name]
|
128
127
|
a_pre = @a_ver.prerelease?
|
129
128
|
b_pre = @b_ver.prerelease?
|
130
129
|
|
@@ -148,7 +147,7 @@ module Bundler
|
|
148
147
|
end
|
149
148
|
|
150
149
|
def either_version_older_than_locked
|
151
|
-
@a_ver < @locked_version || @b_ver < @locked_version
|
150
|
+
@locked_version && (@a_ver < @locked_version || @b_ver < @locked_version)
|
152
151
|
end
|
153
152
|
|
154
153
|
def segments_do_not_match(level)
|
@@ -157,7 +156,7 @@ module Bundler
|
|
157
156
|
end
|
158
157
|
|
159
158
|
def unlocking_gem?
|
160
|
-
unlock_gems.empty? || unlock_gems.include?(@gem_name)
|
159
|
+
unlock_gems.empty? || (@gem_name && unlock_gems.include?(@gem_name))
|
161
160
|
end
|
162
161
|
|
163
162
|
# Specific version moves can't always reliably be done during sorting
|
@@ -165,7 +164,7 @@ module Bundler
|
|
165
164
|
def post_sort(result)
|
166
165
|
# default :major behavior in Bundler does not do this
|
167
166
|
return result if major?
|
168
|
-
if unlocking_gem?
|
167
|
+
if unlocking_gem? || @locked_version.nil?
|
169
168
|
result
|
170
169
|
else
|
171
170
|
move_version_to_end(result, @locked_version)
|
data/lib/bundler/index.rb
CHANGED
@@ -57,36 +57,13 @@ module Bundler
|
|
57
57
|
# Search this index's specs, and any source indexes that this index knows
|
58
58
|
# about, returning all of the results.
|
59
59
|
def search(query)
|
60
|
-
sort_specs(unsorted_search(query))
|
61
|
-
end
|
62
|
-
|
63
|
-
def unsorted_search(query)
|
64
60
|
results = local_search(query)
|
65
|
-
|
66
|
-
seen = results.map(&:full_name).uniq unless @sources.empty?
|
61
|
+
return results unless @sources.any?
|
67
62
|
|
68
63
|
@sources.each do |source|
|
69
|
-
source.
|
70
|
-
next if seen.include?(spec.full_name)
|
71
|
-
|
72
|
-
seen << spec.full_name
|
73
|
-
results << spec
|
74
|
-
end
|
64
|
+
results.concat(source.search(query))
|
75
65
|
end
|
76
|
-
|
77
|
-
results
|
78
|
-
end
|
79
|
-
protected :unsorted_search
|
80
|
-
|
81
|
-
def self.sort_specs(specs)
|
82
|
-
specs.sort_by do |s|
|
83
|
-
platform_string = s.platform.to_s
|
84
|
-
[s.version, platform_string == RUBY ? NULL : platform_string]
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
def sort_specs(specs)
|
89
|
-
self.class.sort_specs(specs)
|
66
|
+
results.uniq(&:full_name)
|
90
67
|
end
|
91
68
|
|
92
69
|
def local_search(query)
|
data/lib/bundler/resolver.rb
CHANGED
@@ -42,8 +42,7 @@ module Bundler
|
|
42
42
|
remove_from_candidates(spec)
|
43
43
|
end
|
44
44
|
|
45
|
-
|
46
|
-
requirements.each {|dep| @prerelease_specified[dep.name] ||= dep.prerelease? }
|
45
|
+
requirements.each {|dep| prerelease_specified[dep.name] ||= dep.prerelease? }
|
47
46
|
|
48
47
|
verify_gemfile_dependencies_are_found!(requirements)
|
49
48
|
result = @resolver.resolve(requirements).
|
@@ -127,13 +126,6 @@ module Bundler
|
|
127
126
|
results = results_for(dependency) + locked_results
|
128
127
|
results = results.select {|spec| requirement_satisfied_by?(locked_requirement, nil, spec) } if locked_requirement
|
129
128
|
|
130
|
-
if !@prerelease_specified[name] && locked_results.empty?
|
131
|
-
# Move prereleases to the beginning of the list, so they're considered
|
132
|
-
# last during resolution.
|
133
|
-
pre, results = results.partition {|spec| spec.version.prerelease? }
|
134
|
-
results = pre + results
|
135
|
-
end
|
136
|
-
|
137
129
|
if results.any?
|
138
130
|
results = @gem_version_promoter.sort_versions(dependency, results)
|
139
131
|
|
@@ -221,6 +213,10 @@ module Bundler
|
|
221
213
|
@base.base_requirements
|
222
214
|
end
|
223
215
|
|
216
|
+
def prerelease_specified
|
217
|
+
@gem_version_promoter.prerelease_specified
|
218
|
+
end
|
219
|
+
|
224
220
|
def remove_from_candidates(spec)
|
225
221
|
@base.delete(spec)
|
226
222
|
|
@@ -255,7 +251,7 @@ module Bundler
|
|
255
251
|
all - 1_000_000
|
256
252
|
else
|
257
253
|
search = search_for(dependency)
|
258
|
-
search =
|
254
|
+
search = prerelease_specified[dependency.name] ? search.count : search.count {|s| !s.version.prerelease? }
|
259
255
|
search - all
|
260
256
|
end
|
261
257
|
end
|
@@ -284,7 +280,7 @@ module Bundler
|
|
284
280
|
end
|
285
281
|
|
286
282
|
def gem_not_found_message(name, requirement, source, extra_message = "")
|
287
|
-
specs = source.specs.search(name)
|
283
|
+
specs = source.specs.search(name).sort_by {|s| [s.version, s.platform.to_s] }
|
288
284
|
matching_part = name
|
289
285
|
requirement_label = SharedHelpers.pretty_dependency(requirement)
|
290
286
|
cache_message = begin
|
data/lib/bundler/rubygems_ext.rb
CHANGED
@@ -261,10 +261,21 @@ module Gem
|
|
261
261
|
# version
|
262
262
|
(
|
263
263
|
(@os != "linux" && (@version.nil? || other.version.nil?)) ||
|
264
|
-
(@os == "linux" && (other.
|
264
|
+
(@os == "linux" && (normalized_linux_version_ext == other.normalized_linux_version_ext || ["musl#{@version}", "musleabi#{@version}", "musleabihf#{@version}"].include?(other.version))) ||
|
265
265
|
@version == other.version
|
266
266
|
)
|
267
267
|
end
|
268
|
+
|
269
|
+
# This is a copy of RubyGems 3.3.23 or higher `normalized_linux_method`.
|
270
|
+
# Once only 3.3.23 is supported, we can use the method in RubyGems.
|
271
|
+
def normalized_linux_version_ext
|
272
|
+
return nil unless @version
|
273
|
+
|
274
|
+
without_gnu_nor_abi_modifiers = @version.sub(/\Agnu/, "").sub(/eabi(hf)?\Z/, "")
|
275
|
+
return nil if without_gnu_nor_abi_modifiers.empty?
|
276
|
+
|
277
|
+
without_gnu_nor_abi_modifiers
|
278
|
+
end
|
268
279
|
end
|
269
280
|
end
|
270
281
|
|
data/lib/bundler/spec_set.rb
CHANGED
@@ -1,8 +1,9 @@
|
|
1
|
-
|
1
|
+
default:
|
2
|
+
image: ruby:<%= RUBY_VERSION %>
|
2
3
|
|
3
|
-
before_script:
|
4
|
-
|
5
|
-
|
4
|
+
before_script:
|
5
|
+
- gem install bundler -v <%= Bundler::VERSION %>
|
6
|
+
- bundle install
|
6
7
|
|
7
8
|
example_job:
|
8
9
|
script:
|
data/lib/bundler/version.rb
CHANGED
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.23
|
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-10-05 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
|
@@ -380,7 +380,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
380
380
|
- !ruby/object:Gem::Version
|
381
381
|
version: 2.5.2
|
382
382
|
requirements: []
|
383
|
-
rubygems_version: 3.
|
383
|
+
rubygems_version: 3.3.23
|
384
384
|
signing_key:
|
385
385
|
specification_version: 4
|
386
386
|
summary: The best way to manage your application's dependencies
|