[Bioperl-l] Splitting Bioperl and Test related Suggestions

Nathan S. Haigh n.haigh at sheffield.ac.uk
Thu Jul 5 08:09:05 UTC 2007


Chris Fields wrote:
> I think what's partially responsible for slowing down releases is the  
> expectation that each dev release is supposed to have all bugs fixed,  
> work for every OS, etc.  In other words, act like a stable release.
>
> A developer release by nature is living on the edge, so why not have  
> regular dev releases?  We keep telling users to update to using  
> bioperl-live whenever something breaks, anyway.  We could decide to  
> split stuff off along the way into more 'stable' sections if there  
> were more demand for it, and have the more API-volatile code  
> (DB::SeqFeature, EUtilities, GFF3, Chado-related, etc.) retain the  
> 'dev' tag until we feel it's ready for prime time.
>
> chris
>
> On Jul 4, 2007, at 2:45 PM, Jason Stajich wrote:
>
>   
-- snip --

I agree, although would the dev releases still need to pass all the 
tests? I'm thinking of people installing via CPAN.

I also agree with what was said in a previous post about bringing back 
bioperl-run (and some others) back into the same repository as 
bioperl-core (after a successful move over to svn) and have Build.PL 
deal with creating the packages etc for CPAN. This would hopefully help 
keep the run package (and others) up to speed with the core package.

I also agree with previous posts about organising and/or having some 
naming convention for test data files. I think an approach whereby data 
files were organised into directory trees (1 - 3 deep) with names that 
elude to the type of data in that subtree/file rather than the tests 
that use it etc. For example:

t/data
    |__ formats
    |           |__ seq
    |           |        |__ legal_fasta
    |           |        |              |__ extension.fas
    |           |        |              |__ extension.fasta
    |           |        |              |__ extension.foo
    |           |        |              |__ extension.bar
    |           |        |              |__ no_extension
    |           |        |              |__ interleaved.fas
    |           |        |              |__ non_interleaved.fas
    |           |        |              |__ single_seq.fas
    |           |        |              |__ multiple_seq.fas
    |           |        |              |__ desc_line1.fas
    |           |        |              |__ desc_line2.fas
    |           |        |
    |           |        |__ illegal_fasta
    |           |        |              |__ illegal_chars.fas
    |           |        |              |__ 
some_other_illegal_alternative.fas
    |           |        |
    |           |        |__ legal_genbank
    |           |        |              |__ etc etc
    |           |        |
    |           |        |__ illegal_genank
    |           |                      |__ etc etc
    |           |
    |           |__ aln
    |           |__ blast
    |           |        |__ legal_blastx
    |           |        |
    |           |        |__ legal_blastp
    |           |        |
    |           |        |__ legal_tblastx
    |           |        |
    |           |        |__ legal_plastpsi
    |           |        |
    |           |        |__ legal_wublast
    |           |__ foo
    |           |__ bar
    |           |__ misc
    |
    |__ etc

This type of setup, might lend itself to having a test script simply try 
to parse all the files in a directory to ensure nothing fails (for legal 
file formats) and fails for illegal formats. Naming of the file paths 
would help test authors to identify a suitable data file for their own 
tests before adding their own to the t/data dir. It might also help to 
identify areas where example test data is currently lacking.

Thinking about this a little more, I think it would be a good idea to 
include Test::Exception in t/lib. We should also be testing that 
warnings and exceptions are generated when expected - e.g. illegal 
characters in seq files etc etc. Without these sorts of tests we are 
only getting half the story. This testing might account for a large 
chunk of the poor test coverage, particularly when it comes to branches 
in the code.

Anyway, this type of reorganisation couldn't take place until the svn 
repo is up and working.

I'd appreciate any comments on the above!
Nath






More information about the Bioperl-l mailing list