File Coverage

blib/lib/CPAN/Testers/Schema/Result/ReleaseStat.pm
Criterion Covered Total %
statement 6 6 100.0
branch n/a
condition n/a
subroutine 2 2 100.0
pod n/a
total 8 8 100.0


line stmt bran cond sub pod time code
1 13     13   11320 use utf8;
  13         30  
  13         69  
2             package CPAN::Testers::Schema::Result::ReleaseStat;
3             our $VERSION = '0.025';
4             # ABSTRACT: A single test report reduced to a simple pass/fail
5              
6             #pod =head1 SYNOPSIS
7             #pod
8             #pod my $release_stats = $schema->resultset( 'ReleaseStat' )->search({
9             #pod dist => 'My-Dist',
10             #pod version => '1.001',
11             #pod });
12             #pod
13             #pod =head1 DESCRIPTION
14             #pod
15             #pod This table contains information about individual reports, reduced to
16             #pod a pass/fail.
17             #pod
18             #pod These stats are built from the `cpanstats` table
19             #pod (L<CPAN::Testers::Schema::Result::Stats>), and collected and combined
20             #pod into the `release_summary` table
21             #pod (L<CPAN::Testers::Schema::Result::Release>).
22             #pod
23             #pod B<XXX>: This intermediate table between a report and the release summary
24             #pod does not seem necessary and if we can remove it, we should.
25             #pod
26             #pod =head1 SEE ALSO
27             #pod
28             #pod L<DBIx::Class::Row>, L<CPAN::Testers::Schema>
29             #pod
30             #pod =cut
31              
32 13     13   753 use CPAN::Testers::Schema::Base 'Result';
  13         26  
  13         86  
33             table 'release_data';
34              
35             #pod =attr dist
36             #pod
37             #pod The name of the distribution.
38             #pod
39             #pod =cut
40              
41             column dist => {
42             data_type => 'varchar',
43             is_nullable => 0,
44             };
45              
46             #pod =attr version
47             #pod
48             #pod The version of the distribution.
49             #pod
50             #pod =cut
51              
52             column version => {
53             data_type => 'varchar',
54             is_nullable => 0,
55             };
56              
57             #pod =attr id
58             #pod
59             #pod The ID of this report from the `cpanstats` table. See
60             #pod L<CPAN::Testers::Schema::Result::Stats>.
61             #pod
62             #pod =cut
63              
64             column id => {
65             data_type => 'int',
66             is_nullable => 0,
67             };
68              
69             #pod =attr guid
70             #pod
71             #pod The GUID of this report from the `cpanstats` table. See
72             #pod L<CPAN::Testers::Schema::Result::Stats>.
73             #pod
74             #pod =cut
75              
76             column guid => {
77             data_type => 'char',
78             size => 36,
79             is_nullable => 0,
80             };
81              
82             __PACKAGE__->set_primary_key(qw( id guid ));
83              
84             #pod =attr oncpan
85             #pod
86             #pod The installability of this release: C<1> if the release is on CPAN. C<2>
87             #pod if the release has been deleted from CPAN and is only on BackPAN.
88             #pod
89             #pod =cut
90              
91             column oncpan => {
92             data_type => 'int',
93             is_nullable => 0,
94             };
95              
96             #pod =attr distmat
97             #pod
98             #pod The maturity of this release. C<1> if the release is stable and
99             #pod ostensibly indexed by CPAN. C<2> if the release is a developer release,
100             #pod unindexed by CPAN.
101             #pod
102             #pod =cut
103              
104             column distmat => {
105             data_type => 'int',
106             is_nullable => 0,
107             };
108              
109             #pod =attr perlmat
110             #pod
111             #pod The maturity of the Perl these reports were sent by: C<1> if the Perl is
112             #pod a stable release. C<2> if the Perl is a developer release.
113             #pod
114             #pod =cut
115              
116             column perlmat => {
117             data_type => 'int',
118             is_nullable => 0,
119             };
120              
121             #pod =attr patched
122             #pod
123             #pod The patch status of the Perl that sent the report. C<2> if the Perl reports
124             #pod being patched, C<1> otherwise.
125             #pod
126             #pod =cut
127              
128             column patched => {
129             data_type => 'int',
130             is_nullable => 0,
131             };
132              
133             #pod =attr pass
134             #pod
135             #pod C<1> if this report's C<state> was C<PASS>.
136             #pod
137             #pod =cut
138              
139             column pass => {
140             data_type => 'int',
141             is_nullable => 0,
142             };
143              
144             #pod =attr fail
145             #pod
146             #pod C<1> if this report's C<state> was C<FAIL>.
147             #pod
148             #pod =cut
149              
150             column fail => {
151             data_type => 'int',
152             is_nullable => 0,
153             };
154              
155             #pod =attr na
156             #pod
157             #pod C<1> if this report's C<state> was C<NA>.
158             #pod
159             #pod =cut
160              
161             column na => {
162             data_type => 'int',
163             is_nullable => 0,
164             };
165              
166             #pod =attr unknown
167             #pod
168             #pod C<1> if this report's C<state> was C<UNKNOWN>.
169             #pod
170             #pod =cut
171              
172             column unknown => {
173             data_type => 'int',
174             is_nullable => 0,
175             };
176              
177             #pod =attr uploadid
178             #pod
179             #pod The ID of this upload from the `uploads` table.
180             #pod
181             #pod =cut
182              
183             column uploadid => {
184             data_type => 'int',
185             extra => { unsigned => 1 },
186             is_nullable => 0,
187             };
188              
189             #pod =method upload
190             #pod
191             #pod Get the related row from the `uploads` table. See
192             #pod L<CPAN::Testers::Schema::Result::Upload>.
193             #pod
194             #pod =cut
195              
196             belongs_to upload => 'CPAN::Testers::Schema::Result::Upload' => 'uploadid';
197              
198             1;
199              
200             __END__
201              
202             =pod
203              
204             =head1 NAME
205              
206             CPAN::Testers::Schema::Result::ReleaseStat - A single test report reduced to a simple pass/fail
207              
208             =head1 VERSION
209              
210             version 0.025
211              
212             =head1 SYNOPSIS
213              
214             my $release_stats = $schema->resultset( 'ReleaseStat' )->search({
215             dist => 'My-Dist',
216             version => '1.001',
217             });
218              
219             =head1 DESCRIPTION
220              
221             This table contains information about individual reports, reduced to
222             a pass/fail.
223              
224             These stats are built from the `cpanstats` table
225             (L<CPAN::Testers::Schema::Result::Stats>), and collected and combined
226             into the `release_summary` table
227             (L<CPAN::Testers::Schema::Result::Release>).
228              
229             B<XXX>: This intermediate table between a report and the release summary
230             does not seem necessary and if we can remove it, we should.
231              
232             =head1 ATTRIBUTES
233              
234             =head2 dist
235              
236             The name of the distribution.
237              
238             =head2 version
239              
240             The version of the distribution.
241              
242             =head2 id
243              
244             The ID of this report from the `cpanstats` table. See
245             L<CPAN::Testers::Schema::Result::Stats>.
246              
247             =head2 guid
248              
249             The GUID of this report from the `cpanstats` table. See
250             L<CPAN::Testers::Schema::Result::Stats>.
251              
252             =head2 oncpan
253              
254             The installability of this release: C<1> if the release is on CPAN. C<2>
255             if the release has been deleted from CPAN and is only on BackPAN.
256              
257             =head2 distmat
258              
259             The maturity of this release. C<1> if the release is stable and
260             ostensibly indexed by CPAN. C<2> if the release is a developer release,
261             unindexed by CPAN.
262              
263             =head2 perlmat
264              
265             The maturity of the Perl these reports were sent by: C<1> if the Perl is
266             a stable release. C<2> if the Perl is a developer release.
267              
268             =head2 patched
269              
270             The patch status of the Perl that sent the report. C<2> if the Perl reports
271             being patched, C<1> otherwise.
272              
273             =head2 pass
274              
275             C<1> if this report's C<state> was C<PASS>.
276              
277             =head2 fail
278              
279             C<1> if this report's C<state> was C<FAIL>.
280              
281             =head2 na
282              
283             C<1> if this report's C<state> was C<NA>.
284              
285             =head2 unknown
286              
287             C<1> if this report's C<state> was C<UNKNOWN>.
288              
289             =head2 uploadid
290              
291             The ID of this upload from the `uploads` table.
292              
293             =head1 METHODS
294              
295             =head2 upload
296              
297             Get the related row from the `uploads` table. See
298             L<CPAN::Testers::Schema::Result::Upload>.
299              
300             =head1 SEE ALSO
301              
302             L<DBIx::Class::Row>, L<CPAN::Testers::Schema>
303              
304             =head1 AUTHORS
305              
306             =over 4
307              
308             =item *
309              
310             Oriol Soriano <oriolsoriano@gmail.com>
311              
312             =item *
313              
314             Doug Bell <preaction@cpan.org>
315              
316             =back
317              
318             =head1 COPYRIGHT AND LICENSE
319              
320             This software is copyright (c) 2018 by Oriol Soriano, Doug Bell.
321              
322             This is free software; you can redistribute it and/or modify it under
323             the same terms as the Perl 5 programming language system itself.
324              
325             =cut