On 3/31/06, Adam Kennedy <[EMAIL PROTECTED]> wrote: > demerphq wrote: > > So it seems to be that you have four (five?) phases: > > > > Pre-Build > > Build > > Test > > Install > > (Post Install Test?) > > > > Something like dieing on a use warnings statement in the makefile or > > whatever to me constitutes a pre-build failure, not an install > > failure. > > I'd consider that to be just a case of semantics. > > I could well argue it doesn't "build" either, it $smaller_divisions_again. > > From a top level tasks perspective, Module::Build has two primary roles. > > 1. Package the module into a distribution. > 2. Install the distribution onto a system > > Those 4(5) steps are all part of the "install" task. > > Most end users don't see the "build" stage as being somehow distinct, > all they want to do is "install a module".
If you zoom out far enough there is only one objective: make the code work. Which to me just demonstrates that that level of zoom is useless. Likewise we can zoom in really far and get into even smaller divisions. But at that point you are going to find that many modules dont do anything in some or all of those divisions so its arguable that such a fine grain isnt _generally_ useful either. Wheras the levels i just outlined covers pretty well every distribution (that comes with tests) out there. And i think most users of CPAN are very comfortable with these stages and also see them as distinct. They map pretty well exactly onto the standard mantra: 1. perl Makefile.PL (prebuild) 2. make (build) 3. make test (test) 4. make install (install) Anyway, I think that PPM is an "installer" by your definition, but I dont think that either ExtUtils::MakeMaker or Module::Build are. Module::Build actually does not know how to install anything. It leaves it totally up to ExtUtils::Install. Likewise ExtUtils::MakeMaker doesnt know how to install anything, as it also leaves it up to ExtUtils::Install. Just like neither know how to test anything, they leave that up to Test::Harness and friends. If TH starts acting strangely are you going to send bug reports to the Module::Build guys about how their "installer" doesnt work? Similarly if somebody has an error in their Build.PL or Makefile.PL are you going to say that the "installer" doesnt work? Anyway, i personally find over-abstraction (its all just installation) and under-abstraction (there are a million steps to go through) just lead to confusion and misunderstanding which I think is less than desirable. Yves -- perl -Mre=debug -e "/just|another|perl|hacker/"