Use Test::Differences to check lack of file rewrite
[dbsrgits/DBIx-Class-Schema-Loader.git] / Makefile.PL
1 use warnings;
2 use strict;
3
4 use 5.008001;
5 use inc::Module::Install 1.00;
6
7 use Getopt::Long();
8
9 my $getopt = Getopt::Long::Parser->new(
10   config => [qw/gnu_getopt bundling_override no_ignore_case pass_through/]
11 );
12 my $args = {
13   skip_author_deps => undef,
14 };
15 $getopt->getoptions($args, 'skip_author_deps');
16 if (@ARGV) {
17   warn "\nIgnoring unrecognized option(s): @ARGV\n\n";
18 }
19
20 use FindBin;
21 use lib "$FindBin::Bin/lib";
22
23 perl_version '5.008001';
24 name           'DBIx-Class-Schema-Loader';
25 all_from       'lib/DBIx/Class/Schema/Loader.pm';
26
27 # temporary, needs to be thrown out
28 test_requires 'DBIx::Class::IntrospectableM2M' => 0;
29
30 # core, but specific versions not available on older perls
31 test_requires 'File::Temp'      => '0.16';
32 test_requires 'File::Path'      => '2.07';
33
34 test_requires 'DBD::SQLite'     => '1.29';
35 test_requires 'Test::Exception' => '0.31';
36 test_requires 'Test::More'      => '0.94';
37 test_requires 'Test::Warn'      => '0.21';
38 test_requires 'Test::Differences' => '0.60';
39
40 requires 'Carp::Clan'                  => 0;
41 requires 'Class::Accessor::Grouped'    => '0.10008';
42 requires 'Class::C3::Componentised'    => '1.0008';
43 requires 'Class::Inspector'            => '1.27';
44 requires 'Class::Unload'               => '0.07';
45 requires 'Data::Dump'                  => '1.06';
46 requires 'DBIx::Class'                 => '0.08127';
47 requires 'Hash::Merge'                 => '0.12';
48 requires 'Lingua::EN::Inflect::Number' => '1.1';
49 requires 'Lingua::EN::Tagger'          => '0.23';
50 requires 'Lingua::EN::Inflect::Phrase' => '0.15';
51 requires 'List::MoreUtils'             => '0.32';
52 requires 'MRO::Compat'                 => '0.09';
53 requires 'namespace::clean'            => '0.23';
54 requires 'Scope::Guard'                => '0.20';
55 requires 'String::ToIdentifier::EN'    => '0.05';
56 requires 'String::CamelCase'           => '0.02';
57 requires 'Sub::Name'                   => 0;
58 requires 'Try::Tiny'                   => 0;
59
60 # core, but specific versions not available on older perls
61 requires 'Digest::MD5'                 => '2.36';
62 requires 'Exporter'                    => '5.63';
63
64 print <<"EOF";
65 ******************* DBIx::Class::Schema::Loader WARNING ***********************
66 The default attributes for belongs_to relationships for foreign keys with no
67 rules has been changed for most databases, and is soon changing for the rest,
68 as ON DELETE/UPDATE and DEFERRABLE clauses for foreign keys are now being
69 introspected.
70
71 THIS MAY AFFECT YOUR DDL DIFFS WHEN DEPLOYING
72
73 YOUR GENERATED CODE WILL ALMOST CERTAINLY CHANGE
74
75 Read more about the changes in "relationship_attrs" in:
76
77 perldoc DBIx::Class::Schema::Loader::Base
78
79 https://metacpan.org/module/DBIx::Class::Schema::Loader::Base#relationship_attrs
80
81 See also the "Changes" file for the last few revisions.
82 *******************************************************************************
83 EOF
84
85 if ($Module::Install::AUTHOR && ! $args->{skip_author_deps}) {
86     eval { require Module::Install::ReadmeFromPod }
87       or die "\nYou need Module::Install::ReadmeFromPod installed to run this Makefile.PL in author mode:\n\n$@\n";
88
89     warn "\n*** AUTHOR MODE: some optional dependencies converted to hard requires.\n\n";
90
91     require DBIx::Class::Schema::Loader::Optional::Dependencies;
92
93     test_requires map %$_, values %{ DBIx::Class::Schema::Loader::Optional::Dependencies->req_group_list };
94
95     DBIx::Class::Schema::Loader::Optional::Dependencies->_gen_pod;
96
97     readme_from( 'lib/DBIx/Class/Schema/Loader.pm' );
98     realclean_files( qw[README MANIFEST lib/DBIx/Class/Schema/Loader/Optional/Dependencies.pod] );
99 }
100
101 tests_recursive;
102
103 install_script 'script/dbicdump';
104
105 resources 'IRC'         => 'irc://irc.perl.org/#dbix-class';
106 resources 'license'     => 'http://dev.perl.org/licenses/';
107 resources 'repository'  => 'https://github.com/dbsrgits/dbix-class-schema-loader';
108 resources 'MailingList' => 'http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class';
109
110 auto_install;
111 WriteAll;
112
113 # vim:et sts=4 sw=4 tw=0: