Grant Proposal: Maintaining Perl

(note: I missed this somehow, and it should have been posted a while ago. Sorry - cromedome)

Name

Anthony (Tony) Cook - TonyC on irc.perl.org

Synopsis

Free up one of the Perl core's contributors to work non-stop on making Perl better.

Project Details

This grant provides the Perl Steering Committee with a development resource to target as they will, while still providing for more general bug fixes and other improvements to the perl core.

Deliverables

I propose to follow the same model as my current Perl 5 Core Maintenance Fund grant.

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 previously. Some weeks I may be able to more than 20 hours, if acceptable this will consume more hours and end the grant earlier.

I expect to 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. This isn't required by the fund rules, but it will help me keep on track for the monthly reports.

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.

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").

As with my Perl 5 Core Maintenance Fund, I expect I'll apply to extend this grant.

Project Details

I think that the work that I would do to improve Perl 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.

I'll also accept specific direction from the Perl Steering Committee for specific work to be done.

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.

In general I'd work on:

  • Reviews of patches submitted to github as pull requests.

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 perl github issues list.

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 issue list.

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 and in #p5p on IRC.

For the grant, I'm specifically not proposing to:

  1. 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.

  2. Act as language designer - I don't feel that I'm good at this.

Project Schedule

I expect that I can deliver 400 hours of work in approximately 20 weeks.

I am available to start work on this project immediately.

Bio

I'm a freelance programmer living in Australia.

I've been