fff5174bc4bd7cc8e85909a8ae884f8636de8254
[platform/upstream/folks.git] / NEWS
1 Overview of changes from libfolks 0.6.2.1 to libfolks 0.6.3
2 ===========================================================
3
4 Bugs fixed:
5 * Bug 658631 — crash at empathy startup
6 * Bug 658331 — Ensure read-only PersonaStores have empty writeable-properties
7 * Bug 658874 — Typo?
8 * Bug 658730 — ngettext (Plural forms) needed for
9   "Imported %u buddies from '%s'."
10 * Bug 633781 — Allow to set avatar on individuals
11 * Bug 657142 — Automatically link e-d-s contacts with their contacts from
12   telepathy
13 * Bug 658002 — defective typelib
14 * Bug 657065 — Cache keeps around contacts from disabled accounts
15 * Bug 658323 — Deprecate FOLKS_WRITEABLE_STORE in favour of FOLKS_PRIMARY_STORE
16 * Bug 659095 — Don't distribute typelib file
17 * Bug 659128 — If a persona store goes away we don't remove its personas
18 * Bug 657141 — Backend should ask eds for the default backend, not hardcode it
19 * Bug 658531 — Sometimes avatar caching doesn't work
20 * Bug 658328 — Return PropertyError.NOT_WRITEABLE from Persona property setters
21   as appropriate
22 * Bug 646847 — We should rename _update () in Trf.Persona to something more less
23   misleading
24 * Bug 658161 — Consistently use “contact” in translatable strings instead of
25   “persona”
26 * Bug 657738 — Favorite people are not always displayed
27 * Bug 653623 — Would like a set of standard "type" parameters for UrlDetails
28
29 API changes:
30 * Individual.avatar is now settable using Individual.change_avatar() (not new
31   API, but it no longer always returns an error)
32 * We now use the FOLKS_PRIMARY_STORE env var instead of FOLKS_WRITEABLE_STORE
33   to configure the primary store
34 * Deprecate Folks.PersonaStore.is_writeable
35 * Add Folks.PersonaStore.is_primary_store
36 * Add Folks.IndividualAggregatorError.NO_PRIMARY_STORE
37 * In IndividualAggregator.ensure_individual_property_writeable we now throw
38   NO_PRIMARY_STORE instead of NO_WRITEABLE_STORE
39 * Add Folks.PersonaStore.user_set_default
40 * Add AbstractFieldDetails.PARAM_TYPE, .PARAM_TYPE_HOME, .PARAM_TYPE_WORK,
41   .PARAM_TYPE_OTHER
42 * Add UrlFieldDetails.PARAM_TYPE_HOME_PAGE, .PARAM_TYPE_BLOG,
43   .PARAM_TYPE_PROFILE, .PARAM_TYPE_FTP
44
45 Overview of changes from libfolks 0.6.2 to libfolks 0.6.2.1
46 ===========================================================
47
48 Bugs fixed:
49 * Bug 658580 — Assertion in gee_hash_map_node_iterator_next with folks 0.6.2
50
51 Overview of changes from libfolks 0.6.1 to libfolks 0.6.2
52 =========================================================
53
54 Bugs fixed:
55 * Bug 645056 — TpLowlevel library should have only static public functions
56 * Bug 653777 — Would be nice to have a helper function to create a writable
57   persona
58 * Bug 657635 — Linking personas from different (e-d-s) stores is not working
59 * Bug 657510 — Add asynchronous property setter methods
60 * Bug 656184 — Add is-quiescent property
61 * Bug 657971 — Need BirthdayDetails support in eds backend
62 * Bug 657789 — Don't claim uneditable eds fields as writable
63 * Bug 657282 — Add an IndividualAggregator.individuals_changed_detailed signal
64 * Bug 657969 — Support RoleDetails in eds backend
65 * Bug 657783 — Prefer data from primary store when picking Individual values
66 * Bug 658411 — Only emit notifications for linkable properties if they've
67   actually changed
68 * Bug 656689 — Re-link personas on linkable properties being changed
69
70 API changes:
71 * Add PersonaStore:always-writeable-properties property
72 * Add IndividualAggregatorError.PROPERTY_NOT_WRITEABLE error
73 * Add IndividualAggregator.ensure_individual_property_writeable()
74 * Add Folks.PropertyError
75 * Add *Details.change_*() virtual methods
76 * Add IndividualAggregator:is-quiescent, Backend:is-quiescent and
77   PersonaStore:is-quiescent
78 * Add PersonaDetail.GROUPS and PersonaDetail.INVALID
79 * Add IndividualAggregator.individuals_changed_detailed and deprecate
80   IndividualAggregator.individuals_changed (but not remove or break it)
81
82 Overview of changes from libfolks 0.6.0 to libfolks 0.6.1
83 =========================================================
84
85 Bugs fixed:
86 * Bug 656659 — Use vcards for postal addresses
87 * Bug 655374 — Un-break avatar tests
88 * Bug 657067 — Can't build EDS backend using Vala master
89 * Bug 657332 — Add linking link-individuals
90
91 Overview of changes from libfolks 0.5.2 to libfolks 0.6.0
92 =========================================================
93
94 Bugs fixed:
95 * Bug 649925 — expose SocialWebClient.Contact in Swf.Persona
96 * Bug 646244 — Incomplete logic to handle attribute updates in Folks.Individual
97 * Bug 652463 — Tidy up CLEANFILES
98 * Bug 652434 — Add ability to run any tests through gdb
99 * Bug 648071 — Add support for presence status from Telepathy
100 * Bug 652472 — Handle failure in getting the logger service better
101 * Bug 629716 — Migrate Folks to GDBus
102 * Bug 652660 — Make Individual.id more stable and well-defined
103 * Bug 652449 — Folks.Individual's property getters should be read only
104 * Bug 653325 — Build system does not complain if trying to build docs without
105   vala-doc installed
106 * Bug 653746 — mismatch between hash and equals in Note
107 * Bug 638281 — Add an EDS backend
108 * Bug 654509 — Folks master not building
109 * Bug 652048 — Make nickname writable
110 * Bug 652425 — Failure codes for removing personas needed in PersonaStoreError
111 * Bug 645549 — Add a way to get the individual from a persona
112 * Bug 650422 — Add API for easily checking whether details are writeable
113 * Bug 655019 — Don't notify twice for nickname changes
114 * Bug 650414 — Need better APIs to handle image data
115 * Bug 652643 — Add PersonaStore cache
116 * Bug 655510 — Make truly-writeable *Details property setters public
117 * Bug 654907 — The writable store shouldn't be set by type_id
118 * Bug 655745 — Implement read/write support for gender property
119 * Bug 649296 — Folks backend files shouldn't begin with "lib"
120 * Bug 652657 — Allow writing to properties of all personas
121 * Bug 655008 — Tidy up error handling in eds backend
122 * Bug 653619 — Add company details
123 * Bug 653679 — Change PostalAddressDetails.postal_addresses to support
124   vCard-like arbitrary parameters
125 * Bug 653680 — Change ImDetails.im_addresses to support vCard-like arbitrary
126   parameters
127 * Bug 655917 — Rebase EmailDetails.email_addresses upon an
128   AbstractFieldDetails-derived class
129 * Bug 655374 — Un-break avatar tests
130 * Bug 655919 — Rebase NoteDetails.notes upon an AbstractFieldDetails-derived
131   class
132 * Bug 655920 — Rebase PhoneDetails.numbers upon an AbstractFieldDetails-derived
133   class
134 * Bug 653682 — Change WebServiceDetails.web_service_addresses to support
135   vCard-like arbitrary parameters
136 * Bug 655921 — Change RoleDetails.roles to support vCard-like arbitrary
137   parameters
138 * Bug 655922 — Rebase UrlDetails.urls upon an AbstractFieldDetails-derived class
139 * Bug 648818 — Support the EDS backend being a primary
140 * Bug 655609 — Implement setter for URLs
141
142 API changes:
143 * Swf.Persona retains and exposes its libsocialweb Contact
144 * Add a PresenceDetails.presence_status property
145 * Make NameDetails.nickname settable
146 * Drop AliasDetails support from Trf.Persona
147 * Add PersonaStoreError.PERMISSION_DENIED and PersonaStoreError.REMOVE_FAILED
148 * Change the error domain of PersonaStore.remove_persona() from GLib.Error to
149   Folks.PersonaStoreError
150 * Add a Persona.individual property
151 * Add a Persona.writeable_properties property and implement it in all the
152   Persona subclasses
153 * Make BirthdayDetails.calendar_event_id nullable
154 * Make Folks.Utils public and add Gee structure equality functions
155 * AvatarDetails.avatar is now of type LoadableIcon?
156 * Add AvatarCache class
157 * Add ObjectCache class
158 * Remove leaked internal PotentialMatch.result_to_string() method
159 * Add RoleDetails:role property
160 * Rebase FieldDetails upon AbstractFieldDetails (requiring the use of the
161   equivalent AbstractFieldDetails functions in place of the FieldDetails ones).
162 * Add AbstractFieldDetails.equal() and hash() for better matching on structures
163   which will store derived objects.
164 * Add parameters as an optional argument for the FieldDetails constructor
165 * Use PostalAddressFieldDetails for PostalAddressDetails.postal_addresses
166 * Remove PostalAddress.types (obsoleted by PostalAddressFieldDetails.parameters)
167 * Add and use ImFieldDetails for ImDetails.im_addresses
168 * Add and use EmailFieldDetails for EmailFieldDetails.email_addresses
169 * Add and use NoteFieldDetails for NoteFieldDetails.notes
170 * Remove Note class (obsoleted by NoteFieldDetails)
171 * Add and use PhoneFieldDetails for PhoneFieldDetails.phone_numbers
172 * Remove all PhoneDetails functions (obsoleted by PhoneFieldDetails)
173 * Add and use WebServiceFieldDetails for
174   WebServiceFieldDetails.web_service_addresses
175 * Use RoleFieldDetails for RoleDetails.roles
176 * Use UrlFieldDetails for UrlDetails.urls
177
178 Overview of changes from libfolks 0.5.1 to libfolks 0.5.2
179 =========================================================
180
181 Bugs fixed:
182 * Bug 650067 — Tracker backend warns when setting a NULL avatar (ie, unsetting
183   the avatar)
184 * Bug 650268 — build failure: "--vapidir=.: command not found"
185
186 Overview of changes from libfolks 0.5.0 to libfolks 0.5.1
187 =========================================================
188
189 Bugs fixed:
190 * Bug 645388 — Group channels are leaked
191 * Bug 647562 — Don't crash on duplicate group channels
192 * Bug 647121 — Crash in individual_store_contact_sort at
193   empathy-individual-store.c line 1387
194 * Bug 645684 — Implement Iterator on LinkedHashSet
195 * Bug 640092 — Folks should minimize use of GLib.List (including its public API)
196 * Bug 648161 — Add GObject Introspection Support
197 * Bug 645186 — Make sure all connect() calls have appropriate disconnect() calls
198 * Bug 648533 — Add runtime debug signalling
199 * Bug 649790 — Vala uses the wrong includes
200 * Bug 649088 — Combining contacts doesn't work with german Umlauts
201
202 API changes:
203 * LinkedHashSet.list_iterator() is now disallowed (causes an assertion failure)
204 * LinkedHashSet.iterator() now returns a BidirIterator instead of just an
205   Iterator
206 * ImDetails.im_addresses is now of type MultiMap<string, string>
207 * WebServiceDetails.web_service_addresses is now of type
208   MultiMap<string, string>
209 * Removed LinkedHashSet in favour of Gee.HashSet
210 * Backend.persona_stores is now of type Map<string, PersonaStore>
211 * GroupDetails.groups is now of type Set<string>
212 * FieldDetails.parameters is now of type MultiMap<string, string>
213 * FieldDetails.get_parameter_values() now returns type Collection<string>
214 * FieldDetails.extend_parameters() now takes type MultiMap<string, string>
215 * PostalAddressDetails.postal_addresses is now of type Set<PostalAddress>
216 * EmailDetails.email_addresses is now of type Set<FieldDetails>
217 * PhoneDetails.phone_numbers is now of type Set<FieldDetails>
218 * UrlDetails.urls is now of type Set<FieldDetails>
219 * BackendStore.enabled_backends now has type Map<string, Backend>
220   - The corresponding C function folks_backend_store_dup_enabled_backends()
221     has been renamed folks_backend_store_get_enabled_backends(), and no longer
222     returns an owned variable.
223 * Individual.personas now has type Set<Persona>
224 * Individual.personas_changed now uses Set<Persona>-typed parameters
225 * PersonaStore.personas_changed now uses Set<Persona>-typed parameters
226 * IndividualAggregator.individuals_changed now uses
227   Set<Individual>-typed parameters
228 * IndividualAggregator.link_personas() now takes a Set<Persona>
229 * IndividualAggregator.get_all_potential_matches() now returns a
230   Map<Individual, Map<Individual, MatchResult>>
231 * IndividualAggregator.get_potential_matches() now returns a
232   Map<Individual, MatchResult>
233 * IndividualAggregator.individuals now has type Map<string, Individual>
234 * PersonaStore.personas now has type Map<string, Persona>
235 * LocalIdDetails.local_ids now has type Set<string>
236 * NoteDetails.notes now has type Set<Note>
237 * RoleDetails.roles now has type Set<Role>
238 * PotentialMatch.known_email_aliases now has type Set<string>
239 * PostalAddress.types now has type Set<string>
240 * Add Folks.Debug debug controller class
241 * All pc-files now only add the $includedir to the cflags, so all includes
242   must be of the form <folks/*.h>
243
244 Overview of changes from libfolks 0.4.0 to libfolks 0.5.0
245 =========================================================
246
247 Major changes:
248 * Add support to change primary (writeable) store either via
249   GConf or an env variable (bug 645441).
250 * Bumped Vala dependency to 0.12.0 for bug #646345
251
252 Bugs fixed:
253 * Bug 644968 - _update_phone_numbers() needs to create copies
254   of each List<FieldDetails>
255 * Bug 644966 - _update_emails () needs to create copies of each
256   List<FieldDetails>
257 * Bug 644527 - Add a Tracker backend
258 * Bug 645430 - folks-inspect: Use LinkedHashSet to access im-addresses
259 * Bug 645411 - folks-import segfaults on startup
260 * Crasher when removing Personas
261 * Crasher when reconnecting a Telepathy account
262 * Bug 645680 — Use random integer IDs for Kf.Personas
263 * Bug 645475 — Linker warnings for Tracker backend tests
264 * Bug 645570 — Fix checks for empty and equal StructuredNames
265 * Bug 645989 — Ensure add_persona_from_details handles the basic attribute
266 * Bug 645413 — Write support for Tracker
267 * Bug 645441 — Mechanism to specify primary backend
268 * Bug 638280 — Add a libsocialweb backend
269 * Deal with duplicated phones/e-mails in Tracker
270 * Bug 646944 — Fix libsocialweb updates and removals of contacts
271 * Bug 644867 — add interface for linkable web service contact UIDs
272 * Bug 647168 — print the "web-service-addresses" property correctly
273 * Bug 646831 — Setting an existing phone number or e-mail address on a
274   Trf.Persona fails
275 * Bug 647298 — folks-inspect gets SIGSEGV when trying to auto-complete
276   parameters
277 * Bug 646948 — Support for potential matches
278
279 API changes:
280 * Add equal () to StructuredName
281 * Add detail_key () along with an enum PersonaDetail to PersonaStore
282   which together define the basic attributes that should be supported
283   by add_persona_from_details ().
284 * Add public primary_store to IndividualAggregator
285 * Add LocalIdDetails interface for linking Personas based on local address book
286   IDs (such as for the Tracker backend Personas)
287 * Add WebServiceDetails interface for linking Personas based on web service
288   accounts (such as for the libsocialweb backend Personas)
289 * Add PotentialMatch class and IndividualAggregator.get_potential_matches() and
290   IndividualAggregator.get_all_potential_matches() to suggest Individuals that
291   may match the given Individual or all potential matches, respectively.
292
293 Overview of changes from libfolks 0.3.6 to libfolks 0.4.0
294 =========================================================
295
296 Bugs fixed:
297 * Bug 642351 — BACKEND_STORE_KEY_FILE format should support a wildcard entry
298 * Bug 643241 — _update_urls () needs to create copies of each
299   List<FieldDetails>
300 * Bug 643247 — Folks needs C API documentation
301 * Bug 643201 — folks-inspect can't handle properties which are
302   List<FieldDetails>
303 * Bug 642866 — tp-lowlevel leaks TpChannel
304 * Bug 642861 — FolksLinkedHashSet still alive when exiting Empathy
305 * Bug 642493 — Folks needs API for specifying a contact's organisation
306 * Bug 642500 — Folks needs API for specifying a contact's birthday
307 * Bug 642501 — Folks needs API for attaching notes to a Contact
308 * Bug 641210 — Add interface for postal addresses
309 * Bug 643956 — Use the correct signal name for postal addresses
310 * Bug 643954 — Add to_string () to PostalAddress class
311 * Bug 643955 — Add to_string () to RoleOwner class
312 * Bug 643957 — Deal handle birthday and postal-addresses.
313 * Bug 644457 — Handle structured names
314 * Bug 644165 — An individual's avatar shouldn't be replaced by a null avatar
315
316 API changes:
317 * Add RoleDetails interface
318 * Add BirthdayDetails interface
319 * Add NoteDetails interface
320 * Add PostalAddressDetails interface
321 * Rename Aliasable -> AliasDetails
322 * Rename AvatarOwner -> AvatarDetails
323 * Rename Emailable -> EmailDetails
324 * Rename Favouritable -> FavouriteDetails
325 * Rename GenderOwner -> GenderDetails
326 * Rename Groupable -> GroupDetails
327 * Rename IMable -> ImDetails
328 * Rename NameOwner -> NameDetails
329 * Rename Phoneable -> PhoneDetails
330 * Rename PresenceOwner -> PresenceDetails
331 * Rename Urlable -> UrlDetails
332
333 Overview of changes from libfolks 0.3.5 to libfolks 0.3.6
334 =========================================================
335
336 This is just a repackaging of libfolks 0.3.5 with some documentation comment
337 version numbers fixed.
338
339 Overview of changes from libfolks 0.3.4 to libfolks 0.3.5
340 =========================================================
341
342 Major changes:
343 * Various API breaks and improvements, especially in the IndividualAggregator
344 * Add various new interfaces: NameOwner, FieldDetails, Urlable, GenderOwner,
345   Phoneable and Emailable
346
347 API changes:
348 * Add NameOwner interface
349 * Add FieldDetails interface
350 * Add Urlable interface
351 * Add GenderOwner interface
352 * Add Phoneable interface
353 * Add Emailable interface
354 * Add Tpf.Persona.is_in_contact_list
355 * Rename the URLable interface to Urlable
356 * Take a PersonaStore in IndividualAggregator.add_persona_from_details
357 * Remove IndividualAggregatorError.STORE_NOT_FOUND
358 * Rename the getter for BackendStore.enabled_backends from
359   folks_backend_store_get_enabled_backends() to
360   folks_backend_store_dup_enabled_backends()
361 * Rename BackendStore.get_backend_by_name() to .dup_backend_by_name()
362
363 Bugs fixed:
364 * Bug 640901 — Allow it to be determined whether a user Tpf.Persona is in the
365   contact list
366 * Bug 641780 — Incorrect C function names for URLable interface
367 * Bug 629078 — Folks needs a full API review to take advantage of our
368   compatibility break in 0.2.x
369 * Bug 642036 — No way to pass a message when adding a contact
370
371 Overview of changes from libfolks 0.3.3 to libfolks 0.3.4
372 =========================================================
373
374 Major changes:
375 * Add folks-inspect tool
376 * The use of the new LinkedHashSet type in the API may make libgee a requirement
377   for some clients (to take full advantage of its class lineage).
378
379 API changes:
380 * New type: LinkedHashSet, similar to Gee.HashSet, but ordered.
381 * IMable.im_addresses is now a mapping of string to LinkedHashSet.
382 * Rename the HasAvatar interface to AvatarOwner
383 * Rename the HasPresence interface to PresenceOwner
384
385 Bugs fixed:
386 * Bug 637240 — libfolks-telepathy.so exports private symbols
387 * Bug 638311 — Add a HACKING file that outlines development policies and
388   coding style
389 * Bug 629083 — Review coding conventions in folks
390 * Bug 629075 — Add folks command line application
391 * Bug 638609 — libfolks hard-codes backend names for debugging
392 * Bug 639195 — Print stack traces for failed tests to improve remote
393   debugging
394 * Bug 639113 — Add static aggregation tests
395 * Bug 639742 — Logger service unavailable in make check
396 * Bug 640213 — Add tests for LinkedHashSet
397 * Bug 627397 — Use better interface names
398
399 Overview of changes from libfolks 0.3.2 to libfolks 0.3.3
400 =========================================================
401
402 Major changes:
403 * Fix some minor leaks
404 * Add support for building gtk-doc documentation for the C API
405 * Fix some related documentation problems
406 * Fix some Vala problems caused by differences between Vala 0.10 and 0.12
407 * Finish off renaming interfaces (this is an API break; see below)
408 * Don't trust personas from IRC
409 * Handle invalid IM addresses more gracefully than with an assertion failure
410 * Fix a linking problem with the user's individual when going offline which
411   could lead to infinite loops
412
413 API changes:
414 * Rename the Avatar interface to HasAvatar
415 * Rename the Presence interface to HasPresence
416 * Rename the Favourite interface to Favouritable
417 * Add IMableError
418 * Throw IMableError from IMable.normalise_im_address()
419
420 Bugs fixed:
421 * Bug 635178 — Leak in
422   folks_tp_lowlevel_connection_open_contact_list_channel_async
423 * Bug 635649 — autopoint fails to run
424 * Bug 635703 — Leak in connection_get_requestable_channel_classes_cb
425 * Bug 635823 — [PATCH] telepathy test not linking against GIO
426 * Bug 636251 — Fails to add contact
427 * Bug 629526 — Generate gtk-doc documentation
428 * Bug 627397 — Use better interface names
429 * Bug 636714 — Assertion failure on invalid IM address
430 * Bug 637136 — Infinite loop when disconnecting accounts
431
432 Overview of changes from libfolks 0.3.1 to libfolks 0.3.2
433 ==========================================================
434
435 Major changes:
436 * BackendStore.load_backends() now (un)loads backends which have been
437   (dis|en)abled since the last call
438 * FOLKS_BACKEND_DIR has been replaced by FOLKS_BACKEND_PATH. It accepts any
439   number of files and directories, separated by :
440 * Significantly clean up the build system
441
442 API changes:
443 * Added BackendStore.prepare() and BackendStore::is-prepared
444 * Add BackendStore.enable_backend().
445 * Add BackendStore.disable_backend().
446 * Add BackendStore.unprepare().
447 * Remove casting convenience methods on Individual (casting isn't hard)
448 * Change the visibility of the setters of PersonaStore.type_id,
449   PersonaStore.display_name, PersonaStore.id, Backend.name,
450   Backend.persona_stores and Persona.linkable_properties. This removes the
451   corresponding C setter methods which should never have been exposed
452 * Remove Tpf.PersonaError
453 * Remove the exception from the Tpf.Persona constructor
454
455 Bugs fixed:
456 * Bug 629081 — Add API to allow specific backends to be disabled
457 * Bug 629862 — Add tests for the key-file backend
458 * Bug 628883 — Add localisation support
459 * Bug 633718 — Make the Folks releases buildable without vala, valadoc, or
460   g-i
461 * Bug 633080 — Crash when disconnecting twice
462
463 Overview of changes from libfolks 0.3.0 to libfolks 0.3.1
464 ==========================================================
465
466 Major changes:
467 * Tpf.Persona.contact is now guaranteed to have the client type feature
468
469 API changes:
470 * Add the PersonaStore:can-add-personas property
471 * Add the PersonaStore:can-remove-personas property
472 * Add the PersonaStore:can-alias-personas property
473 * Add the PersonaStore:can-group-personas property
474 * Make Individual implement the IMable interface
475
476 Bugs fixed:
477 * Bug 630431 — notify::alias is never emitted
478 * Bug 631864 — Crash when empathy disconnects
479 * Bug 632096 — build failure: contact-retrieval.o: undefined reference to
480   symbol 'gee_abstract_collection_add'
481 * Bug 632163 — Folks key-file backend needs a way to point to a specific
482   .ini file
483 * Bug 632564 — assertion `EMPATHY_IS_CONTACT (contact)' failed in
484   individual_store_contact_sort
485
486 Overview of changes from libfolks 0.1.17 to libfolks 0.3.0
487 ==========================================================
488
489 Major changes:
490 * Fixed some linking problems
491 * Added some missing documentation
492 * Fixed build problems introduced by switching to gobject-introspection 0.9.6
493   (i.e. GIR format 1.2)
494 * Bumped telepathy-glib dependency to 0.11.16
495 * Bumped Vala dependency to 0.10.0
496 * Bumped gobject-introspection dependency to 0.9.6
497 * Ensured IM addresses are normalised before being compared
498 * Made the folks-import build optional through a configure argument
499 * Added support for a “self” individual
500 * Added support for generating and installing Devhelp format documentation
501 * BackendStore.load_backends and the prepare() functions are now idempotent
502 * Tpf.Persona.contact is now guaranteed to have the avatar token and data
503   features
504 * Tpf.Persona.contact is now guaranteed to have the capabilities feature
505
506 API changes:
507 * Added IMable.normalise_im_address()
508 * Renamed Groups interface to Groupable
509 * Renamed Alias interface to Aliasable
510 * Removed BackendStore constructor
511 * Added BackendStore.dup()
512 * Added BackendStore::enabled-backends
513 * Added Individual::is-user
514 * Added Persona::is-user
515 * Added IndividualAggregator::user
516 * Added PersonaStoreError.UNSUPPORTED_ON_USER
517 * Added {IndividualAggregator, PersonaStoreError}.STORE_OFFLINE, used by the
518   respective add_persona_from_details() functions
519
520 Bugs fixed:
521 * Bug 629452 — [Patch] Add missing gio linking for import-tool
522 * Bug 626008 — Add @since lines to all symbols
523 * Bug 629311 — Folks should normalize IDs written to the writable backend
524 * Bug 629644 — Key file backend cannot be loaded because of linking problems
525 * Bug 629666 — libfolks should not hard autodetect libxml
526 * Bug 628970 — Folks API needs a way to determine whether a specific type of
527   PersonaStore is available
528 * Bug 629096 — Add a library init function
529 * Bug 627402 — Support marking FolksPersonas as "me"
530 * Bug 629642 — individuals-changed emitted in the wrong order
531 * Bug 629643 — do not fall back to the id if alias is empty
532 * Bug 629006 — PersonaStore should gracefully handle offline Persona change
533   attempts
534 * Bug 629331 — BackendStore.load_backends and the prepare() functions should
535   be idempotent.
536 * Bug 629008 — Add a test for Persona additions
537 * Bug 630347 — Avatars are always NULL
538
539 Overview of changes from libfolks 0.1.16 to libfolks 0.1.17
540 ===========================================================
541
542 Major changes:
543 * Added a basic test suite
544 * Cleaned up the build system
545 * Ensured the public libraries' VAPI files are distributed and installed
546 * Prevented the key-file from being saved unnecessarily
547 * Fixed multi-byte character handling in the key-file backend
548 * Ensured account removal and invalidation is handled in the Telepathy backend
549 * Prevented a hang when creating relationships.ini in certain situations
550 * Added a folks-import tool to import meta-contact data from Pidgin; this adds
551   a dependency on libxml
552
553 API changes:
554 * Added PersonaStore.flush()
555
556 Bugs fixed:
557 * Bug 628930 — folks crahses empathy on relationships.ini read
558 * Bug 629082 — Empathy crashes when toggling "Ignore SSL certificate errors"
559   checkbox
560 * Bug 628853 — hangs if there's no relationships.ini file
561 * Bug 629084 — Add a folks-import tool
562
563 Overview of changes from libfolks 0.1.15 to libfolks 0.1.16
564 ===========================================================
565
566 Major changes:
567 * Added more debugging output
568 * Fixed various small outputted code bugs
569 * Fixed problem where key file groups would be overwritten in some situations
570 * Fixed various signal emission problems
571 * Prevented changes to Personas' properties from being propagated back up to the
572   Individuals
573 * Limited libgee dependency to < 0.7 due to API changes in libgee
574 * Added a FOLKS_DISABLE_LINKING environment variable to disable linking (for
575   debugging purposes)
576
577 Bugs fixed:
578 * Bug 628108 — Favorite contacts are not save any more
579 * Bug 628294 — Some contacts appear to be linked together while they shouldn't
580 * Bug 628305 — Signal removal of Individuals containing untrusted Personas
581 * Bug 628131 — error message when trying to link ICQ with jabber
582 * Bug 628343 — Add an environment variable to disable linking
583 * Bug 628335 — Assertion error with master
584
585 Overview of changes from libfolks 0.1.14.1 to libfolks 0.1.15
586 =============================================================
587
588 Major changes:
589 * Fixed various build problems
590 * Ensured duplicate entries don't appear in various sets
591 * Made gobject-introspection dependency explicit
592 * Limited libgee dependency to <= 0.5.2 due to API changes in libgee
593 * Reworked some of the Individual internals to make notifications more efficient
594 * Added the concept of an Individual's “trust level”
595 * Changed alias fallbacks to fall back to a display ID instead of a UID
596 * Added support for storing aliases in the key-file backend and use them in
597   preference to aliases from other Personas in an Individual
598
599 API changes:
600 * Added Individual:personas-changed
601 * Added TrustLevel enum
602 * Added Individual::trust-level
603 * Implemented Alias on Kf.Persona
604
605 Bugs fixed:
606 * Bug 627314 — folks cannot be install in gentoo sandbox
607 * Bug 627506 — Require gobject-introspection
608 * Bug 626725 — Add an Individual.personas_changed signal
609 * Bug 627968 — Add Individual.trust_level property
610 * Bug 626578 — Use vala's vala.m4 to check for telepathy-glib(.vapi)
611 * Bug 626410 — contacts show up with a weird alias
612 * Bug 627508 — Store alias and groups in the key-file backend
613 * Bug 627898 — Fails to install with -j4
614
615 Overview of changes from libfolks 0.1.14 to libfolks 0.1.14.1
616 =============================================================
617
618 Major changes:
619 * Bumped Vala dependency to 0.9.6
620 * Fixed some more warning spew
621
622 Overview of changes from libfolks 0.1.13 to libfolks 0.1.14
623 ===========================================================
624
625 Major changes:
626 * Changed Vala detection code to use the correct macro
627 * Bumped Vala dependency to 0.9.5
628 * Removed some more message spew
629 * Changed tp-lowlevel Vala bindings to be generated using gobject-introspection
630 * Added optional dependency on gobject-introspection 0.6.7
631
632 Overview of changes from libfolks 0.1.12 to libfolks 0.1.13
633 ===========================================================
634
635 Major changes:
636 * Added the concept of “linkable properties”
637 * Added the IMable interface
638 * Added the concept of persona store “trust”
639 * Added a writeable key-file backend
640 * Added linking support to the IndividualAggregator
641 * Tidied up ID handling in the backends
642 * Warn if a backend's MIME type could not be determined, notifying the user if
643   libfolks can't load backends due to shared-mime-info not being installed
644 * Hint to clients the Individual replacing a removed Individual (if any)
645 * Exposed Telepathy contacts' IM addresses using the IMable interface
646 * Fixed some build and dependency issues
647 * Bumped telepathy-glib dependency to 0.11.11 and dropped dependency on
648   telepathy-vala
649 * Added the concept of “writeable” PersonaStores and use this concept to prevent
650   properties being synchronised between PersonaStores unnecessarily (and
651   potentially even destructively)
652
653 API changes:
654 * Added Persona::linkable-properties
655 * Added IMable interface
656 * Added PersonaStoreTrust enum
657 * Added PersonaStore::trust-level
658 * Added Persona.LinkablePropertyCallback()
659 * Added Persona.linkable_property_to_links()
660 * Added Persona.build_uid()
661 * Added Persona.split_uid()
662 * Added Persona::display-id
663 * Added PersonaStore::display-name
664 * Added replacement_individual parameter to Individual:removed
665 * Implemented IMable on Tpf.Persona
666 * Added IndividualAggregatorError.NO_WRITEABLE_STORE
667 * Added IndividualAggregator.link_personas()
668 * Added IndividualAggregator.unlink_individual()
669 * Added PersonaStore::is-writeable
670
671 Bugs fixed:
672 * Bug 625830 — Adding an existing contact to the tp backend results in bogus
673   warnings
674 * Bug 626108 — Defining XDG_DATA_DIRS prevents backends from being loaded
675
676 Overview of changes from libfolks 0.1.11 to libfolks 0.1.12
677 ===========================================================
678
679 Major changes:
680 * Added debug flags support using the FOLKS_DEBUG environment variable
681 * Removed various bits of message and warning spew
682 * Bumped Vala dependency to 0.9.4
683 * Ensured connections which are ready as soon as they're connected are handled
684   correctly
685 * Versioned the installed backends using the main library's libtool version
686
687 Bugs fixed:
688 * Bug 625815 — No contat showed in the contact list
689
690 Overview of changes from libfolks 0.1.10 to libfolks 0.1.11
691 ===========================================================
692
693 Major changes:
694 * Moved various bits of preparation code out into async prepare() methods to
695   avoid race conditions on startup
696 * Reset TpfPersonaStore state when going offline
697 * Made several methods async which could potentially require it in future
698 * Added error throws to various functions which could potentially fail in future
699
700 API changes:
701 * Added PersonaStore.prepare()
702 * Added Backend.prepare()
703 * Removed error thrown from Backend constructor
704 * Added IndividualAggregator.prepare()
705 * Changed return type of Presence.is_online() from uint to int
706 * Made IndividualAggregator.remove_individual() async
707 * Made PersonaStore.remove_persona() async
708 * Added an error throw to BackendStore.load_backends()
709 * Added an error throw to IndividualAggregator.prepare()
710 * Added an error throw to IndividualAggregator.remove_individual()
711 * Added an error throw to IndividualAggregator.remove_persona()
712 * Added an error throw to PersonaStore.remove_persona()
713 * Made Groups.change_group() async
714 * Made Groups:group-changed async
715
716 Overview of changes from libfolks 0.1.9 to libfolks 0.1.10
717 ==========================================================
718
719 Major changes:
720 * Fixed various memory and reference leaks
721 * Lots of build system improvements
722 * Added a libtool version to the installed libraries
723
724 Initial release of libfolks 0.1.9
725 =================================
726
727 Major changes:
728 * Move to GNOME infrastructure