The life and death of a Gerrit review in Eclipse
This talk will aim to dissect the life-cycle of a very important link in the chain of the contribution process at Eclipse - the gerrit review. It will also give tips on how to use at best this really nice tool that is now the de-facto way of making a change to most Eclipse projects. In no way will it be in an "I'm the expert of Gerrit" fashion but rather in the "I'm a guy who already hit all the bumps in road" mode.
A gerrit review is usually born out of a mixture of frustration with a bug and a well-intended desire to help. The potential end of it though is quite more colorful:
- It can be accepted and merged into the code repository with the beloved +2.
- It can be given a +1 which basically means "I eye-balled it and it looks nice. No time to thoroughly test and verify it though".
- It can be demolished with a -2.
- It can be left to become a fossil and by the time someone comes to brush the dust out of it, the author is not around anymore.
- It can enter the spiral of '-1 please adjust this -> Adjusted -> -1 that's not what I meant' which out of frustration can easily become a death spiral.
- It can be abandoned by the submitter.
- Even our automated friend Hudson has a veto, and if he says -1 and the build fails none of the above apply. The best thing about Hudson is that he never complains.
In my path from a plain user to a committer in two Eclipse projects I have personal experiences with almost all of the above-mentioned cases which I will use to illustrate and give hints on how to address them. Usually I have observed that clear communication is a very important component in making a gerrit as successful and less painful as possible.
I will attempt to give attendees a sincere and open talk on how to maximize the chances of a successful gerrit review and try to address most of the behavioral and technical issues one can face in this process. Only the Gerrit phase of the contribution will be covered so little-to-no attention will be given to the rest of the process (filing bugs, etc.).