[Bioperl-l] Optional 'circular dependency' ok?

Chris Fields cjfields at uiuc.edu
Wed Sep 20 16:06:51 UTC 2006

> My view is that fringe dependencies (as defined by those imposed
> solely by fringe modules) don't have to be listed in Makefile.PL and
> instead may just be documented in the module itself.
> The reason is that I think there is a balance that needs to be struck
> between easing the installation of a 'running' version of Bioperl by
> minimizing the attention necessary for installing dependencies on one
> hand, and not needlessly cluttering people's machines with software
> that will never get used on the other hand.
> 	-hilmar

The Makefile.PL doesn't require that the dependencies are installed if using
'perl Makefile.PL', but it does warn which modules won't work for each
uninstalled dependency, which I think is useful.  It lets the user know, up
front, what works and what doesn't.  I'm not sure how it is handled when
installing from CPAN; does installing Bioperl crash and burn if
Bundle::Bioperl isn't installed first?

I think there could be a nice compromise here.  If we can separate modules
based on how reliant normal Bioperl functionality is based on their
presence, could we set up the Makefile to test those that are absolutely
required (real dependencies) vs. those that are not (optional)?  If we could
do that, we could test for the optional Ensembl API (and whatever else falls
into this category) but not have it installed automatically, yet one would
still get the warning that Foo module with bar() method wouldn't work.

BTW, I googled this to see how CPAN handles circular dependencies.
Apparently not very well.

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


More information about the Bioperl-l mailing list