CPAN Patching with Git

Yanick on 2008-12-29T18:32:52

A few months ago, brian posted a blog entry about patching modules using Git. In the ensuing discussion, I pointed at a possible way to automatise the process a step further by punting the generated patch to rt.cpan.org. The hack was well-received and, with (very) minimal coaxing, I was subsequently convinced to expand on the idea for the Perl Review.

The resulting piece is now available in TPR 5.1. In the article, the initial command-line hack has morphed into four scripts -- git-cpan-init, git-cpan-clone, git-cpan-update and git-cpan-sendpatch -- that pretty much take care of all the administrative overhead of module patching. In most cases, grabbing a distro, fixing a bug and sending the patch can be done in four lines:

    $ git cpan-init Some::Module  
    $ git checkout -b mypatch    
    ...hack hack hack...                                
    $ git rebase -i cpan        
    $ git cpan-sendpatch       

And, no, the lack of hyphen between git and cpan-X isn't a typo; the article also covers how to seamlessly integrate the new scripts into the git infrastructure (as Edna Mode would say, it's a non-feature, dahling).

Of course, I'm burning to say more, but I'll have to stop here. To know the whole story, you'll have to wait for The Perl Review to land in your mailbox (you are subscribed to TPR, right?).

cross-posted from Hacking Thy Fearful Symmetry.