NAME
Dist::Zilla::PluginBundle::Author::LXP - configure Dist::Zilla like LXP
VERSION
This module is part of distribution Dist-Zilla-PluginBundle-Author-LXP
v1.0.1.
This distribution's version numbering follows the conventions defined at
semver.org .
SYNOPSIS
In dist.ini:
[@Author::LXP]
DESCRIPTION
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...
[MetaNoIndex]
directory = t
; More of the same thing. Must appear after MetaNoIndex
; configuration.
[MetaProvides::Package]
meta_noindex = 1
;; PHASE: GATHER FILES ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Without a GatherDir plugin, Dist::Zilla sees no files.
[GatherDir]
; Add a LICENSE file to the build. The generated POD for each
; module will also reference this file.
[License]
; Distributions released to the CPAN include a META.json/META.yml
; file. Emit both of these.
[MetaJSON]
[MetaYAML]
; Add a MANIFEST file.
[Manifest]
; Add a test to ensure that all of the source code actually
; compiles.
[Test::Compile]
; Test that everything has a $VERSION defined.
[Test::Version]
; Ensure that everything is appropriately documented...
[PodCoverageTests]
; ...and properly...
[PodSyntaxTests]
; ...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.
[Test::PodSpelling]
stopwords = semver
; Test correctness of the META.yml file.
[MetaTests]
; Add some more tests for source code formatting.
[Test::EOL]
[NoTabsTests]
; Assess the distribution's readiness for CPAN.
[Test::Kwalitee]
;; PHASE: PRUNE FILES ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; GatherDir...but we don't want to include old builds within new
; ones.
[PruneCruft]
; See also: ReadmeAnyFromPod configurations below, apparently.
;; PHASE: MUNGE FILES ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Write a $VERSION declaration into each module.
[PkgVersion]
; Rewrite POD into complete documents.
[PodWeaver]
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.
[NextRelease]
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.
[ExtraTests]
;; 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.
[AutoPrereqs]
; Determine the minimum Perl version required for the distribution.
[MinimumPerl]
; Don't explicitly declare dependencies that are part of Perl
; itself. This needs to be declared after all other plugins in
; this phase.
[PrereqsClean]
; See also: MakeMaker configuration below.
;; PHASE: INSTALL TOOL ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Add a README file to the build, generated from the finalised POD
; for the main module.
[ReadmeAnyFromPod]
; 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".
[MakeMaker]
; Emit an INSTALL file with installation instructions.
; (Must be defined after MakeMaker configuration.)
[InstallGuide]
;; PHASE: BEFORE RELEASE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Ensure that the Changes file documents somehing for the release.
[CheckChangesHasContent]
; 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).
[Git::Check]
allow_dirty = Changes
allow_dirty = dist.ini
allow_dirty = README.pod
; Ensure that all tests pass.
[TestRelease]
; If all is well, publish the distribution.
[ConfirmRelease]
[UploadToCPAN]
;; 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.)
[Git::Commit]
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.
[Git::Tag]
tag_message =
; Push changes to the remote repository when a release is made.
[Git::Push]
;; PHASE: TEST RUNNER ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; See also: MakeMaker configuration above.
;; PHASE: BUILD RUNNER ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; See also: MakeMaker configuration above.
ACKNOWLEDGEMENTS
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).
SUPPORT
Bugs / Feature Requests
Please report any bugs or feature requests by email to
"bug-dist-zilla-pluginbundle-author-lxp at rt.cpan.org", 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://github.com/lx/perl5-Dist-Zilla-PluginBundle-Author-LXP
AUTHOR
Alex Peters
COPYRIGHT AND LICENSE
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.