Dist::Zilla::PluginBundle::Starter::Git - A minimal Dist::Zilla plugin bundle for git workflows


  ; dist.ini
  name    = My-Cool-Distribution
  author  = Example Jones <>
  license = Perl_5
  copyright_holder = Example Jones
  copyright_year   = 2017
  version = 0.001
  [@Starter::Git]      ; all that is needed to start
  revision = 5         ; always defaults to revision 3
  ; configuring examples
  installer = ModuleBuildTiny
  -remove = Pod2Readme ; to use [Readme::Brief] instead, for example
  ExecDir.dir = script ; change the directory used by [ExecDir]
  managed_versions = 1 ; uses the main module version, and bumps module versions after release
  regenerate = LICENSE ; copy LICENSE to repository after release or dzil regenerate


The [@Starter::Git] plugin bundle for Dist::Zilla is a subclass of the [@Starter] plugin bundle designed to support a Git-based workflow.

In addition to the standard [@Starter] behavior, this bundle restricts the gathered files to those committed to the git repository, allowing .gitignore to also ignore files when assembling the distribution; and commits, tags, and pushes after a successful release.

See the Dist::Zilla::Starter guide and the base [@Starter] documentation for more information, as this documentation only details the specifics of this subclass.

For one-line initialization of a new [@Starter::Git]-based distribution, try Dist::Zilla::MintingProfile::Starter::Git.


[@Starter::Git] inherits the options from [@Starter], and can similarly be further configured by the composed roles, as in "CONFIGURING".


  revision = 5

As in "revision" in Dist::Zilla::PluginBundle::Starter, but defaults to revision 3. [@Starter::Git] requires at least revision 3.


As in "installer" in Dist::Zilla::PluginBundle::Starter.


As in "managed_versions" in Dist::Zilla::PluginBundle::Starter, and additionally uses [Git::Commit] a second time after [BumpVersionAfterRelease] to commit the bumped versions (with the plugin name Version_Bump_Commit).


As in "regenerate" in Dist::Zilla::PluginBundle::Starter, and allows changes to the copied files to be committed in the Release_Commit.


The [@Starter::Git] plugin bundle supports the following revisions.

Revision 3

Revision 3 is the default and is equivalent to using the following plugins:

  xt_mode = 1
  allow_dirty = dist.ini
  allow_dirty = Changes
[Git::Commit / Release_Commit]
  allow_dirty = dist.ini
  allow_dirty = Changes
  add_files_in = /
  commit_msg = %v%n%n%c
  tag_format = %v
  tag_message = %v
  directory = t
  directory = xt
  directory = inc
  directory = share
  directory = eg
  directory = examples
  inherit_version = 0

This revision differs from Revision 3 in [@Starter] as follows:

Revision 4

Revision 4 has no specific differences beyond the changes in Revision 4 in [@Starter].

Revision 5

Revision 5 has no specific differences beyond the changes in Revision 5 in [@Starter].


Report any issues on the public bugtracker.


Dan Book <>


This software is Copyright (c) 2018 by Dan Book.

This is free software, licensed under:

  The Artistic License 2.0 (GPL Compatible)


Dist::Zilla, Dist::Zilla::PluginBundle::Starter, Dist::Milla, Dist::Zilla::MintingProfile::Starter::Git