my work on improving Devel::Cover.
Since the last report I have released versions 1.16 and 1.17.
The stable release of perl 5.20.1 along with development releases up to 5.21.4
have come out, and are all supported fully in Devel::Cover.
Additionally, and probably most importantly, cpancover.com is now fully up and
running. For some value of fully.
http://cpancover.com is a site to display coverage information for CPAN modules.
Previously this was for only a fairly small subset of CPAN modules, although I
had tried to make it a relevant subset. Now, coverage is reported for all
current CPAN modules, both stable and development releases, and coverage
information for previous modules is not deleted. Of course, the coverage
information is only available if the module can be installed, and the tests can
be run on the server I am using.
On that subject, the server has been kindly donated by Bytemark. It is one of
their bigv servers and runs Ubuntu 14.04. In order to cover all of CPAN I
needed more disk space, and Bytemark very graciously agreed to the increase here
The coverage process runs continuously, looking for newly uploaded CPAN modules
and then calculating their coverage. New CPAN modules are found using
CPAN::Releases::Latest by Neil Bowers with index caching turned off.
In addition to the usual HTML coverage reports, there are also JSON files
available if someone just wants the raw data. There is a top-level file at
http://cpancover.com/latest/cpancover.json detailing which modules have been
covered and the summary coverage information.
Then there is a JSON file for each covered module providing run and file-level
coverage information. For example the aforementioned CPAN::Releases::Latest has
With all this in place, plans are under way to make the information available on
the metacpan. See https://github.com/CPAN-API/metacpan-web/pull/1128 for the
There is one big problem too! You have probably already noticed it if you have
followed the link to the site. When I only catered for a smallish subset of
modules, sticking them all in a table on the front page seemed quite reasonable.
Now, that table has over 25,000 rows, and the front page is anything but
So the HTML output needs to be reworked. I'm rather hoping that someone reading
this will think "I can probably do that, and I'd love to have a go." If that's
you, have a look at the current state of events on the ticket
https://github.com/pjcj/Devel--Cover/issues/102, and check out the existing code
Feel free to ask questions on IRC. You can't miss the link on
https://metacpan.org/pod/Devel::Cover ;-) And if you do fancy working on this,
please make a note on the ticket to avoid duplication of effort, and prepare for
fame and fortune!
As usual, I made various other changes and fixes, applied patches and merged
This grant is now at an end. I delayed posting this final report because I
wanted cpancover.com to be up and running and, even with 16 CPUs, it took almost
a month for a complete coverage run of CPAN.
I believe the grant to have been successful. Over two years I have been able to
spend 400 hours working on Devel::Cover which, otherwise, I would not have been
able to do. 400 hours over two years may not sound much, and I suppose it's not
really very much - I could have completed that within a few months - but what
the grant gave me was the ability to take a few days every month to really
concentrate exclusively on Devel::Cover.
And that was the important aspect of the grant. Some problems are just too
involved to be able to solve by spending a few hours over a few evenings.
Sometimes a day or two of intense work is required.
I'm not sure that completing the entire grant in three months would have been as
beneficial either, although there would have been advantages and disadvantages
there. One big advantage of spreading the grant out was that many more people
were able to get involved in the project in various ways. It's still primarily
me, and I'm not surprised by that, but I think the project is a lot more
accessible than it was previously, although there's still plenty of work to be
done in that regard. I'm happy that quite a few people have contributed to the
project in one way or another.
In September I spoke about building cpancover.com with Docker at the Swiss Perl
Workshop. I shall be reprising the presentation at the Austrian Perl Workshop.
Then I am looking forward to the QA Hackathon next spring. Of course, the
amount of time I'm able to spend on Devel::Cover will be reduced, but I shall
continue to maintain it and work on it as time permits, as I did before starting
I'd like to offer my sincere thanks to everyone who made this grant possible.
This includes, but is not limited to, everyone who has contributed to TPF, those
who work with TPF and those who supported the grant request and, specifically,
Nicholas Clark for first suggesting the possibility of this grant, my grant
managers, Florian Ragwitz, Ricardo Signes and Christian Walde, Dan Wright for
dealing with the finances, Mark Keating for dealing with the reports, and Karen
Pauley for picking up anything that got dropped and keeping the whole thing on
track. And, of course, a big thank-you to everyone who contributed to the
project in any way at all; sending pull requests, filing bug reports, making
suggestions, reminding me to do things, commenting on my reports, or even just
taking an interest. I'm serious - thank-you everyone!
I have now finished off the final 9 hours and 35 minutes of the grant and
therefore my final report is:
Total hours worked on grant: 400:00
This report is also available at
Paul Johnson - email@example.com