Module-Release
view release on metacpan or search on metacpan
script/release view on Meta::CPAN
}
else {
$opts{t} or $release->_print( "Skipping kwalitee checks. Shame on you!\n" );
}
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# check MANIFEST. When we run 'make manifest' nothing should be
# added or removed from MANIFEST
unless( $opts{'m'} // $release->config->skip_manifest ) {
$release->_print("============ Checking MANIFEST\n");
$release->load_mixin('Module::Release::MANIFEST');
$release->clean;
$release->build_makefile;
$release->make;
$release->check_MANIFEST;
}
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# check source repository (but do not commit)
# This should happen after everything else because I like to use
# release as my testing tool before I checkin. It will test but
# not release if VCS is dirty.
$release->_print("============ Checking source repository\n");
$release->check_vcs;
my $Version;
if ($skip_dist) {
$Version = "?"; # Get from ?
}
else {
$release->dist unless( $release->local_file and -e $release->local_file );
$Version = eval { $release->dist_version } // 'error?';
}
$release->_debug( "dist version is <$Version>\n" );
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# check anything signed by GPG
if( $release->config->gpg_signatures ) {
$release->_print("============ Checking GPG signatures\n");
$release->load_mixin('Module::Release::VerifyGPGSignature');
$release->check_all_gpg_signatures;
}
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# test with a bunch of perls
unless( $opts{T} // $release->config->skip_tests ) {
my $old_perl = $release->get_perl;
my @perls = $release->perls;
my ($n, $N) = (1, scalar @perls);
PERL: foreach my $perl ( @perls ) {
$release->_print("============ Testing with $perl (", $n++, "/$N)\n");
$release->set_perl( $perl ) or next;
$release->clean;
foreach my $mod ( grep m/\S/ => split m/\s*,\s*/ => $required ) {
system "$perl -M$mod -e1 >/dev/null 2>&1";
if( $? ) {
warn "Prereq $mod not available\n";
next PERL;
}
}
$release->build_makefile;
$release->make;
$release->test;
unless( $skip_prereqs ) {
$release->check_prereqs;
}
else {
$opts{t} or $release->_print( "Skipping prereq checks. Shame on you!\n" );
}
unless( $skip_dist ) {
$release->dist;
$release->disttest;
}
}
$release->set_perl( $old_perl );
}
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# exit if this is a dry run. Everything following this changes
# things or uploads. Don't leave anything behind.
if( $opts{t} // $release->config->dry_run ) {
$release->_print("============ Cleaning up\n");
$release->_print( "This is a dry run, so stopping. Cleaning up.\n" );
$release->distclean;
unlink glob( '*.tar *.tgz *.tar.gz *.tar.bz *.tar.bz2 *.tbz *.zip' );
exit;
}
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# CPAN::Spec::Changes
$release->_print("============ Getting Changes\n");
unless( $opts{C} or $release->config->skip_changes ) {
$release->show_recent_contributors;
my $changes = "Changes";
my $bak = $changes . ".bak";
die "Changes file does not exist!\n" unless -e $changes;
my $str = $Version . ' ' . $release->get_release_date . "\n";
my $message = do {
if( defined $opts{'c'} ) {
$opts{'c'}
}
else {
$release->_print( "\n", "-" x 73, "\n", "Enter Changes section\n\n> " );
( run in 1.825 second using v1.01-cache-2.11-cpan-71847e10f99 )