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