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

NAME

Dist::Zilla::PluginBundle::BAREFOOT - Dist::Zilla configuration the way BAREFOOT does it

VERSION

This document describes version 0.06 of Dist::Zilla::PluginBundle::BAREFOOT.

SYNOPSIS

   # in dist.ini
   [@BAREFOOT]

DESCRIPTION

This is a Dist::Zilla PluginBundle. It is roughly equivalent to the following dist.ini:

        ; version provider
        ; hopefully soemething here soon
 
        ; choose files to include
        [GatherDir]                                                     ; everything under top dir
        exclude_filename = README.pod           ; skip this generated file
        exclude_filename = META.json            ; skip this generated file
 
        ;[PruneCruft]                                           ; default stuff to skip
        ;[ManifestSkip]                                         ; if -f MANIFEST.SKIP, skip those, too
 
        ; this should probably be moved to metadata section
        [AutoPrereqs]                                           ; find prereqs from code
        skip = ^t::lib
 
        ; file modifications
        [OurPkgVersion]                                         ; add $VERSION = ... to all files
        ;[InsertCopyright                                       ; add copyright at "# COPYRIGHT"
        [PodWeaver]                                                     ; generate Pod
        config_plugin = @BAREFOOT                       ; allows Pod::WikiDoc and a few other bits and bobs
 
        ; generated files
        [License]                                                       ; boilerplate license
        [ReadmeAnyFromPod]                                      ; create README.pod in repo directory
        type = pod
        filename = README.pod
        location = root
 
        ; should this be in metadata section?
        [Bugtracker]
        web = http://github.com/barefootcoder/%l/issues
 
        ; xt tests
        ;[Test::PodSpelling]                                    ; xt/author/pod-spell.t
        ;[MetaTests]                                                    ; xt/release/meta-yaml.t
        ;[PodSyntaxTests]                                       ; xt/release/pod-syntax.t
        ;[PodCoverageTests]                                     ; xt/release/pod-coverage.t
        ;[Test::Version]                                                ; xt/release/test-version.t
 
        ; metadata
        ;[MinimumPerl]                                          ; determine minimum perl version
        [GithubMeta]
        remote = origin
 
        ;[MetaYAML]                                                     ; generate META.yml (v1.4)
        [MetaJSON]                                                      ; generate META.json (v2)
 
        ;[MetaNoIndex]                                          ; sets 'no_index' in META
        ;directory = t
        ;directory = xt
        ;directory = examples
        ;directory = corpus
        ;package = DB                                           ; just in case
 
        ; can't get this one to work right ATM
        ; [MetaProvides::Package]                       ; add 'provides' to META files
        ; meta_noindex = 1                                      ; respect prior no_index directives
        [MetaProvides::Class]                           ; add 'provides' to META files for classes
        inherit_version = 1                             ; use version from dist.ini
 
        ; build system
        [ExecDir]                                                       ; include 'bin/*' as executables
        [ShareDir]                                                      ; include 'share/' for File::ShareDir
        [MakeMaker]                                                     ; create Makefile.PL
 
        ; manifest (after all generated files)
        [Manifest]                                                      ; create MANIFEST
 
        ; before release
        [Git::Check]                                            ; ensure all files checked in
        allow_dirty = dist.ini
        allow_dirty = Changes
        allow_dirty = README.pod                        ; ignore this generated file
        allow_dirty = META.json                         ; ignore this generated file
 
        ;[CheckPrereqsIndexed]                          ; ensure prereqs are on CPAN
        [CheckVersionIncrement]                         ; ensure version has been bumped
        [CheckChangesHasContent]                        ; ensure Changes has been updated
        ;[CheckExtraTests]                                      ; ensure xt/ tests pass
        [TestRelease]                                           ; ensure t/ tests pass
        [ConfirmRelease]                                        ; prompt before uploading
 
        ; releaser
        [UploadToCPAN]                                          ; uploads to CPAN
 
        ; after release
        [Git::Tag]                                                      ; tag repo with custom tag
        tag_format = v%v                                        ; this one is overridable
        tag_message = version %v for CPAN       ; this one isn't
 
        ; NextRelease acts *during* pre-release to write $VERSION and
        ; timestamp to Changes and  *after* release to add a new {{$NEXT}}
        ; section, so to act at the right time after release, it must come
        ; after UploadToCPAN but before Git::Commit in the dist.ini.  It
        ; will still act during pre-release as usual.
        [NextRelease]
 
        [Git::Commit]                                           ; commit Changes (for new dev)
 
        [Git::Push]                                                     ; push repo to remote
        push_to = origin

USAGE

To use this PluginBundle, just add it to your dist.ini. You can provide the following options:

  • auto_prereq -- This indicates whether AutoPrereq should be used or not. Default is 1.

  • tag_format -- Given to Git::Tag. Default is 'v%v'.

  • version_regexp -- Given to Git::NextVersion. Default is '^v(.+)$'.

  • git_remote -- Given to Git::Push _in addition to_ origin; given to GithubMeta _instead of_ origin.

  • fake_release -- Swaps FakeRelease for UploadToCPAN. Mostly useful for testing a dist.ini without risking a real release.

  • stopwords -- Add stopword for Test::PodSpelling (can be repeated).

  • no_spellcheck -- Omit Test::PodSpelling tests.

  • repository_link -- Override the Pod::Weaver Support section default (which is "both").

INSTALLATION

If you want to make sure you have all the necessary prereqs, try this (from the dir you checked out the distro into):

        perl -lne 'print $1 if /Dependencies/../VERSION/ and /use\s+(\S+)/' lib/*/*/PluginBundle/BAREFOOT.pm | cpanm -n

SEE ALSO

SUPPORT

Perldoc

You can find documentation for this module with the perldoc command.

  perldoc Dist::Zilla::PluginBundle::BAREFOOT

Bugs / Feature Requests

                This module is on GitHub.  Feel free to fork and submit patches.  Please note that I develop
                via TDD (Test-Driven Development), so a patch that includes a failing test is much more
                likely to get accepted (or least likely to get accepted more quickly).

                If you just want to report a problem or suggest a feature, that's okay too.  You can create
                an issue on GitHub here: L<http://github.com/barefootcoder/dist-zilla-pluginbundle-barefoot/issues>.

Source Code

none https://github.com/barefootcoder/dist-zilla-pluginbundle-barefoot

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

AUTHOR

Buddy Burden <barefoot@cpan.org>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2016 by Buddy Burden.

This is free software, licensed under:

  The Artistic License 2.0 (GPL Compatible)