[Bioperl-l] Splits again, formerly Test overhaul complete

Chris Fields cjfields at uiuc.edu
Wed Jun 27 21:36:29 UTC 2007


On Jun 27, 2007, at 4:05 PM, Sendu Bala wrote:

> Sendu Bala wrote:
>> Nathan S. Haigh wrote:
>>> It seems (to me at least) that Bioperl modules could/should? be  
>>> released
>>> as individual modules and that "bioperl" would really constitute a
>>> "bundle" of all these modules - in terms of CPAN anyway. Am I  
>>> correct in
>>> this thinking? The Bio::ASN1::EntrezGene could simply require a
>>> particular module rather than the whole of bioperl - might get  
>>> out of
>>> the circular dependency theoretically!?
>> No, it wouldn't.
> [snip]
>> You only avoid circularity by choosing not to install everything  
>> in one go.
>
> Errr... I take that back. Since CPAN bundles install things in a  
> certain order, you just have to make sure that everything  
> Bio::ASN1::EntrezGene needs is installed first, then  
> Bio::ASN1::EntrezGene, then Bio::SeqIO::entrezgene.
>
> But the main problem with this approach is that maintenance, global- 
> style code improvements and releases become a nightmare. I could,  
> perhaps, imagine a scenario where the repository stayed as-is (one  
> monolithic collection), but the dist action of Build.PL could be  
> altered to generate a release package per module instead of one big  
> release package of all modules, as is currently the case.
>
> Is there much value in doing that? Does anyone want me to look into  
> the feasibility of such a thing?

Not for the time being, at least in my opinion.  Too much on our  
plate at this point with svn migration, test conversion, bugzilla  
running over (next point of attack!), etc.  Maybe something to think  
about after, though I like the idea of a few splits to core as Steve  
suggested (SearchIO, Graphics, some LWP-related DB modules).

My (albeit extreme) thought is to have a lean-and-mean set of 'core'  
modules with as few external dependencies as possible, which could  
work around the circular dependency issue in this case:

                dep.on                  dep.on
Bio::Auxiliary -----> ASN1::EntrezGene -----> core
(with EntrezGene)                            (basic SeqIO, Index, DB,  
etc)
       \---->------>--- dep.on ->----->----->----/

Bioperl auxiliary modules would list core as a required dependency  
along with anything else needed for that particular aux. section  
(i.e. XML parsers, LWP, GD, etc.).  The whole mess, if needed, would  
be installed using Bundle::BioPerl or similar, with no part released  
w/o testing on the whole 'base' to ensure proper interaction.

If a fix needed to be made in one set, make the fix, test against  
bioperl 'base' as a whole, and release when possible.  No need to  
wait for a full-fledged 1.5.3 release.

Maybe wishful thinking...

chris




More information about the Bioperl-l mailing list