The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
name             = Pinto
author           = Jeffrey Ryan Thalhammer <jeff@stratopan.com>
copyright_holder = Jeffrey Ryan Thalhammer
copyright_year   = 2015
license          = Perl_5
main_module      = lib/Pinto.pm
version          = 0.12


[GatherDir]         ; everything under top dir
[PruneCruft]        ; default stuff to skip
[ManifestSkip]      ; if -f MANIFEST.SKIP, skip those too

; file modifications
[OurPkgVersion]     ; add $VERSION = ... to all files
[PodWeaver]         ; generate Pod

; generated files
[License]           ; boilerplate license
[ReadmeFromPod]     ; from Pod (runs after PodWeaver)
[ReadmeAnyFromPod / ReadmePodInRoot]
type     = markdown
filename = README.md
location = root

; t tests
[Test::Compile]     ; make sure .pm files all compile
fake_home = 1       ; fakes $ENV{HOME} just in case

[Test::ReportPrereqs]
include = DBIx::Class
include = DBD::SQLite

; xt tests
[MetaTests]         ; xt/release/meta-yaml.t
[PodSyntaxTests]    ; xt/release/pod-syntax.t
[Test::Version]     ; xt/release/test-version.t

; metadata
[AutoPrereqs]       ; find prereqs from code
skip = TestClass
skip = Pinto::Tester
skip = Pinto::Tester::Util
skip = Pinto::Server::Tester

[Prereqs / ConfigureRequires]
Module::Build               = 0.4005             ; for test_requires
Module::Build::CleanInstall = 0.05

[Prereqs / BuildRequires]
Module::Build               = 0.4005             ; for test_requires
Module::Build::CleanInstall = 0.05

[Prereqs / TestRequires]
Test::More                  = 0.96               ; for done_testing()
Module::Faker::Dist         = 0.014              ; works on old perls
Apache::Htpasswd            = 0

[Prereqs / RuntimeRequires]           ; prereqs that aren't findable
DBD::SQLite                 = 1.33               ; not use`d directly
DBIx::Class                 = 0.08200            ; prefetch is fixed
App::Cmd                    = 0.323              ; built-in "version" command
Archive::Tar                = 0                  ; in case they don't have tar(1)
Archive::Extract            = 0.68               ; older versions generated some suprrious warnings
Dist::Metadata              = 0.926              ; ignores t, xt, inc, and local dirs
JSON::PP                    = 2.27103            ; wanted by Parse::CPAN::Meta
Module::CoreList            = 5.20160720         ; latest perl is 5.24.0
Module::Metadata            = 1.000031           ; for rt #85961
Throwable::Error            = 0.200005           ; fixed memory leak
MooseX::ClassAttribute      = 0.27               ; compatible with new Moose
Authen::Simple::Passwd      = 0                  ; default authentication backend
Starman                     = 0.3014             ; the default server backend
Plack                       = 1.0028             ; detect disconnects better
Term::ANSIColor             = 2.02               ; for colorvalid()
URI::Escape                 = 3.31               ; regex warning on 5.22 fixed
Variable::Magic             = 0.57               ; required for 5.22

; author prereqs (magic comments)
; authordep Pod::Weaver::Plugin::StopWords
; authordep Pod::Weaver::Plugin::Encoding
; authordep Pod::Weaver::Section::Support
; authordep Pod::Weaver::Section::Contributors

[MinimumPerl]       ; determine minimum perl version
[MetaNoIndex]       ; sets 'no_index' in META
directory = t
directory = xt
directory = etc
directory = t/lib
directory = examples
directory = corpus

[MetaResources]
homepage        = https://metacpan.org/module/Pinto
bugtracker.web  = https://github.com/thaljef/Pinto/issues
repository.web  = https://github.com/thaljef/Pinto
repository.url  = git://github.com/thaljef/Pinto.git
repository.type = git

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

[MetaYAML]               ; generate META.yml (v1.4)
[MetaJSON]               ; generate META.json (v2)

[ContributorsFromGit]

; build system
[ExecDir]                ; include 'bin/*' as executables
[ShareDir]               ; include 'share/' for File::ShareDir
[ModuleBuild]            ; create Build.PL
mb_class = Pinto::Module::Build

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

; before release
[Git::Check]             ; ensure all files checked in
[CheckPrereqsIndexed]    ; ensure prereqs are on CPAN
[CheckChangesHasContent] ; ensure Changes has been updated
[CheckExtraTests]        ; ensure xt/ tests pass
[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

; 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