QA Hackathon 2014
This year's QA hackathon was held last weekend in Lyon. 30 of the nicest and cleverest people I know met for four days with the common goal of improving Perl's quality with specific reference to testing and the toolchain. I was there too.
We met at the Booking offices in Lyon bright and early on Thursday morning. The natives were friendly and graciously provided us with a room to work in and use of their kitchen.
Rather cleverly, after finishing my work on Wednesday afternoon, I had put my laptop in my bag and left, forgetting to bring the power adapter. Fortunately, Steffen Schwigon sat next to me. He had brought two laptops with him, one of which was compatible with mine, and he very kindly allowed me to use his adaptor throughout the hackathon. Thanks Steffen! That generosity certainly improved my weekend.
My main focus was on improving Devel::Cover and the coverage of CPAN modules, and I came with a fairly long TODO list that I knew wouldn't all get done. Some of the items on the list were completed, but by the time I left the list was longer than at the start. Still, I suppose that is progress of sorts.
Top of my list of things to do was to ensure that Devel::Cover would work with perl 5.20. One of the tests was failing with recent development releases due to an optree optimisation made by Matthew Horsfall. The optimisation caused perl to skip the execution of a particular op which Devel::Cover had overridden in order to collect coverage. This meant that Devel::Cover missed some coverage.
Fortunately, Matthew was also in Lyon and between us we were able to solve the problem. We shared the work equally: I explained the problem and Matthew solved it. Hooray! I released version 1.09 containing Matthew's fix.
Having four uninterrupted days for hacking is a great benefit and a very pleasant change. But, to my mind, the main advantage of the QA hackathon is being with people who are working on similar things. Working together we are far more than the sum of the parts, and I try to ensure that I spend as much time as necessary talking and planning and designing. Coding can come later if necessary.
Amongst others, I had discussions with Olaf Alders about getting a link on metacpan to cpancover.com, with Neil Bowers about adding coverage data to his CPAN dashboard and with Barbie about using the metabase to manage coverage data.
I also spoke with Peter Rabbitson about an idea he has for collecting and displaying call graph information. He has written a prototype and wondered whether that would fit in with Devel::Cover. We discussed ways of implementing this with Tim Bunce.
I got Devel::Cover working with Devel::NYTProf and saw that a fair amount of time is being spent in the code which decides whether we are in a module for which we want to collect coverage data. Matthew Horsfall generously offered (his time permitting) to take a look into whether some judicious use of XS code, or perhaps some rework of this area of the code, might provide useful speedups.
It is now traditional that Tux finds bugs or requests Devel::Cover features every QA hackathon. This year was no exception. But this year he also provided patches for every problem he found. Thanks!
After releasing Devel::Cover 1.09, the next morning I had mail from cpantesters with a specific failure. Fortunately, when I received the mail, the originator was sitting not ten feet away from me. It was from one of Slaven Rezic's smokers, and although the mail didn't pinpoint the problem, Slaven was able to do so fairly quickly, and pointed the finger at a problem with recent perl development releases and JSON::XS running with LC_NUMERIC set to something that uses commas for the decimal point.
I find the QA hackathon to be an extremely important event. It motivates and drives progress over the coming year and beyond. Enormous thanks must go to everyone involved in the organisation. Of particular note were the efforts of BooK and Laurent to arrange the whole event, and of Wendy in making sure that the kitchen was kept stocked. And, of course, nothing would have happened without the generosity of the many sponsors: Booking.com, SPLIO, Grant Street Group, DYN, Campus Explorer, EVOZON, elasticsearch, Eligo, Mongueurs de Perl, WenZPerl for the Perl6 Community, PROCURA, Made In Love and The Perl Foundation. http://act.qa-hackathon.org/qa2014/sponsors.html
Merci bien, Lyon! Und ich freue mich auf nächstes Jahr in Berlin!