* brian d foy <[EMAIL PROTECTED]> [2007-11-15 22:40]:
> If Straps is the only thing that you use, then that's the only
> thing you should list. If Straps has dependencies, it lists
> those.
> 
> Test::Prereq would see what the Straps distro provides and only
> remove those from the prereq list. If Straps doesn't provide
> anything else, it doesn't remove anything else.
> 
> I'm not sure why you think it's some other way.

I don’t know what exactly Test::Prereq does. I checked the docs
but they don’t say precisely how it behaves.

Anyway, irrespective of what ::Prereq does, here’s what I mean:

    # found in Something.pm
    use Test::Harness;

    # found in Other.pm in the same distro
    use Test::Harness::Straps;

This distro should list Test::Harness *and* Test::Harness::Straps
as dependencies, even though (at the time of writing) they are
both in the same distro.

Another example:

    use Params::Validate;
    use Scalar::Util;

This distro should, again, list both Params::Validate *and*
Scalar::Util as prereqs – even though Params::Validate also
depends on Scalar::Util. At some point in the future, P::V
might cease to depend on S::U, but *this* distro will still
depend on it.

So in order to make everything work robustly, distros should
explicitly list every single module they explicitly use – no
shortcuts, no implications.

Regards,
-- 
Aristotle Pagaltzis // <http://plasmasturm.org/>

Reply via email to