Explain failures using status message on batch details page


Our users have been using the batch details page a lot, and have found it a bit confusing to learn that the cause of a failure is a merge conflict. The details page appears confusing (with an empty list of statuses):

The developer has to know to navigate via the PR to look at the commit status (which shows bors - Merge conflict)

Ideally, we'd like to show the bors status message on this page as well, but currently this not persisted in the database. Given this implementation would require a schema change, we wanted to get your thoughts on this change.

More completely, the change would involve adding a new column to the batches table, called status_message. It would get updated inside Batcher.send_status to track the status sent to Github.

Adding a flag, or a special status, to show that a batch was merge conflicted? Yeah, I have zero problem with that. Since this wouldn't change any APIs, I don't even think it would need to go through an RFC or anything.

I was thinking of this implementation as less ideal that storing the entire message (that gets generated in Message.generate_status i.e. "Waiting in queue", "Merge conflict", "Build failed"). But this seems kind of naive and not ideal.

If we did store a flag, it seems like storing the failure reason (i.e. :build_failed, :merge_conflict, etc) would provide that same amount of visibility. That reason is ultimately what we are trying to expose in the UI.

If this failure_reason field sounds good, we'd love to implement it!

1 Like