Dist::Zilla::PluginBundle::Author::MELO - MELO is lazy, this are his rules
version 0.012
# dist.ini [@Author::MELO]
This is the way MELO is building his dists, using Dist::Zilla and in particular Dist::Zilla::Role::PluginBundle::Easy.
I'm still working through all the kinks so don't expect nothing stable until this warning disappears.
This Bundle was forked from Dist::Zilla::PluginBundle::Author::RWSTAUNER.
These are the facts about my code that I would like the bundle to take advantage off, or enforce, on all my dists:
This means that the release process should tag and push each new release to my remote repositories.
Although I keep my code on several remote repositories, Github is the public face for my code, and the official location of the main repository for it.
I also like the integration between the code tools and the issue tracker, and the new issue dashboard, so I prefer to use Github Issues as my prefered bugtracker for all my modules.
I still track whatever is sent to RT, but I'll most likely move the ticket over to Issues and link the two.
Catching a typo or a bug before shipping is much better than receiving the FAIL CPAN Testers report, so I enable a lot of Author and Release tests.
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' authority = 'cpan:MELO' ; to make D::Z::P::Authority happy install_command = cpanm -v -i . (passed to InstallRelease) placeholder_comments = 1 ; use '# VERSION' and '# AUTHORITY' comments releaser = UploadToCPAN skip_plugins = ; default empty; a regexp of plugin names to exclude skip_prereqs = '^t::' ; ignores t::* packages; corresponds to AutoPrereqs.skip weaver_config = @Author::MELO test_pod_links = 1 ; Pod::Links and Pod::No404s enabled test_perl_critic = 0 ; No Perl::Critic by default test_report_versions = 0 ; No ReportVersions::Tiny by default
The fake_release option also respects $ENV{DZIL_FAKERELEASE}.
fake_release
$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.
release
NOTE: This bundle consumes Dist::Zilla::Role::PluginBundle::Config::Slicer so you can also specify attributes for any of the bundled plugins. The option should be the plugin name and the attribute separated by a dot:
[@Author::MELO] AutoPrereqs.skip = Bad::Module
Note that this is different than
[@Author::MELO] [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.
See "CONFIGURATION SYNTAX" in Config::MVP::Slicer for more information.
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:
skip_plugins
[MetaNoIndex] directory = one-dir directory = another-dir [@Author::MELO] skip_plugins = MetaNoIndex
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 [OurPkgVersion] ; inject $VERSION (use PkgVersion if 'placeholder_comments' == 0) [Prepender] ; add header to source code files [PodWeaver] ; munge POD in all modules config_plugin = @Author::MELO ; 'weaver_config' can be set to an alternate Bundle ; 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 ; recent Test::More (including proper working subtests) [ExtraTests] ; build system (dzil core [@Basic]) [ExecDir] ; include 'bin/*' as executables [ShareDir] ; include 'share/' for File::ShareDir [MakeMaker] ; create Makefile.PL ; generate t/ and xt/ tests [ReportVersions::Tiny] ; show module versions used in test reports [@TestingMania] ; *Lots* of dist tests [Test::PodSpelling] ; 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')
We use a lot of modules and plugins and some of them can enable or disable features based on environment variables. I've copied some of the more useful ones to here.
= DZIL_FAKERELEASE
Enable to skip the release to CPAN as the final step of a dzil release run.
dzil release
= DZIL_FIRST_RELEASE
If true, it disables tests that will fail on a first release of a module. One example is Test::Pod::No404s, because before the first release most of the links will not exist yet.
= SKIP_POD_LINKCHECK
Set to false to activate the Test::Pod::LinkCheck module.
If not present or true, we skip it. There is no way at the moment to use extra attributes of Test::Pod::LinkCheck (to disable the remote CPAN checks for example) via the current Dist::Zilla::Plugin::Test::Pod::LinkCheck.
= SKIP_POD_NO404S
Set to false to activate the Test::Pod::No404s module.
If not present or true, we skip it. We keep getting a "This shouldn't happen" exception inside Text::Wrap.
Dist::Zilla
Dist::Zilla::Role::PluginBundle::Easy
Dist::Zilla::Role::PluginBundle::Config::Slicer
Pod::Weaver
You can find documentation for this module with the perldoc command.
perldoc Dist::Zilla::PluginBundle::Author::MELO
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.
MetaCPAN
A modern, open-source CPAN search engine, useful to view POD in HTML format.
http://metacpan.org/release/Dist-Zilla-PluginBundle-Author-MELO
CPAN Testers
The CPAN Testers is a network of smokers who run automated tests on uploaded CPAN distributions.
http://www.cpantesters.org/distro/D/Dist-Zilla-PluginBundle-Author-MELO
CPAN Testers Matrix
The CPAN Testers Matrix is a website that provides a visual overview of the test results for a distribution on various Perls/platforms.
http://matrix.cpantesters.org/?dist=Dist-Zilla-PluginBundle-Author-MELO
CPAN Testers Dependencies
The CPAN Testers Dependencies is a website that shows a chart of the test results of all dependencies for a distribution.
http://deps.cpantesters.org/?module=Dist::Zilla::PluginBundle::Author::MELO
CPAN Ratings
The CPAN Ratings is a website that allows community ratings and reviews of Perl modules.
http://cpanratings.perl.org/d/Dist-Zilla-PluginBundle-Author-MELO
You can email the author of this module at MELO at cpan.org asking for help with any problems you have.
MELO at cpan.org
Please report any bugs or feature requests through the web interface at https://github.com/melo/Dist-Zilla-PluginBundle-Author-Melo/issues. You will be automatically notified of any progress on the request by the system.
The code is open to the world, and available for you to hack on. Please feel free to browse it and play with it, or whatever. If you want to contribute patches, please send me a diff or prod me to pull from your repository :)
https://github.com/melo/Dist-Zilla-PluginBundle-Author-Melo
git clone git://github.com/melo/Dist-Zilla-PluginBundle-Author-Melo.git
Pedro Melo <melo@simplicidade.org>
This software is Copyright (c) 2011 by Pedro Melo.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)
To install Dist::Zilla::PluginBundle::Author::MELO, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Dist::Zilla::PluginBundle::Author::MELO
CPAN shell
perl -MCPAN -e shell install Dist::Zilla::PluginBundle::Author::MELO
For more information on module installation, please visit the detailed CPAN module installation guide.