Dist::Zilla::PluginBundle::Author::GTERMARS - Plugin Bundle for distributions built by GTERMARS


In your dist.ini:



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
  exclude_filename = dist.ini
  exclude_filename = cpanfile
  dir = (-d 'script' ? 'script' : 'bin')

  ; ==============================================================================
  ; Auto-generate files as needed...
  ; ... Makefile.PL
  ; ... MANIFEST
  ; ... LICENSE
  ; ... README file(s)
  [ReadmeAnyFromPod / ReadmeGfmInRoot]
  [ReadmeAnyFromPod / ReadmeInDist]
  ; ... Dependencies
  ; ... META
  directory = examples
  directory = inc
  directory = local
  directory = share
  directory = t
  directory = xt
  ; ... Tests
  verify_prereqs = 1
  fake_home = 1
  filename = t/01-compile.t
  bail_out_on_fail = 1

  ; ==============================================================================
  ; Additional Metadata
  mode = auto

  ; ==============================================================================
  ; Run "xt/" tests, but don't include them in the release.
  default_jobs = 8

  ; ==============================================================================
  ; Munge existing files

  ; ==============================================================================
  ; Release

  ; ... before release
  [PromptIfStale / Stale modules, release]
  phase = release
  check_all_plugins = 1
  check_all_prereqs = 1
  skip = ExtUtils::MakeMaker
  [Git::Check / initial check]
  [Git::Check / after tests]

  ; ... do the release (unless "fake_release" is set)

  ; ... after release; commit Changes and Tag release
  [Git::Commit / Commit Changes]
  commit_msg = Release v%V

  ; ... after release; save Release artifacts
  branch =
  release_branch = releases
  release_message = Release - v%v

  ; ... after release; bump Version for next release
  [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)
  push_to = origin
  push_to = origin releases:releases


Our Configuration Options


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:

  GatherDir.exclude_filename = cpanfile

Removing Plugins

This plugin bundle uses Dist::Zilla::Role::PluginBundle::Remover, allowing you to remove specific plugins like this:

  -remove = GitHub::Meta
  -remove = RunExtraTests


Graham TerMarsch (


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.