[folks] Release version 0.9.7



commit 5f199c4fe2e65c7b41c278f362ac22f4fdcd1030
Author: Philip Withnall <philip tecnocode co uk>
Date:   Sat Jun 21 23:39:31 2014 +0100

    Release version 0.9.7

 NEWS                                        |   25 ++++++
 backends/bluez/bluez-backend.vala           |    2 +-
 backends/bluez/bluez-persona-store.vala     |    4 +-
 backends/bluez/bluez-persona.vala           |    2 +-
 backends/dummy/dummy-backend-factory.vala   |    4 +-
 backends/dummy/lib/dummy-backend.vala       |   26 +++---
 backends/dummy/lib/dummy-full-persona.vala  |  120 +++++++++++++-------------
 backends/dummy/lib/dummy-persona-store.vala |   60 +++++++-------
 backends/dummy/lib/dummy-persona.vala       |   20 ++--
 backends/eds/lib/edsf-persona.vala          |    2 +-
 configure.ac                                |   38 ++++----
 folks/anti-linkable.vala                    |    6 +-
 folks/individual-aggregator.vala            |    4 +-
 folks/individual.vala                       |    2 +-
 folks/name-details.vala                     |    2 +-
 folks/utils.vala                            |    2 +-
 tests/lib/bluez/backend.vala                |   20 ++--
 tests/lib/bluez/test-case.vala              |   12 ++--
 tests/lib/dummy/test-case.vala              |   14 ++--
 tests/lib/org-freedesktop-dbus-mock.vala    |    2 +-
 tests/lib/test-case.vala                    |    4 +-
 tests/lib/test-utils.vala                   |   10 +-
 22 files changed, 204 insertions(+), 177 deletions(-)
---
diff --git a/NEWS b/NEWS
index 91e65e0..a7cc106 100644
--- a/NEWS
+++ b/NEWS
@@ -2,9 +2,23 @@ Overview of changes from libfolks 0.9.6 to libfolks 0.9.7
 =========================================================
 
 Dependencies:
+ • automake ≥ 1.12
+ • If BlueZ backend is enabled:
+  - GLib ≥ 2.39.2
+  - Python 3.0
+  - python-dbusmock
+  - Vala ≥ 0.22.0.45-383d-dirty
+  - evolution-data-server ≥ 3.9.1
 
 Major changes:
  • Add a dummy backend
+ • Vast numbers of fixes to the unit tests
+ • Improvements to how Personas are transferred between Individuals
+ • Many build system cleanups
+ • New website (https://wiki.gnome.org/Projects/Folks)
+ • Allow backend libraries to have separate LT versions from the core library
+ • Performance improvements in the BlueZ backend
+ • Test suite for the BlueZ backend using python-dbusmock
 
 Bugs fixed:
  • Bug 651672 — Individual should have a display-name property
@@ -27,6 +41,16 @@ Bugs fixed:
  • Bug 731325 — Fails to build with srcdir != builddir
  • Bug 731464 — Fail to run EDS tests
  • Bug 731175 — Modifying contact phone number get a timeout
+ • Bug 712274 — Add test suite for the BlueZ backend
+ • Bug 711544 — Rename backend library namespaces to be of the form
+   ‘FolksSomething’
+ • Bug 711827 — Implement period refreshes of the persona store from the phone
+ • Bug 723187 — there is no way to detect automatic created im fields
+ • Bug 724591 — Tracker test fails
+ • Bug 724058 — Add support to avoid folks auto link
+ • Bug 726787 — Persona store uses the same value for id and display name
+ • Bug 726973 — most e-d-s tests fail
+ • Bug 730201 — some over-linking in the oFono backend
 
 API changes:
  • Add Individual.display_name
@@ -34,6 +58,7 @@ API changes:
  • Add libfolks-dummy.la and all its symbols
  • Add IndividualAggregator.backend_store
  • Add Utils.set_string_afd_equal
+ • Add Folks.Dummy* API
 
 Overview of changes from libfolks 0.9.5 to libfolks 0.9.6
 =========================================================
diff --git a/backends/bluez/bluez-backend.vala b/backends/bluez/bluez-backend.vala
index 72f7243..efcb432 100644
--- a/backends/bluez/bluez-backend.vala
+++ b/backends/bluez/bluez-backend.vala
@@ -443,7 +443,7 @@ public class Folks.Backends.BlueZ.Backend : Folks.Backend
    * Add any new devices which are on D-Bus but aren’t in the BlueZ backend.
    * This does not currently remove devices which have disappeared from D-Bus.
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   private async void _refresh_devices ()
     {
diff --git a/backends/bluez/bluez-persona-store.vala b/backends/bluez/bluez-persona-store.vala
index 4defe99..e51be74 100644
--- a/backends/bluez/bluez-persona-store.vala
+++ b/backends/bluez/bluez-persona-store.vala
@@ -932,7 +932,7 @@ public class Folks.Backends.BlueZ.PersonaStore : Folks.PersonaStore
    *
    * @param download_photos whether to download photos
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   private void _schedule_update_contacts (bool download_photos)
     {
@@ -1024,7 +1024,7 @@ public class Folks.Backends.BlueZ.PersonaStore : Folks.PersonaStore
    * necessary to avoid the store maintaining a reference to itself (through the
    * closure for the next scheduled update) and thus never being finalised.
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   internal void cancel_updates ()
     {
diff --git a/backends/bluez/bluez-persona.vala b/backends/bluez/bluez-persona.vala
index 5db3034..12fd877 100644
--- a/backends/bluez/bluez-persona.vala
+++ b/backends/bluez/bluez-persona.vala
@@ -241,7 +241,7 @@ public class Folks.Backends.BlueZ.Persona : Folks.Persona,
    * @param vcard pre-parsed vCard
    * @return ``true`` if any properties were changed, ``false`` otherwise
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   internal bool update_from_vcard (E.VCard card)
     {
diff --git a/backends/dummy/dummy-backend-factory.vala b/backends/dummy/dummy-backend-factory.vala
index 8228ef4..f507fc3 100644
--- a/backends/dummy/dummy-backend-factory.vala
+++ b/backends/dummy/dummy-backend-factory.vala
@@ -30,7 +30,7 @@ using Folks;
  * The dummy backend module entry point.
  *
  * @backend_store a store to add the dummy backends to
- * @since UNRELEASED
+ * @since 0.9.7
  */
 public void module_init (BackendStore backend_store)
 {
@@ -41,7 +41,7 @@ public void module_init (BackendStore backend_store)
  * The dummy backend module exit point.
  *
  * @param backend_store the store to remove the backends from
- * @since UNRELEASED
+ * @since 0.9.7
  */
 public void module_finalize (BackendStore backend_store)
 {
diff --git a/backends/dummy/lib/dummy-backend.vala b/backends/dummy/lib/dummy-backend.vala
index 7b6bc14..2122559 100644
--- a/backends/dummy/lib/dummy-backend.vala
+++ b/backends/dummy/lib/dummy-backend.vala
@@ -50,7 +50,7 @@ extern const string BACKEND_NAME;
  * The API in { link FolksDummy} is unstable and may change wildly. It is
  * designed mostly for use by libfolks unit tests.
  *
- * @since UNRELEASED
+ * @since 0.9.7
  */
 public class FolksDummy.Backend : Folks.Backend
 {
@@ -65,7 +65,7 @@ public class FolksDummy.Backend : Folks.Backend
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public Backend ()
     {
@@ -85,7 +85,7 @@ public class FolksDummy.Backend : Folks.Backend
    *
    * See { link Folks.Backend.is_prepared}.
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public override bool is_prepared
     {
@@ -97,7 +97,7 @@ public class FolksDummy.Backend : Folks.Backend
    *
    * See { link Folks.Backend.is_quiescent}.
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public override bool is_quiescent
     {
@@ -107,14 +107,14 @@ public class FolksDummy.Backend : Folks.Backend
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public override string name { get { return BACKEND_NAME; } }
 
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public override Map<string, PersonaStore> persona_stores
     {
@@ -124,7 +124,7 @@ public class FolksDummy.Backend : Folks.Backend
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public override void disable_persona_store (Folks.PersonaStore store)
     {
@@ -134,7 +134,7 @@ public class FolksDummy.Backend : Folks.Backend
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public override void enable_persona_store (Folks.PersonaStore store)
     {
@@ -144,7 +144,7 @@ public class FolksDummy.Backend : Folks.Backend
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public override void set_persona_stores (Set<string>? store_ids)
     {
@@ -234,7 +234,7 @@ public class FolksDummy.Backend : Folks.Backend
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public override async void prepare () throws GLib.Error
     {
@@ -268,7 +268,7 @@ public class FolksDummy.Backend : Folks.Backend
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public override async void unprepare () throws GLib.Error
     {
@@ -329,7 +329,7 @@ public class FolksDummy.Backend : Folks.Backend
    *
    * @param stores set of persona stores to register
    * @param enable_stores whether to automatically enable the stores
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public void register_persona_stores (Set<PersonaStore> stores,
       bool enable_stores = true)
@@ -370,7 +370,7 @@ public class FolksDummy.Backend : Folks.Backend
    * { link Folks.Backend.persona_stores} will be emitted (but only if at least
    * one removal signal is emitted).
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public void unregister_persona_stores (Set<PersonaStore> stores)
     {
diff --git a/backends/dummy/lib/dummy-full-persona.vala b/backends/dummy/lib/dummy-full-persona.vala
index 6d69524..c1ab43d 100644
--- a/backends/dummy/lib/dummy-full-persona.vala
+++ b/backends/dummy/lib/dummy-full-persona.vala
@@ -52,7 +52,7 @@ using GLib;
  * The API in { link FolksDummy} is unstable and may change wildly. It is
  * designed mostly for use by libfolks unit tests.
  *
- * @since UNRELEASED
+ * @since 0.9.7
  */
 public class FolksDummy.FullPersona : FolksDummy.Persona,
     AntiLinkable,
@@ -95,7 +95,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
    * @param linkable_properties an array of names of the properties which should
    * be used for linking this persona to others
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public FullPersona (PersonaStore store, string contact_id,
       bool is_user = false,
@@ -128,7 +128,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   [CCode (notify = false)]
   public MultiMap<string, WebServiceFieldDetails> web_service_addresses
@@ -140,7 +140,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public async void change_web_service_addresses (
       MultiMap<string, WebServiceFieldDetails> web_service_addresses)
@@ -158,7 +158,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   [CCode (notify = false)]
   public Set<string> local_ids
@@ -177,7 +177,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public async void change_local_ids (Set<string> local_ids)
       throws PropertyError
@@ -195,7 +195,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   [CCode (notify = false)]
   public Set<PostalAddressFieldDetails> postal_addresses
@@ -207,7 +207,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public async void change_postal_addresses (
       Set<PostalAddressFieldDetails> postal_addresses) throws PropertyError
@@ -225,7 +225,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   [CCode (notify = false)]
   public Set<PhoneFieldDetails> phone_numbers
@@ -237,7 +237,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public async void change_phone_numbers (
       Set<PhoneFieldDetails> phone_numbers) throws PropertyError
@@ -257,7 +257,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   [CCode (notify = false)]
   public Set<EmailFieldDetails> email_addresses
@@ -269,7 +269,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public async void change_email_addresses (
       Set<EmailFieldDetails> email_addresses) throws PropertyError
@@ -286,7 +286,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   [CCode (notify = false)]
   public Set<NoteFieldDetails> notes
@@ -298,7 +298,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public async void change_notes (Set<NoteFieldDetails> notes)
       throws PropertyError
@@ -314,7 +314,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   [CCode (notify = false)]
   public LoadableIcon? avatar
@@ -326,7 +326,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public async void change_avatar (LoadableIcon? avatar) throws PropertyError
     {
@@ -341,7 +341,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   [CCode (notify = false)]
   public StructuredName? structured_name
@@ -353,7 +353,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public async void change_structured_name (StructuredName? structured_name)
       throws PropertyError
@@ -369,7 +369,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   [CCode (notify = false)]
   public string full_name
@@ -381,7 +381,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public async void change_full_name (string full_name) throws PropertyError
     {
@@ -396,7 +396,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   [CCode (notify = false)]
   public string nickname
@@ -408,7 +408,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public async void change_nickname (string nickname) throws PropertyError
     {
@@ -423,7 +423,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   [CCode (notify = false)]
   public Gender gender
@@ -435,7 +435,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public async void change_gender (Gender gender) throws PropertyError
     {
@@ -450,7 +450,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   [CCode (notify = false)]
   public Set<UrlFieldDetails> urls
@@ -462,7 +462,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public async void change_urls (Set<UrlFieldDetails> urls) throws PropertyError
     {
@@ -480,7 +480,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   [CCode (notify = false)]
   public MultiMap<string, ImFieldDetails> im_addresses
@@ -492,7 +492,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public async void change_im_addresses (
       MultiMap<string, ImFieldDetails> im_addresses) throws PropertyError
@@ -509,7 +509,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   [CCode (notify = false)]
   public Set<string> groups
@@ -521,7 +521,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public async void change_group (string group, bool is_member)
       throws GLib.Error
@@ -555,7 +555,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public async void change_groups (Set<string> groups) throws PropertyError
     {
@@ -570,7 +570,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   [CCode (notify = false)]
   public string? calendar_event_id
@@ -582,7 +582,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public async void change_calendar_event_id (string? calendar_event_id)
       throws PropertyError
@@ -598,7 +598,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   [CCode (notify = false)]
   public DateTime? birthday
@@ -610,7 +610,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public async void change_birthday (DateTime? bday)
       throws PropertyError
@@ -627,7 +627,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   [CCode (notify = false)]
   public Set<RoleFieldDetails> roles
@@ -639,7 +639,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public async void change_roles (Set<RoleFieldDetails> roles)
       throws PropertyError
@@ -655,7 +655,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
   /**
    * Whether this contact is a user-defined favourite.
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   [CCode (notify = false)]
   public bool is_favourite
@@ -667,7 +667,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public async void change_is_favourite (bool is_favourite) throws PropertyError
     {
@@ -683,7 +683,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   [CCode (notify = false)]
   public Set<string> anti_links
@@ -695,7 +695,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public async void change_anti_links (Set<string> anti_links)
       throws PropertyError
@@ -742,7 +742,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
    * this results in a property change notification on the persona.
    *
    * @param gender persona's new gender
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public void update_gender (Gender gender)
     {
@@ -763,7 +763,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
    * persona.
    *
    * @param calendar_event_id persona's new birthday calendar event ID
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public void update_calendar_event_id (string? calendar_event_id)
     {
@@ -783,7 +783,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
    * changes, this results in a property change notification on the persona.
    *
    * @param birthday persona's new birthday
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public void update_birthday (DateTime? birthday)
     {
@@ -805,7 +805,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
    * this results in a property change notification on the persona.
    *
    * @param roles persona's new roles
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public void update_roles (Set<RoleFieldDetails> roles)
     {
@@ -826,7 +826,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
    * this results in a property change notification on the persona.
    *
    * @param groups persona's new groups
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public void update_groups (Set<string> groups)
     {
@@ -848,7 +848,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
    * the persona.
    *
    * @param web_service_addresses persona's new web service addresses
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public void update_web_service_addresses (
       MultiMap<string, WebServiceFieldDetails> web_service_addresses)
@@ -872,7 +872,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
    * changes, this results in a property change notification on the persona.
    *
    * @param email_addresses persona's new e-mail addresses
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public void update_email_addresses (Set<EmailFieldDetails> email_addresses)
     {
@@ -895,7 +895,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
    * this results in a property change notification on the persona.
    *
    * @param notes persona's new notes
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public void update_notes (Set<NoteFieldDetails> notes)
     {
@@ -916,7 +916,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
    * this results in a property change notification on the persona.
    *
    * @param full_name persona's new full name
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public void update_full_name (string full_name)
     {
@@ -936,7 +936,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
    * this results in a property change notification on the persona.
    *
    * @param nickname persona's new nickname
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public void update_nickname (string nickname)
     {
@@ -956,7 +956,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
    * changes, this results in a property change notification on the persona.
    *
    * @param structured_name persona's new structured name
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public void update_structured_name (StructuredName? structured_name)
     {
@@ -981,7 +981,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
    * this results in a property change notification on the persona.
    *
    * @param avatar persona's new avatar
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public void update_avatar (LoadableIcon? avatar)
     {
@@ -1003,7 +1003,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
    * this results in a property change notification on the persona.
    *
    * @param urls persona's new URIs
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public void update_urls (Set<UrlFieldDetails> urls)
     {
@@ -1024,7 +1024,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
    * changes, this results in a property change notification on the persona.
    *
    * @param im_addresses persona's new IM addresses
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public void update_im_addresses (
       MultiMap<string, ImFieldDetails> im_addresses)
@@ -1048,7 +1048,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
    * changes, this results in a property change notification on the persona.
    *
    * @param phone_numbers persona's new phone numbers
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public void update_phone_numbers (Set<PhoneFieldDetails> phone_numbers)
     {
@@ -1072,7 +1072,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
    * the persona.
    *
    * @param postal_addresses persona's new postal addresses
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public void update_postal_addresses (
       Set<PostalAddressFieldDetails> postal_addresses)
@@ -1097,7 +1097,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
    * changes, this results in a property change notification on the persona.
    *
    * @param local_ids persona's new local IDs
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public void update_local_ids (Set<string> local_ids)
     {
@@ -1118,7 +1118,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
    * changes, this results in a property change notification on the persona.
    *
    * @param is_favourite persona's new status as a favourite
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public void update_is_favourite (bool is_favourite)
     {
@@ -1138,7 +1138,7 @@ public class FolksDummy.FullPersona : FolksDummy.Persona,
    * changes, this results in a property change notification on the persona.
    *
    * @param anti_links persona's new anti-links
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public void update_anti_links (Set<string> anti_links)
     {
diff --git a/backends/dummy/lib/dummy-persona-store.vala b/backends/dummy/lib/dummy-persona-store.vala
index 8dcdf77..20094a9 100644
--- a/backends/dummy/lib/dummy-persona-store.vala
+++ b/backends/dummy/lib/dummy-persona-store.vala
@@ -57,7 +57,7 @@ using GLib;
  * The API in { link FolksDummy} is unstable and may change wildly. It is
  * designed mostly for use by libfolks unit tests.
  *
- * @since UNRELEASED
+ * @since 0.9.7
  */
 public class FolksDummy.PersonaStore : Folks.PersonaStore
 {
@@ -72,7 +72,7 @@ public class FolksDummy.PersonaStore : Folks.PersonaStore
    *
    * See { link Folks.PersonaStore.type_id}.
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public override string type_id { get { return BACKEND_NAME; } }
 
@@ -83,7 +83,7 @@ public class FolksDummy.PersonaStore : Folks.PersonaStore
    *
    * See { link Folks.PersonaStore.can_add_personas}.
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public override MaybeBool can_add_personas
     {
@@ -105,7 +105,7 @@ public class FolksDummy.PersonaStore : Folks.PersonaStore
    *
    * See { link Folks.PersonaStore.can_alias_personas}.
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public override MaybeBool can_alias_personas
     {
@@ -125,7 +125,7 @@ public class FolksDummy.PersonaStore : Folks.PersonaStore
    *
    * See { link Folks.PersonaStore.can_group_personas}.
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public override MaybeBool can_group_personas
     {
@@ -143,7 +143,7 @@ public class FolksDummy.PersonaStore : Folks.PersonaStore
    *
    * See { link Folks.PersonaStore.can_remove_personas}.
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public override MaybeBool can_remove_personas
     {
@@ -163,7 +163,7 @@ public class FolksDummy.PersonaStore : Folks.PersonaStore
    *
    * See { link Folks.PersonaStore.is_prepared}.
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public override bool is_prepared
     {
@@ -176,7 +176,7 @@ public class FolksDummy.PersonaStore : Folks.PersonaStore
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public override string[] always_writeable_properties
     {
@@ -196,7 +196,7 @@ public class FolksDummy.PersonaStore : Folks.PersonaStore
    *
    * See { link Folks.PersonaStore.is_quiescent}.
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public override bool is_quiescent
     {
@@ -223,7 +223,7 @@ public class FolksDummy.PersonaStore : Folks.PersonaStore
    *
    * See { link Folks.PersonaStore.personas}.
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public override Map<string, Persona> personas
     {
@@ -242,7 +242,7 @@ public class FolksDummy.PersonaStore : Folks.PersonaStore
    * @param display_name The new store's display name.
    * @param always_writeable_properties The set of always writeable properties.
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public PersonaStore (string id, string display_name,
       string[] always_writeable_properties)
@@ -290,7 +290,7 @@ public class FolksDummy.PersonaStore : Folks.PersonaStore
    * @throws Folks.PersonaStoreError.CREATE_FAILED if creating the persona in
    * the dummy store failed
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public override async Folks.Persona? add_persona_from_details (
       HashTable<string, Value?> details) throws PersonaStoreError
@@ -520,7 +520,7 @@ public class FolksDummy.PersonaStore : Folks.PersonaStore
    * @throws Folks.PersonaStoreError.REMOVE_FAILED if any other errors happened
    * in the store
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public override async void remove_persona (Folks.Persona persona)
       throws PersonaStoreError
@@ -568,7 +568,7 @@ public class FolksDummy.PersonaStore : Folks.PersonaStore
    * @throws Folks.PersonaStoreError.INVALID_ARGUMENT if any other error
    * occurred in the store
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public override async void prepare () throws PersonaStoreError
     {
@@ -628,7 +628,7 @@ public class FolksDummy.PersonaStore : Folks.PersonaStore
    *
    * @param delay number of milliseconds to delay for
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   private async void _implement_mock_delay (int delay)
     {
@@ -675,7 +675,7 @@ public class FolksDummy.PersonaStore : Folks.PersonaStore
    * complete synchronously; zero delays complete in an idle callback; positive
    * delays complete after that many milliseconds)
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public delegate int AddPersonaFromDetailsMock (Persona persona)
       throws PersonaStoreError;
@@ -703,7 +703,7 @@ public class FolksDummy.PersonaStore : Folks.PersonaStore
    * This mock function may be changed at any time; changes will take effect for
    * the next call to { link Folks.PersonaStore.add_persona_from_details}.
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public unowned AddPersonaFromDetailsMock? add_persona_from_details_mock
     {
@@ -722,7 +722,7 @@ public class FolksDummy.PersonaStore : Folks.PersonaStore
    * delays complete in an idle callback; positive
    * delays complete after that many milliseconds)
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public delegate int RemovePersonaMock (Persona persona)
       throws PersonaStoreError;
@@ -743,7 +743,7 @@ public class FolksDummy.PersonaStore : Folks.PersonaStore
    * This mock function may be changed at any time; changes will take effect for
    * the next call to { link Folks.PersonaStore.remove_persona}.
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public unowned RemovePersonaMock? remove_persona_mock
     {
@@ -761,7 +761,7 @@ public class FolksDummy.PersonaStore : Folks.PersonaStore
    * complete in an idle callback; positive
    * delays complete after that many milliseconds)
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public delegate int PrepareMock () throws PersonaStoreError;
 
@@ -782,7 +782,7 @@ public class FolksDummy.PersonaStore : Folks.PersonaStore
    * This mock function may be changed at any time; changes will take effect for
    * the next call to { link Folks.PersonaStore.prepare}.
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public unowned PrepareMock? prepare_mock
     {
@@ -802,7 +802,7 @@ public class FolksDummy.PersonaStore : Folks.PersonaStore
    * next call to { link Folks.PersonaStore.add_persona_from_details} or
    * { link FolksDummy.PersonaStore.register_personas}.
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public Type persona_type
     {
@@ -832,7 +832,7 @@ public class FolksDummy.PersonaStore : Folks.PersonaStore
    * user-specified persona aliases
    * @param can_remove_personas whether the store can handle removing personas
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public void update_capabilities (MaybeBool can_add_personas,
       MaybeBool can_alias_personas, MaybeBool can_remove_personas)
@@ -875,7 +875,7 @@ public class FolksDummy.PersonaStore : Folks.PersonaStore
    * { link FolksDummy.PersonaStore.thaw_personas_changed}.
    *
    * @see PersonaStore.thaw_personas_changed
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public void freeze_personas_changed ()
     {
@@ -892,7 +892,7 @@ public class FolksDummy.PersonaStore : Folks.PersonaStore
    * pending changes are committed and made externally-visible.
    *
    * @see PersonaStore.freeze_personas_changed
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public void thaw_personas_changed ()
     {
@@ -926,7 +926,7 @@ public class FolksDummy.PersonaStore : Folks.PersonaStore
    *
    * @param personas set of personas to register
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public void register_personas (Set<Persona> personas)
     {
@@ -974,7 +974,7 @@ public class FolksDummy.PersonaStore : Folks.PersonaStore
    *
    * @param personas set of personas to unregister
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public void unregister_personas (Set<Persona> personas)
     {
@@ -1023,7 +1023,7 @@ public class FolksDummy.PersonaStore : Folks.PersonaStore
    *
    * This must be called before the store will reach quiescence.
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public void reach_quiescence ()
     {
@@ -1051,7 +1051,7 @@ public class FolksDummy.PersonaStore : Folks.PersonaStore
    *
    * @param is_user_set_default new value for the property
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public void update_is_user_set_default (bool is_user_set_default)
     {
@@ -1068,7 +1068,7 @@ public class FolksDummy.PersonaStore : Folks.PersonaStore
    *
    * @param trust_level new value for the property
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public void update_trust_level (PersonaStoreTrust trust_level)
     {
diff --git a/backends/dummy/lib/dummy-persona.vala b/backends/dummy/lib/dummy-persona.vala
index 56679d2..8cb6f8a 100644
--- a/backends/dummy/lib/dummy-persona.vala
+++ b/backends/dummy/lib/dummy-persona.vala
@@ -48,7 +48,7 @@ using GLib;
  * The API in { link FolksDummy} is unstable and may change wildly. It is
  * designed mostly for use by libfolks unit tests.
  *
- * @since UNRELEASED
+ * @since 0.9.7
  */
 public class FolksDummy.Persona : Folks.Persona
 {
@@ -57,7 +57,7 @@ public class FolksDummy.Persona : Folks.Persona
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public override string[] linkable_properties
     {
@@ -69,7 +69,7 @@ public class FolksDummy.Persona : Folks.Persona
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public override string[] writeable_properties
     {
@@ -94,7 +94,7 @@ public class FolksDummy.Persona : Folks.Persona
    * @param linkable_properties an array of names of the properties which should
    * be used for linking this persona to others
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public Persona (PersonaStore store, string contact_id,
       bool is_user = false, string[] linkable_properties = {})
@@ -115,7 +115,7 @@ public class FolksDummy.Persona : Folks.Persona
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public override void linkable_property_to_links (string prop_name,
       Folks.Persona.LinkablePropertyCallback callback)
@@ -196,7 +196,7 @@ public class FolksDummy.Persona : Folks.Persona
    * This should be used to simulate a change in the backing store for the
    * persona which affects the writeability of one or more of its properties.
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public void update_writeable_properties (string[] writeable_properties)
     {
@@ -241,7 +241,7 @@ public class FolksDummy.Persona : Folks.Persona
    *
    * @param linkable_properties new set of linkable property names, in lower
    * case, hyphenated form
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public void update_linkable_properties (string[] linkable_properties)
     {
@@ -274,7 +274,7 @@ public class FolksDummy.Persona : Folks.Persona
    * change notifications happen that many milliseconds after the change method
    * is called.
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   protected int property_change_delay { get; set; }
 
@@ -287,7 +287,7 @@ public class FolksDummy.Persona : Folks.Persona
    * calling an ‘update’ method such as
    * { link FolksDummy.FullPersona.update_nickname}.
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   protected delegate void ChangePropertyCallback ();
 
@@ -300,7 +300,7 @@ public class FolksDummy.Persona : Folks.Persona
    *
    * @param property_name name of the property being changed
    * @param callback callback to call once the change delay has passed
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   protected async void change_property (string property_name,
       ChangePropertyCallback callback)
diff --git a/backends/eds/lib/edsf-persona.vala b/backends/eds/lib/edsf-persona.vala
index a69f45a..52ef961 100644
--- a/backends/eds/lib/edsf-persona.vala
+++ b/backends/eds/lib/edsf-persona.vala
@@ -119,7 +119,7 @@ public class Edsf.Persona : Folks.Persona,
    * and the value ‘TRUE’. This allows clients to detect such fields
    * and (for example) ignore them in the UI.
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public static const string folks_field_attribute_name = "X-FOLKS-FIELD";
 
diff --git a/configure.ac b/configure.ac
index b018548..f47be44 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,5 @@
 # If not 1, append datestamp to the version number
-m4_define([folks_released], [0])
+m4_define([folks_released], [1])
 
 m4_define([folks_major_version], [0])
 m4_define([folks_minor_version], [9])
@@ -24,34 +24,34 @@ m4_define([folks_nano_version], [0])
 # version number: a given libfolks.so will only load modules which were compiled
 # against a core with the same LT current number as itself. This allows the API
 # which is exposed to the modules to be changed.
-m4_define([folks_lt_current], [41])
-m4_define([folks_lt_revision], [1])
-m4_define([folks_lt_age], [16])
+m4_define([folks_lt_current], [42])
+m4_define([folks_lt_revision], [0])
+m4_define([folks_lt_age], [17])
 
 # Each of the backend libraries (e.g. libfolks-eds.so; *not* the loadable
 # modules, eds.so) has its own LT version. These should be incremented when the
 # core folks_lt_* variables are incremented (as all the backend libraries are
 # binary-dependent on libfolks.so), but should also be incremented when
 # incompatible changes are made in the backend library APIs themselves.
-m4_define([folks_eds_lt_current], [41])
-m4_define([folks_eds_lt_revision], [1])
-m4_define([folks_eds_lt_age], [16])
+m4_define([folks_eds_lt_current], [42])
+m4_define([folks_eds_lt_revision], [0])
+m4_define([folks_eds_lt_age], [17])
 
-m4_define([folks_libsocialweb_lt_current], [41])
-m4_define([folks_libsocialweb_lt_revision], [1])
-m4_define([folks_libsocialweb_lt_age], [16])
+m4_define([folks_libsocialweb_lt_current], [42])
+m4_define([folks_libsocialweb_lt_revision], [0])
+m4_define([folks_libsocialweb_lt_age], [17])
 
-m4_define([folks_telepathy_lt_current], [41])
-m4_define([folks_telepathy_lt_revision], [1])
-m4_define([folks_telepathy_lt_age], [16])
+m4_define([folks_telepathy_lt_current], [42])
+m4_define([folks_telepathy_lt_revision], [0])
+m4_define([folks_telepathy_lt_age], [17])
 
-m4_define([folks_tracker_lt_current], [41])
-m4_define([folks_tracker_lt_revision], [1])
-m4_define([folks_tracker_lt_age], [16])
+m4_define([folks_tracker_lt_current], [42])
+m4_define([folks_tracker_lt_revision], [0])
+m4_define([folks_tracker_lt_age], [17])
 
-m4_define([folks_dummy_lt_current], [41])
-m4_define([folks_dummy_lt_revision], [1])
-m4_define([folks_dummy_lt_age], [16])
+m4_define([folks_dummy_lt_current], [42])
+m4_define([folks_dummy_lt_revision], [0])
+m4_define([folks_dummy_lt_age], [17])
 
 # Display the nano_version only if it's not '0'
 m4_define([folks_base_version],
diff --git a/folks/anti-linkable.vala b/folks/anti-linkable.vala
index 0c3657e..fd70ecc 100644
--- a/folks/anti-linkable.vala
+++ b/folks/anti-linkable.vala
@@ -176,7 +176,7 @@ public interface Folks.AntiLinkable : Folks.Persona
    * asynchronous call, then begin another before the first has finished).
    *
    * @throws PropertyError if setting the anti-links failed
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public async void add_global_anti_link()
       throws PropertyError
@@ -199,7 +199,7 @@ public interface Folks.AntiLinkable : Folks.Persona
    * asynchronous call, then begin another before the first has finished).
    *
    * @throws PropertyError if setting the anti-links failed
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public async void remove_global_anti_link()
       throws PropertyError
@@ -218,7 +218,7 @@ public interface Folks.AntiLinkable : Folks.Persona
    * If the persona has global anti link this means that the persona can not be
    * linked with any other persona.
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public bool has_global_anti_link()
     {
diff --git a/folks/individual-aggregator.vala b/folks/individual-aggregator.vala
index e1da1da..21fb9b8 100644
--- a/folks/individual-aggregator.vala
+++ b/folks/individual-aggregator.vala
@@ -79,6 +79,7 @@ public errordomain Folks.IndividualAggregatorError
  * through the aggregator. Personas may be linked together to form individuals;
  * for example, the personas which form ``individual1`` and ``individual2`` may
  * be linked together with ``another_persona`` to give a new { link Individual}:
+ *
  * {{{
  *   var personas = new HashSet<Persona> ();
  *   personas.add_all (individual1.personas);
@@ -86,6 +87,7 @@ public errordomain Folks.IndividualAggregatorError
  *   personas.add (another_persona);
  *   yield my_individual_aggregator.link_personas (personas);
  * }}}
+ *
  * The individuals which contained those personas will be removed when
  * { link IndividualAggregator.link_personas} is called. Any personas in those
  * individuals which were not included in the linking call may end up implicitly
@@ -220,7 +222,7 @@ public class Folks.IndividualAggregator : Object
   /**
    * The backend store providing the persona stores for this aggregator.
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public BackendStore backend_store
     {
diff --git a/folks/individual.vala b/folks/individual.vala
index f60f31e..d090cbd 100644
--- a/folks/individual.vala
+++ b/folks/individual.vala
@@ -321,7 +321,7 @@ public class Folks.Individual : Object,
    * # Postal address
    * # _("Unnamed Person")
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   [CCode (notify = false)]
   public string display_name
diff --git a/folks/name-details.vala b/folks/name-details.vala
index 5e87e83..ba85fe5 100644
--- a/folks/name-details.vala
+++ b/folks/name-details.vala
@@ -281,7 +281,7 @@ public class Folks.StructuredName : Object
    *
    * @param name_fmt format string for the name
    * @return name formatted according to the given format
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public string to_string_with_format (string name_fmt)
     {
diff --git a/folks/utils.vala b/folks/utils.vala
index 7e99810..1f33cbf 100644
--- a/folks/utils.vala
+++ b/folks/utils.vala
@@ -229,7 +229,7 @@ public class Folks.Utils : Object
    * @param b another set to compare
    * @return ``true`` if the sets are equal, ``false`` otherwise
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public static bool set_string_afd_equal (
       Set<AbstractFieldDetails<string> > a,
diff --git a/tests/lib/bluez/backend.vala b/tests/lib/bluez/backend.vala
index 1ba34a2..978fe55 100644
--- a/tests/lib/bluez/backend.vala
+++ b/tests/lib/bluez/backend.vala
@@ -83,7 +83,7 @@ namespace org
  * exposed as { link Backend.mock_bluez}, { link Backend.mock_bluez_base},
  * { link Backend.mock_obex} and { link Backend.mock_obex_base}.
  *
- * @since UNRELEASED
+ * @since 0.9.7
  */
 public class BluezTest.Backend
 {
@@ -95,7 +95,7 @@ public class BluezTest.Backend
   /**
    * D-Bus proxy for the BlueZ-specific mock interface on the org.bluez object.
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public org.bluez.Mock? mock_bluez
     {
@@ -105,7 +105,7 @@ public class BluezTest.Backend
   /**
    * D-Bus proxy for the dbusmock mock interface on the org.bluez object.
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public org.freedesktop.DBus.Mock? mock_bluez_base
     {
@@ -116,7 +116,7 @@ public class BluezTest.Backend
    * D-Bus proxy for the BlueZ-specific mock interface on the org.bluez.obex
    * object.
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public org.bluez.obex.Mock? mock_obex
     {
@@ -126,7 +126,7 @@ public class BluezTest.Backend
   /**
    * D-Bus proxy for the dbusmock mock interface on the org.bluez.obex object.
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public org.freedesktop.DBus.Mock? mock_obex_base
     {
@@ -139,7 +139,7 @@ public class BluezTest.Backend
    * This is the address used for the primary Bluetooth adapter (``hci0``)
    * unless otherwise specified.
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public string primary_device_address
     {
@@ -157,7 +157,7 @@ public class BluezTest.Backend
    * buses which are in use. This is done in
    * { link TestCase.create_transient_dir}.
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public void set_up ()
     {
@@ -191,7 +191,7 @@ public class BluezTest.Backend
    * { link Backend.set_up}, although the python-dbusmock processes are kept
    * around and reset, rather than being killed.
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public void tear_down ()
     {
@@ -233,7 +233,7 @@ public class BluezTest.Backend
    * @return ID of the signal returning the vCard, as per
    * { link Backend.set_simple_device_vcard}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public ulong create_simple_device_with_vcard (string vcard,
       out string? adapter_path = null, out string? device_path = null)
@@ -271,7 +271,7 @@ public class BluezTest.Backend
    * @param vcard series of vCards for the device’s address book
    * @return ID of the signal returning the vCard
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public ulong set_simple_device_vcard (string vcard)
     {
diff --git a/tests/lib/bluez/test-case.vala b/tests/lib/bluez/test-case.vala
index fafee05..390147e 100644
--- a/tests/lib/bluez/test-case.vala
+++ b/tests/lib/bluez/test-case.vala
@@ -23,7 +23,7 @@
  * A test case for the BlueZ backend, whose private D-Bus session contains the
  * necessary python-dbusmock instance to mock up BlueZ.
  *
- * @since UNRELEASED
+ * @since 0.9.7
  */
 public class BluezTest.TestCase : Folks.TestCase
 {
@@ -50,7 +50,7 @@ public class BluezTest.TestCase : Folks.TestCase
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public override void set_up ()
     {
@@ -62,7 +62,7 @@ public class BluezTest.TestCase : Folks.TestCase
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public override void private_bus_up ()
     {
@@ -82,7 +82,7 @@ public class BluezTest.TestCase : Folks.TestCase
    *
    * Subclasses may chain up, but are not required to so.
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public virtual void create_backend ()
     {
@@ -96,7 +96,7 @@ public class BluezTest.TestCase : Folks.TestCase
    *
    * Subclasses may chain up, but are not required to so.
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public virtual void configure_primary_store ()
     {
@@ -110,7 +110,7 @@ public class BluezTest.TestCase : Folks.TestCase
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public override void tear_down ()
     {
diff --git a/tests/lib/dummy/test-case.vala b/tests/lib/dummy/test-case.vala
index ccf5b45..84eb90a 100644
--- a/tests/lib/dummy/test-case.vala
+++ b/tests/lib/dummy/test-case.vala
@@ -28,7 +28,7 @@ using Gee;
  * A test case for the dummy backend, which is configured as the
  * primary store and as the only backend allowed.
  *
- * @since UNRELEASED
+ * @since 0.9.7
  */
 public class DummyTest.TestCase : Folks.TestCase
 {
@@ -37,14 +37,14 @@ public class DummyTest.TestCase : Folks.TestCase
   /**
    * The dummy test backend.
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public FolksDummy.Backend dummy_backend;
 
   /**
    * The default dummy persona store.
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public FolksDummy.PersonaStore dummy_persona_store;
 
@@ -53,7 +53,7 @@ public class DummyTest.TestCase : Folks.TestCase
    *
    * @param name test case name
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public TestCase (string name)
     {
@@ -66,7 +66,7 @@ public class DummyTest.TestCase : Folks.TestCase
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public override void set_up ()
     {
@@ -102,7 +102,7 @@ public class DummyTest.TestCase : Folks.TestCase
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public virtual void configure_primary_store ()
     {
@@ -129,7 +129,7 @@ public class DummyTest.TestCase : Folks.TestCase
   /**
    * { inheritDoc}
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public override void tear_down ()
     {
diff --git a/tests/lib/org-freedesktop-dbus-mock.vala b/tests/lib/org-freedesktop-dbus-mock.vala
index 386477f..a23527e 100644
--- a/tests/lib/org-freedesktop-dbus-mock.vala
+++ b/tests/lib/org-freedesktop-dbus-mock.vala
@@ -26,7 +26,7 @@ using GLib;
  * This is exposed by python-dbusmock as the primary means of controlling a
  * mocked up D-Bus service.
  *
- * @since UNRELEASED
+ * @since 0.9.7
  */
 
 /* Reference:
diff --git a/tests/lib/test-case.vala b/tests/lib/test-case.vala
index c652d46..9eafebe 100644
--- a/tests/lib/test-case.vala
+++ b/tests/lib/test-case.vala
@@ -228,7 +228,7 @@ public abstract class Folks.TestCase : Object
    * @param bus_name the well-known bus name used by the service
    * @param dbusmock_template_name name of the python-dbusmock template to use
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public void create_dbusmock_service (BusType bus_type, string bus_name,
       string dbusmock_template_name)
@@ -302,7 +302,7 @@ public abstract class Folks.TestCase : Object
    *
    * As with { link TestCase.test_dbus} this is per-process.
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public Folks.TestDBus? test_system_dbus = null;
 
diff --git a/tests/lib/test-utils.vala b/tests/lib/test-utils.vala
index fa41778..963d927 100644
--- a/tests/lib/test-utils.vala
+++ b/tests/lib/test-utils.vala
@@ -285,7 +285,7 @@ public class Folks.TestUtils
    * @param expected_persona_names set of full names of the expected personas
    * @throws GLib.Error if preparing the aggregator failed
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public static async void aggregator_prepare_and_wait_for_individuals (
       IndividualAggregator aggregator, string[] expected_persona_names)
@@ -366,7 +366,7 @@ public class Folks.TestUtils
    * @param expected_removed_persona_names set of full names of the expected
    * personas to be removed
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public static async void aggregator_wait_for_individuals (
       IndividualAggregator aggregator, string[] expected_added_persona_names,
@@ -454,7 +454,7 @@ public class Folks.TestUtils
    * @param aggregator the aggregator to prepare
    * @param expected_persona_names set of full names of the expected personas
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public static void aggregator_prepare_and_wait_for_individuals_sync_with_timeout (
       IndividualAggregator aggregator, string[] expected_persona_names,
@@ -497,7 +497,7 @@ public class Folks.TestUtils
    * @param full_name name of the individual to retrieve
    * @return individual with the given name
    *
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public static Individual get_individual_by_name (
       IndividualAggregator aggregator, string full_name)
@@ -594,7 +594,7 @@ public class Folks.TestUtils
    *
    * @param context A main context, or ``null`` to use the default main context.
    * @returns Whether there are no events pending on the context.
-   * @since UNRELEASED
+   * @since 0.9.7
    */
   public static bool main_context_is_empty (MainContext? context = null)
     {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]