Andrew Stuart writes: > I assume a great deal of thought has gone into message threading > and how it works. Is there anyone willing to share the basics with > me - specifically as it relates to Mailman and related projects?
Currently Mailman and Postorius don't care at all. HyperKitty has its own threading mechanism, and this is a core function of an MUA or archive (which is sort of a read-only MUA). AFAICS, Jamie's threading.html is all you really need to know about this. There's also the IMAP THREAD extension, an alternative specification of Jamie's algorithm: https://tools.ietf.org/html/rfc5256. > a Mailman oriented understanding I don't understand what you mean by this. Mailman's current distribution and administration functions don't care about threads at all, and (as I alluded to above) HyperKitty is just a read-only MUA for this purpose. Dynamic sublists (as implemented by the Systers fork) and some proposals for anonymous lists using threading information, but Systers does it by creating a separate channel (which may have subthreads defined by links) while the anonymous list use case is as yet undesigned. > example, this description of Gmail threading > http://xkahn.zoned.net/software/evolution/threads/ seems to suggest > that Gmail includes arbitrary business rules for threading based on > message content (i.e. subject prefix). Jamie's algorithm also uses the subject field when links are unavailable. > ** What data defines how emails are connected to one another? The In-Reply-To and References header fields are references to earlier messages in the thread. Most MUAs also create pseudo-threads by sorting on Subject and Date when those fields are unavailable. > ** How is that connecting data organised (i.e. in a tree, a flat > list, by date, whatever)? Organized where? Conceptually it's a tree. > ** What happens when thread data is missing (i.e. a message in a > thread is deleted)? Implementation detail. > ** Are there any algorithms/mechanisms/patterns that are effective > for implementing threading? The two documents referenced above. > ** Any code in Mailman/Hyperkitty/elsewhere that is particularly > good to study? HyperKitty must do threading, but what algorithm it uses I don't know. I find that mailing lists are generally not very demanding of the threading algorithm, most work fine. _______________________________________________ Mailman-Developers mailing list Mailman-Developers@python.org https://mail.python.org/mailman/listinfo/mailman-developers Mailman FAQ: http://wiki.list.org/x/AgA3 Searchable Archives: http://www.mail-archive.com/mailman-developers%40python.org/ Unsubscribe: https://mail.python.org/mailman/options/mailman-developers/archive%40jab.org Security Policy: http://wiki.list.org/x/QIA9