| Index: docs/code_reviews.md
|
| diff --git a/docs/code_reviews.md b/docs/code_reviews.md
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..12cf126425d1e0f72b8e27bcdad1ec515ac28434
|
| --- /dev/null
|
| +++ b/docs/code_reviews.md
|
| @@ -0,0 +1,128 @@
|
| +# Code Reviews
|
| +
|
| +Code reviews are a central part of developing high-quality code for Chromium.
|
| +All changes must be reviewed.
|
| +
|
| +The bigger patch-upload-and-land process is covered in more detail the
|
| +[contributing code](https://www.chromium.org/developers/contributing-code)
|
| +page.
|
| +
|
| +# Code review policies
|
| +
|
| +Ideally the reviewer is someone who is familiar with the area of code you are
|
| +touching. If you have doubts, look at the git blame for the file and the OWNERS
|
| +files (see below).
|
| +
|
| +Any committer can review code, but there must be at least one owner for each
|
| +directory you are touching. If you have multiple reviewers, make it clear in
|
| +the message you send requesting review what you expect from each reviewer.
|
| +Otherwise people might assume their input is not required or waste time with
|
| +redundant reviews.
|
| +
|
| +## Expectations for all reviewers
|
| +
|
| + * Aim to provide some kind of actionable response within 24 hours of receipt
|
| + (not counting weekends and holidays). This doesn't mean you have to have
|
| + done a complete review, but you should be able to give some initial
|
| + feedback, request more time, or suggest another reviewer.
|
| +
|
| + * It can be nice to indicate if you're away in your name in the code review
|
| + tool. If you do this, indicate when you'll be back.
|
| +
|
| + * Don't generally discourage people from sending you code reviews. This
|
| + includes writing a blanket ("slow") after your name in the review tool.
|
| +
|
| +## OWNERS files
|
| +
|
| +In various directories there are files named "OWNERS" that list the email
|
| +addresses of people qualified to review changes in that directory. You must
|
| +get a positive review from an owner of each directory your change touches.
|
| +
|
| +Owners files are recursive, so each file also applies to its subdirectories. If
|
| +an owner file contains the text "set noparent" it will stop owner propagation
|
| +from parent directories.
|
| +
|
| +Tip: The "git cl owners" command can help find owners.
|
| +
|
| +While owners must approve all patches, any committer can contribute to the
|
| +review. In some directories the owners can be overloaded or there might be
|
| +people not listed as owners who are more familiar with the low-level code in
|
| +question. In these cases it's common to request a low-level review from an
|
| +appropriate person, and then request a high-level owner review once that's
|
| +complete. As always, be clear what you expect of each reviewer to avoid
|
| +duplicated work.
|
| +
|
| +### Expectations for owners
|
| +
|
| + * OWNERS files should contain only people actively reviewing code in that
|
| + directory.
|
| +
|
| + * If you aren't doing code reviews in a directory, remove yourself. Don't
|
| + try to discourage people from sending reviews in comments in the OWNERS
|
| + file. This includes writing "slow" or "emeritus" after your name.
|
| +
|
| + * If the code review load is unsustainable, work to expand the number of
|
| + owners.
|
| +
|
| +## TBR ("To Be Reviewed")
|
| +
|
| +"TBR" is our mechanism for post-commit review. It should be used rarely and
|
| +only in cases where a review is unnecessary or as described below. The most
|
| +common use of TBR is to revert patches that broke the build.
|
| +
|
| +TBR does not mean "no review." A reviewer on a TBRed on a change should still
|
| +review the change. If there comments after landing the author is still
|
| +obligated to address them in a followup patch.
|
| +
|
| +Do not use TBR just because a change is urgent or the reviewer is being slow.
|
| +Work to contact a reviewer who can do your review in a timely manner.
|
| +
|
| +To send a change TBR, annotate the description and send email like normal.
|
| +Otherwise the reviewer won't know to review the patch.
|
| +
|
| + * Add the reviewer's email address in the code review tool's reviewer field
|
| + like normal.
|
| +
|
| + * Add a line "TBR=<reviewer's email>" to the bottom of the change list
|
| + description.
|
| +
|
| + * Push the "send mail" button.
|
| +
|
| +### TBR-ing certain types of mechanical changes
|
| +
|
| +Sometimes you might do something that affects many callers in different
|
| +directories. For example, adding a parameter to a common function in //base.
|
| +If the updates to the callers is mechanical, you can:
|
| +
|
| + * Get a normal owner of the lower-level directory (in this example, //base)
|
| + you're changing to do a proper review of those changes.
|
| +
|
| + * Get _somebody_ to review the downstream changes. This is often the same
|
| + person from the previous step but could be somebody else.
|
| +
|
| + * Add the owners of the affected downstream directories as TBR.
|
| +
|
| +This process ensures that all code is reviewed prior to checkin and that the
|
| +concept of the change is reviewed by a qualified person, but you don't have to
|
| +track down many individual owners for trivial changes to their directories.
|
| +
|
| +### TBR-ing documentation updates
|
| +
|
| +You can TBR documentation updates. Documentation means markdown files, text
|
| +documents, and high-level comments in code. At finer levels of detail, comments
|
| +in source files become more like code and should be reviewed normally (not
|
| +using TBR). Non-TBR-able stuff includes things like function contracts and most
|
| +comments inside functions.
|
| +
|
| + * Use your best judgement. If you're changing something very important,
|
| + tricky, or something you may not be very familiar with, ask for the code
|
| + review up-front.
|
| +
|
| + * Don't TBR changes to policy documents like the style guide or this document.
|
| +
|
| + * Don't mix unrelated documentation updates with code changes.
|
| +
|
| + * Be sure to actually send out the email for the code review. If you get one,
|
| + please actually read the changes. Even the best writers have editors and
|
| + checking prose for clarity is much faster than checking code for
|
| + correctness.
|
|
|