On 2011.11.30 2:04 AM, David Golden wrote:
> On Wed, Nov 30, 2011 at 12:39 AM, Michael G Schwern <[email protected]> wrote:
>> There is a 3rd choice, which brings us full circle to where this discussion
>> started. We write TB2::Object [1] to select load Mouse if its available,
>> TB2::Mouse otherwise. That way TB2 classes are compatible with Mouse just in
>> time. They also get a performance kick.
>>
>> The core gets the "for internal use only" marked TB2::Mouse as previously
>> discussed.
>
> Without commenting on the rest of the plan, to which I want to give a
> little more thought, it occurs to me TB2 as released to CPAN could
> explicitly depend on Mouse, so that any TB2 installed (or upgraded)
> via CPAN client gets Mouse installed (or upgraded).
Unfortunately, that would be a circular dependency between Mouse and TB2
unless...
* Mouse never depends on Test::More newer than the one which shipped with
5.8.1 (0.47).
This is a bit much to ask of the Mouse folks. They're already using 0.88 and
I don't want to make their life harder to make mine easier.
* Mouse bundles Test::More.
A distinct possibility. You'd put all the .pm files into t/lib and then C<use
lib "t/lib"> in each test. Modules used to do this all the time, when we
weren't sure about this whole new fangled Test::More thing and module authors
complained bitterly about having to add a dependency just for testing.
--
But there's no sense crying over every mistake.
You just keep on trying till you run out of cake.
-- Jonathan Coulton, "Still Alive"