The Perl Quality Assurance Hackathon (hereafter QAH) is an annual 4-day gathering of the people who work on the core CPAN toolchain and associated systems & services. This gives them dedicated time to work on these systems together, solving hard problems and working out how to move everything forward.

Like pretty much everything in the Perl world, these are all volunteers, so our approach is to get sponsorship to cover expenses (travel, accommodation, working space, meals) for as much of the gathering as possible. If your company relies on Perl, ask yourself how much you rely on the toolchain working smoothly? Perhaps you could persuade someone to sponsor the QAH this year?

The CPAN toolchain isn't glamorous, so generally doesn't get much press, but it's an essential part of our world. So over the next few weeks we'll be posting some short articles to raise awareness and hopefully encourage some sponsorship.

What is the CPAN toolchain?

The Comprehensive Perl Archive Network (CPAN) is the mechanism used to share re-usable Perl components with the rest of the Perl world. Developers can package up their modules and upload them onto CPAN. Other developers can search all of CPAN, then download modules of interest and install them on their local machine, whether that's Windows, Unix, Mac, or something more esoteric.

There are many different moving parts that make up the CPAN ecosystem. Here are a few that you may be familiar with:

PAUSE is the system used by module authors to upload their code onto CPAN.

CPAN is both a collection of Perl distributions (held on the master CPAN site which is part of PAUSE) and a network of mirror sites (ftp and http) around the world.

CPAN clients let you install things from CPAN, tracking dependencies and installing those for you too. For example CPAN.pm, cpanm, CPANPLUS are CPAN clients.

CPAN::Meta::Spec defines the metadata associated with each CPAN distribution. This provides the glue that holds together much of the CPAN workflow, ensuring that distributions produced with one toolset will work with the entire toolchain.

Dist builders help you package up your code to release it to CPAN and/or are used when someone installs your package. Examples: ExtUtils::MakeMaker, Module::Build, Module::Install, Dist::Zilla, Module::Build::Tiny, Minilla, etc.

There are many modules in the Test:: namespace, but all of these build on Test::Builder, Test::Simple, and Test::More. All of Perl's testing is based around TAP, which is now used well beyond the Perl sphere.

CPAN Testers gives all authors feedback on how well their distributions test out on different operating systems and versions of Perl.

CPANTS is a different testing service that will tell you which conventions your distributions are following, or not.

MetaCPAN is not only a search engine for mining CPAN, it also provides an API for people building additional CPAN tools.

In a subsequent post we'll give more detailed descriptions of the components that make up the toolchain, and some of the challenges they face.

Where is the QAH?

This year the QAH is being held 16th-19th April in Berlin, and is being organised by Berlin.pm. So far it's always been in Europe, as the greatest percentage of toolsmiths live in Europe. But people also come from the USA, Canada, and Japan. Attendees will be working at the Betahaus shared working space, and staying at a local hotel.

What is the QAH for?

The many elements making up the toolchain are developed and maintained by a network of volunteers from all over the world. This work is almost entirely done in their spare time, competing with family, hobbies, and other realities of life.

While a lot of discussion goes on in mailing lists and particularly on IRC, much of that is focussed on maintaining the status quo. The QAH gives people dedicated time to work out thorny problems, but also to promote ideas for new features, and build momentum. Attendees generally publish a todo list before attending, which the entire Perl/CPAN community can comment on and contribute to.

The real value is the discussions that can take place when all of "the right people" are under one roof. It's a very energising environment, and everyone comes away with longer todo lists than they brought with them.

What can you do?

While this isn't a very expensive event to put on, we need to cover (a) the meeting space being used during the day, (b) hotel rooms, and (c) travel expenses. Some attendees have their expenses covered by their employers, for which we're very grateful. But many people can only attend if their expenses are covered by sponsorship.

If your company relies on Perl and CPAN, why not see if you can get it to sponsor the QAH? It doesn't matter how much — everything will help. Individual donations will also be gratefully received. Any excess will roll over to next year's QAH.

More information about the QAH, including sponsorship and contact details can be found on the QAH website.