NAME

Dist::Zilla::PluginBundle::NIGELM - Build your distributions like I do

VERSION

version 0.26

SYNOPSIS

In your dist.ini:

[@NIGELM]
dist = Distribution-Name
repository_at = github

DESCRIPTION

This is the Dist::Zilla configuration I use to build my distributions. It was originally based on the @FLORA bundle but additionally pulls in ideas from @MARCEL bundle.

It is roughly equivalent to:

[Git::NextVersion]
    first_version  = 0.01,
    version_regexp = release/(\d+.\d+)
[Git::Check]
[Git::CheckFor::CorrectBranch]
    release_branch = master
# [Git::CheckFor::Fixups]
[Git::CheckFor::MergeConflicts]
[GatherDir]
[Test::Compile]
[Test::Perl::Critic]
[MetaTests]
[PodCoverageTests]
[PodSyntaxTests]
[Test::PodSpelling]
[Test::Kwalitee]
[Test::Portability]
[Test::Synopsis]
[Test::MinimumVersion]
[HasVersionTests]
[Test::DistManifest]
[Test::UnusedVars]
[Test::NoTabs]
[Test::EOL]
[InlineFiles]
## [ReportVersions]
[PruneCruft]
[PruneFiles]
    filenames = dist.ini
[ManifestSkip]
[AutoPrereqs]
[MetaConfig]
[MetaProvides::Class]
[MetaProvides::Package]
[MetaResources]
[Authority]
    authority   = cpan:NIGELM
    do_metadata = 1
    locate_comment = 1
[ExtraTests]
[NextRelease]
[OurPkgVersion]
[PodWeaver]
    config_plugin = @MARCEL
[License]
[MakeMaker]
[MetaYAML]
[MetaJSON]
[ReadmeAnyFromPod]
    type = pod
    filename = README.pod
    location = root
[InstallGuide]
[Manifest]
[Git::Commit]
[Git::Tag]
[Git::CommitBuild]
    branch =
    release_branch = cpan
[Git::Push]
[CheckChangeLog]
[UploadToCPAN] or [FakeRelease]

Required Parameters

dist

The distribution name, as given in the main Dist::Zilla configuration section (the name parameter). Unfortunately this cannot be extracted from the main config.

Tweakables - Major Configuration

build_process

Overrides build process system - basically this causes the standard Module Build generation to be suppressed and replaced by a call to a module in the local inc directory specified by this parameter instead.

no_cpan

If no_cpan or the environment variable NO_CPAN is set, then the upload to CPAN is suppressed. This basically swaps Dist::Zilla::Plugin::FakeRelease in place of Dist::Zilla::Plugin::UploadToCPAN

Tweakables

authority

The authority for this distribution - defaults to cpan:NIGELM

auto_prereqs

Determine Prerequisites automatically - defaults to1 (set).

skip_prereqs

Prerequisites to skip if auto_prereqs is set -- a string of module names.

is_task

Is this a Task rather than a Module. Determines whether Dist::Zilla::Plugin::TaskWeaver or Dist::Zilla::Plugin::PodWeaver are used. Defaults to 1 if the dist name starts with Task, 0 otherwise.

weaver_config_plugin

This option is passed to the config_plugin option of Dist::Zilla::Plugin::PodWeaver. It defaults to @MARCEL, which loads in Pod::Weaver::PluginBundle::MARCEL.

Bug Tracker Information

bugtracker_url

The URL of the bug tracker. Defaults to the CPAN RT queue for the distribution name.

bugtracker_email

The email address of the bug tracker. Defaults to the CPAN RT email for the distribution name.

Tweaks - Modifying Tests Generated

disable_pod_coverage_tests

If set, disables the Pod Coverage Release Tests Dist::Zilla::Plugin::PodCoverageTests. Defaults to unset (tests enabled).

disable_pod_spelling_tests

If set, disables the Pod Spelling Release Tests Dist::Zilla::Plugin::Test::PodSpelling. Defaults to unset (tests enabled).

disable_trailing_whitespace_tests

If set, disables the Trailing Whitespace Release Tests Dist::Zilla::Plugin::Test::EOL. Defaults to unset (tests enabled).

disable_unused_vars_tests

If set, disables the Unused Variables Release Tests Dist::Zilla::Plugin::Test::UnusedVars. Defaults to unset (tests enabled).

disable_no_tabs_tests

If set, disables the Release Test that checks for hard tabs Dist::Zilla::Plugin::Test::NoTabs. Defaults to unset (tests enabled).

fake_home

If set, this sets the fake_home option to. Dist::Zilla::Plugin::Test::Compile. Defaults to unset.

Repository, Source Control and Similar

homepage_url

The module homepage URL. Defaults to the URL of the module page on metacpan.org. In previous versions this defaulted to the page on search.cpan.org.

repository_at

Sets all of the following repository options based on a standard repository type. This is one of:-

  • github - a github repository, with a lower cased module name.

  • GitHub - a github repository, with an unmodified module name.

  • gitmo - a git repository on git.moose.perl.org

  • catsvn - a svn repository on dev.catalyst.perl.org

  • catagits - a git repository on git.shadowcat.co.uk in the Catalyst section

  • p5sagit - a git repository on git.shadowcat.co.uk in the P5s section

  • dbsrgits - a git repository on git.shadowcat.co.uk in the DBIx::Class section

repository

The repository URL. Normally set from repository_at.

repository_web

The repository web view URL. Normally set from repository_at.

repository_type

The repository type - either svn or git. Normally set from repository_at.

github_user

The username on github. Defaults to nigelm which is unlikely to be useful for anyone else. Sorry!

tag_format / tag_message / version_regexp / git_autoversion

Overrides the Dist::Zilla::Plugin::Git bundle defaults for these. By default I use an unusual tag format of release/%v for historical reasons. If git_autoversion is true (the default) then the version number is taken from git.

git_allow_dirty

A list of files that are allowed to be dirty by the Git plugins. Defaults to dist.ini, the Change log file, README and README.pod.

git_release_branch

The correct git release branch for this distribution. Defaults to master. If a release is attempted from another branch the release will fail.

changelog

The Change Log file name. Defaults to Changes.

prune_directories

Directories to ignore - currently defaults to local and vendor (the directories used by carton to store required modules).

BUGS

It appears this module, in particular the ReadmeAnyFromPod plugin, exposes a bug with text wrapping in Pod::Simple::Text which can cause modules with long words (especially long names) to die during packaging.

1;

INSTALLATION

See perlmodinstall for information and options on installing Perl modules.

BUGS AND LIMITATIONS

You can make new bug reports, and view existing ones, through the web interface at http://rt.cpan.org/Public/Dist/Display.html?Name=Dist-Zilla-PluginBundle-NIGELM.

AVAILABILITY

The project homepage is https://metacpan.org/release/Dist-Zilla-PluginBundle-NIGELM.

The latest version of this module is available from the Comprehensive Perl Archive Network (CPAN). Visit http://www.perl.com/CPAN/ to find a CPAN site near you, or see https://metacpan.org/module/Dist::Zilla::PluginBundle::NIGELM/.

AUTHOR

Nigel Metheringham <nigelm@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2016 by Nigel Metheringham.

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