Merge pull request #5084 from commitay/core-tap
audit: use `core_tap` instead of `official_tap`
This commit is contained in:
commit
636f1276d7
@ -260,8 +260,8 @@ module Homebrew
|
|||||||
@except = options[:except]
|
@except = options[:except]
|
||||||
# Accept precomputed style offense results, for efficiency
|
# Accept precomputed style offense results, for efficiency
|
||||||
@style_offenses = options[:style_offenses]
|
@style_offenses = options[:style_offenses]
|
||||||
# Allow the actual official-ness of a formula to be overridden, for testing purposes
|
# Allow the formula tap to be set as `core`, for testing purposes
|
||||||
@official_tap = formula.tap&.official? || options[:official_tap]
|
@core_tap = formula.tap&.core_tap? || options[:core_tap]
|
||||||
@problems = []
|
@problems = []
|
||||||
@new_formula_problems = []
|
@new_formula_problems = []
|
||||||
@text = FormulaText.new(formula.path)
|
@text = FormulaText.new(formula.path)
|
||||||
@ -338,7 +338,7 @@ module Homebrew
|
|||||||
end
|
end
|
||||||
valid_alias_names = [alias_name_major, alias_name_major_minor]
|
valid_alias_names = [alias_name_major, alias_name_major_minor]
|
||||||
|
|
||||||
unless formula.tap&.core_tap?
|
unless @core_tap
|
||||||
versioned_aliases.map! { |a| "#{formula.tap}/#{a}" }
|
versioned_aliases.map! { |a| "#{formula.tap}/#{a}" }
|
||||||
valid_alias_names.map! { |a| "#{formula.tap}/#{a}" }
|
valid_alias_names.map! { |a| "#{formula.tap}/#{a}" }
|
||||||
end
|
end
|
||||||
@ -374,8 +374,7 @@ module Homebrew
|
|||||||
|
|
||||||
def audit_formula_name
|
def audit_formula_name
|
||||||
return unless @strict
|
return unless @strict
|
||||||
# skip for non-official taps
|
return unless @core_tap
|
||||||
return unless @official_tap
|
|
||||||
|
|
||||||
name = formula.name
|
name = formula.name
|
||||||
|
|
||||||
@ -432,7 +431,7 @@ module Homebrew
|
|||||||
|
|
||||||
if @new_formula && dep_f.keg_only_reason &&
|
if @new_formula && dep_f.keg_only_reason &&
|
||||||
!["openssl", "apr", "apr-util"].include?(dep.name) &&
|
!["openssl", "apr", "apr-util"].include?(dep.name) &&
|
||||||
(!["openblas"].include?(dep.name) || @official_tap) &&
|
(!["openblas"].include?(dep.name) || @core_tap) &&
|
||||||
dep_f.keg_only_reason.reason == :provided_by_macos
|
dep_f.keg_only_reason.reason == :provided_by_macos
|
||||||
new_formula_problem(
|
new_formula_problem(
|
||||||
"Dependency '#{dep.name}' may be unnecessary as it is provided " \
|
"Dependency '#{dep.name}' may be unnecessary as it is provided " \
|
||||||
@ -462,7 +461,7 @@ module Homebrew
|
|||||||
end
|
end
|
||||||
|
|
||||||
next unless @new_formula
|
next unless @new_formula
|
||||||
next unless @official_tap
|
next unless @core_tap
|
||||||
|
|
||||||
if dep.tags.include?(:recommended) || dep.tags.include?(:optional)
|
if dep.tags.include?(:recommended) || dep.tags.include?(:optional)
|
||||||
new_formula_problem options_message
|
new_formula_problem options_message
|
||||||
@ -470,7 +469,7 @@ module Homebrew
|
|||||||
end
|
end
|
||||||
|
|
||||||
next unless @new_formula
|
next unless @new_formula
|
||||||
next unless @official_tap
|
next unless @core_tap
|
||||||
|
|
||||||
if spec.requirements.map(&:recommended?).any? || spec.requirements.map(&:optional?).any?
|
if spec.requirements.map(&:recommended?).any? || spec.requirements.map(&:optional?).any?
|
||||||
new_formula_problem options_message
|
new_formula_problem options_message
|
||||||
@ -556,7 +555,7 @@ module Homebrew
|
|||||||
]
|
]
|
||||||
return if bottle_disabled_whitelist.include?(formula.name)
|
return if bottle_disabled_whitelist.include?(formula.name)
|
||||||
|
|
||||||
problem "Formulae should not use `bottle :disabled`" if @official_tap
|
problem "Formulae should not use `bottle :disabled`" if @core_tap
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -580,7 +579,7 @@ module Homebrew
|
|||||||
return if metadata.nil?
|
return if metadata.nil?
|
||||||
|
|
||||||
new_formula_problem "GitHub fork (not canonical repository)" if metadata["fork"]
|
new_formula_problem "GitHub fork (not canonical repository)" if metadata["fork"]
|
||||||
if formula&.tap&.core_tap? &&
|
if @core_tap &&
|
||||||
(metadata["forks_count"] < 30) && (metadata["subscribers_count"] < 30) &&
|
(metadata["forks_count"] < 30) && (metadata["subscribers_count"] < 30) &&
|
||||||
(metadata["stargazers_count"] < 75)
|
(metadata["stargazers_count"] < 75)
|
||||||
new_formula_problem "GitHub repository not notable enough (<30 forks, <30 watchers and <75 stars)"
|
new_formula_problem "GitHub repository not notable enough (<30 forks, <30 watchers and <75 stars)"
|
||||||
@ -643,7 +642,7 @@ module Homebrew
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if @official_tap && (formula.head || formula.devel)
|
if @core_tap && (formula.head || formula.devel)
|
||||||
unstable_spec_message = "Formulae should not have a `HEAD` or `devel` spec"
|
unstable_spec_message = "Formulae should not have a `HEAD` or `devel` spec"
|
||||||
if @new_formula
|
if @new_formula
|
||||||
new_formula_problem unstable_spec_message
|
new_formula_problem unstable_spec_message
|
||||||
@ -867,8 +866,8 @@ module Homebrew
|
|||||||
|
|
||||||
return unless @strict
|
return unless @strict
|
||||||
|
|
||||||
if @official_tap && line.include?("env :std")
|
if @core_tap && line.include?("env :std")
|
||||||
problem "`env :std` in official tap formulae is deprecated"
|
problem "`env :std` in `core` formulae is deprecated"
|
||||||
end
|
end
|
||||||
|
|
||||||
if line.include?("env :userpaths")
|
if line.include?("env :userpaths")
|
||||||
@ -899,9 +898,9 @@ module Homebrew
|
|||||||
end
|
end
|
||||||
|
|
||||||
def audit_reverse_migration
|
def audit_reverse_migration
|
||||||
# Only enforce for new formula being re-added to core and official taps
|
# Only enforce for new formula being re-added to core
|
||||||
return unless @strict
|
return unless @strict
|
||||||
return unless @official_tap
|
return unless @core_tap
|
||||||
return unless formula.tap.tap_migrations.key?(formula.name)
|
return unless formula.tap.tap_migrations.key?(formula.name)
|
||||||
|
|
||||||
problem <<~EOS
|
problem <<~EOS
|
||||||
@ -923,13 +922,13 @@ module Homebrew
|
|||||||
end
|
end
|
||||||
|
|
||||||
def audit_url_is_not_binary
|
def audit_url_is_not_binary
|
||||||
return unless @official_tap
|
return unless @core_tap
|
||||||
|
|
||||||
urls = @specs.map(&:url)
|
urls = @specs.map(&:url)
|
||||||
|
|
||||||
urls.each do |url|
|
urls.each do |url|
|
||||||
if url =~ /darwin/i && (url =~ /x86_64/i || url =~ /amd64/i)
|
if url =~ /darwin/i && (url =~ /x86_64/i || url =~ /amd64/i)
|
||||||
problem "#{url} looks like a binary package, not a source archive. Official taps are source-only."
|
problem "#{url} looks like a binary package, not a source archive. The `core` tap is source-only."
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -525,7 +525,7 @@ module Homebrew
|
|||||||
|
|
||||||
describe "#audit_url_is_not_binary" do
|
describe "#audit_url_is_not_binary" do
|
||||||
specify "it detects a url containing darwin and x86_64" do
|
specify "it detects a url containing darwin and x86_64" do
|
||||||
fa = formula_auditor "foo", <<~RUBY, official_tap: true
|
fa = formula_auditor "foo", <<~RUBY, core_tap: true
|
||||||
class Foo < Formula
|
class Foo < Formula
|
||||||
url "https://example.com/example-darwin.x86_64.tar.gz"
|
url "https://example.com/example-darwin.x86_64.tar.gz"
|
||||||
end
|
end
|
||||||
@ -534,11 +534,11 @@ module Homebrew
|
|||||||
fa.audit_url_is_not_binary
|
fa.audit_url_is_not_binary
|
||||||
|
|
||||||
expect(fa.problems.first)
|
expect(fa.problems.first)
|
||||||
.to match("looks like a binary package, not a source archive. Official taps are source-only.")
|
.to match("looks like a binary package, not a source archive. The `core` tap is source-only.")
|
||||||
end
|
end
|
||||||
|
|
||||||
specify "it detects a url containing darwin and amd64" do
|
specify "it detects a url containing darwin and amd64" do
|
||||||
fa = formula_auditor "foo", <<~RUBY, official_tap: true
|
fa = formula_auditor "foo", <<~RUBY, core_tap: true
|
||||||
class Foo < Formula
|
class Foo < Formula
|
||||||
url "https://example.com/example-darwin.amd64.tar.gz"
|
url "https://example.com/example-darwin.amd64.tar.gz"
|
||||||
end
|
end
|
||||||
@ -547,11 +547,11 @@ module Homebrew
|
|||||||
fa.audit_url_is_not_binary
|
fa.audit_url_is_not_binary
|
||||||
|
|
||||||
expect(fa.problems.first)
|
expect(fa.problems.first)
|
||||||
.to match("looks like a binary package, not a source archive. Official taps are source-only.")
|
.to match("looks like a binary package, not a source archive. The `core` tap is source-only.")
|
||||||
end
|
end
|
||||||
|
|
||||||
specify "it works on the devel spec" do
|
specify "it works on the devel spec" do
|
||||||
fa = formula_auditor "foo", <<~RUBY, official_tap: true
|
fa = formula_auditor "foo", <<~RUBY, core_tap: true
|
||||||
class Foo < Formula
|
class Foo < Formula
|
||||||
url "https://example.com/valid-1.0.tar.gz"
|
url "https://example.com/valid-1.0.tar.gz"
|
||||||
|
|
||||||
@ -564,11 +564,11 @@ module Homebrew
|
|||||||
fa.audit_url_is_not_binary
|
fa.audit_url_is_not_binary
|
||||||
|
|
||||||
expect(fa.problems.first)
|
expect(fa.problems.first)
|
||||||
.to match("looks like a binary package, not a source archive. Official taps are source-only.")
|
.to match("looks like a binary package, not a source archive. The `core` tap is source-only.")
|
||||||
end
|
end
|
||||||
|
|
||||||
specify "it works on the head spec" do
|
specify "it works on the head spec" do
|
||||||
fa = formula_auditor "foo", <<~RUBY, official_tap: true
|
fa = formula_auditor "foo", <<~RUBY, core_tap: true
|
||||||
class Foo < Formula
|
class Foo < Formula
|
||||||
url "https://example.com/valid-1.0.tar.gz"
|
url "https://example.com/valid-1.0.tar.gz"
|
||||||
|
|
||||||
@ -581,11 +581,11 @@ module Homebrew
|
|||||||
fa.audit_url_is_not_binary
|
fa.audit_url_is_not_binary
|
||||||
|
|
||||||
expect(fa.problems.first)
|
expect(fa.problems.first)
|
||||||
.to match("looks like a binary package, not a source archive. Official taps are source-only.")
|
.to match("looks like a binary package, not a source archive. The `core` tap is source-only.")
|
||||||
end
|
end
|
||||||
|
|
||||||
specify "it ignores resource urls" do
|
specify "it ignores resource urls" do
|
||||||
fa = formula_auditor "foo", <<~RUBY, official_tap: true
|
fa = formula_auditor "foo", <<~RUBY, core_tap: true
|
||||||
class Foo < Formula
|
class Foo < Formula
|
||||||
url "https://example.com/valid-1.0.tar.gz"
|
url "https://example.com/valid-1.0.tar.gz"
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user