The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

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

VERSION

This document describes version 0.03_04 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/me/%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

	; 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
	[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.

  • 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

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/me/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) 2013 by Buddy Burden.

This is free software, licensed under:

The Artistic License 2.0 (GPL Compatible)