On Jun 5, 2007, at 7:42 PM, James E Keenan wrote:

Is there any reason *not* to do so?

Yes. Second-order dependencies are beyond your control. You will have false dependencies when an underlying module changes.

Say that Mech has dependency on HTML::Wango, which in turn has a dependency on Test::Tango. So my dependencies are listed as

        HTML::Wango => 1.00,
        Test::Tango => 1.00,

SCENARIO 1: The maintainer of Foo::Wango decides that Test::Tango is unnecessary, and does without it. He released HTML::Wango 1.02. Someone installing Mech must now install HTML::Wango and Test::Tango, although NOTHING in the chain requires Test::Tango.

SCENARIO 2: HTML::Wango uses some new feature of Test::Tango 2.00, and thus requires it. Your helpful list of dependencies is out of date, because although you say that you are requiring 1.00, HTML::Wango requires 2.00.

SCENARIO 3: Combine 1 & 2.

The real solution is either: 1) for the CPAN shell to use the META.yml files to determine the chain of dependencies ahead of time. Also, you don't always have to have the "ask" option on prereqs. I think most people DON'T have it set to "ask".

xoxo,
Andy


--
Andy Lester => [EMAIL PROTECTED] => www.petdance.com => AIM:petdance




Reply via email to