Merge pull request #8884 from MikeMcQuaid/audit-versioned-conflicts
audit: check versioned dependency conflicts.
This commit is contained in:
commit
74d7281873
@ -429,6 +429,16 @@ module Homebrew
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# try to remove these, it's not a good user experience
|
||||||
|
VERSIONED_DEPENDENCIES_CONFLICTS_ALLOWLIST = %w[
|
||||||
|
agda
|
||||||
|
anjuta
|
||||||
|
gradio
|
||||||
|
predictionio
|
||||||
|
sqoop
|
||||||
|
visp
|
||||||
|
].freeze
|
||||||
|
|
||||||
def audit_deps
|
def audit_deps
|
||||||
@specs.each do |spec|
|
@specs.each do |spec|
|
||||||
# Check for things we don't like to depend on.
|
# Check for things we don't like to depend on.
|
||||||
@ -503,6 +513,34 @@ module Homebrew
|
|||||||
problem "Formulae in homebrew/core should not have optional or recommended requirements"
|
problem "Formulae in homebrew/core should not have optional or recommended requirements"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
return unless @core_tap
|
||||||
|
return if VERSIONED_DEPENDENCIES_CONFLICTS_ALLOWLIST.include?(formula.name)
|
||||||
|
|
||||||
|
# The number of conflicts on Linux is absurd.
|
||||||
|
# TODO: remove this and check these there too.
|
||||||
|
return if OS.linux?
|
||||||
|
|
||||||
|
recursive_runtime_formulae = formula.runtime_formula_dependencies(undeclared: false)
|
||||||
|
version_hash = {}
|
||||||
|
version_conflicts = Set.new
|
||||||
|
recursive_runtime_formulae.each do |f|
|
||||||
|
name = f.name
|
||||||
|
unversioned_name, = name.split("@")
|
||||||
|
version_hash[unversioned_name] ||= Set.new
|
||||||
|
version_hash[unversioned_name] << name
|
||||||
|
next if version_hash[unversioned_name].length < 2
|
||||||
|
|
||||||
|
version_conflicts += version_hash[unversioned_name]
|
||||||
|
end
|
||||||
|
|
||||||
|
return if version_conflicts.empty?
|
||||||
|
|
||||||
|
problem <<~EOS
|
||||||
|
#{formula.full_name} contains conflicting version recursive dependencies:
|
||||||
|
#{version_conflicts.to_a.join ", "}
|
||||||
|
View these with `brew deps --tree #{formula.full_name}`.
|
||||||
|
EOS
|
||||||
end
|
end
|
||||||
|
|
||||||
def audit_conflicts
|
def audit_conflicts
|
||||||
|
Loading…
x
Reference in New Issue
Block a user