After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 651970 - ecal item semantic
ecal item semantic
Status: RESOLVED FIXED
Product: evolution-data-server
Classification: Platform
Component: Calendar
unspecified
Other Linux
: Normal normal
: ---
Assigned To: evolution-calendar-maintainers
Evolution QA team
Depends on:
Blocks:
 
 
Reported: 2011-06-06 06:15 UTC by Patrick Ohly
Modified: 2011-08-22 13:47 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
calendar file backend: support removing parent event with CALOBJ_MOD_THIS (9.83 KB, patch)
2011-06-06 06:16 UTC, Patrick Ohly
accepted-commit_now Details | Review
libecal: added CALOBJ_MOD_ONLY_THIS (5.85 KB, patch)
2011-06-06 06:16 UTC, Patrick Ohly
accepted-commit_now Details | Review
catch invalid CalObjModType values (2.15 KB, patch)
2011-06-06 06:17 UTC, Patrick Ohly
accepted-commit_now Details | Review
calendar file backend: white list check for supported CalObjModType (2.36 KB, patch)
2011-06-06 06:18 UTC, Patrick Ohly
accepted-commit_now Details | Review
calendar file backend: removal notification for detached recurrence, part 1 (6.59 KB, patch)
2011-06-06 06:18 UTC, Patrick Ohly
accepted-commit_now Details | Review
calendar file backend: removal notification for detached recurrence, part 2 (1.74 KB, patch)
2011-06-06 06:19 UTC, Patrick Ohly
accepted-commit_now Details | Review
calendar file backend: support remove with CALOBJ_MOD_ONLY_THIS (4.32 KB, patch)
2011-06-06 06:21 UTC, Patrick Ohly
accepted-commit_now Details | Review
calendar: include rid in "objects-removed" ECalView signal (3.99 KB, patch)
2011-06-06 06:22 UTC, Patrick Ohly
accepted-commit_now Details | Review

Description Patrick Ohly 2011-06-06 06:15:08 UTC
Traditionally, libecal has implemented parts of the semantic typically
associated with a UI: for example, it implements "ensure that a
recurring event does not occur at this point in time, no matter what it
takes to achieve that". I consider this a high-level API.

The low-level API would be "remove/add/modify this VEVENT". The libecal
API *looks* like it supports that and according to our previous
discussion is meant to (see the comments about
e_cal_remove_object_with_mod()), but the actual implementation differs.

This is a problem for sync operations, where that semantic is
implemented elsewhere and the calendar storage has to mirror the
operations done there (CalDAV/SyncML server in SyncEvolution; KCal in
the MeeGo architecture).

Therefore this patch series adds the missing operations. Please have a look at
the attached patch series. They were tested with the gnome-2-32 branch. Except
for the very last one, all apply to "master". Does this look okay? May I submit
to "master" (after fixing the last patch), gnome-3-0 and gnome-2-32?
Comment 1 Patrick Ohly 2011-06-06 06:16:00 UTC
Created attachment 189291 [details] [review]
calendar file backend: support removing parent event with CALOBJ_MOD_THIS
Comment 2 Patrick Ohly 2011-06-06 06:16:48 UTC
Created attachment 189292 [details] [review]
libecal: added CALOBJ_MOD_ONLY_THIS
Comment 3 Patrick Ohly 2011-06-06 06:17:34 UTC
Created attachment 189293 [details] [review]
catch invalid CalObjModType values
Comment 4 Patrick Ohly 2011-06-06 06:18:05 UTC
Created attachment 189294 [details] [review]
calendar file backend: white list check for supported CalObjModType
Comment 5 Patrick Ohly 2011-06-06 06:18:46 UTC
Created attachment 189295 [details] [review]
calendar file backend: removal notification for detached recurrence, part 1
Comment 6 Patrick Ohly 2011-06-06 06:19:15 UTC
Created attachment 189296 [details] [review]
calendar file backend: removal notification for detached recurrence, part 2
Comment 7 Patrick Ohly 2011-06-06 06:21:38 UTC
Created attachment 189297 [details] [review]
calendar file backend: support remove with CALOBJ_MOD_ONLY_THIS
Comment 8 Patrick Ohly 2011-06-06 06:22:38 UTC
Created attachment 189298 [details] [review]
calendar: include rid in "objects-removed" ECalView signal

Needs to be reworked to apply to master. Currently only applies to gnome-2-32 branch.
Comment 9 Chenthill P 2011-06-06 09:57:11 UTC
Review of attachment 189291 [details] [review]:

Patch looks good. Please commit it to master and stable branches (gnome-3-0 and gnome-2-32 if needed).
Comment 10 Chenthill P 2011-06-06 10:40:13 UTC
Review of attachment 189292 [details] [review]:

I like the documentation parts. But I do not understand why MOD_ONLY_THIS would be needed at all.. The backends can always check if the master object exists and ensure an EX-DATE is set isn it? which would be better.
Comment 11 Chenthill P 2011-06-06 10:56:20 UTC
Review of attachment 189293 [details] [review]:

Looks good. please commit to master and stable branches.
Comment 12 Chenthill P 2011-06-06 10:58:39 UTC
Review of attachment 189298 [details] [review]:

looks good. please commit the patch to master and stable branches.
Comment 13 Chenthill P 2011-06-06 11:23:29 UTC
(In reply to comment #10)
> Review of attachment 189292 [details] [review]:
> 
> I like the documentation parts. But I do not understand why MOD_ONLY_THIS would
> be needed at all.. The backends can always check if the master object exists
> and ensure an EX-DATE is set isn it? which would be better.

I can now understand the intention for this after looking at all patches. I want to know how it would help the client, to avoid regenerating the instances from the master object ?
Comment 14 Patrick Ohly 2011-06-07 07:32:16 UTC
Review of attachment 189292 [details] [review]:

MOD_ONLY_THIS is needed in those cases where "ensuring an EX-DATE is set" is *not* what the client wants. Evolution always wants the traditional semantic (add EXDATE), but SyncEvolution and KCal-EDS don't.
Comment 15 Chenthill P 2011-06-07 07:51:17 UTC
Review of attachment 189292 [details] [review]:

After the irc discussion, i can understand the use case. Please commit the patches to master and stable branches. It is useful for a case like undo.
Though it adds an additional flag, i think it wont affect the behavior of the old clients. Please commit the patches to master and stable branches.
Comment 16 Patrick Ohly 2011-06-07 10:09:27 UTC
(In reply to comment #15)
> After the irc discussion, i can understand the use case. Please commit the
> patches to master and stable branches.

Done. Applying it to all branches (master, gnome-3-0, gnome-2-32) wasn't easy because they have diverged. I already had to correct one mistake on the gnome-3-0 branch. Please scream, eh, point out polite when I broke something.

I'll keep this open until we have confirmed that it is all properly done.
Comment 17 Milan Crha 2011-08-22 13:47:04 UTC
(In reply to comment #16)
> I'll keep this open until we have confirmed that it is all properly done.

I would go the other way, reopen if it have regressions, because people tend to forget of bugs.