* 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/>