Ok, so having responsibly proposed the off-the-shelf 80% solution, let me go to the other extreme and say: let's write our own!
Points in favour (IMHO):
- It would be fun (that's why I'm a programmer after all)
- It's really not a huge amount of work
- It would allow interesting integration with TIPs, CFVs, bugs etc (by tagging threads with TIPs it would make it easy to refer to all the discussion around a TIP)
Fossil seems like a nice home for it, except that it would bloat it. So what about building a minimal plugin system:
- Embed a Tcl interp (might be one already, I don't know) with a trofs VFS containing the necessary bootstrap files to preserve the single file distribution property of fossil.
- Expose a minimal API that allows plugins to register handlers for URL prefixes, and work with artifacts / access the repo database.
- Define a magic path in a repo (.fossil_plugins maybe) that is read when fossil runs in hosting mode.
Then implement the mailing list manager as a Tcl plugin hosted by Fossil, that stores the messages in the project database and presents a web interface for reading, searching, subscribing, etc. I've got some code lying around that I wrote years ago that implements an SMTP server that could form the basis of the email side of the system.
Perhaps also implement a TIP plugin that works in the same way, hosts the TIPs in the repo and links to relevant tcl-core threads.
Some nice features of this approach:
- No additional hosting / maintenance requirements
- Automatic backup of the tcl-core messages, since they are in every distributed copy of the project repo
- Future proofed against corporate overlords changing strategies (SF, google)
- Promotes Tcl as an embedded language in an environment it is uniquely suited to ;)