Matt S Trout wrote:
> On Sat, Sep 27, 2008 at 07:53:07PM -0400, Michael G Schwern wrote:
>> Matt S Trout wrote:
>>> On Thu, Sep 25, 2008 at 10:01:19PM -0500, Ken Williams wrote:
>>>> Hi all,
>>>>
>>>> After much tireless work by Eric Wilhelm and lots of feedback from
>>>> patient & nonpatient users alike, I'm pleased to announce that version
>>>> 0.30 of Module::Build is now on CPAN.  This is the first non-beta
>>>> release in a long time.
>>>>
>>>> We did a *lot* of automated testing of third-party modules, with help
>>>> from various third party people like David Golden, to help minimize
>>>> any ill effects that might occur; nonetheless, if there are breakages
>>>> please let us know and we'll try to fix 'em.
>>> Can it bundle itself in inc/ yet or are you still expecting us to fix
>>> the entirety of the CPAN toolchain to work around cross-version breakages?
>> If something is broken, report it.  If there's an unfixed bug that wasn't
>> handled, say so.  If you want self-bundling, put it in the tracker and it
>> would be nice if you'd patch it.
> 
> I was told it was a planned feature when KWILLIAMS turned up on london.pm
> and yelled "FUD" because I was complaining about users' problems in the
> real world rather than the problems of an ideal user that somehow magically
> knows that Module::Build is special and they have to remember to update it
> or installations will inexplicably fail.
> 
> Never mind, I'll go back to waiting for it to be five years from now and the
> toolchain to have worked round this brain damage.

Ya know, wouldn't it be great if every time someone brought up DBIx::Class I
yelled about some old bug that bit me years ago and has long since been fixed
and told everyone to use Class::DBI?  And then when ever anyone asked me for
specifics so they can be fixed I'd just get surly?  Wouldn't that be great?

Matt, I've met a lot of people who don't use Module::Build because you said
not to use it.  They usually don't know why.  There's already enough FUD
flying around without adding to it.  Please either give us specifics we can
fix or stop it with the FUD.

As to the issue of having the right version of Module::Build, we haven't been
idle, though as Ken pointed out there's far higher priority work to be done.
In the interest of actually solving your problem, rather than just bitching
about it in an abstract manner every once in a while, here's your options.

Rather than a brute force "bundle your dependencies" there is now
configure_requires.  You can set configure_requires => { 'Module::Build' =>
X.YY } in your Build.PL and an up-to-date CPAN shell will do the right thing.
 We've pressed hard to make sure all the build tools honor configure_requires.
 The CPAN shell has done it for a year now.  CPANPLUS is still working on
getting a stable release out, so if you want to help, help with that.
Otherwise I don't want to hear about it.

If you still insist on bundling Module::Build, you don't need Module::Build to
help you with that.  Just do this:

1.  Install Module::Build into Your-Dist/inc/Module-Build.
    Use --install_base /path/to/Your-Dist/inc/Module-Build.


2.  Put this at the top of your Build.PL

my $bundled_mb = 0.30;  # or whatever it is

my $installed_mb = `$^X "-MModule::Build" -le "print Module::Build->VERSION"`;
chomp $installed_mb;
$installed_mb = 0 if $?;

unshift @INC, "inc/Module-Build/lib/perl5" if $bundled_mb > $installed_mb;

require Module::Build;


3.  Use Module::Build as normal.

Module::Build will remember the change to @INC and propagate it through the
rest of the build steps.

There, you have your bundling and a fuckton easier than in MakeMaker.  This
isn't rocket science, and I've seen you do rocket science.  I came up with it
this morning, you've been bitching for years.  Stop bitching, start thinking.


-- 
Reality is that which, when you stop believing in it, doesn't go away.
    -- Phillip K. Dick

Reply via email to