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

NAME

Dist::Zilla::PluginBundle::Author::RWSTAUNER - RWSTAUNER's Dist::Zilla config

VERSION

version 3.104

SYNOPSIS

  # dist.ini

  [@Author::RWSTAUNER]

DESCRIPTION

This is an Author Dist::Zilla::PluginBundle that I use for building my dists.

This Bundle was heavily influenced by the bundles of RJBS and DAGOLDEN.

CONFIGURATION

Possible options and their default values:

  auto_prereqs   = 1  ; enable AutoPrereqs
  disable_tests  =    ; corresponds to @TestingMania:disable
  fake_release   = 0  ; if true will use FakeRelease instead of 'releaser'
  install_command = cpanm -v -i . (passed to InstallRelease)
  is_task        = 0  ; set to true to use TaskWeaver instead of PodWeaver
  releaser       = UploadToCPAN
  skip_plugins   =    ; default empty; a regexp of plugin names to exclude
  skip_prereqs   =    ; default empty; corresponds to AutoPrereqs:skip
  weaver_config  = @Author::RWSTAUNER

The fake_release option also respects $ENV{DZIL_FAKERELEASE}.

The release option can be set to an alternate releaser plugin or to an empty string to disable adding a releaser. This can make it easier to include a plugin that requires configuration by just ignoring the default releaser and including your own normally.

Note that you can also specify attributes for any of the bundled plugins. This works like Dist::Zilla::Role::Stash::Plugins except that the role is not actually used (and there is no stash) because PluginBundles already have a dynamic configuration. The option should be the plugin name and the attribute separated by a colon (or a dot, or any other non-word character(s)).

For example:

  [@Author::RWSTAUNER]
  AutoPrereqs:skip = Bad::Module

Note that this is different than

  [@Author::RWSTAUNER]
  [AutoPrereqs]
  skip = Bad::Module

which will load the plugin a second time. The first example actually alters the plugin configuration as it is included by the Bundle.

String (or boolean) attributes will overwrite any in the Bundle:

  [@Author::RWSTAUNER]
  CompileTests.fake_home = 0

Arrayref attributes will be appended to any in the bundle:

  [@Author::RWSTAUNER]
  MetaNoIndex:directory = another-dir

Since the Bundle initializes MetaNoIndex:directory to an arrayref of directories, another-dir will be appended to that arrayref.

You can overwrite the attribute by adding non-word characters to the end of it:

  [@Author::RWSTAUNER]
  MetaNoIndex:directory@ = another-dir
  ; or MetaNoIndex:directory[] = another-dir

You can use any non-word characters: use what makes the most sense to you. Note that you cannot specify an attribute more than once (since the configuration is dynamic and the Bundle cannot predeclare unknown attributes as arrayrefs).

If your situation is more complicated you can use the skip_plugins attribute to have the Bundle ignore that plugin and then you can add it yourself:

  [MetaNoIndex]
  directory = one-dir
  directory = another-dir
  [@Author::RWSTAUNER]
  skip_plugins = MetaNoIndex

EQUIVALENT dist.ini

This bundle is roughly equivalent to:

  [Git::NextVersion]      ; autoincrement version from last tag

  ; choose files to include (dzil core [@Basic])
  [GatherDir]             ; everything under top dir
  [PruneCruft]            ; default stuff to skip
  [ManifestSkip]          ; custom stuff to skip
  ; use PruneFiles to specifically remove ^(dist.ini)$
  ; use PruneFiles to specifically remove ^(README.pod)$ (just for github)

  ; munge files
  [Authority]             ; inject $AUTHORITY into modules
  do_metadata = 1         ; default
  [NextRelease]           ; simplify maintenance of Changes file
  ; use W3CDTF format for release timestamps (for unambiguous dates)
  time_zone = UTC
  format    = %-9v %{yyyy-MM-dd'T'HH:mm:ss'Z'}d
  [PkgVersion]            ; inject $VERSION into modules
  [Prepender]             ; add header to source code files

  [PodWeaver]             ; munge POD in all modules
  config_plugin = @Author::RWSTAUNER
  ; 'weaver_config' can be set to an alternate Bundle
  ; set 'is_task = 1' to use TaskWeaver instead

  ; generate files
  [License]               ; generate distribution files (dzil core [@Basic])
  [Readme]

  ; metadata
  [Bugtracker]            ; include bugtracker URL and email address (uses RT)
  [Repository]            ; determine git information (if -e ".git")
  [GithubMeta]            ; overrides [Repository] if repository is on github

  [AutoPrereqs]
  ; disable with 'auto_prereqs = 0'

  [MetaNoIndex]           ; encourage CPAN not to index:
  directory = corpus
  directory = examples
  directory = inc
  directory = share
  directory = t
  directory = xt
  namespace = Local
  namespace = t::lib
  package   = DB

  [MetaProvides::Package] ; describe packages included in the dist
  meta_noindex = 1        ; ignore things excluded by above MetaNoIndex

  [MinimumPerl]           ; automatically determine Perl version required

  [MetaConfig]            ; include Dist::Zilla info in distmeta (dzil core)
  [MetaYAML]              ; include META.yml (v1.4) (dzil core [@Basic])
  [MetaJSON]              ; include META.json (v2) (more info than META.yml)

  [Prereqs / TestRequires]
  Test::More = 0.96       ; require recent Test::More (including subtests)

  [ExtraTests]            ; build system (dzil core [@Basic])
  [ExecDir]               ; include 'bin/*' as executables
  [ShareDir]              ; include 'share/' for File::ShareDir

  [MakeMaker]             ; create Makefile.PL
  [ModuleBuild]           ; create Build.PL
  [DualBuilders]          ; only require one of the above two (prefer 'build')

  ; generate t/ and xt/ tests
  [ReportVersions::Tiny]  ; show module versions used in test reports
  [@TestingMania]         ; Lots of dist tests
  [PodSpellingTests]      ; spell check POD (if installed)

  [Manifest]              ; build MANIFEST file (dzil core [@Basic])

  ; actions for releasing the distribution (dzil core [@Basic])
  [CheckChangesHasContent]
  [TestRelease]           ; run tests before releasing
  [ConfirmRelease]        ; are you sure?
  [UploadToCPAN]
  ; see CONFIGURATION for alternate Release plugin configuration options

  [@Git]                  ; use Git bundle to commit/tag/push after releasing
  [InstallRelease]        ; install the new dist (using 'install_command')

SEE ALSO

SUPPORT

Perldoc

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

  perldoc Dist::Zilla::PluginBundle::Author::RWSTAUNER

Websites

The following websites have more information about this module, and may be of help to you. As always, in addition to those websites please use your favorite search engine to discover more resources.

Bugs / Feature Requests

Please report any bugs or feature requests by email to bug-dist-zilla-pluginbundle-author-rwstauner at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Dist-Zilla-PluginBundle-Author-RWSTAUNER. You will be automatically notified of any progress on the request by the system.

Source Code

http://github.com/magnificent-tears/Dist-Zilla-PluginBundle-Author-RWSTAUNER

  git clone http://github.com/magnificent-tears/Dist-Zilla-PluginBundle-Author-RWSTAUNER

AUTHOR

Randy Stauner <rwstauner@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2010 by Randy Stauner.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.