[Maildev] Roadmap towards a Mork-free address book back-end

Geoff Lankow geoff at thunderbird.net
Sun Aug 25 20:27:00 EDT 2019


One of the parts of Thunderbird most in need of an overhaul is the 
address book back-end. Among other reasons, it uses a proprietary 
database format 
<https://developer.mozilla.org/en-US/docs/Archive/Mozilla/Message_Summary_Database#Mork_-_the_Good.2C_the_Bad.2C_and_the_Ugly> 
that has past its use-by date. We've started walking the road towards a 
new back-end, and I wanted to share with you what that road looks like, 
as I see it.

(Note that this isn't really the place to start talking about your hopes 
and dreams for a new address book, as there is a lot of work to do 
before we get there. I have a few interesting ideas myself, but you'll 
have to wait and see what they are.)

*Stage one*

Goal: stop using Mork for new address books

Steps:

 1. Create a new non-Mork directory provider that passes as many tests
    as possible (just landed, bug 1572324
    <https://bugzilla.mozilla.org/show_bug.cgi?id=1572324>)
 2. Enable this provider for newly-created address books, behind a pref
    (same bug)
      * Creating the pref "mail.addr_book.newDirType" and setting it to
        101 will mean any /new/ address books use the JS provider
        instead of the Mork provider.
      * Use any other value (except 2, the default), and you're gonna
        have a bad time.
 3. Use the provider for the default address books in new profiles (bug
    1576525 <https://bugzilla.mozilla.org/show_bug.cgi?id=1576525>)

ETA: Thunderbird 70

*Stage two*

Goal: migrate existing Mork address books to the new provider

Steps:

 1. Create a migration mechanism
 2. Enable it behind a pref

ETA: Thunderbird 71

*Stage three*

Goal: enable new provider for all users

ETA: Thunderbird 72 or 73

*Stage four*

Goal: remove Mork from the tree
Note this also requires rewriting the message summary database and the 
message folder cache (see bug 453975 and friends 
<https://bugzilla.mozilla.org/showdependencytree.cgi?id=453975&hide_resolved=1>) 
before the next ESR.

ETA: Not before the next Thunderbird ESR

*Further goals (not before stage three)
*

  * Replace the address book manager (nsIAbManager, nsIAbDirFactory and
    others) with something much less complicated
  * Overhaul many of the other interfaces and remove much of the cruft
  * *Make all address book APIs asynchronous by default*
  * Start doing new, more interesting things with the address book

*Other issues*

  * Mork isn't the only address book provider, there's also LDAP and the
    OS X system address book provider. (There is also a provider for
    Outlook Express but I believe it's long dead.) We can't break these
    providers so they'll need to be updated too.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.thunderbird.net/pipermail/maildev_lists.thunderbird.net/attachments/20190826/ab06b596/attachment.html>


More information about the Maildev mailing list