TSC team member kirbyfan has suggested to take the opportunity of our
server outage and provide a web interface to the mailing list via an
installation of Discourse¹. This thread is to ask everyone what they
think about the question and whether it is worth the effort. In this
rather longish e-mail, I am first going to outline the current setup
(I.), then give information about Discourse (II.), and then conclude
with my own opinion (III.).
I. First, a description of the current state. This mailing list is
managed by an installation of GNU Mailman 3² that has been installed via
Ubuntu 18.04’s repositories. Albeit it was a little tricky to set up
(documentation problems), it should now quietly do its job and its
security is provided via the distribution’s repositories. Mailman 3
provides a forum-like web interface which we host at
Mailman 3 is modular. It consists of mailman-core (the actual e-mail
handling programme), Postorious (a web interface for administrative
actios like registration), and Hyperkitty (a web interface for reading
and posting to/from the mailing list; the link above points to
Hyperkitty). mailman-core provides a REST API which Postorious uses for
administrative actions. It is possible to write a custom client for
mailman-core or execute administrative actions from the shell; Mailman 3
even comes with a commandline programme for that (“mailman shell”).
If your only experience so far is with Mailman 2’s web interface, I ask
you to try Hyperkitty first. Mailman 3 is a complete rewrite and its web
interface is not at all comparable to Mailman 2’s.
II. Second, to get an impression of how a Discourse installation
interacting with a mailing list looks like, take a look at the
inofficial Ruby-Talk mirror at rubytalk.org³. This mirror is read-only,
but it should still give a feeling on how things look. For a demo
supporting both read and write, check out Discourse’s official
demo⁴. Discourse is not available in Ubuntu 18.04’s repositories and
offers new releases in a very rapid cycle⁵. Alone in January 2019 there
were 4 stable releases (and several beta releases, but these are not
important for us).
Discourse is a RubyOnRails application with lots of dependencies,
including a NodeJS server and a Redis DB. It’s front end makes extensive
official installation guide⁶ starts with this:
> The only officially supported installs of Discourse are Docker
> based. You must have SSH access to a 64-bit Linux server with Docker
> support. We regret that we cannot support any other methods of
> installation [...].
III. Third, my own opinion on the topic. It might be surprising, but the
topic is not actually important for me. This has two reasons: a) I want
to work with TSC’s code primaryly, and that’s independant of the mailing
list. b) I use the e-mail interface anyway and do not post via the web
interface. Thus, how the mailing list looks on
<https://lists.secretchronicles.org> does not matter to me personally.
I would have been fine with Mailman 2 either.
I was working on Rails applications in times before Docker existed and
as such I find the Discourse team’s reasoning why Docker is required
quite disgusting (“Hosting Rails applications is complicated.” -- this
is a quote). Containers have known security problems, and under our
tight timing constraints I find it of utmost importance to make a secure
setup as automatic (once installed, of course) as possible. This is the
primary reason why I am very reluctant to installing anything that is it
not available in a distribution’s repositories. Just enabling
unattended-upgrades should relieve me from security issues until the
distribution’s end of life. In fact, I have never worked with containers
so far. As you probably know, I’ve been using ArchLinux, Gentoo, and
even Slackware, as my daily drivers, and the spirit of these
distributions hardly matches the spirit containerisation follows. I like
fiddling with configuration files. If there’s a problem, I will dig up
the documentation reference and solve it. It will not surprise you that
when I today need to work on a web application, I prefer
Sinatra. RubyOnRails has long gone a route that does not fit my
understanding of software development.
I want to highlight one thing, though. While I am fine with whatever web
interface the majority finds nice, I want to be able to continue to use
a proper mailing list interface and the web interface has to be a good
mailing list citizen. This means:
* It should not encourage top posting.
* It should either use plain text e-mail or send out a readable and
well-formatted text/plain MIME part that does not lose information
compared to the text/html MIME part.
* It should properly thread, i.e. it should set the In-Reply-To: and
References: e-mail headers properly to the post it replies to and
not just always to the OP. If you never used a threading e-mail
client, try Thunderbird, susbcribe to Ruby-Talk or any other mailing
list, filter all of its e-mail automatically into a folder, and enable
threaded view in that folder. It’s very convenient.
* It should forbid edits after posting, or at least send an
understandable e-mail on editing to the mailing list.
An example that falls short of multiple of these points is GitHub’s
issue tracker. It’s e-mail interface is not actually nice to use at
all. Even I prefer using its web interface, and this annoys me every
day I need to do it.
When the aforementioned inofficial Ruby-Talk mirror was discussed, more
concerns were raised⁷, though the above ones are those that matter to
me. Further replies on the respective thread on Ruby-Talk indicate that
some of the points mentioned in the linked Ruby-Talk post have been
addressed by now.
There are some more aspects to consider. Discourse is rather resource
hungry. Our new server should be able to easily handle that, though. So
this is not a deal breaker. Its frequent release cycle however means
that someone has to keep a permanent eye on our installation, especially
given that Discourse it not available in the Distribution’s
repositories. That’s something I expressly don’t want to do. For that I
simply lack the time. It is thus required that someone volunteers to
take care of keeping Discourse up to date. I shiver when I imagine the
useless use of extra software with the Docker image (it will tuck an
Nginx installation behind our Apache installation effectively), but I
shall not complain if someone else than me maintains it.
Ideally, Discourse would just act as a subscriber to the mailing list,
as does the aforementioned Ruby-Talk mirror. That would leave the actual
mail management to Mailman, which is engineered to do just that and does
it properly. Since Mailman 3 is modular, we could then disable
Hyperkitty and instead use Discourse for interaction with the mailing
list. With some glue scripting, registration can be made to work via
mailman-core’s REST API probably. That assumes Discourse supports
plugins in some way, though. It would also leave the possibility open to
hook up an external mail archive like marc.info or Gmane.
I apologise for the length of this e-mail, but you will acknowledge that
providing all of these aspects in a chat does not work out.
⁷ Cf. http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/438496
as you probably have already noticed with my last e-mail, we have
recovered from the server outage. If you until now used the web
interface at <https://lists.secretchronicles.org> for posting to the
mailing list, you are required to do some cleanup, because we switched
the mailman version in use.
All users that were registered (via web interface) or subscribed (via
e-mail interface) have been re-added as subscribers of this mailing
list. If that is not to your liking, please go to the web interface
linked above and change your settings and/or delete your account there.
Alternatively, if you just want to unsubscribe, send an e-mail to
tsc-devel-leave(a)lists.secretchronicles.org with subject "unsubscribe"
and body "unsubscribe". You will receive a confirmation e-mail, and once
you followed its instructions (replying), you have completely
unsubscribed and will receive no further e-mail from the mailing list.
For any further details, I ask you to read our official announcement on
the main web site: <https://secretchronicles.org/en/news/2019/03/25/server-outage-aftermath/>
kirbyfan has suggested a Discourse installation for interacting with the
mailing list. I am going to open a new thread for this topic later.
Good morning everyone on the (repaired) mailing list,
I received a reply from former artist skarfester today. I had written
him as we need some new art and asked him whether he was willing to
He replied that he currently has neither the time nor the capabilities
to do so, and instead asked me to remove him from the TSC team. I'm
going to do so later today.
This is to inform everyone of the change in the team.