Difference between revisions of "Development Team/Code Review"

From Sugar Labs
Jump to navigation Jump to search
Line 1: Line 1:
 
<noinclude>{{ GoogleTrans-en | es =show | bg =show | zh-CN =show | zh-TW =show | hr =show | cs =show | da =show | nl =show | fi =show | fr =show | de =show | el =show | hi =show | it =show | ja =show | ko =show | no =show | pl =show | pt =show | ro =show | ru =show | sv =show }}</noinclude>
 
<noinclude>{{ GoogleTrans-en | es =show | bg =show | zh-CN =show | zh-TW =show | hr =show | cs =show | da =show | nl =show | fi =show | fr =show | de =show | el =show | hi =show | it =show | ja =show | ko =show | no =show | pl =show | pt =show | ro =show | ru =show | sv =show }}</noinclude>
 
= Review Process =
 
= Review Process =
We are using email for the review process. In the future we might change to [http://www.review-board.org/ review board] which we are currently investigating. In order to ask for a review of your code please send your patches to the Sugar  [http://lists.laptop.org/listinfo/sugar mailing list].  
+
We are using a mix of email and trac for the review process. In the future we might change to a specialized tool like [http://www.review-board.org/ review board] which we are currently investigating.
  
 
== Process guidelines ==
 
== Process guidelines ==
Line 15: Line 15:
  
 
We could consider that 1500 lines starts to be too much for a diff, although factors like the add/delete ratio or the invasiveness of the changes should be taken in account.
 
We could consider that 1500 lines starts to be too much for a diff, although factors like the add/delete ratio or the invasiveness of the changes should be taken in account.
 
== Email guidelines ==
 
In order to make it easy for the reviewer please include in your email:
 
 
* prefix your email title with [PATCH]
 
* try to make in the title clear what the patch is about
 
* note which module is effected e.g. sugar, sugar-toolkit...
 
* note possible dependencies e.g. the patch is for sugar but depend on the current HEAD of sugar-toolkit which went in 5 seconds ago
 
* note how the patch can be verified / a use case
 
  
 
== Patch guidelines ==
 
== Patch guidelines ==
Line 39: Line 30:
 
Or if the commit you want the diff of was the most-recent commit, you can do:
 
Or if the commit you want the diff of was the most-recent commit, you can do:
 
  git diff HEAD^!
 
  git diff HEAD^!
 +
 +
Another alternative that will give you a patch in a file called 0001-My-cool-patch.patch:
 +
git-add new_file1 new_file2
 +
git-commit -a -m 'My cool patch'
 +
git-format-patch HEAD^
 +
git-reset --hard HEAD^
 +
 +
== Patch submission ==
 +
 +
If your patch addresses an issue registered in [http://dev.laptop.org/query trac], then make sure that the ticket number is referenced in the commit comment and attach the patch to the ticket. Also, add the keyword 'r?' to call the attention of reviewers.
 +
 +
If your patch is a new feature and reasonably big, you may prefer to submit it for review to the Sugar [http://lists.laptop.org/listinfo/sugar mailing list].
 +
 +
== Email guidelines ==
 +
In order to make it easy for the reviewer please include in your email:
 +
 +
* prefix your email title with [PATCH]
 +
* try to make in the title clear what the patch is about
 +
* note which module is effected e.g. sugar, sugar-toolkit...
 +
* note possible dependencies e.g. the patch is for sugar but depend on the current HEAD of sugar-toolkit which went in 5 seconds ago
 +
* note how the patch can be verified / a use case
  
 
== Reviewer guidelines ==
 
== Reviewer guidelines ==

Revision as of 12:37, 25 June 2008

Review Process

We are using a mix of email and trac for the review process. In the future we might change to a specialized tool like review board which we are currently investigating.

Process guidelines

Break your projects into small pieces that can be submitted for review independently. Submit for review whenever you think you need a review - you can tell that best. The reviewer will use review+ or r+ whenever the patch is accepted and ready to go into git master.

The workflow should be something like:

  • code a small part
  • submit to review
  • push to master
  • repeat

There will be cases when this will not be possible but we want to try to follow this guidelines.

We could consider that 1500 lines starts to be too much for a diff, although factors like the add/delete ratio or the invasiveness of the changes should be taken in account.

Patch guidelines

Please try to use pylint to verify your patch for things like exceeding 80 columns etc, unused imports and unused variables. Pylint is by far a tool you can 100% rely on but it helps to follow some guidelines and to avoid the most stupid errors like typos. Here is a pylintrc you can use: pylintrc

In the sugar packages use 'make distcheck' to make sure all files are included and the POTFILES.in is up to date.

Create a patch

Normally you can get a patch from git with:

git diff

If you already committed part or all of the new code you need to specify the id of the last commit before yours:

git diff 34a4876f93894309f77b00281b5cb1bb72b3a1e4

Or if the commit you want the diff of was the most-recent commit, you can do:

git diff HEAD^!

Another alternative that will give you a patch in a file called 0001-My-cool-patch.patch:

git-add new_file1 new_file2
git-commit -a -m 'My cool patch'
git-format-patch HEAD^
git-reset --hard HEAD^

Patch submission

If your patch addresses an issue registered in trac, then make sure that the ticket number is referenced in the commit comment and attach the patch to the ticket. Also, add the keyword 'r?' to call the attention of reviewers.

If your patch is a new feature and reasonably big, you may prefer to submit it for review to the Sugar mailing list.

Email guidelines

In order to make it easy for the reviewer please include in your email:

  • prefix your email title with [PATCH]
  • try to make in the title clear what the patch is about
  • note which module is effected e.g. sugar, sugar-toolkit...
  • note possible dependencies e.g. the patch is for sugar but depend on the current HEAD of sugar-toolkit which went in 5 seconds ago
  • note how the patch can be verified / a use case

Reviewer guidelines

Please review the overall design of the patch. In many cases a detailed review is welcome as well.

Push the patch

If you have write access to the sugar repository you can just do it yourself. 

If you don't have write access to the repository commit the patch to your local repository.

git commit

Generate a patch set using git. The following command will create one file per commit in the current directory.

git-format-patch origin

Remind the maintainers about patches

If you don't get any response from the maintainers about the patches you submitted in a few days, feel free to remind about them using the Sugar mailing list or IRC channel.