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) private_class_method def self.cask_deprecated(cask, livecheck_defined, full_name: false, verbose: false)
return {} if !cask.deprecated? || livecheck_defined return {} if !cask.deprecated? || livecheck_defined
return {} if cask.disable_date && cask.deprecation_reason == :unsigned
Livecheck.status_hash(cask, "deprecated", full_name:, verbose:) Livecheck.status_hash(cask, "deprecated", full_name:, verbose:)
end end

View File

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