Craig A. Berry wrote:
>> The important thing is the core change from running the ext/ tests manually 
>> to
>> using each module's own "make test".  This will make integrating and
>> developing dual life modules far easier by eliminating a key difference in 
>> how
>> ext/ and CPAN modules are developed.
> 
> Hmm.  This only makes any difference for modules that distribute their
> own libraries that are only used for testing, right?  It looks like
> ext/Test-Harness/t/lib is the only one like that currently.  Add
> Module::Build and ExtUtils::MakeMaker when they get moved to ext/,
> maybe a couple others.

It's a general purpose problem that effects all the ext/ modules.  Most tests
have some special code to accommodate the duality of core vs CPAN testing.
Usually its just this:

BEGIN {
    if ($ENV{'PERL_CORE'}){
        chdir 't';
        unshift @INC, '../lib';
    }
}

But it will effect any test that needs to know its position relative its
source tree, usually to read another file or load a module in the source tree.
CPANPLUS and CPAN are good examples off the top of my head.  But it's not
limited to just finding stuff in their own t/lib.

Rather than look at this as "its an exception for a few modules in ext" turn
it around.  All the dual lifed modules currently scattered around lib/ are the
exceptions.  If we can pull them back together and put them in ext it will
make integration easier both for p5p and the CPAN maintainers.  This is the
base assumption I'm working under.

The more we do this, the more we're going to find "exceptions", the more hacks
we have to put into place and what's going to wind up happening is we're not
going to want to move things into ext.  Making ext/ as much like the normal
module process as possible smooths out the transition.


-- 
Being faith-based doesn't trump reality.
        -- Bruce Sterling

Reply via email to