name    = Acme-Godot
author  = Salve J. Nilsen <sjn@cpan.org>
license = Perl_5
copyright_holder = Salve J. Nilsen
copyright_year   = 2015

; version provider
[Git::NextVersion]  ; get version from last release tag
version_regexp = ^release-v(.+)$
first_version  = 0.001010

; collect contributors list
[Git::Contributors]
;[ContributorsFromPod]

; choose files to include
[Git::GatherDir]         ; everything from git ls-files
exclude_filename = README.pod   ; skip this generated file
exclude_filename = README.mkdn  ; skip this generated file
exclude_filename = META.json    ; skip this generated file
exclude_filename = cpanfile     ; skip this generated file

[PruneCruft]        ; default stuff to skip
;[ManifestSkip]      ; if -f MANIFEST.SKIP, skip those, too

; file modifications
[InsertCopyright]   ; add copyright at "# COPYRIGHT"
; [PodWeaver]         ; generate Pod
; config_plugin = @SJN ; my own plugin allows Pod::WikiDoc
; replacer = replace_with_comment
; post_code_replacer = replace_with_nothing
[PodVersion]        ; add a VERSION header i POD

; generated files
[License]           ; boilerplate license
[ReadmeFromPod]     ; from Pod (runs after PodWeaver)

; t tests
[Test::ReportPrereqs]   ; show prereqs in automated test output

; xt tests
[Test::MinimumVersion]  ; xt/release/minimum-version.t
max_target_perl = 5.010 ; don't use syntax/features past 5.10
; check spelling, except for the listed stopwords
[Test::PodSpelling]     ; xt/author/pod-spell.t
stopwords = MERCHANTABILITY
stopwords = Sandnes
stopwords = assistive
stopwords = mr
[Test::Perl::Critic]    ; xt/author/critic.t
[MetaTests]             ; xt/release/meta-yaml.t
[PodSyntaxTests]        ; xt/release/pod-syntax.t
[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           ; fakes $ENV{HOME} just in case
xt_mode = 1             ; make sure all files compile
[Test::Kwalitee]        ; we like Kwalitee tests!

; metadata
[AutoPrereqs]           ; find prereqs from code
skip = ^t::lib

[Authority]
authority = cpan:SJN
do_munging = 0

[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

[Prereqs::AuthorDeps]   ; add authordeps as develop/requires
[MetaYAML]              ; generate META.yml (v1.4)
[MetaJSON]              ; generate META.json (v2)
[CPANFile]              ; generate cpanfile

; build system
[ExecDir]           ; include 'bin/*' as executables
[ShareDir]          ; include 'share/' for File::ShareDir
[MakeMaker]         ; create Makefile.PL
eumm_version = 6.17
default_jobs = 5

; manifest (after all generated files)
[Manifest]          ; create MANIFEST

; copy cpanfile back to repo dis
[CopyFilesFromBuild]
copy = cpanfile

; before release

[PromptIfStale]     ; check if our build tools are out of date
module = Dist::Zilla
; module = Dist::Zilla::PluginBundle::SJN
check_all_plugins = 1

[Git::CheckFor::CorrectBranch] ; ensure on master branch

[Git::Check]        ; ensure all files checked in
allow_dirty = dist.ini
allow_dirty = Changes
allow_dirty = cpanfile

[CheckMetaResources]     ; ensure META has 'resources' data
[CheckPrereqsIndexed]    ; ensure prereqs are on CPAN
[CheckChangesHasContent] ; ensure Changes has been updated

[RunExtraTests]   ; ensure xt/ tests pass
default_jobs = 5

[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 = release-v%v

; 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