audit: check the version does not decrease.

This will prevent `brew upgrade` from working correctly.
This commit is contained in:
Mike McQuaid 2016-10-24 10:21:07 +01:00
parent 0c140f0970
commit 762b76e437

View File

@ -653,10 +653,11 @@ class FormulaAuditor
return unless formula.tap.git? # git log is required
fv = FormulaVersions.new(formula, max_depth: 10)
attributes = [:revision, :version_scheme]
no_decrease_attributes = [:revision, :version_scheme]
attributes = no_decrease_attributes + [:version]
attributes_map = fv.version_attributes_map(attributes, "origin/master")
attributes.each do |attribute|
no_decrease_attributes.each do |attribute|
attributes_for_version = attributes_map[attribute][formula.version]
next if attributes_for_version.empty?
if formula.send(attribute) < attributes_for_version.max
@ -664,11 +665,14 @@ class FormulaAuditor
end
end
revision_map = attributes_map[:revision]
versions = attributes_map[:version].keys
if formula.version < versions.max
problem "version should not decrease"
end
return if formula.revision.zero?
if formula.stable
revision_map = attributes_map[:revision]
if revision_map[formula.stable.version].empty? # check stable spec
problem "'revision #{formula.revision}' should be removed"
end