audit: fix audit of new formulae.
When auditing new formulae without `--new-formula` the `audit_revision_and_version_scheme` method fails ungracefully. Instead, set some better defaults so fewer checks are needed. Fixes #2551.
This commit is contained in:
parent
c6c930174e
commit
5647fdb2f9
@ -750,7 +750,7 @@ class FormulaAuditor
|
|||||||
current_version_scheme = formula.version_scheme
|
current_version_scheme = formula.version_scheme
|
||||||
[:stable, :devel].each do |spec|
|
[:stable, :devel].each do |spec|
|
||||||
spec_version_scheme_map = attributes_map[:version_scheme][spec]
|
spec_version_scheme_map = attributes_map[:version_scheme][spec]
|
||||||
next if spec_version_scheme_map.nil? || spec_version_scheme_map.empty?
|
next if spec_version_scheme_map.empty?
|
||||||
|
|
||||||
version_schemes = spec_version_scheme_map.values.flatten
|
version_schemes = spec_version_scheme_map.values.flatten
|
||||||
max_version_scheme = version_schemes.max
|
max_version_scheme = version_schemes.max
|
||||||
@ -783,28 +783,24 @@ class FormulaAuditor
|
|||||||
end
|
end
|
||||||
|
|
||||||
current_revision = formula.revision
|
current_revision = formula.revision
|
||||||
if formula.stable
|
revision_map = attributes_map[:revision][:stable]
|
||||||
if revision_map = attributes_map[:revision][:stable]
|
if formula.stable && !revision_map.empty?
|
||||||
if !revision_map.nil? && !revision_map.empty?
|
stable_revisions = revision_map[formula.stable.version]
|
||||||
stable_revisions = revision_map[formula.stable.version]
|
stable_revisions ||= []
|
||||||
stable_revisions ||= []
|
max_revision = stable_revisions.max || 0
|
||||||
current_revision = formula.revision
|
|
||||||
max_revision = stable_revisions.max || 0
|
|
||||||
|
|
||||||
if current_revision < max_revision
|
if current_revision < max_revision
|
||||||
problem "revision should not decrease (from #{max_revision} to #{current_revision})"
|
problem "revision should not decrease (from #{max_revision} to #{current_revision})"
|
||||||
end
|
end
|
||||||
|
|
||||||
stable_revisions -= [formula.revision]
|
stable_revisions -= [formula.revision]
|
||||||
if !current_revision.zero? && stable_revisions.empty? &&
|
if !current_revision.zero? && stable_revisions.empty? &&
|
||||||
revision_map.keys.length > 1
|
revision_map.keys.length > 1
|
||||||
problem "'revision #{formula.revision}' should be removed"
|
problem "'revision #{formula.revision}' should be removed"
|
||||||
elsif current_revision > 1 &&
|
elsif current_revision > 1 &&
|
||||||
current_revision != max_revision &&
|
current_revision != max_revision &&
|
||||||
!stable_revisions.include?(current_revision - 1)
|
!stable_revisions.include?(current_revision - 1)
|
||||||
problem "revisions should only increment by 1"
|
problem "revisions should only increment by 1"
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
elsif !current_revision.zero? # head/devel-only formula
|
elsif !current_revision.zero? # head/devel-only formula
|
||||||
problem "'revision #{current_revision}' should be removed"
|
problem "'revision #{current_revision}' should be removed"
|
||||||
|
@ -67,11 +67,17 @@ class FormulaVersions
|
|||||||
attributes_map = {}
|
attributes_map = {}
|
||||||
return attributes_map if attributes.empty?
|
return attributes_map if attributes.empty?
|
||||||
|
|
||||||
|
attributes.each do |attribute|
|
||||||
|
attributes_map[attribute] ||= {
|
||||||
|
stable: {},
|
||||||
|
devel: {},
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
stable_versions_seen = 0
|
stable_versions_seen = 0
|
||||||
rev_list(branch) do |rev|
|
rev_list(branch) do |rev|
|
||||||
formula_at_revision(rev) do |f|
|
formula_at_revision(rev) do |f|
|
||||||
attributes.each do |attribute|
|
attributes.each do |attribute|
|
||||||
attributes_map[attribute] ||= {}
|
|
||||||
map = attributes_map[attribute]
|
map = attributes_map[attribute]
|
||||||
set_attribute_map(map, f, attribute)
|
set_attribute_map(map, f, attribute)
|
||||||
|
|
||||||
@ -89,12 +95,10 @@ class FormulaVersions
|
|||||||
|
|
||||||
def set_attribute_map(map, f, attribute)
|
def set_attribute_map(map, f, attribute)
|
||||||
if f.stable
|
if f.stable
|
||||||
map[:stable] ||= {}
|
|
||||||
map[:stable][f.stable.version] ||= []
|
map[:stable][f.stable.version] ||= []
|
||||||
map[:stable][f.stable.version] << f.send(attribute)
|
map[:stable][f.stable.version] << f.send(attribute)
|
||||||
end
|
end
|
||||||
return unless f.devel
|
return unless f.devel
|
||||||
map[:devel] ||= {}
|
|
||||||
map[:devel][f.devel.version] ||= []
|
map[:devel][f.devel.version] ||= []
|
||||||
map[:devel][f.devel.version] << f.send(attribute)
|
map[:devel][f.devel.version] << f.send(attribute)
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user