[Bioperl-l] "progress": useful changes vs. "shiny new thingie"

Sendu Bala bix at sendu.me.uk
Wed Nov 15 14:33:33 EST 2006


Aaron J Mackey/PharmRD/GSK wrote on 11/15/2006 01:29:30 PM:
> What actual needs prompted the change from ExtUtils::MakeMaker to 
> Module::Build?

For the old Makefile.PL:
At the time I started, script installation was broken. Documentation
installation hasn't worked in a very long time. Handling of true
requirements and optional pre-requisites is completely inadequate. It
can't generate a suitable META.yml, and leaves the package non-ideal for
distribution on CPAN.

It was also a nightmare keeping the Makefile.PL scripts in each cvs 
module (live, run, db, network) in sync with each other. Now they can 
have simple module-specific Build.PL scripts, with all the advanced 
functionality in a rarely-updated and unchanged-between-modules 
ModuleBuildBioperl.pm.


> It seems that the switch was made without a complete understanding of
> all the bits and bobs in the existing Makefile.PL

I hope that's not the case; I tried to understand everything. Please let
me know if I've missed something. (To tidy up a question I asked about 
the symlink script, I've resolved that and the symlink should also work 
given the proviso outlined in the POD for maintenance/symlink_script.pl)


> For one, the Bio::DB::GFF Makefile.PL is independent (yet triggered 
> by the main Makefile.PL) such that users can choose whether to test 
> the install vs. a live database or not.

The Makefile.PL in Bio/DB? As far as I can tell, it achieves no such
functionality. Letting the user choose to do live database tests was a
function of the main Makefile.PL, which I have carried over to the new
Build.PL. (And made it better in the process.)


> This is an example of encapsulation: the specializied testing/install
> process for a module is kept with the module, and not in the
> monolithic main script.

 From a maintenance point of view, it seems to me to be much easier if 
all install-related things are in one place rather than scattered where 
you might miss things.


> For two, it seems that the ability to install bp_*.pl scripts was 
> "lost" in the transition.

What makes you say that? It certainly shouldn't be. What should happen 
is you get asked what scripts you'd like to install (the same question 
as before), but again its done in a much nicer way.

(The major difference, I suppose, is that scripts_temp is no longer 
generated; prior to "./Build install" you'll find the scripts in 
blib/script/)


> For three, there's certainly a lot more that I can't remember right
> now.

Please try and remember. I spent a lot of time trying to make sure that 
Build.PL does everything Makefile.PL did, but much much better.


Thank you,
Sendu.


More information about the Bioperl-l mailing list