Discussion:
TPF Devel::Cover grant report August 2013
Paul Johnson
2013-08-31 23:02:48 UTC
Permalink
In accordance with the terms of my grant from TPF this is the monthly
report for my work on improving Devel::Cover covering August 2013.

This month I released Devel::Cover versions 1.07 and 1.08.

Version 1.07 was primarily concerned with getting Devel::Cover to work with
recent Perl releases: 5.18.1, 5.19.1, 5.19.2 and 5.19.3. The main problem was
with 5.18.1 which is a stable, maintenance release of Perl and which was
causing Devel::Cover the fail its tests rather dramatically. And the tests
were showing up a real problem which stopped Devel::Cover working with Perl
5.8.1 at all.

The original bug report against Perl, filed by Jim Keenan, is RT #119351: Perl
5.18.1 breaks Devel::Cover. And the analysis of the problem is at
https://rt.perl.org/rt3//Public/Bug/Display.html?id=119351#txn-1245355

The minimal test case is:

$ perl5.18.0 -MB -E 'say B::main_cv->GV // "undef"'
B::SPECIAL=SCALAR(0x7b58e0)
$ perl5.18.1 -MB -E 'say B::main_cv->GV // "undef"'
undef

which shows the regression from 5.18.0 and, indeed, from every stable version
since 5.6.1, which is the first version that Devel::Cover works with and, I
think, the first version which supported this construct. The reason that
Devel::Cover has, and always had, a minimum requirement of Perl 5.6.1 was
because that was the first version of Perl which supported sufficient
introspection capabilities (B::) to make Devel::Cover possible.

The offending commit was e6c4c33, which was an important fix for a crash
related to lexical subroutines, but which had this unfortunate and unintended
consequence.

Further discussion in RT #119413: Reconsider e6c4c33 to ext/B/ in light of
test failures, suggests that we will see a Perl 5.18.2 release fixing this
regression sooner rather than later.

On a personal note, I'm annoyed that I didn't test any of the 5.18.1 release
candidates against Devel::Cover. Doing so could have prevented 5.18.1 being
released with this regression. I do usually test the release candidates
against all the modules I use personally or in my work, but this release
caught me during a rather busy time.

In any case, irrespective of what happens with upcoming Perl releases,
Devel::Cover 1.07 and later work with every stable version from 5.6.1 to
5.18.1, and should work with 5.18.2 whether or not this regression is fixed.

The same regression, unsurprisingly, was in bleadperl, and was causing
Devel::Cover to fail with recent development releases. The fix for 5.18.1
also worked for the development releases, but Perl 5.19.2 and 5.19.3 had
another problem. The problem was that line numbers reported for certain
constructs changed and whilst Devel::Cover still worked, the tests were
failing because the line numbers against which coverage was reported didn't
match.

This problem was reported in Perl RT #118931 and shows that the problem
started with 2179133 and was fixed with bf1b738. But since there are some
cpantesters running 5.19.2 and 5.19.3, I caused the problematic tests to be
skipped on those versions. So as of the end of August, The current version of
Devel::Cover should pass its tests against all stable versions of Perl since
5.6.1 and all 5.19.x development releases.

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

As I mentioned in previous reports, I'm still rather busy with other work, but
I hope that I will be able to start devoting more time to Devel::Cover towards
the end of September.


Closed Github tickets:

66 test failed on Perl 5.18.1
67 typo fixes
68 Devel::Cover 1.06: many test failures with Perl 5.18.1

Merged pull requests:

67 typo fixes

Closed RT tickets:

#88027 [PATCH] POD encoding

Fixed cpantesters reports:

http://www.cpantesters.org/cpan/report/f55d93ca-ef02-11e2-86a0-c002f2ff63fb
http://www.cpantesters.org/cpan/report/30be31c6-f1b6-11e2-afc2-f2e1da45041b
http://www.cpantesters.org/cpan/report/064f36d0-f1eb-11e2-bf5c-b8f3f1ff63fb
http://www.cpantesters.org/cpan/report/fbc3b37c-f356-11e2-9ec7-5be4f1ff63fb
http://www.cpantesters.org/cpan/report/8cb777fe-f3d6-11e2-a1a6-d9e588f30751
http://www.cpantesters.org/cpan/report/01337d58-f576-11e2-bcc8-eaa4f1ff63fb
http://www.cpantesters.org/cpan/report/d9066a0a-f4be-11e2-ac5a-1eb5f1ff63fb
http://www.cpantesters.org/cpan/report/cd493678-fdf3-11e2-bc11-107f5388eb25
http://www.cpantesters.org/cpan/report/d1eb5ae0-038d-11e3-acb5-a176cd95e79a
http://www.cpantesters.org/cpan/report/48e7199c-03c3-11e3-8a37-e2882d12fa71
http://www.cpantesters.org/cpan/report/0a95b548-041f-11e3-8a37-e2882d12fa71
http://www.cpantesters.org/cpan/report/f17470be-0418-11e3-935d-85093788882e
http://www.cpantesters.org/cpan/report/33dc0f64-0560-11e3-8a37-e2882d12fa71
http://www.cpantesters.org/cpan/report/c535a3e6-0752-11e3-bc0a-b75d6d822b3f
http://www.cpantesters.org/cpan/report/56faf65a-0767-11e3-8b51-dc8ed8c219ae
http://www.cpantesters.org/cpan/report/0f4fba8e-eff2-11e2-85ee-142989f30751
http://www.cpantesters.org/cpan/report/c0f0efc6-efd7-11e2-8541-50faf1ff63fb
http://www.cpantesters.org/cpan/report/bea64e9c-f2a1-11e2-b883-7597f1ff63fb
http://www.cpantesters.org/cpan/report/7e018316-f61b-11e2-9843-3cfc88f30751

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

Hours worked:

21.08 5:20
24.08 4:15

Total 9:35

Total hours worked on grant: 294:30
--
Paul Johnson - ***@pjcj.net
http://www.pjcj.net
Ricardo Signes
2013-09-02 02:55:18 UTC
Permalink
Post by Paul Johnson
In accordance with the terms of my grant from TPF this is the monthly
report for my work on improving Devel::Cover covering August 2013.
+1, thanks, Paul!
Post by Paul Johnson
5.18.1 breaks Devel::Cover.
I'm very sorry to have been part of the problem, here. I've made a change to
my personal process that would've helped this case, and am going to see what
can be done about smoking CPAN more compehensively with the RC.

(This means I may finally learn how to run a smokebot!)
--
rjbs
Christian Walde
2013-09-02 09:59:16 UTC
Permalink
Post by Paul Johnson
In accordance with the terms of my grant from TPF this is the monthly
report for my work on improving Devel::Cover covering August 2013.
+1, thanks. :)
Post by Paul Johnson
On a personal note, I'm annoyed that I didn't test any of the 5.18.1
release candidates against Devel::Cover. Doing so could have prevented
5.18.1 being released with this regression. I do usually test the
release candidates
against all the modules I use personally or in my work, but this release
caught me during a rather busy time.
Did you give any thought to automating this?
--
With regards,
Christian Walde
Buddy Burden
2013-09-02 19:18:30 UTC
Permalink
Paul,
Post by Paul Johnson
In accordance with the terms of my grant from TPF this is the monthly
report for my work on improving Devel::Cover covering August 2013.
+1, definitely.

Here's what I'm curious about: I notice that you, and many other grant recipients (e.g. Nicholas Clark) always provide such detailed reports. I'm so glad, because they make for fascinating reading, but you guys must spend hours over the course of a grant just writing up your results. Do you factor that into your grant hours? I think you guys deserve to get paid for this part of the process too. It's not just a matter of transparency (although that's very important, granted). I always think: man, this really shows off what TPF is doing for our community, and why their work is so vital. So I think that your detailed grant reports (and those of others, of course) are a sort of community outreach, on top of representing valuable work that we all benefit from.

Anyways, just wanted to share how valuable I thought the time you put into these reports is, especially if those hours are above and beyond the time your grant covers (but even if they aren't).

Take care.


-- Buddy
Paul Johnson
2013-09-02 21:08:25 UTC
Permalink
Post by Buddy Burden
Paul,
Post by Paul Johnson
In accordance with the terms of my grant from TPF this is the monthly
report for my work on improving Devel::Cover covering August 2013.
+1, definitely.
Thanks very much. Officially, only my grant managers need to approve
the work, but it's always nice to know that other people are finding it
useful.
Post by Buddy Burden
Here's what I'm curious about: I notice that you, and many other grant
recipients (e.g. Nicholas Clark) always provide such detailed reports.
I'm so glad, because they make for fascinating reading, but you guys
must spend hours over the course of a grant just writing up your
results. Do you factor that into your grant hours? I think you guys
deserve to get paid for this part of the process too. It's not just a
matter of transparency (although that's very important, granted). I
always think: man, this really shows off what TPF is doing for our
community, and why their work is so vital. So I think that your
detailed grant reports (and those of others, of course) are a sort of
community outreach, on top of representing valuable work that we all
benefit from.
You are absolutely correct that writing the reports takes a lot of work.
I don't know about any other grant recipients, but I have decided not to
charge that work to the grant.

And I also agree with your thinking regarding the reports. The
transparency is paramount, but there are other benefits, as you note,
and I don't think I could have explained them any better.

Writing the reports can also make me revisit my thought processes and
double check what I am doing or have done. More than once this has
caused me to go back and change some code, so there's another benefit.
Post by Buddy Burden
Anyways, just wanted to share how valuable I thought the time you put
into these reports is, especially if those hours are above and beyond
the time your grant covers (but even if they aren't).
Thanks again. I'm always pleased just to find out people are reading
them ;-)
--
Paul Johnson - ***@pjcj.net
http://www.pjcj.net
Loading...