thread=refs

Gabriele Bulfon gbulfon at sonicle.com
Fri Jul 8 11:36:07 EDT 2016


Mainly web clients, installed clients usually implements threading internally to overcome problems with the original references algorithm that is often confusing.
The problem with references is that it includes subject grouping, that is an old netscape model of the 90s: today, we just need references within the headers ids, or we may take a wrong message in the thread just because it has a similar subject (for example  automatic mails with same subjects would be treated as a thread, which is wrong).
Now, we're staring to implement threading view on our web collaboration software, running on cyrus.
So we are investigating how RoundCube is doing threading on a dovecot installation, and we found it to be the same as the client algrithm of Thunderbird, which is fine. Looking at the protocol, it uses REFS first, probably because it has no subject grouping by definition, and it should have a better date sorting. Should, because I found that Dovecot does not sort it reversed...
Maybe I will ask Dovecot guys why they choose to keep sort same as references: I suspect that claim to support refs, but actually the do the same references functions, but never do subject grouping.
----------------------------------------------------------------------------------------
Sonicle S.r.l.
:
http://www.sonicle.com
Music:
http://www.gabrielebulfon.com
Quantum Mechanics :
http://www.cdbaby.com/cd/gabrielebulfon
Da:
Ken Murchison
A:
gbulfon at sonicle.com info-cyrus at lists.andrew.cmu.edu
Data:
8 luglio 2016 17.17.32 CEST
Oggetto:
Re: thread=refs
On 07/08/2016 11:08 AM, Gabriele Bulfon      wrote:
Ok, sure, but        still two issues remain other than the draft:
- we need to get        rid of subject grouping in REFS, it only brings disorder,        merging stuff that is not related
I believe that the parameterization of the core functions should be    able to handle this.
- I would try to        guess why dovecot does not change sorting in REFS, keeping it        same as REFERENCES
I would contact that Dovecot authors and find out which version of    the THREAD=REFS draft they based their work on.
BTW, which clients use THREAD=REFS?
----------------------------------------------------------------------------------------
Sonicle S.r.l.
:
http://www.sonicle.com
Music:
http://www.gabrielebulfon.com
Quantum Mechanics :
http://www.cdbaby.com/cd/gabrielebulfon
Da:
Ken Murchison
A:
gbulfon at sonicle.com
info-cyrus at lists.andrew.cmu.edu
Data:
8 luglio 2016 16.39.17 CEST
Oggetto:
Re: thread=refs
Is there an actual RFC? All I find is            draft-ietf-morg-inthread-01. Looking at that draft, the only            difference between REFS ad REFERENCES is this:
THREAD=REFS sorts threads by the most recent INTERNALDATE in each    thread, replacing THREAD=REFERENCES step (4). This means that when a    new message arrives, its thread becomes the latest thread. (Note    that while threads are sorted by arrival date, messages within a    thread are sorted by sent date, just as for THREAD=REFERENCES.)
This being the case, I don't think we need two copies of the          threading functions. I'd modify the exiting functions to take          an additional parameter to specify whether we're doing REFS or          REFERENCES and then have 2 wrapper functions which call the          main function with the parameter set appropriately for the          given algorithm.
On 07/08/2016 10:03 AM, Gabriele            Bulfon wrote:
Ok, it works              :) but checking against dovecot implementation, it looks              like they have refs order same as references, but without              subject grouping. AFAIK the RFC on refs says ordering of              dates within the group should be reversed. Am I wrong?
----------------------------------------------------------------------------------------
Sonicle S.r.l.
:
http://www.sonicle.com
Music:
http://www.gabrielebulfon.com
Quantum Mechanics :
http://www.cdbaby.com/cd/gabrielebulfon
Da:
Gabriele Bulfon via Info-cyrus
A:
Ken Murchison
info-cyrus at lists.andrew.cmu.edu
Data:
8 luglio 2016 15.22.56 CEST
Oggetto:
Re: thread=refs
Testing                  ;) and checking against a dovecot machine with refs                  and same messages.
Will let                  you know
----------------------------------------------------------------------------------------
Sonicle S.r.l.
:
http://www.sonicle.com
Music:
http://www.gabrielebulfon.com
Quantum                        Mechanics :
http://www.cdbaby.com/cd/gabrielebulfon
Da:
Ken Murchison
A:
gbulfon at sonicle.com
info-cyrus at lists.andrew.cmu.edu
Data:
8 luglio 2016 15.02.38 CEST
Oggetto:
Re: thread=refs
On 07/07/2016 02:03 PM,                      Gabriele Bulfon via Info-cyrus wrote:
I                        can finally get back to this after so many                        months!
I                        checked the sources, and I actually see it                        doesn't look very hard.
Looks                        like:
-                        renaming all functions like "index_thread_ref"                        into "index_thread_references"
-                        duplicate them as "index_thread_refs"
-                        let "references" alg call the "references" funcs
-                        add support for "refs" in thread_algs and let                        them call the "refs" funcs
Makes sense.
then:
-                        completely remove the call to                        "ref_group_subjects", we don't want it at all in                        refs
-                        change the sortcrit to use the SORT_REVERSE                        modifier
As long as you mean making these changes for just                    the "refs" variant and not both.
what                        do you think? may be fine?
----------------------------------------------------------------------------------------
Sonicle                              S.r.l.
:
http://www.sonicle.com
Music:
http://www.gabrielebulfon.com
Quantum                              Mechanics :
http://www.cdbaby.com/cd/gabrielebulfon
Da:
Ken Murchison
A:
info-cyrus at lists.andrew.cmu.edu
Data:
5 ottobre 2015 14.04.02 CEST
Oggetto:
Re: thread=refs
As far as I can tell, the last specification                          for thread=refs was here:
https://tools.ietf.org/html/draft-ietf-morg-inthread-01
To implement this you want to look at index.c                          in the Cyrus source and add another entry to                          the thread_algs[] array. I'm guessing that you                          can reuse a lot of the existing                          index_thread_ref() code (which is probably                          needs to be renamed to                          index_thread_references()).
On 10/05/2015                            06:07 AM, Gabriele Bulfon wrote:
Great, Ken. Can you                                give me some advice / pointer to the                                sources I should look at?
Gabriele
Da:
Ken Murchison
A:
info-cyrus at lists.andrew.cmu.edu
Data:
2 ottobre 2015 19.08.04                                CEST
Oggetto:
Re: thread=refs
On                                  10/02/2015 10:53 AM, Gabriele Bulfon                                  wrote:
Nice, it's not                                      a big deal for us to upgrade to                                      new versions, surely easier than                                      porting to Dovecot! ;)
So, maybe we can help with the                                      implementation.
In my mind,                                      it's almost about changing the                                      "thread=reference" and let it omit                                      the subject matching, change                                      sorting
and...maybe                                      just this? How much hard do you                                      think it is?
That sounds about right from what I                                remember of THREAD=REFERENCES (which I                                co-authored and implemented) and                                THREAD=REFS (which I think was last                                documented in 2010).
Da:
Bron Gondwana
A:
info-cyrus at lists.andrew.cmu.edu
Data:
2 ottobre 2015                                      12.59.08 CEST
Oggetto:
Re: thread=refs
No, there isn't. The                                        conversations work in 3.0 beta                                        contains a lot of what would be                                        required to efficiently                                        implement THREAD=REFS, but                                        nobody has done the work to                                        implement it.
It certainly will never be                                        backported to the 2.4 series,                                        which is only getting security                                        updates and fixes for major bugs                                        now.
Regards,
Bron.
On Fri, Oct 2, 2015, at                                        18:40, Gabriele Bulfon wrote:
Hi,
we have systems running                                          cyrus 2.4.12, where thread                                          algorithms are only references                                          and orderedsubject.
Is there support for the                                          thread=refs algorithm?
Thanks
Gabriele
----
Cyrus Home Page:
http://www.cyrusimap.org/
List Archives/Info:
http://lists.andrew.cmu.edu/pipermail/info-cyrus/
To Unsubscribe:
https://lists.andrew.cmu.edu/mailman/listinfo/info-cyrus
--
Bron                                          Gondwana
brong at fastmail.fm
----Cyrus Home Page:
http://www.cyrusimap.org/
List Archives/Info:
http://lists.andrew.cmu.edu/pipermail/info-cyrus/
To Unsubscribe:
https://lists.andrew.cmu.edu/mailman/listinfo/info-cyrus
-- Kenneth MurchisonPrincipal Systems Software EngineerCarnegie Mellon University
----Cyrus Home Page:
http://www.cyrusimap.org/
List Archives/Info:
http://lists.andrew.cmu.edu/pipermail/info-cyrus/
To Unsubscribe:
https://lists.andrew.cmu.edu/mailman/listinfo/info-cyrus
-- Kenneth MurchisonPrincipal Systems Software EngineerCarnegie Mellon University
----Cyrus Home Page:
http://www.cyrusimap.org/
List Archives/Info:
http://lists.andrew.cmu.edu/pipermail/info-cyrus/
To Unsubscribe:
https://lists.andrew.cmu.edu/mailman/listinfo/info-cyrus
-- Kenneth MurchisonPrincipal Systems Software EngineerCarnegie Mellon University
----Cyrus Home Page:
http://www.cyrusimap.org/
List Archives/Info:
http://lists.andrew.cmu.edu/pipermail/info-cyrus/
To Unsubscribe:
https://lists.andrew.cmu.edu/mailman/listinfo/info-cyrus
-- Kenneth MurchisonPrincipal Systems Software EngineerCarnegie Mellon University
-- Kenneth MurchisonPrincipal Systems Software EngineerCarnegie Mellon University
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.andrew.cmu.edu/pipermail/info-cyrus/attachments/20160708/93a9e3be/attachment-0001.html>


More information about the Info-cyrus mailing list