Blended PR Workflow

Goal

As described in point 2F of https://openedx.atlassian.net/wiki/spaces/COMM/pages/1863189038, both edX and Blended team need a unified indicator (“PR-ready bat-signal”) to be aware that a PR is waiting for their response.

Requirements

  1. Blended team needs permissions to change a status of a ticket in the Blended Jira project.

Workflow

Note: before point 4., edX team should ignore all ticket-related communication to avoid unnecessary context switching.

  1. Blended team creates a PR with a name matching the following template: [BD-XX][TNL-XXXX] PR name. This way a Jira ticket is automatically created in the Blended project.
    Example BD PR and its related BLENDED ticket.

  2. Once the PR is ready for the Blended team’s review, the author of the PR marks a related BLENDED ticket as ready for community review (Workflow → Open edX Community Review). This adds an open edx community review label to the GitHub PR.

  3. Usually (see Exceptions below), Blended team first reviews the PR internally. If there are requested changes, then after leaving all comments on the PR, they mark a related BLENDED ticket as Waiting on Author, which adds the waiting on author label to the GitHub PR.

    1. The PR's author:

      1. Addresses the comments.

      2. Makes necessary changes to the PR.

      3. Marks a related BLENDED ticket as ready for community review.

    2. Go back to point 3.

  4. Once all significant internal requested changes are addressed, a reviewer from the Blended team:

    1. Leaves an approval on the PR.
      Example approval.

    2. Marks a related BLENDED ticket as ready for edX review (Workflow → Review In Progress). This adds an engineering review label to the GitHub PR.

  5. edX team (or blended team core contributor, if one exists) reviews the PR. If there are requested changes, then after leaving all comments on the PR, they mark a related BLENDED ticket as Changes Requested, which adds the changes requested label to the GitHub PR.

    1. The PR's author:

      1. Addresses the comments.

      2. Makes necessary changes to the PR.

      3. Marks a related BLENDED ticket as ready for edX review.

    2. Go back to point 5.

  6. edX team(or blended team core contributor, if one exists) leaves an approval on the PR and merges it.

  7. If a related ticket exists in edX Jira (example “upstream” ticket), then edX team marks it as Done.

Exceptions

More context needed from edX team

  1. Some PR-related discussions might require input from edX team. In such case, the Blended team does the following:

    1. “Mention” the edX team in a comment.

    2. Add a separate comment (“mentioning” the edX team again) on the PR that only a partial review should be performed in this pass.

    3. Mark a BLENDED ticket as ready for edX review.

  2. edX team:

    1. Reviews the mentioned parts and ignores the rest of the PR.

    2. Marks the BLENED ticket as waiting on author.

edX team requests a significant change

  1. If a change requested by edX team is significant, edX team can request Blended team to perform an additional internal review of the PR. To do this, edX team:

    1. Adds a comment “mentioning” both PR author and reviewer.

    2. Marks the BLENDED ticket as NEEDS triage.

  2. The PR’s author addresses the changes and then the Workflow continues from point 2.