NAME
Dist::Zilla::PluginBundle::NGLENN - Dist::Zilla plugin configuration for me
VERSION
version 0.07
SYNOPSIS
# in dist.ini
[
@NGLENN
]
DESCRIPTION
This is a Dist::Zilla PluginBundle. It is roughly equivalent to the following dist.ini:
; version provider
[RewriteVersion] ; also munges
; collect contributors list
[Git::Contributors]
; choose files to include
[Git::GatherDir] ; everything from git ls-files
exclude_filename = README.mkdn ; skip this generated file
exclude_filename = Makefile.PL ; skip this generated file
exclude_filename = cpanfile ; skip this generated file
[PruneCruft] ;
default
stuff to skip
[ManifestSkip] ;
if
-f MANIFEST.SKIP, skip those, too
; file modifications
[InsertCopyright ; add copyright at
"# COPYRIGHT"
[PodWeaver] ; generate Pod
config_plugin =
@NGLENN
;
my
own plugin allows Pod::WikiDoc
replacer = replace_with_comment
post_code_replacer = replace_with_nothing
; generated files
[License] ; boilerplate license
[ReadmeFromPod] ; from Pod (runs
after
PodWeaver)
[InstallGuide] ; installation guide
[TravisYML] ; Travis-CI configuration
build_branch = master
; t tests
[Test::ReportPrereqs] ; show prereqs in automated test output
; xt tests
[Test::MinimumVersion] ; xt/release/minimum-version.t
[Test::PodSpelling] ; xt/author/pod-spell.t
[Test::Perl::Critic]; xt/author/critic.t
[MetaTests] ; xt/release/meta-yaml.t
[PodSyntaxTests] ; xt/release/pod-syntax.t
[PodCoverageTests] ; xt/release/pod-coverage.t
[Test::Portability] ; xt/release/portability.t (of file name)
options = test_one_dot = 0
[Test::Version] ; xt/release/test-version.t
[Test::Compile] ; xt/author/00-compile.t
fake_home = 1 ; fakes
$ENV
{HOME} just in case
xt_mode = 1 ; make sure all files compile
; metadata
[AutoPrereqs] ; find prereqs from code
skip = ^t::lib
[Authority]
authority = cpan:NGLENN
do_munging = 0
[MinimumPerl] ; determine minimum perl version
[MetaNoIndex] ; sets
'no_index'
in META
directory = t
directory = xt
directory = examples
directory = corpus
package
= DB ; just in case
[GithubMeta] ; set META resources
remote = origin
remote = github
issues = 1
[MetaProvides::Package] ; add
'provides'
to META files
meta_noindex = 1 ; respect prior no_index directives
[Prereqs::AuthorDeps] ; add authordeps as develop/requires
[MetaYAML] ; generate META.yml (v1.4)
[MetaJSON] ; generate META.json (v2)
[CPANFile] ; generate cpanfile
; build
system
[ExecDir] ; include
'bin/*'
as executables
[ShareDir] ; include
'share/'
for
File::ShareDir
[MakeMaker] ; create Makefile.PL
eumm_version = 6.17
default_jobs = 9
; manifest (
after
all generated files)
[Manifest] ; create MANIFEST
; copy cpanfile back to repo dis
[CopyFilesFromBuild]
copy = Makefile.PL
;
before
release
[PromptIfStale] ; check
if
our
build tools are out of date
module = Dist::Zilla
module = Dist::Zilla::PluginBundle::NGLENN
check_all_plugins = 1
[Git::Check] ; ensure all files checked in
allow_dirty = dist.ini
allow_dirty = Changes
allow_dirty = cpanfile
[CheckMetaResources] ; ensure META
has
'resources'
data
[CheckPrereqsIndexed] ; ensure prereqs are on CPAN
[CheckChangesHasContent] ; ensure Changes
has
been updated
[RunExtraTests] ; ensure xt/ tests pass
default_jobs = 9
[TestRelease] ; ensure t/ tests pass
[ConfirmRelease] ; prompt
before
uploading
; releaser
[UploadToCPAN] ; uploads to CPAN
;
after
release
[Git::Commit / Commit_Dirty_Files] ; commit Changes (as released)
[Git::Tag] ; tag repo
with
custom tag
tag_format = release-
%v
; NextRelease acts
*during
* pre-release to
write
$VERSION
and
; timestamp to Changes and
*after
* release to add a new {{
$NEXT
}}
; section, so to act at the right
time
after
release, it must actually
; come
after
Commit_Dirty_Files but
before
Commit_Changes in the
; dist.ini. It will still act during pre-release as usual
[NextRelease]
[BumpVersionAfterRelease]
[Git::Commit / Commit_Changes] ; commit Changes (
for
new dev)
[Git::Push] ;
push
repo to remote
push_to = origin
[GitHub::UploadRelease] ; upload release to tag on GitHub
This distribution was forked from the DAGOLDEN plugin bundle. The abstract should really be "Dist::Zilla configuration the way NGLENN, who does it the way DAGOLDEN does it, does it", but that was too long. I struggled with many complexities of writing a good dist.ini, but found that David Golden had solved all of them.
I tweaked it slightly to fit my needs, most importantly to make everything work on Windows. I will probably continue to pull changes made to the originating DAGOLDEN distribution. See the changes file for more information.
USAGE
To use this PluginBundle, just add it to your dist.ini. You can provide the following options:
is_task
— this indicates whetherTaskWeaver
orPodWeaver
should be used.Default is 0.
authority
— specifies thex_authority
field for pause. Defaults to 'cpan:NGLENN'.auto_prereq
— this indicates whetherAutoPrereqs
should be used or not. Default is 1.#
auto_version
- this indicates whetherAutoVersion
should be used or not. Default is 0.darkpan
— for private code; usesFakeRelease
and fills in dummy repo/bugtracker datafake_release
— swapsFakeRelease
forUploadToCPAN
. Mostly useful for testing a dist.ini without risking a real release.git_remote
— where to push after releasegithub_issues
— whether to use github issue tracker. Defaults is 1.stopwords
— add stopword forTest::PodSpelling
(can be repeated)tag_format
— given toGit::Tag
. Default is 'release-%v' to be morerobust than just the version number when parsing versions for Git::NextVersion
weaver_config
— specifies a Pod::Weaver bundle. Defaults to @NGLENN.version_regexp
— given to Git::NextVersion. Defaultis '^release-(.+)$'
no_git
— bypass all git-dependent pluginsno_critic
— omitTest::Perl::Critic
testsno_spellcheck
— omitTest::PodSpelling
testsno_coverage
— omit PodCoverage testsno_minimum_perl
— omitTest::MinimumVersion
tests
When running without git, GatherDir
is used instead of Git::GatherDir
. and all git check and commit operations are disabled.
By default, versions are taken/rewritten in the source file using RewriteVersion
and BumpVersionAfterRelease
. If the auto_version
option is true, the version is set by AutoVersion
and munged with PkgVersion
. For auto_version
the generated cpanfile
is copied to the repo on build; otherwise, Makefile.PL
is copied.
This PluginBundle now supports ConfigSlicer
, so you can pass in options to the plugins used like this:
[
@NGLENN
]
Test::MinimumVersion.max_target_perl = 5.014
ExecDir.dir = scripts
This PluginBundle also supports PluginRemover
, so dropping a plugin is as easy as this:
[
@NGLENN
]
-remove = Test::Portability
SEE ALSO
SUPPORT
Bugs / Feature Requests
Please report any bugs or feature requests through the issue tracker at https://github.com/garfieldnate/Dist-Zilla-PluginBundle-NGLENN/issues. You will be notified automatically of any progress on your issue.
Source Code
This is open source software. The code repository is available for public review and contribution under the terms of the license.
https://github.com/garfieldnate/Dist-Zilla-PluginBundle-NGLENN
AUTHOR
Nate Glenn <nglenn@cpan.org>
CONTRIBUTORS
Christian Walde <walde.christian@googlemail.com>
David Golden <dagolden@cpan.org>
Eric Johnson <eric.git@iijo.org>
Karen Etheridge <ether@cpan.org>
Nathan Glenn <garfieldnate@gmail.com>
Nathan Glenn <nathan-gary.glenn@trivago.com>
Philippe Bruhat (BooK) <book@cpan.org>
Sergey Romanov <complefor@rambler.ru>
COPYRIGHT AND LICENSE
This software is Copyright (c) 2017 by Nathan Glenn.
This is free software, licensed under:
The Apache License, Version 2.0, January 2004