Dist-Zilla-Plugin-Subversion

 view release on metacpan or  search on metacpan

lib/Dist/Zilla/Plugin/Subversion/Tag.pm  view on Meta::CPAN

use 5.010;
use strict;
use warnings;
use utf8;

package Dist::Zilla::Plugin::Subversion::Tag;

BEGIN {
    $Dist::Zilla::Plugin::Subversion::Tag::VERSION = '1.101590';
}

# ABSTRACT: tags a distribution in Subversion

use Moose;
with 'Dist::Zilla::Role::Subversion';
with 'Dist::Zilla::Role::AfterRelease' => { -version => 4.101550 };

use Cwd;
use English qw(-no_match_vars);
use Modern::Perl;
use MooseX::Types::URI 'Uri';
use namespace::autoclean;

has 'tag_url' => (
    is         => 'ro',
    isa        => Uri,
    coerce     => 1,
    lazy_build => 1,
);

sub _build_tag_url {
    my $url = $ARG[0]->_base_url();
    $url->path_segments( $url->path_segments(), 'tags' );
    return $url;
}

sub after_release {
    my $self = shift;
    my ( $working_url, $tag_url )
        = map { $self->$ARG } qw(working_url tag_url);
    my %meta = %{ $self->zilla->distmeta() };

    $tag_url->path_segments( $tag_url->path_segments(),
        join q{-}, @meta{qw(name version)} );
    $self->log("Tagging $working_url as $tag_url");

    if ( my $commit_info = $self->_svn->commit( getcwd(), 0 ) ) {
        $self->_log_commit_info( $commit_info,
            "committed working copy to $working_url" );
        if ( $commit_info
            = $self->_svn->copy( "$working_url", 'HEAD', "$tag_url" ) )
        {
            $self->_log_commit_info( $commit_info,
                "tagged $working_url as $tag_url" );
            return;
        }
    }

    $self->log_fatal("Failed tag of $working_url as $tag_url");
    return;
}

__PACKAGE__->meta->make_immutable();
no Moose;
1;

=pod

=head1 NAME

Dist::Zilla::Plugin::Subversion::Tag - tags a distribution in Subversion

=head1 VERSION

version 1.101590

=head1 DESCRIPTION

This L<Dist::Zilla|Dist::Zilla> after-release plugin can be used to tag your
distribution in Subversion.

 view all matches for this distribution
 view release on metacpan -  search on metacpan

( run in 0.811 second using v1.00-cache-2.02-grep-82fe00e-cpan-2c419f77a38b )