Jump to: navigation, search

Documentation/ReviewGuidelines

< Documentation
Revision as of 19:52, 3 August 2014 by Jaegerandi (talk | contribs) (The Waiting Game)

Goal

Provide guidelines to improve the quality and speed of the documentation review process.

Critique categories

Objective

  1. Commit message
    1. Content
    2. Conventions
      1. Tags for third-party integration (see GitCommitMessages)
  2. Patch
    1. Content
    2. Conventions
    3. Grammar
    4. Style/phrasing/wording/capitalization (refer to the Documentation/Conventions page first, the IBM Style Guide next)
    5. Spelling
    6. Documentation checklist

Subjective

  1. Commit message
    1. Grammar
    2. Spelling
    3. Style/phrasing/wording
  2. Patch
    1. Grammar
    2. Style/phrasing/wording
    3. Other suggestions

Scope

  1. Try to keep reviews limited to the contents of the bug, contents of the commit message, and changes made by the patch. In other words, if the patch solves the stated problem, but there are other improvements that could result from the patch, approve the patch and file a subsequent bug, rather than -1'ing the patch with a comment about improvements. This is why it is a good idea to write commit messages that clearly define the scope of the patch.
  2. Additional comments within the objective and subjective aims of a patch, that would result in a -1, are appropriate. Remember to consider if the change is related to the scope.

Consistency

  1. Mark all instances of an issue if one appears in a patch.
    1. If the author uploads a patch correcting your objective issue and you find another instance that you didn't mark, comment on it and score with a -1. Preferably, upload a patch to fix it.
    2. If the author uploads a patch correcting your subjective issue and you find another instance that you didn't mark, comment on it and score with a 0.
    3. If the author uploads a patch correcting your objective and/or subjective issue and you find another objective issue, comment on it and score with a -1. Preferably, upload a patch to fix it.
    4. If the author uploads a patch correcting your objective and/or subjective issue and you find another subjective issue, comment on it and score with a 0.
  2. If an issue appears that could affect other portions of a book, provide appropriate comments, score the patch with a -1, and consider mentioning your issue on the mailing list or in a meeting.
    1. Example: A new service uses "key = value" in the configuration file and all other services use "key=value" in their configuration files. Both methods work, but the book should maintain consistency.
  3. If a patch has already recieved a -1, do not be discouraged to check on it, and add additional comments. This way, there will be fewer patch sets and comments building up under one review.

Tagging additional reviewers

  1. In some cases, you should tag one or more people with interest in or experience with the content of your patch to review it.
    1. Q: How long should an author wait for reviews by these people? A: For extremely busy projects with backlogs of over 400 patches, wait two weeks at least. If you have difficulty getting a reviewer for a particular project, use the Documentation/ProjectDocLeads page to contact the doc liaison for the project to get a reviewer. The Documentation PTL can also assist in getting reviewers attention.

The waiting game

  1. After the first review with a -1 or 0 score, an author should update the patch. Authors do not need to wait for a lengthy period of time. Expect to leave some time for reviewers to check on a patch, however. Consider that some reviewers are located in different timezones.
  2. Core reviewers will in general review a patch within a few days. If no review happens, feel free to ask on the #openstack-docs IRC channel.

Review Scoring and Approvals

  1. Scores available to contributors
    1. -1, 0, +1
  2. Scores available to core reviewers
    1. -2, -1, 0, +1, +2
  3. Approvals
    1. A core reviewer can approve a patch with +4 points, typically after it obtains two +2 scores from other core reviewers.
    2. A core reviewer can +2 score a patch with a +2 score from another core reviewer and approve it.
    3. A core reviewer can +2 score a patch with two +1 from other reviewers and approve it.

Note: If you find an issue with a patch that already has a +2 score from another core reviewer, consider commenting on the issue and scoring the patch with a 0 rather than scoring it with a -1.

Set WorkInProgress (WIP) during review

The WIP tag tells anyone looking at a change that more updates are still needed. Both the change's owner and any core reviewer can set the WIP statusː

  • A change owner can set this tag on their own review to mark that additional changes are still being made, and to avoid unnecessary reviews while that happens.
  • A core reviewer can set the WIP tag to acknowledge that a contributor will definitely need to do more work on a change rather than merely expressing an opinion on its readiness.

This can be a great convenience to fellow reviewers. It allows the core reviewer to politely send the message that the change needs additional work while simultaneously removing it from the list of ready changes until that happens.

To add the WIP tag:

  1. Click a patch set.
  2. Click the Review button.
  3. Choose the '-1 Work In Progress' from the Workflow options, enter comments (optional).
  4. Click Publish Comments.

This sets a -1 and informs everyone that the patch is WorkInProgress.

Abandoning patches

Patches that will not go in, should be abandoned to clean the review list. Both the patch owner and cores can abandon a patch - and also resurrect it again.

Considerations for Documentation Aligned with Release Cycles

  1. Beginning with milestone releases, shift focus to objective issues, especially with new services and existing services with significant changes. Only patches with significant subjective issues should receive a -1 score. Otherwise, comment on subjective issues and score with a 0.
  2. Beginning with release candidates, focus almost entirely on content issues. Only comment on subjective issues if the patch should receive a -1 score for objective issues.