[Catalyst] Is it normal to have lots of trouble installing catalyst?

Brandon Black blblack at gmail.com
Wed Feb 8 21:16:39 CET 2006


On 2/8/06, Nathan Kurz <nate at verse.com> wrote:
> On Wed, Feb 08, 2006 at 01:48:35PM -0500, Christopher H. Laco wrote:
> > <rant_bit_0x1/>
> > I'm getting quite tired of the "requirements" sections of modules
> > meta.yml/makefile.pl/build.pl being filled with things only related to
> > the test suites, and not the core module I'm trying to install.
> >
> > I used to think requiring people to pass tests in order to consider
> > "make install" to continue install was a good thing. I was wrong.
> > <rant_bit_0x0/>
> >
>
> I don't think the problem is so much requiring a successful 'make
> test' before 'make install' can be used, but with the tests
> themselves.  While testing is a Good Thing, tests that have external
> dependencies should be made optional rather than required.
>
> Stil waiting for the day when I am made king,
>

The problem there is that sometimes no effective test can be done
without external dependecies.  You can see a microcosm of this with
the DBIx::Class tests.  In order for DBIx::Class to do any sort of
useful testing, it obviously needs at least one supported database
server and DBI / DBD::xxx installed.

SQLite was picked for obvious reasons (no need to install seperate
software outside of CPAN like you would with other databases).  In
real use, DBIx::Class does not require SQLite, it only requires the
neccesary parts for your database vendor of choice.  But the tests
must require SQLite in order to be effective.

The general case is that some software is designed to work in a
pluggable way with any of N optional external packages, and cannot be
effectively tested without at least one of the N installed already. 
The general solution is probably that the package should include one
bundled-in example of N to use for its own tests.

But given the choice between requiring SQLite for tests, bundling a
frozen (for each DBIC release) copy of SQLite into DBIx::Class (and
introducing xs stuff into an otherwise pure-perl distribution,
managing our local copy, etc), or building a DBIx::Class::PerlDB
that's a lot like SQLite and comes with DBIx::Class for testing
purposes and simple databases,  depending on an external SQLite seems
like the cleanest solution.

-- Brandon



More information about the Catalyst mailing list