63. Beware a race condition
my ($id) = $dbh->selectrow_array("
SELECT id FROM queue
WHERE status = 0 LIMIT = 1
");
$dbh->do("
UPDATE queue SET status = 1
WHERE id = ?
", undef, $id);
72. Bonus features
my $worepan = WorePAN->new(
root => 'path/to/a/CPAN/mirror/',
cleanup => 0,
);
my $authors = $worepan->authors;
my $modules = $worepan->modules;
my $file = $worepan->files;
my $dists = $worepan->latest_distributions;
84. Some of them are
badly broken.
"versions" : {
"lib/Data/Phrasebook.pm" : "use vars qw($VERSION);¥n",
"lib/Data/Phrasebook/Debug.pm" : "use vars qw($VERSION);¥n",
"lib/Data/Phrasebook/Generic.pm" : "use vars qw($VERSION);¥n",
"lib/Data/Phrasebook/Loader.pm" : "use vars qw($VERSION);¥n",
"lib/Data/Phrasebook/Loader/Base.pm" : "use vars qw($VERSION);¥n",
"lib/Data/Phrasebook/Loader/Text.pm" : "use vars qw($VERSION);¥n",
"lib/Data/Phrasebook/Plain.pm" : "use vars qw($VERSION);¥n",
"lib/Data/Phrasebook/SQL.pm" : "use vars qw($VERSION);¥n",
"lib/Data/Phrasebook/SQL/Query.pm" : "use vars qw($VERSION);¥n"
},
85. Error is not a stash.
"error" : {
"easily_repackageable" : "easily_repackageable_by_fedora",
"easily_repackageable_by_fedora" : "fits_fedora_license",
"metayml_conforms_spec_current" : [
"1.4",
"Expected a map structure from data string or file. [Validation: 1.4]"
],
"metayml_conforms_to_known_spec" : [
"1.0",
"Expected a map structure from data string or file. [Validation: 1.0]"
],
"no_pod_errors" : " home cpants tmp analyze 11442 8001be43fb65..."
}
87. There are much more
to do.
- JSON API for metacpan.org and so on.
- Email Reporting like CPAN Testers
- Evaluate new Kwalitee indicators
- New metrics like portable filename
- Blog about recent tendency
- More comprehensive tests
- Analysis per perl version/architecture
- Cover Perl::Critic, CPAN::Critic::Module::Abstract
- 35 RT tickets and several github isses