Dist::Zilla configuration the way ODYNIEC does it
Perl
Switch branches/tags
Pull request Compare This branch is 11 commits ahead, 73 commits behind dagolden:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
corpus/DZ1
lib
t
.gitignore
.local.vimrc
.perltidyrc
Changes
README.pod
cpanfile
dist.ini
perlcritic.rc
tidyall.ini

README.pod

NAME

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

VERSION

version 0.021

SYNOPSIS

# in dist.ini
[@ODYNIEC]

DESCRIPTION

This is a Dist::Zilla PluginBundle based on Dist::Zilla::PluginBundle::DAGOLDEN, which was created by David Golden. It is roughly equivalent to the following dist.ini:

; Version provider
[Git::NextVersion]  ; Get version from last release tag
version_regexp = ^v(.+)$

; Collect contributors list
[ContributorsFromGit]

; Choose files to include
[Git::GatherDir]    ; Everything from git ls-files
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 = @ODYNIEC ; For Pod::WikiDoc

; generated files
[License]           ; Boilerplate license (core)
[ReadmeAnyFromPod / ReadmePodInRoot]     ; For README.pod
type = pod

; Generated t/ tests
[Test::ReportPrereqs]   ; Show prereqs in automated test output

; Generated xt/ tests
[Test::MinimumVersion]  ; xt/release/minimum-version.t
max_target_perl = 5.010 ; Don't use syntax/features past 5.10
[Test::PodSpelling] ; xt/author/pod-spell.t
[Test::Perl::Critic]; xt/author/critic.t
[MetaTests]         ; xt/release/meta-yaml.t (core)
[PodSyntaxTests]    ; xt/release/pod-syntax.t (core)
[PodCoverageTests]  ; xt/release/pod-coverage.t (core)
[Test::Portability] ; xt/release/portability.t (of file name)
options = test_one_dot = 0
[Test::Version]     ; xt/release/test-version.t
[Test::Compile]     ; xt/author/00-compile.t
fake_home = 1       ; Fake $ENV{HOME} just in case
[Test::CPAN::Changes]   ; xt/release/cpan-changes.t

; Metadata
[AutoPrereqs]       ; Find prereqs from code (core)
skip = ^t::lib

[MinimumPerl]       ; Determine minimum Perl version

[MetaNoIndex]       ; Sets 'no_index' in META
directory = t
directory = xt
directory = examples
directory = corpus
package = DB        ; Just in case

[GithubMeta]        ; Set META resources
remote = origin
remote = github
issues = 1

[MetaProvides::Package] ; Add 'provides' to META files
meta_noindex = 1        ; Respect prior no_index directives

[MetaYAML]          ; Generate META.yml (v1.4) (core)
[MetaJSON]          ; Generate META.json (v2) (core)
[CPANFile]          ; Generate cpanfile

; Build system
[ExecDir]           ; Include 'bin/*' as executables (core)
[ShareDir]          ; Include 'share/' for File::ShareDir (core)
[MakeMaker]         ; Create Makefile.PL (core)
eumm_version = 6.17

; Copy files from build back to root for inclusion in VCS
[CopyFilesFromBuild]
copy = cpanfile

; Manifest (after all generated files)
[Manifest]          ; Create MANIFEST (core)

; Before release
[Git::Check]        ; Ensure all files checked in
allow_dirty = dist.ini
allow_dirty = Changes
allow_dirty = cpanfile
allow_dirty = README.pod

[CheckMetaResources]     ; Ensure META has 'resources' data
[CheckPrereqsIndexed]    ; Ensure prereqs are on CPAN
[CheckChangesHasContent] ; Ensure Changes has been updated
[CheckExtraTests]   ; Ensure xt/ tests pass
[TestRelease]       ; Ensure t/ tests pass (core)
[ConfirmRelease]    ; Prompt before uploading (core)

; Release
[UploadToCPAN]      ; Upload to CPAN (core)

; After release

; 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]
format = %-9v %{yyyy-MM-dd}d

[Git::Commit] ; Commit Changes
allow_dirty = dist.ini
allow_dirty = Changes
allow_dirty = README.pod
allow_dirty = cpanfile

[Git::Tag]          ; Tag repo with custom tag
tag_message = Version %v

[Git::Push]         ; Push repo to remote

USAGE

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

  • is_task -- this indicates whether TaskWeaver or PodWeaver should be used.

    Default is 0.

  • auto_prereq -- this indicates whether AutoPrereqs should be used or not. Default is 1.

  • darkpan -- for private code; uses FakeRelease and fills in dummy repo/bugtracker data

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

  • git_remote -- where to push after release

  • github_issues -- whether to use github issue tracker. Defaults is 1.

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

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

  • weaver_config -- specifies a Pod::Weaver bundle. Defaults to @ODYNIEC.

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

  • no_git -- bypass all git-dependent plugins

  • no_critic -- omit Test::Perl::Critic tests

  • no_spellcheck -- omit Test::PodSpelling tests

  • no_coverage -- omit PodCoverage tests

  • no_minimum_perl -- omit Test::MinimumVersion tests

When running without git, GatherDir is used instead of Git::GatherDir, AutoVersion is used instead of Git::NextVersion, and all git check and commit operations are disabled.

This PluginBundle now supports ConfigSlicer, so you can pass in options to the plugins used like this:

[@ODYNIEC]
Test::MinimumVersion.max_target_perl = 5.014
ExecDir.dir = scripts

This PluginBundle also supports PluginRemover, so dropping a plugin is as easy as this:

[@ODYNIEC]
-remove = Test::Portability

SEE ALSO

SUPPORT

Bugs / Feature Requests

Please report any bugs or feature requests through the issue tracker at https://github.com/odyniec/p5-Dist-Zilla-PluginBundle-ODYNIEC/issues. You will be notified automatically of any progress on your issue.

Source Code

This is open source software. The code repository is available for public review and contribution under the terms of the license.

https://github.com/odyniec/p5-Dist-Zilla-PluginBundle-ODYNIEC

git clone https://github.com/odyniec/p5-Dist-Zilla-PluginBundle-ODYNIEC.git

AUTHORS

  • David Golden <dagolden@cpan.org>

  • Michal Wojciechowski <odyniec@cpan.org>

CONTRIBUTORS

  • Christian Walde <walde.christian@googlemail.com>

  • Eric Johnson <eric.git@iijo.org>

  • Karen Etheridge <ether@cpan.org>

  • Michal Wojciechowski <odyniec@odyniec.net>

  • Michał Wojciechowski <odyniec@odyniec.eu.org>

  • Philippe Bruhat (BooK) <book@cpan.org>

  • Sergey Romanov <complefor@rambler.ru>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2014 by Michal Wojciechowski.

This is free software, licensed under:

The Apache License, Version 2.0, January 2004