On Mar 26, 2012, at 03:20 PM, David Jeske wrote:

>I'm writing to find out the state of and philosophy surrounding pipermail
>in mailman, to see if there is a productive way to provide some
>code/development-time to that part of mailman.

That's awesome.  Pipermail (in its current state) is ancient, and it shows.
It's biggest flaw IMO is the lack of "stable URL" support, meaning if you
regenerate the archive from the underlying mbox file, you'll likely break all
your links.  Pipermail has lots of other problems, but this one for example is
why it was ditched for Launchpad.

I think the time is ripe for new archivers, and Mailman 3's philosophy is to
provide a framework in which developers can easily experiment with new
archiver technology, integrated easily into Mailman.

I personally think it would be best to spend effort on one of the many
archiver projects being worked on, and mentioned here, rather than trying to
improve Pipermail.  One possible connection though would be to consider how a
site would migrate from a Pipermail-based archiver to one of the new ones.  Do
you keep the old URLs alive but just not add anything new to Pipermail?  Do
you provide a mapping from Pipermail URLs to new-archiver URLs?  etc.

>I've written code for this a number of times (eGroups, Yahoo Groups, Google
>Groups). I also released an open-source python/clearsilver/sqlite based
>archiver with redundant text-eliding, a few different thread views, and
>search...  ( http://www.clearsilver.net/archive/ ) which is hardly used
>both because I don't try to popularize it, and because many sites just
>leave the default (pipermail).

Neat.  Perhaps you'd like to contribute an implementation of the IArchiver
interface in Mailman 3 that would send posted messages to ClearSilver?

Here's the current interface definition:

http://tinyurl.com/cup7amw

and some example implementations:

http://tinyurl.com/cynyfou

>a) pipermail is fine... if you want to fix a bug or two submit a patch, but
>we don't want to improve it

Note that before I ripped Pipermail out of the Mailman 3 trunk branch, I
created a project on Launchpad and pushed a semi-sanitized branch:

https://code.launchpad.net/pipermail

I don't personally plan to touch this, but if someone is really motivated to
hack on Pipermail specifically, I'd happily give you access.

>b) we're ditching pipermail entirely... in the future sites will have to
>choose an install an external archiver

Yes, but remember, you can choose one or more archivers in Mailman 3.  So it
would be easy to archive to something local, and The Mail Archive, and Gmane,
etc.

>c) we'd love pipermail to be improved... but we still want it to be simple,
>static-html, and dependency free
>d) we'd love a dynamic-ui replacement for pipermail... as long as it uses
>the same cgi/templating model as mailman ui

Because Postorius (the official, but not required MM3 web ui) is Django-based,
I think it should be pretty flexible for customizing the look and feel.  I
won't dictate what a new archiver should look like, but some principles that I
personally think should be followed include:

- Modern web technologies, with flexible templating, so that sites can
  customize the look and feel as needed.

- JavaScript not required: an archiver should be navigable with a text-based
  simple browser, but that also doesn't mean it has to be feature-equivalent
  if you *do* have JavaScript.  I think "progressive enhancement" is the right
  term?  I.e. make it awesome for today's web, but usable in older browsers,
  screen readers (for accessibility), etc.

- Dynamic generation of pages with caching.  I'd love to see an enhanceable
  approach to the actual HTML generation.  Let's say for example, that I
  suddenly want to recognize and hyperlink "bug numbers" so they point to my
  tracker.  I should be able to drop in some extension to do that.  Or maybe
  the spammers have cracked my email obfuscation algorithm.  I should be able
  to drop in a replacement, invalidate the cache, and all my new page would
  automatically get the new obfuscation algorithm.

- Separate, dynamic support for take down notices.  You posted your personal
  information and have asked the site's postmasters to take that down (either
  the full message or the personal information parts of it).  It should be
  really simple for the site admins to do this, while possibly retaining the
  original message in a publicly inaccessible location for forensic purposes.

- Support for private archivers, so configurable authentication would be
  necessary.

- Merging of forums, archives, newsgroups, and IMAP.

- A REST API for querying information about the site, its lists, individual
  archived messages, metrics, etc.  Maybe even some control (e.g. take downs)
  for users with the proper permissions.

- Stable URLs, RFC 5064 + X-Message-ID-Hash.  See the above links.  If you can
  implement the `IArchiver.permalink()` method and ensure that even if
  completely wiped and regenerated from the underlying raw messages, your URLs
  will remain stable, I think you will have won. :)

That's about all I can think of right now, but I'll say this: I think there's
huge untapped value in a really great archiving framework.  I have lots of
ideas and it's something I'd like to work on eventually, once we get the core
engine stable and released.

Also, as you work on archivers and try to integrate them with mm3, please do
provide feedback on the IArchiver API and the integration implementation in
particular.  What's missing?  What's wrong with the API?

Note too that atm, the lp:mailman bzr trunk is a bit ahead of 3.0b1 here.  I
had to disable some things at the last minute in the ArchiveRunner, and I've
since fixed and pushed updates.  So you probably want to at least take a look
at the bzr branch.

Cheers,
-Barry

_______________________________________________
Mailman-Developers mailing list
Mailman-Developers@python.org
http://mail.python.org/mailman/listinfo/mailman-developers
Mailman FAQ: http://wiki.list.org/x/AgA3
Searchable Archives: 
http://www.mail-archive.com/mailman-developers%40python.org/
Unsubscribe: 
http://mail.python.org/mailman/options/mailman-developers/archive%40jab.org

Security Policy: http://wiki.list.org/x/QIA9

Reply via email to