Blog by Sumana Harihareswara, Changeset founder

11 Jan 2015, 20:12 p.m.

My Mailman Adventure Continues

Hi, reader. I wrote this in 2015 and it's now more than five years old. So it may be very out of date; the world, and I, have changed a lot since I wrote it! I'm keeping this up for historical archive purposes, but the me of today may 100% disagree with what I said then. I rarely edit posts after publishing them, but if I do, I usually leave a note in italics to mark the edit and the reason. If this post is particularly offensive or breaches someone's privacy, please contact me.

I have now submitted two merge proposals to Postorius, the administrative web UI that Mailman users will use to manage their list subscriptions and moderate messages. I've also submitted two pull requests to HyperKitty, the "archiver" web UI that Mailman users will use to browse list archives. (Launchpad calls my submissions "merge proposals", GitHub calls them "pull requests", old-school hackers call them "patches", and I call them "yay".)

I'm a lot more comfortable with Launchpad and Bazaar now. "Team branches" section of the Launchpad help, "Bazaar for Web Devs", and the test Launchpad site helped me get into the swing of things. I also got to use git cherry-pick and git rebase -i in the course of my work, which put a bit of swagger in my figurative stride.

At Wikimedia I deeply absorbed the lesson of internationalization and localization (i18n/l10n) -- you never hardcode strings in a user interface! Instead you call a messages store so you can present the translation of that string in the user's preferred language. So it came easily to me to make those kinds of improvements to Postorius and HyperKitty: going through the HTML templates, and marking phrases like "Previous email" with special syntax denoting them as messages to be translated.

I started off trying to use a regex to change or at least find all the user-visible strings, but that got super tiresome (edge cases, syntax, etc.), and I also ended up making a few grammar-type improvments along the way. So I got a lot of quality time in with emacs these past few days. I hadn't anticipated that systematically reviewing all the templates would give me such a thorough overview of HyperKitty and Postorius, but that was a nice side benefit as well. As I went, I noted the line numbers of some particularly confusing bits, so I can ask questions in IRC later.

I've done some wiki gardening and am thinking about what to do next. I'd like to be fixing some of HyperKitty's outstanding bugs, since HyperKitty's on the critical path for the 3.0 release, but I'm not sure which of them are still reproducible; many of the bugs were reported years ago. So it would make sense for me to triage those bugs, but to do that I'd need a working HyperKitty installation. There's an incompatibility between the latest HyperKitty code and the latest Mailman core code, so I'd have a bit of trouble setting up a test install. (That's also why the demo site is running an RPM based on the last git tagged version, which is not the most recent commit. I am glad that this helped me learn about tagging in Git!)

Since I haven't yet heard a similar "the master branch of Postorius doesn't install/run/integrate with Mailman master" pronouncement, and Postorius is also a web app whose readiness is a dependency for the Mailman 3 release, I'll try concentrating on that. My current plan is to set up an installation, pick another open bug no one else is working on, and try to fix it.


11 Jan 2015, 22:02 p.m.

Woah, you did that by hand? How did you test the changes if you don't have a working installation?

Sumana Harihareswara
11 Jan 2015, 23:31 p.m.

I didn't test the changes -- it would be best if I had, but I am okay with the possibility that the code reviewers will test my branch, find that it fails a test, and bounce the failure back to me. At that point, if I haven't already set up my installation, I'll prioritize that, so I can make sure my next revision tests cleanly.