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