Perl QAH 2016
This past week I once again attended the annual Perl Quality Assurance Hackathon in Rugby, U.K.
This event centers around a bunch of Perl enthusiasts getting together to work on the Perl Toolchain - the underlying systems, processes, tools, and vast testing infrastructure that ensure Perl and its modules (CPAN) are available and installable on a wide array of architectures.
At this particular event, I spent some time familiarizing myself with the PAUSE code base (with the help of rjbs), and fixing up a bunch of low hanging fruit:
- Allowing build-fresh-cpan (a debugging/development tool) to:
- Pre-populate the database from 02packages and 06perms
- Store generated emails on disk so that they can be examined
- Update various little bits of documentation
- Add SHA1 checksums along side MD5 checksums in file upload notification emails
At the request of rjbs and with the help of Mithaldu, I also added some functionality to PPI to provide access to the version in package declarations like:
package Thing 2.31;
Along the way I filed a few bugs and minor PRs in some other projects that popped up through the course of my work.
On day 3, rjbs had released a trial version of Dist::Zilla 6.0 which included some semi-significant changes to previous Dist::Zillas.
I thought it'd be neat to have a way to easily test the new release against all of its various plugins and compare the results to the existing release, and so I wrote p5-distribution-smoke, which let me do something like...
./dist-smoke.pl Dist::Zilla@5.047 Dist::Zilla@6.000 'Dist::Zilla::Plugin::Readme*' results Generating report... Report: ======= Now failing: Dist::Zilla::Plugin::ReadmeMarkdownFromPod Dist::Zilla::Plugin::ReadmeAnyFromPod 2 distributions continued to pass 1 distributions continued to fail
...and then examine the output of the failed builds to see what broke.
I'm really excited about this project, and I have plans to expand its functionality significantly so you can easily do things like:
- Compare a release in development with the latest release on CPAN against all modules that directly depend on it
- Compare two releases against all modules that indirectly depend on them
- Compare releases against a list of specific modules
- Compare multiple releases and generate comparisons for each
After that, I spent a large amount of time tracking down a bug that was preventing CHI::Driver::Memcached from installing when a newish version of Memcached::libmemcached was installed. (Thanks to Tim Bunce for giving me the itch to do so...)
I also attended a few of the various meetings (mostly as an interested party in the discussions), played some board games, ate some wonderful food, and had an all-in-all great time talking with friends and meeting new people.
I'd like to thank the sponsors who make this event possible, for without them, we wouldn't have accomplished so much.
- Campus Explorer,
- Perl 6,
- Perl Careers,
- Perl Services,
- Robbie Bow,
- Ron Savage,
- Charlie Gonzalez,
- Justin Cook
Also huge props to Neil Bowers, Barbie, and Jon Allen for organizing, and thanks to Wendy as always for helping out.
-- Matthew Horsfall (alh)