; --- Project details
name             = CPAN-Testers-Backend
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
directory = old
[Git::Contributors]
; authordep Pod::Weaver::Section::Contributors
[Test::ReportPrereqs]
[Test::Compile]

; --- Repository management
[Git::GatherDir]
include_dotfiles = 1
exclude_match = ^eg
exclude_match = ^old
; 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

[Run::AfterBuild]
; Add travis and coveralls badges to README.mkdn
run = perl -pi -e 's{(# SYNOPSIS)}{# STATUS\n\n<a href="https://travis-ci.org/preaction/CPAN-Testers-Backend"><img src="https://travis-ci.org/preaction/CPAN-Testers-Backend.svg?branch=master"></a><a href="https://coveralls.io/r/preaction/CPAN-Testers-Backend"><img src="https://coveralls.io/repos/preaction/CPAN-Testers-Backend/badge.png" alt="Coverage Status" /></a>\n\n$1}' README.mkdn

; --- 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.024
DBI = 0
CPAN::Testers::Schema = 0.018
Beam::Runner = 0.013 ; Added Beam::Runnable::Single
Beam::Wire = 1.020 ; Added Beam::Service
Log::Any = 1.046 ; Syslog adapter in core distribution
Import::Base = 0.012 ; Fixed using subs in imports
Getopt::Long = 2.36 ; First version with GetOptionsFromArray
Beam::Minion = 0.007 ; Added retries
Minion = 8
Minion::Backend::mysql = 0.12 ; First version to actually work on Minion v8
Minion::Backend::SQLite = 0

;-- Prereqs for populating old metabase cache
JSON::MaybeXS = 0
CPAN::Testers::Report = 0
Metabase::User::Profile = 0
Data::FlexSerializer = 0
Sereal = 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

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

[Prereqs / TestRecommends]
Test::mysqld = 0