Split audit_synced_versions_formulae
checks into reusable methods
- This way we can use them in the audit and in `bump`.
This commit is contained in:
parent
c7ed62a7d6
commit
1b5fa172bb
@ -460,10 +460,14 @@ module Homebrew
|
|||||||
Latest livecheck version: #{new_versions}
|
Latest livecheck version: #{new_versions}
|
||||||
Latest Repology version: #{repology_latest}
|
Latest Repology version: #{repology_latest}
|
||||||
EOS
|
EOS
|
||||||
puts <<~EOS if synced_with_other_formulae?(formula_or_cask)
|
if formula_or_cask.is_a?(Formula)
|
||||||
Version syncing: #{title_name} version should be kept in sync with
|
require "formula_auditor"
|
||||||
#{synced_with(T.cast(formula_or_cask, Formula), new_version.general).join(", ")}.
|
auditor = FormulaAuditor.new(formula_or_cask)
|
||||||
EOS
|
puts <<~EOS if T.must(auditor).synced_with_other_formulae?
|
||||||
|
Version syncing: #{title_name} version should be kept in sync with
|
||||||
|
#{synced_with(T.must(auditor), formula_or_cask, new_version.general).join(", ")}.
|
||||||
|
EOS
|
||||||
|
end
|
||||||
puts <<~EOS unless args.no_pull_requests?
|
puts <<~EOS unless args.no_pull_requests?
|
||||||
Open pull requests: #{open_pull_requests || "none"}
|
Open pull requests: #{open_pull_requests || "none"}
|
||||||
Closed pull requests: #{closed_pull_requests || "none"}
|
Closed pull requests: #{closed_pull_requests || "none"}
|
||||||
@ -502,27 +506,17 @@ module Homebrew
|
|||||||
system HOMEBREW_BREW_FILE, *bump_cask_pr_args
|
system HOMEBREW_BREW_FILE, *bump_cask_pr_args
|
||||||
end
|
end
|
||||||
|
|
||||||
sig { params(formula_or_cask: T.any(Formula, Cask::Cask)).returns(T::Boolean) }
|
|
||||||
def synced_with_other_formulae?(formula_or_cask)
|
|
||||||
return false if formula_or_cask.is_a?(Cask)
|
|
||||||
|
|
||||||
synced_versions_formulae_file = "#{formula_or_cask.tap.path}/synced_versions_formulae.json"
|
|
||||||
return false unless File.exist?(synced_versions_formulae_file)
|
|
||||||
|
|
||||||
synced_versions_formulae = JSON.parse(File.read(synced_versions_formulae_file))
|
|
||||||
synced_versions_formulae.any? { |synced_formulae| synced_formulae.include?(formula_or_cask.name) }
|
|
||||||
end
|
|
||||||
|
|
||||||
sig {
|
sig {
|
||||||
params(
|
params(
|
||||||
|
auditor: FormulaAuditor,
|
||||||
formula: Formula,
|
formula: Formula,
|
||||||
new_version: T.nilable(T.any(Version, Cask::DSL::Version)),
|
new_version: T.nilable(T.any(Version, Cask::DSL::Version)),
|
||||||
).returns(T::Array[String])
|
).returns(T::Array[String])
|
||||||
}
|
}
|
||||||
def synced_with(formula, new_version)
|
def synced_with(auditor, formula, new_version)
|
||||||
synced_with = []
|
synced_with = []
|
||||||
|
|
||||||
JSON.parse(File.read("#{T.must(formula.tap).path}/synced_versions_formulae.json")).each do |synced_formulae|
|
auditor.synced_versions_formulae_json.each do |synced_formulae|
|
||||||
next unless synced_formulae.include?(formula.name)
|
next unless synced_formulae.include?(formula.name)
|
||||||
|
|
||||||
synced_formulae.each do |synced_formula|
|
synced_formulae.each do |synced_formula|
|
||||||
|
@ -141,20 +141,28 @@ module Homebrew
|
|||||||
@aliases ||= Formula.aliases + Formula.tap_aliases
|
@aliases ||= Formula.aliases + Formula.tap_aliases
|
||||||
end
|
end
|
||||||
|
|
||||||
SYNCED_VERSIONS_FORMULAE_FILE = "synced_versions_formulae.json"
|
def synced_versions_formulae_json
|
||||||
|
@synced_versions_formulae_json ||= JSON.parse(File.read("#{formula.tap.path}/synced_versions_formulae.json"))
|
||||||
|
end
|
||||||
|
|
||||||
|
def synced_with_other_formulae?
|
||||||
|
return false unless formula.tap
|
||||||
|
|
||||||
|
synced_versions_formulae_file = "#{formula.tap.path}/synced_versions_formulae.json"
|
||||||
|
return false unless File.exist?(synced_versions_formulae_file)
|
||||||
|
|
||||||
|
synced_versions_formulae_json.any? { |synced_version_formulae| synced_version_formulae.include?(formula.name) }
|
||||||
|
end
|
||||||
|
|
||||||
def audit_synced_versions_formulae
|
def audit_synced_versions_formulae
|
||||||
return unless formula.tap
|
return unless formula.tap
|
||||||
|
return unless synced_with_other_formulae?
|
||||||
synced_versions_formulae_file = formula.tap.path/SYNCED_VERSIONS_FORMULAE_FILE
|
|
||||||
return unless synced_versions_formulae_file.file?
|
|
||||||
|
|
||||||
name = formula.name
|
name = formula.name
|
||||||
version = formula.version
|
version = formula.version
|
||||||
|
|
||||||
synced_versions_formulae = JSON.parse(synced_versions_formulae_file.read)
|
synced_versions_formulae_json.each do |synced_version_formulae|
|
||||||
synced_versions_formulae.each do |synced_version_formulae|
|
next unless synced_version_formulae.include?(name)
|
||||||
next unless synced_version_formulae.include? name
|
|
||||||
|
|
||||||
synced_version_formulae.each do |synced_formula|
|
synced_version_formulae.each do |synced_formula|
|
||||||
next if synced_formula == name
|
next if synced_formula == name
|
||||||
|
Loading…
x
Reference in New Issue
Block a user