Merge pull request #20366 from Homebrew/livecheck/special-case-unsigned-deprecations

SkipConditions: special case unsigned deprecations
This commit is contained in:
Patrick Linnane 2025-08-03 20:22:56 +00:00 committed by GitHub
commit 9e4bedad2f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 31 additions and 14 deletions

View File

@ -120,6 +120,7 @@ module Homebrew
}
private_class_method def self.cask_deprecated(cask, livecheck_defined, full_name: false, verbose: false)
return {} if !cask.deprecated? || livecheck_defined
return {} if cask.disable_date && cask.deprecation_reason == :unsigned
Livecheck.status_hash(cask, "deprecated", full_name:, verbose:)
end

View File

@ -79,10 +79,10 @@ RSpec.describe Homebrew::Livecheck::SkipConditions do
let(:casks) do
{
basic: Cask::Cask.new("test") do
basic: Cask::Cask.new("test") do
version "0.0.1,2"
url "https://brew.sh/test-0.0.1.tgz"
url "https://brew.sh/test-#{version.csv.first}.tgz"
name "Test"
desc "Test cask"
homepage "https://brew.sh"
@ -92,32 +92,42 @@ RSpec.describe Homebrew::Livecheck::SkipConditions do
regex(/"stable":"(\d+(?:\.\d+)+)"/i)
end
end,
deprecated: Cask::Cask.new("test_deprecated") do
deprecated: Cask::Cask.new("test_deprecated") do
version "0.0.1"
sha256 :no_check
url "https://brew.sh/test-0.0.1.tgz"
url "https://brew.sh/test-#{version}.tgz"
name "Test Deprecate"
desc "Deprecated test cask"
homepage "https://brew.sh"
deprecate! date: "2020-06-25", because: :discontinued
end,
disabled: Cask::Cask.new("test_disabled") do
disabled: Cask::Cask.new("test_disabled") do
version "0.0.1"
sha256 :no_check
url "https://brew.sh/test-0.0.1.tgz"
url "https://brew.sh/test-#{version}.tgz"
name "Test Disable"
desc "Disabled test cask"
homepage "https://brew.sh"
disable! date: "2020-06-25", because: :discontinued
end,
extract_plist: Cask::Cask.new("test_extract_plist_skip") do
future_disable_unsigned: Cask::Cask.new("test_future_disable_unsigned") do
version "0.0.1"
url "https://brew.sh/test-0.0.1.tgz"
url "https://brew.sh/test-#{version}.tgz"
name "Test Future Disabled Unsigned"
desc "Future Disable Unsigned test cask"
homepage "https://brew.sh"
disable! date: "3000-06-25", because: :unsigned
end,
extract_plist: Cask::Cask.new("test_extract_plist_skip") do
version "0.0.1"
url "https://brew.sh/test-#{version}.tgz"
name "Test ExtractPlist Skip"
desc "Skipped test cask"
homepage "https://brew.sh"
@ -126,7 +136,7 @@ RSpec.describe Homebrew::Livecheck::SkipConditions do
strategy :extract_plist
end
end,
latest: Cask::Cask.new("test_latest") do
latest: Cask::Cask.new("test_latest") do
version :latest
sha256 :no_check
@ -135,7 +145,7 @@ RSpec.describe Homebrew::Livecheck::SkipConditions do
desc "Latest test cask"
homepage "https://brew.sh"
end,
unversioned: Cask::Cask.new("test_unversioned") do
unversioned: Cask::Cask.new("test_unversioned") do
version "1.2.3"
sha256 :no_check
@ -144,10 +154,10 @@ RSpec.describe Homebrew::Livecheck::SkipConditions do
desc "Unversioned test cask"
homepage "https://brew.sh"
end,
skip: Cask::Cask.new("test_skip") do
skip: Cask::Cask.new("test_skip") do
version "0.0.1"
url "https://brew.sh/test-0.0.1.tgz"
url "https://brew.sh/test-#{version}.tgz"
name "Test Skip"
desc "Skipped test cask"
homepage "https://brew.sh"
@ -156,10 +166,10 @@ RSpec.describe Homebrew::Livecheck::SkipConditions do
skip
end
end,
skip_with_message: Cask::Cask.new("test_skip_with_message") do
skip_with_message: Cask::Cask.new("test_skip_with_message") do
version "0.0.1"
url "https://brew.sh/test-0.0.1.tgz"
url "https://brew.sh/test-#{version}.tgz"
name "Test Skip"
desc "Skipped test cask"
homepage "https://brew.sh"
@ -374,6 +384,12 @@ RSpec.describe Homebrew::Livecheck::SkipConditions do
end
end
context "when a cask without a `livecheck` block is deprecated with a future disable date because `:unsigned`" do
it "does not skip" do
expect(skip_conditions.skip_information(casks[:future_disable_unsigned])).to eq({})
end
end
context "when a cask has a `livecheck` block using `ExtractPlist` and `--extract-plist` is not used" do
it "skips" do
expect(skip_conditions.skip_information(casks[:extract_plist], extract_plist: false))