Merge pull request #5084 from commitay/core-tap

audit: use `core_tap` instead of `official_tap`
This commit is contained in:
commitay 2018-10-12 10:36:42 +10:00 committed by GitHub
commit 636f1276d7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 25 additions and 26 deletions

View File

@ -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

View File

@ -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"