Release testing only
[catagits/Gitalist.git] / Makefile.PL
1 #!/usr/bin/env perl
2
3 use strict;
4 use warnings;
5
6 use inc::Module::Install 0.91;
7 use Module::Install::AuthorRequires;
8 use Module::Install::AuthorTests;
9 use Module::Install::ReadmeFromPod;
10
11 name 'Gitalist';
12 all_from 'lib/Gitalist.pm';
13 readme_from 'lib/Gitalist.pm';
14
15 author 'Dan Brook <broq@cpan.org>';
16
17 license 'gpl2';
18
19 requires 'Catalyst::Runtime' => '5.8001402';
20 requires 'Catalyst::Plugin::ConfigLoader';
21 requires 'Catalyst::Plugin::StackTrace';
22 requires 'Catalyst::Plugin::Static::Simple';
23 requires 'Catalyst::Plugin::Unicode::Encoding';
24 requires 'Catalyst::Action::RenderView';
25 requires 'Catalyst::Component::InstancePerContext';
26 requires 'Catalyst::View::TT';
27
28 requires 'Template';
29 requires 'Template::Provider::Encoding';
30 requires 'Template::Plugin::Cycle';
31
32 requires 'Config::General';
33
34 requires 'Moose';
35 requires 'Moose::Autobox';
36 requires 'MooseX::Declare' => '0.32';
37 requires 'MooseX::Types::Common';
38 requires 'MooseX::Types::Path::Class';
39 requires 'MooseX::Types';
40 requires 'namespace::autoclean';
41
42 requires 'Git::PurePerl' => '0.43';
43
44 requires 'aliased';
45 requires 'CGI';
46 requires 'DateTime';
47 requires 'DateTime::Format::Mail';
48 requires 'File::Copy::Recursive';
49 requires 'File::Which';
50 requires 'HTML::Entities';
51 requires 'IPC::Run';
52 requires 'List::MoreUtils';
53 requires 'Path::Class' => '0.17';
54 requires 'Sub::Exporter';
55 requires 'Syntax::Highlight::Engine::Kate';
56 requires 'Sys::Hostname';
57 requires 'XML::Atom';
58 requires 'XML::RSS';
59 requires 'XML::OPML::SimpleGen';
60
61 author_requires 'Test::NoTabs';
62 author_requires 'Test::Pod' => '1.14';
63 author_requires 'Test::Pod::Coverage' => '1.04';
64
65 test_requires 'Test::More' => '0.88';
66 test_requires 'Test::utf8' => '0.02';
67
68 resources bugtracker => 'http://rt.cpan.org/Public/Dist/Display.html?Name=Gitalist';
69 resources repository => 'git://git.shadowcat.co.uk/catagits/Gitalist.git';
70
71 catalyst;
72
73 author_tests 't/author';
74 install_script glob('script/*.pl');
75 auto_install;
76
77 # This is totally gross :)
78 # However, it is also much more effective than Module::Install::ProvidesClass
79 # which a) just does not work very well for us, b) totally won't install from
80 # cpan right now..
81 author_requires 'Module::Find';
82 author_requires 'B::Hooks::OP::Check::StashChange';
83 author_requires 'B::Compiling';
84 if ($Module::Install::AUTHOR && $ENV{GITALIST_RELEASE_TESTING}) {
85     require Module::Find;
86     require B::Hooks::OP::Check::StashChange;
87     require B::Compiling;
88     require FindBin;
89     require lib;
90
91     my $libdir = "$FindBin::Bin/lib";
92     lib->import($libdir);
93
94     my %packages;
95
96     our $id = B::Hooks::OP::Check::StashChange::register(sub {
97         my ($new, $old) = @_;
98         my $file = B::Compiling::PL_compiling()->file;
99         return unless $file =~ s/^$libdir/lib/;
100         $packages{$new} ||= $file
101             if $new =~ /^Gitalist/;
102     });
103
104     require Gitalist;
105     Module::Find::useall(qw/Gitalist/);
106     undef $id;
107
108     no strict 'refs';
109     provides($_ => {
110         file => $packages{$_},
111         ${$_.'::VERSION'} ? ( version => $_->VERSION() ) : ()
112     }) for keys %packages;
113 }
114
115 WriteAll;
116