# NAME

Dist::Zilla::PluginBundle::Author::HAYOBAAN - Hayo Baan's Dist::Zilla configuration

# VERSION

version 0.015

# DESCRIPTION

This is a [Dist::Zilla](https://metacpan.org/pod/Dist%3A%3AZilla) PluginBundle. It installs and configures
[Dist::Zilla](https://metacpan.org/pod/Dist%3A%3AZilla) plugins according to HAYOBAAN's preferences. The
following plugins are (conditionally) installed and configured:

- [AutoVersion](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AAutoVersion)
- [Author::HAYOBAAN::NextVersion](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AAuthor%3A%3AHAYOBAAN%3A%3ANextVersion)
- [OurPkgVersion](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AOurPkgVersion)
- [GatherDir](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AGatherDir)
- [Git::GatherDir](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AGit%3A%3AGatherDir)
- [PruneCruft](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3APruneCruft)
- [ManifestSkip](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AManifestSkip)
- [PodWeaver](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3APodWeaver) (and [SurgicalPodWeaver](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ASurgicalPodWeaver) when enabled)
- [ReadmeAnyFromPod](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AReadmeAnyFromPod) (both Text and Markdown generation are configured)
- [Dist::Zilla::Plugin::MetaYAML](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AMetaYAML)
- [License](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ALicense)
- [InstallGuide](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AInstallGuide)
- [MinimumPerl](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AMinimumPerl)
- [AutoPrereqs](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AAutoPrereqs)
- [MetaNoIndex](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AMetaNoIndex)
- [GitHub::Meta](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AGitHub%3A%3AMeta)
- [MetaJSON](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AMetaJSON)
- [MetaYAML](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AMetaYAML)
- [MetaProvides::Package](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AMetaProvides%3A%3APackage)
- [MetaProvides::Class](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AMetaProvides%3A%3AClass)
- [ExecDir](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AExecDir)
- [ShareDir](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AShareDir)
- [MakeMaker](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AMakeMaker) (default)
- [ModuleBuild](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AModuleBuild) (optional)
- [Manifest](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AManifest)
- [CopyFilesFromBuild](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ACopyFilesFromBuild)
- [Run::AfterBuild](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ARun%3A%3AAfterBuild)
- [GitHubREADME::Badge](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AGitHubREADME%3A%3ABadge)
- [CheckChangesHasContent](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ACheckChangesHasContent)
- [Git::CheckFor::CorrectBranch](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AGit%3A%3ACheckFor%3A%3ACorrectBranch)
- [Git::Check](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AGit%3A%3ACheck)
- [CheckMetaResources](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ACheckMetaResources)
- [CheckPrereqsIndexed](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ACheckPrereqsIndexed)
- [Test::Compile](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ATest%3A%3ACompile)
- [Test::Perl::Critic](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ATest%3A%3APerl%3A%3ACritic)
- [Test::EOL](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ATest%3A%3AEOL)
- [Test::NoTabs](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ATest%3A%3ANoTabs)
- [Test::Version](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ATest%3A%3AVersion)
- [Test::MinimumVersion](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ATest%3A%3AMinimumVersion)
- [MojibakeTests](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AMojibakeTests)
- [Test::Kwalitee](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ATest%3A%3AKwalitee)
- [Test::Portability](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ATest%3A%3APortability)
- [Test::UnusedVars](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ATest%3A%3AUnusedVars)
- [Test::CPAN::Changes](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ATest%3A%3ACPAN%3A%3AChanges)
- [Test::DistManifest](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ATest%3A%3ADistManifest)
- [Test::CPAN::Meta::JSON](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ATest%3A%3ACPAN%3A%3AMeta%3A%3AJSON)
- [MetaTests](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AMetaTests)
- [PodSyntaxTests](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3APodSyntaxTests)
- [PodCoverageTests](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3APodCoverageTests)
- [Author::HAYOBAAN::LinkCheck](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AAuthor%3A%3AHAYOBAAN%3A%3ALinkCheck)
- [Test::Synopsis](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ATest%3A%3ASynopsis)
- [TestRelease](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ATestRelease)
- [RunExtraTests](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ARunExtraTests)
- [ConfirmRelease](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AConfirmRelease)
- [UploadToCPAN](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AUploadToCPAN)
- [FakeRelease](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AFakeRelease)
- [NextRelease](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ANextRelease)
- [Git::Commit](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AGit%3A%3ACommit)
- [Git::Tag](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AGit%3A%3ATag)
- [Git::Push](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AGit%3A%3APush)
- [GitHub::Update](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AGitHub%3A%3AUpdate)
- [Run::AfterRelease](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ARun%3A%3AAfterRelease)
- [Clean](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AClean)

# USAGE

    # In dist.ini
    [@Author::HAYOBAAN]

# OPTIONS

The following additional command-line option is available for the `dzil` command.

## --local-release-only

Adding this option to the `dzil` command will set the
["local\_release\_only"](#local_release_only) attribute to _true_.

`--local`, `--local-only`, and `--local-release` are synonyms for
this option.

## --make-minor-release

Adding this option to the `dzil` command will set the
["make\_minor\_release"](#make_minor_release) attribute to _true_.

`--minor`, `--minor-release`, and `--make-minor` are synonyms for
this option.

Note: Implied with ["--local-release-only"](#local-release-only), overriden by ["--make-major-release"](#make-major-release).

## --make-major-release

Adding this option to the `dzil` command will set the
["make\_major\_release"](#make_major_release) attribute to true.

`--major`, `--major-release`, and `--make-major` are synonyms for
this option.

Note: Overrides [--make-minor-release](https://metacpan.org/pod/--make-minor-release).

## --keep-version

Adding this option will force keep the version number the same (regardless of the other settings above!).

`--keep` is a synonym for this option.

# ATTRIBUTES

## is\_cpan

Specifies that this is a distribution that is destined for CPAN. When
true, releases are uploaded to CPAN using
[UploadToCPAN](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AUploadToCPAN). If false, releases
are made using [FakeRelease](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AFakeRelease).

Default: _false_.

## is\_github\_hosted

Specifies that the distribution's repository is hosted on GitHub.

Default: _false_ (note: setting ["is\_cpan"](#is_cpan) enforces ["is\_github\_hosted"](#is_github_hosted)
to _true_)

## git\_remote

Specifies where to push the distribution on GitHub. Can be used
multiple times to upload to multiple branches.

Default: `origin`

## no\_git

Specifies that the distribution is not under git version control.

Default: _false_ (note: setting ["is\_github\_hosted"](#is_github_hosted) enforces this
setting to _false_)

## local\_release\_only

Setting this to _true_ will:

- inhibit uploading to CPAN,
- inhibit git checking, tagging, commiting, and pushing,
- inhibit checking the `Changes` file,
- include a minor version number (e.g., `_001`) in the version string (see ["make\_minor\_release"](#make_minor_release)).

When releasing, the ["run\_after\_release"](#run_after_release) code is still run so you can
use this flag to _release_ a development version locally for further
use or testing, without e.g., fixing a new major version number.

`local`, `local_only`, and `local_release` are synonyms for
this setting.

Default: _false_

## make\_minor\_release

If the version string does not yet have a minor release number, this will add one with the value of `_001`.

`minor`, `minor_release`, and `make_minor` are synonyms for this
setting.

Default: value of ["local\_release\_only"](#local_release_only)

Note: Overridden by ["make\_major\_release"](#make_major_release).

## make\_major\_release

Removes any minor version from the version string.

`major`, `major_release`, and `make_major` are synonyms for this
setting.

Default: _false_

Note: Overrides ["make\_minor\_release"](#make_minor_release).

## keep\_version

Will keep the current version number the same when building/releasing.

## use\_makemaker

Uses MakeMaker as build method.

Default: _true_

Note: When both `use_makemaker` and `use_modulebuild` are _false_, MakeMaker will be used!

## use\_modulebuild

Uses [Module::Build](https://metacpan.org/pod/Module%3A%3ABuild) as build method.

Default: _false_

## run\_after\_build

Specifies commands to run after the release has been built (but not yet released). Multiple
["run\_after\_build"](#run_after_build) commands can be specified.

The commands are run from the root of your development tree and has the following special symbols available:

- `%d` the directory in which the distribution was built
- `%n` the name of the distribution
- `%p` path separator ('/' on Unix, '\\\\' on Win32... useful for cross-platform dist.ini files)
- `%v` the version of the distribution
- `%t` -TRIAL if the release is a trial release, otherwise the empty string
- `%x` full path to the current perl interpreter (like $^X but from Config)

Default: _nothing_

## run\_after\_release

Specifies commands to run after the release has been made. Use it to e.g.,
automatically install your distibution after releasing. Multiple
run\_after\_release commands can be specified.

The commands are run from the root of your development tree and has
the same symbols available as the ["run\_after\_build"](#run_after_build), plus the
following:

- `%a` the archive of the release

Default: `cpanm './%d'`

### Examples:

To install using cpanm (this is the default):

    run_after_release = cpanm './%d'

To install using cpan:

    run_after_release = %x -MCPAN -einstall './%d'

To not do anything:

    run_after_release =

## additional\_test

Additional test plugin to use. Can be used multiple times to add more
than one additional test.

By default the following tests are executed:

- [Test::Compile](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ATest%3A%3ACompile) -- Checks if perl code compiles correctly
- [Test::Perl::Critic](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ATest%3A%3APerl%3A%3ACritic) -- Checks Perl source code for best-practices
- [Test::EOL](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ATest%3A%3AEOL) -- Checks line endings
- [Test::NoTabs](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ATest%3A%3ANoTabs) -- Checks for the use of tabs
- [Test::Version](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ATest%3A%3AVersion) -- Checks to see if each module has the correct version set
- [Test::MinimumVersion](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ATest%3A%3AMinimumVersion) -- Checks the minimum perl version, using ["max\_target\_perl"](#max_target_perl)
- [MojibakeTests](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AMojibakeTests) -- Checks source encoding
- [Test::Kwalitee](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ATest%3A%3AKwalitee) -- Checks the Kwalitee
- [Test::Portability](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ATest%3A%3APortability) -- Checks portability of code
- [Test::UnusedVars](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ATest%3A%3AUnusedVars) -- Checks for unused variables
- [Test::CPAN::Changes](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ATest%3A%3ACPAN%3A%3AChanges) -- Validation of the Changes file
- [Test::DistManifest](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ATest%3A%3ADistManifest) -- Validation of the MANIFEST file
- [Test::CPAN::Meta::JSON](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ATest%3A%3ACPAN%3A%3AMeta%3A%3AJSON) -- Validation of the META.json file -- only when hosted on GitHub
- [MetaTests](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AMetaTests) -- Validation of the META.yml file -- only when hosted on GitHub
- [PodSyntaxTests](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3APodSyntaxTests) -- Checks pod syntax
- [PodCoverageTests](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3APodCoverageTests) -- Checks pod coverage
- [LinkCheck](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AAuthor%3A%3AHAYOBAAN%3A%3ALinkCheck) -- Checks pod links
- [Test::Synopsis](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ATest%3A%3ASynopsis) -- Checks the pod synopsis

## disable\_test

Specifies the test you don't want to be run. Can bu used more than
once to disable multiple tests.

Default: _none_ (i.e., run all default and ["additional\_test"](#additional_test) tests).

## max\_target\_perl

Defines the highest minimum version of perl you intend to require.
This is passed to [Test::MinimumVersion](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ATest%3A%3AMinimumVersion), which generates
a `minimum-version.t` test that'll warn you if you accidentally used features
from a higher version of perl than you wanted. (Having a lower required version
of perl is okay.)

Default: `5.006`

## surgical

If this is set to _true_,
[SurgicalPodWeaver](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ASurgicalPodWeaver) is used
instead of the standard [PodWeaver](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3APodWeaver)
plugin. [SurgicalPodWeaver](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3ASurgicalPodWeaver)
only munges files that contain either a `# ABSTRACT` or a `#
Dist::Zilla: +PodWeaver` line.

Default: _false_

## weaver\_config

Specifies the configuration for [Pod::Weaver](https://metacpan.org/pod/Pod%3A%3AWeaver).

Default: `@Author::HAYOBAAN`.

## tag\_format

Specifies the format for tagging a release (see
[Git::Tag](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AGit%3A%3ATag) for details).

Default: `v%v%t`

## version\_regexp

Specifies the regexp for versions (see
[Git::NextVersion](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AGit%3A%3ANextVersion) for details).

Default: `^v?([\d.]+(?:_\d+)?)(?:-TRIAL)?$`

Note: Only used in case of git version controlled repositories
([AutoVersion](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APlugin%3A%3AAutoVersion) is used in case of
non-git version controlled repositories).

# BUGS

Please report any bugs or feature requests on the bugtracker
[website](https://github.com/HayoBaan/Dist-Zilla-PluginBundle-Author-HAYOBAAN/issues).

When submitting a bug or request, please include a test-file or a
patch to an existing test-file that illustrates the bug or desired
feature.

# CREDITS

I took inspiration from many people's [Dist::Zilla](https://metacpan.org/pod/Dist%3A%3AZilla) and [Pod::Weaver](https://metacpan.org/pod/Pod%3A%3AWeaver) PluginBundles. Most notably from:

- David Golden [DAGOLDEN](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APluginBundle%3A%3ADAGOLDEN)
- Mike Doherty [DOHERTY](https://metacpan.org/pod/Dist%3A%3AZilla%3A%3APluginBundle%3A%3AAuthor%3A%3ADOHERTY)

# AUTHOR

Hayo Baan <info@hayobaan.com>

# COPYRIGHT AND LICENSE

This software is copyright (c) 2014 by Hayo Baan.

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
