I had the good fortune of being in the #couchdb-meeting channel yesterday when the meeting kicked off, and subsequently got tasked with proposing a review process based on Github Pull Requests based on the recent "we need more reviews" thread.

To that end, here's the proposal for mixing Github Pull Requests (Github PRs heretofore) into the Jira, Git, Mailing List mix.

First, Github PRs are already in use by non-committer contributors (like myself) and frequently used by the Fauxton devs (Garren & Sue mostly) for reviewing each others more "volatile" patches.

Second, this "process" can be added along side how things are done now, used as found useful, and (in time) potentially become part of the daily process of getting code into master. This proposal is to encourage the use of Github PRs for anything non-trivial to get at least two sets of eyes on all the code that hits master. Unlike a tool like Gerritt (which I've used in the past), this is not a blocking process and can sit alongside (as it does now) the current "a patchy" process of committing straight to master.

The key thing missing from Github PRs is communication with the other tools already in use: Jira and the Mailing Lists.

I've done some research to bridge that gap, and come up with the following options.

Option 1:
Adding an @apache.org "bot" email address and Github account with notification levels and "watch" status to relay PR comments to the Mailing List. There is an Email Service Hook for Github repos, but it's limited to commit activity (from what I could tell). Having a full account that handles this can increase control on what's received, set a proper sender on the emails to the list, etc.
https://help.github.com/articles/notifications

Option 2 (likely too bothersome):
Github does offer a Jira service hook. It seems to only handle commit activity and require specific commit message content to actually function:
https://github.com/github/github-services/blob/master/docs/jira

Option 3 (much more overhead):
Zapier.com (would require $$ or a donation from them of an account to Apache as well as "buy in" by Apache Infra, etc) can relay activity within a Github project to many other tools including Email and Jira. The advantage with this approach would be turning PRs and subsequent comments into Jira ticket comments. The setup overhead is much greater, the ongoing expense (possibly), and someone(s) to keep it fed/happy/working properly may obviate it's value and use.


Option 1 is by far the more doable, easier to ship sooner and would get an existing "process" in place with the existing tools. The same process done for the Mailing List notifications could potentially be done (with a bit more setup work) to get notifications sent to Jira.

Objectives met by Option 1:
 - add code review to Apache CouchDB process
 - keep it an "additive" process (rather than a blocking one)
 - increase cross-tool communication

Hope that helps! :)

Thanks,
Benjamin

Reply via email to