Hi! On Mon, Jul 19, 2004 at 12:12:39AM -0400, Robert Rothenberg wrote: > I have a prototype Perl script that will determine the dependencies of a > given CPAN distribution, and then check CPAN Testers for any failure > reports of that distro or dependent distros for a given platform.
Sounds a little bit like CPANTS, the CPAN Testing Service. I'll do a talk on it at YAPC::Europe, so if you're there we could talk about joining forces. If you're not there, we can use email :-) One downside of CPANTS is that it cannot actually run code (for various reasons), so we might not be able to actually work together. But I don't know how your script is working, so... BTW, I've currently found some time to do some work on CPANTS. It's not ready for release, but interested parties can take a look at http://svn.zsi.at:1000/repos/Module-CPANTS-Generator/trunk/ But beware: docs are missing and/or false, so it might be better to wait a little bit... Just now I'm generating stats, which will probably take some time to complete. I'll post links to results as soon as they are available. As I've got some time right now, I'll post a short overview of how CPANTS is working: *) fetch all dist from CPAN using CPANPLUS (examples/fetch_cpan.pl) *) analyse all dists using the generator in Module::CPANTS::Generator::* by running the C<analyse> method in the generators. this step generates a yaml-file for each dist in dir metrics. (examples/anaylse_dists.pl) *) calculate kwalitee by looking at the yaml-metrics, adding the kwalitee infos to the yaml file (examples/calc_basic_kwalitee.pl) *) generate a SQLite DB from the yaml-metrics (examples/yaml2sqlite.pl) *) calculate more kwalitee. This time we can use the sqlite-DB do to cross-referencing. (eg in Generators::Prereq I check if a dist is required by three or more other dists. If it is, it get's more kwalitee (although I'm not sure if this is a good metric..)) (examples/calc_complex_kwalitee.pl) When all is finished there is a yaml file for each dist and a SQLite-DB containting all the infos in an easy-to-query format. I've attached the metrics yaml file for Acme::Bleach I generated during testing... Feedback/Patches welcome... -- #!/usr/bin/perl http://domm.zsi.at for(ref bless{},just'another'perl'hacker){s-:+-$"-g&&print$_.$/}
--- #YAML:1.0 dist: Acme-Bleach-1.12 distribution: dist_without_version: Acme-Bleach extension: tar.gz extractable: 1 extracts_nicely: 1 package: Acme-Bleach-1.12.tar.gz version: 1.12 version_major: 1 version_minor: 12 files: build_pl: 0 count_bad_permissions: 0 count_dirs: 4 count_files: 19 count_symlinks: 0 list_bad_permissions: '' list_dirs: demo,lib,lib/Acme,t list_files: ! >- Changes,MANIFEST,Makefile.PL,README,demo/demo_DWIM.pl,demo/demo_bleach.pl,demo/demo_bleach_c.pl,demo/demo_bleach_eng.pl,demo/demo_bleach_lisp.pl,demo/demo_bleach_sh.pl,demo/demo_empty.pl,demo/demo_morse.pl,demo/empty,lib/Acme/Bleach.pm,lib/Acme/DWIM.pm,lib/Acme/Morse.pm,t/DWIM.t,t/bleach.t,t/morse.t list_symlinks: '' makefile_pl: 1 manifest: 1 meta_yml: 0 ninja: 0 readme: 1 signature: 0 kwalitee: extracts_nicely: 1 has_buildtool: 1 has_manifest: 1 has_meta_yml: 0 has_readme: 1 has_version: 1 is_prereq: 0 kwalitee: 7 no_pod_errors: 0 no_symlinks: 1 permissions_ok: 1 pod: errors: 3 release: date: Tue May 22 02:17:11 2001 epoch: 990490631 size: packed: 4299 unpacked: 11479