NAME
Dist::Zilla::PluginBundle::Author::GTERMARS - Plugin Bundle for distributions built by GTERMARS
SYNOPSIS
In your dist.ini:
[@Author::GTERMARS]
DESCRIPTION
This is the Dist::Zilla
plugin bundle that GTERMARS uses to build his distributions.
It is roughly equivalent to the following:
; ==============================================================================
; Ensure we're using the correct Author Bundle
[PromptIfStale / Stale author bundle]
phase = build
module = Dist::Zilla::PluginBundle::Author::GTERMARS
; ==============================================================================
; Gather up all the files we need in our distribution
[GatherDir]
exclude_filename = dist.ini
exclude_filename = cpanfile
[ExecDir]
dir = (-d 'script' ? 'script' : 'bin')
[ShareDir]
[PruneCruft]
; ==============================================================================
; Auto-generate files as needed...
; ... Makefile.PL
[MakeMaker]
; ... MANIFEST
[Manifest]
; ... LICENSE
[License]
; ... README file(s)
[ReadmeAnyFromPod / ReadmeGfmInRoot]
[ReadmeAnyFromPod / ReadmeInDist]
; ... Dependencies
[Prereqs::FromCPANfile]
[Prereqs::AuthorDeps]
; ... META
[MetaYAML]
[MetaJSON]
[MetaNoIndex]
directory = examples
directory = inc
directory = local
directory = share
directory = t
directory = xt
; ... Tests
[MetaTests]
[Test::ReportPrereqs]
verify_prereqs = 1
[Test::NoTabs]
[Test::EOL]
[Test::EOF]
[Test::MinimumVersion]
[Test::Synopsis]
[PodSyntaxTests]
[PodCoverageTests]
[Test::PodSpelling]
[Test::NoBreakpoints]
[Test::CleanNamespaces]
[Test::DiagINC]
[Test::UnusedVars]
[Test::Kwalitee]
[Test::Compile]
fake_home = 1
filename = t/01-compile.t
bail_out_on_fail = 1
; ==============================================================================
; Additional Metadata
[GitHub::Meta]
[StaticInstall]
mode = auto
; ==============================================================================
; Run "xt/" tests, but don't include them in the release.
[RunExtraTests]
default_jobs = 8
; ==============================================================================
; Munge existing files
[NextRelease]
[RewriteVersion]
; ==============================================================================
; Release
; ... before release
[PromptIfStale / Stale modules, release]
phase = release
check_all_plugins = 1
check_all_prereqs = 1
skip = ExtUtils::MakeMaker
[Git::CheckFor::MergeConflicts]
[Git::CheckFor::CorrectBranch]
release_branch = main
[EnsureChangesHasContent]
[EnsureMinimumPerl]
[Git::Check / initial check]
[TestRelease]
[Git::Check / after tests]
[GitHub::RequireGreenBuild]
[CheckIssues]
; ... do the release (unless "fake_release" is set)
[ConfirmRelease]
[UploadToCPAN]
[GitHub::Update]
; ... after release; commit Changes and Tag release
[Git::Commit / Commit Changes]
commit_msg = Release v%V
[Git::Tag]
; ... after release; save Release artifacts
[Git::CommitBuild]
branch =
release_branch = releases
release_message = Release - v%v
; ... after release; bump Version for next release
[BumpVersionAfterRelease]
[Git::Commit / Commit Version Bump]
allow_dirty_match = ^lib/
commit_msg = Version bump.
; ... after release; push changes up to Git (unless "fake_release" is set)
[Git::Push]
push_to = origin
push_to = origin releases:releases
CUSTOMIZATION
Our Configuration Options
- fake_release
-
A boolean option, which when set, removes
[ConfirmRelease]
,[UploadToCPAN]
, and[GitHub::Update]
, replacing them with[FakeRelease]
.Defaults to false, and can also be set with the
FAKE_RELEASE=1
environment variable.
POD Coverage
Subroutines can be considered "covered" for POD Coverage checks, by adding a directive to the POD itself, as described in Pod::CoverageTrustPod:
=for Pod::Coverage foo bar baz
POD Spelling
Stopwords for POD Spelling checks can be added by adding a directive to the POD itself, as described in Pod::Spell:
=for stopwords foo bar baz
Providing Plugin Configuration
This plugin bundle uses Dist::Zilla::Role::PluginBundle::Config::Slicer
, which allows you to provide plugin-specific configuration like this:
[@Author::GTERMARS]
GatherDir.exclude_filename = cpanfile
Removing Plugins
This plugin bundle uses Dist::Zilla::Role::PluginBundle::Remover
, allowing you to remove specific plugins like this:
[@Author::GTERMARS]
-remove = GitHub::Meta
-remove = RunExtraTests
AUTHOR
Graham TerMarsch (cpan@howlingfrog.com)
COPYRIGHT
Copyright (C) 2020-, Graham TerMarsch. All Rights Reserved.
This is free software; you can redistribute it and/or modify it under the same license as Perl itself.