Finally starting the move to GitHub with GitHub::Extract
I am, somewhat famously, one of the last holdouts in the Perl community when it comes to moving away from svn to git.
I fought against the most for a long time, on the basis that the tool support for git on Windows was just terrible and it would make contributing to Perl difficult for Windows people.
So it looks like the time has for me to start the giant job of moving my repository over to GitHub myself (no small task considering it contains something like 300 modules).
As a first step, I am porting my personal release automation over to allow me to release modules from GitHub directly without the need for git client integration or a checkout at all.
The core of this new release automation is my new GitHub::Extract module.
In a single statement you can download a project zipball from GitHub, extract it, and then change into the root directory of the exported project.
my $pushd = GitHub::Extract->new( username => 'adamkennedy', repository => 'test-class', branch => 'master' )->pushd;
# Do the rest of the release tasks here
The current working version of the new release automation is here (yes, it's in svn for now)
It needs a few more small tweaks, but it deals with the things I care about and it should be good enough to start building releases from.
The next step is to start the process of porting modules into GitHub, and that seems like a much bigger job (anyone got a script for splitting one giant svn repo into lots of small github ones while retaining history?)
More to come...