name             = MarpaX-Languages-C-AST
author           = Jean-Damien Durand <jeandamiendurand@free.fr>
license          = Perl_5
copyright_holder = Jean-Damien Durand
copyright_year   = 2013

; -- This is 95% Dagolden remarquable dist.ini

; version provider
[Git::NextVersion]  ; get version from last release tag
; Historically, tags started with a v, then I moved to a version without v
version_regexp = ^v?(\d+\.\d+)$
 
; 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
exclude_filename = Changes      ; 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 ; DAGOLDEN plugin allows Pod::WikiDoc
 
; generated files
[License]           ; boilerplate license
[ReadmeFromPod]     ; from Pod (runs after PodWeaver)
[ReadmeAnyFromPod]  ; create README.pod in repo directory
type = pod
filename = README.pod
location = root
[ChangelogFromGit::CPAN::Changes] ; Generated Changes from git
file_name = Changes
group_by_author = 1 ; default 0
show_author_email = 1 ; default 0
tag_regexp  = ^v?(\d+\.\d+)$
 
; t tests
[Test::Compile]     ; make sure .pm files all compile
fake_home = 1       ; fakes $ENV{HOME} just in case
[Test::Portability] ; xt/release/portability.t (of file name)
options = test_one_dot = 0
[Test::PodSpelling] ; xt/author/pod-spell.t
stopwords = mckeeman
stopwords = multipass
stopwords = typedef
stopwords = enums
stopwords = grammarName
stopwords = lexemeCallback
stopwords = logInfo
stopwords = earley
stopwords = bnf
stopwords = lhs
stopwords = rhs
stopwords = recognizer
stopwords = recognizer's
stopwords = marpa
stopwords = marpa's
stopwords = scanless
stopwords = lexeme
stopwords = ast
stopwords = trigerred
stopwords = conditionMode
stopwords = subscriptionMode
stopwords = callbackArgs
stopwords = wantedArgs

[@TestingMania]
disable = Test::UnusedVars  ; Not fatal IMHO and there are cases where this cannot be avoided
disable = Test::Compile     ; Already done before
disable = Test::Portability ; Already done before
disable = Test::PodSpelling ; Already done before (not int, but just in case)
max_target_perl = 5.010

[Test::ReportPrereqs] ; show prereqs in automated test output
 
; metadata
[AutoPrereqs]       ; find prereqs from code
skip = ^MarpaX::Languages::C::AST::Expected$ ; My personnal module that is in inc/
 
[MinimumPerl]       ; determine minimum perl version
 
[MetaNoIndex]       ; sets 'no_index' in META
directory = t
directory = xt
directory = examples
directory = blog
 
[AutoMetaResources] ; set META resources
bugtracker.rt      = 1
repository.github  = user:jddurand
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
copy = Changes
 
; before release
[Git::Check]        ; ensure all files checked in except those generated during dzil
allow_dirty = Changes
allow_dirty = README.pod
allow_dirty = META.json
 
[CheckMetaResources]     ; ensure META has 'resources' data
[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
; [FakeRelease]
[UploadToCPAN]      ; uploads to CPAN
 
; after release
[Git::Commit] ; commit Changes (as released)
allow_dirty = Changes
allow_dirty = README.pod
allow_dirty = META.json
commit_msg  = Release of version %v
 
[Git::Tag]          ; tag repo with custom tag
tag_format = %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)
changelog = Changes
allow_dirty = README.pod
allow_dirty = META.json
 
[Git::Push]         ; push repo to remote
push_to = origin
[Clean]
