rubocops/lines: disallow pyoxidizer as a build/runtime dependency
PyOxidizer downloads pre-built versions of Rust and Python, and embeds this Python into the binaries it produces. This goes against a number of our packaging policies, so let's make sure formulae in Homebrew/core don't do this. See Homebrew/homebrew-core#90025.
This commit is contained in:
parent
2c6b979f65
commit
0f26522fad
@ -211,6 +211,32 @@ module RuboCop
|
||||
end
|
||||
end
|
||||
|
||||
# This cop makes sure that formulae do not depend on `pyoxidizer` at build-time
|
||||
# or run-time.
|
||||
#
|
||||
# @api private
|
||||
class PyoxidizerCheck < FormulaCop
|
||||
def audit_formula(_node, _class_node, _parent_class_node, body_node)
|
||||
# Disallow use of PyOxidizer as a dependency in core
|
||||
return unless formula_tap == "homebrew-core"
|
||||
|
||||
find_method_with_args(body_node, :depends_on, "pyoxidizer") do
|
||||
problem "Formulae in homebrew/core should not use '#{@offensive_node.source}'."
|
||||
end
|
||||
|
||||
[
|
||||
:build,
|
||||
[:build],
|
||||
[:build, :test],
|
||||
[:test, :build],
|
||||
].each do |type|
|
||||
find_method_with_args(body_node, :depends_on, "pyoxidizer" => type) do
|
||||
problem "Formulae in homebrew/core should not use '#{@offensive_node.source}'."
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# This cop makes sure that the safe versions of `popen_*` calls are used.
|
||||
#
|
||||
# @api private
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user