The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Dist::Zilla::PluginBundle::Author::BBYRD - DZIL Author Bundle for BBYRD

SYNOPSIS

    ; Very similar to...
 
    [ReportPhase]
 
    ; Makefile.PL maker
    [MakeMaker]
 
    [Git::NextVersion]
    first_version = 0.90
 
    [Git::GatherDir]
 
    ; File modifiers
    [OurPkgVersion]
    [PodWeaver]
 
    ; File pruners
    [PruneCruft]
 
    ; Extra file creation
    [GitFmtChanges]
    [ManifestSkip]
    [Manifest]
    [License]
    [ReadmeAnyFromPod / ReadmeHtmlInBuild]
    [ReadmeAnyFromPod / ReadmePodInBuild]
    [InstallGuide]
    [ExecDir]
 
    ; t/* tests
    [Test::Compile]
 
    ; POD tests
    [PodCoverageTests]
    [PodSyntaxTests]
    ;[Test::PodSpelling]  ; Win32 install problems
 
    ; Other xt/* tests
    [RunExtraTests]
    ;[MetaTests]  ; until Test::CPAN::Meta supports 2.0
    [NoTabsTests]
    [Test::EOL]
    trailing_whitespace = 0
 
    [Test::CPAN::Meta::JSON]
    [Test::CheckDeps]
    [Test::Portability]
    ;[Test::Pod::LinkCheck]  ; Both of these are borked...  
    ;[Test::Pod::No404s]     ; ...I really need to create my own
    [Test::Synopsis]
    [Test::MinimumVersion]
    [ReportVersions::Tiny]
    [Test::CheckManifest]
    [Test::DistManifest]
    [Test::UseAllModules]
    [Test::Version]
 
    ; Prereqs
    [@Prereqs]
    minimum_perl = 5.10.1
 
    [CheckPrereqsIndexed]
 
    ; META maintenance
    [MetaConfig]
    [MetaJSON]
 
    [MetaNoIndex]
    directory = t
    directory = xt
    directory = examples
    directory = corpus
 
    [MetaProvides::Package]
    meta_noindex = 1        ; respect prior no_index directives
 
    [MetaResourcesFromGit]
    x_irc          = irc://irc.perl.org/#distzilla
    bugtracker.web = https://github.com/%a/%r/issues
 
    ; Post-build plugins
    [CopyFilesFromBuild]
    move = .gitignore
    copy = README.pod
 
    ; Post-build Git plugins
    [TravisYML]
    test_min_deps = 1
 
    [Git::CheckFor::CorrectBranch]
    [Git::CommitBuild]
    release_branch = build/%b
    release_message = Release build of v%v (on %b)
 
    [@Git]
    allow_dirty = dist.ini
    allow_dirty = .travis.yml
    allow_dirty = README.pod
    changelog =
    commit_msg = Release v%v
    push_to = origin
    push_to = origin build/master:build/master
 
    [GitHub::Update]
    metacpan = 1
 
    [TestRelease]
    [ConfirmRelease]
    [UploadToCPAN]
    [InstallRelease]
    [Clean]
 
    ; PodWeaver deps
    ; authordep Pod::Weaver::Plugin::WikiDoc
    ; authordep Pod::Weaver::Plugin::Encoding
    ; authordep Pod::Weaver::Section::Availability
    ; authordep Pod::Weaver::Section::Support
    ; authordep Pod::Elemental::Transformer::List
 
    ; sanity deps
    ; authordep autovivification
    ; authordep indirect
    ; authordep multidimensional

DESCRIPTION

L<sanity|I frelling hate these things>, but several releases in, I found myself needing to keep my C<dist.ini> stuff in sync, which requires a single module to bind them to.

NAMING SCHEME

I'm a strong believer in structured order in the chaos that is the CPAN namespace. There's enough cruft in CPAN, with all of the forked modules, legacy stuff that should have been removed 10 years ago, and confusion over which modules are available vs. which ones actually work. (Which all stem from the same base problem, so I'm almost repeating myself...)

Like I said, I hate writing these personalized modules on CPAN. I even bantered around the idea of using L<https://github.com/SineSwiper/Dist-Zilla-PluginBundle-BeLike-You/blob/master/BeLike-You.pod|MetaCPAN's author JSON input> to store the plugin data. However, keeping the Author plugins separated from the real PluginBundles is a step in the right direction. See L<Dist::Zilla::PluginBundle::Author::KENTNL/NAMING-SCHEME|KENTNL's comments on the Author namespace> for more information.

CAVEATS

This uses L<Dist::Zilla::Role::PluginBundle::Merged>, so all of the plugins' arguments are available, using Merged's rules. Special care should be made with arguments that might not be unique with other plugins. (Eventually, I'll throw these into C<config_rename>.)

If this is a problem, you might want to consider using L<Dist::Zilla::PluginBundle::Filter|@Filter>.

One exception is C<x_irc>, which is detected and passed to L<Dist::Zilla::Plugin::MetaResourcesFromGit|MetaResourcesFromGit> properly.

SEE ALSO

In building my ultimate C<dist.ini> file, I did a bunch of research on which modules to cram in here. As a result, this is a pretty large set of plugins, but that's exactly how I like my DZIL. Feel free to research the modules listed here, as there's a bunch of good modules that you might want to include in your own C<dist.ini> and/or Author bundle.

Also, here's my C<profile.ini>, if you're interested:

    [TemplateModule/:DefaultModuleMaker]
    template = Module.pm
 
    [DistINI]
    append_file = plugins.ini
 
    [GatherDir::Template]
    root = skel
 
    [GenerateFile / Generate-.gitignore]
    filename = .gitignore
    is_template = 1
    content = MANIFEST
    content = MANIFEST.bak
    content = Makefile
    content = Makefile.old
    content = Build
    content = Build.bat
    content = META.*
    content = MYMETA.*
    content = .build/
    content = _build/
    content = blib/
    content = inc/
    content = .lwpcookies
    content = .last_cover_stats
    content = nytprof.out
    content = pod2htm*.tmp
    content = pm_to_blib
    content = {{$dist->name}}-*
    content = {{$dist->name}}-*.tar.gz
 
    [Git::Init]
    commit_message = Initial commit
 
    [GitHub::Create]

TODO

Create a L<Pod::Weaver> author bundle.

AVAILABILITY

The project homepage is https://github.com/SineSwiper/Dist-Zilla-PluginBundle-Author-BBYRD/wiki.

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::Author::BBYRD/.

SUPPORT

Internet Relay Chat

You can get live help by using IRC ( Internet Relay Chat ). If you don't know what IRC is, please read this excellent guide: http://en.wikipedia.org/wiki/Internet_Relay_Chat. Please be courteous and patient when talking to us, as we might be busy or sleeping! You can join those networks/channels and get help:

  • irc.perl.org

    You can connect to the server at 'irc.perl.org' and join this channel: #distzilla then talk to this person for help: SineSwiper.

Bugs / Feature Requests

Please report any bugs or feature requests via .

AUTHOR

Brendan Byrd <BBYRD@CPAN.org>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2012 by Brendan Byrd.

This is free software, licensed under:

  The Artistic License 2.0 (GPL Compatible)

1 POD Error

The following errors were encountered while parsing the POD:

Around line 446:

Nested L<> are illegal. Pretending inner one is X<...> so can continue looking for other errors.