++ed by:
1 non-PAUSE user
Author image Dave Rolsky
and 2 contributors


Dist::Zilla::PluginBundle::DROLSKY - DROLSKY's plugin bundle


version 1.20


    name    = My-Module
    author  = Dave Rolsky <autarch@urth.org>
    license = Artistic_2_0
    copyright_holder = Dave Rolsky

    dist = My-Module
    ; Default is DROLSKY::MakeMaker - or set it to ModuleBuild
    make_tool = DROLSKY::MakeMaker
    ; These files won't be added to tarball
    exclude_files = ...
    ; Default is DROLSKY
    authority = DROLSKY
    ; Used to do things like add the PPPort plugin - determined automatically but can be overridden
    has_xs = ...
    ; Passed to AutoPrereqs - can be repeated
    prereqs_skip = ...
    ; Passed to Test::Pod::Coverage::Configurable if set
    pod_coverage_also_private = ...
    ; Passed to Test::Pod::Coverage::Configurable if set - can be repeated
    pod_coverage_class = ...
    ; Passed to Test::Pod::Coverage::Configurable if set - can be repeated
    pod_coverage_skip = ...
    ; Passed to Test::Pod::Coverage::Configurable if set - can be repeated
    pod_coverage_trustme = ...
    ; For pod spelling test - can be repeated
    stopwords = ...
    ; Can also put them in a separate file
    stopwords_file = ..
    ; Defaults to false
    use_github_homepage = 0


This is the Dist::Zilla plugin bundle I use for my distributions. Don't use this directly for your own distributions, but you may find it useful as a source of ideas for building your own bundle.

This bundle uses Dist::Zilla::Role::PluginBundle::PluginRemover and Dist::Zilla::Role::PluginBundle::Config::Slicer so I can remove or configure any plugin as needed.

This is more or less equivalent to the following dist.ini:

    ; updates the dist.ini to include an authordep on this bundle at its
    ; current $VERSION.

    ; Picks one of these - defaults to DROLSKY::MakeMaker

    ; Both are configured by setting exclude_files for the bundle. Simple
    ; values like "./foo/bar.pl" are treated as filenames, others like
    ; "*\.jnk$" are treated as a regex.
    exclude_filenames = ...
    exclude_match     = ...


    ; Configured by setting authority for the bundle
    authority  = ...
    do_munging = 0

    ; Configured by setting skip_prereqs for the bundle
    skip = ...

    copy = Build.PL
    copy = CODE_OF_CONDUCT.md
    copy = CONTRIBUTING.md
    copy = LICENSE
    copy = Makefile.PL
    copy = README.md
    copy = cpanfile
    copy = ppport.h

    bugs = 1
    ; Configured by setting use_github_homepage for the bundle
    homepage = 0

    homepage = https://metacpan.org/release/My-Module
    bugtracker.web  = https://github.com/...

    meta_noindex = 1


    ; Width is configured by setting next_release_width for the bundle
    format = %-8v %{yyyy-MM-dd}d%{ (TRIAL RELEASE)}T

    ; Scans the test files for use of Test2 and picks either this:
    [Prereqs / Test::More with Test2]
    -phase = test
    -type  = requires
    Test::More = 1.302015

    ; or, if the distro doesn't use Test2:
    [Prereqs / Test::More with subtest]
    -phase = test
    -type  = requires
    Test::More = 0.96

    [Prereqs / Modules for use with precious]
    -phase = develop
    -type  = requires
    Perl::Critic        = 1.138
    Perl::Critic::Moose = 1.05
    Perl::Tidy          = 20210111
    Pod::Checker        = 1.74
    Pod::Tidy           = 0.10

    [Prereqs / Test::Version which fixes https://github.com/plicease/Test-Version/issues/7]
    -phase = develop
    -type  = requires
    Test::Version = 2.05

    phase  = build
    module = Dist::Zilla::PluginBundle::DROLSKY

    phase = release
    check_all_plugins = 1
    check_all_prereqs = 1
    check_authordeps  = 1
    skip = Dist::Zilla::Plugin::DROLSKY::BundleAuthordep
    skip = Dist::Zilla::Plugin::DROLSKY::Contributors
    skip = Dist::Zilla::Plugin::DROLSKY::Git::CheckFor::CorrectBranch
    skip = Dist::Zilla::Plugin::DROLSKY::License
    skip = Dist::Zilla::Plugin::DROLSKY::MakeMaker
    skip = Dist::Zilla::Plugin::DROLSKY::PerlLinterConfigFiles
    skip = Dist::Zilla::Plugin::DROLSKY::Precious
    skip = Dist::Zilla::Plugin::DROLSKY::Test::Precious
    skip = Dist::Zilla::Plugin::DROLSKY::WeaverConfig
    skip = Pod::Weaver::PluginBundle::DROLSKY

    ; Configured by setting pod_coverage_class for the bundle
    class = ...
    ; Configured by setting pod_coverage_skip for the bundle
    skip = ...
    ; Configured by setting pod_coverage_trustme for the bundle
    trustme = ...

    ; Configured by setting stopwords and/or stopwords_file for the bundle
    stopwods = ...



    xt_mode = 1

    verify_prereqs = 1

    is_strict = 1

    ; Generates/updates a .mailmap file

    ; See Pod::Weaver::PluginBundle::DROLSKY in this same distro for more info
    config_plugin = @DROLSKY

    ; Nasty hack so I can pass config from the dist.ini to the Pod::Weaver
    ; bundle. Currently used so I can set
    ; "DROLSKY::WeaverConfig.include_donations_pod = 0" in a dist.ini file.

    [ReadmeAnyFromPod / README.md in build]
    type     = markdown
    filename = README.md
    location = build
    phase    = build

    [GenerateFile::FromShareDir / Generate CONTRIBUTING.md]
    -dist     = Dist-Zilla-PluginBundle-DROLSKY
    -filename = CONTRIBUTING.md
    ; This is determined by looking through the distro for .xs files.
    has_xs    = ...

    [GenerateFile::FromShareDir / Generate CODE_OF_CONDUCT.md]
    -dist     = Dist-Zilla-PluginBundle-DROLSKY
    -filename = CODE_OF_CONDUCT.md


    ; Only added if the distro has .xs files

    ; Like the default License plugin except that it defaults to Artistic 2.0.
    ; Also, if the copyright_year for the bundle is not this year, it passes
    ; something like "2014-2016" to Software::License.


    ; Just like Dist::Zilla::Plugin::Git::CheckFor::CorrectBranch except that
    ; it allows releases from any branch for TRIAL
    ; releases. https://github.com/RsrchBoy/dist-zilla-pluginbundle-git-checkfor/issues/24


    ; Generates/updates perlcriticrc, and perltidyrc
    ; Generates/updates precious.toml
    ; Generates some dev tool helper scripts when using precious.

    ; The allow_dirty list is basically all of the generated or munged files
    ; in the distro, including:
    ;     Build.PL
    ;     CODE_OF_CONDUCT.md
    ;     CONTRIBUTING.md
    ;     Changes
    ;     LICENSE
    ;     Makefile.PL
    ;     README.md
    ;     cpanfile
    ;     ppport.h
    ;     precious.toml
    allow_dirty = ...

    [Git::Commit / Commit generated files]
    allow_dirty = ...



    [Git::Commit / Commit version bump]
    allow_dirty_match = .+
    commit_msg        = Bump version after release

    [Git::Push / Push version bump]


Bugs may be submitted at https://github.com/autarch/Dist-Zilla-PluginBundle-DROLSKY/issues.


The source code repository for Dist-Zilla-PluginBundle-DROLSKY can be found at https://github.com/autarch/Dist-Zilla-PluginBundle-DROLSKY.


If you'd like to thank me for the work I've done on this module, please consider making a "donation" to me via PayPal. I spend a lot of free time creating free software, and would appreciate any support you'd care to offer.

Please note that I am not suggesting that you must do this in order for me to continue working on this particular software. I will continue to do so, inasmuch as I have in the past, for as long as it interests me.

Similarly, a donation made in this way will probably not make me work on this software much more, unless I get so many donations that I can consider working on free software full time (let's all have a chuckle at that together).

To donate, log into PayPal and send money to autarch@urth.org, or use the button at https://www.urth.org/fs-donation.html.


Dave Rolsky <autarch@urth.org>


  • Karen Etheridge <ether@cpan.org>

  • Mark Fowler <mark@twoshortplanks.com>


This software is Copyright (c) 2013 - 2021 by Dave Rolsky.

This is free software, licensed under:

  The Artistic License 2.0 (GPL Compatible)

The full text of the license can be found in the LICENSE file included with this distribution.