This will allow the reading and checking of formulae that mirror
Homebrew core formulae (e.g. `git` in a tap) and, with the previous exit
code changes, is a reasonable check for "are all the formulae in taps
updated to the latest core DSL".
ClosesHomebrew/homebrew#28328.
Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
`needs` allows formulae to specify dependencies on cross-compiler
dependencies, allowing multiple failures to be specified in a single
statement. For instance, `needs :cxx11` adds seven compiler failures.
ClosesHomebrew/homebrew#22912.
This should give us a bit of control over what e.g. Boxen are doing
whilst at the same time stopping us from accidentally breaking each
other's stuff every so often.
I'm aware this may be somewhat controversial so I'm open to other
approaches.
`brew uses foo bar` is supposed to return the intersection of formulae
that use foo and bar. However, this was broken by changes made to
support requirements that can coerce to regular dependencies.
The `homebrew.pth` should be a file with a single line in it.
Also (at least on zsh) if the file does not exist, `>>` will
result in an error. The `>` works in both, bash and zsh and
creates the file with the `echo`ed contet.
ClosesHomebrew/homebrew#28201.
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
`brew install ./foo` treats `./foo` like `./foo.rb`. This requires
a confusing special case in the name resolution logic and doesn't make
a whole lot of sense from a UX perspective.
Drop support for this. The argument should be an absolute path,
a relative path, or a formula name, rather than a hybrid.
cf. https://github.com/Homebrew/homebrew/issues/23430#issuecomment-26776962
Much of the name resolution done in Formula.canonical_name is repeated
Formulary.factory. Here we eliminate the repeated work by duplicating
the code from canonical_name. Later we will refactor it so that both
methods can share the bulk of the logic.