[Bioperl-l] Tree refactor? was Re: Bootstrap, root, reroot...

Robert Buels rmb32 at cornell.edu
Thu Jul 16 01:05:43 UTC 2009


Rather than putting this in bioperl-dev, perhaps this would be a nice 
opportunity to make a new distribution called something standard like 
"Bio-Tree", with a standard directory structure, and a sane number of 
modules in it.

I hadn't planned to start an actual battle about this yet, but I would 
just like to get it out there that the current 'huge monolithic 
distributions' model of BioPerl is completely insane.  Talking to people 
about BioPerl at YAPC::NA last month, I saw that this is quite puzzling 
to the wider Perl community.  I was going to say it was a laughingstock, 
but that's not actually the case.  They are mostly puzzled and strongly 
suspect that it's not right.  Well, the diplomatic ones do, anyway. 
Matt Trout (of DBIx::Class and Catalyst fame) would probably yell and 
curse about it in a very entertaining way.

If things were in smaller distributions, making and testing releases 
would be a lot easier, because the pieces of code you're testing and 
releasing are smaller, and the dependencies among the pieces are 
characterized, codified, and enforced via the Build.PL files of each 
distribution.

There, I said it.

But aside from my inflammatory remarks above, this sort of thing need 
not happen all at once.  The "Bio-Tree" distribution is a nice example 
of how things could be extracted from or begun outside the bioperl-* 
distributions, with the bioperl-* monolithic balls of mud getting 
smaller as things are moved from them into their own distributions. 
This needs to be done carefully, but  so things like this should 
probably be done only with major releases, and with lots of 
notifications and release notes and things like that.

OK, now that I've said "this sucks and needs to change", I now go on to 
volunteer to do work to make it happen.  I will take and execute orders 
from you core developers saying things like "make a branch, take this 
list of modules, copy them into a new distribution, move their tests 
over, and write a Build.PL with the correct dependencies", and later 
"merge the moved_thing_somewhere" branch into the some_other_branch and 
test it".  I bet somebody whose name rhymes with "Jay Hannah" would 
probably do grunt work to help with this also, but of course he would 
have to volunteer first.  ;-)  I also volunteer to help teach others how 
to do this, but they have to figure out how to use IRC.

Oh, and I also volunteer to keep writing inflammatory emails.

Rob



More information about the Bioperl-l mailing list