bundler 4.0.13 → 4.0.14
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 +7 -0
- data/lib/bundler/build_metadata.rb +1 -1
- data/lib/bundler/resolver.rb +16 -0
- data/lib/bundler/source/rubygems.rb +1 -1
- data/lib/bundler/source_list.rb +4 -0
- data/lib/bundler/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2c7cfeed01a046a9b186ddcdb1039e59c4605673529e12fb08b3fb32f424650f
|
|
4
|
+
data.tar.gz: 375e9b2540c5493fb90cb4e2004372c4fdbac9ed67d09a680bc23fdb71e04c58
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 55a5604bfb508d0c3b509702ce84a42bd4811f3f42222176133942fed42ff0f224ed64fcf68873e163cfe63d8cc183f11b67f4ec915814d3e121bb70f575296d
|
|
7
|
+
data.tar.gz: 4178ca638dd4f4ede2977526c4edba39cb6ae21f9d7d0ba6cab55d47235556d9ea41bfc4353b2349a1085746af76825c84e5597deba5130d874150f8ae1f91ef
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 4.0.14 / 2026-06-10
|
|
4
|
+
|
|
5
|
+
### Bug fixes:
|
|
6
|
+
|
|
7
|
+
* Preserve per-source cooldown when converging sources from the lockfile. Pull request [#9601](https://github.com/ruby/rubygems/pull/9601) by bryanwoods
|
|
8
|
+
* Don't exclude the locked version from cooldown during bundle update. Pull request [#9599](https://github.com/ruby/rubygems/pull/9599) by hsbt
|
|
9
|
+
|
|
3
10
|
## 4.0.13 / 2026-06-03
|
|
4
11
|
|
|
5
12
|
### Enhancements:
|
data/lib/bundler/resolver.rb
CHANGED
|
@@ -437,11 +437,27 @@ module Bundler
|
|
|
437
437
|
def cooldown_excluded?(spec)
|
|
438
438
|
return false unless spec.respond_to?(:created_at) && spec.created_at
|
|
439
439
|
return false unless spec.respond_to?(:remote) && spec.remote
|
|
440
|
+
return false if pinned_by_lockfile_floor?(spec)
|
|
440
441
|
days = spec.remote.effective_cooldown
|
|
441
442
|
return false if days.nil? || days <= 0
|
|
442
443
|
(cooldown_now - spec.created_at) < (days * 86_400)
|
|
443
444
|
end
|
|
444
445
|
|
|
446
|
+
# A spec sitting exactly at a `>= locked_version` prevent-downgrade floor is
|
|
447
|
+
# the version the lockfile currently pins. `bundle update` and `bundle
|
|
448
|
+
# outdated` install that floor so resolution never moves a gem backwards.
|
|
449
|
+
# Filtering it out for cooldown would then make resolution impossible
|
|
450
|
+
# whenever the locked version is itself inside the cooldown window, which is
|
|
451
|
+
# exactly what happens to a lockfile written before cooldown was enabled.
|
|
452
|
+
# Keep it eligible; gems being explicitly updated carry an exact `=`
|
|
453
|
+
# requirement instead and stay subject to the cooldown filter.
|
|
454
|
+
def pinned_by_lockfile_floor?(spec)
|
|
455
|
+
return false unless defined?(@base) && @base
|
|
456
|
+
requirement = base_requirements[spec.name]
|
|
457
|
+
return false unless requirement && !requirement.exact?
|
|
458
|
+
requirement.requirements.any? {|op, version| op == ">=" && version == spec.version }
|
|
459
|
+
end
|
|
460
|
+
|
|
445
461
|
def cooldown_now
|
|
446
462
|
@cooldown_now ||= Time.now
|
|
447
463
|
end
|
data/lib/bundler/source_list.rb
CHANGED
|
@@ -169,6 +169,10 @@ module Bundler
|
|
|
169
169
|
# locked sources never include credentials so always prefer remotes from the gemfile
|
|
170
170
|
replacement_source.remotes = gemfile_source.remotes
|
|
171
171
|
|
|
172
|
+
# cooldowns are only ever declared in the Gemfile, so carry them over
|
|
173
|
+
# along with the remotes they apply to
|
|
174
|
+
replacement_source.remote_cooldowns = gemfile_source.remote_cooldowns
|
|
175
|
+
|
|
172
176
|
yield replacement_source if block_given?
|
|
173
177
|
|
|
174
178
|
replacement_source
|
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: 4.0.
|
|
4
|
+
version: 4.0.14
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- André Arko
|
|
@@ -402,7 +402,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
402
402
|
- !ruby/object:Gem::Version
|
|
403
403
|
version: 3.4.1
|
|
404
404
|
requirements: []
|
|
405
|
-
rubygems_version: 4.0.
|
|
405
|
+
rubygems_version: 4.0.13
|
|
406
406
|
specification_version: 4
|
|
407
407
|
summary: The best way to manage your application's dependencies
|
|
408
408
|
test_files: []
|