Skip to content

Lx/perl5-Dist-Zilla-PluginBundle-Author-LXP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Dist-Zilla-PluginBundle-Author-LXP. 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.

https://github.com/lx/perl5-Dist-Zilla-PluginBundle-Author-LXP

git clone git://github.com/lx/perl5-Dist-Zilla-PluginBundle-Author-LXP

AUTHOR

Alex Peters <lxp@cpan.org>

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.

About

configure Dist::Zilla like LXP

Resources

Stars

Watchers

Forks

Packages

No packages published