name                = Data-Serializer-JSON-XS
author              = Nour Sharabash <amirite@cpan.org>
abstract            = JSON::XS Data Serializer
license             = Perl_5
copyright_holder    = Nour Sharabash
main_module         = lib/Data/Serializer/JSON/XS.pm
version             = 0.01

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

; collect contributors list
[ContributorsFromGit]

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

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

; file modifications
[OurPkgVersion]     ; add $VERSION = ... to all files
[InsertCopyright]   ; add copyright at "# COPYRIGHT"
[PodWeaver]         ; generate Pod
config_plugin = @DAGOLDEN ; my own plugin allows Pod::WikiDoc

; generated files
[License]           ; boilerplate license
[ReadmeAnyFromPod]     ; from Pod (runs after PodWeaver)
[ReadmeAnyFromPod / ReadmeInRoo ]  ; create README.pod in repo directory
type = pod
filename = README.pod
location = root

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

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

; xt tests
;[Test::Perl::Critic] ; xt/author/critic.t
;[MetaTests]          ; xt/release/meta-yaml.t
;[PodSyntaxTests]     ; xt/release/pod-syntax.t
;[PodCoverageTests]   ; xt/release/pod-coverage.t
;[Test::Portability]  ; xt/release/portability.t (of file name)
options = test_one_dot = 0

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

[Prereqs]
Data::Serializer = 0
JSON::XS = 0

[Authority]
authority = cpan:AMIRITE
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

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

[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)

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

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

; copy META.json back to repo dis
[CopyFilesFromBuild]
copy = META.json

; before release
[Git::Check]        ; ensure all files checked in
allow_dirty = dist.ini
allow_dirty = Changes
allow_dirty = README.pod
allow_dirty = META.json

[CheckMetaResources]     ; ensure META has 'resources' data
[CheckPrereqsIndexed]    ; ensure prereqs are on CPAN
;[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