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

; --- Project details
name             = Yancy
author           = Doug Bell <preaction@cpan.org>
license          = Perl_5
copyright_holder = Doug Bell
copyright_year   = 2017

[Authority]
authority  = cpan:PREACTION
do_munging = 0

[GithubMeta]
;homepage = http://preaction.me/project
issues = 1
[MetaResources]
;IRC                     = irc://irc.perl.org/#channel

; --- Module management
[@Filter]
-bundle = @Basic
; GatherDir must be configured separately
-remove = GatherDir
-remove = Readme

[Readme::Brief]
[ReadmeAnyFromPod]
location = root
filename = README.mkdn
type = markdown

[PodWeaver]
replacer = replace_with_comment
post_code_replacer = replace_with_nothing
[RewriteVersion]
[CPANFile]
[MetaJSON]
[MetaProvides::Package]
[MetaNoIndex]
directory = t
directory = xt
directory = inc
directory = share
directory = eg
directory = examples
[Git::Contributors]
; authordep Pod::Weaver::Section::Contributors
[Test::ReportPrereqs]
[Test::Compile]
skip = Yancy::Backend ; All backend modules have additional requirements

; --- Repository management
[Git::GatherDir]
include_dotfiles = 1
prune_directory = ^eg
; Exclude dotfiles in the root directory
exclude_match = ^\.[^/]+$
; Exclude generated root content, which is included by the various plugins
; Without this, we get an error about duplicate content
exclude_filename = cpanfile
exclude_filename = META.json
exclude_filename = LICENSE
exclude_filename = README
exclude_filename = README.mkdn
exclude_filename = Makefile.PL

[CopyFilesFromBuild]
; Copy generated content to the repository root so users without Dist::Zilla
; can use it
copy = cpanfile
copy = META.json
copy = LICENSE
copy = Makefile.PL

[GitHubREADME::Badge]
badges = travis
badges = coveralls

; --- Git management
[CheckChangesHasContent]
changelog = CHANGES
[Git::Check]
; Automatically commit these files during release
allow_dirty_match = README.*
allow_dirty_match = .*[.]PL
allow_dirty = cpanfile
allow_dirty = LICENSE
allow_dirty = CHANGES
allow_dirty = META.json

[Git::Commit / Commit_Dirty_Files]
; Automatically commit with release version and changelog
changelog = CHANGES
commit_msg = release v%v%n%n%c
allow_dirty_match = README.*
allow_dirty_match = .*[.]PL
allow_dirty = cpanfile
allow_dirty = LICENSE
allow_dirty = CHANGES
allow_dirty = META.json
add_files_in = .
[Git::Tag]
changelog = CHANGES
tag_message = %N v%v - %{yyyy-MM-dd}d%n%n%c ; Tag annotations show up in github release list

; NextRelease acts *during* pre-release to write $VERSION and
; timestamp to Changes and  *after* release to add a new 
; 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]
filename = CHANGES
[BumpVersionAfterRelease]

[Git::Commit / Commit_Changes]
commit_msg = incrementing version after release
allow_dirty = CHANGES
allow_dirty_match = ^bin/
allow_dirty_match = ^lib/.*\.pm$
allow_dirty_match = .*[.]PL
[Git::Push]

; --- Project-specific directives

[Prereqs]
perl = 5.010
Mojolicious = 7.15 ; First version with Mojo::File
Mojolicious::Plugin::OpenAPI = 1.22
Module::Runtime = 0
Sys::Hostname = 0
File::Spec::Functions = 0
FindBin = 0

;-- Common prereqs with minimum version requirements
;Path::Tiny = 0.072 ; Fixes issues with File::Path
;List::Util = 1.29 ; First version with pair* functions
;Getopt::Long = 2.36 ; First version with GetOptionsFromArray
;Import::Base = 0.012 ; Fixed using subs in imports
;Log::Any = 1.045 ; Returns message and faster

[Prereqs / TestRequires]
Test::More = 1.001005 ; First version that allows args to subtests

;Test::Deep = 0
;Test::Differences = 0
;Test::Fatal = 0