Tony Cook has requested an extension of $20,000 for his Maintaining Perl 5 grant. This grant has been running successfully since July 2013. The requested extension would allow Tony to devote another 400 hours to the project. The funds for this extension would come from the Perl 5 Core Maintenance Fund.
Before we make a decision on this extension we would like to have a period of community consultation that will last for seven days. Please leave feedback in the comments or, if you prefer, email your comments to karen at perlfoundation.org.
Maintaining Perl 5
Free up one of the Perl 5 core's contributors to work non-stop on making Perl 5 better.
Benefits to Perl 5 Core Maintenance
This grant provides the pumpking with a development resource to target as he or she wills, while still providing for more general bug fixes and other improvements to the perl core.
I propose to adopt the same model as Dave and Nicholas's successful ongoing grants.
Like their grants, there are intentionally no pre-defined deliverables for this project. I intend to devote around 400 hours (about 20 hours a week) over the next 20 weeks to work on improving the core, paid by the hour at the same below-commercial rate as Dave and Nicholas. Some weeks I may be able to more than 20 hours, if acceptable this will consume more hours and end the grant earlier.
Like them, I would post a weekly summary on the p5p mailing list detailing activity for the week, allowing the grant managers and active core developers to verify that the claimed hours tally with actual activity, and thus allow early flagging of any
concerns. Likewise, missing two weekly reports in a row without prior notice would be grounds for one of my grant managers to terminate this grant.
Exactly as Nicholas and Dave do, once per calendar month I would claim an amount equal to $50 x hours worked. I would issue a report similar to the weekly ones, but summarising the whole month. The report would need to be signed off by one of the grant managers before I get paid. Note that this means I am paid entirely in arrears.
At the time of my final claim, I would also produce a report summarising the activity across the whole project period.
Also, (the "nuclear option"), the grant managers would be allowed, at any time, to inform the board that in their opinion the project is failing, and that the TPF board may then, after allowing me to present my side of things, to decide whether to terminate the project at that point (i.e. to not pay me for any hours worked after I was first informed that a manager had "raised the alarm").
I view this grant as a proof of concept - if it goes well for everyone involved, I expect to apply to extend it.
I think that the work that I would do to improve Perl 5 would mostly fall into one of four main classes: code reviews, bug fixing, helping other contributors, and adding features - with bug fixes the most prominent and adding features the least.
In one major sense what I'm offering is different to Nicholas's or Dave's grant: the current pumpking would be able to assign tasks directly.
Ideally this would be done with some consultation with myself, so a large complex task involving parts of the core I'm unfamiliar with isn't assigned (or is assigned with reasonable expectations on time). Of course, if too many tasks are negotiated into non-existence, the grant can be terminated.
Some possible tasks, based on discussions over the last several months:
- core exception objects
- a git hook to prevent changes in the left of a merge
Success metric: completion of tasks assigned.
Otherwise I'd work on:
- Reviews of patches submitted to perlbug, possibly committing them
- This will improve my core knowledge, and provide more timely feedback to non-committers using their time to help perl.
Metric: number and complexity of patches applied or commented on.
- Fixing bugs I select from the perl5 Request Tracker queue.
While I wouldn't necessarily be working on the the harder bugs that Dave targets, this would help bring the total bug count down, and reduce the noise in the Request Tracker queue.
Metric: number and complexity of issues fixed.
- Fixing systemic issues in perl, such as the mis-use of I32 and U32 in the perl core.
Metric: complexity of issue solved.
- Contributing to discussion on the perl5-porters mailing list.
For the grant, I'm specifically not proposing to:
- Be a release manager. This doesn't prevent me volunteering to act as a release manager, but that wouldn't be counted towards this grant.
- Act as language designer - I don't feel that I'm good at this.
I expect that I can deliver 400 hours of work in approximately 20 weeks.
I am available to start work on this project immediately.
I'm a freelance programmer living in Australia.
I've been irregularly contributing to perl since 2008 and a committer since 2010.
My contributions have varied from build system fixes, to UTF-8 handling, to portability fixes.
I've been programming in C for 25 years and in perl for 20.
Ricardo Signes, Nicholas Clark, H.Merijn Brand
Suggestions for Grant Manager
Ricardo Signes, Marcus Holland-Moritz