RE: [Spam-verdenking][english 100%] RE: Reply all - issue

Subject: RE: [Spam-verdenking][english 100%] RE: Reply all - issue

Date: Sun, 3 Feb 2013 01:06:58 +0100

To: 'David Bremner'

Cc: notmuch@notmuchmail.org

From: Robert Mast


Thanks for the guidelines!

One answer I couldn't find under coding: Do you all develop with emacs/GDB or is there a more visual and intuitive IDE to code with and load/show the dependency-tree? I only debugged some C-code with emacs 15 years ago and feel quite clumsy to get emacs to function like a proper wysywig-IDE.

#4) naturally.

I like your last suggestion at #5) of the header-regexp and agree to first work on the design-issues left before coding:

@#6&#2&#3): I doubt whether I should tamper with threading heuristics at all at the level of /lib/database.cc. Does anyone know whether the MUA's using notmuch depend on thread-id's at the level of database.cc, or will MUA's respect the different threads coming from seeding lib/thread.cc/_notmuch_thread_create with all known messages except already processed messages as is done with notmuch_query_search_threads?

If I let lib/thread.cc/_notmuch_thread_create only 'eat' everything from 'match_set' for a stripped subject the 'seed'-message of another subject within the same thread will then lead to another created thread within the result set.

If I start coding this I can try the result with mutt-kz/notmuch and notmuch/emacs.

My aim with getting notmuch working well will be providing a base for reviving something like mail2forum for phpBB3 with mailcompression-capabilities to prevent for mailthreads to be copied in again and again with every mailed answer.

I think that can be accomplished by keeping the original mails as well and compress the forum-threads to sup-like threads (by hiding quoted e-mail).


-----Oorspronkelijk bericht-----
Van: David Bremner [mailto:david@tethera.net] 
Verzonden: zaterdag 2 februari 2013 21:53
Aan: Robert Mast
CC: notmuch@notmuchmail.org
Onderwerp: [Spam-verdenking][english 100%] RE: Reply all - issue

Robert Mast <beheerder@tekenbeetziekten.nl> writes:

>
> Anyone interested in me patching Notmuch, or shall I keep the changes 
> to myself?
>

Hi Robert;

If you have patches, and you want feedback on them, then you are of course welcome to send them to the list.  Previous experience suggests us that it is often faster in the long run (in terms of actually getting code into notmuch) to take time to work out the design issues before starting coding. Some suggestions/comments:

1) See http://notmuchmail.org/contributing/ for some general hints on
   contributing code to notmuch.
             
2) Make sure whatever threading heuristic you use is deterministic, and
   robust in the face of messages arriving in different orders, and
   munging of headers by mailing lists (subjects in particular get
   munged fairly often).  

3) In particular, it seems important that "notmuch dump" followed by
   "notmuch restore" (possibly followed by notmuch new?) yields unchanged
   or equivalent thread structure

4) Since threading heuristics are a matter of taste (i.e. not everyone
   is convinced that the way Gmail does it is the way notmuch should),
   you'll need to make this configurable. One constraint is that the
   library itself (under ./lib) is should not read configuration files
   (or environment variables, although it violates this for debugging).
   This just means you will have to change the API to pass configuration
   information in to certain routines.

5) I'd say it's more important that you can shut off the heuristic
   completely than have special handling for git (or other version
   control system) patch series.  If you do decide to add some special
   handling for patch series, I'd suggest making it as generic as
   possible, perhaps a configurable list of (header, regex) values that
   disable the thread splitting heuristics.

6) Decide how, if at all your design will support manually joining
   threads together.  I think an acceptable answer would probably be
   "disable all thread splitting heuristics and rebuild the
   database". I'm not sure if it's feasible to do anything nicer than
   that.

d




.


Thread: