Allow :test dependencies.
These specify that they are needed by the test block. This can be combined with `:build` to ensure that this formula isn't uninstalled by `brew test-bot` when running `test do` blocks on our CI.
This commit is contained in:
parent
e362aae422
commit
fea9bc1e42
@ -17,7 +17,8 @@
|
||||
#:
|
||||
#: By default, `deps` shows required and recommended dependencies for
|
||||
#: <formulae>. To include the `:build` type dependencies, pass `--include-build`.
|
||||
#: Similarly, pass `--include-optional` to include `:optional` dependencies.
|
||||
#: Similarly, pass `--include-optional` to include `:optional` dependencies or
|
||||
#: `--include-test` to include `:test` dependencies.
|
||||
#: To skip `:recommended` type dependencies, pass `--skip-recommended`.
|
||||
#: To include requirements in addition to dependencies, pass `--include-requirements`.
|
||||
#:
|
||||
@ -30,8 +31,8 @@
|
||||
#: If `--installed` is passed, output a tree for every installed formula.
|
||||
#:
|
||||
#: The <filters> placeholder is any combination of options `--include-build`,
|
||||
#: `--include-optional`, `--skip-recommended`, and `--include-requirements` as
|
||||
#: documented above.
|
||||
#: `--include-optional`, `--include-test`, `--skip-recommended`, and
|
||||
#: `--include-requirements` as documented above.
|
||||
#:
|
||||
#: If `--annotate` is passed, the build, optional, and recommended dependencies
|
||||
#: are marked as such in the output.
|
||||
@ -42,7 +43,8 @@
|
||||
#: dependencies of that formula.
|
||||
#:
|
||||
#: The <filters> placeholder is any combination of options `--include-build`,
|
||||
#: `--include-optional`, and `--skip-recommended` as documented above.
|
||||
#: `--include-optional`, `--include-test`, and `--skip-recommended` as
|
||||
#: documented above.
|
||||
|
||||
# The undocumented `--for-each` option will switch into the mode used by `deps --all`,
|
||||
# but only list dependencies for specified formula, one specified formula per line.
|
||||
@ -111,6 +113,7 @@ module Homebrew
|
||||
end
|
||||
if ARGV.include?("--annotate")
|
||||
str = "#{str} [build]" if dep.build?
|
||||
str = "#{str} [test]" if dep.test?
|
||||
str = "#{str} [optional" if dep.optional?
|
||||
str = "#{str} [recommended]" if dep.recommended?
|
||||
end
|
||||
@ -125,6 +128,11 @@ module Homebrew
|
||||
else
|
||||
ignores << "build?"
|
||||
end
|
||||
if ARGV.include?("--include-test")
|
||||
includes << "test?"
|
||||
else
|
||||
ignores << "test?"
|
||||
end
|
||||
if ARGV.include?("--include-optional")
|
||||
includes << "optional?"
|
||||
else
|
||||
@ -140,6 +148,8 @@ module Homebrew
|
||||
Dependency.prune if !includes.include?("optional?") && !dependent.build.with?(dep)
|
||||
elsif dep.build?
|
||||
Dependency.prune unless includes.include?("build?")
|
||||
elsif dep.test?
|
||||
Dependency.prune unless includes.include?("test?")
|
||||
end
|
||||
end
|
||||
reqs = f.recursive_requirements do |dependent, req|
|
||||
@ -149,6 +159,8 @@ module Homebrew
|
||||
Requirement.prune if !includes.include?("optional?") && !dependent.build.with?(req)
|
||||
elsif req.build?
|
||||
Requirement.prune unless includes.include?("build?")
|
||||
elsif req.test?
|
||||
Requirement.prune unless includes.include?("test?")
|
||||
end
|
||||
end
|
||||
else
|
||||
@ -191,6 +203,7 @@ module Homebrew
|
||||
dependables = reqs + deps
|
||||
dependables = dependables.reject(&:optional?) unless ARGV.include?("--include-optional")
|
||||
dependables = dependables.reject(&:build?) unless ARGV.include?("--include-build")
|
||||
dependables = dependables.reject(&:test) unless ARGV.include?("--include-test")
|
||||
dependables = dependables.reject(&:recommended?) if ARGV.include?("--skip-recommended")
|
||||
max = dependables.length - 1
|
||||
@dep_stack.push f.name
|
||||
|
@ -1,7 +1,7 @@
|
||||
require "options"
|
||||
|
||||
module Dependable
|
||||
RESERVED_TAGS = [:build, :optional, :recommended, :run, :linked].freeze
|
||||
RESERVED_TAGS = [:build, :optional, :recommended, :run, :test, :linked].freeze
|
||||
|
||||
def build?
|
||||
tags.include? :build
|
||||
@ -19,8 +19,12 @@ module Dependable
|
||||
tags.include? :run
|
||||
end
|
||||
|
||||
def test?
|
||||
tags.include? :test
|
||||
end
|
||||
|
||||
def required?
|
||||
!build? && !optional? && !recommended?
|
||||
!build? && !test? && !optional? && !recommended?
|
||||
end
|
||||
|
||||
def option_tags
|
||||
|
@ -45,6 +45,15 @@ module Homebrew
|
||||
next
|
||||
end
|
||||
|
||||
# Don't test formulae missing test dependencies
|
||||
missing_test_deps = f.recursive_dependencies do |_, dependency|
|
||||
Dependency.prune if !dependency.required? && !dependency.test?
|
||||
end.map(&:to_s)
|
||||
unless missing_test_deps.empty?
|
||||
ofail "#{f.full_name} is missing test dependencies: #{missing_test_deps.join(" ")}"
|
||||
next
|
||||
end
|
||||
|
||||
puts "Testing #{f.full_name}"
|
||||
|
||||
env = ENV.to_hash
|
||||
|
@ -96,7 +96,8 @@ With `--verbose` or `-v`, many commands print extra debugging information. Note
|
||||
|
||||
By default, `deps` shows required and recommended dependencies for
|
||||
`formulae`. To include the `:build` type dependencies, pass `--include-build`.
|
||||
Similarly, pass `--include-optional` to include `:optional` dependencies.
|
||||
Similarly, pass `--include-optional` to include `:optional` dependencies or
|
||||
`--include-test` to include `:test` dependencies.
|
||||
To skip `:recommended` type dependencies, pass `--skip-recommended`.
|
||||
To include requirements in addition to dependencies, pass `--include-requirements`.
|
||||
|
||||
@ -109,8 +110,8 @@ With `--verbose` or `-v`, many commands print extra debugging information. Note
|
||||
If `--installed` is passed, output a tree for every installed formula.
|
||||
|
||||
The `filters` placeholder is any combination of options `--include-build`,
|
||||
`--include-optional`, `--skip-recommended`, and `--include-requirements` as
|
||||
documented above.
|
||||
`--include-optional`, `--include-test`, `--skip-recommended`, and
|
||||
`--include-requirements` as documented above.
|
||||
|
||||
If `--annotate` is passed, the build, optional, and recommended dependencies
|
||||
are marked as such in the output.
|
||||
@ -121,7 +122,8 @@ With `--verbose` or `-v`, many commands print extra debugging information. Note
|
||||
dependencies of that formula.
|
||||
|
||||
The `filters` placeholder is any combination of options `--include-build`,
|
||||
`--include-optional`, and `--skip-recommended` as documented above.
|
||||
`--include-optional`, `--include-test`, and `--skip-recommended` as
|
||||
documented above.
|
||||
|
||||
* `desc` `formula`:
|
||||
Display `formula`'s name and one-line description.
|
||||
|
@ -1,7 +1,7 @@
|
||||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "BREW\-CASK" "1" "February 2018" "Homebrew" "brew-cask"
|
||||
.TH "BREW\-CASK" "1" "March 2018" "Homebrew" "brew-cask"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fBbrew\-cask\fR \- a friendly binary installer for macOS
|
||||
|
@ -1,7 +1,7 @@
|
||||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "BREW" "1" "February 2018" "Homebrew" "brew"
|
||||
.TH "BREW" "1" "March 2018" "Homebrew" "brew"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fBbrew\fR \- The missing package manager for macOS
|
||||
@ -107,7 +107,7 @@ If \fB\-\-full\-name\fR is passed, list dependencies by their full name\.
|
||||
If \fB\-\-installed\fR is passed, only list those dependencies that are currently installed\.
|
||||
.
|
||||
.IP
|
||||
By default, \fBdeps\fR shows required and recommended dependencies for \fIformulae\fR\. To include the \fB:build\fR type dependencies, pass \fB\-\-include\-build\fR\. Similarly, pass \fB\-\-include\-optional\fR to include \fB:optional\fR dependencies\. To skip \fB:recommended\fR type dependencies, pass \fB\-\-skip\-recommended\fR\. To include requirements in addition to dependencies, pass \fB\-\-include\-requirements\fR\.
|
||||
By default, \fBdeps\fR shows required and recommended dependencies for \fIformulae\fR\. To include the \fB:build\fR type dependencies, pass \fB\-\-include\-build\fR\. Similarly, pass \fB\-\-include\-optional\fR to include \fB:optional\fR dependencies or \fB\-\-include\-test\fR to include \fB:test\fR dependencies\. To skip \fB:recommended\fR type dependencies, pass \fB\-\-skip\-recommended\fR\. To include requirements in addition to dependencies, pass \fB\-\-include\-requirements\fR\.
|
||||
.
|
||||
.TP
|
||||
\fBdeps\fR \fB\-\-tree\fR [\fB\-\-1\fR] [\fIfilters\fR] [\fB\-\-annotate\fR] (\fIformulae\fR|\fB\-\-installed\fR)
|
||||
@ -120,7 +120,7 @@ If \fB\-\-1\fR is passed, only one level of children is displayed\.
|
||||
If \fB\-\-installed\fR is passed, output a tree for every installed formula\.
|
||||
.
|
||||
.IP
|
||||
The \fIfilters\fR placeholder is any combination of options \fB\-\-include\-build\fR, \fB\-\-include\-optional\fR, \fB\-\-skip\-recommended\fR, and \fB\-\-include\-requirements\fR as documented above\.
|
||||
The \fIfilters\fR placeholder is any combination of options \fB\-\-include\-build\fR, \fB\-\-include\-optional\fR, \fB\-\-include\-test\fR, \fB\-\-skip\-recommended\fR, and \fB\-\-include\-requirements\fR as documented above\.
|
||||
.
|
||||
.IP
|
||||
If \fB\-\-annotate\fR is passed, the build, optional, and recommended dependencies are marked as such in the output\.
|
||||
@ -130,7 +130,7 @@ If \fB\-\-annotate\fR is passed, the build, optional, and recommended dependenci
|
||||
Show dependencies for installed or all available formulae\. Every line of output starts with the formula name, followed by a colon and all direct dependencies of that formula\.
|
||||
.
|
||||
.IP
|
||||
The \fIfilters\fR placeholder is any combination of options \fB\-\-include\-build\fR, \fB\-\-include\-optional\fR, and \fB\-\-skip\-recommended\fR as documented above\.
|
||||
The \fIfilters\fR placeholder is any combination of options \fB\-\-include\-build\fR, \fB\-\-include\-optional\fR, \fB\-\-include\-test\fR, and \fB\-\-skip\-recommended\fR as documented above\.
|
||||
.
|
||||
.TP
|
||||
\fBdesc\fR \fIformula\fR
|
||||
|
Loading…
x
Reference in New Issue
Block a user