Try this awesome trick to make your language toolchain better

Get the lead developers together in a hotel for four days. Remove all distractions. Feed them. Stand back and watch bugs get fixed, problems get solved, and new ideas implemented.

Earlier this month 38 Perl toolchain developers assembled in Lyon for the Perl Toolchain Summit, the event previously known as the QA Hackathon. This is an annual gathering where we pull together the lead developers of the core systems and tools in the CPAN ecosystem. We aim to provide an environment where for four days they can work on the tools we all rely on, with the right people around them.

This blog post is a summary of the summit. We can't cover everything, but our goal is to give you a flavour of the work that went on, and hopefully get across why the attendees typically rate this as their favourite event to attend. You can read more of the individual accomplishments on the results page of the event wiki.

Git::Database now supports seven different Git backends

A few weeks ago, SROMANOV sent me a patch for Git::Database adding initial support for accessing the Git object database references via Git::Raw. He had already contributed a partial implementation for a Git::Wrapper backend some time ago.

This motivated me to explore that module further, and implement the methods that were missing from Sergey's patch. So I asked JACQUESG to implement a few features that I needed. He was amazingly fast at responding, and I found myself asking for more and more features. And he just kept adding them!

So, thanks to a motivated contributor and a very reactive maintainer, Git::Database 0.08 can now access data from a Git repository using any of these seven Perl Git backends:

There are in fact more Git backends on CPAN... Anyone interested in adding support for Git::Class must have understood by now that patches are welcome. :-)

Update: I my praise for contributors, I forgot SREZIC, who not only runs a smoker, but tirelessy reports all failures back to the author, usually with some analysis that puts me on the track for a fix. Version 0.009 is on CPAN thanks to him.

This round of applause would not be complete without DOLMEN who spent a lot of time helping me design the module's interface. I have already mentioned his role in a previous post.

All the module issues come from me, and these people helped make it much much better than I could have on my own.

About the Perl Toolchain Summit

We've had a few questions and discussions about the toolchain summit since our announcement in January. In this blog post we'll address some of those: why the name change, what things are fair game to be worked on, and who decides who comes?

The Perl Toolchain Summit is the new name of the Perl QA Hackathon, an event organised for the first time by Salve J. Nilsen in Oslo in April 2008. In Salve's words from 2008:  "The purpose of a QA hackathon would be to Quality Assurance-related problems that are easier to solve when everyone is gathered in the same physical location. This can include issues with packaging, testing modules, community support or with tools."

Over time, the event has grown in importance (it is now the major non-conference event of the Perl community), and moved around Europe, organized every year by a different team in a different European city. It is entirely financed by corporate and community sponsors interested in having a healthy and reliable Perl environment.

The Perl Toolchain Summit 2017

It is my pleasure and honor to announce that the Perl Toolchain Summit will be held in Lyon, France from Thursday 11th May 2017 through Sunday 14th May 2017. This is the event previously known as the Perl QA Hackathon, where we bring together as many of the key people working on the Perl toolchain as we can.

Introducing Git::Database

Git::Database is yet another module I wrote to interact with Git. It wraps an OO-layer around Git objects (blobs, trees, commits, tags), in a way that's very similar to what Git::PurePerl does. It has no opinion on the actual means to get the data from the Git object database: that bit is done with the Perl Git wrapper of your choice.

At the moment, there's only one supported wrapper for fetching data from Git: my own Git::Repository. I already have branches with working code (i.e. passing all the relevant tests) for Git::Wrapper, Git::Sub, Git::PurePerl and even the venerable Git.pm, which I'll publish when they are more feature-complete. Git::Class is missing some critical feature I need to get the data from Git, and I couldn't figure out how to get the data using Git::Raw. Patches welcome!

The release is a version 0.001, as I expect the interface to have some rough edges that need some polishing. Depending on the feedback I receive, a version 1.000 should appear in a few months.