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

Reply via email to