When the path argument to the Formula constructor is omitted, the
instance's path attribute is created using the Formula.path class
method. However, we have already done this work, so we can just pass it
into the constructor.
This translates to one less call to Pathname#to_s per formula, or about
2600 calls when running `brew readall`.
This flag no longer affects the output of the compiler wrappers, since
everything is buffered by the build process rather than each individual
tool.
Additionally, this is a user-facing knob that affects ARGV.verbose?, and
the combination of these two issues broke the --quieter feature.
Adding a broader exception class allows for errors raised in Resource.fetch
to be caught in upgrade and prevent the process from being killed when
a download fails. This should resolve issue 18364.
FixesHomebrew/homebrew#18364.
ClosesHomebrew/homebrew#26618.
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
The threading in the tap search code makes handling errors difficult. If
an API-related error is raised in one thread, it is likely to be raised
in each of the rest as well. This results in duplicated error messages,
which is ugly and bad UX.
This patch adds a synchronized queue to collect these exceptions. The
first one added to the queue is re-raised after all operations are
complete.
It's not ideal, but it's minimally invasive and I don't have the energy
or time to do a rewrite.
Let's check for e.g. --help anywhere in the ARGV array rather than just
the first value to avoid brew upgrade --help causing problems.
ClosesHomebrew/homebrew#26675.
Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
This commit adds additional formatting options to the graph. Most noticeable is a top-to-bottom layout (rather than the previous left-to-right), and nicer fonts on everything.
More subtly, the ranking mechanism has been updated so that the "Safe to Remove" cluster is always at the highest rank (fixing a bug where non-leaf nodes could have been placed next to it,) and added better margins and padding. The rank separation was also decreased for a more compact graph.
Under the hood, the GraphViz output code was updated to support attributes with a list of sub-attributes (for example, 'graph [fontsize="11", fontname="Helvetica"]') and to not put quotes around HTML-like labels in clusters.
ClosesHomebrew/homebrew#26651.
Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
This reverts commit c32ab0a35a2dfa9b593f759ef0ae8b7af077b0b7.
There are other hard-coded uses of HEAD, in build_options for instance.
These all need to be fixed before enabling this.