openstack-manuals/doc/contributor-guide/source/docs-review-guidelines.rst
KATO Tomoyuki 8c7fdb588e [contributor] reorganize reviewing documentation chapter
Also, migrated the review guidelines from
https://wiki.openstack.org/wiki/Documentation/ReviewGuidelines

Change-Id: I1d6d97b0826869834e4252cb2458f5bd03233c73
Implements: blueprint contributor-guide-reorg
2016-07-20 01:36:36 +00:00

210 lines
7.5 KiB
ReStructuredText

=================
Review guidelines
=================
This section provides guidelines to improve the quality and speed of
the documentation review process.
Critique categories
~~~~~~~~~~~~~~~~~~~
Below is a list of the categories you will critique as the reviewer.
Objective
---------
* `Commit message <https://wiki.openstack.org/wiki/GitCommitMessages>`_
* Content
* Conventions
* Bug number or blueprint
* Patch
* Content
* Grammar
* :doc:`Style, phrasing, wording, and capitalization <writing-style>`
* Spelling
* :doc:`RST formatting <rst-conv>`
* Accuracy of the selected location
Subjective
----------
* Commit message
* Grammar
* Spelling
* Style, phrasing, and wording
* Patch
* Grammar
* Style, phrasing, and wording
* Technical accuracy
* Other suggestions
Scope
~~~~~
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.
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
~~~~~~~~~~~
* Mark all instances of an issue if one appears in a patch.
* 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.
* 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.
* 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.
* 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.
* 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.
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.
* If a patch has already received a -1, do not be discouraged from
checking on it, and add additional comments. This way, there will
be fewer patch sets and comments building up under one review.
Tagging additional reviewers
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In some cases, you should tag one or more people with interest in or
experience with the content of your patch to review it.
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 `Cross Project Documentation Liaisons
<https://wiki.openstack.org/wiki/CrossProjectLiaisons#Documentation>`_
page to contact the documentation liaison for the project to get a reviewer.
The Documentation PTL can also assist in getting reviewers attention.
The waiting game
~~~~~~~~~~~~~~~~
After the first review with a -1 or 0 score, the 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.
Core reviewers will in general review a patch within a few days.
If no review happens, feel free to ask on the #openstack-doc IRC channel.
Review scoring and approvals
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Scores available to contributors: -1, 0, +1
* Scores available to core reviewers: -2, -1, 0, +1, +2
* Approvals
A core reviewer can +2 score a patch with a +2 score from another core
reviewer and approve it.
If the change contains important or critical information,
the core reviewer should not approve it immediately, but provide a few days
for wider community audience to express their opinion, and suggest posting
to the documentation mailing list.
.. 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.
Setting WorkInProgress (WIP) during review
------------------------------------------
The WIP tag tells potential reviewers to expect additional updates to
a patch before reviewing. Both the change's owner and any core reviewer
can set the WIP status:
* A change owner and core reviewers 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.
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:
#. Select a patch set.
#. Click the :guilabel:`Reply...` button.
#. Choose :guilabel:`-1 (Work In Progress)` from the :guilabel:`Workflow`
options.
#. Optional: enter comments.
#. Click :guilabel:`Post`.
This sets a ``-1`` and informs everyone that the patch is Work In Progress.
Abandoning patches
------------------
Core reviewers may abandon patches that receive a -2 review or
lack activity for at least four weeks to freshen the patch review queue.
The owner of a patch can also abandon it.
The owner and core reviewers can restore it again.
Patches by OpenStack Proposal Bot
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
There are a few proposal jobs set up that are run regularly:
* ``Imported Translations from Zanata``: Import of translated files from
the translation infrastructure.
This is run once a day (06:00 UTC) for each repository.
* ``Updated from openstack-manuals``: Import of glossary files from
openstack-manuals. This job is triggered whenever openstack-manuals has
merged and will propose a change if something has changed.
* ``Updated from global requirements``: Import of requirements.txt and
test-requirements.txt from the global requirements repository.
For all types of patches, any core can approve a patch if all the tests pass.
If the tests do not pass, vote ``-1`` on the patch, fix the problem and
wait for the next proposal run.
The proposal job will update the patch with the next run.
If you cannot fix the problem, ask for help on the mailing lists:
* openstack-i18n: translation failures
* openstack-doc: requirements failures, glossary sync failures,
and common content sync failures.
Considerations for documentation aligned with release cycles
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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.
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.