Monday, May 23, 2011

Project Details

Alright so after (admittedly) reading Mailman documentation on and off, usually alternating days for another project and my other job, I finally decided it was time to talk to Barry (mentor/project leader) about the scope of my project and what I thought I needed to do. I was kind of close, but nowhere near close enough to what I should have been (and expect of myself). Since I've never dealt with a project of this scale before, I'm still trying to figure out how best to approach understanding the thousands of lines of code contained in this project. Granted I'm only technically supposed to be working on the Pipermail Storm implementation, but I hate not knowing what's going on in the rest of the project.

Going back and rereading my proposal has been helpful in keeping me focused while analyzing the archiving code and other documentation since it's easy to lose sight of what you're trying to do. Python also isn't my language of choice so I'm working on figuring out a lot of the tricks I see employed throughout the code. But this was my goal - throwing oneself into a new environment is generally the best way to learn. I'm not totally up the creek though, I do have enough experience in Python to get by most code without little or no problem since it's the development language of my iPhone application's server.

As far as further project specificity goes, I learned that Mailman 3 has an interface that defines an API between the mailman core and what we're calling an "archiver" instead of a few different implementations of archivers all using pipermail at their core. Mailman 3 comes with several implementations of this interface with varying degrees of scope, for example pipermail is a more comprehensive (Barry used "intimate" to describe it) archiver while mail-archive.com just forwards the message to that service (Which, as the website states, "turns your mailing list into a searchable archive"). After a bit more research, I've determined that Hyperdatabase and Archiver/pipermail need to be rewritten to use the Storm API rather than cPickle and to eliminate some generalizations that are not necessary any more. Bottom line there: anything using pickle needs to be rewritten to support storm (with some other schema modifications).

After I do that, i'll have to start working on the upgrade script to migrate Mm2 pickle data to this new schema. I'm confident but dear God I hope I don't screw this up

No comments:

Post a Comment