Alex Peters > Dist-Zilla-PluginBundle-Author-LXP-1.0.1 > Dist::Zilla::PluginBundle::Author::LXP



Annotate this POD


View/Report Bugs
Module Version: v1.0.1   Source  


Dist::Zilla::PluginBundle::Author::LXP - configure Dist::Zilla like LXP


This module is part of distribution Dist-Zilla-PluginBundle-Author-LXP v1.0.1.

This distribution's version numbering follows the conventions defined at


In dist.ini:



This Dist::Zilla plugin bundle configures Dist::Zilla the way CPAN author LXP uses it, achieving the same result as these entries in a dist.ini file:

    ;; PHASE: METADATA ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    ; Don't allow PAUSE/CPAN to index test libraries.  Not sure whether
    ; this is strictly needed, but better safe than sorry...
    directory = t

    ; More of the same thing.  Must appear after MetaNoIndex
    ; configuration.
    meta_noindex = 1

    ;; PHASE: GATHER FILES ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    ; Without a GatherDir plugin, Dist::Zilla sees no files.

    ; Add a LICENSE file to the build.  The generated POD for each
    ; module will also reference this file.

    ; Distributions released to the CPAN include a META.json/META.yml
    ; file.  Emit both of these.

    ; Add a MANIFEST file.

    ; Add a test to ensure that all of the source code actually
    ; compiles.

    ; Test that everything has a $VERSION defined.

    ; Ensure that everything is appropriately documented...

    ; ...and properly...

    ; ...and without typos.  "semver" is added to each file by a plugin
    ; defined in Pod::Weaver::PluginBundle::Author::LXP (see PodWeaver
    ; configuration below), so explicitly whitelist that "word" here.
    stopwords = semver

    ; Test correctness of the META.yml file.

    ; Add some more tests for source code formatting.

    ; Assess the distribution's readiness for CPAN.

    ;; PHASE: PRUNE FILES ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    ; GatherDir...but we don't want to include old builds within new
    ; ones.

    ; See also: ReadmeAnyFromPod configurations below, apparently.

    ;; PHASE: MUNGE FILES ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    ; Write a $VERSION declaration into each module.

    ; Rewrite POD into complete documents.
    config_plugin = @Author::LXP

    ; On build, update the version number in the built Changes file.
    ; After release, create a new section in the source Changes file.
    ; Conform to the date/time format specified by CPAN::Changes::Spec.
    format = %-7v %{yyyy-MM-dd}d
    time_zone = UTC

    ; All of the extra tests need to be moved into the main test
    ; directory of the build in order to run.

    ;; PHASE: REGISTER PREREQUISITES ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    ; See also: PodCoverageTests configuration above.
    ; See also: PodSyntaxTests configuration above.
    ; See also: MetaTests configuration above.

    ; Programmatically determine the distribution's dependencies.
    ; This information is needed for the META.* and Makefile.PL files.

    ; Determine the minimum Perl version required for the distribution.

    ; Don't explicitly declare dependencies that are part of Perl
    ; itself.  This needs to be declared after all other plugins in
    ; this phase.

    ; See also: MakeMaker configuration below.

    ;; PHASE: INSTALL TOOL ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    ; Add a README file to the build, generated from the finalised POD
    ; for the main module.

    ; Also generate a README POD file for the repository root.
    ; (This does not form part of the final build.)
    [ReadmeAnyFromPod / PodRoot]

    ; Emit a Makefile.PL file in the build.  This permits testing via
    ; "dzil test".

    ; Emit an INSTALL file with installation instructions.
    ; (Must be defined after MakeMaker configuration.)

    ;; PHASE: BEFORE RELEASE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    ; Ensure that the Changes file documents somehing for the release.

    ; Don't allow a release to occur while there are dirty files (other
    ; than those that may have new version information written as part
    ; of the build process).
    allow_dirty = Changes
    allow_dirty = dist.ini
    allow_dirty = README.pod

    ; Ensure that all tests pass.

    ; If all is well, publish the distribution.

    ;; PHASE: RELEASER ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    ; See also: UploadToCPAN configuration above.

    ;; PHASE: AFTER RELEASE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    ; See also: NextRelease configuration above.

    ; Commit changes to the files modified after a release.
    ; (Must be defined after NextRelease configuration.)
    allow_dirty = Changes
    allow_dirty = dist.ini
    allow_dirty = README.pod
    time_zone = UTC

    ; Tag releases.  Do this before pushing so that the tag is still
    ; created locally if pushing fails for some reason.  Don't create
    ; an annotated tag since another commit occurs at release time
    ; anyway.
    tag_message =

    ; Push changes to the remote repository when a release is made.

    ;; PHASE: TEST RUNNER ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    ; See also: MakeMaker configuration above.

    ;; PHASE: BUILD RUNNER ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    ; See also: MakeMaker configuration above.


Dist::Zilla::AppCommand::dumpphases, which adds a dumpphases command to dzil, was invaluable to me in better understanding Dist::Zilla's phase ordering and better identifying which plugins run during which phase (or in some cases, phases).


Bugs / Feature Requests

Please report any bugs or feature requests by email to bug-dist-zilla-pluginbundle-author-lxp at, or through the web interface at You will be automatically notified of any progress on the request by the system.

Source Code

The source code for this distribution is available online in a Git repository. Please feel welcome to contribute patches.

  git clone git://


Alex Peters <>


This software is copyright (c) 2013 by Alex Peters.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

The full text of the license can be found in the 'LICENSE' file included with this distribution.

syntax highlighting: