Home | Back
Overview of changes from libfolks 0.7.2 to libfolks 0.7.3
=========================================================

Bugs fixed:
• Bug 629537 — Support anti-linking
• Bug 679618 — Crash when unsetting all groups
• Bug 678696 — Add API for EDS Google system groups
• Bug 669158 — Readonly/Offline issues
• Bug 675223 — Shouldn't warn if CM does not implement any contact list
• Bug 660128 — Most contacts don't have an avatar
• Bug 652637 — Don't hold locks across async calls
• Bug 660236 — Paging for long text in folks-inspect
• Bug 679116 — Output debug message if modules are not loaded because of mime
  type detection
• Bug 657456 — Folks test output not terribly useful
• Bug 674611 — Remove gconf.path once EDS drops GConf

API changes:
• Add AntiLinkable interface and implement it on Kf.Persona and Edsf.Persona
• Add Edsf.Persona.in_google_personal_group
• Add IndividualAggregator.unprepare()

Overview of changes from libfolks 0.7.1 to libfolks 0.7.2
=========================================================

Dependencies:
• evolution-data-server ≥ 3.5.3.1

Bugs fixed:
• Bug 677166 — Salut personas survive disconnection
• Bug 678474 — potential-match should be smarter with accents
• Bug 678781 — memory leak in e-d-s backend
• Bug 678811 — Fix eds backend unit tests
• Bug 678734 — Add profiling API
• Bug 679020 — Fail to build master using vala master

API changes:
• Add profiling api

Overview of changes from libfolks 0.7.0 to libfolks 0.7.1
=========================================================

Dependencies:
• telepathy-glib ≥ 0.17.5
• libzeitgeist ≥ 0.3.14
• evolution-data-server ≥ 3.5.3
• GLib ≥ 2.26.0
• GConf dependency dropped
• intltool ≥ 0.50.0

Bugs fixed:
• Bug 674256 — telepathy-glib minimal version is insufficient
• Bug 647909 — Port Folks to GSettings
• Bug 663890 — @throws annotations missing for some functions
• Bug 675292 — Assertion when joining IRC channel
• Bug 676023 — Invalid read when preparing the aggregator
• Bug 627403 — Move default presence messages from Empathy to libfolks
• Bug 675121 — port Folks to eds api changes
• Bug 672709 — Add new interaction details properties to individuals

API changes:
• Add PresenceDetails.get_default_message_from_type()
• Add new Individual properties:
    - im_interaction_count
    - call_interaction_count
    - last_im_interaction_timestamp
    - last_call_interaction_timestamp
• Add InteractionDetails interface to report interactions with Personas and
  Individuals

Overview of changes from libfolks 0.6.9 to libfolks 0.7.0
=========================================================

Major changes:
* Folks now uses the Connection.ContactList Telepathy spec. instead of the
  deprecated Channel.ContactList. This means legacy Connection Managers
  (notably telepathy-butterfly) are not supported any more .

Bugs fixed:
• Bug 658576 — Need API to get a FolksIndividual from his ID
• Bug 671662 — Renamed alias of Facebook contact is not saved
• Bug 630822 — Support Connection.Interface.ContactList API

API changes:
• Add IndividualAggregator.look_up_individual()

Overview of changes from libfolks 0.6.8 to libfolks 0.6.9
=============================================================

Dependencies:
• telepathy-glib ≥ 0.15.5

Bugs fixed:
• Bug 672980 — tp_account_get_protocol: assertion `TP_IS_ACCOUNT (account)' failed

Overview of changes from libfolks 0.6.7 to libfolks 0.6.8
=============================================================

Major changes:
* FOLKS_DEBUG has been removed in favour of G_MESSAGES_DEBUG (and the bug where
  folks would set G_MESSAGES_DEBUG for any process linked to it has been fixed)
* A --disable-fatal-warnings configure flag has been added for non-developers
* Update favourite status of EDS contacts with membership of the ‘Starred in
  Android’ Google Contacts group
* Improvements to linking suggestions (potential matches)
* Improvements to folks-inspect to make it a good command line citizen

Bugs fixed:
* Bug 670191 — IndividualAggregator::is-quiescent is never set to TRUE
* Bug 670523 — persona.vala:153:folks_persona_get_individual:
  assertion failed: (_tmp6_)
* Bug 672381 — invalid uninstantiatable type `<invalid>' in cast to
  `FolksIndividual'
* Bug 670347 — Check for null birthday strings
* Bug 661490 — Should mark contacts from the "Starred in Android" group as
  Favorites
* Bug 671714 — Fail to add contact to the contact list
* Bug 672373 — folks-import segfaults (Archlinux x86_64)
* Bug 670348 — Handle Telepathy CMs crashing/being invalidated
* Bug 671900 — Folks should not suggest linking contacts from telepathy-salut
* Bug 670872 — Should be less sensitive to accentuated chars
* Bug 669984 — Does not notify when contacts are added to groups
* Bug 660235 — Consistent signal handlers to a terminal would be cool
* Bug 671499 — Don't set G_MESSAGES_DEBUG unconditionally

API changes:
* Add MatchResult.NONE enum member

Overview of changes from libfolks 0.6.6 to libfolks 0.6.7
=============================================================
Bugs fixed:
* Bug 666310 — Crash in Tracker backend by unsetting an entry in a read-only map
* Bug 666528 — Can't convert from type 'GFile' to 'gchararray'
* Bug 666540 — Segfault on empty e-mail addresses with potential match
* Bug 659610 — Support code coverage report generation
* Bug 657063 — Allow to pass a command to folks-inspect
* Bug 667410 — A second instance of the aggregator only fetch a small subset of
  my contacts
* Bug 667535 — persona created by tpf_persona_dup_for_contact() outlives its
  TpContact
* Bug 670196 — Disable GLib deprecation warnings
* Bug 668415 — Port to Vala 0.15.x

API changes:
* Add PostalAddress.is_empty() and Role.is_empty()

Overview of changes from libfolks 0.6.5 to libfolks 0.6.6
=============================================================
Bugs fixed:
* Bug 664158 — Stale log handler can cause segfault when re-creating Aggregator
  in a single run
* Bug 663889 — crash due to NameDetails which fail to guarantee
  non-null full-name/nickname
* Bug 665039 — Crash in folks_backends_sw_backend_add_service
* Bug 665728 — TpfPersonaStore: prepare() isn't mutually exclusive inside a
  single thread
* Bug 665692 — Use constructors correctly
* Bug 665376 — Add API to get a TpfPersona from a TpContact

API changes:
* Add Edsf.PersonaStore.source
* Make Edsf.Persona.contact writeable on construct (previously private setter)
* Make Edsf.Persona.contact_id writeable on construct (previously private
  setter)
* Add Swf.PersonaStore.service
* Make Swf.Persona.lsw_contact writeable on construct (previously private
  setter)
* Add Trf.Persona.tracker_id
* Add Trf.Persona.cursor
* Make AbstractFieldDetails.value writeable on construct (previously just a
  normal setter)
* Make AbstractFieldDetails.parameters writeable on construct (previously just a
  normal setter)
* Add ObjectCache.type_id
* Add ObjectCache.id
* Add Tpf.PersonaStore.dup_for_account() and Tpf.Persona.dup_for_contact()

Overview of changes from libfolks 0.6.4.1 to libfolks 0.6.5
=============================================================
Bugs fixed:
* Bug 662285 — Error with email -> im_addresses when updating a contact
* Bug 662433 — AbstractFieldDetails.equal() is ambiguous about checking
  parameters.
* Bug 660908 — Add favourites support to EDS backend
* Bug 662770 — ContactPhotos are ignored when mime type is null
* Bug 662616 — We should set mime type when setting an EContact's photo
* Bug 662274 — Failed to link personas: Can't link personas with no primary
  store.
* Bug 662314 — Gnome-shell restarts if I change my user status to
  disconnected/unavailable
* Bug 663798 — Add AbstractFieldDetails.value_type
* Bug 659585 — GLib-GIO-CRITICAL **: g_bus_unwatch_name: assertion
  `watcher_id > 0' failed

API changes:
* Add AbstractFieldDetails.id to identify instances of details
* Deprecate PostalAddress.uid in favor of AbstractFieldDetails.id
* Deprecate NoteFieldDetails.uid in favor of AbstractFieldDetails.id
* Deprecate Role.uid in favor of AbstractFieldDetails.id
* Add AbstractFieldDetails.values_equal() to compare values (but not parameters)
* Implement FavouriteDetails on Edsf.Persona
* Add AbstractFieldDetails.value_type

Behavior changes:
* PostalAddress.equal() now ignores PostalAddress.uid
* NoteFieldDetails.equal() now ignores NoteFieldDetails.uid

Overview of changes from libfolks 0.6.4 to libfolks 0.6.4.1
=============================================================
Bugs fixed:
* Bug 662095 — so name of libfolks v 0.6.4 is lower than of libfolks v 0.6.3.x

Overview of changes from libfolks 0.6.3.2 to libfolks 0.6.4
=============================================================
Bugs fixed:
* Bug 660217 — folks-0.6.3.2 requires tracker-0.12, but configure.ac calls
  VALA_CHECK_PACKAGES([tracker-sparql-0.12])
* Bug 657602 — Telepathy backend fails to set Personas' phone numbers from
  ContactInfo
* Bug 660937 — [regression] build failure: No package 'gee-1.0' found
* Bug 661475 — string_strip: assertion `self != NULL' failed

API changes:
* Implement PhoneDetails on Tpf.Persona
* Implement NameDetails on Tpf.Persona
* Implement EmailDetails on Tpf.Persona
* Implement UrlDetails on Tpf.Persona
* Implement BirthdayDetails on Tpf.Persona
* Add PersonaStoreError.UNSUPPORTED_ON_NON_USER

Overview of changes from libfolks 0.6.3.1 to libfolks 0.6.3.2
=============================================================
Bugs fixed:
* Bug 660140 — contacts_contact_find_persona_from_store: assertion `store !=
  NULL' failed
* Bug 659041 — tpf-persona-store.vala: try to connect to a NULL object
* Bug 660051 — require tracker 0.12

Overview of changes from libfolks 0.6.3 to libfolks 0.6.3.1
===========================================================
Bugs fixed:
* Bug 658631 — Deprecate PersonaStore.can-[alias|group]-personas
* Bug 658002 — defective typelib
* Bug 659737 — tests fail due to usage of deprecated methods
* Bug 659732 — Gnome fails to load and crashes when the Evolution-exchange
  plugin is configured

API changes:
* Deprecate Folks.PersonaStore.can_[alias, group]_personas.
  Applications should use Folks.PersonaStore#always-writeable-properties
  and Folks.Persona#writeable-properties to check availability of "alias"
  and "groups" properties.

Overview of changes from libfolks 0.6.2.1 to libfolks 0.6.3
===========================================================

Major changes:
* Cleanup of the definition of “writeable” which involves a couple of API
  deprecations and additions, and some internal re-working.
* Beginnings of standardising TYPE values for AbstractFieldDetails

Bugs fixed:
* Bug 658631 — crash at empathy startup
* Bug 658331 — Ensure read-only PersonaStores have empty writeable-properties
* Bug 658874 — Typo?
* Bug 658730 — ngettext (Plural forms) needed for
  "Imported %u buddies from '%s'."
* Bug 633781 — Allow to set avatar on individuals
* Bug 657142 — Automatically link e-d-s contacts with their contacts from
  telepathy
* Bug 658002 — defective typelib
* Bug 657065 — Cache keeps around contacts from disabled accounts
* Bug 658323 — Deprecate FOLKS_WRITEABLE_STORE in favour of FOLKS_PRIMARY_STORE
* Bug 659095 — Don't distribute typelib file
* Bug 659128 — If a persona store goes away we don't remove its personas
* Bug 657141 — Backend should ask eds for the default backend, not hardcode it
* Bug 658531 — Sometimes avatar caching doesn't work
* Bug 658328 — Return PropertyError.NOT_WRITEABLE from Persona property setters
  as appropriate
* Bug 646847 — We should rename _update () in Trf.Persona to something more less
  misleading
* Bug 658161 — Consistently use “contact” in translatable strings instead of
  “persona”
* Bug 657738 — Favorite people are not always displayed
* Bug 653623 — Would like a set of standard "type" parameters for UrlDetails

API changes:
* Individual.avatar is now settable using Individual.change_avatar() (not new
  API, but it no longer always returns an error)
* We now use the FOLKS_PRIMARY_STORE env var instead of FOLKS_WRITEABLE_STORE
  to configure the primary store
* Deprecate Folks.PersonaStore.is_writeable
* Add Folks.PersonaStore.is_primary_store
* Add Folks.IndividualAggregatorError.NO_PRIMARY_STORE
* In IndividualAggregator.ensure_individual_property_writeable we now throw
  NO_PRIMARY_STORE instead of NO_WRITEABLE_STORE
* Add Folks.PersonaStore.user_set_default
* Add AbstractFieldDetails.PARAM_TYPE, .PARAM_TYPE_HOME, .PARAM_TYPE_WORK,
  .PARAM_TYPE_OTHER
* Add UrlFieldDetails.PARAM_TYPE_HOME_PAGE, .PARAM_TYPE_BLOG,
  .PARAM_TYPE_PROFILE, .PARAM_TYPE_FTP

Overview of changes from libfolks 0.6.2 to libfolks 0.6.2.1
===========================================================

Bugs fixed:
* Bug 658580 — Assertion in gee_hash_map_node_iterator_next with folks 0.6.2

Overview of changes from libfolks 0.6.1 to libfolks 0.6.2
=========================================================

Bugs fixed:
* Bug 645056 — TpLowlevel library should have only static public functions
* Bug 653777 — Would be nice to have a helper function to create a writable
  persona
* Bug 657635 — Linking personas from different (e-d-s) stores is not working
* Bug 657510 — Add asynchronous property setter methods
* Bug 656184 — Add is-quiescent property
* Bug 657971 — Need BirthdayDetails support in eds backend
* Bug 657789 — Don't claim uneditable eds fields as writable
* Bug 657282 — Add an IndividualAggregator.individuals_changed_detailed signal
* Bug 657969 — Support RoleDetails in eds backend
* Bug 657783 — Prefer data from primary store when picking Individual values
* Bug 658411 — Only emit notifications for linkable properties if they've
  actually changed
* Bug 656689 — Re-link personas on linkable properties being changed

API changes:
* Add PersonaStore:always-writeable-properties property
* Add IndividualAggregatorError.PROPERTY_NOT_WRITEABLE error
* Add IndividualAggregator.ensure_individual_property_writeable()
* Add Folks.PropertyError
* Add *Details.change_*() virtual methods
* Add IndividualAggregator:is-quiescent, Backend:is-quiescent and
  PersonaStore:is-quiescent
* Add PersonaDetail.GROUPS and PersonaDetail.INVALID
* Add IndividualAggregator.individuals_changed_detailed and deprecate
  IndividualAggregator.individuals_changed (but not remove or break it)

Overview of changes from libfolks 0.6.0 to libfolks 0.6.1
=========================================================

Bugs fixed:
* Bug 656659 — Use vcards for postal addresses
* Bug 655374 — Un-break avatar tests
* Bug 657067 — Can't build EDS backend using Vala master
* Bug 657332 — Add linking link-individuals

Overview of changes from libfolks 0.5.2 to libfolks 0.6.0
=========================================================

Bugs fixed:
* Bug 649925 — expose SocialWebClient.Contact in Swf.Persona
* Bug 646244 — Incomplete logic to handle attribute updates in Folks.Individual
* Bug 652463 — Tidy up CLEANFILES
* Bug 652434 — Add ability to run any tests through gdb
* Bug 648071 — Add support for presence status from Telepathy
* Bug 652472 — Handle failure in getting the logger service better
* Bug 629716 — Migrate Folks to GDBus
* Bug 652660 — Make Individual.id more stable and well-defined
* Bug 652449 — Folks.Individual's property getters should be read only
* Bug 653325 — Build system does not complain if trying to build docs without
  vala-doc installed
* Bug 653746 — mismatch between hash and equals in Note
* Bug 638281 — Add an EDS backend
* Bug 654509 — Folks master not building
* Bug 652048 — Make nickname writable
* Bug 652425 — Failure codes for removing personas needed in PersonaStoreError
* Bug 645549 — Add a way to get the individual from a persona
* Bug 650422 — Add API for easily checking whether details are writeable
* Bug 655019 — Don't notify twice for nickname changes
* Bug 650414 — Need better APIs to handle image data
* Bug 652643 — Add PersonaStore cache
* Bug 655510 — Make truly-writeable *Details property setters public
* Bug 654907 — The writable store shouldn't be set by type_id
* Bug 655745 — Implement read/write support for gender property
* Bug 649296 — Folks backend files shouldn't begin with "lib"
* Bug 652657 — Allow writing to properties of all personas
* Bug 655008 — Tidy up error handling in eds backend
* Bug 653619 — Add company details
* Bug 653679 — Change PostalAddressDetails.postal_addresses to support
  vCard-like arbitrary parameters
* Bug 653680 — Change ImDetails.im_addresses to support vCard-like arbitrary
  parameters
* Bug 655917 — Rebase EmailDetails.email_addresses upon an
  AbstractFieldDetails-derived class
* Bug 655374 — Un-break avatar tests
* Bug 655919 — Rebase NoteDetails.notes upon an AbstractFieldDetails-derived
  class
* Bug 655920 — Rebase PhoneDetails.numbers upon an AbstractFieldDetails-derived
  class
* Bug 653682 — Change WebServiceDetails.web_service_addresses to support
  vCard-like arbitrary parameters
* Bug 655921 — Change RoleDetails.roles to support vCard-like arbitrary
  parameters
* Bug 655922 — Rebase UrlDetails.urls upon an AbstractFieldDetails-derived class
* Bug 648818 — Support the EDS backend being a primary
* Bug 655609 — Implement setter for URLs

API changes:
* Swf.Persona retains and exposes its libsocialweb Contact
* Add a PresenceDetails.presence_status property
* Make NameDetails.nickname settable
* Drop AliasDetails support from Trf.Persona
* Add PersonaStoreError.PERMISSION_DENIED and PersonaStoreError.REMOVE_FAILED
* Change the error domain of PersonaStore.remove_persona() from GLib.Error to
  Folks.PersonaStoreError
* Add a Persona.individual property
* Add a Persona.writeable_properties property and implement it in all the
  Persona subclasses
* Make BirthdayDetails.calendar_event_id nullable
* Make Folks.Utils public and add Gee structure equality functions
* AvatarDetails.avatar is now of type LoadableIcon?
* Add AvatarCache class
* Add ObjectCache class
* Remove leaked internal PotentialMatch.result_to_string() method
* Add RoleDetails:role property
* Rebase FieldDetails upon AbstractFieldDetails (requiring the use of the
  equivalent AbstractFieldDetails functions in place of the FieldDetails ones).
* Add AbstractFieldDetails.equal() and hash() for better matching on structures
  which will store derived objects.
* Add parameters as an optional argument for the FieldDetails constructor
* Use PostalAddressFieldDetails for PostalAddressDetails.postal_addresses
* Remove PostalAddress.types (obsoleted by PostalAddressFieldDetails.parameters)
* Add and use ImFieldDetails for ImDetails.im_addresses
* Add and use EmailFieldDetails for EmailFieldDetails.email_addresses
* Add and use NoteFieldDetails for NoteFieldDetails.notes
* Remove Note class (obsoleted by NoteFieldDetails)
* Add and use PhoneFieldDetails for PhoneFieldDetails.phone_numbers
* Remove all PhoneDetails functions (obsoleted by PhoneFieldDetails)
* Add and use WebServiceFieldDetails for
  WebServiceFieldDetails.web_service_addresses
* Use RoleFieldDetails for RoleDetails.roles
* Use UrlFieldDetails for UrlDetails.urls

Overview of changes from libfolks 0.5.1 to libfolks 0.5.2
=========================================================

Bugs fixed:
* Bug 650067 — Tracker backend warns when setting a NULL avatar (ie, unsetting
  the avatar)
* Bug 650268 — build failure: "--vapidir=.: command not found"

Overview of changes from libfolks 0.5.0 to libfolks 0.5.1
=========================================================

Bugs fixed:
* Bug 645388 — Group channels are leaked
* Bug 647562 — Don't crash on duplicate group channels
* Bug 647121 — Crash in individual_store_contact_sort at
  empathy-individual-store.c line 1387
* Bug 645684 — Implement Iterator on LinkedHashSet
* Bug 640092 — Folks should minimize use of GLib.List (including its public API)
* Bug 648161 — Add GObject Introspection Support
* Bug 645186 — Make sure all connect() calls have appropriate disconnect() calls
* Bug 648533 — Add runtime debug signalling
* Bug 649790 — Vala uses the wrong includes
* Bug 649088 — Combining contacts doesn't work with german Umlauts

API changes:
* LinkedHashSet.list_iterator() is now disallowed (causes an assertion failure)
* LinkedHashSet.iterator() now returns a BidirIterator instead of just an
  Iterator
* ImDetails.im_addresses is now of type MultiMap<string, string>
* WebServiceDetails.web_service_addresses is now of type
  MultiMap<string, string>
* Removed LinkedHashSet in favour of Gee.HashSet
* Backend.persona_stores is now of type Map<string, PersonaStore>
* GroupDetails.groups is now of type Set<string>
* FieldDetails.parameters is now of type MultiMap<string, string>
* FieldDetails.get_parameter_values() now returns type Collection<string>
* FieldDetails.extend_parameters() now takes type MultiMap<string, string>
* PostalAddressDetails.postal_addresses is now of type Set<PostalAddress>
* EmailDetails.email_addresses is now of type Set<FieldDetails>
* PhoneDetails.phone_numbers is now of type Set<FieldDetails>
* UrlDetails.urls is now of type Set<FieldDetails>
* BackendStore.enabled_backends now has type Map<string, Backend>
  - The corresponding C function folks_backend_store_dup_enabled_backends()
    has been renamed folks_backend_store_get_enabled_backends(), and no longer
    returns an owned variable.
* Individual.personas now has type Set<Persona>
* Individual.personas_changed now uses Set<Persona>-typed parameters
* PersonaStore.personas_changed now uses Set<Persona>-typed parameters
* IndividualAggregator.individuals_changed now uses
  Set<Individual>-typed parameters
* IndividualAggregator.link_personas() now takes a Set<Persona>
* IndividualAggregator.get_all_potential_matches() now returns a
  Map<Individual, Map<Individual, MatchResult>>
* IndividualAggregator.get_potential_matches() now returns a
  Map<Individual, MatchResult>
* IndividualAggregator.individuals now has type Map<string, Individual>
* PersonaStore.personas now has type Map<string, Persona>
* LocalIdDetails.local_ids now has type Set<string>
* NoteDetails.notes now has type Set<Note>
* RoleDetails.roles now has type Set<Role>
* PotentialMatch.known_email_aliases now has type Set<string>
* PostalAddress.types now has type Set<string>
* Add Folks.Debug debug controller class
* All pc-files now only add the $includedir to the cflags, so all includes
  must be of the form <folks/*.h>

Overview of changes from libfolks 0.4.0 to libfolks 0.5.0
=========================================================

Major changes:
* Add support to change primary (writeable) store either via
  GConf or an env variable (bug 645441).
* Bumped Vala dependency to 0.12.0 for bug #646345

Bugs fixed:
* Bug 644968 - _update_phone_numbers() needs to create copies
  of each List<FieldDetails>
* Bug 644966 - _update_emails () needs to create copies of each
  List<FieldDetails>
* Bug 644527 - Add a Tracker backend
* Bug 645430 - folks-inspect: Use LinkedHashSet to access im-addresses
* Bug 645411 - folks-import segfaults on startup
* Crasher when removing Personas
* Crasher when reconnecting a Telepathy account
* Bug 645680 — Use random integer IDs for Kf.Personas
* Bug 645475 — Linker warnings for Tracker backend tests
* Bug 645570 — Fix checks for empty and equal StructuredNames
* Bug 645989 — Ensure add_persona_from_details handles the basic attribute
* Bug 645413 — Write support for Tracker
* Bug 645441 — Mechanism to specify primary backend
* Bug 638280 — Add a libsocialweb backend
* Deal with duplicated phones/e-mails in Tracker
* Bug 646944 — Fix libsocialweb updates and removals of contacts
* Bug 644867 — add interface for linkable web service contact UIDs
* Bug 647168 — print the "web-service-addresses" property correctly
* Bug 646831 — Setting an existing phone number or e-mail address on a
  Trf.Persona fails
* Bug 647298 — folks-inspect gets SIGSEGV when trying to auto-complete
  parameters
* Bug 646948 — Support for potential matches

API changes:
* Add equal () to StructuredName
* Add detail_key () along with an enum PersonaDetail to PersonaStore
  which together define the basic attributes that should be supported
  by add_persona_from_details ().
* Add public primary_store to IndividualAggregator
* Add LocalIdDetails interface for linking Personas based on local address book
  IDs (such as for the Tracker backend Personas)
* Add WebServiceDetails interface for linking Personas based on web service
  accounts (such as for the libsocialweb backend Personas)
* Add PotentialMatch class and IndividualAggregator.get_potential_matches() and
  IndividualAggregator.get_all_potential_matches() to suggest Individuals that
  may match the given Individual or all potential matches, respectively.

Overview of changes from libfolks 0.3.6 to libfolks 0.4.0
=========================================================

Bugs fixed:
* Bug 642351 — BACKEND_STORE_KEY_FILE format should support a wildcard entry
* Bug 643241 — _update_urls () needs to create copies of each
  List<FieldDetails>
* Bug 643247 — Folks needs C API documentation
* Bug 643201 — folks-inspect can't handle properties which are
  List<FieldDetails>
* Bug 642866 — tp-lowlevel leaks TpChannel
* Bug 642861 — FolksLinkedHashSet still alive when exiting Empathy
* Bug 642493 — Folks needs API for specifying a contact's organisation
* Bug 642500 — Folks needs API for specifying a contact's birthday
* Bug 642501 — Folks needs API for attaching notes to a Contact
* Bug 641210 — Add interface for postal addresses
* Bug 643956 — Use the correct signal name for postal addresses
* Bug 643954 — Add to_string () to PostalAddress class
* Bug 643955 — Add to_string () to RoleOwner class
* Bug 643957 — Deal handle birthday and postal-addresses.
* Bug 644457 — Handle structured names
* Bug 644165 — An individual's avatar shouldn't be replaced by a null avatar

API changes:
* Add RoleDetails interface
* Add BirthdayDetails interface
* Add NoteDetails interface
* Add PostalAddressDetails interface
* Rename Aliasable -> AliasDetails
* Rename AvatarOwner -> AvatarDetails
* Rename Emailable -> EmailDetails
* Rename Favouritable -> FavouriteDetails
* Rename GenderOwner -> GenderDetails
* Rename Groupable -> GroupDetails
* Rename IMable -> ImDetails
* Rename NameOwner -> NameDetails
* Rename Phoneable -> PhoneDetails
* Rename PresenceOwner -> PresenceDetails
* Rename Urlable -> UrlDetails

Overview of changes from libfolks 0.3.5 to libfolks 0.3.6
=========================================================

This is just a repackaging of libfolks 0.3.5 with some documentation comment
version numbers fixed.

Overview of changes from libfolks 0.3.4 to libfolks 0.3.5
=========================================================

Major changes:
* Various API breaks and improvements, especially in the IndividualAggregator
* Add various new interfaces: NameOwner, FieldDetails, Urlable, GenderOwner,
  Phoneable and Emailable

API changes:
* Add NameOwner interface
* Add FieldDetails interface
* Add Urlable interface
* Add GenderOwner interface
* Add Phoneable interface
* Add Emailable interface
* Add Tpf.Persona.is_in_contact_list
* Rename the URLable interface to Urlable
* Take a PersonaStore in IndividualAggregator.add_persona_from_details
* Remove IndividualAggregatorError.STORE_NOT_FOUND
* Rename the getter for BackendStore.enabled_backends from
  folks_backend_store_get_enabled_backends() to
  folks_backend_store_dup_enabled_backends()
* Rename BackendStore.get_backend_by_name() to .dup_backend_by_name()

Bugs fixed:
* Bug 640901 — Allow it to be determined whether a user Tpf.Persona is in the
  contact list
* Bug 641780 — Incorrect C function names for URLable interface
* Bug 629078 — Folks needs a full API review to take advantage of our
  compatibility break in 0.2.x
* Bug 642036 — No way to pass a message when adding a contact

Overview of changes from libfolks 0.3.3 to libfolks 0.3.4
=========================================================

Major changes:
* Add folks-inspect tool
* The use of the new LinkedHashSet type in the API may make libgee a requirement
  for some clients (to take full advantage of its class lineage).

API changes:
* New type: LinkedHashSet, similar to Gee.HashSet, but ordered.
* IMable.im_addresses is now a mapping of string to LinkedHashSet.
* Rename the HasAvatar interface to AvatarOwner
* Rename the HasPresence interface to PresenceOwner

Bugs fixed:
* Bug 637240 — libfolks-telepathy.so exports private symbols
* Bug 638311 — Add a HACKING file that outlines development policies and
  coding style
* Bug 629083 — Review coding conventions in folks
* Bug 629075 — Add folks command line application
* Bug 638609 — libfolks hard-codes backend names for debugging
* Bug 639195 — Print stack traces for failed tests to improve remote
  debugging
* Bug 639113 — Add static aggregation tests
* Bug 639742 — Logger service unavailable in make check
* Bug 640213 — Add tests for LinkedHashSet
* Bug 627397 — Use better interface names

Overview of changes from libfolks 0.3.2 to libfolks 0.3.3
=========================================================

Major changes:
* Fix some minor leaks
* Add support for building gtk-doc documentation for the C API
* Fix some related documentation problems
* Fix some Vala problems caused by differences between Vala 0.10 and 0.12
* Finish off renaming interfaces (this is an API break; see below)
* Don't trust personas from IRC
* Handle invalid IM addresses more gracefully than with an assertion failure
* Fix a linking problem with the user's individual when going offline which
  could lead to infinite loops

API changes:
* Rename the Avatar interface to HasAvatar
* Rename the Presence interface to HasPresence
* Rename the Favourite interface to Favouritable
* Add IMableError
* Throw IMableError from IMable.normalise_im_address()

Bugs fixed:
* Bug 635178 — Leak in
  folks_tp_lowlevel_connection_open_contact_list_channel_async
* Bug 635649 — autopoint fails to run
* Bug 635703 — Leak in connection_get_requestable_channel_classes_cb
* Bug 635823 — [PATCH] telepathy test not linking against GIO
* Bug 636251 — Fails to add contact
* Bug 629526 — Generate gtk-doc documentation
* Bug 627397 — Use better interface names
* Bug 636714 — Assertion failure on invalid IM address
* Bug 637136 — Infinite loop when disconnecting accounts

Overview of changes from libfolks 0.3.1 to libfolks 0.3.2
==========================================================

Major changes:
* BackendStore.load_backends() now (un)loads backends which have been
  (dis|en)abled since the last call
* FOLKS_BACKEND_DIR has been replaced by FOLKS_BACKEND_PATH. It accepts any
  number of files and directories, separated by :
* Significantly clean up the build system

API changes:
* Added BackendStore.prepare() and BackendStore::is-prepared
* Add BackendStore.enable_backend().
* Add BackendStore.disable_backend().
* Add BackendStore.unprepare().
* Remove casting convenience methods on Individual (casting isn't hard)
* Change the visibility of the setters of PersonaStore.type_id,
  PersonaStore.display_name, PersonaStore.id, Backend.name,
  Backend.persona_stores and Persona.linkable_properties. This removes the
  corresponding C setter methods which should never have been exposed
* Remove Tpf.PersonaError
* Remove the exception from the Tpf.Persona constructor

Bugs fixed:
* Bug 629081 — Add API to allow specific backends to be disabled
* Bug 629862 — Add tests for the key-file backend
* Bug 628883 — Add localisation support
* Bug 633718 — Make the Folks releases buildable without vala, valadoc, or
  g-i
* Bug 633080 — Crash when disconnecting twice

Overview of changes from libfolks 0.3.0 to libfolks 0.3.1
==========================================================

Major changes:
* Tpf.Persona.contact is now guaranteed to have the client type feature

API changes:
* Add the PersonaStore:can-add-personas property
* Add the PersonaStore:can-remove-personas property
* Add the PersonaStore:can-alias-personas property
* Add the PersonaStore:can-group-personas property
* Make Individual implement the IMable interface

Bugs fixed:
* Bug 630431 — notify::alias is never emitted
* Bug 631864 — Crash when empathy disconnects
* Bug 632096 — build failure: contact-retrieval.o: undefined reference to
  symbol 'gee_abstract_collection_add'
* Bug 632163 — Folks key-file backend needs a way to point to a specific
  .ini file
* Bug 632564 — assertion `EMPATHY_IS_CONTACT (contact)' failed in
  individual_store_contact_sort

Overview of changes from libfolks 0.1.17 to libfolks 0.3.0
==========================================================

Major changes:
* Fixed some linking problems
* Added some missing documentation
* Fixed build problems introduced by switching to gobject-introspection 0.9.6
  (i.e. GIR format 1.2)
* Bumped telepathy-glib dependency to 0.11.16
* Bumped Vala dependency to 0.10.0
* Bumped gobject-introspection dependency to 0.9.6
* Ensured IM addresses are normalised before being compared
* Made the folks-import build optional through a configure argument
* Added support for a “self” individual
* Added support for generating and installing Devhelp format documentation
* BackendStore.load_backends and the prepare() functions are now idempotent
* Tpf.Persona.contact is now guaranteed to have the avatar token and data
  features
* Tpf.Persona.contact is now guaranteed to have the capabilities feature

API changes:
* Added IMable.normalise_im_address()
* Renamed Groups interface to Groupable
* Renamed Alias interface to Aliasable
* Removed BackendStore constructor
* Added BackendStore.dup()
* Added BackendStore::enabled-backends
* Added Individual::is-user
* Added Persona::is-user
* Added IndividualAggregator::user
* Added PersonaStoreError.UNSUPPORTED_ON_USER
* Added {IndividualAggregator, PersonaStoreError}.STORE_OFFLINE, used by the
  respective add_persona_from_details() functions

Bugs fixed:
* Bug 629452 — [Patch] Add missing gio linking for import-tool
* Bug 626008 — Add @since lines to all symbols
* Bug 629311 — Folks should normalize IDs written to the writable backend
* Bug 629644 — Key file backend cannot be loaded because of linking problems
* Bug 629666 — libfolks should not hard autodetect libxml
* Bug 628970 — Folks API needs a way to determine whether a specific type of
  PersonaStore is available
* Bug 629096 — Add a library init function
* Bug 627402 — Support marking FolksPersonas as "me"
* Bug 629642 — individuals-changed emitted in the wrong order
* Bug 629643 — do not fall back to the id if alias is empty
* Bug 629006 — PersonaStore should gracefully handle offline Persona change
  attempts
* Bug 629331 — BackendStore.load_backends and the prepare() functions should
  be idempotent.
* Bug 629008 — Add a test for Persona additions
* Bug 630347 — Avatars are always NULL

Overview of changes from libfolks 0.1.16 to libfolks 0.1.17
===========================================================

Major changes:
* Added a basic test suite
* Cleaned up the build system
* Ensured the public libraries' VAPI files are distributed and installed
* Prevented the key-file from being saved unnecessarily
* Fixed multi-byte character handling in the key-file backend
* Ensured account removal and invalidation is handled in the Telepathy backend
* Prevented a hang when creating relationships.ini in certain situations
* Added a folks-import tool to import meta-contact data from Pidgin; this adds
  a dependency on libxml

API changes:
* Added PersonaStore.flush()

Bugs fixed:
* Bug 628930 — folks crahses empathy on relationships.ini read
* Bug 629082 — Empathy crashes when toggling "Ignore SSL certificate errors"
  checkbox
* Bug 628853 — hangs if there's no relationships.ini file
* Bug 629084 — Add a folks-import tool

Overview of changes from libfolks 0.1.15 to libfolks 0.1.16
===========================================================

Major changes:
* Added more debugging output
* Fixed various small outputted code bugs
* Fixed problem where key file groups would be overwritten in some situations
* Fixed various signal emission problems
* Prevented changes to Personas' properties from being propagated back up to the
  Individuals
* Limited libgee dependency to < 0.7 due to API changes in libgee
* Added a FOLKS_DISABLE_LINKING environment variable to disable linking (for
  debugging purposes)

Bugs fixed:
* Bug 628108 — Favorite contacts are not save any more
* Bug 628294 — Some contacts appear to be linked together while they shouldn't
* Bug 628305 — Signal removal of Individuals containing untrusted Personas
* Bug 628131 — error message when trying to link ICQ with jabber
* Bug 628343 — Add an environment variable to disable linking
* Bug 628335 — Assertion error with master

Overview of changes from libfolks 0.1.14.1 to libfolks 0.1.15
=============================================================

Major changes:
* Fixed various build problems
* Ensured duplicate entries don't appear in various sets
* Made gobject-introspection dependency explicit
* Limited libgee dependency to <= 0.5.2 due to API changes in libgee
* Reworked some of the Individual internals to make notifications more efficient
* Added the concept of an Individual's “trust level”
* Changed alias fallbacks to fall back to a display ID instead of a UID
* Added support for storing aliases in the key-file backend and use them in
  preference to aliases from other Personas in an Individual

API changes:
* Added Individual:personas-changed
* Added TrustLevel enum
* Added Individual::trust-level
* Implemented Alias on Kf.Persona

Bugs fixed:
* Bug 627314 — folks cannot be install in gentoo sandbox
* Bug 627506 — Require gobject-introspection
* Bug 626725 — Add an Individual.personas_changed signal
* Bug 627968 — Add Individual.trust_level property
* Bug 626578 — Use vala's vala.m4 to check for telepathy-glib(.vapi)
* Bug 626410 — contacts show up with a weird alias
* Bug 627508 — Store alias and groups in the key-file backend
* Bug 627898 — Fails to install with -j4

Overview of changes from libfolks 0.1.14 to libfolks 0.1.14.1
=============================================================

Major changes:
* Bumped Vala dependency to 0.9.6
* Fixed some more warning spew

Overview of changes from libfolks 0.1.13 to libfolks 0.1.14
===========================================================

Major changes:
* Changed Vala detection code to use the correct macro
* Bumped Vala dependency to 0.9.5
* Removed some more message spew
* Changed tp-lowlevel Vala bindings to be generated using gobject-introspection
* Added optional dependency on gobject-introspection 0.6.7

Overview of changes from libfolks 0.1.12 to libfolks 0.1.13
===========================================================

Major changes:
* Added the concept of “linkable properties”
* Added the IMable interface
* Added the concept of persona store “trust”
* Added a writeable key-file backend
* Added linking support to the IndividualAggregator
* Tidied up ID handling in the backends
* Warn if a backend's MIME type could not be determined, notifying the user if
  libfolks can't load backends due to shared-mime-info not being installed
* Hint to clients the Individual replacing a removed Individual (if any)
* Exposed Telepathy contacts' IM addresses using the IMable interface
* Fixed some build and dependency issues
* Bumped telepathy-glib dependency to 0.11.11 and dropped dependency on
  telepathy-vala
* Added the concept of “writeable” PersonaStores and use this concept to prevent
  properties being synchronised between PersonaStores unnecessarily (and
  potentially even destructively)

API changes:
* Added Persona::linkable-properties
* Added IMable interface
* Added PersonaStoreTrust enum
* Added PersonaStore::trust-level
* Added Persona.LinkablePropertyCallback()
* Added Persona.linkable_property_to_links()
* Added Persona.build_uid()
* Added Persona.split_uid()
* Added Persona::display-id
* Added PersonaStore::display-name
* Added replacement_individual parameter to Individual:removed
* Implemented IMable on Tpf.Persona
* Added IndividualAggregatorError.NO_WRITEABLE_STORE
* Added IndividualAggregator.link_personas()
* Added IndividualAggregator.unlink_individual()
* Added PersonaStore::is-writeable

Bugs fixed:
* Bug 625830 — Adding an existing contact to the tp backend results in bogus
  warnings
* Bug 626108 — Defining XDG_DATA_DIRS prevents backends from being loaded

Overview of changes from libfolks 0.1.11 to libfolks 0.1.12
===========================================================

Major changes:
* Added debug flags support using the FOLKS_DEBUG environment variable
* Removed various bits of message and warning spew
* Bumped Vala dependency to 0.9.4
* Ensured connections which are ready as soon as they're connected are handled
  correctly
* Versioned the installed backends using the main library's libtool version

Bugs fixed:
* Bug 625815 — No contat showed in the contact list

Overview of changes from libfolks 0.1.10 to libfolks 0.1.11
===========================================================

Major changes:
* Moved various bits of preparation code out into async prepare() methods to
  avoid race conditions on startup
* Reset TpfPersonaStore state when going offline
* Made several methods async which could potentially require it in future
* Added error throws to various functions which could potentially fail in future

API changes:
* Added PersonaStore.prepare()
* Added Backend.prepare()
* Removed error thrown from Backend constructor
* Added IndividualAggregator.prepare()
* Changed return type of Presence.is_online() from uint to int
* Made IndividualAggregator.remove_individual() async
* Made PersonaStore.remove_persona() async
* Added an error throw to BackendStore.load_backends()
* Added an error throw to IndividualAggregator.prepare()
* Added an error throw to IndividualAggregator.remove_individual()
* Added an error throw to IndividualAggregator.remove_persona()
* Added an error throw to PersonaStore.remove_persona()
* Made Groups.change_group() async
* Made Groups:group-changed async

Overview of changes from libfolks 0.1.9 to libfolks 0.1.10
==========================================================

Major changes:
* Fixed various memory and reference leaks
* Lots of build system improvements
* Added a libtool version to the installed libraries

Initial release of libfolks 0.1.9
=================================

Major changes:
* Move to GNOME infrastructure