maildev@lists.thunderbird.net

Thunderbird email developers

View all threads

Roadmap towards a Mork-free address book back-end

GL
Geoff Lankow
Mon, Aug 26, 2019 12:27 AM

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.
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.
JK
Jörg Knobloch
Tue, Aug 27, 2019 11:00 AM

On 26 Aug 2019 02:27, Geoff Lankow wrote:

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.

IIRC, we can tap into Outlook's address book, not Outlook Express.
Details here:

http://kb.mozillazine.org/Using_Outlook_and_OE_contacts_with_Thunderbird_or_Mozilla_Mail

Jörg.

On 26 Aug 2019 02:27, Geoff Lankow wrote: > 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. IIRC, we can tap into Outlook's address book, not Outlook Express. Details here: http://kb.mozillazine.org/Using_Outlook_and_OE_contacts_with_Thunderbird_or_Mozilla_Mail Jörg.
MH
Matt Harris
Wed, Aug 28, 2019 12:07 PM

On 26-Aug-19 9:57 AM, Geoff Lankow wrote:

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.

Not to put to fine as point on it,  I still use it.  On windows 10 if I
type Windows key + R and contacts it shows me a contacts folder  and
those contacts are included in the Thunderbird address book.  I also
have a people app,  but all it ever does is open and just disappear so I
have never worked out if they are the same thing but online searches
indicate not.  But I just used contacts to sync contacts from my
pre-smart samsung phone.

Matt

On 26-Aug-19 9:57 AM, Geoff Lankow wrote: > > *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. > Not to put to fine as point on it,  I still use it.  On windows 10 if I type Windows key + R and contacts it shows me a contacts folder  and those contacts are included in the Thunderbird address book.  I also have a people app,  but all it ever does is open and just disappear so I have never worked out if they are the same thing but online searches indicate not.  But I just used contacts to sync contacts from my pre-smart samsung phone. Matt
GL
Geoff Lankow
Wed, Aug 28, 2019 10:46 PM

Okay, that's good to know. And not good because it means more work. :-)

GL

On 29/08/19 00:07, Matt Harris wrote:

On 26-Aug-19 9:57 AM, Geoff Lankow wrote:

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.

Not to put to fine as point on it,  I still use it.  On windows 10 if
I type Windows key + R and contacts it shows me a contacts folder  and
those contacts are included in the Thunderbird address book.  I also
have a people app,  but all it ever does is open and just disappear so
I have never worked out if they are the same thing but online searches
indicate not.  But I just used contacts to sync contacts from my
pre-smart samsung phone.

Matt


Maildev mailing list
Maildev@lists.thunderbird.net
http://lists.thunderbird.net/mailman/listinfo/maildev_lists.thunderbird.net

Okay, that's good to know. And not good because it means more work. :-) GL On 29/08/19 00:07, Matt Harris wrote: > On 26-Aug-19 9:57 AM, Geoff Lankow wrote: >> >> *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. >> > Not to put to fine as point on it,  I still use it.  On windows 10 if > I type Windows key + R and contacts it shows me a contacts folder  and > those contacts are included in the Thunderbird address book.  I also > have a people app,  but all it ever does is open and just disappear so > I have never worked out if they are the same thing but online searches > indicate not.  But I just used contacts to sync contacts from my > pre-smart samsung phone. > > > Matt > > _______________________________________________ > Maildev mailing list > Maildev@lists.thunderbird.net > http://lists.thunderbird.net/mailman/listinfo/maildev_lists.thunderbird.net