Author image Nigel Metheringham

NAME

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

VERSION

version 0.27

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]
    [Test::ReportPrereqs]
    [InlineFiles]
    [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 = @DAGOLDEN
    [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 @DAGOLDEN, which loads in Pod::Weaver::PluginBundle::DAGOLDEN.

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;

SUPPORT

Bugs / Feature Requests

Please report any bugs or feature requests through the issue tracker at http://rt.cpan.org/Public/Dist/Display.html?Name=Dist-Zilla-PluginBundle-NIGELM. You will be notified automatically of any progress on your issue.

Source Code

This is open source software. The code repository is available for public review and contribution under the terms of the license.

https://github.com/nigelm/dist-zilla-pluginbundle-nigelm

  git clone https://github.com/nigelm/dist-zilla-pluginbundle-nigelm.git

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.