On Thu, Jul 20, 2006 at 10:24:49PM -0500, Andy Lester wrote: > Is there anything out there that will generate a tree of > dependencies, probably based on META.yml? > > I figure I can pass in Mason, Test::WWW::Mechanize and Catalyst and > get back a list of dependencies that those require. It would be the > entire tree, so like so: > > Test::WWW::Mechanize > Test::Builder > WWW::Mechanize > LWP::UserAgent > HTTP::Response > HTML::Form > HTML::Tree > Blah::Blah > Test::LongString > Test::Builder > Blah::Blah > > If it doesn't exist, I'll write it. I just don't want to reinvent > the wheel.
That's exactly what Module::Dependency will (now) do. Except that the output is upside down since I'm using a parents and children analogy. For example, to show one level of parent dependencies and two levels of child dependencies for ExtUtils::MakeMaker, while only showing each module once, you could say: $ pmd_dump.pl -f=key -h -p=1 -c=2 -U ExtUtils::MakeMaker Carp Cwd Data::Dumper Exporter ExtUtils::MM ExtUtils::MY ExtUtils::MakeMaker::Config ExtUtils::Manifest File::Path File::Spec VMS::Filespec strict vars ExtUtils::MakeMaker ExtUtils::Installed /bin/cpan/instmodsh ExtUtils::MM_AIX ExtUtils::MM_Any ExtUtils::MM_BeOS ExtUtils::MM_Cygwin ExtUtils::MM_DOS ExtUtils::MM_OS2 ExtUtils::MM_Unix ExtUtils::MM_VMS ExtUtils::MM_Win32 ExtUtils::MM_NW5 ExtUtils::MM_OS2 ExtUtils::MM_Unix ExtUtils::MM_QNX ExtUtils::MM_UWIN ExtUtils::MM_VOS ExtUtils::MM_VMS ExtUtils::MM_Win32 ExtUtils::MM_Win95 Module::Build::Compat Module::Build::Base Changing the -f=key to -f=filename and removing the -h would make each like look like: ExtUtils::MM_AIX filename: path/to/lib/site_perl/ExtUtils/MM_AIX.pm See http://search.cpan.org/~timb/Module-Dependency/pmd_dump.pl Tim.