# from David Golden
# on Saturday 27 October 2007 13:15:

>On 10/27/07, Eric Wilhelm <[EMAIL PROTECTED]> wrote:
>> I think we should take this as an opportunity to consider how many
>> redundancies are "suggested" for Build.PL "for the sake of
>> compatibility."
>>
>>  
>> http://www.nntp.perl.org/group/perl.module.build/2007/09/msg902.html
>>
>> The publishing author is (hopefully) using an up-to-date
>> Module::Build. The version on the installation machine doesn't
>> matter quite so much.
>
>I think the version on the installation machine matters a lot.  I
>don't think that's going to be better unless Module::Build goes the
>Module::Install route and starts bundling a minimal installer in inc/

If the Build.PL file is generated by the publisher, the install M::B 
version doesn't matter *so much* -- it just has to be verified by the 
Build.PL.

If it does matter, then configure_requires is absolutely required, which 
is also true of MakeMaker.

A generated Build.PL can force/check configure_requires, etc (or at 
least bail-out in the presence of an out-of-date toolchain.)

>Frankly, I'm coming around to the Module::Install inc/ idea as the way
>to work around these toolchain constraints -- e.g. Devel::CheckLib.
>It's a hack, but it's a hack that seems to work.

It only works if the bundler is aware of any bugs that they have bundled 
and is available to do a re-release.  The Module::Install model falls 
down at the first dependency by an absentee author who isn't available 
to roll a re-release to fix any bundled critical bugs (e.g. on a given 
platform, etc.)

An autogenerated Build.PL and/or configure_requires will reduce the 
amount of bundled code (you bundle only what is needed to check/ensure 
a compatible toolchain), which reduces the chance of bundled bugs.

>> I would rather just assume proper configure_requires support, but
>> yeah -- that's not going to be universal for five years or something,
>> right?  (Barring an aggressively self-updating cpan client and a
>> scheduled breakage of the index files forcing an update to said
>> self-updating client.)

>I think configure_requires is a long-term plan, not a short-term fix.

How long-term do you want it to be?  The aggregate of short-term fixes 
is going to eventually cause many Build.PL files to get arbitrarily 
(and ad-hoc) complicated.

--Eric
-- 
"Beware of bugs in the above code; I have only proved it correct, not
tried it."
--Donald Knuth
---------------------------------------------------
    http://scratchcomputing.com
---------------------------------------------------

Reply via email to