bundler 2.3.22 → 2.3.23
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 +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
|