Difference between revisions of "Code Review"

From Dreamwidth Notes
Jump to: navigation, search
 
(3 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 +
Code Review is an important task that must be done for pull requests submitted to GitHub.  By doing this task, you help <dwuser>mark</dwuser> and <dwuser>fu</dwuser> spend less time doing code review and more time coding.
  
<div class="warnbox"><b>Warning</b>: The following information is obsolete, and may quite possibly be incorrect. Obsolete articles are candidates for deletion. Information posted to official communities should be assumed to be accurate.  If you have fresh information, please update this article (and remove this textbox!)<br><br><font size="-1"><center>This box was added on {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}.</center></font></div>[[Category: Obsolete]]
+
You can find pull requests for the two main code repositories:
  
{{Note|text=This page has not been updated for the git conversion.}}
+
* [https://github.com/dreamwidth/dw-free/pulls dw-free]
 
+
* [https://github.com/dreamwidth/dw-nonfree/pulls dw-nonfree]
Code Review is an important task that must be done for patches submitted to [[Bugzilla]]. By doing this task, you help <dwuser>mark</dwuser> and <dwuser>fu</dwuser> spend less time doing code review and more time coding.
+
 
+
Here are [http://bugs.dwscoalition.org/buglist.cgi?cmdtype=dorem&remaction=run&namedcmd=needs-review&sharer_id=2 bugs in need of review].
+
  
 
== Code Review Steps ==
 
== Code Review Steps ==
Line 12: Line 10:
 
=== Style compliance ===
 
=== Style compliance ===
  
Run through the [[Programming Guideline Checklist]].  If the patch violates any of these guidelines, reject with specific instructions on what is wrong.
+
Run through the [[Programming Guideline Checklist]].  If the patch violates any of these guidelines, comment with specific instructions on what is wrong, ideally on the lines that have violations.
  
 
=== Build a test-case ===
 
=== Build a test-case ===
Line 18: Line 16:
 
Look at what the patch is supposed to fix and reproduce it on your own installation. Already at this step it is best to think of several ways this patch can be tested so you can see what happens before and after you apply the patch.
 
Look at what the patch is supposed to fix and reproduce it on your own installation. Already at this step it is best to think of several ways this patch can be tested so you can see what happens before and after you apply the patch.
  
=== Apply the Patch ===
+
=== Apply the branch from the pull request ===
 +
 
 +
Update to the latest committed code, as per the instructions in [[Dev Maintenance]].  Apply the commits from the pull request.  The easiest way to do this is checking out the master branch (git checkout master) and then using [http://hub.github.com/ the hub command] (if it is installed) with the link to the pull request:
 +
 
 +
hub checkout https://github.com/dreamwidth/dw-free/pull/000
  
Update to the latest committed code, as per the instructions in [[Dev Maintenance]].  Apply the patch from the pull request.  If the patch doesn't apply cleanly, reject with a note to check their patch against the latest committed code.  They may have forgotten to update before submitting, or there may have been changes committed since they submitted!
+
If the pull request doesn't apply cleanly to the master branch, comment with a note to check their branch against the latest committed code.  They may have forgotten to update before submitting, or there may have been changes committed since they submitted!
  
 
=== Test the functionality ===
 
=== Test the functionality ===
  
Note what the bug patch is meant to fix.  Verify that the issue is fixed or that the new feature is working properly.  Try to see if you can make things break.   
+
Note what the pull request is meant to fix. (The originating issue number should be in the title of the branch and each commit.) Verify that the issue is fixed or that the new feature is working properly.  Try to see if you can make things break.   
  
 
Suggestions for things to test for, as applicable: test with paid, free, personal and community accounts, logged in and logged out, use different site schemes and layouts, try foreign characters in user input or empty input, entries and user names that don't exist, and anything else you can think of.
 
Suggestions for things to test for, as applicable: test with paid, free, personal and community accounts, logged in and logged out, use different site schemes and layouts, try foreign characters in user input or empty input, entries and user names that don't exist, and anything else you can think of.
  
=== Make appropriate changes to the review tag ===
+
=== Make appropriate commentary ===
  
* If the patch follows style guidelines, applies cleanly, and functions, you may now note that you have reviewed the patch for all of these and turn the review tag to review+.
+
* If the patch follows style guidelines, applies cleanly, and functions, you may now note that you have reviewed the patch for all of these in a comment.
* If you find a patch still needs work, you can explain in a clear and friendly manner what should be done, and turn the review tag to review-.
+
* If you find a patch still needs work, you can explain in a clear and friendly manner what should be done in a commentIdeally, match the commentary as line comments on the sections that need wor.
* If a commit tag is there, leave it.   
+
* If a commit tag is not there, tell the person that they should add it if they are ready for the patch to be committed. (Sometimes people want patches to be reviewed before they are finished working on them!)
+
  
 
[[Category: Development]]
 
[[Category: Development]]

Latest revision as of 17:05, 1 July 2019

Code Review is an important task that must be done for pull requests submitted to GitHub. By doing this task, you help [info]mark and [info]fu spend less time doing code review and more time coding.

You can find pull requests for the two main code repositories:

Code Review Steps

Style compliance

Run through the Programming Guideline Checklist. If the patch violates any of these guidelines, comment with specific instructions on what is wrong, ideally on the lines that have violations.

Build a test-case

Look at what the patch is supposed to fix and reproduce it on your own installation. Already at this step it is best to think of several ways this patch can be tested so you can see what happens before and after you apply the patch.

Apply the branch from the pull request

Update to the latest committed code, as per the instructions in Dev Maintenance. Apply the commits from the pull request. The easiest way to do this is checking out the master branch (git checkout master) and then using the hub command (if it is installed) with the link to the pull request:

hub checkout https://github.com/dreamwidth/dw-free/pull/000

If the pull request doesn't apply cleanly to the master branch, comment with a note to check their branch against the latest committed code. They may have forgotten to update before submitting, or there may have been changes committed since they submitted!

Test the functionality

Note what the pull request is meant to fix. (The originating issue number should be in the title of the branch and each commit.) Verify that the issue is fixed or that the new feature is working properly. Try to see if you can make things break.

Suggestions for things to test for, as applicable: test with paid, free, personal and community accounts, logged in and logged out, use different site schemes and layouts, try foreign characters in user input or empty input, entries and user names that don't exist, and anything else you can think of.

Make appropriate commentary

  • If the patch follows style guidelines, applies cleanly, and functions, you may now note that you have reviewed the patch for all of these in a comment.
  • If you find a patch still needs work, you can explain in a clear and friendly manner what should be done in a comment. Ideally, match the commentary as line comments on the sections that need wor.