use strict;
use warnings;
-use inc::Module::Install;
-use Module::AutoInstall;
-use Module::Install::AuthorRequires;
-use Module::Install::AuthorTests;
-use Module::Install::ReadmeFromPod;
+use inc::Module::Install 0.91;
+if ($ENV{GITALIST_RELEASE_TESTING}) {
+ require Module::Install::AuthorRequires;
+ require Module::Install::AuthorTests;
+ require Module::Install::ReadmeFromPod;
+}
name 'Gitalist';
all_from 'lib/Gitalist.pm';
license 'gpl2';
-requires 'Catalyst::Runtime' => '5.8001401'; # We actually want trunk for FCGI fixes..
+requires 'Catalyst::Runtime' => '5.8001402';
requires 'Catalyst::Plugin::ConfigLoader';
requires 'Catalyst::Plugin::StackTrace';
requires 'Catalyst::Plugin::Static::Simple';
requires 'Moose';
requires 'Moose::Autobox';
-requires 'MooseX::Declare';
+requires 'MooseX::Declare' => '0.32';
requires 'MooseX::Types::Common';
requires 'MooseX::Types::Path::Class';
requires 'MooseX::Types';
requires 'namespace::autoclean';
-requires 'Git::PurePerl' => '0.42'; # Note - need the 0.42_01 dev release
+requires 'Git::PurePerl' => '0.43';
requires 'aliased';
requires 'CGI';
requires 'DateTime';
requires 'DateTime::Format::Mail';
requires 'File::Copy::Recursive';
-requires 'File::Stat::ModeString';
requires 'File::Which';
requires 'HTML::Entities';
requires 'IPC::Run';
requires 'Sys::Hostname';
requires 'XML::Atom';
requires 'XML::RSS';
-
-author_requires 'Test::NoTabs';
-author_requires 'Test::Pod' => '1.14';
-author_requires 'Test::Pod::Coverage' => '1.04';
+requires 'XML::OPML::SimpleGen';
test_requires 'Test::More' => '0.88';
+test_requires 'Test::utf8' => '0.02';
+
+resources bugtracker => 'http://rt.cpan.org/Public/Dist/Display.html?Name=Gitalist';
+resources repository => 'git://git.shadowcat.co.uk/catagits/Gitalist.git';
catalyst;
-author_tests 't/author';
+if ($ENV{GITALIST_RELEASE_TESTING}) {
+ author_tests 't/author';
+ author_requires 'Test::NoTabs';
+ author_requires 'Test::Pod' => '1.14';
+ author_requires 'Test::Pod::Coverage' => '1.04';
+}
+
install_script glob('script/*.pl');
auto_install;
+
+if ($Module::Install::AUTHOR && $ENV{GITALIST_RELEASE_TESTING}) {
+ # This is totally gross :)
+ # However, it is also much more effective than Module::Install::ProvidesClass
+ # which a) just does not work very well for us, b) totally won't install from
+ # cpan right now..
+ author_requires 'Module::Find';
+ author_requires 'B::Hooks::OP::Check::StashChange';
+ author_requires 'B::Compiling';
+ require Module::Find;
+ require B::Hooks::OP::Check::StashChange;
+ require B::Compiling;
+ require FindBin;
+ require lib;
+
+ my $libdir = "$FindBin::Bin/lib";
+ lib->import($libdir);
+
+ my %packages;
+
+ our $id = B::Hooks::OP::Check::StashChange::register(sub {
+ my ($new, $old) = @_;
+ my $file = B::Compiling::PL_compiling()->file;
+ return unless $file =~ s/^$libdir/lib/;
+ $packages{$new} ||= $file
+ if $new =~ /^Gitalist/;
+ });
+
+ require Gitalist;
+ Module::Find::useall(qw/Gitalist/);
+ undef $id;
+
+ no strict 'refs';
+ provides($_ => {
+ file => $packages{$_},
+ ${$_.'::VERSION'} ? ( version => $_->VERSION() ) : ()
+ }) for keys %packages;
+}
+
WriteAll;
+