Kurt McKee

lessons learned in production

Hey there! This article was written in 2015.

It might not have aged well for any number of reasons, so keep that in mind when reading (or clicking outgoing links!).

The state of feedparser

Posted 3 January 2015 in feedparser

feedparser is near and dear to my heart but I haven't touched it in quite a while. There are a number of personal and professional reasons for this which I won't bore you with here, but those same forces are now allowing and compelling me back. Personally, I'm needing to do some coding that isn't work-related. Professionally, I've been writing software in utter isolation for two years but am now expecting that I will begin to see contributions from others...meaning that I need to finally have a better understanding of git. So let's see what's going on now and where I'd like to direct the project this year!

As of right now, the Python Project Index has almost 48,000 downloads on record in the last month. Google has only 84,000 downloads listed for the last two years since I released version 5.1.3. In 2013 Google Code announced that it was discontinuing file hosting so starting with the next release, feedparser downloads will be exclusively available through PyPI.

Both due to my company's ISO 9001 policies and in expectation that others will soon be contributing to my software, I've completely switched all of my professional git repos over to the Vincent Driessen's git branching model. I've been shocked how easy it's been to release new updates with this model so in 2015 I'll migrate feedparser's git repo over to this model.

feedparser has been a monolithic blob of code since its inception. As a project, it's refused to let go of ancient Python compatibility; when I first started contributing half a decade ago my first big patch was also the first compatibility loss the project had ever seen (no one cries for you, Python 2.3). I've been reevaluating Python interpreter support and see that it's time to let go of Python 2.4 at least, and possibly Python 2.5 and 2.6, too. I also think it's time to separate feedparser into function-specific files, in part to encourage a model for adding additional namespace support.

These are all achievable near-term goals. They open the door for better merging, faster releases, and more maintainable code. I'm excited for 2015!