Time Stand Still
Written by Barry Warsaw in meditations on Tue 21 November 2017. Tags: mailman, change,
I turn my back to the windTo catch my breath,Before I start off again
—Neil Peart, Time Stand Still
23 years ago, I met Guido, fell in love with Python, and took a turn that changed the course of my life and career. You can't ever know where your decisions will lead you, so you just have to set a course and trust the wind.
In the 1990s, as we moved the Python.Org infrastructure from the Netherlands to the US, we inherited the Majordomo list server that was running email@example.com. There were changes we wanted to make and features we wanted to add, but it was becoming increasingly clear that Majordomo had to be replaced. Besides being difficult to hack on, it was written in Perl, so of course that wouldn't do at all. Python was an upstart disrupting its space, and we needed a list server written in Python that was malleable enough for us to express our ideas.
It was about that time that our friend John Viega showed us a project he'd been working on. He'd wanted to connect a popular, local Charlottesville, Virginia band with their fans at UVA, and email lists were an important way to do that. Of course, no one wants to manage such lists manually, and if you're not happy with the existing options, what does any self-respecting developer do? You write yourself a new one! As for implementation language, was there really any other choice? History celebrates this momentous confluence of events: the band became the mega-rock powerhouse known as the Dave Matthews Band, and the mailing list software John wrote is what became GNU Mailman.
(Aside: I'll never forget the time my band the Cravin' Dogs played at TRAX, a Charlottesville music venue. The place was pretty much empty, us being from DC, but there was a rather big guy in the back nursing some drinks and just hanging out listening to the music. After the show, as we were packing up, this guy comes over to us and gives each of us a big, slow, bear-hug, telling us how much he liked our band. He introduced himself as none other than LeRoi Moore.)
My friend and serial co-worker Ken Manheimer was pivotal in Mailman's early days, resurrecting the software after a disk crash, and doing much great work on it. As near as I can remember, Mailman became GNU Mailman around 1998. I was interested in problems like guaranteed delivery order, absolutely no duplicates or lost messages, and robust process and queue management. Stuff like that. At one point I found myself as both the primary Mailman maintainer and the primary Jython (née JPython) maintainer, and I knew I couldn't do both for very much longer.
I made the choice to hand over Jython to other folks. I wanted to write more Python than Java, and I was deeply intrigued by Mailman's core vision: to connect like-minded people and to facilitate constructive communication and collaboration between them. Mailman had one killer advantage over Majordomo, and this was what eventually lead to its becoming the most popular open source list server; it was written at a time when Web applications were not yet ubiquitous, but their power was obvious, and Mailman was the first free software list server to put a web user interface front and center.
I know I made the right decision to concentrate on Mailman. I've met and worked with some amazing people, and I've loved the sprints we've had at the Python conferences, more for the friendships, tea, and meals than the technology. But I've also learned a lot about this craft of ours, and I've used Mailman as a platform to experiment, invent, adopt, discard, explore, fail, and enjoy. The good times are more than enough to outweigh the bad times. The benefits I've received have far exceeded anything I've given back. All the best parts of Mailman are because of the people who contributed them, and I'll own all its flaws, mistakes, and crapiness.
And now here I am as 2017 turns to its end-of-year holiday season, looking ahead to days of great change, more than I've experienced in many years. The adventures are both exciting and scary, both personal and professional. But it's hard to embrace them when you're weighed down. It feels like the right time to lighten the load, purge, and make room for other surprising things to fill in that space. Besides, after 20 some odd years on a project, it's probably way past time for new blood, new vision, and new leadership.
Letting go is never easy, but in this case it's the right thing to do. I was blessed when Mark Sapiro took over Mailman 2.1 because it gave me the freedom to concentrate on Mailman 3. I know the project and the community was better off with Mark leading the way. Letting go is much easier when you have such confidence in the next steward. And besides, was it ever really "mine" anyway?
And so, now it's that time for Mailman 3 in particular and the GNU Mailman project at large. Those of us on what we lightheartedly call the "Mailman Cabal" are in unanimous agreement that the obviously right person to lead Mailman from here is Abhilash Raj.
Abhilash joined the Mailman project as a Google Summer of Code student in 2013. He quickly became an indispensable member of the core development team. He's taken on tasks as varied as redesigning the website, designing and deploying our GitLab CI integrations, porting our ORM layer to SQLAlchemy, and adding MySQL support. He's also developing our Docker images, which have done more for Mailman 3 adoption than probably anything short of Fedora's early conversion to Mailman 3 across all their mailing lists. He's adept at all the various moving parts, how Core works (or doesn't :), how the pieces connect over REST through the official Python client bindings, and how the web interfaces Postorius and HyperKitty work. Hands down, he's the right person to take over.
This transition is good for the project too. Email, its relevant protocols and its role in our daily lives, has changed profoundly since the early days of Mailman. A fresh perspective and enthusiasm will help keep Mailman relevant to the changing ways we -- especially the FLOSS and tech communities -- communicate.
Please join me in supporting Abhilash in every way possible as he takes over in this new role as project leader. Like the other core developers, I'll be here when and if needed, even as I create space in my free time for... Something Else. I look forward to the vision that Abhilash will bring to the project, and I know that he will do a great job. To me, Mailman has always been about collaboration, and the best way for it to succeed is for you to continue to contribute your insights, experiences, opinions, and skills with positive intention.