I'm interested in hard problems.
Recently, I've started thinking a lot about what CP6AN might look like.
Class::MOP and the Perl 6 Metamodel make me more excited than I'd like to admit.
Also expect occasional wordy technology-related rantings.
Ovid recently asked what should be a simple question: How should we install tests along with modules?
Of course, this is not a simple question at all and breaks down into several distinct problems. The first is actually "How do we test an installed module?"
kwilliams responded with the brilliant idea of a Module::Build retest action, that would look for modules in @INC instead of blib.
Unfortunately, this doesn't completely solve our first problem.
Why? Because way too many tests are written with the assumption that they will be running from within an unpacked module distribution. Which means they require context outside of the installed
Off the top of my head, the kinds of tests that have this problem include
You could argue that any of these that are abstracted into Test::Whatever modules have enough of a layer of indirection to account for however you test installed modules. But I think that misses the point. A list that large is not evidence of special cases. It's evidence that it's important for tests to have more than the
One solution that sucks could be a way of marking which tests assume they're being run in a distribution and which ones don't care. That would be horribly tedious.
Maybe this is evidence that we need a metadata database to go with our installed modules. We already have a PACKLIST that sorta kinda serves as an installed module database. The problem is, now we need an API for tests to query that database.
Maybe we're going about this wrong. Tests need a distribution. Modules work in a distribution and out of a distribution. It's common to develop modules inside a distribution.
Why not install an entire module distribution?
Have a lib-like directory which is searched for entire distributions rather than just
Running modules from within distributions? Doesn't that sound like PAR?