On 2011.11.30 2:04 AM, David Golden wrote: > On Wed, Nov 30, 2011 at 12:39 AM, Michael G Schwern <schw...@pobox.com> 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"