[Mailman-Developers] DRAFT Datasource Interface v0.1

Ricardo Kustner ricardo@rixhq.nu
Wed, 14 Mar 2001 08:10:25 +0100


Hi,

First of all, a disclaimer :) I'm not a core mailman developer but 
I'm interested in helping out with this and I (think I) know a bit about the
internal workings as I've been following mailman development for a while now...

On Tue, Mar 13, 2001 at 01:33:50PM -0500, Chris Ryan wrote:
> http://www.zope.org/Members/bwarsaw/MailmanDesignNotes/CentralizedUserDatabase
> at Ricardo's sugestion so that you may all read it over and
> comment/add/substract ?delete? :).

Looks great ! I'd also suggest using ZWiki's feature to create subpages and/or
subsections on the same page; If we get one long page with information
it could get a bit hard to follow. For example you could divide it into
the phases you wrote about earlier.

> 	Once we get something that is more or less acceptable my next step will
> be to impliment the interface to use the existing method of data
> storage. Then I would start modifying the code to use the interface.
> Once I've got the interface implimented we should have a concreate
> definition and anyone should be able to write a datasource driver using
> the interface to access what ever source they wish to use.
That's were I definately want to step in... I could work on a mysql driver.

Anyway, I also wanted to comment a bit on the draft you wrote:
- I see you created seperate functions for a lot of related things,
like getting a list of subscribers and digest subscribers, or both. Is there
a specific reason for that? To me it looks like it might generate some
duplicated code... what are you thoughts on how to handle code re-use? 
same goes for getting the flags for a member. Maybe it's something you
already thought about, but I just wanted to point it out just to be sure.
- At some points mailman might need to find a specific list of
subscribers... though it's possible to load the entire list into memory
with listMembers() and work on that with python code, I think it would be nice for 
peformance reasons to be able to use sql queries in the backend so maybe that's
something we should keep in mind when defining the functions.

-- 
Regards,

Ricardo