summaryrefslogtreecommitdiff
path: root/NEWS
diff options
context:
space:
mode:
authorPatrick Ohly <patrick.ohly@intel.com>2012-12-07 17:09:40 +0100
committerPatrick Ohly <patrick.ohly@intel.com>2012-12-07 20:09:08 +0100
commitf1e7d922653649f3a3641ea0f8c7258b65b4ab12 (patch)
tree978f11b0105505842564acba3c43b6eb6c589c00 /NEWS
parent677f2efd185718730b506af0dd283f58623f0f81 (diff)
NEWS, PIM API + README: updated for 1.3.99.2
Diffstat (limited to 'NEWS')
-rw-r--r--NEWS208
1 files changed, 208 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index c585f76f..ddc5cfc8 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,211 @@
+SyncEvolution 1.3.99.2, xxxxxxxxxx
+==================================
+
+Another development snapshot. Includes all fixes that went into 1.3.2
+and several improvements to the PIM Manager. Documentation was updated
+and extended considerably. The pim-manager-api.txt now describes the
+abstract API while src/dbus/server/pim/README explains how
+SyncEvolution implements it.
+
+
+Details:
+
+* PIM Manager searches for a caller ID ('phone' search) in EDS
+ directly while folks still starts up. No unification is done of
+ these results. Intermediate results are replaced by the final ones
+ from folks once those are ready.
+
+* PIM Manager: allow configuration of session directories (part of FDO #55921)
+
+ Useful for moving the session directories to a temporary file system.
+ They are essentially just useful for debugging when used as part of
+ PIM Manager.
+
+ - "logdir" - a directory in which directories are created with
+ debug information about sync session
+ - "maxsessions" - number of sessions that are allowed to exist
+ after a sync (>= 0): 0 is special and means unlimited,
+ 1 for just the latest, etc.;
+ old sessions are pruned heuristically (for example,
+ keep sessions where something changed instead of
+ some where nothing changed), so there is no hard
+ guarantee that the last n sessions are present.
+
+* PIM Manager: write less data to disk (part of FDO #55921)
+
+ Avoid writing config file changes to disk by enabling a new
+ "ephemeral" mode for syncing via the PIM Manager. In this mode,
+ config file changes are not flushed resp. discarded directly.
+ This prevents writing to .ini files in ~/.config.
+
+ The "synthesis" binfile client files are still written, but they get
+ redirected into the session directory, which can (and should) be set
+ to a temp file system and get deleted again quickly.
+
+ Data dumps are turned off now in the configs created by the PIM
+ Manager.
+
+* syncevo-dbus-server: use syslog instead of standard output by default
+
+* syncevo-dbus-server: command line options for controlling
+ output and startup
+
+ -d, --duration=seconds/'unlimited' Shut down automatically
+ when idle for this duration (default 300 seconds)
+ -v, --verbosity=level Choose amount of output, 0 = no output,
+ 1 = errors, 2 = info, 3 = debug; default is 1.
+ -o, --stdout Enable printing to stdout (result of operations)
+ and stderr (errors/info/debug).
+ -s, --no-syslog Disable printing to syslog.
+ -p, --start-pim Activate the PIM Manager (= unified address book)
+ immediately.
+
+* PIM Manager: store set of active address books persistently (FDO #56334)
+
+ Together with storing the sort order persistently, this allows
+ restarting the daemon and have it create the same unified address book
+ again.
+
+* PIM Manager: remove colon from valid peer UID character set (FDO #56436)
+
+ Using the UID as part of file names gets more problematic when
+ allowing colons. Remove that character from the API and enforce
+ the format in the source code.
+
+* PIM Manager API: introduce contact ID and use it for reading
+
+ This makes it easier for a client to fully polulate its view with
+ contact data. Previously it could happen that due to concurrent
+ changes in the server, a client was returned data for the same
+ contact multiple times. A client had to detect that and re-issue
+ read requests.
+
+* PIM Manager API: optional ViewAgent.Quiescent() (FDO #56428)
+
+ The callback is guaranteed to be invoked once when a search has
+ finished sending its initial results, and not sooner. This makes it
+ possible to check whether the current data contains some contact or
+ not.
+
+* PIM Manager: limit number of search results (FDO #56142)
+
+ A 'limit' search term with a number as parameter (formatted as string)
+ can be added to a 'phone' or 'any-contains' search term to truncate the
+ search results after a certain number of contacts. Example:
+ Search([['any-contains', 'Joe'], ['limit', '10']])
+ => return the first 10 Joes.
+
+ As with any other search, the resulting view will be updated if
+ contact data changes.
+
+ The limit must not be changed in a RefineSearch(). A 'limit' term may
+ (but doesn't have to) be given. If it is given, its value must match
+ the value set when creating the search. This limitation simplifies the
+ implementation and its testing. The limitation could be removed if
+ there is sufficient demand.
+
+* PIM Manager: fix refining a search
+
+ Due to not mapping the local index in the view to the parent's index,
+ refining only worked in views where parent and child had the same
+ index for the contacts in the search view.
+
+* PIM Manager: fix starting when done via search
+
+ When the unified address book (= FullView) was not running yet at the
+ time when a client wanted to search it, the unified address book was
+ not started and thus the search never returned results.
+
+* PIM Manager: fix writing contact, support photo and notes
+
+ folks and EDS do not support writing properties in parallel
+ (https://bugzilla.gnome.org/show_bug.cgi?id=652659). Must serialize
+ setting of modified properties.
+
+* PIM Manager: fix incorrect contact removal signals in filtered view
+
+ The filtered view did not check whether a parent's removed contact was
+ really part of the view before sending a removal signal for it.
+
+* D-Bus: missing out parameters in D-Bus introspection XML (FDO #57292)
+
+ The problem was in the C++ D-Bus binding. If the method that gets bound
+ to D-Bus returns a value, that value was ignored in the signature:
+ int foo() => no out parameter
+
+ It works when the method was declared as having a retval:
+ void foo (int &result) => integer out parameter
+
+ This problem existed for both the libdbus and the GIO D-Bus
+ bindings. In SyncEvolution it affected methods like GetVersions().
+
+* PIM Manager performance: pre-compute normalized telephone numbers
+
+ Looking up by phone number spends most of its cycles in normalizing of
+ the phone numbers in the unified address book. Instead of doing that
+ work over and over again during the search, do it once while loading.
+
+ Looking up a phone number only once does not gain from this change, it
+ even gets slower (more memory intensive, less cache locality). Only
+ searching multiple times becomes faster.
+
+ Ultimately it would be best to store the normalized strings together
+ with the telephone number inside EDS when the contact gets
+ created. Work on that is in progress.
+
+* PIM Manager: improve performance of FullView sorting
+
+ This fixes the hotspot during populating the FullView content: moving
+ contacts around required copying IndividualData and thus copying
+ complex C++ structs and strings. Storing pointers and moving those
+ avoids that, with no lack of convenience thanks to boost::ptr_vector.
+
+ Reordering also becomes faster, because the intermediate copy only
+ needs to be of the pointers instead of the full content.
+
+* PIM Manager example: add benchmarking
+
+ The new "checkpoints" split up the whole script run into pieces which
+ are timed separately, with duration printed to stdout. In addition,
+ tools like "perf" can be started for the duration of one phase.
+
+* SyncML: workarounds for broken peers
+
+ Some peers have problems with meta data (CtCap, old Nokia phones) and
+ the sync mode extensions required for advertising the restart
+ capability (Oracle Beehive).
+
+ Because the problem occurs when SyncEvolution contacts the peers
+ before it gets the device information from the peer, dynamic rules
+ based on the peer identifiers cannot be used. Instead the local config
+ must already disable these extra features in advance.
+
+ The "SyncMLVersion" property gets extended for this. Instead of just
+ "SyncMLVersion = 1.0" (as before) it now becomes possible to say
+ "SyncMLVersion = 1.0, noctcap, norestart".
+
+ "noctcap" disables sending CtCap. "norestart" disables the sync mode
+ extensions and thus doing multiple sync cycles in the same session
+ (used between SyncEvolution instances in some cases to get client and
+ server into sync in one session).
+
+ Both keywords are case-insensitive. There's no error checking for
+ typos, so beware!
+
+ The "SyncMLVersion" property was chosen because it was already in use
+ for configuring SyncML compatibility aspects and adding a new property
+ would have been harder.
+
+* EDS: fix creating databases
+
+ --create-database was broken in combination with the final code in EDS
+ 3.6 because it passed NULL for the UID to e_source_new_with_uid(),
+ which is considered an error by the implementation of that
+ method. Must use e_source_new() if we don't have a UID.
+
+* fixed some memory leaks, extended tests to cover new features and bugs
+
+
SyncEvolution 1.3.99.1, 25.10.2012
==================================