[Mailman-Developers] Re: Hyperkitty's ability to build a thread

2021-02-13 Thread Stephen J. Turnbull
Mark Sapiro writes:

 > There is an article on threading at
 >  and an RFC
 > . These describe algorithms
 > which are fairly complex, but if someone wanted to try to implement them
 > in HyperKitty, we would certainly consider the implementation.

Ouch.  I didn't realize we didn't use Jamie's algorithm.  It's not
that hard to implement[1], and it's robust and extremely efficient[2],
modulo the cost of accessing message-id, in-reply-to, and references.

A robust, tested, and documented implementation sounds like a GSoC
project to me.  And a PyPI package, though that would be somewhat
harder.

Footnotes: 
[1]  It took me about a day to get it mostly working in Elisp, and
most of the difficulty and the remaining issues were due to working
around bugs in the MUA that caused uncaught exceptions in the MUA.

[2]  It's multipass, but it's worst-case and average-case linear.
Worst-case is linear because the line-length restriction keeps the
length of references down to about 15 at most.
___
Mailman-Developers mailing list -- mailman-developers@python.org
To unsubscribe send an email to mailman-developers-le...@python.org
https://mail.python.org/mailman3/lists/mailman-developers.python.org/
Mailman FAQ: https://wiki.list.org/x/AgA3

Security Policy: https://wiki.list.org/x/QIA9


[Mailman-Developers] Re: Hyperkitty's ability to build a thread

2021-02-13 Thread Thomas Hochstein
Danil Smirnov schrieb:

> I wonder if Hyperkitty is able to leverage some other method to combine the
> thread correctly in this case?

There is no way to display a thread without threading information (in
In-Reply-To: or References: headers). One can try to match by Subject
and/or Date, but that is a heuristic bound to fail.

The "correct" way would be to fix the client that is erroneously [1]
missing or deleting threading headers.

-thh

[1] Violating a SHOULD in RFC 5322, 3.6.4.
___
Mailman-Developers mailing list -- mailman-developers@python.org
To unsubscribe send an email to mailman-developers-le...@python.org
https://mail.python.org/mailman3/lists/mailman-developers.python.org/
Mailman FAQ: https://wiki.list.org/x/AgA3

Security Policy: https://wiki.list.org/x/QIA9


[Mailman-Developers] Re: Hyperkitty's ability to build a thread

2021-02-13 Thread Mark Sapiro
On 2/13/21 4:50 AM, Danil Smirnov wrote:
> Hi everyone and Abhilash in particular :)
> 
> I've faced a case when Hypirkitty is unable to chain messages into a thread:
> https://wlug.mailman3.com/hyperkitty/list/w...@lists.wlug.org/
> 
> (See messages with the subject "WLUG Meeting Feb 11th 2021! Topic: Good
> question!".)
> 
> It's a quite disappointment as GMail does show them correctly - as a
> single thread.
> 
> As per my small investigation, a subscriber Robert N. Evans seems to have
> "In-Reply-To" headers stripped from the messages that probably causes the
> thread to break.


As Steve notes, threading by Subject: matching has its own issues and
HyperKitty makes no attempt to do that.

Where HyperKitty is deficient is it uses only In-Reply-To: and ignores
References:. This is an issue if someone sends a reply to an off-list
message back to the list. In that case, Hyperkitty doesn't find the
In-Reply-To: message-id so starts a new thread, even though there may be
References: message-ids in the archive.


> I wonder if Hyperkitty is able to leverage some other method to combine the
> thread correctly in this case?


There is an article on threading at
 and an RFC
. These describe algorithms
which are fairly complex, but if someone wanted to try to implement them
in HyperKitty, we would certainly consider the implementation.

Note that even HyperKitty's simple method generally works well. It
breaks down when replies to off-list messages go back to the list, when
user's mail clients don't add In-Reply-To: (these are fairly rare), and
when a user composes what is actually a reply as a new message.

Also note that "combine the thread correctly" is a subjective opinion,
at least in some cases.

-- 
Mark Sapiro The highway is for gamblers,
San Francisco Bay Area, Californiabetter use your sense - B. Dylan
___
Mailman-Developers mailing list -- mailman-developers@python.org
To unsubscribe send an email to mailman-developers-le...@python.org
https://mail.python.org/mailman3/lists/mailman-developers.python.org/
Mailman FAQ: https://wiki.list.org/x/AgA3

Security Policy: https://wiki.list.org/x/QIA9


[Mailman-Developers] Re: Hyperkitty's ability to build a thread

2021-02-13 Thread Sam Kuper
On Sat, Feb 13, 2021 at 02:50:47PM +0200, Danil Smirnov wrote:
> Hi everyone and Abhilash in particular :)
> 
> I've faced a case when Hypirkitty is unable to chain messages into a
> thread: https://wlug.mailman3.com/hyperkitty/list/w...@lists.wlug.org/
> 
> [..] It's a quite disappointment as GMail does show them correctly -
> as a single thread.
> 
> As per my small investigation, a subscriber Robert N. Evans seems to
> have "In-Reply-To" headers stripped from the messages that probably
> causes the thread to break.
> 
> I wonder if Hyperkitty is able to leverage some other method to
> combine the thread correctly in this case?

There are two common methods to group messages into threads:

- Using the "In-Reply-To:" header.  (The "correct" approach.  Downside:
  gives false negatives if users strip those headers, as you've seen.)

- Using the "Subject:" header.  (A heuristic approach.  Downside: gives
  false positives if users start a new thread with the same subject as
  an older thread.)

I believe Gmail uses the "Subject:" header.  That would explain why
Gmail was able to recognise Robert N. Evans's messages as part of the
thread even though they lacked the "In-Reply-To:" header.

I don't know if Hyperkitty allows threading using "Subject:" matching,
but if so then that would probably solve your problem.

Sam

-- 
A: When it messes up the order in which people normally read text.
Q: When is top-posting a bad thing?

()  ASCII ribbon campaign. Please avoid HTML emails & proprietary
/\  file formats. (Why? See e.g. https://v.gd/jrmGbS ). Thank you.
___
Mailman-Developers mailing list -- mailman-developers@python.org
To unsubscribe send an email to mailman-developers-le...@python.org
https://mail.python.org/mailman3/lists/mailman-developers.python.org/
Mailman FAQ: https://wiki.list.org/x/AgA3

Security Policy: https://wiki.list.org/x/QIA9