/usr/share/perl5/Dist/Zilla/Plugin/AutoVersion.pm is in libdist-zilla-perl 6.010-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 | package Dist::Zilla::Plugin::AutoVersion 6.010;
# ABSTRACT: take care of numbering versions so you don't have to
use Moose;
with(
'Dist::Zilla::Role::VersionProvider',
'Dist::Zilla::Role::TextTemplate',
);
use namespace::autoclean;
#pod =head1 DESCRIPTION
#pod
#pod This plugin automatically produces a version string, generally based on the
#pod current time. By default, it will be in the format: 1.yyDDDn
#pod
#pod =cut
#pod =attr major
#pod
#pod The C<major> attribute is just an integer that is meant to store the major
#pod version number. If no value is specified in configuration, it will default to
#pod 1.
#pod
#pod This attribute's value can be referred to in the autoversion format template.
#pod
#pod =cut
has major => (
is => 'ro',
isa => 'Int',
required => 1,
default => 1,
);
#pod =attr format
#pod
#pod The format is a L<Text::Template> string that will be rendered to form the
#pod version. It is meant to access to one variable, C<$major>, and one subroutine,
#pod C<cldr>, which will format the current time (in GMT) using CLDR patterns (for
#pod which consult the L<DateTime> documentation).
#pod
#pod The default value is:
#pod
#pod {{ $major }}.{{ cldr('yyDDD') }}
#pod {{ sprintf('%01u', ($ENV{N} || 0)) }}
#pod {{$ENV{DEV} ? (sprintf '_%03u', $ENV{DEV}) : ''}}
#pod
#pod =cut
has time_zone => (
is => 'ro',
isa => 'Str',
required => 1,
default => 'GMT',
);
has format => (
is => 'ro',
isa => 'Str',
required => 1,
default => q<{{ $major }}.{{ cldr('yyDDD') }}>
. q<{{ sprintf('%01u', ($ENV{N} || 0)) }}>
. q<{{$ENV{DEV} ? (sprintf '_%03u', $ENV{DEV}) : ''}}>
);
sub provide_version {
my ($self) = @_;
# TODO declare this as a 'develop' prereq as we want it in
# `dzil listdeps --author`
require DateTime;
DateTime->VERSION('0.44'); # CLDR fixes
my $now;
my $version = $self->fill_in_string(
$self->format,
{
major => \( $self->major ),
cldr => sub {
$now ||= do {
require DateTime;
DateTime->VERSION('0.44'); # CLDR fixes
DateTime->now(time_zone => $self->time_zone);
};
$now->format_cldr($_[0])
},
},
);
$self->log_debug([ 'providing version %s', $version ]);
return $version;
}
__PACKAGE__->meta->make_immutable;
1;
#pod =head1 SEE ALSO
#pod
#pod Core Dist::Zilla plugins:
#pod L<PkgVersion|Dist::Zilla::Plugin::PkgVersion>,
#pod L<PodVersion|Dist::Zilla::Plugin::PodVersion>,
#pod L<NextRelease|Dist::Zilla::Plugin::NextRelease>.
#pod
#pod Dist::Zilla roles:
#pod L<VersionProvider|Dist::Zilla::Role::VersionProvider>,
#pod L<TextTemplate|Dist::Zilla::Role::TextTemplate>.
#pod
#pod =cut
__END__
=pod
=encoding UTF-8
=head1 NAME
Dist::Zilla::Plugin::AutoVersion - take care of numbering versions so you don't have to
=head1 VERSION
version 6.010
=head1 DESCRIPTION
This plugin automatically produces a version string, generally based on the
current time. By default, it will be in the format: 1.yyDDDn
=head1 ATTRIBUTES
=head2 major
The C<major> attribute is just an integer that is meant to store the major
version number. If no value is specified in configuration, it will default to
1.
This attribute's value can be referred to in the autoversion format template.
=head2 format
The format is a L<Text::Template> string that will be rendered to form the
version. It is meant to access to one variable, C<$major>, and one subroutine,
C<cldr>, which will format the current time (in GMT) using CLDR patterns (for
which consult the L<DateTime> documentation).
The default value is:
{{ $major }}.{{ cldr('yyDDD') }}
{{ sprintf('%01u', ($ENV{N} || 0)) }}
{{$ENV{DEV} ? (sprintf '_%03u', $ENV{DEV}) : ''}}
=head1 SEE ALSO
Core Dist::Zilla plugins:
L<PkgVersion|Dist::Zilla::Plugin::PkgVersion>,
L<PodVersion|Dist::Zilla::Plugin::PodVersion>,
L<NextRelease|Dist::Zilla::Plugin::NextRelease>.
Dist::Zilla roles:
L<VersionProvider|Dist::Zilla::Role::VersionProvider>,
L<TextTemplate|Dist::Zilla::Role::TextTemplate>.
=head1 AUTHOR
Ricardo SIGNES 😏 <rjbs@cpan.org>
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2017 by Ricardo SIGNES.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=cut
|