Now that we have something like 14 people who have commit bits to the
MakeMaker Github repository, it's time to do something aggressive with that.

I've been working with Dancer lately and have been really enjoying their
aggressive use of Github, particularly pull requests.  You can read about it 
here:
http://lumberjaph.net/dancer/2011/03/06/how_to_use_github_effectively_for_your_project.html

I'd like MakeMaker to use this model:
* Promote collective ownership
* Encourage more eyes on major changes
* Encourage more code review
* More visible conversations about patches
* Less patches dropped on the floor

Rather than plopping major changes into master they are done in a fork or a
branch (or both).  Then a pull request is issued on Github.  This
automatically opens an issue and lets all the repo owners know there's code to
be reviewed and merged.  Less patches dropped on the floor.

Then the fun begins.  And I do find it fun.  Far more fun than mailing patches
around.

Github has a number of ways to review and comment on code per commit, line by
line, and on the pull request as a whole.  This all shows up in the
conversation on Github.  Even better, any new commits to the branch being
pulled also show up in the conversation.

Here's an example:
https://github.com/sukria/Dancer/pull/410

ambs forked Dancer, made a branch to fix this bug, committed the fix and then
issued a pull request.  Then I had a look, made some comments on individual
lines of the code...
https://github.com/sukria/Dancer/pull/410#commitcomment-313252
https://github.com/sukria/Dancer/pull/410#commitcomment-313253

As well as the commit overall.
https://github.com/sukria/Dancer/pull/410#commitcomment-313256

ambs replied and made another commit to fix what I'd pointed out.
https://github.com/sukria/Dancer/pull/410#commits-pushed-b76a5eb

And so on.

The end result being to eventually have at least two people with commit bits
saying "approved" and then somebody merges it.  For example:
https://github.com/sukria/Dancer/pull/408

This avoids surprises without too much bureaucracy.

It also allows major changes to be done with lots of eyes on them, or for new
codes to be shepherded through.  Here's an example from Method::Signatures.
https://github.com/schwern/method-signatures/pull/5

Good?  Thoughts?


-- 
29. The Irish MPs are not after "Me frosted lucky charms".
    -- The 213 Things Skippy Is No Longer Allowed To Do In The U.S. Army
           http://skippyslist.com/list/

Reply via email to