Unverified Commit 0f26522f authored by Carlo Cabrera's avatar Carlo Cabrera
Browse files

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.
parent 2c6b979f
......@@ -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
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment