I could be talking about the Perl 5 Corehackers project introduced by Chip Salzenburg at YAPC::10 in Pittsburgh last month -- but I'm not. More precisely, I'm not talking about the Corehackers project *yet*. I'm talking about the Phalanx Project.
The Phalanx Project was an idea first introduced by Andy Lester in 2003. In the Phalanx project, groups of Perl developers would select frequently used -- but non-core -- CPAN distributions and, with a green light from the authors or current maintainers of those distributions, refactor them, write more tests for them and improve their documentation. At first few people knew of the Phalanx Project, but Andy retooled it somewhat and presented it at YAPC::NA::2004 in Buffalo, which is where I first heard about it.
By the summer of 2004 I had been the lead organizer of Perl Seminar New York for four years, had begun contributing distributions to CPAN, and had begun speaking at YAPCs in Canada and the United States. But much of my work was done working by myself at home and I was eager to play a role other than meeting organizer and to collaborate more directly with other Perl folks. I seized on the idea of the Phalanx Project as a hook to gather other New York City Perl people in to working on a project collectively, with face-to-face hacking being the most important aspect of the collective work.
I've spoken about our part in the Phalanx Project elsewhere, so let me get to the essentials. By June of 2005 we (Marc Prewitt, David H Adler, Alex Gill and myself) had done major work on two CPAN distributions: Text-Template and HTML-Template. We submitted our work to the authors of each distribution. Marc and I presented on the Phalanx project at YAPC::NA::2005 in Toronto.
And then, silence. Despite repeated nudging, both by email and in person, we got no feedback on our work from the distribution authors -- for years. Finally, in 2007, quite a bit of our code was incorporated into one of the distributions and we got a commendation from the distribution's author. On one of the few occasions when I ever met that distribution's author in person, he commented, "Don't break it. It's my baby." (It was, I believe, his first CPAN distribution.) As for the other distribution: We never got feedback from its author and it appears none of our work was incorporated into the one CPAN release which that distribution has had in the past four years.
The members of the New York City part of the Phalanx Project learned a tremendous amount about careful preparation and testing of libraries in the process, but only part of our work actually made it out to the larger Perl community. My impression is that that was the outcome in the one other locality in which a group of people came together to phalanx a CPAN distribution. So the Phalanx Project was only modestly successful.
I tell this story now because there are many similarities between the Phalanx Project and the Perl 5 Corehackers Project. Fast forward from YAPC::NA::2004 at the University at Buffalo to YAPC::10 (NA::2009) at Carnegie-Mellon University in Pittsburgh. For Andy Lester as inspiring presenter, see Chip Salzenburg. For target codebase, see Perl 5 core instead of prominent CPAN distributions. For CPAN distribution authors, substitute the Perl 5 Porters.
But the thrust of the two projects is remarkably similar: Gather both veterans and, especially, newcomers -- people who may previously have never thought themselves qualified to work on the targeted code base -- to hack on important parts of the Perl 5 ecosystem and generate patches that the 'owners' of the code -- those who have commit bits -- would, it is hoped, apply to the code base.
And there's the rub. You could work your butt off refactoring some part of the Perl 5 core distribution, have all the tests you need to demonstrate that you haven't broken anything and have written clear, helpful documentation -- and still not get any feedback from the people who have the final say on the work you've done. You don't have a commit bit.
So while I was very glad to hear Chip's presentation about the Corehackers Project -- and am even meeting with David Golden this week to discuss how I might participate -- I must confess to some trepidation about how the relationship between the Perl 5 Porters and the Corehackers Project will evolve. My guess is that those who choose to participate in the Corehackers will develop considerable psychological investment in their work. And it's evident from the recent controversies over the Perl 5.10 release process that the Perl 5 Porters have considerable psychological investment in their work and the ways they have evolved to conduct that work. I could even see Porters saying, "Why do we even need a Corehackers project? Nothing's keeping you from submitting patches to p5p today."
So the Corehackers Project, to be successful, must face some important questions, both on its own and in conjunction with Perl 5 porters. Among these questions, at least two occur to me right off the bat: