NAME
Versioning::Scheme::Perl - Perl (version.pm) version numbering
VERSION
This document describes version 0.011 of Versioning::Scheme::Perl (from Perl distribution Versioning-Scheme), released on 2020-10-01.
SYNOPSIS
# checking validity
Versioning::Scheme::Perl->is_valid_version(
'1.02'
);
# 1
Versioning::Scheme::Perl->is_valid_version(
'1.0.0'
);
# 1
Versioning::Scheme::Perl->is_valid_version(
'v1.0.0.0'
);
# 1
Versioning::Scheme::Perl->is_valid_version(
'1.2beta'
);
# 0
# parsing
$parsed
= Versioning::Scheme::Perl->parse_version(
'1.2beta'
);
# => undef
$parsed
= Versioning::Scheme::Perl->parse_version(
'1.2'
);
# => {parts=>[1, 2]}
# normalizing
Versioning::Scheme::Perl->normalize_version(
'0.1.2'
);
# => 'v0.1.2'
Versioning::Scheme::Perl->normalize_version(
'1.02'
);
# => 'v1.20.0'
# comparing
Versioning::Scheme::Perl->cmp_version(
'1.2.3'
,
'1.2.3.0'
);
# 0
Versioning::Scheme::Perl->cmp_version(
'1.2.3'
,
'1.2.4'
);
# -1
Versioning::Scheme::Perl->cmp_version(
'1.3.1'
,
'1.2.4'
);
# 1
# bumping
Versioning::Scheme::Perl->bump_version(
'1.2.3'
);
# => 'v1.2.4'
Versioning::Scheme::Perl->bump_version(
'1.2.999'
);
# => 'v1.3.0'
Versioning::Scheme::Perl->bump_version(
'1.2.3'
, {
num
=>2});
# => 'v1.2.5'
Versioning::Scheme::Perl->bump_version(
'1.2.3'
, {
num
=>-1});
# => 'v1.2.2'
Versioning::Scheme::Perl->bump_version(
'1.2.3'
, {
part
=>-2});
# => 'v1.3.0'
Versioning::Scheme::Perl->bump_version(
'1.2.3'
, {
part
=>0});
# => 'v2.0.0'
Versioning::Scheme::Perl->bump_version(
'1.2.3'
, {
part
=>-2,
reset_smaller
=>0});
# => 'v1.3.3'
Versioning::Scheme::Perl->bump_version(
'1.2.3'
, {
part
=>
'dev'
} );
# => '1.2.3_001
Versioning::Scheme::Perl->bump_version(
'1.2.3_001'
, {
part
=>
'dev'
,
num
=>2});
# => '1.2.3_003
You can also mix this role into your class.
DESCRIPTION
This role is basically a glue between Role::Versioning::Scheme and version.pm.
METHODS
versioning_scheme
is_valid_version
Uses version.pm's parse()
.
parse_version
normalize_version
Equivalent to:
version->parse(
$v
)->normal
parse_version
cmp_version
Equivalent to:
version->parse(
$v1
) <=> version->parse(
$v2
)
bump_version
Bumping major/minor/patchlevel part: Set part
to -3, -2, -1 respectively (or 0, 1, 2). To do this, bump_version
Will first normalize the version using:
version->parse(
$v
)->normal
followed by bumping the part. Except for the first (most significant) part, if a number is bumped beyond 999 it will overflow to the next more significant part, for example: bumping v1.0.999 will result in v1.1.0.
Bumping dev part: Set part
to dev
. Currently no overflowing is done. To do this, first will check version number using:
version->parse(
$v
)
then will check for /_[0-9]+\z/ regex. Then will increment or decrement the dev part.
HOMEPAGE
Please visit the project's homepage at https://metacpan.org/release/Versioning-Scheme.
SOURCE
Source repository is at https://github.com/perlancar/perl-Versioning-Scheme.
BUGS
Please report any bugs or feature requests on the bugtracker website https://rt.cpan.org/Public/Dist/Display.html?Name=Versioning-Scheme
When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.
SEE ALSO
Other Versioning::Scheme::*
modules.
AUTHOR
perlancar <perlancar@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2020, 2019, 2018 by perlancar@cpan.org.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.