Description
With homu, it is possible to do @bors retry
. That means that we mark a previous CI failure as being spurious, and the PR (if it is approved) should be retried for a merge. We thus have to figure out what will be our invariants.
When a PR is approved, does that mean that it is always ready for a merge? That would be probably the most straightforward solution, however it would mean that when merge CI fails, we should unapprove the PR. But in that case @bors retry
wouldn't work, because it would lose information about the previous approval. So we should remember the previous approval somewhere even if merge CI fails, but somehow mark the PR as being "ci-failed", and thus not trying to merge it again, and not considering it to be "approved and ready". @bors retry
would then pretty much just clear this flag.