NAME
Dist::Zilla::PluginBundle::DAGOLDEN - Dist::Zilla configuration the way DAGOLDEN does it
VERSION
version 0.045
SYNOPSIS
# in dist.ini
[@DAGOLDEN]
DESCRIPTION
This is a Dist::Zilla PluginBundle. It is roughly equivalent to the following dist.ini:
; version provider
[Git::NextVersion] ; get version from last release tag
version_regexp = ^release-(.+)$
; collect contributors list
[ContributorsFromGit]
; choose files to include
[Git::GatherDir] ; everything from git ls-files
exclude_filename = README.pod ; skip this generated file
exclude_filename = META.json ; skip this generated file
[PruneCruft] ; default stuff to skip
[ManifestSkip] ; if -f MANIFEST.SKIP, skip those, too
; file modifications
[OurPkgVersion] ; add $VERSION = ... to all files
[InsertCopyright ; add copyright at "# COPYRIGHT"
[PodWeaver] ; generate Pod
config_plugin = @DAGOLDEN ; my own plugin allows Pod::WikiDoc
; generated files
[License] ; boilerplate license
[ReadmeAnyFromPod] ; from Pod (runs after PodWeaver)
[ReadmeAnyFromPod / ReadmeInRoo ] ; create README.pod in repo directory
type = pod
filename = README.pod
location = root
; t tests
[Test::Compile] ; make sure .pm files all compile
fake_home = 1 ; fakes $ENV{HOME} just in case
[Test::MinimumPerl]
max_target_perl = 5.010
[Test::ReportPrereqs] ; show prereqs in automated test output
; xt tests
[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
; metadata
[AutoPrereqs] ; find prereqs from code
skip = ^t::lib
[MinimumPerl] ; determine minimum perl version
[MetaNoIndex] ; sets 'no_index' in META
directory = t
directory = xt
directory = examples
directory = corpus
package = DB ; just in case
[AutoMetaResources] ; set META resources
bugtracker.rt = 1
repository.github = user:dagolden
homepage = https://metacpan.org/release/%{dist}
[MetaProvides::Package] ; add 'provides' to META files
meta_noindex = 1 ; respect prior no_index directives
[MetaYAML] ; generate META.yml (v1.4)
[MetaJSON] ; generate META.json (v2)
; build system
[ExecDir] ; include 'bin/*' as executables
[ShareDir] ; include 'share/' for File::ShareDir
[MakeMaker] ; create Makefile.PL
; manifest (after all generated files)
[Manifest] ; create MANIFEST
; copy META.json back to repo dis
[CopyFilesFromBuild]
copy = META.json
; before release
[Git::Check] ; ensure all files checked in
allow_dirty = dist.ini
allow_dirty = Changes
allow_dirty = README.pod
allow_dirty = META.json
[CheckMetaResources] ; ensure META has 'resources' data
[CheckPrereqsIndexed] ; ensure prereqs are on CPAN
[CheckChangesHasContent] ; ensure Changes has been updated
[CheckExtraTests] ; ensure xt/ tests pass
[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]
[Git::Commit / Commit_Changes] ; commit Changes (for new dev)
[Git::Push] ; push repo to remote
push_to = origin
USAGE
To use this PluginBundle, just add it to your dist.ini. You can provide the following options:
is_task
-- this indicates whether TaskWeaver or PodWeaver should be used. Default is 0.auto_prereq
-- this indicates whether AutoPrereq should be used or not. Default is 1.tag_format
-- given toGit::Tag
. Default is 'release-%v' to be more robust than just the version number when parsing versions forGit::NextVersion
version_regexp
-- given toGit::NextVersion
. Default is '^release-(.+)$'fake_release
-- swaps FakeRelease for UploadToCPAN. Mostly useful for testing a dist.ini without risking a real release.weaver_config
-- specifies a Pod::Weaver bundle. Defaults to @DAGOLDEN.stopwords
-- add stopword for Test::PodSpelling (can be repeated)no_git
-- bypass all git-dependent pluginsno_critic
-- omit Test::Perl::Critic testsno_spellcheck
-- omit Test::PodSpelling testsno_coverage
-- omit PodCoverage testsno_minimum_perl
-- omit Test::MinimumPerl testsno_bugtracker
-- DEPRECATED
When running without git, C<GatherDir> is used instead of C<Git::GatherDir>, C<AutoVersion> is used instead of C<Git::NextVersion>, and all git check and commit operations are disabled.
This PluginBundle now supports ConfigSlicer, so you can pass in options to the plugins used like this:
[@DAGOLDEN]
ExecDir.dir = scripts ; overrides ExecDir
COMMON PATTERNS
use github instead of RT
[@DAGOLDEN]
:version = 0.32
AutoMetaResources.bugtracker.github = user:dagolden
AutoMetaResources.bugtracker.rt = 0
SEE ALSO
SUPPORT
Bugs / Feature Requests
Please report any bugs or feature requests through the issue tracker at https://rt.cpan.org/Public/Dist/Display.html?Name=Dist-Zilla-PluginBundle-DAGOLDEN. 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/dagolden/dist-zilla-pluginbundle-dagolden
git clone git://github.com/dagolden/dist-zilla-pluginbundle-dagolden.git
AUTHOR
David Golden <dagolden@cpan.org>
CONTRIBUTORS
Christian Walde <walde.christian@googlemail.com>
Eric Johnson <eric.git@iijo.org>
Philippe Bruhat (BooK) <book@cpan.org>
COPYRIGHT AND LICENSE
This software is Copyright (c) 2013 by David Golden.
This is free software, licensed under:
The Apache License, Version 2.0, January 2004