commit 2d94025a8586550316061d8c9cec4726bc42cc91 Author: Philip Withnall Date: Tue Aug 10 17:03:17 2010 +0100 Rework unlinking in the IndividualAggregator Ensure it causes linked Individuals to be split apart and their Personas which haven't been removed to be relinked. folks/individual-aggregator.vala | 130 +++++++++++++++++++++++++++++++------ 1 files changed, 109 insertions(+), 21 deletions(-) commit 86261325ce1aa25cb5919381939677febc94d851 Author: Philip Withnall Date: Tue Aug 10 16:59:36 2010 +0100 Signal the removal of personas from the Kf.PersonaStore backends/key-file/kf-persona-store.vala | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) commit e71262c61afcac251cbe15442c4c9757fabdc321 Author: Philip Withnall Date: Tue Aug 10 16:56:31 2010 +0100 Improve the IDs stored in the key file Instead of storing the full Persona.UID in the key file, only store the display ID (the number). The IID then becomes the key file filename plus the display ID, to prevent unwanted linking of Kf.Personas from different key files. backends/key-file/kf-persona-store.vala | 8 ++++---- backends/key-file/kf-persona.vala | 13 +++++++------ 2 files changed, 11 insertions(+), 10 deletions(-) commit 136b68dab8b4c9be5d9cf8510239835667f6c04a Author: Philip Withnall Date: Mon Aug 9 17:49:57 2010 +0100 Improve the heuristic for choosing an Individual's alias Change the heuristic to choose the first alias which isn't unset or empty, and if possible to choose the first alias which isn't equal to the Persona's display-id. If all the aliases are equal to display-ids, however, use one of them in preference to having no alias at all. folks/individual.vala | 24 ++++++++++++++++++++---- 1 files changed, 20 insertions(+), 4 deletions(-) commit 6e1098f1f1651ca71666125cbe6b02bb86d11afd Author: Philip Withnall Date: Mon Aug 9 17:18:32 2010 +0100 Don't synchronise groups between Personas folks/individual.vala | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 4e3ec60588f7f731d23f5ea4de328b376a25cf52 Author: Philip Withnall Date: Mon Aug 9 17:11:59 2010 +0100 Don't synchronise favourite status between Personas folks/individual.vala | 9 +-------- 1 files changed, 1 insertions(+), 8 deletions(-) commit 9004ea1a98f6deed6fd363a051467cd93fdf9560 Author: Philip Withnall Date: Mon Aug 9 17:08:43 2010 +0100 Don't synchronise alias between Personas When setting a new alias on an Individual, only push it to Personas from the writeable PersonaStore. This prevents every other Persona's alias from being unnecessarily overwritten. folks/individual.vala | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 16f931677aba582bc5d5aa0f7c49974ac23924df Author: Philip Withnall Date: Mon Aug 9 17:07:28 2010 +0100 Add a PersonaStore.is_writeable property folks/individual-aggregator.vala | 13 ++++++++++++- folks/persona-store.vala | 11 +++++++++++ 2 files changed, 23 insertions(+), 1 deletions(-) commit 39e8086aadd4e3526df7fc5661cbaf5abc252865 Author: Travis Reitter Date: Tue Aug 10 15:45:16 2010 -0700 Update folks-telepathy pkg-config files. Now they require telepathy-glib, not the obsolete telepathy-vala. .../telepathy/folks-telepathy-uninstalled.pc.in | 2 +- backends/telepathy/folks-telepathy.pc.in | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 4adb8fe0b46f29838487cca529e2d5bc282199a4 Author: Travis Reitter Date: Tue Aug 10 15:43:57 2010 -0700 Update folks pkg-config files. Now they require telepathy-glib, not the obsolete telepathy-vala. folks/folks-uninstalled.pc.in | 2 +- folks/folks.pc.in | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 5a521af28f1361e1a00ba5bfa1475e798bdc3809 Author: Travis Reitter Date: Tue Aug 10 15:28:23 2010 -0700 Check for telepathy-glib Vala bindings by compilation success, not specific file. configure.ac | 8 ++++++-- telepathy-check.vala | 6 ++++++ 2 files changed, 12 insertions(+), 2 deletions(-) commit f5053f8df0fe996ac52926e558d9ed46aa6ea7a1 Author: Travis Reitter Date: Tue Aug 10 14:24:41 2010 -0700 Arrange configure checks from most- to least-likely to succeed. configure.ac | 28 ++++++++++++++-------------- 1 files changed, 14 insertions(+), 14 deletions(-) commit 76ef5e2a562326cebf0c43253f2fd592e20581f5 Author: Travis Reitter Date: Thu Jul 15 18:33:28 2010 -0700 Catch up with the new location for the telepathy-glib.vapi bindings file. backends/telepathy/Makefile.am | 13 +++++-------- configure.ac | 15 ++++++--------- 2 files changed, 11 insertions(+), 17 deletions(-) commit 24e75a2eac7299692a2981cadea33ff5fc3385bf Author: Travis Reitter Date: Mon Aug 9 16:32:10 2010 -0700 Don't warn if the 'stored' channel doesn't exist. backends/telepathy/tpf-persona-store.vala | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) commit b9bb6e2300a529516f51d67523ee4f84533f365d Author: Philip Withnall Date: Mon Aug 9 14:48:35 2010 +0100 Add IndividualAggregator.link_personas() and .unlink_individual() API These methods allow persistent linking and unlinking of Personas, compared to the transient linking which editing Individual.personas provides. This allows for an interface to preview the properties of a newly linked Individual before committing the changes using IndividualAggregator.link_personas(). folks/individual-aggregator.vala | 82 ++++++++++++++++++++++++++++++++++++++ folks/individual.vala | 6 +++ 2 files changed, 88 insertions(+), 0 deletions(-) commit 5fb93c5290afbc3946308910eec826dc8b3f009c Author: Philip Withnall Date: Mon Aug 9 12:44:03 2010 +0100 Implement the IMable interface on TpfPersona Use it to expose the Persona's IM address. Do not allow setting the IM address. backends/telepathy/tpf-persona.vala | 25 ++++++++++++++++++++++++- 1 files changed, 24 insertions(+), 1 deletions(-) commit aafc38cfcfe923549cedeed9641d939933e03b08 Author: Philip Withnall Date: Mon Aug 9 14:47:36 2010 +0100 Take "im-addresses" as the parameter for a new Kf.Persona This allows construction of new key file personas which contain multiple IM addresses from different protocols. backends/key-file/kf-persona-store.vala | 24 +++++++++--------------- backends/key-file/kf-persona.vala | 15 ++++++++++----- 2 files changed, 19 insertions(+), 20 deletions(-) commit e58ae2c4b34f1bf479c3288c9b02e3d2dd187ba9 Author: Philip Withnall Date: Mon Aug 9 14:46:26 2010 +0100 Use autogenerated numeric IDs for key file groups backends/key-file/kf-persona-store.vala | 9 ++++++--- 1 files changed, 6 insertions(+), 3 deletions(-) commit e40ce9fc94c6a30670e586cfb68db09de934a829 Author: Philip Withnall Date: Fri Aug 6 11:20:59 2010 +0100 Let the IndividualAggregator designate one PersonaStore as its writeable store folks/individual-aggregator.vala | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-) commit b049c5e8d9d48c38ed8e9230bcbfbcd4a69a7114 Author: Philip Withnall Date: Fri Aug 6 15:05:53 2010 +0100 Allow late linking of Individuals if Personas are added at runtime If a Persona is added after the initial aggregation phase and it should be linked to more than one existing Individual, the Individuals are now destroyed and their Personas added to a new linked Individual containing the late Persona. This is necessary for supporting runtime linking and unlinking of Personas. folks/individual-aggregator.vala | 139 +++++++++++++++++++++++++++++--------- 1 files changed, 107 insertions(+), 32 deletions(-) commit a6e337363592f6bd2375496d91bdd702a4ddfbd4 Author: Philip Withnall Date: Mon Aug 9 18:03:38 2010 +0100 Specify a replacement Individual in Individual.removed() This allows clients to better keep track of which Individuals have been removed through the user linking them with other Individuals, and which have been removed for more mundane reasons. folks/individual-aggregator.vala | 2 +- folks/individual.vala | 149 ++++++++++++++++++++------------------ 2 files changed, 79 insertions(+), 72 deletions(-) commit bd0f324e0e3e747842ccadea165439bf6b666a3f Author: Philip Withnall Date: Thu Aug 5 14:42:22 2010 +0100 Warn if the MIME type of a potential backend couldn't be determined This prevents backends silently not being loaded if shared-mime-info wasn't installed. Closes: bgo#626108 folks/backend-store.vala | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-) commit 0e3427491df99f1fc1babadb7fa0cafe929ee02e Author: Philip Withnall Date: Wed Aug 4 11:09:33 2010 +0100 Add @since lines to the documentation of some new methods folks/persona-store.vala | 2 ++ folks/persona.vala | 2 ++ 2 files changed, 4 insertions(+), 0 deletions(-) commit d844d677583b838946d3906d2c248bedf3f4441e Author: Travis Reitter Date: Tue Aug 3 17:07:10 2010 -0400 Add a display-name property to PersonaStore This is equivalent to display-id for Persona. backends/key-file/kf-persona-store.vala | 6 ++++++ backends/telepathy/tpf-persona-store.vala | 7 +++++++ folks/persona-store.vala | 15 +++++++++++++++ 3 files changed, 28 insertions(+), 0 deletions(-) commit 5d37ec9e7b313d66fee2a7c79ee964af3c799813 Author: Travis Reitter Date: Tue Aug 3 15:43:39 2010 -0400 Add the display-id property to Persona. This is meant to be a human-readable, familiar identifier for presenting to the user (when absolutely necessary). backends/key-file/kf-persona.vala | 5 ++++- backends/telepathy/tpf-persona.vala | 4 +++- folks/persona.vala | 16 ++++++++++++++++ 3 files changed, 23 insertions(+), 2 deletions(-) commit c24fc85f5e824401a7325a487d949347dcb823f1 Author: Philip Withnall Date: Thu Jul 22 17:16:51 2010 +0100 Use the Persona's UID instead of the IID as the Individual's ID Because the UID is globally unique, so this ensures that Individuals' IDs are globally unique. folks/individual.vala | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit dfdb7114c85860a79ad560a0cbdd8e0099f5a4a9 Author: Philip Withnall Date: Thu Jul 22 16:24:14 2010 +0100 Allow specifying the key file to load via an environment variable backends/key-file/kf-backend.vala | 20 +++++++++++++++++--- 1 files changed, 17 insertions(+), 3 deletions(-) commit 2f71d1c69d5986fe68d66111e0721579aecd674a Author: Philip Withnall Date: Thu Jul 22 15:26:15 2010 +0100 Add the key-file backend to the documentation build This requires filtering out the BackendFactory Vala files, since they contain global symbols (module_init(), module_finalize(), backend_factory) in both backends, which conflict in the documentation. docs/Makefile.am | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-) commit 6e9544b47635d2128549241709c2cc169943a278 Author: Philip Withnall Date: Tue Jul 20 17:51:46 2010 +0100 Tidy up UIDs and IIDs in the backends IIDs are now defined as unique within a backend, and formatted to make them most useful for linking. UIDs are now defined as unique across all backends, and formatted as Backend.name:PersonaStore.id:Persona ID. backends/key-file/kf-persona.vala | 11 ++-- backends/telepathy/tpf-persona.vala | 17 +++--- folks/individual-aggregator.vala | 12 ++-- folks/persona.vala | 102 +++++++++++++++++++++++++++++++++- 4 files changed, 119 insertions(+), 23 deletions(-) commit 4e73c105f32f683cdd51e269fb15262c7f345402 Author: Philip Withnall Date: Mon Jul 19 16:37:46 2010 +0100 Add linking support to the IndividualAggregator Personas are linked together to form Individuals using a link map containing mappings from UIDs and linkable properties to Individual instances. This takes PersonaStore trust levels into account. backends/key-file/kf-persona.vala | 25 +++++++++ folks/individual-aggregator.vala | 108 +++++++++++++++++++++++++++++------- folks/persona.vala | 34 ++++++++++++ 3 files changed, 146 insertions(+), 21 deletions(-) commit 39cddd06a71c50d42518fbbf7fbc4dc5247e4833 Author: Philip Withnall Date: Fri Jul 16 13:41:34 2010 +0100 Add a key-file backend This backend stores Personas in a key file which is completely under the user's control, making it the only fully trusted Backend. Currently, it only stores IM addresses, which can then be used as linkable properties by the IndividualAggregator to link together Personas from multiple backends to automagically produce Individuals. backends/Makefile.am | 1 + backends/key-file/Makefile.am | 84 +++++++++++ backends/key-file/folks-key-file.deps | 2 + backends/key-file/kf-backend-factory.vala | 67 +++++++++ backends/key-file/kf-backend.vala | 73 ++++++++++ backends/key-file/kf-persona-store.vala | 222 +++++++++++++++++++++++++++++ backends/key-file/kf-persona.vala | 124 ++++++++++++++++ backends/telepathy/tp-backend.vala | 3 - configure.ac | 1 + folks/backend.vala | 6 + folks/debug.vala | 9 +- 11 files changed, 586 insertions(+), 6 deletions(-) commit 8b685698e88262e6be5cdeba643535fd197d6d2d Author: Philip Withnall Date: Mon Jul 19 12:11:56 2010 +0100 Add PersonaStore trust levels The Personas from each PersonaStore now have an assigned trust level (none, partial or full) which indicates how much of their data can be used for linking Personas together to form Individuals. At the moment, the key-file backend is hard-coded as having the only fully trusted PersonaStore. backends/telepathy/tpf-persona-store.vala | 7 ++++ folks/individual-aggregator.vala | 20 ++++++++++++ folks/persona-store.vala | 48 +++++++++++++++++++++++++++++ folks/persona.vala | 9 +++++ 4 files changed, 84 insertions(+), 0 deletions(-) commit 46eaf12bde8c7d0676e6a78cdb950d1321c6e0ca Author: Philip Withnall Date: Fri Jul 16 13:40:39 2010 +0100 Add IMable interface folks/Makefile.am | 1 + folks/imable.vala | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 0 deletions(-) commit dcd308113590ecf0316a5747254b0ce30b50868b Author: Philip Withnall Date: Fri Jul 16 13:39:55 2010 +0100 Add concept of linkeable properties to Persona folks/persona.vala | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) commit 98187cc4f344c498633e71a8ec7b4e93dd120615 Author: Philip Withnall Date: Tue Jul 20 13:37:07 2010 +0100 Downgrade UID-as-alias warning to just a message It's routinely triggered by the key-file backend, and doesn't need to be a warning anyway. folks/individual.vala | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit e6edfc2cfd33b4f4309e5ae87f6e38de7e62f4f6 Author: Philip Withnall Date: Fri Jul 23 12:21:22 2010 +0100 Manually iterate through personas in remove_individual(). This lets us properly yield upon remove_persona(). folks/individual-aggregator.vala | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-) commit d7a41f42abc19029598efff03b08df261833a513 Author: Travis Reitter Date: Tue Aug 3 09:22:48 2010 -0400 Set the autoconf link to folks bugzilla. configure.ac | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit c0dfe5895ff6f04aaa81d067d324349563d8ad2c Author: Philip Withnall Date: Mon Aug 2 16:57:28 2010 +0100 Don't warn when adding an existing contact. Closes bgo#625830 backends/telepathy/tpf-persona-store.vala | 6 ++++-- folks/individual-aggregator.vala | 2 +- folks/persona-store.vala | 3 +++ 3 files changed, 8 insertions(+), 3 deletions(-) commit 461fd27cf073a12340a27c2581a1d1aa9fff55bd Author: Travis Reitter Date: Mon Aug 2 15:41:27 2010 -0400 Post-release version bump and non-release indicator configure.ac | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)