Perl QA 2014 Recap
This year's Perl QA Hackathon has come and gone. I had an amazing time, and
I'm sad that it's already over.
The QA Hackathon is a gathering with the purpose of improving Perl's toolchain, testing infrastructure, and other bits surrounding language development and usage. At it's core is an incredibly friendly and intelligent group of people, and I always leave the conference feeling reinvigorated and motivated to get things done (and with a much larger todo list than I had going in...)
I brought my fiancée and a friend with me (we had a mini-vacation in Lyon after the conference), and they had many chances to meet and hang out with the group. They had a great time with the Perl people; everyone was incredibly welcoming and inviting, and for that I'm grateful.
For me, this year was a chance to improve the quality of a different part of the Perl ecosystem - the backwards compatibility of the XS API. This is handled by Devel::PPPort, which I've recently become a maintainer of. The module's purpose is to take the Perl XS API functionality added in newer releases of Perl and make it available for older Perls, so XS modules making use of new functionality can work on older releases. It supports and tests most releases all the way back to Perl 5.003.
There's a lot of new functionality that it doesn't account for yet, but I'll try to get it caught up over time with interfaces people are using. (So if you know of something it's missing that you want, please file a feature request here!)
At the hackathon, with the current (mhx) maintainer's help, I finally got set up with a proper testing ground for the module and worked through two of the outstanding feature requests (adding mg_findext and sv_unmagicext) and added a third I noticed was missing (SvREFCNT_dec_NN).
I'd like to take a moment here and thank Marcus Holland-Mortiz (mhx) - through a lot of email conversations with him I've reached enough understanding with the module and its surrounding build process to add functionality and make releases on my own, which I've done following the hackathon by releaseing Devel::PPPort 3.22. His help was invaluable and his patience endless.
Aside from that, I spent some time adding some testing functionality to the core Perl test suite - "test.valgrind" now supports parallel testing so it takes hours instead of a day, "test.deparse" has been re-added and now supports a "known issues" file so that we can track progress with improving B::Deparse (and make sure it doesn't get worse), and while playing with bits of the Perl core, I came across a few bugs and filed RT tickets for them, so that's a bonus.
I spoke with Paul Johnson (pjcj) about the issues with Devel::Cover and the upcoming 5.20 release. A commit of mine awhile back had broken assumptions that Devel::Cover was making, and after Paul explained enough about what he was doing and how Devel::Cover worked, I came up with a fix that's been applied and released.
I also reviewed some awesome code changes by Christian Walde (Mithaldu) to PPI - the Perl Parser Interface - that improved its performance and capabilities to handle larger Perl files significantly, and I'm super excited to see that project getting some love.
I selfishly used this conference as a chance to bug Tim Bunce about Memcached::libmemcached, which I'm now maintaining for him. He was very patient and incredibly helpful, and I've fixed up and released a new version of that as well. (And in the process, I learned that "Help maintaining" means "taking over". Well played sir.)
I didn't get to many of my todo list items, and with this conference the list has grown significantly, but with the fun I had I expect to have more energy to put towards working through these items.
I can't wait for the next Perl event (YAPC::NA in Orlando for me) and I hope to be fortunate enough to attend the QA Hackathon again next year.
I'd like to thank Book and elbeho for organising once again, as well as Wendy for helping to make sure we stayed fed. I'd also like to thank our sponsors, without you this wouldn't be possible.
-- Matthew Horsfall (alh)