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

version 0.03_02

SYNOPSIS

   # in dist.ini
   [@BAREFOOT]

DESCRIPTION

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

        ; version provider
        [Git::NextVersion]                                      ; get version from last release tag
        first_version = 0.01
        version_regexp = ^v(.+)$
 
        ; 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
 
        ; 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
        [ReadmeFromPod]                                         ; from Pod (runs after PodWeaver)
        [ReadmeAnyFromPod]                                      ; create README.pod in repo directory
        type = pod
        filename = README.pod
        location = root
 
        ; 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
        [AutoPrereqs]                                           ; find prereqs from code
        skip = ^t::lib
 
        [MinimumPerl]                                           ; determine minimum perl version
        [GithubMeta]
        remote = origin
 
        [MetaNoIndex]                                           ; sets 'no_index' in META
        directory = t
        directory = xt
        directory = examples
        directory = corpus
        package = DB                                            ; just in case
 
        [Bugtracker]
        web = http://github.com/me/%l/issues
 
        ; can't get this one to work right ATM
        ; [MetaProvides::Package]                       ; add 'provides' to META files
        ; meta_noindex = 1                                      ; respect prior no_index directives
 
        [MetaYAML]                                                      ; generate META.yml (v1.4)
        [MetaJSON]                                                      ; generate META.json (v2)
 
        ; 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
 
        ; move README.pod back to repo dir
        [CopyFilesFromBuild]
        move = README.pod
 
        ; before release
        [Git::Check]                                            ; ensure all files checked in
        allow_dirty = dist.ini
        allow_dirty = Changes
        allow_dirty = README.pod
        allow_dirty = META.json
 
        [CheckPrereqsIndexed]                           ; ensure prereqs are on CPAN
        [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::Commit / Commit_Dirty_Files]      ; commit Changes (as released)
 
        [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 actually
        ; come after Commit_Dirty_Files but before Commit_Changes in the
        ; dist.ini.  It will still act during pre-release as usual
        [NextRelease]
 
        [Git::Commit / Commit_Changes]          ; 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.

  • weaver_config -- Specifies a Pod::Weaver bundle. Defaults to @BAREFOOT.

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

  • no_spellcheck -- Omit Test::PodSpelling tests.

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

AUTHOR

Buddy Burden <barefoot@cpan.org>

COPYRIGHT AND LICENSE

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

This is free software, licensed under:

  The Artistic License 2.0 (GPL Compatible)

SUPPORT

Perldoc

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

  perldoc Dist::Zilla::PluginBundle::BAREFOOT

Bugs / Feature Requests

none