Devel::Cover grant report March 2014

No Comments

Paul Johnson writes:

In accordance with the terms of my grant from TPF this is the monthly report for my work on improving Devel::Cover covering March 2014.

Those of you who have been paying close attention may have noticed that it has been some months since my last report. Unfortunately I got rather busy and Devel::Cover work was one of the casualties. However, with the approval of my grant managers and the President of TPF I am intending to complete the grant.

This month saw the annual Perl QA Hackathon which was held in Lyon. You can find my report at
http://blogs.perl.org/users/paul_johnson/2014/03/qa-hackathon-2014.html The hackathon gave me four days to really get back into working on Devel::Cover so I decided to restart my grant work directly afterwards.

Having discussed much about how to improve cpancover.com with Olaf Alders, Neil Bowers and Barbie, I made a start on the implementation. There are a number of problems with the current implementation. The main difficulties are that there is no API for services such as metacpan or the CPAN dashboard to use, and that the coverage of CPAN is somewhat minimal. I have made a good start on solving these problems and making cpancover more useful.

I have also noted official support for 5.18.2 and prepared for the removal for CGI.pm from the core.

A bug in bleadperl (or not, as the case my be), https://rt.perl.org/Public/Bug/Display.html?id=121317 had me looking at Devel::Cover's database storage options. Devel::Cover can currently use JSON (either XS or pure perl) or Storable, in that order of preference. Yves Orton suggested that Sereal might by a sensible serialisation format, and so I wrote a Serial backend module.

The module performs well, being faster than JSON, and also having the advantage of having no other dependencies. Devel::Cover cannot be used on modules with it uses itself, but if the Sereal folk ever want to run Devel::Cover on Sereal they can use one of the other serialisation formats by setting the $DEVEL_COVER_IO_OPTIONS environment variable.

I've had a bug report about merging disparate coverage databases for a little while (github 71), and Tina Müller hit the same problem and mentioned it on IRC, so I thought it was time to look into it. It turns out that I was not correctly merging the structures of the databases - the parts which keep information about the statements and other constructs in the code. Adding tests for this took a little work, and gave me cause to improve Devel::Cover's testing system.

Because of the way in which Devel::Cover interacts with Perl, it is not always easy to test Devel::Cover in the way in which a more ordinary module might be tested. (Although that's not to say that I do all I can in that area and improvement here is more than warranted.) The majority of Devel::Cover is tested by having a number of small scripts which are run under Devel::Cover, and the output of the text report is compared against golden results. This is useful because it makes development against a problematic script simple.

Adding a new test case is also simple. It is a matter of adding the script and any dependencies into the tests directory and generating golden results. Once the golden results are generated, they should be checked manually for veracity, of course.

As usual, there were also some patches applied, pull requests merged, and other bugs fixed.

This month I released Devel::Cover version 1.09.

Closed Github tickets:

71 merge structures when merging dbs
75 Test failure with perl 5.19.6
76 perl 5.8 is also available at travis-ci
78 Deep recursion segfault with use overload...

Merged pull requests:

79 Execute get_magic once, and store the resulting value.
80 abranch_return_sub.t fail / bleadperl v5.19.5-368-ge45d898
81 added line to support spaces in path to dbname.
83 expand all tabs in source code

Closed RT tickets:

#90591 abranch_return_sub.t fail on 5.19.6

Fixed cpantesters reports:

http://www.cpantesters.org/cpan/report/ff4b09ac-8b93-11e3-8a56-d2c85d7e0655
http://www.cpantesters.org/cpan/report/b7c2d4f0-9a18-11e3-8969-7298fa609845
http://www.cpantesters.org/cpan/report/f179e3e6-9a72-11e3-a27d-21755d7e0655
http://www.cpantesters.org/cpan/report/078aa162-9b85-11e3-86fb-31b65d7e0655
http://www.cpantesters.org/cpan/report/c4903504-9c77-11e3-9c3d-7053e0bfc7aa
http://www.cpantesters.org/cpan/report/9fd0f800-9c92-11e3-a00d-6ddb8ecac5ce
http://www.cpantesters.org/cpan/report/5d107ad6-9d7d-11e3-b4a2-3582957252a2
http://www.cpantesters.org/cpan/report/043a8cb4-a34d-11e3-b4ff-ae6e834e6a80
http://www.cpantesters.org/cpan/report/e2dfc3a6-a9b2-11e3-9586-142be0bfc7aa

You can see the commits at https://github.com/pjcj/Devel--Cover/commits/master

Hours worked:

17.03 6:40
18:03 5:15
19:03 7:00
20:03 3:45
21:03 6:50
22:03 4:40
29:03 3:30
31:03 2:45

Total 40:25

Total hours worked on grant: 334:55

Leave a comment

About TPF

The Perl Foundation - supporting the Perl community since 2000. Find out more at www.perlfoundation.org.

About this Entry

This page contains a single entry by Karen published on April 29, 2014 3:53 AM.

Tony Cook's Grant Extended was the previous entry in this blog.

Call for Grant Proposals (May round) is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

OpenID accepted here Learn more about OpenID
Powered by Movable Type 4.38