Mailman 3.0 to modernize mailing lists
More than a decade after its last major rewrite, the GNU Mailman mailing list manager project aims to release its 3.0 suite in April, during the sprints following PyCon North America. Mailman 3 is a major rewrite that includes a new user membership system, a REST API, an archiver replacement for Pipermail, and a better web interface for subscriptions and settings — but it carries with it a few new dependencies as well. Brave system administrators can try out the fifth beta version now.
![Month archive [Month archive]](https://static.lwn.net/images/2015/hyperkitty-month-archive-sm.png)
Mailman has been a ubiquitous if slow-moving part of the social infrastructure for many open-source projects for decades. More than fourteen years have passed since the Mailman 2.0 release in November 2000, twelve years since the first release of the last stable version (2.1), and seven years since first alpha of the 3.0 branch. However, Mailman has stayed under continuous development during that time; new 2.0 branch releases have come out about twice annually, with new features in point releases (e.g., the DMARC mitigations added in 2.1.16 to keeps lists from running afoul of an anti-spam measure). It supports moderation, list digests, bounce detection, spam protection, multilingual lists, archiving, and list administration via email or web interfaces, among other features. The new release aims to get rid of some annoyances and to refresh Mailman for administrators' and users' current needs.
What's new
![List settings [List settings]](https://static.lwn.net/images/2015/postorius-list-settings-sm.png)
The architecture and user interfaces of previous versions of Mailman reflect a different era of the web, and of application interoperability. Mailman 2 was a single codebase, written in Python 2, encompassing a rudimentary web application for subscription and list management (and incorporating the Pipermail web archiver) as well as the engine for receiving, moderating, and propagating messages. Lead developer Barry Warsaw explained in the overview he wrote for The Architecture of Open Source Applications that, beyond the browser-based interface, Mailman 2 also offered a dedicated command-line interface, and a Python internal API that system administrators could integrate with by writing Python code.
In contrast, Mailman 3 is a suite of five connected projects, each of which can run independently:
- The Mailman core provides the backend engine that interacts with Mail Transfer Agents (e.g., Exim, Postfix, sendmail), manages users, messages, and lists, and processes mail based on the lists' rules (e.g., filtering out spam, queueing messages for moderation, distributing them to a list's membership). Mailman core also exposes a RESTful API to provide easier integration for other applications or scripts. Mailman core is written entirely in Python 3, thus requiring system administrators to have Python 3 installed.
- mailman.client is the official Python bindings for the REST API, and requires Python 2.6 or newer.
- HyperKitty is a Django-based archiver application that replaces Pipermail, which we previewed last April. It provides a modern web interface to browse and search archived messages and threads (see this live demo); interestingly, it also allows users to post to discussions, so that by default users can interact with any Mailman mailing list as though it were a web forum, if they prefer. HyperKitty is written in Python 2. It uses mailman.client to interact with the core engine for administrative purposes, and uses Mailman core's Python-based IArchiver API to access the mailing list posts that have been successfully posted and thus should be archived.
- Postorius is a Django-based web application for administering lists and managing user preferences. The refreshed appearance (see screenshots) and theming capabilities should make it easier for communities to integrate Postorius into their websites without a jarring contrast. Postorius is written in Python 2 and, like HyperKitty, uses mailman.client to interact with Mailman's core engine.
- The bundler is a set of small Python scripts to bundle Mailman components together for easy installation.
![List overview [List overview]](https://static.lwn.net/images/2015/hyperkitty-list-overview-sm.png)
Mailman 3 also provides improved abstractions for dealing with lists and users. Instead of using pickled files, Mailman 3 stores configuration data in a SQL database (by default, SQLite). This and other new features make it easier to (for instance) manage multiple mailing lists with the same name in different domains (e.g., dev@example.com and dev@example.org), give someone administrative power over all the lists within a domain, and provide a unified user interface to a person who subscribes to multiple lists with different email addresses.
To answer the question that at least a few dozen of you are looking for: Mailman 3 will not, by default, send you a monthly reminder that includes your password in plain text. In fact, it can't; Mailman 3 hashes passwords before storing them.
Implications
Developers are aiming for Mailman 3.0 to be at feature parity with Mailman 2.0, so users should not experience much degradation in functionality, but there are a few newer features in 2.1 that have not yet been ported forward into 3.0; this is still being finalized. Localization is still up in the air. The Mailman community is committed to improving the currently labor-intensive process it uses for managing string translations, but the developers have not yet decided on a platform for translators.
![User settings [User settings]](https://static.lwn.net/images/2015/postorius-user-settings-sm.png)
The new release includes several usability updates, such as the HyperKitty interface that allows subscribers to interact with lists via the web, and list subscription management improvements on the backend. However, at first, system administrators will probably be hesitant to adopt the new release. In order to run all the components of the Mailman 3.0 suite, they will have to be willing to install more dependencies (such as Django) and install and run two different versions of Python. Mailman 2.1 may seem serviceable enough; for core infrastructure like mailing list software, user interface improvements and better scriptability may not make this upgrade feel urgent.
The new features may change many open-source citizens' habits, such as subscribing and auto-archiving a list just to be able to search it easily, and using and linking to third-party sites like Nabble and gossamer-threads for convenience in discussing threads. And the web-native feel of HyperKitty (whose interaction design was led by Máirín Duffy and Karen Tang) may help Mailman compete with proprietary hosted list-style competitors, such as Google Groups, and with open-source forums that feel web-native, such as phpMyBB, Discourse, and Community.
Mailman's developers have gone with current trends in the Python community by using Django, but have made a bold move in converting the core engine to a Python 3 codebase. For many system administrators, Mailman 3.0 will be the first application that requires Python 3; in fact, Warsaw wrote some core Python code in order to support Mailman's use cases. It will be worth watching to see how this influences the overall adoption of Python 3, for which the rollout has been gradual.
The new release's REST API provides a more modular and flexible way for administrators and developers to reuse the Mailman core engine in other applications, replace Postorius or HyperKitty with custom web applications, or otherwise script and hook other actions into mailing list traffic. Mailman's API also goes further with its REST interface than many other web APIs, as it takes a particularly hypermedia-centric approach to resource representation and retrieval. It (unusually) even uses the HTTP verbs PUT and PATCH, which will exercise some of the less full-featured HTTP interaction libraries.
With its large suite of unit tests and a dedicated, active, and friendly community of creators and users, Mailman seems poised to continue improving, and to stay a premier competitor among open-source mailing list managers. Its new architecture and dependencies also point to continuing trends in server-side applications in general. For open-source communities already using Mailman 2.x, this is a welcome update, and its rollout will make open source as a whole a bit easier on the eyes.
[Thanks to Mailman developers Terri Oda, Barry Warsaw, Stephen J. Turnbull, Aurélien Bompard, and Florian Fuchs for fact-checking on this article.]Index entries for this article | |
---|---|
GuestArticles | Harihareswara, Sumana |
Posted Mar 28, 2015 0:38 UTC (Sat)
by giggls (subscriber, #48434)
[Link] (10 responses)
Unfortunately, outside of strongly techy environments mailing lists have long gone!
So this might probably be a nice enhancement of mailman, but what we really need is something which combines the advantage of both worlds.
Sven
P.S.: I'm forced to use phpBB in a single case and I don't like it at all
Posted Mar 28, 2015 1:23 UTC (Sat)
by flussence (guest, #85566)
[Link] (5 responses)
The D language forum (http://forum.dlang.org/) sounds like exactly what you're describing. It's actually an NNTP frontend, and fully read-write at that. The one thing that really struck me is how *fast* it is compared to... well, every other web-based forum I've ever used.
Posted Mar 29, 2015 12:48 UTC (Sun)
by pboddie (guest, #50784)
[Link]
Meanwhile, I think it's fast because unlike most other forum software, it doesn't pollute the pages with animated GIFs or - as is also the case with most Web sites these days - thousands of lines of scripts to decorate all the parts of the page after loading, play with the layout, and reinvent things like hyperlinks and the back button because the experience is not "desktop-enough" for the assumed audience otherwise.
Posted Mar 31, 2015 12:48 UTC (Tue)
by kay (subscriber, #1362)
[Link] (1 responses)
Is it open source in sense of free software and where can I download it?
Kay
Posted Mar 31, 2015 14:30 UTC (Tue)
by mathstuf (subscriber, #69389)
[Link]
Posted Apr 9, 2015 13:42 UTC (Thu)
by Zenith (guest, #24899)
[Link] (1 responses)
Posted Apr 10, 2015 10:03 UTC (Fri)
by zlynx (guest, #2285)
[Link]
I am jealous of whoever wrote that now, because they are awesome.
Posted Mar 28, 2015 1:38 UTC (Sat)
by josh (subscriber, #17465)
[Link]
Posted Mar 28, 2015 2:51 UTC (Sat)
by dlang (guest, #313)
[Link] (1 responses)
Also, there is a company that has a commercial, hosted service that provides a forum-like interface to mailing lists. They also host interfaces for a number of opensource software packages (sometimes without the maintainers of such packages being aware of it unless they go looking)
Posted Mar 28, 2015 2:53 UTC (Sat)
by dlang (guest, #313)
[Link]
Posted Apr 29, 2015 9:54 UTC (Wed)
by spinda (guest, #102258)
[Link]
Posted Mar 28, 2015 11:17 UTC (Sat)
by ken (subscriber, #625)
[Link] (5 responses)
when looking at something like http://lists.freedesktop.org/archives/systemd-devel/2015-... you can quickly see all threads and how active they are. you can search (in the browser) on subject and author. when reading the individual post you can quickly navigate to parent post or replies.
the hyperkitty interface shows only a few messages and when listing a specific subject you have a very hard time understanding who is replying to whom.
Posted Mar 28, 2015 21:21 UTC (Sat)
by dskoll (subscriber, #1630)
[Link]
Yes, I don't like the HyperKitty display, assuming that the demo site is the only way it works. I much prefer the existing static HTML Mailman archive display.
But perhaps it's possible to configure HyperKitty to display things more similarly to the old way... I'd have to play with it a bit.
Posted Apr 3, 2015 19:19 UTC (Fri)
by lacos (guest, #70616)
[Link] (3 responses)
Compare the two user interfaces using the thread entitled "A proposal for Fedora updates":
Mailman 3 HyperKitty:
http://lists-dev.cloud.fedoraproject.org/archives/list/de...
Gmane Classic:
http://thread.gmane.org/gmane.linux.redhat.fedora.devel/2...
For me Gmane is the clear winner. Beyond the most basic functionality (ie. just catching up on the list) and the great threaded UI, it allows you to search by Message-Id:
http://news.gmane.org/find-root.php?message_id=loom.20150...
it allows you to grab the raw text of a message (click Direct link at the bottom, then append /raw to the URL):
http://article.gmane.org/gmane.linux.redhat.fedora.devel/...
which is perfect if you want to import just one email into your MUA, and chime in on that sub-thread.
(I understand that both Gmane and HyperKitty allow people to chime in "on the web" -- while that may be convenient for simple answers, a thoughtful, longer response is usually very hard to compose in a web browser widget. (Case in point, I always have trouble commenting on LWN as well; I need to click the Preview comment button like ten times until I'm satisfied. Neither Plain text nor HTML do what my MUA would allow me to do.))
It also enables the user to restrict the view to a specific thread, and generate a stable, permanent link to one of the messages in the thread -- just select a message in the upper frame, then click the Subject field in the lower frame. Then whatever the URL bar states is your permanent link, and it comes with *full* context.
http://thread.gmane.org/gmane.linux.redhat.fedora.devel/2...
HyperKitty does provide permanent links, but they don't come with context -- the user is returned to the message, yes, but not to the location in the thread:
http://lists-dev.cloud.fedoraproject.org/archives/list/de...
The proportional font is also an unfortunate choice in my opinion (Gmane and Mailman 2 both show monospace for plaintext emails) -- it makes patches unreadable and destroys ASCII diagrams and tables. Leading space is also dropped on each line. (Some of the above messages happen to be examples for this as well.)
I apologize for promoting Gmane instead of discussing HyperKitty, but for me HyperKitty seems yet another step in the wrong direction. As the earlier LWN article referenced here, http://lwn.net/Articles/596049/ , states:
"HyperKitty looks more like a web discussion forum than Mailman 2's list-of-links archive pages"
and that's *exactly* its biggest problem. Web discussion forums are inappropriate for technical exchange.
Posted Apr 3, 2015 21:19 UTC (Fri)
by sjj (guest, #2020)
[Link] (2 responses)
Sorry if this is nitpicking but I don't get this point. Can you elaborate? One reason I can see for a web forum being inappropriate is that the messages are stored in one place only. If that goes away, the history is lost. This is true with most discussion media today. But Mailman/Hyperkitty doesn't work like that - it only looks like it from a particular angle. Is it that "things that LOOK like web discussion forums are inappropriate for technical exchange"? Most people these days seem to find forums more comfortable to participate in and do engage in technical exchanges in all sorts of places (github issues, IRC, LWN comments, etc) without too much harrumphing.
I don't think this is necessarily a good trend, but there it is. Future historians will gnash their teeth at the lack of primary sources in the crucial era of building our global information infrastructure.
Posted Apr 3, 2015 22:19 UTC (Fri)
by lacos (guest, #70616)
[Link]
> Can you elaborate?
Two reasons:
(1) in conveying ideas, *form* matters. I usually take great care to lay
This is perfectly possible to do in plaintext email, and in commit
Forum software is usually geared towards users who click the "Quote" or
In short, I spend a lot of time on "form", because it is a channel to
Yes, yes, the forum UI might give you buttons and even some kind of
For me, ASCII emails are the ultimate form of What You See Is What You
(2) You might want to insert code snippets, patches, even attach a small
> people these days seem to find forums more comfortable to participate
I've never worked with github issues.
IRC is great, but for any discussion where there's a structure to
I edit my bugzilla comments in my programmers' editor. I wrap them
Sometimes I need more columns for a drawing (or for "perverse" command
I also edited this LWN comment in said editor.
... Sorry about derailing the discussion; it should have been about
In order to close this comment with something relevant: can you imagine
(Yes, I know about Gerrit. I won't speak about it.)
Posted Apr 4, 2015 7:31 UTC (Sat)
by mbunkus (subscriber, #87248)
[Link]
1. Most forum software is unthreaded. Means that you cannot easily tell which post a person is replying to; posts are simply appended at the end. It is impossible to skip whole sub-discussions if one goes off-topic. It's also extremely easy to lose track of a request or a question made a couple of posts ago if some other sub-discussion is lively and inserts a lot of messages after that request (because it's not obvious that there is an open sub-thread that hasn't been answered yet).
2. Most forum software doesn't allow me to do individual things to posts. I cannot mark a post as important, or to be answered later. I cannot move or copy a post to my folder named »important stuff«. I cannot remove posts that I consider irrelevant in order to keep the number of posts I may have to look through later small. I cannot remove obvious spam and have to rely on moderators doing their job.
In short: the forum software doesn't support me in organizing myself at all. I have to rely on external tools a lot (e.g. manage some kind of TODO list in which I use URLs pointing to individual forum posts).
3. People can often remove their own posts. While this has its use, it also has the potential to make a whole discussion seem nonsensical later on. »What the hell are all those guys replying to?« is a question I had to ask myself in the past, only because the question that was asked had been removed later by the poster.
4. Search functions vary in usefulness. There are too many forums in which it is frowned upon to have multiple topics about the same piece of software, for example. This leads to topics with literally thousands of messages, and the forum's search functionality is often not up to it. »Sent by myself between January and March with a topic that matches XYZ and the body that matches ABC« is something I can do in my email program; it's nothing I've ever been able to do properly in a forum.
5. Nefarious moderators may remove content they consider inappropriate for whatever reason. Granted, this is not often a real issue, but if you do have a personal problem with a moderator then good luck getting anything done on that forum.
Posted Mar 28, 2015 13:02 UTC (Sat)
by Sesse (subscriber, #53779)
[Link]
Posted Mar 28, 2015 17:24 UTC (Sat)
by dmarti (subscriber, #11625)
[Link]
Posted Mar 29, 2015 10:52 UTC (Sun)
by xyz (subscriber, #504)
[Link] (1 responses)
the last April can be a little confusing since this article will be avaialble with the first April edition of 2015 of LWN while here the last April refers to last year's (2014) April.
Posted Mar 30, 2015 12:49 UTC (Mon)
by jwakely (subscriber, #60262)
[Link]
Posted Mar 30, 2015 12:21 UTC (Mon)
by mirabilos (subscriber, #84359)
[Link] (2 responses)
Keeping Mailman 2 for sure.
Posted Mar 30, 2015 16:01 UTC (Mon)
by rriggs (guest, #11598)
[Link] (1 responses)
Posted Mar 31, 2015 9:29 UTC (Tue)
by mirabilos (subscriber, #84359)
[Link]
What I said was: it looks like it was designed to look like SF.net’s forums. The net result of that is something you already said…
Posted Mar 30, 2015 13:12 UTC (Mon)
by raimue (subscriber, #95875)
[Link] (3 responses)
Furthermore, is it still not possible to follow a thread spanning multiple months? The archive is chunked up by months and I see threads starting with "Re: ..." subjects (maybe they are just cross-posts I can't identify due to missing To/CC?).
Also when viewing a single mail, I totally miss a reference to the parent post. Shouldn't it be possible to add such a link now with stable URLs based on Message-Id and the References/In-Reply-To headers?
I usually rely on Gmane's web interface, because it is able to show the full thread even if the replies arrived multiple months apart. Pipermail in Mailman 2 just can't handle this.
Posted Apr 3, 2015 19:30 UTC (Fri)
by lacos (guest, #70616)
[Link]
Posted Apr 13, 2015 19:52 UTC (Mon)
by sumanah (guest, #59891)
[Link] (1 responses)
I need to find an example of this, but I have been assured that HyperKitty *will* display threads smoothly across months. If and when I find confirmation either way (that it works or that it doesn't) I'll comment here again to let you know!
Posted Apr 15, 2015 0:34 UTC (Wed)
by The_Barbarian (guest, #48152)
[Link]
Posted Apr 4, 2015 17:39 UTC (Sat)
by chmouel (subscriber, #6335)
[Link]
I am still looking for a bulletin board/mailinglist integration software
I am still looking for a bulletin board/mailinglist integration software
I am still looking for a bulletin board/mailinglist integration software
I am still looking for a bulletin board/mailinglist integration software
I am still looking for a bulletin board/mailinglist integration software
I am still looking for a bulletin board/mailinglist integration software
I guess we are all just so used to loading times even with all the responsive designs etc that this seems outlandishly fast :-)
I am still looking for a bulletin board/mailinglist integration software
I am still looking for a bulletin board/mailinglist integration software
I am still looking for a bulletin board/mailinglist integration software
I am still looking for a bulletin board/mailinglist integration software
I am still looking for a bulletin board/mailinglist integration software
Mailman 3.0 to modernize mailing lists
Mailman 3.0 to modernize mailing lists
HyperKitty a step back in usability
HyperKitty a step back in usability
>> and that's *exactly* its biggest problem. Web discussion forums are inappropriate for technical exchange.
HyperKitty a step back in usability
out my messages. I'm fully conscious about whitespace use, about what
lines up with whatever else, both vertically and horizontally, and so
on. I like to draw simple diagrams, tables, occasionally even graphs /
charts.
messages. However its presentation depends on monospace font.
"Reply" button, then (if we're lucky) jump to the end (or their cursor
is placed there by default), then emit an unkempt string of "words". If
they separate their thoughts into paragraphs, we can consider ourselves
lucky.
support my thoughts. Forum software throws the form (the ASCII layout)
away, corrupting the perception of my thoughts.
markup to insert numbered or unnumbered lists, etc. They *all* suck.
I've been a reddit user, and archlinux bbs user, and I've been on other,
much less known forums as well. They all suck.
Get. I have simple text editor macros that help me lay out things. Doing
the same (or approximately the same...) in whatever markup might be
possible, but it takes five times the effort. Also, markup is *code*
after all, and proportional font and code do not mix.
text file or binary file, *in-line* with your message. In my experience,
no forum software will *both* enable you to do that *and* keep your
content pristine.
> in and do engage in technical exchanges in all sorts of places (github
> issues, IRC, LWN comments, etc) without too much harrumphing.
arguments, I tend to ask people to switch to email, especially if I need
background, or would like to give them background.
manually at 76 characters (an empirical value).
lines); in those cases I make a note at the top of the comment for the
reader to click "unwrap comments". Because I've manually wrapped my
flowing text anyway, this won't result in a 200 character wide wall of
text; only the diagram will take up as much horizontal space as it
needs.
Mailman 3.
doing patch review (or reading it, after the fact) in anything but
plaintext?
HyperKitty a step back in usability
The comment had to be made…
Will there be built-in RSS? There are some lists I don't need to get in email but wouldn't mind having access to in an RSS reader. (Would also make it easier to feed announce lists to Planet sites)
RSS?
Reference to last April in HypperKitty can be (is?) a little confusing
"HyperKitty is a Django-based archiver application that replaces Pipermail, which we previewed last April."
Reference to last April in HypperKitty can be (is?) a little confusing
Mailman 3.0 to modernize mailing lists
Mailman 3.0 to modernize mailing lists
Mailman 3.0 to modernize mailing lists
Threading on the web archive
Threading on the web archive
Threading on the web archive
Threading on the web archive
Mailman 3.0 to modernize mailing lists