[Kolab-devel] No x-uid please. (was: Re: [NEW KEP] KEP #17: Kolab XML Format 3.0)

Christian Mollekopf mollekopf at kolabsys.com
Tue Mar 13 16:51:11 CET 2012


On 2012-03-13 14:48, Jeroen van Meeuwen (Kolab Systems) wrote:
> On 2012-03-13 13:22, Christian Mollekopf wrote:
>> On 2012-03-13 1:18, Jeroen van Meeuwen (Kolab Systems) wrote:
>>> If a Kolab client aware of the meaning of an x-uid attribute value
>>> reads a distribution list object edited by a client that has no
>>> understanding of the x-uid attribute value, the behaviour between
>>> the
>>> two clients is going to be different.
>>>
>>> Remember we've been there before and it wasn't pretty.
>>>
>>> Different clients showing different behaviour, precedence rules,
>>> conflict detection between asynchronous edits and conflict 
>>> resolving
>>> all kick in here, and for no good reason.
>>>
>>
>> No they don't, the behavior is very clear, there is no possibility
>> for
>> conflicts and we don't need precedence rules or conflict resolving.
>>
>> There is a mailto uri which serves the purpose of having an email
>> distribution list and is not directly connected to a contact. There
>> is
>> no need or desire to synchronize that to a Contact instance.
>> The x-uid property serves the additional purpose of being able to
>> link
>> a Contact object to that member, so it's easy to get to it. That is
>> an
>> additional usecase and there is no need to have the properties
>> synchronized in any way.
>>
>
> If the contact is referred to in a distribution list "Kolab Systems
> Employees", and the actual contact object has "Jeroen van Meeuwen 
> (Kolab
> Systems)" as the display name for one of its identities, and
> "vanmeeuwen at kolabsys.com" as the email address for that identity;
>
> - A client might update a distribution list to refer to the recipient
> address used in the distribution list as 'mailto:Jeroen
> <kanarip at kolabsys.com>' while the x-uid remains the same, causing
> de-synchronized state.
>

It is de-synchronized but neither inconsistent nor invalid. The x-uid 
remains valid (still referring to the right contact), and the mailto 
address has been changed to be correct in respect to the distribution 
list.

> - A client might update the actual contact object's display name (to
> "Jeroen van Meeuwen") or email address (to
> "jeroen.vanmeeuwen at kolabsys.com") corresponding with the identity, 
> while
> a mailto: value for the member element in a distribution list remains
> "mailto: Jeroen van Meeuwen (Kolab Systems) 
> <vanmeeuwen at kolabsys.com>",
> causing de-synchronized state.
>

Also this is not really an inconsitent (though de-synchronized) state 
as the mailto address in the distrbution list and the actual 
contact-object's email addresses don't need to be the same. It's very 
well possible that you have a contact object containing i.e. only the 
private email, but for a distribution list you want the company email 
address.

I'm not arguing that there is no usecase in wanting to have the same 
email address in member (mailto) and the contact. I just think we create 
more problems than we solve by making the assumption that we can rely on 
the contacts email addresses for the distribution list.


I can see now where you're coming from though. If you want to have the 
distlist email address strictly linked to one of the contacts email 
addresses the additional mailto uri adds redundancy, and the possibility 
to a de-synchronized state. Note that my concept of that property was 
different so far, as already lined out.

If we really want to go that route I'd rather reference by UID, and 
have the imap uri as an additional/optional reference. I already lined 
out some of the problems we will have to solve using that approach, and 
at least for contact we will also need to change the implementation 
accordingly. Also we would have to change the UI accordingly to reflect 
that behavior (as it is not what we currently have in KAddressBook).

So it's IMO a rather big effort.

On that note, the difference of the two concepts is nicely illustrated 
by KAddressBook groups and the ones in Roundcube. While you have a 
simple distlist, not linked to the contact in KAddressBook you have a 
group of Contacts in Roundcube.

I still think the x-uid version is a valid option with fewer 
requirements, we just have to figure out what we actually want from a 
distlist.

> - A client not aware of the x-uid attribute, nor what it's value 
> means,
> has *no* chance in either of the aforementioned cases to refer back 
> to
> the contact object.
>

Yes, obviously. It also has not if it can't make use of an imap url.  
With the imap url you're completely lost and have a disfunctional 
distlist, while with mailto you have at least the distlist covered.

Cheers,
Christian

> Kind regards,
>
> Jeroen van Meeuwen




More information about the devel mailing list