This year I was again privileged to attend the Perl Toolchain Summit, held at Bisham Abbey, near Marlow in southern England.

The Perl Toolchain summit is an opportunity for the developers and maintainers of Perl's infrastructure to get together and do whatever is necessary to keep that infrastructure running well and improve its services.

I arrived at PTS with a TODO list which I knew was already more than I would be able to complete. But PTS is not just about getting your own work done. A major benefit of having thirty perl hackers together in a room is that often when someone hits a problem or needs guidance or information they can simply wander over to the table where the author of the software they are using is sitting and ask them directly.

On the first day in the standup meeting I mentioned that I was looking for a solution to install system dependencies of CPAN modules before generating their coverage and that I was sure someone must have solved that problem. Immediately thereafter Slaven came up to me and told me about his module CPAN::Plugin::Sysdeps which does just that. Philippe offered to integrate it into cpancover and before the end of the summit I had a pull request. This type of interaction is a major benefit of the PTS.

Similarly I have (along with many others), for years, wanted to be able to gather coverage information for top-level statements in modules. This is not easy because perl executes these statements on loading the module and then, with no further use for the optree, throws it away, so that Devel::Cover can't get to it later.

This year, I managed to enlist the help of Aaron Crane, who knows far more about the perl internals than I do. Aaron had previously suggested that the DB::postponed subroutine might be part of a solution and this year he spent some time determining the rest of the solution. I was then able to program it up as a proof of concept. The full solution will require changes to the perl core which I will still need to properly implement, but without Aaron's help I'd never have got to a solution. (I know this because I have spent a long time trying and I was on the wrong path(s).)

For a while I have been discussing closer integration of cpancover with metacpan. The fruit of part of these conversations came online a short time ago when metacpan started showing module coverage figures and linking into cpancover for more detailed information. We have also been discussing matters of infrastructure and investigating backup/failover/redundancy for cpancover. Based on some plans made last year and implemented recently, along with Leo's work during PTS, we now have cpancover data backed up to the metacpan infrastructure, and we have a plan for dealing with downtime on the main cpancover server. This is the sort of thing which is so much easier to do by pulling three or four people into a discussion rather than trying to coordinate over mail or IRC.

PTS has become the most important Perl event of the year for me, and I am very grateful to everyone who attends, to the organisers, Neil, Philippe and Laurent, who did a wonderful job, and to all the sponsors without whom it would not have been possible: Booking.com, cPanel, MaxMind, FastMail, ZipRecruiter, Cogendo, Elastic, OpenCage Data, Perl Services, Zoopla, Archer Education, OpusVL, Oetiker+Partner, SureVoIP, YEF.