The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
name    = App-Zapzi
author  = Rupert Lane <rupert@rupert-lane.org>
license = Perl_5
copyright_holder = Rupert Lane
copyright_year   = 2014
main_module = bin/zapzi

;; Automatically define required modules from code
[AutoPrereqs]
skip = ^lib

;; Gather necessary files from the directory
[Git::GatherDir]

;; Remove unnecessary files from the build
[PruneCruft]

;; Remove files listed in MANIFEST.skip
[ManifestSkip]

;; Set 'no_index' in META
[MetaNoIndex]
directory = t
directory = t/lib
directory = xt

;; Set META resources
[AutoMetaResources]
bugtracker.github = user:rupertl
bugtracker.rt     = 0
repository.github = user:rupertl
homepage          = https://metacpan.org/release/%{dist}

;; Add a META.yml and .json file to the dist
[MetaYAML]
[MetaJSON]

;; Add a LICENSE file to the dist
[License]

;; Generate READMEs from module POD
[ReadmeFromPod]
[ReadmeMarkdownFromPod]

; Add our $VERSION to files
[OurPkgVersion]

;; Generate full POD from outlines
[PodWeaver]

;; Collect contributors list
[ContributorsFromGit]

;; Rewrite author/pre-release/smoke tests from xt to t
[ExtraTests]

; Make sure all pm files compile
[Test::Compile]
skip = App::Zapzi::(Roles|Transformers)

;; Create standard tests for POD syntax and coverage
[PodSyntaxTests]
[PodCoverageTests]

;; Create source code static analysis tests
[Test::Perl::Critic]

;; Test META.yml
[MetaTests]

;; Test version number
[Test::Version]

;; Determine minimum perl version
[MinimumPerl]

;; Include bin (by default) dir in the dist
[ExecDir]

;; Include share (by default) dir in the dist
[ShareDir]

;; Produce a Makefile.PL script
[MakeMaker]

;; Produce a MANIFEST file
[Manifest]

;; Ensure tests are run before release
[TestRelease]

;; Refuse to release if there are changed or untracked files
[Git::Check]

;; Ensure something in changelog before releasing
[CheckChangesHasContent]

;; Prompt before releasing to CPAN
[ConfirmRelease]

;; Automatically upload to CPAN on release
[UploadToCPAN]

;; Write the next release number to the changelog
[NextRelease]

;; Commit changelog and dist.ini after release
;; Add the built READMEs into source control
[Git::Commit]
add_files_in = README
add_files_in = README.mkdn

;; Manage the version number by bumping the last one found in git
[Git::NextVersion]

;; Create a git tag from the version number
[Git::Tag]

;; Push to any upstreams after release
[Git::Push]
push_to = github