Monday, June 25, 2012

CDK gatekeepers do not scale

Some six years ago, the Linux kernel development hit a critical point: the observations that Linus does not scale. The CDK is facing the same similar issues now. Recently, the amount of activity has gone up, and both Rajarshi and I seem to have had less time than normal. As you know, the CDK project uses peer review, but, unfortunately, the amount of peer reviewing is low. Part of this is perhaps due to peoples' inexperience with git, which makes the review harder than needed. Neither do we have a proper peer-review system set up, like Gerrit. Sadly, this is rather disappointing to people, and particularly to those who work hard on those patches.

This must change. The solution the Linux kernel development community adopted was that op trusted lieutenants. Developers with a reasonable git knowledge that would act as co-editor of the kernel. They receive patches, make sure they get reviewed, and, importantly, make them ready for inclusion in the main development tree. Except for the last step, we already use this approach: any CDK developer can sign off a patch, taking responsibility that the patch is ready for inclusion in the main tree and meets our project standards. That signals the gatekeeper to pull it in into the main tree; the only thing missing, is that we do not have people formally taking that role, and in particular, making sure to put the patches they approved up in a single branch.

However, some CDK developers are experimenting with this, and the time has come to discuss how we, as CDK project, want to give this further shape. A critical aspect here is that the gatekeepers can trust these lieutenants, so that they know the ins and outs of the CDK community standards.

Therefore, I have created a Doodle so that we can schedule a CDK developers meeting, and I hope a lot of currently active (and formerly or future active) CDK developers will join. The meeting will probably take place over Google+ Hangout, but Skype is an alternative if the former is not possible or not wanted.