[Mailman-Developers] Re: [ZMailman] Goals and next steps?

Barry A. Warsaw barry@zope.com
Tue, 4 Dec 2001 16:09:31 -0500


>>>>> "FWH" == Fred Wilson Horch <fhorch@ecoaccess.org> writes:

    FWH> Possible Goal A: Quick and dirty Zmailman hack?  The goal
    FWH> would be just to get Mailman 2.0.8 and Zope 2.3.3 to work
    FWH> together.  To achieve this goal we could download the code
    FWH> for Mailman 2.0.8, study its API, and write a few DTML
    FWH> screens that replace the CGI part of Mailman.  We would not
    FWH> plan to continue to support or improve Zmailman after we got
    FWH> it working.

That would be interesting as a proof of concept.  The API that Mailman
expects from its cgi isn't well defined.  Essentially you can think of
that as the set of attributes on the MailList object.  In Mailman 2.1,
these are embodied in the Mailman/Gui/*.py classes.  Things are still
fluid too, until Mailman 2.1 enters beta.

We're better off on the membership front because there, I /have/
defined an API.  Look at Mailman/MemberAdaptor.py for the interface,
and Mailman/OldStyleMemberships.py for an implementation that retains
the existing list-independent membership approach.

I believe it would be quite easy to write a ZopeMemberships.py class
that implemented the MemberAdaptor interface by storing all membership
information in Zope/ZODB.  Using MM2.1's list extension mechanism, you
could then move lists to Zope independently.  Also, because you're
using ZODB, you should be able to utilize a centralized member
database so all the lists share the same membership information.
I.e. change your password in one place, change them everywhere!

Note that there will still be parts of MM2.1 that think each list's
member data is independent of other lists.  My intention is to clean
that up for MM3, but there's a lot of backwards compatibility that has
to be dealt with in order to merge existing list member databases.

    FWH> Possible Goal B: Fork Zmailman?  The goal would be to take
    FWH> some version of Mailman and fork from the main Mailman
    FWH> project.  We'd work on our fork independently of the other
    FWH> Mailman hackers, with the goal of continuing to support and
    FWH> improve Zmailman.

I'd /really/ /really/ like to avoid that, for a raft of reasons.  I
don't see any reason why we can't put all this work (eventually) in
the Mailman core.  While I don't want to /require/ Zope to run
Mailman, I do want to make it trivial to integrate the two, and I
firmly believe that if we design the interfaces correctly, anything we
produce in this effort will help others wanting to integrate Mailman
with their own web and database management systems.

    FWH> Possible Goal C: Improve Mailman?

For some of us that's not just a goal, it's a way of life.  Or maybe
it's a punishment for a previous life as a mass marketer.  I dunno.
    
    FWH> The goal would be to add Zope support to Mailman.  We'd work
    FWH> with the other Mailman hackers.  It would make the most sense
    FWH> to branch from the Mailman CVS, either the latest Mailman
    FWH> 2.0.x release or the new Mailman 2.1 beta.  Of course, maybe
    FWH> the other Mailman hackers don't want to add Zope support to
    FWH> Mailman, in which case we won't be able to achieve this goal.

The "other Mailman hackers" absolutely do want to make this work! :)

However, since I'm frantically trying to find the time to finish up
Mailman 2.1, I don't think it's feasible to add this stuff to MM2.1,
even though I highly encourage all prototyping to be done against the
2.1 code base.  Should it become worthwhile, I can create a Mailman3
branch in cvs.

[While I was writing this, Stephan called me up.  We had an excellent
conversation -- Thanks, Stephan! -BAW]

    FWH> With either goal B or C we need to decide which version(s) of
    FWH> Zope we're aiming for now.  EcoAccess runs Python 1.5.2, so
    FWH> anything which forces us into Python 2.x would not be our top
    FWH> choice.  We run Zope 2.3.3 and Mailman 2.0.8 because they do
    FWH> not require Python 2.x.  Does Mailman 2.1 require Python 2.x?

Yes.  Right now, Python 2.0 or better but it's also likely that Python
2.1 or better will be required.  Python 2.2 support is still up in the
air at the moment, but it will be supported in Mailman 2.1 (just not
required). 

    FWH> It would be great if we could aim for a Zope product that
    FWH> works with Zope 2.3.3 or better and Python 1.5.2 or better.

That limits you to Mailman 2.0.x then, which is too bad, because a lot
of this will be so much easier in Mailman 2.1.

-Barry