Fix Cleanup.stale_version? logic

This commit is contained in:
Douglas Eichelberger
2026-02-02 04:22:23 -08:00
parent b5fba5189b
commit 4e37f2ad25
2 changed files with 20 additions and 2 deletions
+4 -2
View File
@@ -166,8 +166,10 @@ module Homebrew
return true if (bottle = formula.bottle).blank?
version = bottle.resource.version
version && version != GitHubPackages.version_rebuild(version, bottle.rebuild)
resource_version = bottle.resource.version
return false unless resource_version
return resource_version != GitHubPackages.version_rebuild(resource_version, bottle.rebuild)
end
return false if formula.blank?
+16
View File
@@ -444,6 +444,22 @@ RSpec.describe Homebrew::Cleanup do
expect(testball_resource).not_to exist
end
end
it "does not remove bottle manifests for the latest installed version when using GitHub Packages" do
manifest = HOMEBREW_CACHE/"foo_bottle_manifest--1.0.json"
FileUtils.touch manifest
resource = instance_double(Resource, version: Version.new("1.0.arm64_sonoma"))
bottle = instance_double(Bottle, resource:, rebuild: 0)
formula = instance_double(Formula, latest_version_installed?: true, bottle:)
allow(Formulary).to receive(:from_rack).and_return(nil, formula)
allow(described_class).to receive(:excluded_versions_from_cleanup).with(formula).and_return([])
cleanup.cleanup_cache
expect(manifest).to exist
end
end
describe "::cleanup_python_site_packages" do