Practical support for peer code review

bpapez December 24, 2012

In our company we are using the Atlassian stack (Jira, Crucible, Fisheye, Bamboo) and so far we are happy using that for hotfix reviews on stable branches, opened by the developers, who are attaching pre-commit files or selecting the commited revisions of related files.

Now we would like to also start doing code reviews on the trunk after each sprint. We have one jira issue per user story, which is broken down to subtasks. The comments of code commits (to SVN and Github repositories) are including the ID of the subtask. So in the view of the subtask we can see all commits in the Source tab.

What I would however like to have is a cumulated view of all commits of the user story in order to create a review on all the changes related to that user story. Today I'm manually typing in all subtask IDs in Fisheye to get a list of all commits, but I cannot create one review over all.

Ideally I would need to see a diff view of all added/changed files/lines or even better see these files/lines annotated in my editor (Eclipse, but may also be Intellij IDEA). Why not just in Crucible? Because in addition to manually checking the changes we are also using Sonar to run code analysis for style violations, code duplications, potential bugs, etc. , so I would also like to immediately see those found issues in my editor as well.

So right now when doing reviews per user story, there are so many manual steps to gather all changed files/lines for that story and then look up each file in the editor to create the diff views and also to see if Sonar reports issues on the new code. So this is very uncomfortable and time consuming and I wondered if there are existing tools/plugins or soon to come features, which would help me with that.

4 answers

0 votes
Tom Salamat April 17, 2013

@Benjamin,

I am wondering if you found a solution to your problem?

Our company has the exact same workflow in that we use Greenhopper to create a user story which gets broken down into sub-tasks. Each subtask typically leads to some code change that either happens in our Trunk or some development Branch which we refrence the ID in our commits. At the end of the story we have a code review which we use to kick off a Crucible review project.

Ideally it would be nice if we could just link the project to the parent story and there were some smarts to retrieve all child sub-tasks and all related commits into the code review. Anyone knows of a plug-in that could help?

Thanks,

Tom

0 votes
Renjith Pillai
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
January 19, 2013

Something which might help you is this one, which dumps the raw data into Excel. You can customize it or write in simple perl to do the REST calls to Crucible, dump the reviews, do the svn/git diffs between versions and if Sonar has an interface to check that too.

https://code.google.com/p/crucible-excel-dump/wiki/InstallationAndUsage

0 votes
bpapez January 13, 2013

Hello Daniel,

thanks for your answer, although the links are not the direction I am interested in.

We have however installed newer versions of JIRA and Crucible and there is already some nice improvement for me. Now I create the crucible via the Source tab in JIRA. I go to the first subtask, open the Source tab and create a new Crucible for it. Then I go to the Source tab of the next subtasks and add the commits to the same Crucible.

Here a nice improvement would be if the main JIRA (the parent of the subtask JIRAs) would list in its Source tab, all commits of the subtasks, so I could create the Crucible just with one click. As I can't see a public feature request like that, I'll probably open one.

Another problem I found then is the diff view in Crucible if there were multiple commits on a file. It would be nice if there would be a way to see the changes related to the commit revisions I review differently than the revisions in-between which are not related to the crucible. Here is what I mean: https://jira.atlassian.com/browse/CRUC-5690 (I voted for that request, but as there is no activity for more than a year on this, I don't know how big the chance is to get something moved).

Are there any solutions for my second problem, which is how to integrate Crucible and Sonar? Any chance to get a substitution for the dropped Eclipse plugin for Crucible?

Regards,
Benjamin

Tini Good
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
January 20, 2013

If you open this issue, please post the issue number back here and I will vote for it.

0 votes
Daniel R
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
December 28, 2012

Hello Benjamin,

Have you taken a look at this free plugin from the Atlassian Marketplace? It is a Release Report plugin that provides the overview of your release and identifies the JIRA issues referenced. I haven't used it with subtasks specifically but I suggest giving it a try and see if you find it useful:

https://marketplace.atlassian.com/plugins/com.atlassian.fecru.plugins.fecru-revset-report-plugin

We also have this feature request in our public facing JIRA instance:

https://jira.atlassian.com/browse/CRUC-6305

Do you think that would help when adding items for a review in your case?

Suggest an answer

Log in or Sign up to answer