
name             = OAuthomatic
version          = 0.0202
author           = Marcin Kasperski <Marcin.Kasperski@mekk.waw.pl>
license          = Perl_5
copyright_holder = Marcin Kasperski
copyright_year   = 2015
main_module      = lib/OAuthomatic.pm

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Distribution content
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

[GatherDir]
prune_directory  = devel_notes
exclude_filename = version_hook.py
include_dotfiles = 0
exclude_match = ~$
exclude_match = #$

;; [GatherDir / SpecFiles]
;; root   = ~/projects/my-project/spec
;; prefix = spec

;; [ManifestSkip]

[PruneCruft]
; remove files starting a '.', MYMETA, _Inline itd
; except = t/.*/\.keep$

[PruneFiles]
filename = ToDo.txt
;; match = ^test_data/

[FileFinder::Filter / VersionAnnotatedFiles]        
finder = :MainModule
finder = :ExecFiles     

[FileFinder::Filter / WeavedFiles]        
finder = :InstallModules
finder = :ExecFiles     
; Excluding files which contain multiple packages
skip = ^lib/OAuthomatic/Error\.pm
skip = ^lib/OAuthomatic/Types\.pm

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Dependencies
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

[AutoPrereqs]
; Detects prereqs using Perl::PrereqScanner
; skip = ^Foo

;; Fix bugs in auto
[RemovePrereqs]
remove = Math::Random::MT

[Prereqs]
File::ShareDir = 1.03   ; "new format"
Passwd::Keyring::Auto = 0
Data::Dump = 0
Thread::Queue = 3.02    ; deque_timed

[Prereqs / Recommends]
Passwd::Keyring::Gnome = 0
Passwd::Keyring::PWSafe3 = 0

[Prereqs / DevelopRequires]
Pod::Coverage::TrustPod = 0.100003
Dist::Zilla = 5.031    ; this works, 5.008 generated errors (Strings with code points over 0xFF may not be mapped...), didn't test between
Pod::Weaver = 4.006
Pod::Weaver::Plugin::Encoding = 0
Pod::Weaver::Plugin::EnsureUniqueSections = 0
Pod::Elemental = 0.103000
Pod::Elemental::Transformer::List = 0.102000

;; Naming for prereqs is PhaseRelationship. 
;;    Phase = Configure|Build|Test|Runtime|Develop
;;    Relationship = Requires|Recommends|Suggests|Conflicts
;; (also bare Recommends <=> RuntimeRecommends)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Version numbering
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; Let's be manual for a moment, by editing on top of dist.ini

;; 1.yyDDDn
;; [AutoVersion]

;; [VersionFromScript]
;; script = version_hook.py

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Various metadata
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

[MetaResources]
;; http://search.cpan.org/~dagolden/CPAN-Meta-2.143240/lib/CPAN/Meta/Spec.pm#resources
homepage          = https://helixteamhub.cloud/mekk/projects/perl/repositories/oauthomatic
;;bugtracker.web    = http://rt.cpan.org/NoAuth/Bugs.html?Dist=Project
;;bugtracker.mailto = bug-project@rt.cpan.org
bugtracker.web    = https://helixteamhub.cloud/mekk/projects/perl/issues
repository.url    = https://helixteamhub.cloud/mekk/projects/perl/repositories/oauthomatic
repository.web    = https://helixteamhub.cloud/mekk/projects/perl/repositories/oauthomatic
repository.type   = hg

[MinimumPerl]
; detect minimum perl version

[Keywords]
keywords = OAuth webservice authorization http Net REST web-api

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Tests
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

[Test::ReportPrereqs]
;; [Test::PrereqsFromMeta]
;; [Test::DiagINC]

[Test::CheckDeps]
; fatal = 1        ;; bail out and stop testing on fail
level = classic    ;; requires + conflicts    (see also recommends or suggests)

;; Metadata testing

[MetaTests]
[Test::CPAN::Changes]
[Test::CheckChanges]
[Test::ChangesHasContent]
[Test::DistManifest]
;;[Test::Version]  ; FIXME: TODO
;;has_version = 1
;;is_strict = 1

;; [Test::ConsistentVersion]
[Test::NewVersion]
[Test::CPAN::Meta::JSON]

;; Code testing

[Test::MinimumVersion]
;; Works on given perl
max_target_perl = 5.10.1
[Test::UnusedVars]
[Test::UseAllModules]
[Test::Compile]
fail_on_warning = author
;; xt_mode = true
[Test::Compile::PerFile]
;; xt_mode = true

;; FIXME: Maybe one day
;; [Test::Portability]
;; options = all_tests=1,test_vms_length=0,test_dos_length=0,test_one_dot=0

[Test::Perl::Critic]
critic_config = perlcritic.rc   ; relative to project root
;; [Test::EOL]
;; trailing_whitespace = 1
[Test::EOF]
minimum_newlines = 1
maximum_newlines = 3
[Test::NoTabs]
;; [Test::Fixme] ;; FIXME: TODO
[Test::CleanNamespaces]
skip = ::Dirty$

;; Documentation snippets

[Test::Synopsis]

;; =begin testing ... = end testing
[Test::Inline]

;; Documentation text

;; [Test::Pod::Coverage::Configurable] ;; FIXME: TODO
;; class = Pod::Coverage::Moose
;; ;trustme = Dist::This::Module => qr/^bar_/    ; moduł => regexp metod
;; skip = OAuthomatic::UserInteraction::ConsolePrompts
;; skip = OAuthomatic::ServerDef::.*

[PodSyntaxTests]
; for checking POD syntax (xt/release/pod-syntax.t)

;; [Test::Pod::No404s]
;; [Test::Pod::LinkCheck]
;; [Test::Legal]  ;; Fails with compilation error

;; [Test::PAUSE::Permissions]

;; Test::LocalBrew]
;;  brews = first-perlbrew
;;  brews = second-perlbrew


;; Whether we break something
;; (http://search.cpan.org/~ether/Dist-Zilla-Plugin-Test-CheckBreaks-0.011/lib/Dist/Zilla/Plugin/Test/CheckBreaks.pm)
; [Breaks]
; Foo = <= 1.1
; [Test::CheckBreaks]
; conflicts_module = Moose::Conflicts

;; Copy to ./t with proper skip
;;   xt/author                AUTHOR_TESTING
;;   xt/release               RELEASE_TESTING
;;   xt/smoke                 AUTOMATED_TESTING
[ExtraTests]

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Special files
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

[ExecDir]
;; Installed as executables
dir = scripts

;; [ModuleShareDirs]
;; Foo::Bar = shares/foo_bar
;; Foo::Baz = shraes/foo_baz

[ShareDir]
dir = share

[MetaNoIndex]
;; Ignored by CPAN
directory = examples
directory = t
;; file = lib/Foo.pm
;; package = My::Module
;; namespace = My::Module

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; In-place edits
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; # VERSION => version number
[OurPkgVersion]
finder = VersionAnnotatedFiles

;[PodVersion]
; Off, I do it with weaver

;; NEXT in Changes
[NextRelease]
format = %-9v %{yyyy-MM-dd}d

;; Pod::Weaver (reorganize order, apply weaver-specific macros)
[PodWeaver]
finder = WeavedFiles
; See weaver.ini for config

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Generated files
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; ReadmeAny targets: build (in build), root (in local code)

[ReadmeAnyFromPod / ReadmeMkdn]
type = markdown
filename = README.mkdn
location = root    ;; This is to show pretty readme for repo

[ReadmeAnyFromPod / ReadmeTxt]
type = text
filename = README.txt
location = build

[ReadmeAnyFromPod / ReadmeHtml ]
type = html
filename = README.html
location = build

[ReadmeAnyFromPod / ReadmeDevelTxt]
type = text
source_filename = README-development.pod
filename = README-development.txt
location = root

[ReadmeAnyFromPod / ReadmeDevelHtml ]
type = html
source_filename = README-development.pod
filename = README-development.html
location = build   ; Can't do root as it makes build dirty everytime

[License]

[MakeMaker]
;; [ModuleBuild]

[Manifest]

[MetaYAML]
[MetaJSON]

[Pod2Html]
;; Generate HTML docs
dir=docs
;; ignore=bin/myscript1

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Publish distribution
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; Is directory clean before release?
[Mercurial::Check]

;; Push to default after release
;; FIXME: configure target, default is not that useful so I disable it
;; [Mercurial::Push]

;; Ensure non-tagged before release
;; Tag after release
[Mercurial::Tag]

;; Check whether prereqs are available on CPAN
[CheckPrereqsIndexed]
;; skips = 

;; Is version newer comparint go CPAN?
[CheckVersionIncrement]

;; Final test before a release happens,
;; It'll extract to-be-released archive into a temporary directory,
;; run all the tests, if tests fail then it'll abort the release,
;; else it'll release the dist to CPAN & clean-up the temporary directory
[TestRelease]

;; „Are you sure to upload”. The default is "no", but you can set the
;; environment variable DZIL_CONFIRMRELEASE_DEFAULT to "yes" if you
;; just want to hit enter to release.
[ConfirmRelease]

;; This plugin allows the "dzil release" command to upload the dist
;; to CPAN. It'll look for PAUSE account configuration in dist.ini
;; (I would suggest to use the latter options for saving PAUSE configuration)
;; or in ~/.dzil/config.ini in the following format:
;; [%PAUSE]
;; username = YOUR-PAUSE-ID
;; password = YOUR-PAUSE-PASSWORD
;; If above configuration doesn't exist, then it'll look into ~/.pause
;; in the following format:
;; user YOUR-PAUSE-ID
;; password YOUR-PAUSE-PASSWORD
;; If none of the above exists, then it'll prompt you for PAUSE credentials
;;
;; FIXME: Keyring PAUSE
[UploadToCPAN]

;; [Twitter]
;; hash_tags = #oauthomatic
