Add NEWS entry about support to switch primary store
[platform/upstream/folks.git] / NEWS
1 Overview of changes from libfolks 0.4.0 to libfolks 0.5.0
2 =========================================================
3
4 Major changes:
5 * Add support to change primary (writeable) store either via
6   GConf or an env variable (bug 645441).
7
8 Bugs fixed:
9 * Bug 644968 - _update_phone_numbers() needs to create copies
10   of each List<FieldDetails>
11 * Bug 644966 - _update_emails () needs to create copies of each
12   List<FieldDetails>
13 * Bug 644527 - Add a Tracker backend
14 * Bug 645430 - folks-inspect: Use LinkedHashSet to access im-addresses
15 * Bug 645411 - folks-import segfaults on startup
16 * Crasher when removing Personas
17 * Crasher when reconnecting a Telepathy account
18 * Bug 645680 — Use random integer IDs for Kf.Personas
19 * Bug 645475 — Linker warnings for Tracker backend tests
20 * Bug 645570 — Fix checks for empty and equal StructuredNames
21 * Bug 645989 — Ensure add_persona_from_details handles the basic attribute
22 * Bug 645413 — Write support for Tracker
23 * Bug 645441 — Mechanism to specify primary backend
24
25 API changes:
26 * Add equal () to StructuredName
27 * Add detail_key () along with an enum PersonaDetail to PersonaStore
28   which together define the basic attributes that should be supported
29   by add_persona_from_details ().
30 * Add public primary_store to IndividualAggregator
31
32 Overview of changes from libfolks 0.3.6 to libfolks 0.4.0
33 =========================================================
34
35 Bugs fixed:
36 * Bug 642351 — BACKEND_STORE_KEY_FILE format should support a wildcard entry
37 * Bug 643241 — _update_urls () needs to create copies of each
38   List<FieldDetails>
39 * Bug 643247 — Folks needs C API documentation
40 * Bug 643201 — folks-inspect can't handle properties which are
41   List<FieldDetails>
42 * Bug 642866 — tp-lowlevel leaks TpChannel
43 * Bug 642861 — FolksLinkedHashSet still alive when exiting Empathy
44 * Bug 642493 — Folks needs API for specifying a contact's organisation
45 * Bug 642500 — Folks needs API for specifying a contact's birthday
46 * Bug 642501 — Folks needs API for attaching notes to a Contact
47 * Bug 641210 — Add interface for postal addresses
48 * Bug 643956 — Use the correct signal name for postal addresses
49 * Bug 643954 — Add to_string () to PostalAddress class
50 * Bug 643955 — Add to_string () to RoleOwner class
51 * Bug 643957 — Deal handle birthday and postal-addresses.
52 * Bug 644457 — Handle structured names
53 * Bug 644165 — An individual's avatar shouldn't be replaced by a null avatar
54
55 API changes:
56 * Add RoleDetails interface
57 * Add BirthdayDetails interface
58 * Add NoteDetails interface
59 * Add PostalAddressDetails interface
60 * Rename Aliasable -> AliasDetails
61 * Rename AvatarOwner -> AvatarDetails
62 * Rename Emailable -> EmailDetails
63 * Rename Favouritable -> FavouriteDetails
64 * Rename GenderOwner -> GenderDetails
65 * Rename Groupable -> GroupDetails
66 * Rename IMable -> ImDetails
67 * Rename NameOwner -> NameDetails
68 * Rename Phoneable -> PhoneDetails
69 * Rename PresenceOwner -> PresenceDetails
70 * Rename Urlable -> UrlDetails
71
72 Overview of changes from libfolks 0.3.5 to libfolks 0.3.6
73 =========================================================
74
75 This is just a repackaging of libfolks 0.3.5 with some documentation comment
76 version numbers fixed.
77
78 Overview of changes from libfolks 0.3.4 to libfolks 0.3.5
79 =========================================================
80
81 Major changes:
82 * Various API breaks and improvements, especially in the IndividualAggregator
83 * Add various new interfaces: NameOwner, FieldDetails, Urlable, GenderOwner,
84   Phoneable and Emailable
85
86 API changes:
87 * Add NameOwner interface
88 * Add FieldDetails interface
89 * Add Urlable interface
90 * Add GenderOwner interface
91 * Add Phoneable interface
92 * Add Emailable interface
93 * Add Tpf.Persona.is_in_contact_list
94 * Rename the URLable interface to Urlable
95 * Take a PersonaStore in IndividualAggregator.add_persona_from_details
96 * Remove IndividualAggregatorError.STORE_NOT_FOUND
97 * Rename the getter for BackendStore.enabled_backends from
98   folks_backend_store_get_enabled_backends() to
99   folks_backend_store_dup_enabled_backends()
100 * Rename BackendStore.get_backend_by_name() to .dup_backend_by_name()
101
102 Bugs fixed:
103 * Bug 640901 — Allow it to be determined whether a user Tpf.Persona is in the
104   contact list
105 * Bug 641780 — Incorrect C function names for URLable interface
106 * Bug 629078 — Folks needs a full API review to take advantage of our
107   compatibility break in 0.2.x
108 * Bug 642036 — No way to pass a message when adding a contact
109
110 Overview of changes from libfolks 0.3.3 to libfolks 0.3.4
111 =========================================================
112
113 Major changes:
114 * Add folks-inspect tool
115 * The use of the new LinkedHashSet type in the API may make libgee a requirement
116   for some clients (to take full advantage of its class lineage).
117
118 API changes:
119 * New type: LinkedHashSet, similar to Gee.HashSet, but ordered.
120 * IMable.im_addresses is now a mapping of string to LinkedHashSet.
121 * Rename the HasAvatar interface to AvatarOwner
122 * Rename the HasPresence interface to PresenceOwner
123
124 Bugs fixed:
125 * Bug 637240 — libfolks-telepathy.so exports private symbols
126 * Bug 638311 — Add a HACKING file that outlines development policies and
127   coding style
128 * Bug 629083 — Review coding conventions in folks
129 * Bug 629075 — Add folks command line application
130 * Bug 638609 — libfolks hard-codes backend names for debugging
131 * Bug 639195 — Print stack traces for failed tests to improve remote
132   debugging
133 * Bug 639113 — Add static aggregation tests
134 * Bug 639742 — Logger service unavailable in make check
135 * Bug 640213 — Add tests for LinkedHashSet
136 * Bug 627397 — Use better interface names
137
138 Overview of changes from libfolks 0.3.2 to libfolks 0.3.3
139 =========================================================
140
141 Major changes:
142 * Fix some minor leaks
143 * Add support for building gtk-doc documentation for the C API
144 * Fix some related documentation problems
145 * Fix some Vala problems caused by differences between Vala 0.10 and 0.12
146 * Finish off renaming interfaces (this is an API break; see below)
147 * Don't trust personas from IRC
148 * Handle invalid IM addresses more gracefully than with an assertion failure
149 * Fix a linking problem with the user's individual when going offline which
150   could lead to infinite loops
151
152 API changes:
153 * Rename the Avatar interface to HasAvatar
154 * Rename the Presence interface to HasPresence
155 * Rename the Favourite interface to Favouritable
156 * Add IMableError
157 * Throw IMableError from IMable.normalise_im_address()
158
159 Bugs fixed:
160 * Bug 635178 — Leak in
161   folks_tp_lowlevel_connection_open_contact_list_channel_async
162 * Bug 635649 — autopoint fails to run
163 * Bug 635703 — Leak in connection_get_requestable_channel_classes_cb
164 * Bug 635823 — [PATCH] telepathy test not linking against GIO
165 * Bug 636251 — Fails to add contact
166 * Bug 629526 — Generate gtk-doc documentation
167 * Bug 627397 — Use better interface names
168 * Bug 636714 — Assertion failure on invalid IM address
169 * Bug 637136 — Infinite loop when disconnecting accounts
170
171 Overview of changes from libfolks 0.3.1 to libfolks 0.3.2
172 ==========================================================
173
174 Major changes:
175 * BackendStore.load_backends() now (un)loads backends which have been
176   (dis|en)abled since the last call
177 * FOLKS_BACKEND_DIR has been replaced by FOLKS_BACKEND_PATH. It accepts any
178   number of files and directories, separated by :
179 * Significantly clean up the build system
180
181 API changes:
182 * Added BackendStore.prepare() and BackendStore::is-prepared
183 * Add BackendStore.enable_backend().
184 * Add BackendStore.disable_backend().
185 * Add BackendStore.unprepare().
186 * Remove casting convenience methods on Individual (casting isn't hard)
187 * Change the visibility of the setters of PersonaStore.type_id,
188   PersonaStore.display_name, PersonaStore.id, Backend.name,
189   Backend.persona_stores and Persona.linkable_properties. This removes the
190   corresponding C setter methods which should never have been exposed
191 * Remove Tpf.PersonaError
192 * Remove the exception from the Tpf.Persona constructor
193
194 Bugs fixed:
195 * Bug 629081 — Add API to allow specific backends to be disabled
196 * Bug 629862 — Add tests for the key-file backend
197 * Bug 628883 — Add localisation support
198 * Bug 633718 — Make the Folks releases buildable without vala, valadoc, or
199   g-i
200 * Bug 633080 — Crash when disconnecting twice
201
202 Overview of changes from libfolks 0.3.0 to libfolks 0.3.1
203 ==========================================================
204
205 Major changes:
206 * Tpf.Persona.contact is now guaranteed to have the client type feature
207
208 API changes:
209 * Add the PersonaStore:can-add-personas property
210 * Add the PersonaStore:can-remove-personas property
211 * Add the PersonaStore:can-alias-personas property
212 * Add the PersonaStore:can-group-personas property
213 * Make Individual implement the IMable interface
214
215 Bugs fixed:
216 * Bug 630431 — notify::alias is never emitted
217 * Bug 631864 — Crash when empathy disconnects
218 * Bug 632096 — build failure: contact-retrieval.o: undefined reference to
219   symbol 'gee_abstract_collection_add'
220 * Bug 632163 — Folks key-file backend needs a way to point to a specific
221   .ini file
222 * Bug 632564 — assertion `EMPATHY_IS_CONTACT (contact)' failed in
223   individual_store_contact_sort
224
225 Overview of changes from libfolks 0.1.17 to libfolks 0.3.0
226 ==========================================================
227
228 Major changes:
229 * Fixed some linking problems
230 * Added some missing documentation
231 * Fixed build problems introduced by switching to gobject-introspection 0.9.6
232   (i.e. GIR format 1.2)
233 * Bumped telepathy-glib dependency to 0.11.16
234 * Bumped Vala dependency to 0.10.0
235 * Bumped gobject-introspection dependency to 0.9.6
236 * Ensured IM addresses are normalised before being compared
237 * Made the folks-import build optional through a configure argument
238 * Added support for a “self” individual
239 * Added support for generating and installing Devhelp format documentation
240 * BackendStore.load_backends and the prepare() functions are now idempotent
241 * Tpf.Persona.contact is now guaranteed to have the avatar token and data
242   features
243 * Tpf.Persona.contact is now guaranteed to have the capabilities feature
244
245 API changes:
246 * Added IMable.normalise_im_address()
247 * Renamed Groups interface to Groupable
248 * Renamed Alias interface to Aliasable
249 * Removed BackendStore constructor
250 * Added BackendStore.dup()
251 * Added BackendStore::enabled-backends
252 * Added Individual::is-user
253 * Added Persona::is-user
254 * Added IndividualAggregator::user
255 * Added PersonaStoreError.UNSUPPORTED_ON_USER
256 * Added {IndividualAggregator, PersonaStoreError}.STORE_OFFLINE, used by the
257   respective add_persona_from_details() functions
258
259 Bugs fixed:
260 * Bug 629452 — [Patch] Add missing gio linking for import-tool
261 * Bug 626008 — Add @since lines to all symbols
262 * Bug 629311 — Folks should normalize IDs written to the writable backend
263 * Bug 629644 — Key file backend cannot be loaded because of linking problems
264 * Bug 629666 — libfolks should not hard autodetect libxml
265 * Bug 628970 — Folks API needs a way to determine whether a specific type of
266   PersonaStore is available
267 * Bug 629096 — Add a library init function
268 * Bug 627402 — Support marking FolksPersonas as "me"
269 * Bug 629642 — individuals-changed emitted in the wrong order
270 * Bug 629643 — do not fall back to the id if alias is empty
271 * Bug 629006 — PersonaStore should gracefully handle offline Persona change
272   attempts
273 * Bug 629331 — BackendStore.load_backends and the prepare() functions should
274   be idempotent.
275 * Bug 629008 — Add a test for Persona additions
276 * Bug 630347 — Avatars are always NULL
277
278 Overview of changes from libfolks 0.1.16 to libfolks 0.1.17
279 ===========================================================
280
281 Major changes:
282 * Added a basic test suite
283 * Cleaned up the build system
284 * Ensured the public libraries' VAPI files are distributed and installed
285 * Prevented the key-file from being saved unnecessarily
286 * Fixed multi-byte character handling in the key-file backend
287 * Ensured account removal and invalidation is handled in the Telepathy backend
288 * Prevented a hang when creating relationships.ini in certain situations
289 * Added a folks-import tool to import meta-contact data from Pidgin; this adds
290   a dependency on libxml
291
292 API changes:
293 * Added PersonaStore.flush()
294
295 Bugs fixed:
296 * Bug 628930 — folks crahses empathy on relationships.ini read
297 * Bug 629082 — Empathy crashes when toggling "Ignore SSL certificate errors"
298   checkbox
299 * Bug 628853 — hangs if there's no relationships.ini file
300 * Bug 629084 — Add a folks-import tool
301
302 Overview of changes from libfolks 0.1.15 to libfolks 0.1.16
303 ===========================================================
304
305 Major changes:
306 * Added more debugging output
307 * Fixed various small outputted code bugs
308 * Fixed problem where key file groups would be overwritten in some situations
309 * Fixed various signal emission problems
310 * Prevented changes to Personas' properties from being propagated back up to the
311   Individuals
312 * Limited libgee dependency to < 0.7 due to API changes in libgee
313 * Added a FOLKS_DISABLE_LINKING environment variable to disable linking (for
314   debugging purposes)
315
316 Bugs fixed:
317 * Bug 628108 — Favorite contacts are not save any more
318 * Bug 628294 — Some contacts appear to be linked together while they shouldn't
319 * Bug 628305 — Signal removal of Individuals containing untrusted Personas
320 * Bug 628131 — error message when trying to link ICQ with jabber
321 * Bug 628343 — Add an environment variable to disable linking
322 * Bug 628335 — Assertion error with master
323
324 Overview of changes from libfolks 0.1.14.1 to libfolks 0.1.15
325 =============================================================
326
327 Major changes:
328 * Fixed various build problems
329 * Ensured duplicate entries don't appear in various sets
330 * Made gobject-introspection dependency explicit
331 * Limited libgee dependency to <= 0.5.2 due to API changes in libgee
332 * Reworked some of the Individual internals to make notifications more efficient
333 * Added the concept of an Individual's “trust level”
334 * Changed alias fallbacks to fall back to a display ID instead of a UID
335 * Added support for storing aliases in the key-file backend and use them in
336   preference to aliases from other Personas in an Individual
337
338 API changes:
339 * Added Individual:personas-changed
340 * Added TrustLevel enum
341 * Added Individual::trust-level
342 * Implemented Alias on Kf.Persona
343
344 Bugs fixed:
345 * Bug 627314 — folks cannot be install in gentoo sandbox
346 * Bug 627506 — Require gobject-introspection
347 * Bug 626725 — Add an Individual.personas_changed signal
348 * Bug 627968 — Add Individual.trust_level property
349 * Bug 626578 — Use vala's vala.m4 to check for telepathy-glib(.vapi)
350 * Bug 626410 — contacts show up with a weird alias
351 * Bug 627508 — Store alias and groups in the key-file backend
352 * Bug 627898 — Fails to install with -j4
353
354 Overview of changes from libfolks 0.1.14 to libfolks 0.1.14.1
355 =============================================================
356
357 Major changes:
358 * Bumped Vala dependency to 0.9.6
359 * Fixed some more warning spew
360
361 Overview of changes from libfolks 0.1.13 to libfolks 0.1.14
362 ===========================================================
363
364 Major changes:
365 * Changed Vala detection code to use the correct macro
366 * Bumped Vala dependency to 0.9.5
367 * Removed some more message spew
368 * Changed tp-lowlevel Vala bindings to be generated using gobject-introspection
369 * Added optional dependency on gobject-introspection 0.6.7
370
371 Overview of changes from libfolks 0.1.12 to libfolks 0.1.13
372 ===========================================================
373
374 Major changes:
375 * Added the concept of “linkable properties”
376 * Added the IMable interface
377 * Added the concept of persona store “trust”
378 * Added a writeable key-file backend
379 * Added linking support to the IndividualAggregator
380 * Tidied up ID handling in the backends
381 * Warn if a backend's MIME type could not be determined, notifying the user if
382   libfolks can't load backends due to shared-mime-info not being installed
383 * Hint to clients the Individual replacing a removed Individual (if any)
384 * Exposed Telepathy contacts' IM addresses using the IMable interface
385 * Fixed some build and dependency issues
386 * Bumped telepathy-glib dependency to 0.11.11 and dropped dependency on
387   telepathy-vala
388 * Added the concept of “writeable” PersonaStores and use this concept to prevent
389   properties being synchronised between PersonaStores unnecessarily (and
390   potentially even destructively)
391
392 API changes:
393 * Added Persona::linkable-properties
394 * Added IMable interface
395 * Added PersonaStoreTrust enum
396 * Added PersonaStore::trust-level
397 * Added Persona.LinkablePropertyCallback()
398 * Added Persona.linkable_property_to_links()
399 * Added Persona.build_uid()
400 * Added Persona.split_uid()
401 * Added Persona::display-id
402 * Added PersonaStore::display-name
403 * Added replacement_individual parameter to Individual:removed
404 * Implemented IMable on Tpf.Persona
405 * Added IndividualAggregatorError.NO_WRITEABLE_STORE
406 * Added IndividualAggregator.link_personas()
407 * Added IndividualAggregator.unlink_individual()
408 * Added PersonaStore::is-writeable
409
410 Bugs fixed:
411 * Bug 625830 — Adding an existing contact to the tp backend results in bogus
412   warnings
413 * Bug 626108 — Defining XDG_DATA_DIRS prevents backends from being loaded
414
415 Overview of changes from libfolks 0.1.11 to libfolks 0.1.12
416 ===========================================================
417
418 Major changes:
419 * Added debug flags support using the FOLKS_DEBUG environment variable
420 * Removed various bits of message and warning spew
421 * Bumped Vala dependency to 0.9.4
422 * Ensured connections which are ready as soon as they're connected are handled
423   correctly
424 * Versioned the installed backends using the main library's libtool version
425
426 Bugs fixed:
427 * Bug 625815 — No contat showed in the contact list
428
429 Overview of changes from libfolks 0.1.10 to libfolks 0.1.11
430 ===========================================================
431
432 Major changes:
433 * Moved various bits of preparation code out into async prepare() methods to
434   avoid race conditions on startup
435 * Reset TpfPersonaStore state when going offline
436 * Made several methods async which could potentially require it in future
437 * Added error throws to various functions which could potentially fail in future
438
439 API changes:
440 * Added PersonaStore.prepare()
441 * Added Backend.prepare()
442 * Removed error thrown from Backend constructor
443 * Added IndividualAggregator.prepare()
444 * Changed return type of Presence.is_online() from uint to int
445 * Made IndividualAggregator.remove_individual() async
446 * Made PersonaStore.remove_persona() async
447 * Added an error throw to BackendStore.load_backends()
448 * Added an error throw to IndividualAggregator.prepare()
449 * Added an error throw to IndividualAggregator.remove_individual()
450 * Added an error throw to IndividualAggregator.remove_persona()
451 * Added an error throw to PersonaStore.remove_persona()
452 * Made Groups.change_group() async
453 * Made Groups:group-changed async
454
455 Overview of changes from libfolks 0.1.9 to libfolks 0.1.10
456 ==========================================================
457
458 Major changes:
459 * Fixed various memory and reference leaks
460 * Lots of build system improvements
461 * Added a libtool version to the installed libraries
462
463 Initial release of libfolks 0.1.9
464 =================================
465
466 Major changes:
467 * Move to GNOME infrastructure