Re: Testing Database Schema

2004-07-22 Thread Ask Bjoern Hansen
[EMAIL PROTECTED] (Tony Bowden) writes:

[...]
 The two best ideas we've had so far are to either run the SQL in the
 code against a temporary database, and then compare both SHOW CREATE
 TABLE outputs, or to use something like SQL::Translator to convert both
 lots of SQL to a common format. Both seem much too cumbersome, however.
 
 Anyone have any brighter ideas?

One variation that might work (and if it does, it'd also work on other
databases) would be to use DB::Introspector. 

  http://search.cpan.org/dist/DB-Introspector/


 - ask

-- 
ask bjoern hansen, http://www.askbjoernhansen.com/ !try; do();


Re: [OT] Re: Single Sign-on Re: Perl Passport?

2004-07-22 Thread Ask Bjoern Hansen
[EMAIL PROTECTED] (Darren Chamberlain) writes:

  As I figured it out neither...
  
  Reason: auth.perl.org is part of the SSO (Single Sign-on) that was
  created especially for the perl.org domain and its sub-domains.
  
  As far as I know it isn't a service that is publicly available. And I
  also don't think that Ask or Robert will give away the source, as it
  is build specifically for perl.org and it's setup.
 
 Is that not http://svn.develooper.com/combust/auth/trunk/ ?  You need a
 perl.org account to access it.

(you can also use guest/guest).

The version in that directory is the new version I've been working on.
Hopefully we'll switch auth.perl.org over to use it not long after
OSCON.

Some of the fun things with the new system is that it supports sites
on other domains properly, doesn't use a universal id and I plan to
make it support multiple authentication services.

The client library (perl only for now) is at:
  http://search.cpan.org/dist/Sau-Client/

There are some interesting links at the bottom of 
  http://logintest.perl.org/doc/design_notes.html


 - ask

-- 
ask bjoern hansen, http://www.askbjoernhansen.com/ !try; do();


CPANTS (was Re: Script to find Module Dependency Test Results...)

2004-07-22 Thread Thomas Klausner
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 Canalyse 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-:+-$-gprint$_.$/}
--- #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


CPANTS preview

2004-07-22 Thread Thomas Klausner
Hi!
  
I ran CPANTS today, you can view results here:
  
http://cpants.dev.zsi.at/
( or http://test1.dev.zsi.at if DNS isn't updated..)

in /metrics there is a yaml-file for each dist
cpants.db (or cpants.db.gz) is a SQLite DB file

Oh, there might be a bug, because 100 dists didn't get any kwalitee when at
least some of them should...

Max Kwalitee is 10, which is reached by 99 dists.

dist can get kwalitee for:

 extracts_nicely (i.e. in a proper subdir, not in current dir)
 has_version
 no_symlinks 
 permissions_ok  (i.e. all files are read/writable by extracting user)
 has_readme
 has_manifest
 has_meta_yml
 has_buildtool   (either Makefile.PL or Build.PL)
 no_pod_errors
 is_prereq   (is listed as PREREQ by at least 3 other dists)


sqlite select kwalitee,count(kwalitee) as cnt from kwalitee group by
 kwalitee order by kwalitee;
kwaliteecnt
--  --
0   100   
1   1
2   6 
3   28
4   80
5   123   
6   482   
7   1986  
8   3433  
9   1365  
10  99



-- 
#!/usr/bin/perl   http://domm.zsi.at
for(ref bless{},just'another'perl'hacker){s-:+-$-gprint$_.$/}


Re: Testing Database Schema

2004-07-22 Thread Tim Bunce
On Mon, Jul 19, 2004 at 05:00:05AM -0700, Ask Bjoern Hansen wrote:
 [EMAIL PROTECTED] (Tony Bowden) writes:
 
 [...]
  The two best ideas we've had so far are to either run the SQL in the
  code against a temporary database, and then compare both SHOW CREATE
  TABLE outputs, or to use something like SQL::Translator to convert both
  lots of SQL to a common format. Both seem much too cumbersome, however.
  
  Anyone have any brighter ideas?
 
 One variation that might work (and if it does, it'd also work on other
 databases) would be to use DB::Introspector. 
 
   http://search.cpan.org/dist/DB-Introspector/

There's also http://search.cpan.org/dist/SQL-Translator/
 and http://search.cpan.org/dist/DBIx-DBSchema/

Tim.


Re: CPANTS preview

2004-07-22 Thread Tim Bunce
On Thu, Jul 22, 2004 at 04:28:08PM +0200, Thomas Klausner wrote:
 Hi!
   
 I ran CPANTS today, you can view results here:
   
 http://cpants.dev.zsi.at/
 ( or http://test1.dev.zsi.at if DNS isn't updated..)
 
 in /metrics there is a yaml-file for each dist
 cpants.db (or cpants.db.gz) is a SQLite DB file
 
 Oh, there might be a bug, because 100 dists didn't get any kwalitee when at
 least some of them should...
 
 Max Kwalitee is 10, which is reached by 99 dists.

The DBI gets 9. The one failure is permissions_ok:

  permissions_ok  (i.e. all files are read/writable by extracting user)

Why is that a kwalitee issue? I don't think it warrants impacting the kwalitee.

Tim.

p.s. It'll cause problems for anyone using a source code control
system that keeps files read-only - like RCS and CVS do.
That's the reason the DBI has many read-only files.
(I use svn now, but used to use RCS.)


Re: CPANTS preview

2004-07-22 Thread Paul Johnson
On Thu, Jul 22, 2004 at 05:25:38PM +0100, Nicholas Clark wrote:

 On Thu, Jul 22, 2004 at 04:28:08PM +0200, Thomas Klausner wrote:
  Hi!

  I ran CPANTS today, you can view results here:
 
 Oooh. Nice

Agreed.  I think it is a great start.  Thanks very much for your work.

  Max Kwalitee is 10, which is reached by 99 dists.
 
 Will it go up to eleven soon? :-)

At the moment the focus seems very much on packaging.  That's fine, but
it does mean that correctly packaged junk looks pretty good.  In time,
some more metrics would be good.  Some suggestions:

 - How do the CPAN testers reports look?
 - What does cpanratings think?
 - Some analysis of the RT action.
 - Number of releases, perhaps in relation to the size of the code.
   More releases expected for larger code.
 - Static analysis.
 - Test coverage.

Some of those will be a lot harder than others, and the metrics will
obviously need to be weighted, but I just wanted to throw out a few
thoughts from the safety of the peanut gallery.

-- 
Paul Johnson - [EMAIL PROTECTED]
http://www.pjcj.net