[Mailman-Developers] URGENT: Google Summer of Code status report and code due

Stephen J. Turnbull stephen at xemacs.org
Thu Jul 5 02:24:33 CEST 2012


Note: CC'ing Mailman Developers.  I think this was private, so not
trimming.

At the bottom there's a discussion of the newsgroup naming scheme,
which is an important bikeshed to paint.  If you're not interested in
a bunch of "me too" comments, skipp right on down there!

Barry Warsaw writes:
 > Hi Alex.
 > 
 > On Jun 28, 2012, at 02:00 AM, Alexander Sulfrian wrote:
 > 
 > >Currently I am using twisted-news-11.0.0, but that just because it is
 > >the current stable version in gentoo. Debian contains twisted-10.1.0
 > >in stable and twisted-12.0.0 in testing and unstable. I would use
 > >12.0.0 if you have no objections. Additional to that, I would like to
 > >continue to use the package manager version. This has the advantage
 > >that requisites are installed automatically.
 > 
 > I think this is fine.  We've got 11.1.0 in Ubuntu 12.04 and 12.0.0
 > in Quantal.  Debian Wheezy (now frozen) has 12.0.0.  I can easily
 > spin up Debian or Gentoo instances (it's been *years* since I ran
 > Gentoo).  Go with whichever of those will give you the easiest path
 > to success and we should be able to reproduce your environment.

+1.  I can also do both Debian and Gentoo easily.  I would say stick
to Gentoo for now.

 > >I already looked into the code examples, that comes with
 > >twisted-news. As far as I could see, twisted-news is manly an
 > >reactor-based server, that is doing some string parsing to handle
 > >the protocol. There are some sample back ends that use pickle
 > >files, the twisted dirdbm or the twisted DB-API. But for the
 > >project it should be necessary to write a custom back end.
 > 
 > I expected a new backend might be necessary.  Again, since this
 > isn't the most important part of the project, do only what's
 > necessary to show off the Mailman integration work.

+1

 > >My first intention would be to implement it like a runner. The
 > >lmtp runner is also an daemon. It could be implemented in a
 > >similar way. But the nntp archive daemon is not a runner in the
 > >first place. So it maybe would be better to put it under the
 > >archiving module. It could be implemented like a runner. It should
 > >be possible to configure it via the configuration file like the
 > >other modules, that are available. But I do not know where it is
 > >preferred to put it.
 > 
 > Daemon/server control should be implemented as a runner,

+1.  Unless some showstopper crops up, I think all Mailman daemons
should be controlled via runners.

 > but it can be pretty simple.  The IRunner interface really just
 > needs to implement run() and stop() and even forking a subprocess
 > should be fairly easy to do.
 > 
 > You have to worry about two things.  First, you need a server to
 > vend the messages through NNTP.  Second, you need some way to get
 > new messages into the twisted-news (or whatever) backend when they
 > show up on the mailing list.  This is the part that you'll need an
 > IArchiver implementation for.  Note that the only IArchiver method
 > you *must* implement is archive_message().  You'll have to figure
 > out whether you need the twisted-news server running or not for
 > that.

IMO, make that *three* things.  It ought to be possible to fire up the
NNTP runner on an existing archive, and vend messages.  I suppose this
means a separate database for news properties like the message to
message number mapping, and perhaps for newsgroup names.

Newsgroup names are an issue here.  It seems to me that (if not
gateway'd to Usenet) they should be something like (pseudo-code)

    "mailman." + join(reverse(split(list-id,".")),".")

Eg, this list would be "mailman.org.python.mailman-developers".  I
know that's considered ugly-out-the-wazoo, but these need to be UUIDs
(consider mirrors), and mailman at python.org should not be in the same
subtree as mailman at python.net (ie,

    mailman.net.python.mailman    vs  mailman.org.python.mailman

not

    mailman.python.net.mailman    vs  mailman.python.org.mailman

The top-level maybe shouldn't be "mailman", but rather something like
"list-archive".

Another issue with newsgroup names is that some lists *are* registered
in the news hierarchy, so provision for such aliases should be allowed.

Let the bikeshed-painting begin!

 > >The new code should be integrated into the existent test set. I know
 > >that a successful test is not sufficient, but it is a good
 > >start. Additionally to that, we should define some acceptance tests.
 > 
 > +1

I was going to write something here, so remind me.  (Must run off to
torture would-be grad students.)


More information about the Mailman-Developers mailing list