App-RewriteVersion
view release on metacpan or search on metacpan
lib/App/RewriteVersion.pm view on Meta::CPAN
/x;
my $LAX_DOTTED_DECIMAL_VERSION = qr/
v $LAX_INTEGER_PART (?: $LAX_DOTTED_DECIMAL_PART+ $LAX_ALPHA_PART? )?
|
$LAX_INTEGER_PART? $LAX_DOTTED_DECIMAL_PART{2,} $LAX_ALPHA_PART?
/x;
sub _is_strict_version { defined $_[0] && $_[0] =~ qr/\A $STRICT \z /x }
sub _is_loose_version {
defined $_[0] && $_[0] =~ qr/\A (?: $STRICT | $LAX_DECIMAL_VERSION ) \z /x;
}
# Because this is used for *capturing* or *replacing*, we take anything
# that is a lax version (but not literal string 'undef', so we don't want
# version::LAX). Later anything captured needs to be checked with the
# strict or loose version check functions.
sub _assign_re {
return qr{
our \s+ \$VERSION \s* = \s*
(['"])($LAX_DECIMAL_VERSION | $LAX_DOTTED_DECIMAL_VERSION)\1 \s* ;
(?:\s* \# \s TRIAL)? [^\n]*
(?:\n \$VERSION \s = \s eval \s \$VERSION;)?
(?:\n \$VERSION \s =~ \s tr/_//d;)?
(?:\n \$VERSION \s =~ \s s/_//g?;)?
}x;
}
}
# end of copied section
1;
=head1 NAME
App::RewriteVersion - A tool to rewrite and bump your Perl module versions
=head1 SYNOPSIS
use App::RewriteVersion;
my $app = App::RewriteVersion->new;
# Options
$app->verbose(1)->follow_symlinks(0);
# Bump versions for modules in current dist directory
$app->rewrite_versions($app->bump_version($app->current_version));
# Bump versions in specified dist directory
$app->rewrite_versions($app->bump_version($app->current_version(dist_dir => $dist_dir)), dist_dir => $dist_dir);
# Override module to read version from
$app->rewrite_versions($app->bump_version($app->current_version(file => $file)));
# Bump versions in specific subdirectories
$app->rewrite_versions($app->bump_version($app->current_version), subdirs => ['foo','bar']);
# Custom version bump algorithm
$app->rewrite_versions($app->bump_version($app->current_version, sub { shift + 0.05 }));
# Don't bump, just synchronize versions with main module
$app->rewrite_versions($app->current_version);
# Set versions to specified version
$app->rewrite_versions('0.065');
=head1 DESCRIPTION
L<App::RewriteVersion> is a tool for managing Perl module versions in a
distribution. It is heavily based on the L<Dist::Zilla> plugin
L<Dist::Zilla::Plugin::RewriteVersion>. Similarly to that plugin, the C<V>
environment variable can be used to override the version detected from the main
module.
Existing version assignments and new versions must be parseable with the same
rules as in L<Dist::Zilla::Plugin::RewriteVersion/"DESCRIPTION">, that is to
say, they should either be a decimal number with a single decimal point, or a
tuple version with a leading C<v> and at least 3 segments separated by decimal
points. Version assignments should be in the form C<our $VERSION = '...';>.
See L<perl-rewrite-version> and L<perl-bump-version> for details on
command-line usage.
=head1 ATTRIBUTES
=head2 allow_decimal_underscore
my $bool = $app->allow_decimal_underscore;
$app = $app->allow_decimal_underscore(0);
If true, decimal versions with underscores will be allowed. Defaults to true.
See L<Dist::Zilla::Plugin::BumpVersionAfterRelease/"Using underscore in decimal $VERSION">
for more information.
=head2 dry_run
my $bool = $app->dry_run;
$app = $app->dry_run(1);
If true, the module will process files as normal but not actually modify them.
Useful with L</"verbose"> to verify expected functionality.
=head2 follow_symlinks
my $bool = $app->follow_symlinks;
$app = $app->follow_symlinks(1);
If true, the application will follow symlinked directories when traversing the
distribution for modules. Defaults to false.
=head2 global
my $bool = $app->global;
$app = $app->global(1);
If true, the application will replace all version assignments found instead of
just the first instance in each file. Defaults to false.
=head2 verbose
my $bool = $app->verbose;
( run in 0.836 second using v1.01-cache-2.11-cpan-e1769b4cff6 )