Add Profiling api to NEWS file.
[platform/upstream/folks.git] / NEWS
1 Overview of changes from libfolks 0.7.1 to libfolks 0.7.2
2 =========================================================
3
4 Dependencies:
5 • evolution-data-server ≥ 3.5.4
6
7 Bugs fixed:
8 • Bug 677166 — Salut personas survive disconnection
9 • Bug 678474 — potential-match should be smarter with accents
10 • Bug 678781 — memory leak in e-d-s backend
11 • Bug 678811 — Fix eds backend unit tests
12 • Bug 678734 — Add profiling API
13 • Bug 679020 — Fail to build master using vala master
14
15 API changes:
16 • Add profiling api
17
18
19 Overview of changes from libfolks 0.7.0 to libfolks 0.7.1
20 =========================================================
21
22 Dependencies:
23 • telepathy-glib ≥ 0.17.5
24 • libzeitgeist ≥ 0.3.14
25 • evolution-data-server ≥ 3.5.3
26 • GLib ≥ 2.26.0
27 • GConf dependency dropped
28 • intltool ≥ 0.50.0
29
30 Bugs fixed:
31 • Bug 674256 — telepathy-glib minimal version is insufficient
32 • Bug 647909 — Port Folks to GSettings
33 • Bug 663890 — @throws annotations missing for some functions
34 • Bug 675292 — Assertion when joining IRC channel
35 • Bug 676023 — Invalid read when preparing the aggregator
36 • Bug 627403 — Move default presence messages from Empathy to libfolks
37 • Bug 675121 — port Folks to eds api changes
38 • Bug 672709 — Add new interaction details properties to individuals
39
40 API changes:
41 • Add PresenceDetails.get_default_message_from_type()
42 • Add new Individual properties:
43     - im_interaction_count
44     - call_interaction_count
45     - last_im_interaction_timestamp
46     - last_call_interaction_timestamp
47 • Add InteractionDetails interface to report interactions with Personas and
48   Individuals
49
50 Overview of changes from libfolks 0.6.9 to libfolks 0.7.0
51 =========================================================
52
53 Major changes:
54 * Folks now uses the Connection.ContactList Telepathy spec. instead of the
55   deprecated Channel.ContactList. This means legacy Connection Managers
56   (notably telepathy-butterfly) are not supported any more .
57
58 Bugs fixed:
59 • Bug 658576 — Need API to get a FolksIndividual from his ID
60 • Bug 671662 — Renamed alias of Facebook contact is not saved
61 • Bug 630822 — Support Connection.Interface.ContactList API
62
63 API changes:
64 • Add IndividualAggregator.look_up_individual()
65
66 Overview of changes from libfolks 0.6.8 to libfolks 0.6.9
67 =============================================================
68
69 Dependencies:
70 • telepathy-glib ≥ 0.15.5
71
72 Bugs fixed:
73 • Bug 672980 — tp_account_get_protocol: assertion `TP_IS_ACCOUNT (account)' failed
74
75 Overview of changes from libfolks 0.6.7 to libfolks 0.6.8
76 =============================================================
77
78 Major changes:
79 * FOLKS_DEBUG has been removed in favour of G_MESSAGES_DEBUG (and the bug where
80   folks would set G_MESSAGES_DEBUG for any process linked to it has been fixed)
81 * A --disable-fatal-warnings configure flag has been added for non-developers
82 * Update favourite status of EDS contacts with membership of the ‘Starred in
83   Android’ Google Contacts group
84 * Improvements to linking suggestions (potential matches)
85 * Improvements to folks-inspect to make it a good command line citizen
86
87 Bugs fixed:
88 * Bug 670191 — IndividualAggregator::is-quiescent is never set to TRUE
89 * Bug 670523 — persona.vala:153:folks_persona_get_individual:
90   assertion failed: (_tmp6_)
91 * Bug 672381 — invalid uninstantiatable type `<invalid>' in cast to
92   `FolksIndividual'
93 * Bug 670347 — Check for null birthday strings
94 * Bug 661490 — Should mark contacts from the "Starred in Android" group as
95   Favorites
96 * Bug 671714 — Fail to add contact to the contact list
97 * Bug 672373 — folks-import segfaults (Archlinux x86_64)
98 * Bug 670348 — Handle Telepathy CMs crashing/being invalidated
99 * Bug 671900 — Folks should not suggest linking contacts from telepathy-salut
100 * Bug 670872 — Should be less sensitive to accentuated chars
101 * Bug 669984 — Does not notify when contacts are added to groups
102 * Bug 660235 — Consistent signal handlers to a terminal would be cool
103 * Bug 671499 — Don't set G_MESSAGES_DEBUG unconditionally
104
105 API changes:
106 * Add MatchResult.NONE enum member
107
108 Overview of changes from libfolks 0.6.6 to libfolks 0.6.7
109 =============================================================
110 Bugs fixed:
111 * Bug 666310 — Crash in Tracker backend by unsetting an entry in a read-only map
112 * Bug 666528 — Can't convert from type 'GFile' to 'gchararray'
113 * Bug 666540 — Segfault on empty e-mail addresses with potential match
114 * Bug 659610 — Support code coverage report generation
115 * Bug 657063 — Allow to pass a command to folks-inspect
116 * Bug 667410 — A second instance of the aggregator only fetch a small subset of
117   my contacts
118 * Bug 667535 — persona created by tpf_persona_dup_for_contact() outlives its
119   TpContact
120 * Bug 670196 — Disable GLib deprecation warnings
121 * Bug 668415 — Port to Vala 0.15.x
122
123 API changes:
124 * Add PostalAddress.is_empty() and Role.is_empty()
125
126 Overview of changes from libfolks 0.6.5 to libfolks 0.6.6
127 =============================================================
128 Bugs fixed:
129 * Bug 664158 — Stale log handler can cause segfault when re-creating Aggregator
130   in a single run
131 * Bug 663889 — crash due to NameDetails which fail to guarantee
132   non-null full-name/nickname
133 * Bug 665039 — Crash in folks_backends_sw_backend_add_service
134 * Bug 665728 — TpfPersonaStore: prepare() isn't mutually exclusive inside a
135   single thread
136 * Bug 665692 — Use constructors correctly
137 * Bug 665376 — Add API to get a TpfPersona from a TpContact
138
139 API changes:
140 * Add Edsf.PersonaStore.source
141 * Make Edsf.Persona.contact writeable on construct (previously private setter)
142 * Make Edsf.Persona.contact_id writeable on construct (previously private
143   setter)
144 * Add Swf.PersonaStore.service
145 * Make Swf.Persona.lsw_contact writeable on construct (previously private
146   setter)
147 * Add Trf.Persona.tracker_id
148 * Add Trf.Persona.cursor
149 * Make AbstractFieldDetails.value writeable on construct (previously just a
150   normal setter)
151 * Make AbstractFieldDetails.parameters writeable on construct (previously just a
152   normal setter)
153 * Add ObjectCache.type_id
154 * Add ObjectCache.id
155 * Add Tpf.PersonaStore.dup_for_account() and Tpf.Persona.dup_for_contact()
156
157 Overview of changes from libfolks 0.6.4.1 to libfolks 0.6.5
158 =============================================================
159 Bugs fixed:
160 * Bug 662285 — Error with email -> im_addresses when updating a contact
161 * Bug 662433 — AbstractFieldDetails.equal() is ambiguous about checking
162   parameters.
163 * Bug 660908 — Add favourites support to EDS backend
164 * Bug 662770 — ContactPhotos are ignored when mime type is null
165 * Bug 662616 — We should set mime type when setting an EContact's photo
166 * Bug 662274 — Failed to link personas: Can't link personas with no primary
167   store.
168 * Bug 662314 — Gnome-shell restarts if I change my user status to
169   disconnected/unavailable
170 * Bug 663798 — Add AbstractFieldDetails.value_type
171 * Bug 659585 — GLib-GIO-CRITICAL **: g_bus_unwatch_name: assertion
172   `watcher_id > 0' failed
173
174 API changes:
175 * Add AbstractFieldDetails.id to identify instances of details
176 * Deprecate PostalAddress.uid in favor of AbstractFieldDetails.id
177 * Deprecate NoteFieldDetails.uid in favor of AbstractFieldDetails.id
178 * Deprecate Role.uid in favor of AbstractFieldDetails.id
179 * Add AbstractFieldDetails.values_equal() to compare values (but not parameters)
180 * Implement FavouriteDetails on Edsf.Persona
181 * Add AbstractFieldDetails.value_type
182
183 Behavior changes:
184 * PostalAddress.equal() now ignores PostalAddress.uid
185 * NoteFieldDetails.equal() now ignores NoteFieldDetails.uid
186
187 Overview of changes from libfolks 0.6.4 to libfolks 0.6.4.1
188 =============================================================
189 Bugs fixed:
190 * Bug 662095 — so name of libfolks v 0.6.4 is lower than of libfolks v 0.6.3.x
191
192 Overview of changes from libfolks 0.6.3.2 to libfolks 0.6.4
193 =============================================================
194 Bugs fixed:
195 * Bug 660217 — folks-0.6.3.2 requires tracker-0.12, but configure.ac calls
196   VALA_CHECK_PACKAGES([tracker-sparql-0.12])
197 * Bug 657602 — Telepathy backend fails to set Personas' phone numbers from
198   ContactInfo
199 * Bug 660937 — [regression] build failure: No package 'gee-1.0' found
200 * Bug 661475 — string_strip: assertion `self != NULL' failed
201
202 API changes:
203 * Implement PhoneDetails on Tpf.Persona
204 * Implement NameDetails on Tpf.Persona
205 * Implement EmailDetails on Tpf.Persona
206 * Implement UrlDetails on Tpf.Persona
207 * Implement BirthdayDetails on Tpf.Persona
208 * Add PersonaStoreError.UNSUPPORTED_ON_NON_USER
209
210 Overview of changes from libfolks 0.6.3.1 to libfolks 0.6.3.2
211 =============================================================
212 Bugs fixed:
213 * Bug 660140 — contacts_contact_find_persona_from_store: assertion `store !=
214   NULL' failed
215 * Bug 659041 — tpf-persona-store.vala: try to connect to a NULL object
216 * Bug 660051 — require tracker 0.12
217
218 Overview of changes from libfolks 0.6.3 to libfolks 0.6.3.1
219 ===========================================================
220 Bugs fixed:
221 * Bug 658631 — Deprecate PersonaStore.can-[alias|group]-personas
222 * Bug 658002 — defective typelib
223 * Bug 659737 — tests fail due to usage of deprecated methods
224 * Bug 659732 — Gnome fails to load and crashes when the Evolution-exchange
225   plugin is configured
226
227 API changes:
228 * Deprecate Folks.PersonaStore.can_[alias, group]_personas.
229   Applications should use Folks.PersonaStore#always-writeable-properties
230   and Folks.Persona#writeable-properties to check availability of "alias"
231   and "groups" properties.
232
233 Overview of changes from libfolks 0.6.2.1 to libfolks 0.6.3
234 ===========================================================
235
236 Major changes:
237 * Cleanup of the definition of “writeable” which involves a couple of API
238   deprecations and additions, and some internal re-working.
239 * Beginnings of standardising TYPE values for AbstractFieldDetails
240
241 Bugs fixed:
242 * Bug 658631 — crash at empathy startup
243 * Bug 658331 — Ensure read-only PersonaStores have empty writeable-properties
244 * Bug 658874 — Typo?
245 * Bug 658730 — ngettext (Plural forms) needed for
246   "Imported %u buddies from '%s'."
247 * Bug 633781 — Allow to set avatar on individuals
248 * Bug 657142 — Automatically link e-d-s contacts with their contacts from
249   telepathy
250 * Bug 658002 — defective typelib
251 * Bug 657065 — Cache keeps around contacts from disabled accounts
252 * Bug 658323 — Deprecate FOLKS_WRITEABLE_STORE in favour of FOLKS_PRIMARY_STORE
253 * Bug 659095 — Don't distribute typelib file
254 * Bug 659128 — If a persona store goes away we don't remove its personas
255 * Bug 657141 — Backend should ask eds for the default backend, not hardcode it
256 * Bug 658531 — Sometimes avatar caching doesn't work
257 * Bug 658328 — Return PropertyError.NOT_WRITEABLE from Persona property setters
258   as appropriate
259 * Bug 646847 — We should rename _update () in Trf.Persona to something more less
260   misleading
261 * Bug 658161 — Consistently use “contact” in translatable strings instead of
262   “persona”
263 * Bug 657738 — Favorite people are not always displayed
264 * Bug 653623 — Would like a set of standard "type" parameters for UrlDetails
265
266 API changes:
267 * Individual.avatar is now settable using Individual.change_avatar() (not new
268   API, but it no longer always returns an error)
269 * We now use the FOLKS_PRIMARY_STORE env var instead of FOLKS_WRITEABLE_STORE
270   to configure the primary store
271 * Deprecate Folks.PersonaStore.is_writeable
272 * Add Folks.PersonaStore.is_primary_store
273 * Add Folks.IndividualAggregatorError.NO_PRIMARY_STORE
274 * In IndividualAggregator.ensure_individual_property_writeable we now throw
275   NO_PRIMARY_STORE instead of NO_WRITEABLE_STORE
276 * Add Folks.PersonaStore.user_set_default
277 * Add AbstractFieldDetails.PARAM_TYPE, .PARAM_TYPE_HOME, .PARAM_TYPE_WORK,
278   .PARAM_TYPE_OTHER
279 * Add UrlFieldDetails.PARAM_TYPE_HOME_PAGE, .PARAM_TYPE_BLOG,
280   .PARAM_TYPE_PROFILE, .PARAM_TYPE_FTP
281
282 Overview of changes from libfolks 0.6.2 to libfolks 0.6.2.1
283 ===========================================================
284
285 Bugs fixed:
286 * Bug 658580 — Assertion in gee_hash_map_node_iterator_next with folks 0.6.2
287
288 Overview of changes from libfolks 0.6.1 to libfolks 0.6.2
289 =========================================================
290
291 Bugs fixed:
292 * Bug 645056 — TpLowlevel library should have only static public functions
293 * Bug 653777 — Would be nice to have a helper function to create a writable
294   persona
295 * Bug 657635 — Linking personas from different (e-d-s) stores is not working
296 * Bug 657510 — Add asynchronous property setter methods
297 * Bug 656184 — Add is-quiescent property
298 * Bug 657971 — Need BirthdayDetails support in eds backend
299 * Bug 657789 — Don't claim uneditable eds fields as writable
300 * Bug 657282 — Add an IndividualAggregator.individuals_changed_detailed signal
301 * Bug 657969 — Support RoleDetails in eds backend
302 * Bug 657783 — Prefer data from primary store when picking Individual values
303 * Bug 658411 — Only emit notifications for linkable properties if they've
304   actually changed
305 * Bug 656689 — Re-link personas on linkable properties being changed
306
307 API changes:
308 * Add PersonaStore:always-writeable-properties property
309 * Add IndividualAggregatorError.PROPERTY_NOT_WRITEABLE error
310 * Add IndividualAggregator.ensure_individual_property_writeable()
311 * Add Folks.PropertyError
312 * Add *Details.change_*() virtual methods
313 * Add IndividualAggregator:is-quiescent, Backend:is-quiescent and
314   PersonaStore:is-quiescent
315 * Add PersonaDetail.GROUPS and PersonaDetail.INVALID
316 * Add IndividualAggregator.individuals_changed_detailed and deprecate
317   IndividualAggregator.individuals_changed (but not remove or break it)
318
319 Overview of changes from libfolks 0.6.0 to libfolks 0.6.1
320 =========================================================
321
322 Bugs fixed:
323 * Bug 656659 — Use vcards for postal addresses
324 * Bug 655374 — Un-break avatar tests
325 * Bug 657067 — Can't build EDS backend using Vala master
326 * Bug 657332 — Add linking link-individuals
327
328 Overview of changes from libfolks 0.5.2 to libfolks 0.6.0
329 =========================================================
330
331 Bugs fixed:
332 * Bug 649925 — expose SocialWebClient.Contact in Swf.Persona
333 * Bug 646244 — Incomplete logic to handle attribute updates in Folks.Individual
334 * Bug 652463 — Tidy up CLEANFILES
335 * Bug 652434 — Add ability to run any tests through gdb
336 * Bug 648071 — Add support for presence status from Telepathy
337 * Bug 652472 — Handle failure in getting the logger service better
338 * Bug 629716 — Migrate Folks to GDBus
339 * Bug 652660 — Make Individual.id more stable and well-defined
340 * Bug 652449 — Folks.Individual's property getters should be read only
341 * Bug 653325 — Build system does not complain if trying to build docs without
342   vala-doc installed
343 * Bug 653746 — mismatch between hash and equals in Note
344 * Bug 638281 — Add an EDS backend
345 * Bug 654509 — Folks master not building
346 * Bug 652048 — Make nickname writable
347 * Bug 652425 — Failure codes for removing personas needed in PersonaStoreError
348 * Bug 645549 — Add a way to get the individual from a persona
349 * Bug 650422 — Add API for easily checking whether details are writeable
350 * Bug 655019 — Don't notify twice for nickname changes
351 * Bug 650414 — Need better APIs to handle image data
352 * Bug 652643 — Add PersonaStore cache
353 * Bug 655510 — Make truly-writeable *Details property setters public
354 * Bug 654907 — The writable store shouldn't be set by type_id
355 * Bug 655745 — Implement read/write support for gender property
356 * Bug 649296 — Folks backend files shouldn't begin with "lib"
357 * Bug 652657 — Allow writing to properties of all personas
358 * Bug 655008 — Tidy up error handling in eds backend
359 * Bug 653619 — Add company details
360 * Bug 653679 — Change PostalAddressDetails.postal_addresses to support
361   vCard-like arbitrary parameters
362 * Bug 653680 — Change ImDetails.im_addresses to support vCard-like arbitrary
363   parameters
364 * Bug 655917 — Rebase EmailDetails.email_addresses upon an
365   AbstractFieldDetails-derived class
366 * Bug 655374 — Un-break avatar tests
367 * Bug 655919 — Rebase NoteDetails.notes upon an AbstractFieldDetails-derived
368   class
369 * Bug 655920 — Rebase PhoneDetails.numbers upon an AbstractFieldDetails-derived
370   class
371 * Bug 653682 — Change WebServiceDetails.web_service_addresses to support
372   vCard-like arbitrary parameters
373 * Bug 655921 — Change RoleDetails.roles to support vCard-like arbitrary
374   parameters
375 * Bug 655922 — Rebase UrlDetails.urls upon an AbstractFieldDetails-derived class
376 * Bug 648818 — Support the EDS backend being a primary
377 * Bug 655609 — Implement setter for URLs
378
379 API changes:
380 * Swf.Persona retains and exposes its libsocialweb Contact
381 * Add a PresenceDetails.presence_status property
382 * Make NameDetails.nickname settable
383 * Drop AliasDetails support from Trf.Persona
384 * Add PersonaStoreError.PERMISSION_DENIED and PersonaStoreError.REMOVE_FAILED
385 * Change the error domain of PersonaStore.remove_persona() from GLib.Error to
386   Folks.PersonaStoreError
387 * Add a Persona.individual property
388 * Add a Persona.writeable_properties property and implement it in all the
389   Persona subclasses
390 * Make BirthdayDetails.calendar_event_id nullable
391 * Make Folks.Utils public and add Gee structure equality functions
392 * AvatarDetails.avatar is now of type LoadableIcon?
393 * Add AvatarCache class
394 * Add ObjectCache class
395 * Remove leaked internal PotentialMatch.result_to_string() method
396 * Add RoleDetails:role property
397 * Rebase FieldDetails upon AbstractFieldDetails (requiring the use of the
398   equivalent AbstractFieldDetails functions in place of the FieldDetails ones).
399 * Add AbstractFieldDetails.equal() and hash() for better matching on structures
400   which will store derived objects.
401 * Add parameters as an optional argument for the FieldDetails constructor
402 * Use PostalAddressFieldDetails for PostalAddressDetails.postal_addresses
403 * Remove PostalAddress.types (obsoleted by PostalAddressFieldDetails.parameters)
404 * Add and use ImFieldDetails for ImDetails.im_addresses
405 * Add and use EmailFieldDetails for EmailFieldDetails.email_addresses
406 * Add and use NoteFieldDetails for NoteFieldDetails.notes
407 * Remove Note class (obsoleted by NoteFieldDetails)
408 * Add and use PhoneFieldDetails for PhoneFieldDetails.phone_numbers
409 * Remove all PhoneDetails functions (obsoleted by PhoneFieldDetails)
410 * Add and use WebServiceFieldDetails for
411   WebServiceFieldDetails.web_service_addresses
412 * Use RoleFieldDetails for RoleDetails.roles
413 * Use UrlFieldDetails for UrlDetails.urls
414
415 Overview of changes from libfolks 0.5.1 to libfolks 0.5.2
416 =========================================================
417
418 Bugs fixed:
419 * Bug 650067 — Tracker backend warns when setting a NULL avatar (ie, unsetting
420   the avatar)
421 * Bug 650268 — build failure: "--vapidir=.: command not found"
422
423 Overview of changes from libfolks 0.5.0 to libfolks 0.5.1
424 =========================================================
425
426 Bugs fixed:
427 * Bug 645388 — Group channels are leaked
428 * Bug 647562 — Don't crash on duplicate group channels
429 * Bug 647121 — Crash in individual_store_contact_sort at
430   empathy-individual-store.c line 1387
431 * Bug 645684 — Implement Iterator on LinkedHashSet
432 * Bug 640092 — Folks should minimize use of GLib.List (including its public API)
433 * Bug 648161 — Add GObject Introspection Support
434 * Bug 645186 — Make sure all connect() calls have appropriate disconnect() calls
435 * Bug 648533 — Add runtime debug signalling
436 * Bug 649790 — Vala uses the wrong includes
437 * Bug 649088 — Combining contacts doesn't work with german Umlauts
438
439 API changes:
440 * LinkedHashSet.list_iterator() is now disallowed (causes an assertion failure)
441 * LinkedHashSet.iterator() now returns a BidirIterator instead of just an
442   Iterator
443 * ImDetails.im_addresses is now of type MultiMap<string, string>
444 * WebServiceDetails.web_service_addresses is now of type
445   MultiMap<string, string>
446 * Removed LinkedHashSet in favour of Gee.HashSet
447 * Backend.persona_stores is now of type Map<string, PersonaStore>
448 * GroupDetails.groups is now of type Set<string>
449 * FieldDetails.parameters is now of type MultiMap<string, string>
450 * FieldDetails.get_parameter_values() now returns type Collection<string>
451 * FieldDetails.extend_parameters() now takes type MultiMap<string, string>
452 * PostalAddressDetails.postal_addresses is now of type Set<PostalAddress>
453 * EmailDetails.email_addresses is now of type Set<FieldDetails>
454 * PhoneDetails.phone_numbers is now of type Set<FieldDetails>
455 * UrlDetails.urls is now of type Set<FieldDetails>
456 * BackendStore.enabled_backends now has type Map<string, Backend>
457   - The corresponding C function folks_backend_store_dup_enabled_backends()
458     has been renamed folks_backend_store_get_enabled_backends(), and no longer
459     returns an owned variable.
460 * Individual.personas now has type Set<Persona>
461 * Individual.personas_changed now uses Set<Persona>-typed parameters
462 * PersonaStore.personas_changed now uses Set<Persona>-typed parameters
463 * IndividualAggregator.individuals_changed now uses
464   Set<Individual>-typed parameters
465 * IndividualAggregator.link_personas() now takes a Set<Persona>
466 * IndividualAggregator.get_all_potential_matches() now returns a
467   Map<Individual, Map<Individual, MatchResult>>
468 * IndividualAggregator.get_potential_matches() now returns a
469   Map<Individual, MatchResult>
470 * IndividualAggregator.individuals now has type Map<string, Individual>
471 * PersonaStore.personas now has type Map<string, Persona>
472 * LocalIdDetails.local_ids now has type Set<string>
473 * NoteDetails.notes now has type Set<Note>
474 * RoleDetails.roles now has type Set<Role>
475 * PotentialMatch.known_email_aliases now has type Set<string>
476 * PostalAddress.types now has type Set<string>
477 * Add Folks.Debug debug controller class
478 * All pc-files now only add the $includedir to the cflags, so all includes
479   must be of the form <folks/*.h>
480
481 Overview of changes from libfolks 0.4.0 to libfolks 0.5.0
482 =========================================================
483
484 Major changes:
485 * Add support to change primary (writeable) store either via
486   GConf or an env variable (bug 645441).
487 * Bumped Vala dependency to 0.12.0 for bug #646345
488
489 Bugs fixed:
490 * Bug 644968 - _update_phone_numbers() needs to create copies
491   of each List<FieldDetails>
492 * Bug 644966 - _update_emails () needs to create copies of each
493   List<FieldDetails>
494 * Bug 644527 - Add a Tracker backend
495 * Bug 645430 - folks-inspect: Use LinkedHashSet to access im-addresses
496 * Bug 645411 - folks-import segfaults on startup
497 * Crasher when removing Personas
498 * Crasher when reconnecting a Telepathy account
499 * Bug 645680 — Use random integer IDs for Kf.Personas
500 * Bug 645475 — Linker warnings for Tracker backend tests
501 * Bug 645570 — Fix checks for empty and equal StructuredNames
502 * Bug 645989 — Ensure add_persona_from_details handles the basic attribute
503 * Bug 645413 — Write support for Tracker
504 * Bug 645441 — Mechanism to specify primary backend
505 * Bug 638280 — Add a libsocialweb backend
506 * Deal with duplicated phones/e-mails in Tracker
507 * Bug 646944 — Fix libsocialweb updates and removals of contacts
508 * Bug 644867 — add interface for linkable web service contact UIDs
509 * Bug 647168 — print the "web-service-addresses" property correctly
510 * Bug 646831 — Setting an existing phone number or e-mail address on a
511   Trf.Persona fails
512 * Bug 647298 — folks-inspect gets SIGSEGV when trying to auto-complete
513   parameters
514 * Bug 646948 — Support for potential matches
515
516 API changes:
517 * Add equal () to StructuredName
518 * Add detail_key () along with an enum PersonaDetail to PersonaStore
519   which together define the basic attributes that should be supported
520   by add_persona_from_details ().
521 * Add public primary_store to IndividualAggregator
522 * Add LocalIdDetails interface for linking Personas based on local address book
523   IDs (such as for the Tracker backend Personas)
524 * Add WebServiceDetails interface for linking Personas based on web service
525   accounts (such as for the libsocialweb backend Personas)
526 * Add PotentialMatch class and IndividualAggregator.get_potential_matches() and
527   IndividualAggregator.get_all_potential_matches() to suggest Individuals that
528   may match the given Individual or all potential matches, respectively.
529
530 Overview of changes from libfolks 0.3.6 to libfolks 0.4.0
531 =========================================================
532
533 Bugs fixed:
534 * Bug 642351 — BACKEND_STORE_KEY_FILE format should support a wildcard entry
535 * Bug 643241 — _update_urls () needs to create copies of each
536   List<FieldDetails>
537 * Bug 643247 — Folks needs C API documentation
538 * Bug 643201 — folks-inspect can't handle properties which are
539   List<FieldDetails>
540 * Bug 642866 — tp-lowlevel leaks TpChannel
541 * Bug 642861 — FolksLinkedHashSet still alive when exiting Empathy
542 * Bug 642493 — Folks needs API for specifying a contact's organisation
543 * Bug 642500 — Folks needs API for specifying a contact's birthday
544 * Bug 642501 — Folks needs API for attaching notes to a Contact
545 * Bug 641210 — Add interface for postal addresses
546 * Bug 643956 — Use the correct signal name for postal addresses
547 * Bug 643954 — Add to_string () to PostalAddress class
548 * Bug 643955 — Add to_string () to RoleOwner class
549 * Bug 643957 — Deal handle birthday and postal-addresses.
550 * Bug 644457 — Handle structured names
551 * Bug 644165 — An individual's avatar shouldn't be replaced by a null avatar
552
553 API changes:
554 * Add RoleDetails interface
555 * Add BirthdayDetails interface
556 * Add NoteDetails interface
557 * Add PostalAddressDetails interface
558 * Rename Aliasable -> AliasDetails
559 * Rename AvatarOwner -> AvatarDetails
560 * Rename Emailable -> EmailDetails
561 * Rename Favouritable -> FavouriteDetails
562 * Rename GenderOwner -> GenderDetails
563 * Rename Groupable -> GroupDetails
564 * Rename IMable -> ImDetails
565 * Rename NameOwner -> NameDetails
566 * Rename Phoneable -> PhoneDetails
567 * Rename PresenceOwner -> PresenceDetails
568 * Rename Urlable -> UrlDetails
569
570 Overview of changes from libfolks 0.3.5 to libfolks 0.3.6
571 =========================================================
572
573 This is just a repackaging of libfolks 0.3.5 with some documentation comment
574 version numbers fixed.
575
576 Overview of changes from libfolks 0.3.4 to libfolks 0.3.5
577 =========================================================
578
579 Major changes:
580 * Various API breaks and improvements, especially in the IndividualAggregator
581 * Add various new interfaces: NameOwner, FieldDetails, Urlable, GenderOwner,
582   Phoneable and Emailable
583
584 API changes:
585 * Add NameOwner interface
586 * Add FieldDetails interface
587 * Add Urlable interface
588 * Add GenderOwner interface
589 * Add Phoneable interface
590 * Add Emailable interface
591 * Add Tpf.Persona.is_in_contact_list
592 * Rename the URLable interface to Urlable
593 * Take a PersonaStore in IndividualAggregator.add_persona_from_details
594 * Remove IndividualAggregatorError.STORE_NOT_FOUND
595 * Rename the getter for BackendStore.enabled_backends from
596   folks_backend_store_get_enabled_backends() to
597   folks_backend_store_dup_enabled_backends()
598 * Rename BackendStore.get_backend_by_name() to .dup_backend_by_name()
599
600 Bugs fixed:
601 * Bug 640901 — Allow it to be determined whether a user Tpf.Persona is in the
602   contact list
603 * Bug 641780 — Incorrect C function names for URLable interface
604 * Bug 629078 — Folks needs a full API review to take advantage of our
605   compatibility break in 0.2.x
606 * Bug 642036 — No way to pass a message when adding a contact
607
608 Overview of changes from libfolks 0.3.3 to libfolks 0.3.4
609 =========================================================
610
611 Major changes:
612 * Add folks-inspect tool
613 * The use of the new LinkedHashSet type in the API may make libgee a requirement
614   for some clients (to take full advantage of its class lineage).
615
616 API changes:
617 * New type: LinkedHashSet, similar to Gee.HashSet, but ordered.
618 * IMable.im_addresses is now a mapping of string to LinkedHashSet.
619 * Rename the HasAvatar interface to AvatarOwner
620 * Rename the HasPresence interface to PresenceOwner
621
622 Bugs fixed:
623 * Bug 637240 — libfolks-telepathy.so exports private symbols
624 * Bug 638311 — Add a HACKING file that outlines development policies and
625   coding style
626 * Bug 629083 — Review coding conventions in folks
627 * Bug 629075 — Add folks command line application
628 * Bug 638609 — libfolks hard-codes backend names for debugging
629 * Bug 639195 — Print stack traces for failed tests to improve remote
630   debugging
631 * Bug 639113 — Add static aggregation tests
632 * Bug 639742 — Logger service unavailable in make check
633 * Bug 640213 — Add tests for LinkedHashSet
634 * Bug 627397 — Use better interface names
635
636 Overview of changes from libfolks 0.3.2 to libfolks 0.3.3
637 =========================================================
638
639 Major changes:
640 * Fix some minor leaks
641 * Add support for building gtk-doc documentation for the C API
642 * Fix some related documentation problems
643 * Fix some Vala problems caused by differences between Vala 0.10 and 0.12
644 * Finish off renaming interfaces (this is an API break; see below)
645 * Don't trust personas from IRC
646 * Handle invalid IM addresses more gracefully than with an assertion failure
647 * Fix a linking problem with the user's individual when going offline which
648   could lead to infinite loops
649
650 API changes:
651 * Rename the Avatar interface to HasAvatar
652 * Rename the Presence interface to HasPresence
653 * Rename the Favourite interface to Favouritable
654 * Add IMableError
655 * Throw IMableError from IMable.normalise_im_address()
656
657 Bugs fixed:
658 * Bug 635178 — Leak in
659   folks_tp_lowlevel_connection_open_contact_list_channel_async
660 * Bug 635649 — autopoint fails to run
661 * Bug 635703 — Leak in connection_get_requestable_channel_classes_cb
662 * Bug 635823 — [PATCH] telepathy test not linking against GIO
663 * Bug 636251 — Fails to add contact
664 * Bug 629526 — Generate gtk-doc documentation
665 * Bug 627397 — Use better interface names
666 * Bug 636714 — Assertion failure on invalid IM address
667 * Bug 637136 — Infinite loop when disconnecting accounts
668
669 Overview of changes from libfolks 0.3.1 to libfolks 0.3.2
670 ==========================================================
671
672 Major changes:
673 * BackendStore.load_backends() now (un)loads backends which have been
674   (dis|en)abled since the last call
675 * FOLKS_BACKEND_DIR has been replaced by FOLKS_BACKEND_PATH. It accepts any
676   number of files and directories, separated by :
677 * Significantly clean up the build system
678
679 API changes:
680 * Added BackendStore.prepare() and BackendStore::is-prepared
681 * Add BackendStore.enable_backend().
682 * Add BackendStore.disable_backend().
683 * Add BackendStore.unprepare().
684 * Remove casting convenience methods on Individual (casting isn't hard)
685 * Change the visibility of the setters of PersonaStore.type_id,
686   PersonaStore.display_name, PersonaStore.id, Backend.name,
687   Backend.persona_stores and Persona.linkable_properties. This removes the
688   corresponding C setter methods which should never have been exposed
689 * Remove Tpf.PersonaError
690 * Remove the exception from the Tpf.Persona constructor
691
692 Bugs fixed:
693 * Bug 629081 — Add API to allow specific backends to be disabled
694 * Bug 629862 — Add tests for the key-file backend
695 * Bug 628883 — Add localisation support
696 * Bug 633718 — Make the Folks releases buildable without vala, valadoc, or
697   g-i
698 * Bug 633080 — Crash when disconnecting twice
699
700 Overview of changes from libfolks 0.3.0 to libfolks 0.3.1
701 ==========================================================
702
703 Major changes:
704 * Tpf.Persona.contact is now guaranteed to have the client type feature
705
706 API changes:
707 * Add the PersonaStore:can-add-personas property
708 * Add the PersonaStore:can-remove-personas property
709 * Add the PersonaStore:can-alias-personas property
710 * Add the PersonaStore:can-group-personas property
711 * Make Individual implement the IMable interface
712
713 Bugs fixed:
714 * Bug 630431 — notify::alias is never emitted
715 * Bug 631864 — Crash when empathy disconnects
716 * Bug 632096 — build failure: contact-retrieval.o: undefined reference to
717   symbol 'gee_abstract_collection_add'
718 * Bug 632163 — Folks key-file backend needs a way to point to a specific
719   .ini file
720 * Bug 632564 — assertion `EMPATHY_IS_CONTACT (contact)' failed in
721   individual_store_contact_sort
722
723 Overview of changes from libfolks 0.1.17 to libfolks 0.3.0
724 ==========================================================
725
726 Major changes:
727 * Fixed some linking problems
728 * Added some missing documentation
729 * Fixed build problems introduced by switching to gobject-introspection 0.9.6
730   (i.e. GIR format 1.2)
731 * Bumped telepathy-glib dependency to 0.11.16
732 * Bumped Vala dependency to 0.10.0
733 * Bumped gobject-introspection dependency to 0.9.6
734 * Ensured IM addresses are normalised before being compared
735 * Made the folks-import build optional through a configure argument
736 * Added support for a “self” individual
737 * Added support for generating and installing Devhelp format documentation
738 * BackendStore.load_backends and the prepare() functions are now idempotent
739 * Tpf.Persona.contact is now guaranteed to have the avatar token and data
740   features
741 * Tpf.Persona.contact is now guaranteed to have the capabilities feature
742
743 API changes:
744 * Added IMable.normalise_im_address()
745 * Renamed Groups interface to Groupable
746 * Renamed Alias interface to Aliasable
747 * Removed BackendStore constructor
748 * Added BackendStore.dup()
749 * Added BackendStore::enabled-backends
750 * Added Individual::is-user
751 * Added Persona::is-user
752 * Added IndividualAggregator::user
753 * Added PersonaStoreError.UNSUPPORTED_ON_USER
754 * Added {IndividualAggregator, PersonaStoreError}.STORE_OFFLINE, used by the
755   respective add_persona_from_details() functions
756
757 Bugs fixed:
758 * Bug 629452 — [Patch] Add missing gio linking for import-tool
759 * Bug 626008 — Add @since lines to all symbols
760 * Bug 629311 — Folks should normalize IDs written to the writable backend
761 * Bug 629644 — Key file backend cannot be loaded because of linking problems
762 * Bug 629666 — libfolks should not hard autodetect libxml
763 * Bug 628970 — Folks API needs a way to determine whether a specific type of
764   PersonaStore is available
765 * Bug 629096 — Add a library init function
766 * Bug 627402 — Support marking FolksPersonas as "me"
767 * Bug 629642 — individuals-changed emitted in the wrong order
768 * Bug 629643 — do not fall back to the id if alias is empty
769 * Bug 629006 — PersonaStore should gracefully handle offline Persona change
770   attempts
771 * Bug 629331 — BackendStore.load_backends and the prepare() functions should
772   be idempotent.
773 * Bug 629008 — Add a test for Persona additions
774 * Bug 630347 — Avatars are always NULL
775
776 Overview of changes from libfolks 0.1.16 to libfolks 0.1.17
777 ===========================================================
778
779 Major changes:
780 * Added a basic test suite
781 * Cleaned up the build system
782 * Ensured the public libraries' VAPI files are distributed and installed
783 * Prevented the key-file from being saved unnecessarily
784 * Fixed multi-byte character handling in the key-file backend
785 * Ensured account removal and invalidation is handled in the Telepathy backend
786 * Prevented a hang when creating relationships.ini in certain situations
787 * Added a folks-import tool to import meta-contact data from Pidgin; this adds
788   a dependency on libxml
789
790 API changes:
791 * Added PersonaStore.flush()
792
793 Bugs fixed:
794 * Bug 628930 — folks crahses empathy on relationships.ini read
795 * Bug 629082 — Empathy crashes when toggling "Ignore SSL certificate errors"
796   checkbox
797 * Bug 628853 — hangs if there's no relationships.ini file
798 * Bug 629084 — Add a folks-import tool
799
800 Overview of changes from libfolks 0.1.15 to libfolks 0.1.16
801 ===========================================================
802
803 Major changes:
804 * Added more debugging output
805 * Fixed various small outputted code bugs
806 * Fixed problem where key file groups would be overwritten in some situations
807 * Fixed various signal emission problems
808 * Prevented changes to Personas' properties from being propagated back up to the
809   Individuals
810 * Limited libgee dependency to < 0.7 due to API changes in libgee
811 * Added a FOLKS_DISABLE_LINKING environment variable to disable linking (for
812   debugging purposes)
813
814 Bugs fixed:
815 * Bug 628108 — Favorite contacts are not save any more
816 * Bug 628294 — Some contacts appear to be linked together while they shouldn't
817 * Bug 628305 — Signal removal of Individuals containing untrusted Personas
818 * Bug 628131 — error message when trying to link ICQ with jabber
819 * Bug 628343 — Add an environment variable to disable linking
820 * Bug 628335 — Assertion error with master
821
822 Overview of changes from libfolks 0.1.14.1 to libfolks 0.1.15
823 =============================================================
824
825 Major changes:
826 * Fixed various build problems
827 * Ensured duplicate entries don't appear in various sets
828 * Made gobject-introspection dependency explicit
829 * Limited libgee dependency to <= 0.5.2 due to API changes in libgee
830 * Reworked some of the Individual internals to make notifications more efficient
831 * Added the concept of an Individual's “trust level”
832 * Changed alias fallbacks to fall back to a display ID instead of a UID
833 * Added support for storing aliases in the key-file backend and use them in
834   preference to aliases from other Personas in an Individual
835
836 API changes:
837 * Added Individual:personas-changed
838 * Added TrustLevel enum
839 * Added Individual::trust-level
840 * Implemented Alias on Kf.Persona
841
842 Bugs fixed:
843 * Bug 627314 — folks cannot be install in gentoo sandbox
844 * Bug 627506 — Require gobject-introspection
845 * Bug 626725 — Add an Individual.personas_changed signal
846 * Bug 627968 — Add Individual.trust_level property
847 * Bug 626578 — Use vala's vala.m4 to check for telepathy-glib(.vapi)
848 * Bug 626410 — contacts show up with a weird alias
849 * Bug 627508 — Store alias and groups in the key-file backend
850 * Bug 627898 — Fails to install with -j4
851
852 Overview of changes from libfolks 0.1.14 to libfolks 0.1.14.1
853 =============================================================
854
855 Major changes:
856 * Bumped Vala dependency to 0.9.6
857 * Fixed some more warning spew
858
859 Overview of changes from libfolks 0.1.13 to libfolks 0.1.14
860 ===========================================================
861
862 Major changes:
863 * Changed Vala detection code to use the correct macro
864 * Bumped Vala dependency to 0.9.5
865 * Removed some more message spew
866 * Changed tp-lowlevel Vala bindings to be generated using gobject-introspection
867 * Added optional dependency on gobject-introspection 0.6.7
868
869 Overview of changes from libfolks 0.1.12 to libfolks 0.1.13
870 ===========================================================
871
872 Major changes:
873 * Added the concept of “linkable properties”
874 * Added the IMable interface
875 * Added the concept of persona store “trust”
876 * Added a writeable key-file backend
877 * Added linking support to the IndividualAggregator
878 * Tidied up ID handling in the backends
879 * Warn if a backend's MIME type could not be determined, notifying the user if
880   libfolks can't load backends due to shared-mime-info not being installed
881 * Hint to clients the Individual replacing a removed Individual (if any)
882 * Exposed Telepathy contacts' IM addresses using the IMable interface
883 * Fixed some build and dependency issues
884 * Bumped telepathy-glib dependency to 0.11.11 and dropped dependency on
885   telepathy-vala
886 * Added the concept of “writeable” PersonaStores and use this concept to prevent
887   properties being synchronised between PersonaStores unnecessarily (and
888   potentially even destructively)
889
890 API changes:
891 * Added Persona::linkable-properties
892 * Added IMable interface
893 * Added PersonaStoreTrust enum
894 * Added PersonaStore::trust-level
895 * Added Persona.LinkablePropertyCallback()
896 * Added Persona.linkable_property_to_links()
897 * Added Persona.build_uid()
898 * Added Persona.split_uid()
899 * Added Persona::display-id
900 * Added PersonaStore::display-name
901 * Added replacement_individual parameter to Individual:removed
902 * Implemented IMable on Tpf.Persona
903 * Added IndividualAggregatorError.NO_WRITEABLE_STORE
904 * Added IndividualAggregator.link_personas()
905 * Added IndividualAggregator.unlink_individual()
906 * Added PersonaStore::is-writeable
907
908 Bugs fixed:
909 * Bug 625830 — Adding an existing contact to the tp backend results in bogus
910   warnings
911 * Bug 626108 — Defining XDG_DATA_DIRS prevents backends from being loaded
912
913 Overview of changes from libfolks 0.1.11 to libfolks 0.1.12
914 ===========================================================
915
916 Major changes:
917 * Added debug flags support using the FOLKS_DEBUG environment variable
918 * Removed various bits of message and warning spew
919 * Bumped Vala dependency to 0.9.4
920 * Ensured connections which are ready as soon as they're connected are handled
921   correctly
922 * Versioned the installed backends using the main library's libtool version
923
924 Bugs fixed:
925 * Bug 625815 — No contat showed in the contact list
926
927 Overview of changes from libfolks 0.1.10 to libfolks 0.1.11
928 ===========================================================
929
930 Major changes:
931 * Moved various bits of preparation code out into async prepare() methods to
932   avoid race conditions on startup
933 * Reset TpfPersonaStore state when going offline
934 * Made several methods async which could potentially require it in future
935 * Added error throws to various functions which could potentially fail in future
936
937 API changes:
938 * Added PersonaStore.prepare()
939 * Added Backend.prepare()
940 * Removed error thrown from Backend constructor
941 * Added IndividualAggregator.prepare()
942 * Changed return type of Presence.is_online() from uint to int
943 * Made IndividualAggregator.remove_individual() async
944 * Made PersonaStore.remove_persona() async
945 * Added an error throw to BackendStore.load_backends()
946 * Added an error throw to IndividualAggregator.prepare()
947 * Added an error throw to IndividualAggregator.remove_individual()
948 * Added an error throw to IndividualAggregator.remove_persona()
949 * Added an error throw to PersonaStore.remove_persona()
950 * Made Groups.change_group() async
951 * Made Groups:group-changed async
952
953 Overview of changes from libfolks 0.1.9 to libfolks 0.1.10
954 ==========================================================
955
956 Major changes:
957 * Fixed various memory and reference leaks
958 * Lots of build system improvements
959 * Added a libtool version to the installed libraries
960
961 Initial release of libfolks 0.1.9
962 =================================
963
964 Major changes:
965 * Move to GNOME infrastructure