May 2, 2007 - XML::RSS Cleanup Grant Completed - Final Report

I am pleased to announce that Shlomi Fish has completed his XML::RSS cleanup grant. In his own words, Shlomi has summarised the work he's done and offers his thanks to those who helped him transform XML::RSS into a high quality tool for the community:

This is a summary of a Perl Foundation XML::RSS grant, I've been doing. Its scope was for two or three months from 1 January, 2007 onwards, with a lot of work done by me before the grant application was submitted.

I've kept a journal on my work by writing entries in my use.perl.org weblog. Here are the links to them.

Before receiving the grant:

  1. XML::RSS
  2. XML::RSS Meta Bug
  3. XML::RSS Update

After receiving the grant:

  1. XML::RSS - Grant Application Was Accepted + Update
  2. "Yet Another XML-RSS

Update"http://use.perl.org/~Shlomi+Fish/journal/32121

  1. "XML::RSS Update: Full

Test Coverage"http://use.perl.org/~Shlomi+Fish/journal/32214

  1. XML::RSS Update: Refactoring

Now for some general commentary. Ask Bjørn Hansen has been doing extraordinary work taking care of the perl.org infrastructure, and also became the maintainer of the XML::RSS module. He has been very helpful in commenting on my patches and applying them, guiding me through the process, and providing feedback.

Our process in working on XML::RSS was the following:

  1. At first we did some work on reducing the number of open bugs to a minimum. This either involved correcting the code, and closing duplicate bugs or ones that were too obscure.
  2. After that and during development, we worked on expanding and extending the XML::RSS test suite. Devel-Cover by Paul Johnson was a huge help here, in locating things we did not cover yet.

We emphasised making sure the tests were meaningful, and reflected the functionality of the module.
During the testing stage, some hard-to-find bugs were fixed.

  1. After we had a 100% test coverage, we started with mercilessly refactoring the code. Many methods were extracted and encapsulated, an XML element generation code was added and eventually, each RSS version backend became its own class. Finally, the parsing was made cleaner and more robust, while overcoming some of XML::Parser's inherent shortcomings.

For now, it seems the code is squeaky clean.

All these modifications were incorporated into version 1.29_02 of XML::RSS, which is a development version. Expect them in the stable XML::RSS version 1.30 soon.

I'd like to thank Ask for his co-operation and support; Paul Johnson for writing the Devel-Cover module; the TPF people ("Curtis "Ovid Poe and others) for accepting my grant, and for guiding me through the grant process; and all the people who reported bugs or supplied feedback.

Peace, Love, Camels and web feed mangling!

It's been a pleasure working with Shlomi and I'd like to take this opportunity to wish him every success in his future projects!