NAME
Dist::Zilla::Plugin::NextVersion::Semantic - update the next version,
semantic-wise
VERSION
version 0.2.4
SYNOPSIS
# in dist.ini
[NextVersion::Semantic]
major = MAJOR, API CHANGE
minor = MINOR, ENHANCEMENTS
revision = REVISION, BUG FIXES
; must also load a PreviousVersionProvider
[PreviousVersion::Changelog]
DESCRIPTION
Increases the distribution's version according to the semantic
versioning rules (see ) by inspecting the changelog.
More specifically, the plugin performs the following actions:
at build time
Reads the changelog using "CPAN::Changes" and filters out of the
"{{$NEXT}}" release section any group without item.
before a release
Ensures that there is at least one recorded change in the changelog,
and increments the version number in consequence. If there are
changes given outside of the sections, they are considered to be
minor.
after a release
Updates the new "{{$NEXT}}" section of the changelog with
placeholders for all the change categories. With categories as given
in the *SYNOPSIS*, this would look like
{{$NEXT}}
[MAJOR]
[API CHANGE]
[MINOR]
[ENHANCEMENTS]
[REVISION]
[BUG FIXES]
If a version is given via the environment variable "V", it will taken
as-if as the next version.
For this plugin to work, your Dist::Zilla configuration must also
contain a plugin consuming the
Dist::Zilla::Role::YANICK::PreviousVersionProvider role.
In the different configuration attributes where change group names are
given, the special group name "UNGROUPED" can be given to specify the
nameless group.
0.1.3 2013-07-18
- this item will be part of UNGROUPED.
[BUG FIXES]
- this one won't.
PARAMETERS
change_file
File name of the changelog. Defaults to "Changes".
numify_version
If true, the version will be a number using the *x.yyyzzz* convention
instead of *x.y.z*. Defaults to false.
format
Specifies the version format to use. Follows the '%d' convention of
"sprintf" (see examples below), excepts for one detail: '%3d' won't pad
with whitespaces, but will only determine the maximal size of the
number. If a version component exceeds its given size, the next version
level will be incremented.
Examples:
%d.%3d.%3d
PATCH LEVEL INCREASES: 0.0.998 -> 0.0.999 -> 0.1.0
MINOR LEVEL INCREASES: 0.0.8 -> 0.1.0 -> 0.2.0
MAJOR LEVEL INCREASES: 0.1.8 -> 1.0.0 -> 2.0.0
%d.%02d%02d
PATCH LEVEL INCREASES: 0.0098 -> 0.00099 -> 0.0100
MINOR LEVEL INCREASES: 0.0008 -> 0.0100 -> 0.0200
MAJOR LEVEL INCREASES: 0.0108 -> 1.0000 -> 2.0000
%d.%05d
MINOR LEVEL INCREASES: 0.99998 -> 0.99999 -> 1.00000
MAJOR LEVEL INCREASES: 0.00108 -> 1.00000 -> 2.00000
Defaults to '%d.%3d.%3d'.
major
Comma-delimited list of categories of changes considered major. Defaults
to "API CHANGES".
minor
Comma-delimited list of categories of changes considered minor. Defaults
to "ENHANCEMENTS" and "UNGROUPED".
revision
Comma-delimited list of categories of changes considered revisions.
Defaults to "BUG FIXES, DOCUMENTATION".
AUTHOR
Yanick Champoux
COPYRIGHT AND LICENSE
This software is copyright (c) 2012 by Yanick Champoux.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.