[Bioperl-l] Misspellings in Bundle::BioPerl

Nathan S. Haigh n.haigh at sheffield.ac.uk
Mon Oct 23 06:09:12 EDT 2006


Sendu Bala wrote:
> Nathan S. Haigh wrote:
>> Sendu Bala wrote:
>>> Nathan S. Haigh wrote:
>>>> Sendu/Chris - can you confirm to me which Bioperl modules are
>>>> essential
>>>> to Bioperl and thus should *not* go into Bundle::BioPerl? Is there any
>>>> reason for not putting *all* dependencies into the bundle?
>>> AFAIK, there are no essential external dependencies. Everything in
>>> %packages in Makefile.PL, for example, is optional.
>>>
>>> We had the discussion about making all the easy-to-install ones a
>>> forced requirement anyway (so that most things work out of the box),
>>> but perhaps we'll hold off on making such a change until after 1.5.2.
> >
>> How are they forced?
>
> They're not. Right now they're optional. I'm suggesting we might
> change that in the future.
> If you're asking how we /would/ force them, probably by adding
> PREREQ_FATAL to the WriteMakefile() call. As it is, Bioperl installs
> successfully (or should!) without its optional dependencies given in
> PREREQ_PM because make test succeeds (because tests skip ok when the
> optional dependency isn't there).
>
> I don't really know how CPAN discovers dependencies and auto-installs
> them before a dependent module though. Anyone care to explain?

I thought so! I misunderstood something earlier which confused me. Just
to clarify for my own sanities sake:

1) Currently all dependencies are optional.
2) All dependencies are in %packages
3) all these are passed to PREREQ_PM

As far as CPAN discovering dependencies, here is a snip from the CPAN FAQ's:
--snip--

    I installed a Bundle and had a couple of fails. When I retried,
    everything resolved nicely. Can this be fixed to work on first try?

    The reason for this is that CPAN does not know the dependencies of
    all modules when it starts out. To decide about the additional items
    to install, it just uses data found in the META.yml file or the
    generated Makefile. An undetected missing piece breaks the process.
    But it may well be that your Bundle installs some prerequisite later
    than some depending item and thus your second try is able to resolve
    everything. Please note, CPAN.pm does not know the dependency tree
    in advance and cannot sort the queue of things to install in a
    topologically correct order. It resolves perfectly well IF all
    modules declare the prerequisites correctly with the PREREQ_PM
    attribute to MakeMaker or the |requires| stanza of Module::Build.
    For bundles which fail and you need to install often, it is
    recommended to sort the Bundle definition file manually.

--snip--

Therefore, recent modifications to Makefile.PL should result in a fully
operational Bioperl installation, if installed via CPAN. Although only
Bioperl 1.4 is available via CPAN currently. It is possible to upload a
developer release to CPAN which can only be ownloaded via CPAN if
specifically asked for - would be good for 1.5.x.:
--snip--

    How do I install a "DEVELOPER RELEASE" of a module?

    By default, CPAN will install the latest non-developer release of a
    module. If you want to install a dev release, you have to specify
    the partial path starting with the author id to the tarball you wish
    to install, like so:

        cpan> install KWILLIAMS/Module-Build-0.27_07.tar.gz

    Note that you can use the |ls| command to get this path listed.

--snip--

HTH
Nath


More information about the Bioperl-l mailing list