add a loud warning to Makefile.PL about rel attrs
[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 test_requires 'Test::Exception';
28 test_requires 'Test::More'    => '0.94';
29 test_requires 'Test::Warn'    => '0.21';
30 test_requires 'DBI'           => '1.56';
31 test_requires 'DBD::SQLite'   => '1.29';
32 test_requires 'File::Copy';
33 test_requires 'File::Temp'    => '0.16';
34 test_requires 'File::Path'    => '2.07';
35 test_requires 'IPC::Open3'    => 0;
36 test_requires 'DBIx::Class::IntrospectableM2M' => 0;
37
38 requires 'File::Spec'                  => 0;
39 requires 'Scalar::Util'                => 0;
40 requires 'Task::Weaken'                => 0;
41 requires 'Data::Dump'                  => '1.06';
42 requires 'Lingua::EN::Inflect::Number' => '1.1';
43 requires 'Lingua::EN::Tagger'          => 0.20;
44 requires 'Lingua::EN::Inflect::Phrase' => '0.02';
45 requires 'Digest::MD5'                 => '2.36';
46 requires 'Class::Accessor::Grouped'    => '0.10002';
47 requires 'MRO::Compat'                 => '0.09';
48 requires 'Sub::Name'                   => 0;
49 requires 'Class::C3::Componentised'    => '1.0008';
50 requires 'Carp::Clan'                  => 0;
51 requires 'Class::Inspector'            => '1.27';
52 requires 'DBIx::Class'                 => '0.08127';
53 requires 'Class::Unload'               => 0;
54 requires 'List::MoreUtils'             => 0;
55 requires 'namespace::clean'            => '0.20';
56 requires 'Scope::Guard'                => 0;
57 requires 'Exporter'                    => '5.63';
58 requires 'Try::Tiny'                   => 0;
59 requires 'String::ToIdentifier::EN'    => '0.05';
60 requires 'String::CamelCase'           => '0.02';
61 requires 'Hash::Merge'                 => 0;
62
63 print <<"EOF";
64 ******************* DBIx::Class::Schema::Loader WARNING ***********************
65 The default attributes for belongs_to relationships for foreign keys with no
66 rules has been changed for most databases, and is soon changing for the rest,
67 as ON DELETE/UPDATE and DEFERRABLE clauses for foreign keys are now being
68 introspected.
69
70 THIS MAY AFFECT YOUR DDL DIFFS WHEN DEPLOYING
71
72 YOUR GENERATED CODE WILL ALMOST CERTAINLY CHANGE
73
74 Read more about the changes in "relationship_attrs" in:
75
76 perldoc DBIx::Class::Schema::Loader::Base
77
78 https://metacpan.org/module/DBIx::Class::Schema::Loader::Base#relationship_attrs
79
80 See also the "Changes" file for the last few revisions.
81 *******************************************************************************
82 EOF
83
84 if ($Module::Install::AUTHOR && ! $args->{skip_author_deps}) {
85     eval { require Module::Install::ReadmeFromPod }
86       or die "\nYou need Module::Install::ReadmeFromPod installed to run this Makefile.PL in author mode:\n\n$@\n";
87
88     warn "\n*** AUTHOR MODE: some optional dependencies converted to hard requires.\n\n";
89
90     require DBIx::Class::Schema::Loader::Optional::Dependencies;
91
92     test_requires map %$_, values %{ DBIx::Class::Schema::Loader::Optional::Dependencies->req_group_list };
93
94     DBIx::Class::Schema::Loader::Optional::Dependencies->_gen_pod;
95
96     readme_from( 'lib/DBIx/Class/Schema/Loader.pm' );
97     realclean_files( qw[README MANIFEST lib/DBIx/Class/Schema/Loader/Optional/Dependencies.pod] );
98 }
99
100 tests_recursive;
101
102 install_script 'script/dbicdump';
103
104 resources 'IRC'         => 'irc://irc.perl.org/#dbix-class';
105 resources 'license'     => 'http://dev.perl.org/licenses/';
106 resources 'repository'  => 'git://git.shadowcat.co.uk/dbsrgits/DBIx-Class-Schema-Loader.git';
107 resources 'MailingList' => 'http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class';
108
109 auto_install;
110 WriteAll;
111
112 # vim:et sts=4 sw=4 tw=0: