update versions for 0.04000 release, added some better feature stuff to Makefile.PL 0.04000
Brandon Black [Fri, 8 Jun 2007 01:11:22 +0000 (01:11 +0000)]
12 files changed:
Changes
Makefile.PL
lib/DBIx/Class/Schema/Loader.pm
lib/DBIx/Class/Schema/Loader/Base.pm
lib/DBIx/Class/Schema/Loader/DBI.pm
lib/DBIx/Class/Schema/Loader/DBI/DB2.pm
lib/DBIx/Class/Schema/Loader/DBI/Oracle.pm
lib/DBIx/Class/Schema/Loader/DBI/Pg.pm
lib/DBIx/Class/Schema/Loader/DBI/SQLite.pm
lib/DBIx/Class/Schema/Loader/DBI/Writing.pm
lib/DBIx/Class/Schema/Loader/DBI/mysql.pm
lib/DBIx/Class/Schema/Loader/RelBuilder.pm

diff --git a/Changes b/Changes
index 1cb6660..2cdd181 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,5 +1,9 @@
 Revision history for Perl extension DBIx::Class::Schema::Loader
 
+0.04000 Thu Jun 7, 2007
+        - Added some env vars for controlling the Makefile.PL feature
+          questions, to make automation easier.
+
 0.03999_02 Tue May 22, 2007
         - Converted to Module::Install
 
index 33e38f1..d664274 100644 (file)
@@ -1,5 +1,5 @@
 
-use inc::Module::Install;
+use inc::Module::Install 0.65;
 
 name           'DBIx-Class-Schema-Loader';
 all_from       'lib/DBIx/Class/Schema/Loader.pm';
@@ -23,30 +23,76 @@ requires 'Carp::Clan'                  => 0;
 requires 'Class::Inspector'            => 0;
 requires 'DBIx::Class'                 => '0.07006';
 
-feature 'SQLite Support' =>
-    -default      => $ENV{DBIC_FEATURE_SQLITE} || 0,
-    'DBI'         => '1.56',
-    'DBD::SQLite' => '1.12';
-
-feature 'MySQL Support' =>
-    -default      => $ENV{DBIC_FEATURE_MYSQL} || 0,
-    'DBI'         => '1.56',
-    'DBD::mysql'  => '4.004';
-
-feature 'PostgreSQL Support' =>
-    -default      => $ENV{DBIC_FEATURE_PG} || 0,
-    'DBI'         => '1.56',
-    'DBD::Pg'     => '1.49'; # Soon to be 1.50
-
-feature 'DB2 Support' =>
-    -default      => $ENV{DBIC_FEATURE_DB2} || 0,
-    'DBI'         => '1.56',
-    'DBD::DB2'    => '1.0';
-
-feature 'Oracle Support (*experimental*)' =>
-    -default      => $ENV{DBIC_FEATURE_ORACLE} || 0,
-    'DBI'         => '1.56',
-    'DBD::Oracle' => '0.19';
+# This is my manual hack for better feature control
+#  If you want to change the default answer for a feature,
+#  set the appropriate environment variable, like
+#  DBIC_FEATURE_MYSQL.  If you want the defaults to
+#  apply automatically without asking any questions,
+#  set DBIC_FEATURE_NOQUESTIONS.  Hopefully this will
+#  save someone some pain when trying to automate
+#  the installation of this software.
+
+# Maintainer shouldn't set these, as they would affect
+# the META.yml shipped to CPAN.
+
+my $_features = [
+    SQLITE => {
+        label => 'SQLite Support',
+        def   => $ENV{DBIC_FEATURE_SQLITE} || 0,
+        deps  => [
+            'DBI'         => '1.56',
+            'DBD::SQLite' => '1.12',
+        ],
+    },
+    MYSQL => {
+        label => 'MySQL Support',
+        def   => $ENV{DBIC_FEATURE_MYSQL} || 0,
+        deps  => [
+            'DBI'         => '1.56',
+            'DBD::mysql'  => '4.004',
+        ],
+    },
+    PG => {
+        label => 'PostgreSQL Support',
+        def   => $ENV{DBIC_FEATURE_PG} || 0,
+        deps  => [
+            'DBI'         => '1.56',
+            'DBD::Pg'     => '1.49', # Soon to be 1.50
+        ],
+    },
+    DB2 => {
+        label => 'DB2 Support',
+        def   => $ENV{DBIC_FEATURE_DB2} || 0,
+        deps  => [
+            'DBI'         => '1.56',
+            'DBD::DB2'    => '1.0',
+        ],
+    },
+    ORACLE => {
+        label => 'Oracle Support (experimental)',
+        def   => $ENV{DBIC_FEATURE_ORACLE} || 0,
+        deps  => [
+            'DBI'         => '1.56',
+            'DBD::Oracle' => '0.19',
+        ],
+    },
+];
+
+for(my $i = 0; $i <= $#$_features - 1; $i += 2) {
+    my $name = $_features->[$i];
+    my $attrs = $_features->[$i+1];
+
+    if($ENV{DBIC_FEATURE_NOQUESTIONS}) {
+        if($attrs->{def}) {
+            requires @{$attrs->{deps}};
+        }
+    }
+    else {
+        feature $attrs->{label} =>
+            -default => $attrs->{def},
+            @{$attrs->{deps}};
+    }
+}
 
 # Rebuild README for maintainers
 if(-e 'MANIFEST.SKIP') {
index b3a3187..6467971 100644 (file)
@@ -11,7 +11,7 @@ use Scalar::Util qw/ weaken /;
 # Always remember to do all digits for the version even if they're 0
 # i.e. first release of 0.XX *must* be 0.XX000. This avoids fBSD ports
 # brain damage and presumably various other packaging systems too
-our $VERSION = '0.03999_02';
+our $VERSION = '0.04000';
 
 __PACKAGE__->mk_classaccessor('_loader_args' => {});
 __PACKAGE__->mk_classaccessors(qw/dump_to_dir _loader_invoked _loader/);
index b617697..66736b3 100644 (file)
@@ -14,7 +14,7 @@ use Cwd qw//;
 use Digest::MD5 qw//;
 require DBIx::Class;
 
-our $VERSION = '0.03999_02';
+our $VERSION = '0.04000';
 
 __PACKAGE__->mk_ro_accessors(qw/
                                 schema
index fa34e1b..2c21e11 100644 (file)
@@ -7,7 +7,7 @@ use Class::C3;
 use Carp::Clan qw/^DBIx::Class/;
 use UNIVERSAL::require;
 
-our $VERSION = '0.03999_02';
+our $VERSION = '0.04000';
 
 =head1 NAME
 
index f3f75bf..a407a5d 100644 (file)
@@ -6,7 +6,7 @@ use base 'DBIx::Class::Schema::Loader::DBI';
 use Carp::Clan qw/^DBIx::Class/;
 use Class::C3;
 
-our $VERSION = '0.03999_02';
+our $VERSION = '0.04000';
 
 =head1 NAME
 
index a8e6581..12356ea 100644 (file)
@@ -6,7 +6,7 @@ use base 'DBIx::Class::Schema::Loader::DBI';
 use Carp::Clan qw/^DBIx::Class/;
 use Class::C3;
 
-our $VERSION = '0.03999_02';
+our $VERSION = '0.04000';
 
 =head1 NAME
 
index 515e5ce..2042b30 100644 (file)
@@ -6,7 +6,7 @@ use base 'DBIx::Class::Schema::Loader::DBI';
 use Carp::Clan qw/^DBIx::Class/;
 use Class::C3;
 
-our $VERSION = '0.03999_02';
+our $VERSION = '0.04000';
 
 =head1 NAME
 
index 98c467e..2e6696c 100644 (file)
@@ -7,7 +7,7 @@ use Carp::Clan qw/^DBIx::Class/;
 use Text::Balanced qw( extract_bracketed );
 use Class::C3;
 
-our $VERSION = '0.03999_02';
+our $VERSION = '0.04000';
 
 =head1 NAME
 
index 6cb7204..02cd26d 100644 (file)
@@ -1,7 +1,7 @@
 package DBIx::Class::Schema::Loader::DBI::Writing;
 use strict;
 
-our $VERSION = '0.03999_02';
+our $VERSION = '0.04000';
 
 # Empty. POD only.
 
index 62883a9..e377feb 100644 (file)
@@ -6,7 +6,7 @@ use base 'DBIx::Class::Schema::Loader::DBI';
 use Carp::Clan qw/^DBIx::Class/;
 use Class::C3;
 
-our $VERSION = '0.03999_02';
+our $VERSION = '0.04000';
 
 =head1 NAME
 
index f011484..d9f8740 100644 (file)
@@ -5,7 +5,7 @@ use warnings;
 use Carp::Clan qw/^DBIx::Class/;
 use Lingua::EN::Inflect::Number ();
 
-our $VERSION = '0.03999_02';
+our $VERSION = '0.04000';
 
 =head1 NAME