++ed by:

1 PAUSE user

Karen Etheridge ಠ_ಠ 🌋
and 2 contributors


Dist::Zilla::PluginBundle::Author::ETHER - A plugin bundle for distributions built by ETHER


version 0.092


In your dist.ini:



This is a Dist::Zilla plugin bundle. It is very approximately equal to the following dist.ini (following the preamble), minus some optimizations:

    ;;; VersionProvider
    :version = 0.004
    global = 1
    fallback_version_provider = Git::NextVersion
    version_regexp = ^v([\d._]+)(-TRIAL)?$

    ;;; BeforeBuild
    [PromptIfStale / stale modules, build]
    phase = build
    module = Dist::Zilla::Plugin::Author::ETHER
    [PromptIfStale / stale modules, release]
    phase = release
    check_all_plugins = 1
    check_all_prereqs = 1

    ;;; ExecFiles, ShareDir
    dir = script


    ;;; Finders
    [FileFinder::ByName / Examples]
    dir = examples
    [FileFinder::ByName / ExtraTestFiles]
    dir = xt

    ;;; Gather Files
    :version = 2.016
    exclude_filename = Makefile.PL
    exclude_filename = ppport.h
    exclude_filename = README.md
    exclude_filename = README.pod
    exclude_filename = META.json
    exclude_filename = cpanfile
    exclude_filename = TODO
    exclude_filename = CONTRIBUTING
    exclude_filename = LICENSE
    exclude_filename = inc/ExtUtils/MakeMaker/Dist/Zilla/Develop.pm

    [GenerateFile::ShareDir / generate CONTRIBUTING]
    -dist = Dist-Zilla-PluginBundle-Author-ETHER
    -filename = CONTRIBUTING
    has_xs = <dynamically-determined flag>

    :version = 2.039
    bail_out_on_fail = 1
    xt_mode = 1
    script_finder = :ExecFiles
    script_finder = Examples

    :version = 0.08
    finder = :InstallModules
    finder = :ExecFiles
    finder = Examples
    finder = :TestFiles
    finder = ExtraTestFiles

    :version = 0.14
    :version = 0.008
    :version = 2.000003
    max_target_perl = 5.008001
    ;[Test::Pod::LinkCheck]     many outstanding bugs
    :version = 0.019
    verify_prereqs = 1
    include = Pod::Coverage

    ;;; Munge Files
    :version = 0.004
    on_package_line = 1

    [PodWeaver] (or [SurgicalPodWeaver])
    :version = 4.005
    replacer = replace_with_comment
    post_code_replacer = replace_with_nothing

    :version = 0.142180
    type = pod
    location = root
    phase = release

    ;;; MetaData
    [GithubMeta]    ; (if server = 'github' or omitted)
    homepage = 0
    issues = 0

    bugtracker.rt = 1
    ; (plus repository.* = 1 if server = 'gitmo' or 'p5sagit')

    :version = 0.002
    authority = cpan:ETHER
    do_munging = 0

    directory = t
    directory = xt
    directory = inc
    directory = local
    directory = perl5
    directory = fatlib
    directory = examples
    directory = share
    directory = corpus
    directory = demo

    :version = 1.15000002
    finder = :InstallModules
    meta_noindex = 1
    inherit_version = 0
    inherit_missing = 1

    :version = 0.004
    :version = 0.004
    order_by = commits

    ;;; Register Prereqs
    :version = 1.006
    configure_finder = :NoFiles

    [Prereqs / installer_requirements]
    -phase = develop
    -relationship = requires
    Dist::Zilla::PluginBundle::Author::ETHER = <version specified in dist.ini>

    [Prereqs / pluginbundle_version]
    -phase = develop
    -relationship = recommends
    Dist::Zilla::PluginBundle::Author::ETHER = <current installed version>

    ;;; Install Tool
    <specified installer(s)>

    ;;; Test Runner
    # <specified installer(s)>
    :version = 0.024
    default_jobs = 9

    ;;; After Build

    [Run::AfterBuild / .ackrc]
    run = bash -c "test -e .ackrc && grep -q -- '--ignore-dir=.latest' .ackrc || echo '--ignore-dir=.latest' >> .ackrc; if [[ `dirname %d` != .build ]]; then test -e .ackrc && grep -q -- '--ignore-dir=%d' .ackrc || echo '--ignore-dir=%d' >> .ackrc; fi; if [[ %d =~ ^%n-[.[:xdigit:]]+$ ]]; then rm -f .latest; ln -s %d .latest; fi"
    [Run::AfterBuild / .latest]
    :version = 0.028
    eval = if ('%d' =~ /^%n-[.[:xdigit:]]+$/) { unlink '.latest'; symlink '%d', '.latest'; }

    ;;; Before Release
    decimal_only = 1

    [Git::Check / initial check]
    :version = 2.025
    build_warnings = 1
    allow_dirty =


    :version = 0.004
    release_branch = master

    branch = master
    remote_branch = master

    [Git::Check / after tests]
    allow_dirty =

    ;;; Releaser

    ;;; AfterRelease
    filename = LICENSE
    filename = CONTRIBUTING
    filename = Changes

    [Run::AfterRelease / remove old READMEs]
    :version = 0.024
    eval = unlink 'README.md'

    [Git::Commit / release snapshot]
    :version = 2.020
    add_files_in = .
    allow_dirty = Changes
    allow_dirty = README.md
    allow_dirty = README.pod
    allow_dirty = LICENSE
    allow_dirty = CONTRIBUTING
    commit_msg = %N-%v%t%n%n%c

    tag_format = v%v
    tag_message = v%v%t

    [GitHub::Update]    ; (if server = 'github' or omitted)
    :version = 0.40
    metacpan = 1

    :version = 0.004
    global = 1
    :version = 5.033
    time_zone = UTC
    format = %-8v  %{uyyy-MM-dd HH:mm:ss'Z'}d%{ (TRIAL RELEASE)}T
    [Git::Commit / post-release commit]
    :version = 2.020
    allow_dirty = Changes
    allow_dirty_match = ^lib/.*\.pm$
    commit_msg = increment $VERSION after release

    [Run::AfterRelease / install release]
    :version = 0.031
    fatal_errors = 0
    run = cpanm http://URMOM:mysekritpassword@pause.perl.org/pub/PAUSE/authors/id/U/UR/URMOM/%a

    [Run::AfterRelease / release complete]
    :version = 0.024
    eval = print "release complete!\\xa"

    ; listed late, to allow all other plugins which do BeforeRelease checks to run first.

    ; listed last, to be sure we run at the very end of each phase
    ; only performed if $ENV{USER} eq 'ether'
    [VerifyPhases / PHASE VERIFICATION]

The distribution's code is assumed to be hosted at github; RT is used as the issue tracker. The home page in the metadata points to github, while the home page on github is updated on release to point to metacpan. The version and other metadata is derived directly from the local git repository.



Use V=<version> in the shell to override the version of the distribution being built; otherwise the version is incremented after each release, in the *.pm files.

pod coverage

Subs can be considered "covered" for pod coverage tests by adding a directive to pod, as described in Pod::Coverage::TrustPod:

    =for Pod::Coverage foo bar baz

spelling stopwords

Stopwords for spelling tests can be added by adding a directive to pod (as many as you'd like), as described in "ADDING STOPWORDS" in Pod::Spell:

    =for stopwords foo bar baz


Available since 0.007.

The installer back-end(s) to use (can be specified more than once); defaults to ModuleBuildTiny and MakeMaker::Fallback (which generates a Build.PL for normal use with no-configure-requires protection, and Makefile.PL as a fallback, containing an upgrade warning).

You can select other backends (by plugin name, without the []), with the installer option, or 'none' if you are supplying your own, as a separate plugin.

Encouraged choices are:

    installer = ModuleBuildTiny
    installer = MakeMaker
    installer = =inc::Foo (if no configs are needed for this plugin)
    installer = none (if you are including your own later on, with configs)


Available since 0.019.

If provided, must be one of:

  • github

    (default) metadata and release plugins are tailored to github.

  • gitmo

    metadata and release plugins are tailored to gitmo@git.moose.perl.org.

  • p5sagit

    metadata and release plugins are tailored to p5sagit@git.shadowcat.co.uk.

  • catagits

    metadata and release plugins are tailored to catagits@git.shadowcat.co.uk.

  • none

    no special configuration of metadata (relating to repositories etc) is done -- you'll need to provide this yourself.


Available since 0.053.

A boolean option, that when set, removes the use of all plugins that use the network (generally for comparing metadata against PAUSE, and querying the remote git server), as well as blocking the use of the release command. Defaults to false; can also be set with the environment variable DZIL_AIRPLANE.


Available in this form since 0.076.

A file, to be present in the build, which is copied back to the source repository at release time and committed to git. Can be repeated more than once. Defaults to: LICENSE, CONTRIBUTING; defaults are appended to, rather than overwritten.


Available since 0.051.

A boolean option, that when set, uses [SurgicalPodWeaver] instead of [PodWeaver], but with all the same options. Defaults to false.


Available since 0.076.

An integer that specifies how many columns (right-padded with whitespace) are allocated in Changes entries to the version string. Defaults to 10.

other customizations

This bundle makes use of Dist::Zilla::Role::PluginBundle::PluginRemover and Dist::Zilla::Role::PluginBundle::Config::Slicer to allow further customization. Plugins are not loaded until they are actually needed, so it is possible to --force-install this plugin bundle and -remove some plugins that do not install or are otherwise problematic.


This distribution follows best practices for author-oriented plugin bundles; for more information, see KENTNL's distribution.


Bugs may be submitted through the RT bug tracker (or bug-Dist-Zilla-PluginBundle-Author-ETHER@rt.cpan.org). I am also usually active on irc, as 'ether' at irc.perl.org.


Karen Etheridge <ether@cpan.org>


This software is copyright (c) 2013 by Karen Etheridge.

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


  • Randy Stauner <rwstauner@cpan.org>

  • Сергей Романов <sromanov@cpan.org>