The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Dist::Zilla::Plugin::PkgVersion - add a $VERSION to your packages

VERSION

version 5.030

SYNOPSIS

in dist.ini

  [PkgVersion]

DESCRIPTION

This plugin will add lines like the following to each package in each Perl module or program (more or less) within the distribution:

  $MyModule::VERSION = '0.001';

or

  { our $VERSION = '0.001'; }

...where 0.001 is the version of the dist, and MyModule is the name of the package being given a version. (In other words, it always uses fully-qualified names to assign versions.)

It will skip any package declaration that includes a newline between the package keyword and the package name, like:

  package
    Foo::Bar;

This sort of declaration is also ignored by the CPAN toolchain, and is typically used when doing monkey patching or other tricky things.

ATTRIBUTES

die_on_existing_version

If true, then when PkgVersion sees an existing $VERSION assignment, it will throw an exception rather than skip the file. This attribute defaults to false.

die_on_line_insertion

By default, PkgVersion look for a blank line after each package statement. If it finds one, it inserts the $VERSION assignment on that line. If it doesn't, it will insert a new line, which means the shipped copy of the module will have different line numbers (off by one) than the source. If die_on_line_insertion is true, PkgVersion will raise an exception rather than insert a new line.

use_our

The idea here was to insert { our $VERSION = '0.001'; } instead of $Module::Name::VERSION = '0.001';. It turns out that this causes problems with some analyzers. Use of this feature is deprecated.

Something else will replace it in the future.

finder

This is the name of a FileFinder for finding modules to edit. The default value is :InstallModules and :ExecFiles; this option can be used more than once.

Other predefined finders are listed in "default_finders" in Dist::Zilla::Role::FileFinderUser. You can define your own with the [FileFinder::ByName] and [FileFinder::Filter] plugins.

SEE ALSO

Core Dist::Zilla plugins: PodVersion, AutoVersion, NextRelease.

Other Dist::Zilla plugins: OurPkgVersion inserts version numbers using our $VERSION = '...'; and without changing line numbers

AUTHOR

Ricardo SIGNES <rjbs@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2015 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.