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