Page MenuHomePhabricator

Improve formality of "HarbormasterBuild" states
ClosedPublic

Authored by epriestley on Jul 13 2021, 11:37 PM.

Details

Summary

Ref T13072. Currently, Builds have basic states (like "passed" and "failed") and pending states where a command has been issued but not yet executed (pausing, resuming, restarting, and aborting).

These are handled in a bit of an ad-hoc way, and not everything treats them the same way. In particular, the build page can concurrently report a build as "Aborting" and "Pausing", with different icons and colors.

Make everything use the same logic so that a Build can only be in exactly zero or one pending state, and use the same icons and colors.

Also tighten up which transitions are allowed: for example, it doesn't make sense to pause an aborting build.

The tighter rules don't all produce great UX right now (like "You can't pause this build.", when it would be better as "You can't pause a build which is already aborting." or similar), but just leave that alone for now.

Test Plan

Viewed builds, applied various state changes, ran BuildWorker to effect the state changes, grepped for affected methods, tried to issue various out-of-sequence build commands.

Diff Detail

Repository
rP Phabricator
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

Owners added a subscriber: Restricted Owners Package.Jul 13 2021, 11:37 PM
epriestley retitled this revision from Improve formality of "HarbormasterBuild" messages to Improve formality of "HarbormasterBuild" states.Jul 13 2021, 11:39 PM
This revision was not accepted when it landed; it landed in state Needs Review.Jul 21 2021, 9:17 PM
This revision was automatically updated to reflect the committed changes.