Page MenuHomePhabricator

Provide a "Reviewers" attachment to "differential.revision.search"
ClosedPublic

Authored by epriestley on Apr 6 2017, 9:29 PM.
Tags
None
Referenced Files
F13177930: D17633.diff
Wed, May 8, 8:03 PM
Unknown Object (File)
Mon, May 6, 9:48 PM
Unknown Object (File)
Fri, May 3, 4:43 PM
Unknown Object (File)
Fri, May 3, 8:38 AM
Unknown Object (File)
Thu, May 2, 9:38 PM
Unknown Object (File)
Tue, Apr 30, 7:17 PM
Unknown Object (File)
Mon, Apr 29, 5:42 PM
Unknown Object (File)
Mon, Apr 29, 5:42 PM
Subscribers

Details

Summary

Allow API callers to retrieve reviewer information via a new "reviewers" attachment.

Test Plan

Screen Shot 2017-04-06 at 2.27.47 PM.png (1×2 px, 237 KB)

Diff Detail

Repository
rP Phabricator
Branch
review1
Lint
Lint Passed
Unit
Tests Passed
Build Status
Buildable 16333
Build 21719: Run Core Tests
Build 21718: arc lint + arc unit

Event Timeline

  • Get rid of isCurrent which is kind of meaningless and confusing.
  • Add an isBlocking to try to future-proof against that being separated out.
lvital added a subscriber: lvital.

noidea

src/applications/differential/engineextension/DifferentialReviewersSearchEngineAttachment.php
42

I know you're stripping this away, but out of curiosity, what would this have meant / why is it too complicated? Does it mean whether they've taken any action on the review? Or whether they've taken the last action?

This revision is now accepted and ready to land.Apr 6 2017, 9:40 PM

The meaning of isCurrent was "is this reviewer relevant for state calculations against the current state of the revision", which is kind of involved.

For example, a revision with one user who has "Rejected" is normally in state "Needs Revision", until the next update, but not if the author does "Request Review". When they do, they internally void the outstanding rejects and make them noncurrent.

But current-ness depends on a lot of internal state stuff and on differential.sticky-accept and I think it's ultimately too wrapped up in state calculation to be of much use. At best, you could use it to render "Accepted Current Diff" vs "Accepted Older Diff" some of the time, but it doesn't always mean that and there's no real human-readable label for what it does mean.

This revision was automatically updated to reflect the committed changes.

The meaning of isCurrent was "is this reviewer relevant for state calculations against the current state of the revision", which is kind of involved.

For example, a revision with one user who has "Rejected" is normally in state "Needs Revision", until the next update, but not if the author does "Request Review". When they do, they internally void the outstanding rejects and make them noncurrent.

But current-ness depends on a lot of internal state stuff and on differential.sticky-accept and I think it's ultimately too wrapped up in state calculation to be of much use. At best, you could use it to render "Accepted Current Diff" vs "Accepted Older Diff" some of the time, but it doesn't always mean that and there's no real human-readable label for what it does mean.

Makes some sense... or rather, makes sense why you removed it. Thanks!