My first QAH (QA Hackathon)
The QA Hackathon gathers various major contributors to the core infrastructure of the Perl language and the CPAN. People who have immense responsibility and whose contributions fuel our work and our businesses.
The QAH is a good opportunity for these contributors to discuss important topics, reach solutions or make decisions on how to move forward, and to hack on all the core infrastructure.
I was invited to this QAH hoping I will be able to contribute. While I finally got to see a lot of people I missed and had the pleasure of meeting people I've always wished, I also tried to work on several things, all described in the results page. I'd like to get into a bit of details regarding the work I did. Let's hope it was useful enough to justify my attendance.
There were several discussions and I tried to attend all (eventually being able to attend most). These included Test2 (of which Chad Granum wrote), the QAH itself, and the CPAN River (of which Neil Bowers had written at length). I also led one discussion about how to package Perl modules and applications, crossing between operating systems and languages. I hope it went well.
The majority of my time I worked with Leo Lapworth (Ranguard), Olaf Alders, and Mickey Nasriachi. While we are all part of the MetaCPAN core (Leo and Olaf in earnest, Mickey and myself by working on MetaCPAN::Client), Mickey and I still had only preliminary understanding of the internal code-base (okay, just me!) and we finally had a chance to work together on porting MetaCPAN to a significantly updated Elastic Search. This is crucial. I am happy I got to work with them on it, and I believe we've made substantial progress. I also got to update
MetaCPAN::Client which will get released shortly, so that's good.
I also worked on packaging some more. I hope to reach a point I could write separately on this, but it's still much too early for that. Thanks to mst for putting up with my unending questions on logging and Log::Contextual. "Why does it do this?", "Why not this?", "Log::Dispatch does this", "Log::Dispatchouli does that", "Why doesn't this work?" - Matt sure has patience!
I got to work with Aaron Crane, which was very fun for me. We looked at Ref::Util. Aaron provided a PR to have some plain explicitly non-blessed implementations of
Ref::Util's functions. I merged those and together we looked at an interesting issue, raised by Yves Orton, about regular expressions. They require checking magic so their implementation in my module was fairly naive, and by "naive", I mean "wrong". We fixed that for Perl 5.10 and above (both in the XS version and in the optimized opcodes version).
We then discussed, along with Matthew (wolfsage) Horsfall adding the macro (
SvRXOK) to Devel::PPPort so we could use it to support the same functionality but for Perl versions 5.6 and 5.8. Even if it doesn't happen, I got to work with Aaron and see his archaeological prowess in action. Also, I finally had a reason to ping Matthew. :)
On the same topic, mst, Aaron, and I discussed the issues with blessed vs. non-blessed references and how tricky this can be. We discussed the most common practice and what we can do to improve. We decided to introduce more plain functions and make the blessed ones separate. There will be additional posts on this topic, I assure you. Thank you, mst and Aaron, for exemplifying how easily one (or two) can convince with the right approach!
Ishigaki-san found that I am in charge of using a very bad practice in JSON in a Dancer plugin I wrote years ago and didn't even know. We looked together at how to cleanly fix it, went through the tests, fixed, and released a new version on the spot. I provided a pull request for the equivalent module in Dancer2.
And within all of this, once in a while, Abe Timmerman consulted with me about a feature request I had regarding Perl core tests. He was working on making it easier to see when there's a change in platform tests, which cannot be easily seen right now. The interface Abe is working on allows us to see that a smoker which had previous failed is now passing.
I want to thank the organizers: Barbie, JJ, and Neil. You did an incredible job. I want to also thank all of the sponsors for the QAH - it could not have been done without your help.
Sponsors for the Perl QA Hackathon 2016
- Campus Explorer,
- Perl 6,
- Perl Careers,
- Perl Services,
- Robbie Bow,
- Ron Savage,
- Charlie Gonzalez,
- Justin Cook