From a1edf8fba6256f5c86778d2f12dadea62c6cf6ae Mon Sep 17 00:00:00 2001 From: Dongbo Wang Date: Thu, 23 Feb 2017 13:13:06 -0800 Subject: [PATCH] Define roles and their responsibilities in a PR (#3168) --- .github/CONTRIBUTING.md | 38 +++++++++++++++++++++++++------- .github/PULL_REQUEST_TEMPLATE.md | 7 ++++++ 2 files changed, 37 insertions(+), 8 deletions(-) create mode 100644 .github/PULL_REQUEST_TEMPLATE.md diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index d8f51f92e3..05e0fd04ce 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -35,7 +35,7 @@ Contributing to Issues [open a new issue](https://github.com/PowerShell/PowerShell/issues/new), making sure to follow the directions as best you can. * If the issue is marked as [`Up-for-Grabs`][up-for-grabs], - the PowerShell maintainers are looking for help with the issue. + the PowerShell Maintainers are looking for help with the issue. Contributing to Documentation ----------------------------- @@ -127,7 +127,7 @@ See [Contributing to documentation related to PowerShell](#contributing-to-docum either update the changelog in your pull request or add a comment in the PR description saying that the change may warrant a note in the changelog. New changes always go into the **Unreleased** section. - Keeping the changelog up-to-date simplifies the release process for maintainers. + Keeping the changelog up-to-date simplifies the release process for Maintainers. An example: ``` Unreleased @@ -169,12 +169,34 @@ See [Contributing to documentation related to PowerShell](#contributing-to-docum #### Pull Request - Code Review -* After a successful test pass, - the area maintainers will do a code review, - commenting on any changes that might need to be made. +* Roles and Responsibilities of a PR: Author, Reviewer, and Assignee + * Reviewer and Assignee are two separate roles of a PR. + * A Reviewer can be anyone who wants to contribute. + 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](../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 an Assignee for the PR. + If no Assignee is chosen, one of the Maintainers shall be assigned to it. + 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, + so additional Reviewer(s) may be added by the Assignee as appropriate. + The Assignee may also be re-assigned by Maintainers. + +* A Reviewer can postpone the code review if CI builds fail, + but also can start the code review early regardless of the CI builds. + +* The Author **is responsible** for driving the PR to the Approved state. + The Author addresses review 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. * Additional feedback is always welcome! - Even if you are not designated as an area's maintainer, + Even if you are not designated as a Reviewer, feel free to review others' pull requests anyway. Leave your comments even if everything looks good; a simple "Looks good to me" or "LGTM" will suffice. @@ -191,9 +213,9 @@ See [Contributing to documentation related to PowerShell](#contributing-to-docum * Once the code review is done, all merge conflicts are resolved, and the CI system build status is passing, - a maintainer will merge your changes. + the PR Assignee will merge your changes. -* For more information on the the PowerShell maintainers' process, +* For more information on the the PowerShell Maintainers' process, see the [documentation](../docs/maintainers). Making Breaking Changes diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000000..e64760abc0 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,7 @@ + \ No newline at end of file