Allow Harbormaster builds to publish to a different object


Allow Harbormaster builds to publish to a different object

Fixes T9276. Fixes T8650. The story so far:

  • We once published build updates to Revisions.
  • An unrelated fix (D10911) sent them to the Diffs instead of Revisions, which isn't useful, since you can't see a diff's timeline anywhere.
  • This also caused a race condition, where the RevisionEditor and DiffEditor would update the diff simultaneously (T8650).
  • The diff update was just disabled to avoid the race (part of D13441).
  • Instead, allow the updates to go somewhere else. In this case, we send commit updates to the commit but send diff updates to the revision so you can see 'em.
  • Since everything will be using the revision editor now, we should either get proper lock behavior for free or it should be easy to add if something whack is still happening.
  • Overall, this should pretty much put us back in working order like we were before D10911.

This behavior is undoubtedly refinable, but this should let us move forward.

Test Plan:
Saw a build failure in timeline:

Screen Shot 2017-01-04 at 1.18.31 PM.png (432×1 px, 70 KB)

Reviewers: chad

Reviewed By: chad

Subscribers: PHID-OPKG-gm6ozazyms6q6i22gyam

Maniphest Tasks: T9276, T8650

Differential Revision: https://secure.phabricator.com/D17139

Event Timeline

yelirekim added a subscriber: yelirekim.

This might break our stuff, test async diff before deploying upstream updates.

jcox added a subscriber: jcox.

@yelirekim I think we're good here. Just needed to implement getHarbormasterPublishablePHID() for SubmitQueueIntegrationPlans, ReleaseCandidates, and ScheduledBuilds. See our downstream diff for those changes.