rubygems-update 4.0.2 → 4.0.3
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 +11 -0
- data/bundler/CHANGELOG.md +6 -0
- data/bundler/lib/bundler/build_metadata.rb +2 -2
- data/bundler/lib/bundler/lazy_specification.rb +41 -16
- data/bundler/lib/bundler/version.rb +1 -1
- data/lib/rubygems/psych_tree.rb +1 -1
- data/lib/rubygems/request_set/lockfile.rb +1 -1
- data/lib/rubygems/security/policy.rb +1 -1
- data/lib/rubygems/source.rb +1 -1
- data/lib/rubygems.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 28ee6cf18b2dd8595c173ed33216a3138e827f4a0cf2edabdd1241602d91f322
|
|
4
|
+
data.tar.gz: c0846629675967ffc8194b81f931b35c1bcba82e45c89c99ae3fa77e865ce9d4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c64d7c5069f669fd15fb3db88ddcc41fb46b427b523b86c628de4156aa256e5af13605b6437698ee012cdd6d336a01f226d79c22ce0f2f78611ef435d2eb7d34
|
|
7
|
+
data.tar.gz: ef84ccf16a33b1c0efc0e68607c06c86996485d69e4c5c61f50b00881932d29b7d028fe6e7fb5201a2ac8bf23c1e2709a6132d1a9e97da61d53526a8ac13dc8b
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 4.0.3 / 2025-12-23
|
|
4
|
+
|
|
5
|
+
### Enhancements:
|
|
6
|
+
|
|
7
|
+
* Installs bundler 4.0.3 as a default gem.
|
|
8
|
+
|
|
9
|
+
### Documentation:
|
|
10
|
+
|
|
11
|
+
* Fix broken documentation links. Pull request
|
|
12
|
+
[#9208](https://github.com/ruby/rubygems/pull/9208) by eileencodes
|
|
13
|
+
|
|
3
14
|
## 4.0.2 / 2025-12-17
|
|
4
15
|
|
|
5
16
|
### Enhancements:
|
data/bundler/CHANGELOG.md
CHANGED
|
@@ -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 = "2025-12-
|
|
8
|
-
@git_commit_sha = "
|
|
7
|
+
@built_at = "2025-12-23".freeze
|
|
8
|
+
@git_commit_sha = "28c66ecc1e".freeze
|
|
9
9
|
# end ivars
|
|
10
10
|
|
|
11
11
|
# A hash representation of the build metadata.
|
|
@@ -138,24 +138,16 @@ module Bundler
|
|
|
138
138
|
source.local!
|
|
139
139
|
|
|
140
140
|
if use_exact_resolved_specifications?
|
|
141
|
-
materialize(self)
|
|
142
|
-
|
|
143
|
-
end
|
|
144
|
-
else
|
|
145
|
-
materialize([name, version]) do |matching_specs|
|
|
146
|
-
target_platform = source.is_a?(Source::Path) ? platform : Bundler.local_platform
|
|
147
|
-
|
|
148
|
-
installable_candidates = MatchPlatform.select_best_platform_match(matching_specs, target_platform)
|
|
149
|
-
|
|
150
|
-
specification = choose_compatible(installable_candidates, fallback_to_non_installable: false)
|
|
151
|
-
return specification unless specification.nil?
|
|
141
|
+
spec = materialize(self) {|specs| choose_compatible(specs, fallback_to_non_installable: false) }
|
|
142
|
+
return spec if spec
|
|
152
143
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
choose_compatible(installable_candidates)
|
|
144
|
+
# Exact spec is incompatible; in frozen mode, try to find a compatible platform variant
|
|
145
|
+
# In non-frozen mode, return nil to trigger re-resolution and lockfile update
|
|
146
|
+
if Bundler.frozen_bundle?
|
|
147
|
+
materialize([name, version]) {|specs| resolve_best_platform(specs) }
|
|
158
148
|
end
|
|
149
|
+
else
|
|
150
|
+
materialize([name, version]) {|specs| resolve_best_platform(specs) }
|
|
159
151
|
end
|
|
160
152
|
end
|
|
161
153
|
|
|
@@ -190,6 +182,39 @@ module Bundler
|
|
|
190
182
|
!source.is_a?(Source::Path) && ruby_platform_materializes_to_ruby_platform?
|
|
191
183
|
end
|
|
192
184
|
|
|
185
|
+
# Try platforms in order of preference until finding a compatible spec.
|
|
186
|
+
# Used for legacy lockfiles and as a fallback when the exact locked spec
|
|
187
|
+
# is incompatible. Falls back to frozen bundle behavior if none match.
|
|
188
|
+
def resolve_best_platform(specs)
|
|
189
|
+
find_compatible_platform_spec(specs) || frozen_bundle_fallback(specs)
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
def find_compatible_platform_spec(specs)
|
|
193
|
+
candidate_platforms.each do |plat|
|
|
194
|
+
candidates = MatchPlatform.select_best_platform_match(specs, plat)
|
|
195
|
+
spec = choose_compatible(candidates, fallback_to_non_installable: false)
|
|
196
|
+
return spec if spec
|
|
197
|
+
end
|
|
198
|
+
nil
|
|
199
|
+
end
|
|
200
|
+
|
|
201
|
+
# Platforms to try in order of preference. Ruby platform is last since it
|
|
202
|
+
# requires compilation, but works when precompiled gems are incompatible.
|
|
203
|
+
def candidate_platforms
|
|
204
|
+
target = source.is_a?(Source::Path) ? platform : Bundler.local_platform
|
|
205
|
+
[target, platform, Gem::Platform::RUBY].uniq
|
|
206
|
+
end
|
|
207
|
+
|
|
208
|
+
# In frozen mode, accept any candidate. Will error at install time.
|
|
209
|
+
# When target differs from locked platform, prefer locked platform's candidates
|
|
210
|
+
# to preserve lockfile integrity.
|
|
211
|
+
def frozen_bundle_fallback(specs)
|
|
212
|
+
target = source.is_a?(Source::Path) ? platform : Bundler.local_platform
|
|
213
|
+
fallback_platform = target == platform ? target : platform
|
|
214
|
+
candidates = MatchPlatform.select_best_platform_match(specs, fallback_platform)
|
|
215
|
+
choose_compatible(candidates)
|
|
216
|
+
end
|
|
217
|
+
|
|
193
218
|
def ruby_platform_materializes_to_ruby_platform?
|
|
194
219
|
generic_platform = Bundler.generic_local_platform == Gem::Platform::JAVA ? Gem::Platform::JAVA : Gem::Platform::RUBY
|
|
195
220
|
|
data/lib/rubygems/psych_tree.rb
CHANGED
|
@@ -38,7 +38,7 @@ class Gem::RequestSet::Lockfile
|
|
|
38
38
|
end
|
|
39
39
|
|
|
40
40
|
##
|
|
41
|
-
# Creates a new Lockfile for the given
|
|
41
|
+
# Creates a new Lockfile for the given Gem::RequestSet and +gem_deps_file+
|
|
42
42
|
# location.
|
|
43
43
|
|
|
44
44
|
def self.build(request_set, gem_deps_file, dependencies = nil)
|
|
@@ -143,7 +143,7 @@ class Gem::Security::Policy
|
|
|
143
143
|
end
|
|
144
144
|
|
|
145
145
|
##
|
|
146
|
-
# Ensures the root of +chain+ has a trusted certificate in
|
|
146
|
+
# Ensures the root of +chain+ has a trusted certificate in Gem::Security.trust_dir and
|
|
147
147
|
# the digests of the two certificates match according to +digester+
|
|
148
148
|
|
|
149
149
|
def check_trust(chain, digester, trust_dir)
|
data/lib/rubygems/source.rb
CHANGED
data/lib/rubygems.rb
CHANGED