In the KIELER project we are conducting regular code reviews of (possibly) all of our sources. To make things easier, we do software assisted reviews in Crucible.
On this Page
Design reviews are scheduled during our various project meetings. For each review, one author and at least two reviewers (though not more than three) are selected. Design reviews take place during special design review meetings. The author's job is to prepare for the meeting by doing the following:
Now the reviewers look at your meeting page and through the code that is to be reviewed. During the meeting, you will discuss the comments of the reviewers and take notes of all change decisions in the meeting notes. After the review, the author goes through all decisions and gets the changes done, noting so in the notes. The author also adds a tag to the reviewed classes to mark them as design reviewed (see below).
Code reviews are scheduled during our various project meetings. For each review, one author and at least two reviewers (though not more than three) are selected. The author's job is then to do as follows:
Now it is the turn of the reviewers to perform the review:
If you have never reviewed source code before, you might wonder what to write into the review. Here's a few things you might look out for:
Basically, look out for anything that strikes you as odd or problematic.
After the review it is up to the author to respond to all comments the reviewers gave.
When classes are ready for a design review, they should be marked with the following tag:
@kieler.design proposed <comment>
After the design review has been performed, the same tag can be used to mark the reviewed classes by removing the
proposed modifier and adapting the comment. The comment should contain the date of the design review (yyyy-mm-dd) and the login names of the attendees.
All classes have initial code review rating red. The first code review lifts them to yellow, and the second one to green. The following tag marks classes that are ready for the first code review:
@kieler.rating proposed yellow <comment>
After the code review has been performed, the same tag can be used to mark the reviewed classes by removing the
proposed modifier and adapting the comment. Similarly, the second code review can be marked using the
green modifier. The comment should contain the date of the code review (yyyy-mm-dd), the login names of the attendees, and the ID of the code review in Crucible (such as
The design and code review tags are processed automatically using a custom doclet during Bamboo builds. The result is displayed in a generated HTML page:
The complete syntax of the available tags is as follows:
@kieler.design [proposed] yyyy-mm-dd comment Marks a class as design-reviewed or to be design-reviewed. For proposed classes, the comment should mention the login name of the person proposing the class to be reviewed. For reviewed classes, the comment should include the names of the reviewers. @kieler.rating [proposed] <yellow|green> yyyy-mm-dd comment Marks a class as code-reviewed or to be code-reviewed. For proposed classes, the comment should mention the login name of the person proposing the class to be reviewed. For reviewed classes, the comment should include the names of the reviewers as well as the ID of the review in Crucible (for instance "KI-15"). @kieler.ignore comment Marks a class as to be ignored in the code rating statistics. The comment should provide an explanation of why the class is ignored.
To be compatible with past tags, the doclet is actually quite flexible in terms of what it still accepts. However, it is good practice to follow these recommendations.