[Bioperl-l] Bioperl 1.5.2 Prerequisites

Chris Fields cjfields at uiuc.edu
Tue Sep 19 17:33:34 EDT 2006


...
> Yesterday, I started having a look at installing the latest code on the
> 1.5.2 branch with the aim of running all the tests with Perl 5.6.1.
> 
> However, I ran into a few hurdles including some regarding dependencies.
> 
> Firstly, in order to run large test suites that break the command line
> length limit in windows (and possibly other OS's at different limits)
> ExtUtils::MakeMaker >= 6.06 is required. It may not be necessary for
> *nix but it is required if installing Bundle::BioPerl via CPAN and
> probably also Bioperl (however, I haven't got that far yet - this is
> tomorrows job), but it is required for testing under windows. It could
> be added as a prerequisite in a ppd, but most people installing it this
> way probably wouldn't run the test suite. How should this be dealt with?

The way ActiveState deals with up their PPM releases is based on whether
they pass an automated test run.  If they don't pass everything  (which
assumes that they have all modules installed for everything to pass) they
aren't converted to PPM.  I don't think that PPM runs tests, though; that is
run pre-build.  Technically, all you need to do for making a PPM is (from
http://www.bioperl.org/wiki/Create_a_Bioperl_PPM_Package): 

perl Makefile.PL
nmake
tar cvf bioperl-ppm.tar blib
gzip --best bioperl.tar
nmake ppd

Then modify the *.ppd file accordingly.  You can use WinZip or 7-Zip to
package up the blib directory.

We don't need to make the same demands with dependencies for a Bioperl PPM
release.  In fact, we could leave out dependencies completely and have a
test script (run by PPM) check for missing dependencies and let the user
know (warn) if they aren't present.  The current Makefile.PL already does
this; we could probably customize it for this and have PPM run the script.
This could also be used to install the scripts, something which isn't done
with a bare-bones PPM (like the above).

Generic Genome Browser does something along those lines; here's the PPD file
(note the INSTALL HREF tag):

<SOFTPKG NAME="Generic-Genome-Browser" VERSION="1,65,0,0">
    <TITLE>Generic-Genome-Browser</TITLE>
    <ABSTRACT>A CGI-driven browser for genomic annotations.</ABSTRACT>
    <AUTHOR>Lincoln Stein (lstein at cshl.org)</AUTHOR>
    <IMPLEMENTATION>
        <DEPENDENCY NAME="bioperl" VERSION="1,512,0,0" />
        <DEPENDENCY NAME="CGI-Session" VERSION="4,02,0,0" />
        <DEPENDENCY NAME="GD" VERSION="2,07,0,0" />
        <DEPENDENCY NAME="IO-String" VERSION="0,0,0,0" />
        <DEPENDENCY NAME="Text-Shellwords" VERSION="1,08,0,0" />
        <OS NAME="MSWin32" />
        <ARCHITECTURE NAME="MSWin32-x86-multi-thread" />
        <CODEBASE HREF="http://www.gmod.org/ggb/ppm/gbrowse_ppm-1.65.tar.gz"
/>
		<INSTALL
HREF="http://www.gmod.org/ggb/ppm/gbrowse_ppm_install.pl" EXEC="PPM_PERL" />
    </IMPLEMENTATION>
    <IMPLEMENTATION>
        <DEPENDENCY NAME="bioperl" VERSION="1,512,0,0" />
        <DEPENDENCY NAME="CGI-Session" VERSION="4,02,0,0" />
        <DEPENDENCY NAME="GD" VERSION="2,07,0,0" />
        <DEPENDENCY NAME="IO-String" VERSION="0,0,0,0" />
        <DEPENDENCY NAME="Text-Shellwords" VERSION="1,08,0,0" />
        <OS NAME="MSWin32" />
        <ARCHITECTURE NAME="MSWin32-x86-multi-thread-5.8" />
        <CODEBASE HREF="http://www.gmod.org/ggb/ppm/gbrowse_ppm-1.65.tar.gz"
/>
		<INSTALL
HREF="http://www.gmod.org/ggb/ppm/gbrowse_ppm_install.pl" EXEC="PPM_PERL" />
    </IMPLEMENTATION>
</SOFTPKG>

> For prerequisites where there isn't a ppd available in either the 3 main
> repositories used for Windows install via PPM, how should these be dealt
> with? I could make the ppd's but should they go into Bundle::BioPerl? or
> just pop them in the Bioperl repository?

The main three repositories outside of BioPerl are Kobes, Bribes, and the
normal ActiveState repository (which PPM comes configured with).

Kobes - http://theoryx5.uwinnipeg.ca/ppms
Bribes - http://www.Bribes.org/perl/ppm

Several modules aren't present in those repositories, in fact GD::SVG,
Text::ShellWords, and Bio::ASN1::EntrezGene come to mind.  The first two are
present in the Bioperl PPM directory and need to be added to package.lst.
The last one builds easily into a PPM so could be added to the Bioperl
repository.

> What modules should go into Bundle::BioPerl? My feeling is that all
> non-essential modules should go into Bundle::BioPerl so that it's
> install with Bioperl would yield a fully functional Bioperl that is
> capable of running all the tests. This way, either 1) the Bioperl ppd
> could contain the minimal set of prerequisites and the user can
> optionally install Bundle::BioPerl or 2) the Bioperl ppd could contain
> Bundle::BioPerl as a prerequisite in order that PPM users would get a
> fully functional Bioperl from the off - which might be beneficial to
> more naive users/beginners.
> 
> Anyway, I'll get back to the testing tomorrow.
> Nath

I like the first option (minimum set of prereqs in the PPD file) with the
optional install of Bundle::Bioperl.  This allows you to get the core PPM
made and added, then add Bundle::Bioperl PPM later when it is ready.

Christopher Fields
Postdoctoral Researcher - Switzer Lab
Dept. of Biochemistry
University of Illinois Urbana-Champaign 




More information about the Bioperl-l mailing list