Difference between revisions of "Development Team/Code Review"

From Sugar Labs
Jump to navigation Jump to search
Line 40: Line 40:
  
 
== Reviewer guidelines ==
 
== Reviewer guidelines ==
Please review the overall design of the patch. In many cases a detailed review is welcome as well. If the submitter added a use case for his patch please try that one as well. Use review+ or r+ to mark a patch ready to go into git master.
+
Please review the overall design of the patch. In many cases a detailed review is welcome as well.
  
 
== Push the patch ==
 
== Push the patch ==

Revision as of 03:38, 9 June 2008

Review Process

We are using email for the review process. In the future we might change to review board which we are currently investigating. In order to ask for a review of your code please send your patches to the Sugar mailing list.

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.

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

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^!

Reviewer guidelines

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

Push the patch

Patches with a "review+" keyword can be pushed to repository. 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.