summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xcpan-graph.pl81
-rwxr-xr-xgen-gdf.pl60
-rw-r--r--lib/CPAN/Testers.pm95
-rw-r--r--lib/CPAN/cpants.pm1431
-rw-r--r--lib/CPAN/mapcpan.pm145
5 files changed, 1812 insertions, 0 deletions
diff --git a/cpan-graph.pl b/cpan-graph.pl
new file mode 100755
index 0000000..c2e5324
--- /dev/null
+++ b/cpan-graph.pl
@@ -0,0 +1,81 @@
+#!/usr/bin/perl -w
+use strict;
+use feature ':5.10';
+
+use Getopt::Long;
+
+use lib ( 'lib' );
+use CPAN::Testers;
+use CPAN::cpants;
+use CPAN::mapcpan;
+
+my $options = GetOptions(
+ 'dbtest=s' => \my $db_test,
+ 'dball=s' => \my $db_all,
+ 'dbout=s' => \my $db_out,
+);
+
+my $sqltest
+ = CPAN::Testers->connect( "dbi:SQLite:dbname=" . $db_test, '', '' );
+my $sqlall = CPAN::cpants->connect( "dbi:SQLite:dbname=" . $db_all, '', '' );
+my $dbmap = CPAN::cpanmap->connect( "dbi:SQLite:dbname=" . $db_out, "", "" );
+
+$dbmap->deploy;
+
+my $dists = $sqlall->resultset( 'dist' )->search( { is_core => 0 } );
+
+while ( my $dist = $dists->next ) {
+ print "processing ".$dist->package ."... ";
+ my $map_package = $dbmap->resultset( 'packages' )
+ ->find_or_create( { dist => $dist->dist, } );
+
+ my $modules
+ = $sqlall->resultset( 'modules' )->search( { dist => $dist->id } );
+ while ( my $module = $modules->next ) {
+ my $map_module = $dbmap->resultset( 'modules' )->find_or_create(
+ { module => $module->module,
+ in_dist => $map_package->id,
+ }
+ );
+ }
+
+ my $tests_pass = $sqltest->resultset( 'reports' )
+ ->count( { distribution => $dist->dist, status => 'PASS' } );
+ my $tests_fail = $sqltest->resultset( 'reports' )
+ ->count( { distribution => $dist->dist, status => 'FAIL' } );
+ my $total_tests = $tests_pass + $tests_fail;
+ $total_tests = 1 if $total_tests == 0;
+ my $tests_success = int( ( $tests_pass / $total_tests ) * 100 );
+
+ my $author = $sqlall->resultset( 'author' )->find( $dist->author );
+ $map_package->update(
+ { tests_success => $tests_success,
+ author => $author->pauseid,
+ released => $dist->released,
+ }
+ );
+
+ my $deps = $sqlall->resultset( 'uses' )->search(
+ { dist => $dist->id,
+ in_code => 1,
+ in_tests => 0
+ }
+ );
+ while ( my $dep = $deps->next ) {
+ my $dist_dep = $sqlall->resultset( 'dist' )->find( $dep->in_dist );
+ next
+ if !defined $dep->in_dist
+ || $dep->in_dist == 0
+ || $dist_dep->is_core;
+ my $pack_dep = $dbmap->resultset( 'packages' )
+ ->find_or_create( { dist => $dist_dep->dist, } );
+ my $node_from = $dbmap->resultset( 'edges' )->create(
+ { dist_from => $map_package->id,
+ dist_to => $pack_dep->id
+ }
+ );
+ }
+ say "done";
+}
+
+say "importing CPAN data is terminated"; \ No newline at end of file
diff --git a/gen-gdf.pl b/gen-gdf.pl
new file mode 100755
index 0000000..72ce349
--- /dev/null
+++ b/gen-gdf.pl
@@ -0,0 +1,60 @@
+#!/opt/perl/bin/perl -w
+use strict;
+use feature ':5.10';
+use Getopt::Long;
+
+use lib ( 'lib' );
+use CPAN::mapcpan;
+
+my $options = GetOptions(
+ 'out=s' => \my $output_gdf,
+ 'dbmap=s' => \my $db_map
+);
+
+my $dbmap = CPAN::cpanmap->connect( "dbi:SQLite:dbname=" . $db_map, "", "" );
+
+my $array_edges;
+my $hash_nodes;
+
+my $packages = $dbmap->resultset( 'packages' )->search;
+say "create nodes";
+while ( my $package = $packages->next ) {
+ $hash_nodes->{ $package->id } = {
+ tests => $package->tests_success,
+ name => $package->dist,
+ author => $package->author,
+ date => $package->released,
+ };
+}
+
+my $edges = $dbmap->resultset( 'edges' )->search;
+say "create edges";
+while ( my $edge = $edges->next ) {
+ push @$array_edges,
+ {
+ node1 => $edge->dist_from,
+ node2 => $edge->dist_to,
+ directed => 'true',
+ };
+}
+
+#my $out = "nodedef>name VARCHAR,label VARCHAR,tests INTEGER,author VARCHAR,date VARCHAR\n";
+#foreach my $key ( keys %$hash_nodes ) {
+ #$out
+ #.= $key . ","
+ #. $hash_nodes->{ $key }->{ name } . ","
+ #. $hash_nodes->{ $key }->{ tests } . ","
+ #. $hash_nodes->{ $key }->{ author } . ","
+ #. $hash_nodes->{ $key }->{ date } . "\n";
+#}
+#$out .= "edgedef>node1 VARCHAR,node2 VARCHAR,directed BOOLEAN\n";
+#foreach my $edge ( @$array_edges ) {
+ #$out
+ #.= $edge->{ node1 } . ","
+ #. $edge->{ node2 } . ","
+ #. $edge->{ directed } . "\n";
+#}
+
+#open my $fh_gdf, '>', $output_gdf or die $!;
+#print $fh_gdf $out;
+#close $fh_gdf; \ No newline at end of file
diff --git a/lib/CPAN/Testers.pm b/lib/CPAN/Testers.pm
new file mode 100644
index 0000000..2159ba7
--- /dev/null
+++ b/lib/CPAN/Testers.pm
@@ -0,0 +1,95 @@
+package CPAN::Testers::reports;
+use base 'DBIx::Class';
+use strict;
+use warnings;
+
+__PACKAGE__->load_components(qw/ Core/);
+__PACKAGE__->table('reports');
+
+
+__PACKAGE__->add_columns(
+ 'id' => {
+ 'data_type' => 'INTEGER',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'id',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'status' => {
+ 'data_type' => 'TEXT',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'status',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'distribution' => {
+ 'data_type' => 'TEXT',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'distribution',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'version' => {
+ 'data_type' => 'TEXT',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'version',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'perl' => {
+ 'data_type' => 'TEXT',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'perl',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'osname' => {
+ 'data_type' => 'TEXT',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'osname',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'osvers' => {
+ 'data_type' => 'TEXT',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'osvers',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'archname' => {
+ 'data_type' => 'TEXT',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'archname',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+);
+__PACKAGE__->set_primary_key('id');
+
+
+
+package CPAN::Testers;
+use base 'DBIx::Class::Schema';
+use strict;
+use warnings;
+
+__PACKAGE__->register_class('reports', 'CPAN::Testers::reports');
+
+1;
diff --git a/lib/CPAN/cpants.pm b/lib/CPAN/cpants.pm
new file mode 100644
index 0000000..686c834
--- /dev/null
+++ b/lib/CPAN/cpants.pm
@@ -0,0 +1,1431 @@
+package CPAN::cpants::prereq;
+use base 'DBIx::Class';
+use strict;
+use warnings;
+
+__PACKAGE__->load_components( qw/ Core/ );
+__PACKAGE__->table( 'prereq' );
+
+__PACKAGE__->add_columns(
+ 'id' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'id',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'dist' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'dist',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'requires' => {
+ 'data_type' => 'text',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'requires',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'version' => {
+ 'data_type' => 'text',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'version',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'in_dist' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'in_dist',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'is_prereq' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'is_prereq',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'is_build_prereq' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'is_build_prereq',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'is_optional_prereq' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'is_optional_prereq',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+);
+__PACKAGE__->set_primary_key( 'id' );
+
+package CPAN::cpants::modules;
+use base 'DBIx::Class';
+use strict;
+use warnings;
+
+__PACKAGE__->load_components( qw/ Core/ );
+__PACKAGE__->table( 'modules' );
+
+__PACKAGE__->add_columns(
+ 'id' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'id',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'dist' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'dist',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'module' => {
+ 'data_type' => 'text',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'module',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'file' => {
+ 'data_type' => 'text',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'file',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'in_lib' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'in_lib',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'in_basedir' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'in_basedir',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'is_core' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'is_core',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+);
+__PACKAGE__->set_primary_key( 'id' );
+
+package CPAN::cpants::kwalitee;
+use base 'DBIx::Class';
+use strict;
+use warnings;
+
+__PACKAGE__->load_components( qw/ Core/ );
+__PACKAGE__->table( 'kwalitee' );
+
+__PACKAGE__->add_columns(
+ 'id' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'id',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'dist' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'dist',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'abs_kw' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'abs_kw',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'abs_core_kw' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'abs_core_kw',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'kwalitee' => {
+ 'data_type' => 'numeric',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'kwalitee',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'rel_core_kw' => {
+ 'data_type' => 'numeric',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'rel_core_kw',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'extractable' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'extractable',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'extracts_nicely' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'extracts_nicely',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'has_version' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'has_version',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'has_proper_version' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'has_proper_version',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'no_cpants_errors' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'no_cpants_errors',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'has_readme' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'has_readme',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'has_manifest' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'has_manifest',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'has_meta_yml' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'has_meta_yml',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'has_buildtool' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'has_buildtool',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'has_changelog' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'has_changelog',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'no_symlinks' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'no_symlinks',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'has_tests' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'has_tests',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'proper_libs' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'proper_libs',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'is_prereq' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'is_prereq',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'use_strict' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'use_strict',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'use_warnings' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'use_warnings',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'has_test_pod' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'has_test_pod',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'has_test_pod_coverage' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'has_test_pod_coverage',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'no_pod_errors' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'no_pod_errors',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'has_working_buildtool' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'has_working_buildtool',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'manifest_matches_dist' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'manifest_matches_dist',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'has_example' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'has_example',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'buildtool_not_executable' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'buildtool_not_executable',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'has_humanreadable_license' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'has_humanreadable_license',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'metayml_is_parsable' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'metayml_is_parsable',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'metayml_conforms_spec_current' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'metayml_conforms_spec_current',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'metayml_has_license' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'metayml_has_license',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'metayml_conforms_to_known_spec' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'metayml_conforms_to_known_spec',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'has_license' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'has_license',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'prereq_matches_use' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'prereq_matches_use',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'build_prereq_matches_use' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'build_prereq_matches_use',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'no_generated_files' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'no_generated_files',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'run' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'run',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'has_version_in_each_file' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'has_version_in_each_file',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'has_tests_in_t_dir' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'has_tests_in_t_dir',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'no_stdin_for_prompting' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'no_stdin_for_prompting',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'easily_repackageable_by_fedora' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'easily_repackageable_by_fedora',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'easily_repackageable_by_debian' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'easily_repackageable_by_debian',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'easily_repackageable' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'easily_repackageable',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'fits_fedora_license' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'fits_fedora_license',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'metayml_declares_perl_version' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'metayml_declares_perl_version',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'no_large_files' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'no_large_files',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'has_separate_license_file' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'has_separate_license_file',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'has_license_in_source_file' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'has_license_in_source_file',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'metayml_has_provides' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'metayml_has_provides',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'uses_test_nowarnings' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'uses_test_nowarnings',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'latest_version_distributed_by_debian' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'latest_version_distributed_by_debian',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'has_no_bugs_reported_in_debian' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'has_no_bugs_reported_in_debian',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'has_no_patches_in_debian' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'has_no_patches_in_debian',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'distributed_by_debian' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'distributed_by_debian',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+);
+__PACKAGE__->set_primary_key( 'id' );
+
+package CPAN::cpants::uses;
+use base 'DBIx::Class';
+use strict;
+use warnings;
+
+__PACKAGE__->load_components( qw/ Core/ );
+__PACKAGE__->table( 'uses' );
+
+__PACKAGE__->add_columns(
+ 'id' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'id',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'dist' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'dist',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'module' => {
+ 'data_type' => 'text',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'module',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'in_dist' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'in_dist',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'in_code' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'in_code',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'in_tests' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'in_tests',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+);
+__PACKAGE__->set_primary_key( 'id' );
+
+package CPAN::cpants::dist;
+use base 'DBIx::Class';
+use strict;
+use warnings;
+
+__PACKAGE__->load_components( qw/ Core/ );
+__PACKAGE__->table( 'dist' );
+
+__PACKAGE__->add_columns(
+ 'id' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'id',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'run' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'run',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'dist' => {
+ 'data_type' => 'text',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'dist',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'package' => {
+ 'data_type' => 'text',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'package',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'vname' => {
+ 'data_type' => 'text',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'vname',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'author' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'author',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'version' => {
+ 'data_type' => 'text',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'version',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'version_major' => {
+ 'data_type' => 'text',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'version_major',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'version_minor' => {
+ 'data_type' => 'text',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'version_minor',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'extension' => {
+ 'data_type' => 'text',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'extension',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'extractable' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'extractable',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'extracts_nicely' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'extracts_nicely',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'size_packed' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'size_packed',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'size_unpacked' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'size_unpacked',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'released' => {
+ 'data_type' => 'date',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'released',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'files' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'files',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'files_list' => {
+ 'data_type' => 'text',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'files_list',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'dirs' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'dirs',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'dirs_list' => {
+ 'data_type' => 'text',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'dirs_list',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'symlinks' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'symlinks',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'symlinks_list' => {
+ 'data_type' => 'text',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'symlinks_list',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'bad_permissions' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'bad_permissions',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'bad_permissions_list' => {
+ 'data_type' => 'text',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'bad_permissions_list',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'file_makefile_pl' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'file_makefile_pl',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'file_build_pl' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'file_build_pl',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'file_readme' => {
+ 'data_type' => 'text',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'file_readme',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'file_manifest' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'file_manifest',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'file_meta_yml' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'file_meta_yml',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'file_signature' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'file_signature',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'file_ninja' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'file_ninja',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'file_test_pl' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'file_test_pl',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'file_changelog' => {
+ 'data_type' => 'text',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'file_changelog',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'dir_lib' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'dir_lib',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'dir_t' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'dir_t',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'dir_xt' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'dir_xt',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'broken_module_install' => {
+ 'data_type' => 'text',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'broken_module_install',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'manifest_matches_dist' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'manifest_matches_dist',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'buildfile_executable' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'buildfile_executable',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'license' => {
+ 'data_type' => 'text',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'license',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'metayml_is_parsable' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'metayml_is_parsable',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'file_license' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'file_license',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'needs_compiler' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'needs_compiler',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'got_prereq_from' => {
+ 'data_type' => 'text',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'got_prereq_from',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'is_core' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'is_core',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'file__build' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'file__build',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'file_build' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'file_build',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'file_makefile' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'file_makefile',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'file_blib' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'file_blib',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'file_pm_to_blib' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'file_pm_to_blib',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'stdin_in_makefile_pl' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'stdin_in_makefile_pl',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'stdin_in_build_pl' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'stdin_in_build_pl',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'external_license_file' => {
+ 'data_type' => 'text',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'external_license_file',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'file_licence' => {
+ 'data_type' => 'text',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'file_licence',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'licence_file' => {
+ 'data_type' => 'text',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'licence_file',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'license_file' => {
+ 'data_type' => 'text',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'license_file',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'license_type' => {
+ 'data_type' => 'text',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'license_type',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'no_index' => {
+ 'data_type' => 'text',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'no_index',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'ignored_files_list' => {
+ 'data_type' => 'text',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'ignored_files_list',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'license_in_pod' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'license_in_pod',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'license_from_yaml' => {
+ 'data_type' => 'text',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'license_from_yaml',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'license_from_external_license_file' => {
+ 'data_type' => 'text',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'license_from_external_license_file',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'test_files_list' => {
+ 'data_type' => 'text',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'test_files_list',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+);
+__PACKAGE__->set_primary_key( 'id' );
+
+package CPAN::cpants::author;
+use base 'DBIx::Class';
+use strict;
+use warnings;
+
+__PACKAGE__->load_components( qw/ Core/ );
+__PACKAGE__->table( 'author' );
+
+__PACKAGE__->add_columns(
+ 'id' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'id',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'pauseid' => {
+ 'data_type' => 'text',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'pauseid',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'name' => {
+ 'data_type' => 'text',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'name',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'email' => {
+ 'data_type' => 'text',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'email',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'average_kwalitee' => {
+ 'data_type' => 'numeric',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'average_kwalitee',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'num_dists' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'num_dists',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'rank' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'rank',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'prev_av_kw' => {
+ 'data_type' => 'numeric',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'prev_av_kw',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'prev_rank' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'prev_rank',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'average_total_kwalitee' => {
+ 'data_type' => 'numeric',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'average_total_kwalitee',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+);
+__PACKAGE__->set_primary_key( 'id' );
+
+package CPAN::cpants;
+use base 'DBIx::Class::Schema';
+use strict;
+use warnings;
+
+__PACKAGE__->register_class( 'prereq', 'CPAN::cpants::prereq' );
+
+__PACKAGE__->register_class( 'modules', 'CPAN::cpants::modules' );
+
+__PACKAGE__->register_class( 'kwalitee', 'CPAN::cpants::kwalitee' );
+
+__PACKAGE__->register_class( 'uses', 'CPAN::cpants::uses' );
+
+__PACKAGE__->register_class( 'dist', 'CPAN::cpants::dist' );
+
+__PACKAGE__->register_class( 'author', 'CPAN::cpants::author' );
+
+1;
diff --git a/lib/CPAN/mapcpan.pm b/lib/CPAN/mapcpan.pm
new file mode 100644
index 0000000..7dcd13e
--- /dev/null
+++ b/lib/CPAN/mapcpan.pm
@@ -0,0 +1,145 @@
+package CPAN::cpanmap::edges;
+use base 'DBIx::Class';
+use strict;
+use warnings;
+
+__PACKAGE__->load_components( qw/ Core/ );
+__PACKAGE__->table( 'edges' );
+
+__PACKAGE__->add_columns(
+ 'id' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'id',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'dist_from' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'dist_from',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'dist_to' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'dist_to',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+);
+__PACKAGE__->set_primary_key('id');
+
+package CPAN::cpanmap::packages;
+use base 'DBIx::Class';
+use strict;
+use warnings;
+
+__PACKAGE__->load_components( qw/ Core/ );
+__PACKAGE__->table( 'packages' );
+
+__PACKAGE__->add_columns(
+ 'id' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'id',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'dist' => {
+ 'data_type' => 'text',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'dist',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'tests_success' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => 0,
+ 'is_foreign_key' => 0,
+ 'name' => 'tests_success',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'author' => {
+ 'data_type' => 'text',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'author',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'released' => {
+ 'data_type' => 'date',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'released',
+ 'is_nullable' => 1,
+ 'size' => 0
+ }
+);
+__PACKAGE__->set_primary_key('id');
+
+package CPAN::cpanmap::modules;
+use base 'DBIx::Class';
+use strict;
+use warnings;
+
+__PACKAGE__->load_components( qw/ Core/ );
+__PACKAGE__->table( 'modules' );
+
+__PACKAGE__->add_columns(
+ 'id' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'id',
+ 'is_nullable' => 0,
+ 'size' => 0
+ },
+ 'module' => {
+ 'data_type' => 'text',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'module',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+ 'in_dist' => {
+ 'data_type' => 'integer',
+ 'is_auto_increment' => 0,
+ 'default_value' => undef,
+ 'is_foreign_key' => 0,
+ 'name' => 'in_dist',
+ 'is_nullable' => 1,
+ 'size' => 0
+ },
+);
+__PACKAGE__->set_primary_key('id');
+
+package CPAN::cpanmap;
+use base 'DBIx::Class::Schema';
+use strict;
+use warnings;
+
+__PACKAGE__->register_class( 'edges', 'CPAN::cpanmap::edges' );
+__PACKAGE__->register_class( 'packages', 'CPAN::cpanmap::packages' );
+__PACKAGE__->register_class( 'modules', 'CPAN::cpanmap::modules' );
+
+1;