bump version of Net-Async-Redis
[andk-cpan-tools.git] / CPAN-Blame / root / about.tt
blobdf8ce048829a2e47e6f28be46860d8e806da9634
1 [% WRAPPER page.tt title = "about cpan testers reports statistical analysis" %]
2 <h3><a href=".">&#x21d1;</a> About Mixed Results: Samples of Regression Analyses On CPAN Testers Reports</h3>
4 <table><tr><td></td><td>
6 <h3>What this is about</h3>
8 <p>The <i>perl programming language</i> has a huge repository of
9 reusable code known as the CPAN. CPAN has a strong tradition of
10 providing self-testing facilities with every software package it
11 contains. There are dedicated serverfarms running around the clock to
12 produce fresh test results of many different platforms in many
13 different environments. These get delivered to the <a
14 href="http://www.cpantesters.org/">cpantesters</a>.</p>
16 <p>On this page we are watching the results of all these tests and
17 calculate <a
18 href="http://en.wikipedia.org/wiki/Regression_analysis">statistical
19 regressions</a> to help the users of CPAN spot patterns where things
20 are starting to fail.</p>
22 </td></tr><tr><td></td><td>
23 <h3>Howto use</h3>
25 </td></tr><tr><td valign="top">
26 <p>
27 <table border="1" width="100%">
28 <tr>
29 <th>#</th>
30 <th>distro</th>
31 <th>links</th>
32 <th>pass</th>
33 <th>fail</th>
34 <th>uploaded</th>
35 <th>third fail</th>
36 <th>RT/comment</th>
37 <th>high correlations</th>
39 </tr>
42 <tr>
43 <td align="right">
44 ...
45 </td>
46 <td>
47 ...
48 </td>
49 <td valign="top">
50 ...
51 </td>
52 <td align="center" valign="top">
53 ...
54 </td>
55 <td valign="top">
56 ...
57 </td>
58 <td valign="top">
59 ...
60 </td>
61 <td valign="top">
62 ...
63 </td>
64 <td valign="top">
65 ...
66 </td>
67 <td valign="top">
68 ...
69 </td>
70 </tr>
72 <tr>
73 <td align="right">
75 </td>
76 <td>
77 TONYC/&#x200b;Imager-&#x200b;0.71_02
79 </td>
80 <td valign="top">
81 matrix
82 </td>
83 <td align="right" valign="top">
85 </td>
86 <td align="right" valign="top">
88 </td>
89 <td valign="top">
90 2009-12-01 09:23
91 </td>
92 <td valign="top">
93 2009-12-02 18:06
94 </td>
95 <td valign="top">
98 </td>
100 <td valign="top">
101 qr:(Can't locate \S+pm)
102 </td>
103 </tr>
105 <tr>
106 <td align="right">
108 </td>
109 <td>
111 </td>
112 <td valign="top">
114 </td>
115 <td align="center" valign="top">
117 </td>
118 <td valign="top">
120 </td>
121 <td valign="top">
123 </td>
124 <td valign="top">
126 </td>
127 <td valign="top">
129 </td>
130 <td valign="top">
132 </td>
133 </tr>
135 </table> </p> </td><td> <p>The <a href=".">main page</a> consists of a
136 large table of CPAN distributions that had at least 3 PASSes
137 <i>and</i> at least 3 FAILs and has been uploaded within the last 16
138 years. This limitation is an entirely arbitrary compromise between
139 incoming tests, number of distros with mixed results and computing
140 power needed to calculate all the regressions. It may change any time
141 when some of these parameters change.</p>
143 <p>The list is sorted by upload date, descending. Of any distribution
144 only the latest upload can be included in the list. If Javascript is
145 enabled in your browser you can sort this table by clicking on the
146 table header in the column you want to sort.</p>
149 These are the columns on the main page:
150 <dl>
152 <dt><b>#</b></dt><dd>just a counter</dd>
154 <dt><b>distro</b></dt><dd>Path to the distro consisting of author's
155 id, maybe some path below their directory, and filename of the distro.
156 This is usually a link to a page with details about the calculated
157 results. If it isn't a link, then the statistical regression has not
158 yet been calculated but will be calculated in the next hours.</dd>
160 <dt><b>links</b></dt><dd>Links to the CPAN testers matrix (which
161 provides a comprehensive descriptive table of passes and fails by perl
162 version and OS)</dd>
164 <dt><b>pass</b> and <b>fail</b></dt><dd>The number of pass reports and fail
165 reports respectively. Other report types are ignored for the sake of this
166 investigation. Note that only distributions are listed that have at
167 least three passes and three fails.</dd>
169 <dt><b>uploaded</b></dt><dd>Upload date and time in UTC</dd>
171 <dt><b>third fail</b></dt><dd>Date and time in UTC when the third
172 tester reported a fail. Sorting by this column is one of the most
173 interesting views on the table because it gathers all recently
174 introduced problems on the top.</dd>
176 <dt><b>RT/comment</b></dt><dd>This column is maintained manually and
177 is for this reason often outdated: it contains a comment or a link to
178 an RT or other bugtracker ticket that has something to do with the
179 diagnosed problem.</dd>
181 <dt><b>high correlations</b></dt><dd>This is an interesting part: a
182 comma separated list of parameters whose values have a correlation to
183 the test result. The CPAN testers reporting tools provide a lot of
184 independent parameters that might influence the result. Whenever there
185 is a correlation between one of these parameters and the result, this
186 parameter is listed in this column. Of course, as always with
187 statistical findings, such correlations may be trivial artefacts (e.g.
189 href="https://en.wikipedia.org/wiki/Heteroskedascity">Heteroskedascity</a>)
190 that provide little to no information, so be careful not to draw wrong
191 conclusions. <a href="#ioc">See below</a> for hints about which
192 insights have been gained so far.</dd> </ul> </p>
194 <p>The distro column contains links to separate pages per distribution
195 providing results of the regressions analyses. These are sorted by
196 R-squared in descending order. R-squared is a measurement for the
197 quality of the statistical correlation. It's always between
198 <i>zero</i> and <i>one</i>. The higher the R-squared the stronger the
199 impact of the referenced variable on the outcome.</p>
201 </td></tr><tr><td></td><td>
202 <a name="cor"><h3>Collection of Regressions</h3></a>
204 </td></tr><tr><td>
206 <h3>Imager-0.71_02 (matrix, searchtools, parsed reports, metacpan.org)</h3>
209 <table>
210 <tr><td><b>Uploaded:</b></td><td>2009-12-01T09:23</td></tr>
211 <tr><td><b>Calculated:</b></td><td>2009-12-04T06:32</td></tr>
212 <tr><td><b>Distro-ID:</b></td><td>TONYC/Imager-0.71_02.tar.gz</td></tr>
213 <tr><td><b>Pass/Fail:</b></td><td>64/7</td></tr>
214 <tr><td><b>Pass/Fail at calctime:</b></td><td>64/7</td></tr>
215 <tr><td><b>Top regressions:</b></td><td>1.000 <a href="#">qr:(Can't locate \S+pm)</a></td></tr>
216 </table>
217 </p>
218  <table border="1" width="100%">
219  <tr><th colspan="4">Regression#1 <a href="#cor">qr:(Can't locate \S+pm)</a></th></tr>
220  <tr><td>Name</td><td align="right">Theta</td><td align="right">StdErr</td><td align="right">T-stat</td></tr>
221   <tr>
222   </tr>
223   <tr>
224    <td>
225    <code>...</code>
226    </td>
227    <td align="right">
228    <code>...</code>
229    </td>
230    <td align="right">
231    <code>...</code>
232    </td>
233    <td align="right">
234    <code>...</code>
235    </td>
236   </tr>
237  </table>
239  <table border="1" width="100%">
240  <tr><th colspan="4">Regression#2 <a href="#cor">conf:bincompat5005</a></th></tr>
241  <tr><td>Name</td><td align="right">Theta</td><td align="right">StdErr</td><td align="right">T-stat</td></tr>
242   <tr>
243   </tr>
244   <tr>
245    <td>
246    <code>...</code>
247    </td>
248    <td align="right">
249    <code>...</code>
250    </td>
251    <td align="right">
252    <code>...</code>
253    </td>
254    <td align="right">
255    <code>...</code>
256    </td>
257   </tr>
258  </table>
260  <table border="1" width="100%">
261  <tr><th colspan="4">Regression#3 <a href="#cor">conf:ccdlflags</a></th></tr>
262  <tr><td>Name</td><td align="right">Theta</td><td align="right">StdErr</td><td align="right">T-stat</td></tr>
263   <tr>
264   </tr>
265   <tr>
266    <td>
267    <code>...</code>
268    </td>
269    <td align="right">
270    <code>...</code>
271    </td>
272    <td align="right">
273    <code>...</code>
274    </td>
275    <td align="right">
276    <code>...</code>
277    </td>
278   </tr>
279  </table>
280 </p>
281 </td>
282 <td valign="top">
284 <p>The individual CPAN distribution's page of results of the many
285 individual regressions starts with a small listing of metadata like
286 who the author and what the exact filename is and links to other sites
287 dealing with CPAN.
288 </p>
290 <p>Below that a rather long list of individual results of regression
291 calculations follows. These are sorted by their goodness of fit, i.e.
292 the first few results are likely to be the only interesting ones. But
293 since statistics needs to be interpreted to be useful we present them
294 all.</p>
296 <p>Every regression has a header denoting the name of the independent
297 variable. These names are documented in the
298 <code>CPAN::Testers::ParseReport</code> module and should in most
299 cases be self explaining. So the variable with the name
300 <i>conf:bincompat5005</i> denotes the config variable
301 <i>bincompat5005</i> of the perl interpreters that were running these
302 tests. And <i>qr:(Can't locate \S+pm)</i> denotes a string found in
303 the test output when matching it agaist the regular expression <i>(Can't
304 locate \S+pm)</i>. </p>
306 <p>When you click of any such header you are taken to the page
307 described below under <a href="#ltid">Links to input data</a>.
309 </td></tr><tr><td></td><td>
310 <a name="ioc"><h3>Interpretation of correlations</h3></a>
311 </td></tr><tr><td valign="top">
314 <table border="1" width="100%"> <tr><th colspan="4">Regression#1 <a href="#ioc">qr:(Can't locate
315 \S+pm)</a></th></tr>
316 <tr><td>Name</td><td align="right">Theta</td><td align="right">StdErr</td><td align="right">T-stat</td></tr>
317 <tr> </tr> <tr> <td> <code>[0='const']</code> </td>
318  <td align="right"> <code>1.0000</code> </td>
319  <td align="right"> <code>0.0000</code> </td>
320  <td align="right"> <code>37707732907022898844.00</code> </td> </tr>
321  <tr> <td> <code>[1='eq_Can't
322 locate Kwiki/Plugin.pm']</code> </td>
323  <td style="background: #ffaaaa" align="right"> <code>-1.0000</code> </td> <td> <code>0.0000</code> </td>
324  <td align="right"> <code>-32758385024668659982.00</code> </td> </tr>
325  <tr> <td> <code>[2='eq_Can't
326 locate Spoon/Plugin.pm']</code> </td>
327  <td style="background: #ffaaaa" align="right"> <code>-1.0000</code> </td>
328  <td align="right"> <code>0.0000</code> </td>
329  <td align="right"> <code>-7256856581466726773.00</code> </td> </tr>
330  <tr><td colspan="4">R^2=
331 1.000, N= 107, K= 3</td></tr> </table>
332 </p>
334 </td><td>
336 <p>You can read more about statistical <a
337 href="https://en.wikipedia.org/wiki/Regression_analysis">regression
338 analysis</a> but you are allowed to bypass the theory and focus on two
339 things: the term <a
340 href="https://en.wikipedia.org/wiki/R-squared">R<sup>2</sup></a>
341 (pronounced R squared) is the overall measure of the <a
342 href="https://en.wikipedia.org/wiki/Goodness_of_fit">goodness of
343 fit</a> of the estimates. It is between 0 and 1 where 1 is a good fit.
344 The T-stat values measure each estimation if its slope differs
345 significantly from 0. It is between −infinity and +infinity.</p>
347 <p>In the detailed page of all regression tables for a particular
348 distribution you may find a table like the one on the left.</p>
350 <p>First a few notes about what you see here: The title of the table
351 denotes the name of the variable that is inspected by this regression
352 test, in this case <i>qr:(Can't locate \S+pm)</i>. At the bottom you
353 find the <b>R²</b> (R-squared; R^2) described above, the <b>N</b>
354 denotes the number of observations we had and the <b>K</b> denotes the
355 number of lines (actual values) we see in the middle part. The middle
356 part lists the influencing factors in this test: in the first line a
357 constant part <i>[0='const']</i>, below it the actually observed
358 strings. Each line has the <b>Theta</b> value that can be interpreted
359 as the direction and slope of the influence, the <b>StdErr</b> that
360 gives us a measurement of the variance, and the <b>T-stat</b> which
361 provides the significance of this theta (being different from
362 zero).</p>
364 <p><span style="background:#afa">We</span>
365 <span style="background:#bfb">have</span>
366 <span style="background:#cfc">chosen</span>
367 <span style="background:#dfd">to</span>
368 <span style="background:#faa">color-code</span>
369 <span style="background:#fbb">the</span>
370 <span style="background:#fcc">Theta</span>
371 <span style="background:#fee">column</span>:
373 negative values are reddish and positive values are greenish,
374 signifying that positive values indicate an influence towards a PASS
375 and negative ones to a FAIL. Both green and red are getting paler the
376 lower the R-squared is to indicate that interpreting values with low
377 R-squared should be avoided. A weak influence is only then a weak
378 influence when the goodness of fit confirms it. Otherwise you just
379 can't tell. Some reason makes this influence insignificant.</p>
381 <p>The example regression to the left is the most trivial case:
382 whenever the message <i>Can't locate Kwiki/Plugin.pm</i> has been seen
383 in the test output then the test result was a FAIL. Same thing for
384 <i>Spoon/Plugin.pm</i>. The author has most probably forgotten to
385 declare a dependency on the two modules <code>Kwiki::Plugin</code> and
386 <code>Spoon::Plugin</code>. Not necessarily, of course. It may be that
387 the author has forgotten the dependency on <code>Spoon::Plugin</code>
388 and that the dependency on <code>Kwiki::Plugin</code> is an indirect
389 dependency. Or it may be some completely remote connection between
390 some other relevant variable and this kind of observed error
391 message.</p>
393 <p>Usually the <i>Can't locate \S+\.pm</i> messages are the most reliable
394 indicators of the real reason of a fail. Another good candidate are
395 <i>mod:*</i> variables like the following:</p>
398 </td></tr><tr><td valign="top">
400 <table border="1" width="100%"> <tr><th colspan="4">Regression#2
401 <a href="#ioc">mod:Test::More</a></th></tr>
402 <tr><td>Name</td><td align="right">Theta</td><td align="right">StdErr</td><td align="right">T-stat</td></tr>
403 <tr> </tr>
404  <tr> <td> <code>[0='const']</code> </td>
405  <td align="right"> <code>1.0000</code> </td>
406  <td align="right"> <code>0.0000</code>
407 </td>
408  <td align="right"> <code>67664785050021653200.00</code> </td> </tr>
409  <tr> <td> <code>[1='eq_0.72']</code> </td>
410  <td style="background: #ffaaaa" align="right"> <code>-1.0000</code> </td>
411  <td align="right"> <code>0.0000</code> </td>
412  <td align="right">
413 <code>-14765666636887643371.00</code> </td> </tr>
414  <tr> <td> <code>[2='eq_0.80']</code> </td>
415  <td style="background: #ffaaaa" align="right"> <code>-1.0000</code> </td>
416  <td align="right"> <code>0.0000</code> </td>
417  <td align="right"> <code>-10567464028645793135.00</code>
418 </td> </tr>
419  <tr> <td> <code>[3='eq_0.86']</code> </td>
420  <td style="background: #ffaaaa" align="right"> <code>-1.0000</code> </td>
421  <td align="right">
422 <code>0.0000</code> </td>
423  <td align="right"> <code>-47228831801881750440.00</code> </td> </tr>
424  <tr> <td>
425 <code>[4='eq_0.88']</code> </td>
426  <td align="right"> <code>0.0000</code> </td>
427  <td align="right"> <code>0.0000</code> </td>
428  <td align="right"> <code>6.01</code>
429 </td> </tr>
430  <tr> <td> <code>[5='eq_0.89_01']</code> </td>
431  <td align="right"> <code>0.0000</code> </td>
432  <td align="right">
433 <code>0.0000</code> </td>
434  <td align="right"> <code>2.54</code> </td> </tr>
435  <tr> <td> <code>[6='eq_0.92']</code> </td>
436  <td align="right">
437 <code>-0.0000</code> </td>
438  <td align="right"> <code>0.0000</code> </td>
439  <td align="right"> <code>-5.29</code> </td> </tr>
440  <tr> <td>
441 <code>[7='eq_0.94']</code> </td>
442  <td align="right"> <code>-0.0000</code> </td>
443  <td align="right"> <code>0.0000</code> </td>
444  <td align="right"> <code>-4.58</code>
445 </td> </tr>
446  <tr><td colspan="4">R^2= 1.000, N= 178, K= 8</td></tr>
447 </table>
448 </p>
449 </td><td valign="top">
450 <p>Here we have a case where the author seems to be using a feature of
451 <code>Test::More</code> that was introduced in version 0.88. Older
452 versions have only FAILs, 0.88 and up have only PASSes.<p>
454 <p>But such <i>mod:*</i> correlations can be misleading and at times
455 completely bogus when the number of test results is low and the number
456 of releases of a represented module is relatively high. Then (and not
457 only then) it may happen that only one tester farm has this version
458 installed and this testers farm is broken for some reason and the real
459 reason for the fail has nothing to do with this version of that
460 module. This is why you're required to reproduce FAILs and PASSes on
461 your own hardware and compare with the other correlations and draw
462 your conclusions carefully before writing a ticket on RT.</p>
464 </td></tr><tr><td valign="top">
466 <table border="1" width="100%"> <tr><th colspan="4">Regression#3
467 <a href="#ioc">mod:XML::ExtOn</a></th></tr>
468 <tr><td>Name</td><td align="right">Theta</td><td align="right">StdErr</td><td align="right">T-stat</td></tr>
469 <tr> </tr>
470  <tr> <td> <code>[0='const']</code> </td>
471  <td align="right"> <code>0.0000</code> </td>
472  <td align="right"> <code>0.0000</code>
473 </td>
474  <td align="right"> <code>17.27</code> </td> </tr>
475  <tr> <td> <code>[1='eq_0.11']</code> </td>
476  <td style="background: #aaffaa" align="right"> <code>1.0000</code>
477 </td>
478  <td align="right"> <code>0.0000</code> </td>
479  <td align="right"> <code>143147779654612836944.00</code> </td> </tr>
480 <tr><td colspan="4">R^2= 1.000, N= 26, K= 2</td></tr> </table>
481 </p>
482 </td><td valign="top">
484 <p>One annoyance of regression analysis is the fact that every
485 calculation presented is always relative to a <i>reference
486 group</i>. See for example this result:</p>
489 <p>We can recognize that having installed version 0.11 of
490 <code>XML::ExtOn</code> helps to get a PASS. But we cannot see,
491 compared to <i>which other version</i>. This is something you have to
492 test yourself before drawing conclusions. This is why you sometimes
493 will want to click on the header of the table to zoom in into the
494 actual test inputs as described in the next section.</p>
496 </td></tr><tr><td></td><td>
497 <a name="ltid"><h3>Links to input data</h3></a>
499 </td></tr><tr><td valign="top">
501 <h3>Pod-ToDocBook-0.7</h3>
502 </p>
504 <form action="#ltid" method="get" enctype="application/x-www-form-urlencoded">
505 <input type="submit" name="SUBMIT_xxx" value="Submit"/><br/>
506 <select name="field" size="8" multiple="multiple">
507   <option selected="selected">mod:XML::ExtOn</option>
508   <option>qr:(You planned.*)</option>
509   <option>meta:date</option>
510   <option>id</option>
511 <option>----below this line sorted alphabetically----</option>
512   <option>conf:Off_t</option>
513   <option>conf:alignbytes</option>
514   <option>conf:archname</option>
515   <option>conf:archname+osvers</option>
516   <option>conf:bincompat5005</option>
517   <option>conf:byteorder</option>
518   <option>conf:cc</option>
519   <option>conf:cccdlflags</option>
521   <option>conf:ccdlflags</option>
522 </select>
523 </form>
524 </p>
526 <table border="1">
527 <tr><th>id</th><th>state</th>
529 <th>mod:XML::ExtOn</th>
531 </tr>
533 <tr>
534 <td>
535 <a href="http://nntp.x.perl.org/group/perl.cpan.testers/6231877">6231877</a>
537 </td>
538 <td>
542 <b style="color: brown">UNKNOWN</b>
543 </td>
545 <td>
546 0.11
547 </td>
549 </tr>
551 <tr>
552 <td>
554 <a href="http://nntp.x.perl.org/group/perl.cpan.testers/6172961">6172961</a>
555 </td>
556 <td>
560 <b style="color: brown">UNKNOWN</b>
561 </td>
563 <td>
564 0.11
565 </td>
567 </tr>
569 <tr>
570 <td>
571 <a href="http://nntp.x.perl.org/group/perl.cpan.testers/6161798">6161798</a>
572 </td>
573 <td>
577 <b style="color: green">PASS</b>
578 </td>
580 <td>
581 0.11
582 </td>
584 </tr>
586 <tr>
587 <td>
588 <a href="http://nntp.x.perl.org/group/perl.cpan.testers/6155043">6155043</a>
589 </td>
590 <td>
594 <b style="color: green">PASS</b>
595 </td>
597 <td>
598 0.11
600 </td>
602 </tr>
604 <tr>
605 <td>
606 <a href="http://nntp.x.perl.org/group/perl.cpan.testers/6095573">6095573</a>
607 </td>
608 <td>
612 <b style="color: green">PASS</b>
613 </td>
615 <td>
616 0.11
617 </td>
619 </tr>
621 <tr>
622 <td>
624 </td>
625 <td>
627 </td>
629 <td>
631 </td>
633 </tr>
635 <tr>
636 <td>
638 <a href="http://nntp.x.perl.org/group/perl.cpan.testers/4955988">4955988</a>
639 </td>
640 <td>
644 <b style="color: red">FAIL</b>
645 </td>
647 <td>
648 0.09
649 </td>
651 </tr>
653 <tr>
654 <td>
655 <a href="http://nntp.x.perl.org/group/perl.cpan.testers/4942282">4942282</a>
656 </td>
657 <td>
661 <b style="color: red">FAIL</b>
662 </td>
664 <td>
665 0.09
666 </td>
668 </tr>
670 <tr>
671 <td>
672 <a href="http://nntp.x.perl.org/group/perl.cpan.testers/4931627">4931627</a>
673 </td>
674 <td>
678 <b style="color: red">FAIL</b>
679 </td>
681 <td>
682 0.09
684 </td>
686 </tr>
688 <tr>
689 <td>
691 </td>
692 <td>
694 </td>
696 <td>
698 </td>
700 </tr>
703 </table> </p> </td><td valign="top"> <p>If you click on the header of
704 an individual regression result you follow a link to this table. It
705 shows a summary of the input data collected and each line in turn has
706 a link to the original cpantester report containing the referenced
707 value. You can choose from the drop-down menu which columns you want
708 to have summarized. Note that you can select multiple columns in this
709 drop down simultaneously. If Javascript is enabled in your browser you
710 can sort this table by clicking on the table header in the column you
711 want to sort.</p>
713 <p>If you want to collect statistics you're missing here, you may want
714 to check out <code>CPAN::Testers::ParseReport</code>.</p>
716 </td></tr><tr><td></td><td>
717 <h3>How can I help?</h3>
719 <p>Write me your bugreports at the <a
720 href="https://rt.cpan.org/Dist/Display.html?Name=CPAN-Testers-ParseReport">CPAN-Testers-ParseReport
721 Tracker</a>. Become a <a
722 href="http://wiki.cpantesters.org/wiki/QuickStart">CPAN tester</a>.
723 Provide more and diverse data. When you find a pass to fail ratio of
724 9:5 you should not expect too much and rather try to improve the data
725 than draw conclusions. Be aware that the regression analysis often is
726 exposing <a
727 href="https://en.wikipedia.org/wiki/Covariance">covariances</a> that
728 explain nothing. Healthy results typically appear with higher numbers
729 of PASS and FAIL. When the column <i>high correlations</i> shows many
730 different candidate
731 fields then it is also very likely that many testers had identical
732 configurations and the results are not really telling much.</p>
734 <p>Watch your own perl installations and see where you can try to
735 diversify the data and provide tests with them. If the data suggest
736 that perl 5.8.4 is failing, try to find a 5.8.4 on your disk and see
737 if you can get it working. If you find your own results in the sample
738 try to reproduce them. Too often we have seen random test results. And
739 try to produce the other result by variation of parameters you can
740 influence. Anything that makes the data less uniform automatically
741 helps the statistical methods to bring the most interesting factors to
742 the top.</p>
744 <p> And when you identify the culprit don't hesitate to report the bug
745 to RT (or whichever bug tracking has been chosen for the distro) so
746 that others do not waste their time with the same distro.</p>
748 </td></tr><tr><td></td><td>
749 <h3>Source code</h3>
751 <p>The sources of all the programs involved here are in my git repo of
752 cpan and related tools git://repo.or.cz/andk-cpan-tools.git . The main
753 script is cnntp-solver.pl. It is maintaining the databases and
754 producing regressions. The catalyst app with the name
755 <i>CPAN-Blame</i> produces the pages.</p>
758 <p>Andreas König, 2015-03-31</p>
759 </td></tr></table>
760 [% END %]