Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re: Build.PL versus Makefile.PL

by grinder (Bishop)
on Feb 07, 2007 at 11:00 UTC ( #598727=note: print w/ replies, xml ) Need Help??


in reply to Build.PL versus Makefile.PL

Module::Build is now part of the Perl core, as of perl 5.9.4 or so. There are vague plans afoot to ship 5.10 some time this year, but as the perl5-porters are all volunteers, finding the necessary time to smoke out errors it may have is the hardest part. But it will be part of the standard distribution in the future.

I don't see what problem you have with skipping, especially if not doing so means you wind up with failures in the test suite because other users don't have the same setup as you. Just skip and be done with it. Either that, or specify them as prerequisites in the configuration (whether it be M::B or EU::MM so that they get downloaded beforehand).

I have recently taken over the maintenance of a couple of Win32-specific modules that were designed to be built with Module::Build. As it turns out, ActiveState doesn't bundle this module in its distribution, so the first thing I did was to switch back to EU::MM, so that if other people want to hack on it, they don't have to download Module::Build beforehand.

• another intruder with the mooring in the heart of the Perl


Comment on Re: Build.PL versus Makefile.PL
Re^2: Build.PL versus Makefile.PL
by syphilis (Canon) on Feb 07, 2007 at 11:17 UTC
    so the first thing I did was to switch back to EU::MM, so that if other people want to hack on it, they don't have to download Module::Build beforehand

    ++ for catering to us retro-progressives.

    Cheers,
    Rob
Re^2: Build.PL versus Makefile.PL
by ajt (Prior) on Feb 07, 2007 at 13:03 UTC

    I also posed the same question on use.Perl. I got a selection of opinions there too.

    There are advantages to Module::Build, in particular on platforms without compilers, e.g. Windows and it will apparently become the "standard". However the traditional method is more tested and far more common.

    In my case I just need to fiddle with the Makefile.PL and make it add optional tests. Basically I need a bunch of modules to test the code, they aren't actually need to use it, so I don't like making them pre-requisits if I can help it. I prefer to use Module::Build, it is easier for me but I'll have to maintain both...


    --
    ajt

      Why don't you just write your tests to skip if the required module is unavailable? I have many tests that basically do:

      my $can_run; my $reason; BEGIN { $can_run = eval { require My::Module; require Some::Other::Module; 1; }; $reason = $@; }; use Test::More; if (! $can_run) { $reason ||= "no reason given"; plan skip_all => "Prerequisite module not found ($reason)"; exit; } else { plan tests => 42; }; ...

      Also, I find the idea of "standard" amusing/confusing - does that mean that all modules currently using ExtUtils::MakeMaker will go out of existence or that people will hurry to Module::Build because nobody cares about compatibility with older versions of Perl anymore?

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://598727]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (7)
As of 2014-10-22 10:31 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (115 votes), past polls