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/"

Reply via email to