The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

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

VERSION

version 0.22

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]
    [KwaliteeTests]
    [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]
    [ModuleBuild]
    [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_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.

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) 2015 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.