Subject: Cuirass ignores failed dependencies

From: Marius Bakke <[email-masked]>
Date: Mon, 12 Dec 2022 20:20:23 +0100

Hello,

Cuirass ignores failed build dependencies on subsequent evaluations
after the initial failure.

To clarify, say package P has two dependencies: A and B.

On evaluation 1, A fails.  The job for package P is cancelled and P gets
in the 'Dependency failed' state.  So far so good.

On evaluation 2, B is updated.  P is scheduled for build, despite A
still failing.  A is not even listed in the "Dependencies" field.  The
build job for P starts, and under the hood it unsurprisingly builds A
first, which is still broken, and the build job for P eventually fails.

A real work example pulled from ci.guix is OpenCV.  For reasons yet to
be investigated, OpenCV consistently fails on the build farm:

  https://ci.guix.gnu.org/build/175246/details

Yet 'hydrus-network' is scheduled for build:

  https://ci.guix.gnu.org/build/248218/details

The log for hydrus-network reveals that it is indeed attempting to build
OpenCV:

  https://ci.guix.gnu.org/build/248218/log/raw

I suppose this has to do with OpenCV missing from the 'dependencies'
field despite being an input to hydrus-network.

Thoughts?