[Pdx-pm] Starting from scratch with Module::Build

Michael G Schwern schwern at pobox.com
Sat Jul 2 01:52:11 PDT 2005

On Fri, Jul 01, 2005 at 09:36:06PM -0700, Eric Wilhelm wrote:
> >I've seen a lot of excellent code that was not put on CPAN because
> > either A) they thought it was a difficult thing to do or B) they
> > thought putting code on CPAN was something "special" and that nobody
> > would be interested in their module.
> There are conflicting opinions about this on the module-authors list.  
> My personal approach since I started using subversion is to just dump 
> my new stuff into my subversion repository and worry about getting it 
> on CPAN when it's good enough (and when I get an automated release 
> process so that publishing 17 distributions doesn't take a week (though 
> that may be the case from QC anyway.))

Attached is the little release program I use.  Its pretty trivial and uses
the cpan-upload program.

There's also Module::Release which can do things like upload to PAUSE,
check into CVS, upload to SourceForge.

> >Remember, CPAN is the *Comprehensive* Perl Archive Network which means
> > you get the good and the bad. ?Often by trying to filter out the bad
> > we've lost the good. ?Its better to just gather everything together
> > and filter from there.
> So, let's do svn.perl.org and hook kinosearch to it right?  Then all you 
> need is a pause id (maybe a script could get you one of those 
> automatically (or at least hold your hand and walk you through it)) and 
> to run module-starter with the defaults (or a version thereof) to 
> automagically have your new module published and under version control.

svn.perl.org is already available and folks can request a repository there
but I don't really see how this solves the problem of making a module.
You still need to roll releases and upload them to PAUSE.  You still need
to create the Build.PL/Makefile.PL, tests and library layout.

Michael G Schwern     schwern at pobox.com     http://www.pobox.com/~schwern
Ahh email, my old friend.  Do you know that revenge is a dish that is best 
served cold?  And it is very cold on the Internet!
-------------- next part --------------
#!/usr/bin/perl -w

use File::Copy;

sub run {
    system(@_) == 0 or exit $? >> 8;

run("perl Makefile.PL");  # XXX Add SIGN=1 once key restored.
run("make disttest");
run("make dist");

my @tarballs = glob("*.tar.gz");
die "More than one tarball" if @tarballs > 1;
die "No tarball?" if @tarballs == 0;

my $dist = $tarballs[0];

run("cpan-upload -verbose $dist");
run("scp $dist mungus.schwern.org:~/www/src/");
move($dist, "$ENV{HOME}/releases/");

More information about the Pdx-pm-list mailing list