File Coverage

blib/lib/Dist/Zilla/PluginBundle/BerryGenomics.pm
Criterion Covered Total %
statement 6 20 30.0
branch 0 2 0.0
condition n/a
subroutine 2 3 66.6
pod 0 1 0.0
total 8 26 30.7


line stmt bran cond sub pod time code
1             package Dist::Zilla::PluginBundle::BerryGenomics;
2 2     2   3629 use Moose;
  2         1068757  
  2         15  
3 2     2   14731 use namespace::autoclean;
  2         16025  
  2         11  
4              
5             our $VERSION = '0.2.1'; # VERSION
6             # ABSTRACT: Dist::Zilla::PluginBundle for BerryGenomics Bioinformatics Department
7              
8              
9             with 'Dist::Zilla::Role::PluginBundle::Easy';
10             has installer => (
11             is => 'ro',
12             isa => 'Str',
13             lazy => 1,
14             default => sub { $_[0]->payload->{installer} || 'ModuleBuild' },
15             );
16              
17             sub configure {
18 0     0 0   my $self = shift;
19             # Firstly, import plugins from @Basic bundle;
20 0           $self->add_plugins(qw(MetaJSON MetaYAML License ExtraTests ExecDir ShareDir Manifest ManifestSkip));
21             # Secondly, plugin FakeRelease;
22 0           $self->add_plugins(qw(TestRelease FakeRelease));
23             # 3. add installer prereqs
24 0           my @installer_accepts = qw( MakeMaker MakeMaker::IncShareDir ModuleBuild ModuleBuildTiny );
25 0           my %accepts = map { $_ => 1 } @installer_accepts;
  0            
26 0 0         unless ($accepts{$self->installer}) {
27 0           die sprintf("Unknown installer: '%s'. " .
28             "Acceptable values are MakeMaker, ModuleBuild and ModuleBuildTiny\n",
29             $self->installer);
30             }
31 0           $self->add_plugins( $self->installer );
32             # 4. some helper plugins
33 0           $self->add_plugins( qw(InstallGuide OurPkgVersion PodWeaver) );
34 0           $self->add_plugins(
35             # 5. Readme.md
36             [ 'ReadmeAnyFromPod', { type => 'markdown', filename => 'README.md', location => 'build' } ],
37             [ 'ReadmeAnyFromPod', 'MarkdownInRoot', { type => 'markdown', filename => 'README.md', location => 'root', phase => 'release' } ],
38             [ 'CopyFilesFromBuild', { copy => [ 'LICENSE' ] } ],
39             [ 'MetaNoIndex', { directory => [ qw(t xt inc share) ] } ],
40             );
41              
42 0           my @dirty_files = ('dist.ini', 'Changes', 'README.md', 'LICENSE');
43             # 6. Git
44 0           $self->add_plugins(
45             [ 'Git::GatherDir', { exclude_filename => \@dirty_files, include_dotfiles => 1 } ],
46             [ 'Git::Check', { allow_dirty => \@dirty_files, untracked_files => 'warn' } ],
47             [ 'Git::Commit', { allow_dirty => \@dirty_files, commit_msg => 'Auto commited by dzil with version %v at %d%n%n%c%n' } ],
48             [ 'Git::CommitBuild', { release_branch => 'release/%b', release_message => 'Release %v of %h (on %b)'} ],
49             [ 'Git::Tag', { tag_format => '%v', tag_message => 'Auto tagged by dzil release(%v)' } ],
50             [ 'Git::Push', { remotes_must_exist => 0 } ],
51             [ 'Git::NextVersion', { first_version => '0.0.1', version_by_branch => 1, version_regexp => '^v?(\d+(\.\d+){0,2})$' } ],
52             [ 'ChangelogFromGit::CPAN::Changes', { tag_regexp => 'semantic', group_by_author => 1 } ],
53             );
54 0           $self->add_plugins( [ 'AutoPrereqs' ] );
55             }
56             __PACKAGE__->meta->make_immutable;
57              
58             1;
59              
60             __END__
61              
62             =pod
63              
64             =encoding UTF-8
65              
66             =head1 NAME
67              
68             Dist::Zilla::PluginBundle::BerryGenomics - Dist::Zilla::PluginBundle for BerryGenomics Bioinformatics Department
69              
70             =head1 VERSION
71              
72             version 0.2.1
73              
74             =head1 SYNOPSIS
75              
76             in your I<dist.ini>:
77              
78             [@BerryGenomics]
79             installer = MakeMaker ; default is ModuleBuild
80             ; valid installers: MakeMaker MakeMaker::IncShareDir ModuleBuild ModuleBuildTiny
81              
82             =head1 DESCRIPTION
83              
84             This is plugin bundle is for BerryGenomics.
85             It is equivalent to:
86              
87             ; Basic
88             [MetaJSON]
89             [MetaYAML]
90             [License]
91             [ExtraTests]
92             [ExecDir]
93             [ShareDir]
94             [Manifest]
95             [ManifestSkip]
96              
97             [TestRelease]
98             [FakeRelease]
99              
100             ; installer
101             [ModuleBuild] ; by default
102              
103             ; extra
104             [InstallGuide]
105             [OurPkgVersion]
106             [PodWeaver]
107             [ReadmeFromPod]
108             [PodSyntaxTests]
109              
110             ; with params
111             [ReadmeAnyFromPod /MarkdownInRoot]
112             filename = Readme.md
113             [CopyFilesFromBuild]
114             copy = LICENSE
115             [MetaNoIndex]
116             directory = t
117             directory = xt
118             directory = inc
119             directory = share
120             directory = eg
121             directory = examples
122              
123             ; Git
124             [Git::GatherDir]
125             exclude_filename = dist.ini
126             exclude_filename = Changes
127             exclude_filename = README.md
128             exclude_filename = LICENSE
129             include_dotfiles = 1
130             [Git::Check]
131             allow_dirty = dist.ini
132             allow_dirty = Changes
133             allow_dirty = README.md
134             allow_dirty = LICENSE
135             untracked_files = warn
136             [Git::Commit]
137             allow_dirty = dist.ini
138             allow_dirty = Changes
139             allow_dirty = README.md
140             allow_dirty = LICENSE
141             commit_msg => Auto commited by dzil with version %v at %d%n%n%c%n
142             [Git::CommitBuild]
143             release_branch = %v
144             release_message = Release %v of %h (on %b)
145             [Git::Tag]
146             tag_format => %v
147             tag_message = Auto tagged by dzil release(%v)
148             [Git::Push]
149             remotes_must_exist = 0
150             [Git::NextVersion]
151             first_version = 0.0.1
152             version_by_branch = 1
153             version_regexp = ^v?(\d+(\.\d+){0,2})$
154             [ChangelogFromGit::CPAN::Changes]
155             tag_regexp = semantic
156             group_by_author = 1
157              
158             ; run
159             [Run::BeforeBuild]
160             run = git checkout Changes
161             [Run::BeforeRelease]
162             run = mkdir -p release 2>/dev/null; cp %n-%v.tar.gz release/ -f
163              
164             [AutoPrereqs]
165              
166             =head1 AUTHOR
167              
168             Huo Linhe <huolinhe@berrygenomics.com>
169              
170             =head1 COPYRIGHT AND LICENSE
171              
172             This software is copyright (c) 2015 by Berry Genomics.
173              
174             This is free software; you can redistribute it and/or modify it under
175             the same terms as the Perl 5 programming language system itself.
176              
177             =cut