test-bot: don't consider optional deps for compiler selection
Fixes test-bot mishandling of optional cross-tap dependencies. Without this change, since formula.stable.deps includes the optional dependencies but formula.recursive_dependencies does not, test-bot was trying to select a compiler for an untapped formula, which raised an error. Our suspect handling of optional dependencies was exposed by Homebrew/homebrew#43145 / 7184348e822d6745d8a103de104ff9626536bf1e. Closes Homebrew/homebrew#43237.
This commit is contained in:
parent
c992749986
commit
c2dfcf913d
@ -398,19 +398,19 @@ module Homebrew
|
||||
if formula.stable
|
||||
return unless satisfied_requirements?(formula, :stable)
|
||||
|
||||
deps |= formula.stable.deps.to_a
|
||||
reqs |= formula.stable.requirements.to_a
|
||||
deps |= formula.stable.deps.to_a.reject(&:optional?)
|
||||
reqs |= formula.stable.requirements.to_a.reject(&:optional?)
|
||||
elsif formula.devel
|
||||
return unless satisfied_requirements?(formula, :devel)
|
||||
end
|
||||
|
||||
if formula.devel && !ARGV.include?("--HEAD")
|
||||
deps |= formula.devel.deps.to_a
|
||||
reqs |= formula.devel.requirements.to_a
|
||||
deps |= formula.devel.deps.to_a.reject(&:optional?)
|
||||
reqs |= formula.devel.requirements.to_a.reject(&:optional?)
|
||||
end
|
||||
|
||||
begin
|
||||
formula.recursive_dependencies
|
||||
deps.each { |d| d.to_formula.recursive_dependencies }
|
||||
rescue TapFormulaUnavailableError => e
|
||||
raise if e.tap.installed?
|
||||
safe_system "brew", "tap", e.tap.name
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user