Skip to content

Conversation

@daxian-dbw
Copy link
Member

@daxian-dbw daxian-dbw commented Feb 17, 2017

Reviewer and Assignee of a PR should be separate roles.

  • Reviewers do code review, and eventually approve the PR
  • Assignee is a maintainer, who monitors the progress of the PR, coordinates the review process, and merges PR after it's approved.
    When submitting a new PR, the author is encouraged to choose Reviewer(s) and Assignee for the PR. If either Reviewer or Assignee is left blank, maintainers will choose them for the PR.
    However, for PowerShell Team members, You are required to choose them yourself for the PR.
    Note that, even if you are not designated as a Reviewer for a PR, you can still feel free to jump in and review the change.

The PR author is responsible to drive the PR to the Approved state. The author should ping the reviewer(s) when they don't respond timely enough (or event talk to them if you can). If the review process is making no progress (or too slow), the author can always contact the Assignee to help coordinate the process, for example, if the reviewer(s) don't respond back for too long, the Assignee can review the existing comments and decide if the PR is in good state or a new reviewer should be pulled in.

A template will be added to pull request, to remind the author to choose Reviewer(s) and Assignee for the PR.

Copy link
Member

@TravisEz13 TravisEz13 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I found no real conceptual issues. Just many grammar issues. Not sure I commented on all of them...

* Author **is responsible** to drive the PR to the Approved state.
After a successful test pass, Reviewer(s) can start a code review,
commenting on any changes that might need to be made.
Author addresses the comments, and ping Reviewer(s) to start the nexe iteration.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

spelling nexe should the next

* After a successful test pass,
the area maintainers will do a code review,
* Author, Reviewer and Assignee of a PR
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Author, Reviewer, and Assignee of a PR

* Author, Reviewer and Assignee of a PR
* Reviewer and Assignee are two separate roles of a PR.
* A Reviewer can be anyone from the collaborators.
Reviewer reviews the change of a PR,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

unneeded comma

Reviewer reviews the change of a PR,
leaves comments for Author to address,
and approve the PR when the change looks good.
* An Assignee must be a maintainer, who monitors progress of the PR,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

missing article, should be the progress

and approve the PR when the change looks good.
* An Assignee must be a maintainer, who monitors progress of the PR,
coordinates the review process, and merges the PR after it's approved.
Assignee may or may not be a Reviewer of the PR at the same time.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

missing article, should be either The assignee or An assignee

* Assignee may be re-assigned by maintainers,
and more Reviewer(s) may be added by Assignee as appropriate.
* Author **is responsible** to drive the PR to the Approved state.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

missing article on Author

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

to drive should be for driving

Assignee may or may not be a Reviewer of the PR at the same time.
* Author is encouraged to choose Reviewer(s) and Assignee for the PR.
If no Assignee is chosen, one of maintainers will be assigned to it.
If no Reviewer is chosen, Assignee will choose Reviewer(s) as appropriate.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

will be assigned to shall be assigned

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

will choose to shall choose

@daxian-dbw
Copy link
Member Author

@TravisEz13 thanks for catching them. I think I fixed them all this time, can you take a look again?

@PowerShellTeam PowerShellTeam added the Review - Needed The PR is being reviewed label Feb 17, 2017
* Author, Reviewer, and Assignee of a PR
* Reviewer and Assignee are two separate roles of a PR.
* A Reviewer can be anyone from the collaborators.
A Reviewer reviews the change of a PR,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

comma at end of line 175 is not needed

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If I remove that comma, that line will change from

reviews the change of a PR, leaves comments

to

reviews the change of a PR leaves comments

That doesn't seem right, does it?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh didn't catch that you were missing an And.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

discussed offline and it looks good .

<!--
If you are a [PowerShell Team](https://github.com/orgs/PowerShell/people) member, please make sure you choose the Reviewer(s) and Assignee for your PR.
If you are not, feel free to choose them if you are familiar with the team. Or leave them blank and let maintainers choose them for you.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you are not a team member

Replace Or leave with Alternatively,

After Or Replace the first Them with the fields.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Much better. Will fix it.

* After a successful test pass,
the area maintainers will do a code review,
* Author, Reviewer, and Assignee of a PR
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you make this heading a little more descriptive? Something like, "Roles of a PR: Author, Reviewer, and Assignee"

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That is better.

the area maintainers will do a code review,
* Author, Reviewer, and Assignee of a PR
* Reviewer and Assignee are two separate roles of a PR.
* A Reviewer can be anyone from the collaborators.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a little misleading to me. "collaborators" are external people who have special status with the project (Charles, Ilya, Jeff, etc.). Do you mean that anyone can be a reviewer?

On a related note, should we specify that at least one PowerShell team member or a Collaborator must sign off for a review to be Approved?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Contributor is the more generic term

Copy link
Member Author

@daxian-dbw daxian-dbw Feb 20, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"collaborators" is the wrong word to use here.
When clicking the "Reviewer" field, is that list of people in fact (team member + collaborator)?
I think the author has the freedom to choose anyone from that list. Assignee needs to decide if the specified reviewer is sufficient. If not, the assignee can add more reviewers.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

at least one PowerShell team member or a Collaborator must sign off for a review to be Approved

This information is added. Please take another look.

@daxian-dbw
Copy link
Member Author

@mirichmo @TravisEz13 the conversation about "collaborators" got hidden by Github, but that comment still stands.

Copy link
Collaborator

@vors vors left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tentatively approved

* The Assignee may be re-assigned by maintainers,
and more Reviewer(s) may be added by Assignee as appropriate.
* An Author **is responsible** for driving the PR to the Approved state.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Author

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed.

and more Reviewer(s) may be added by Assignee as appropriate.
* An Author **is responsible** for driving the PR to the Approved state.
After a successful test pass, Reviewer(s) can start a code review,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewer can choose to start review before the successful test pass. I think we should re-phrase it to emphasize that reviwer can postpone reviewer, if tests are failing, but can start earlier.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Especially with our flaky tests.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point. Fixed.

The Author addresses the comments, and pings Reviewer(s) to start the next iteration.
If the review is making no progress (or very slow),
the Author can always ask the Assignee to help coordinate the process and keep it moving.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we mention labels that indicates who is currently responsible for the next step?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think labels are more useful to maintainers and less useful to reviewers because a reviewer probably will not look at the PR list very often. So I think it's better that the author pings the reviewers when she/he is ready to start the next review iteration.

Copy link
Member

@andyleejordan andyleejordan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I approve the content of these changes, but agree with Sergei's comments. This is excellent clarification I think.

* After a successful test pass,
the area maintainers will do a code review,
* Roles of a PR: Author, Reviewer, and Assignee
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Title should be:

Roles and Responsibilities of a PR: Author, Reviewer, and Assignee

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed.

the area maintainers will do a code review,
* Roles of a PR: Author, Reviewer, and Assignee
* Reviewer and Assignee are two separate roles of a PR.
* A Reviewer can be anyone from the collaborators.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A Reviewer can be anyone who wants to contribute

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably also mention that PRs with Needs Review label needs a Reviewer

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed to A Reviewer can be anyone who wants to contribute.

Probably also mention that PRs with Needs Review label needs a Reviewer

Do you mean the Review - Needed label? I'm afraid this label doesn't mean a reviewer needs to be assigned to a PR. I explicitly requested reviewers in #3170, but the Review - Needed label still got added to that PR.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I meant Review - Needed. I was told (forgot by whom) that was what this label meant. If not, we should document what exactly this label means (the current docs just has a link another doc without really defining this label)

A Reviewer reviews the change of a PR,
leaves comments for the Author to address,
and approves the PR when the change looks good.
* An Assignee must be a maintainer, who monitors the progress of the PR,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed.

leaves comments for the Author to address,
and approves the PR when the change looks good.
* An Assignee must be a maintainer, who monitors the progress of the PR,
coordinates the review process, and merges the PR after it's approved.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"after it's been approved"

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed.

@daxian-dbw
Copy link
Member Author

Hi Reviewers, I think I have addressed all the comments, can you please take another look?

Copy link
Contributor

@joeyaiello joeyaiello left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not a huge deal if these tweaks get made before merge, but if you have the chance, it'd be awesome to fix them.

Overall, this looks awesome and provides some much needed clarity with the process.

<!--
If you are a [PowerShell Team](https://github.com/orgs/PowerShell/people) member, please make sure you choose the Reviewer(s) and Assignee for your PR.
If you are not, feel free to choose them if you are familiar with the team. Alternatively, leave the fields blank and let maintainers choose them for you.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would switch this sentence around as the "familiar" path is less likely. So something like:

If you are not part of the PowerShell Team, you can leave the fields blank and the Maintainers will choose them for you. If you are familiar with the team, feel free to add some Reviewers yourself.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed.

* An Assignee must be a [Maintainer](../docs/maintainers), who monitors the progress of the PR,
coordinates the review process, and merges the PR after it's been approved.
The Assignee may or may not be a Reviewer of the PR at the same time.
* An Author is encouraged to choose Reviewer(s) and Assignee for the PR.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

and an Assignee

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed.

coordinates the review process, and merges the PR after it's been approved.
The Assignee may or may not be a Reviewer of the PR at the same time.
* An Author is encouraged to choose Reviewer(s) and Assignee for the PR.
If no Assignee is chosen, one of Maintainers shall be assigned to it.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

one of the Maintainers...

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed.

The Assignee may or may not be a Reviewer of the PR at the same time.
* An Author is encouraged to choose Reviewer(s) and Assignee for the PR.
If no Assignee is chosen, one of Maintainers shall be assigned to it.
If no Reviewer is chosen, Assignee shall choose Reviewer(s) as appropriate.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is chosen, the Assignee

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed.

If no Assignee is chosen, one of Maintainers shall be assigned to it.
If no Reviewer is chosen, Assignee shall choose Reviewer(s) as appropriate.
* If an Author is a [PowerShell Team](https://github.com/orgs/PowerShell/people) member,
then the Author **is required** to choose Reviewer(s) and Assignee of the PR.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

to choose Reviewer(s) and an Assignee for the PR

* If an Author is a [PowerShell Team](https://github.com/orgs/PowerShell/people) member,
then the Author **is required** to choose Reviewer(s) and Assignee of the PR.
* For a PR to be merged, it must be approved by at least one PowerShell Team member or Collaborator,
so additional Reviewer(s) may be added by Assignee as appropriate.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

by the Assignee as appropriate

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed.

@daxian-dbw
Copy link
Member Author

@joeyaiello Thanks for the review! I have addressed your comments. Please take another look.

Copy link
Contributor

@joeyaiello joeyaiello left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

If no Reviewer is chosen, the Assignee shall choose Reviewer(s) as appropriate.
* If an Author is a [PowerShell Team](https://github.com/orgs/PowerShell/people) member,
then the Author **is required** to choose Reviewer(s) and an Assignee for the PR.
* For a PR to be merged, it must be approved by at least one PowerShell Team member or collaborator,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Collaborator should have a capital 'C' as it's a specific group

@iSazonov
Copy link
Collaborator

I can not to choose Reviewer(s) and Assignee for my PR 😕

@daxian-dbw
Copy link
Member Author

@iSazonov hmm, I didn't know about that ... so I guess then all non-powershell-team users cannot choose Reviewer and Assignee? @TravisEz13 do you happen to know if that's the case?

@SteveL-MSFT, the collaborator has been changed to Collaborator.

@TravisEz13
Copy link
Member

@daxian-dbw I just submitted a review to PSScriptAnalyzer and I cannot even assign a reviewer there.

@iSazonov
Copy link
Collaborator

@daxian-dbw Yes, it is. Personally for me it is not a problem. I can always make a ping by "/cc".

@lzybkr lzybkr merged commit a1edf8f into PowerShell:master Feb 23, 2017
@daxian-dbw daxian-dbw deleted the pr branch February 23, 2017 22:07
@iSazonov iSazonov removed the Review - Needed The PR is being reviewed label Mar 27, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.