Sometimes there may be intermittent failures with hosts that work if
immediately retried. Let's allow a single retry in this case with the
--retry flag. This also behaves nicely with the --force flag.
Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
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.
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.
Homebrew currently recognizes "--head" during the install process, but
rather than actually fetch HEAD it just nags the user to use the
correct option. Since we recognize the spelling anyway, this just
promotes the lowercase version to an official alias.
ClosesHomebrew/homebrew#26555.
When upgrading, if the only package to upgrade is a
pinned package, the output looked like that:
==> Upgrading 0 packages, with result:
==> Not upgrading 1 pinned package:
<<package_name & version>>
The blank line is not beautiful. This commit fixes
the output and replaces with:
==> No packages to upgrade
==> Not upgrading 1 pinned package:
<<package_name & version>>
ClosesHomebrew/homebrew#26157.
Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>