After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 638280 - Add a libsocialweb backend
Add a libsocialweb backend
Status: RESOLVED FIXED
Product: folks
Classification: Platform
Component: libfolks
git master
Other All
: High enhancement
: gnome-3.0
Assigned To: folks-maint
folks-maint
Depends on: 638279 644867
Blocks:
 
 
Reported: 2010-12-29 16:15 UTC by Marco Barisione
Modified: 2011-04-05 14:51 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Marco Barisione 2010-12-29 16:15:49 UTC
Libsocialweb (http://git.gnome.org/browse/libsocialweb/) is a DBus service plus some libraries to access status message updates from web services. It would be nice to be able to fetch also contacts from the web services and have them in libfolks.
I implemented a prototype backend for libsocialweb, see http://git.collabora.co.uk/?p=user/bari/folks.git;a=shortlog;h=refs/heads/libsocialweb

There are some limitations in libsocialweb that make this hackish, I will report bugs when I discover where their bugzilla is :)

If you want to try my branch you also need the “use” branch in my libsocialweb repository (http://git.collabora.co.uk/?p=user/bari/libsocialweb.git;a=shortlog;h=refs/heads/use) for introspection support and the “friends-feed” branch of the facebook plugin (http://git.collabora.co.uk/?p=user/bari/meego-facebook-plugins.git;a=shortlog;h=refs/heads/friends-feed) for contact support.
Comment 1 Philip Withnall 2010-12-29 22:31:31 UTC
When are those libsocialweb branches likely to be committed to libsocialweb master?
Comment 2 Marco Barisione 2010-12-30 11:28:08 UTC
Not sure, libsocialweb seems slightly under-maintained now. There are also some design problems in libsocialweb that make it difficult to adapt it for contacts. Robster is on holidays now, I will talk with him when he is back.
Comment 3 Travis Reitter 2011-01-03 22:46:27 UTC
Just a warning - since you started this backend, we've committed to more-consistent code style, so this branch will need to catch up to it before merging. See the Vala section in HACKING and some of the recent commits to origin/master.

================================

Be sure to add an entry for this backend in folks/debug.vala. There's an array that lists all the backends, so we can distinguish their output.

(This is an ugly wart that we'd like to fix - see bug #638609)

================================

+                  // FIXME: There seem to be no way to know when a service
+                  // is enabled...

Could you file a bug for this in libsocialweb-client?

================================

+   * @since 0.3.1

Note that we'll need to bump these all. We'll probably release 0.3.4 before we can merge this backend, so it's safe to bump them at least to 0.3.5

================================

+      // FIXME: There is no better error for this.
+      throw new PersonaStoreError.UNSUPPORTED_ON_USER (
+          "Personas cannot be added to this store.");

I think we should do as suggested in bug #638281 comment 4

================================

+          var persona = new Persona(this, item);

In addition to the Vala-specific code style, note that we follow Tp style in having a space between a function name and its (. This is repeated a bit at least in sw-persona-store.vala.

================================

+  private const string[] _linkable_properties = {};
...
+      /* This is a hack so that Facebook contacts from libsocialweb are
+       * automatically merged with Facebook contacts from Telepathy
+       * because they have the same iid. */

I think you meant to add 'im-addresses' to this array in commit be97202

+      if (store.id == "facebook" && "facebook-" in id)
+        {
+          /* The id is in the form "facebook-XXXX", while the JID is
+           * "-XXXX@chat.facebook.com". */
+          facebook_jid = id.replace("facebook", "") + "@chat.facebook.com";
+          iid = "jabber:" + facebook_jid;
+        }

Is there no reliable way to just ask for the jid directly from the service (or at least push this tentative relationship into libsocialweb so it can be adjusted there as necessary)?

================================

+      var uid = this.build_uid ("folks", store.id, id);

As mentioned in the eds backend bug, this string should be "libsocialweb" or similar. Ideally, store.type_id. I've cleaned this up in the equivalent Tp backend code.

================================

+  public static string? get_item_id (Item item)

It seems like this should be internal.

================================

+  public void update (Item item)

This should be internal

================================

There doesn't seem to be a way to access the corresponding item publicly. Our general scheme with Folks is to provide all common functionality through libfolks and have the backends provide a public library for backend-specific functionality (eg, getting the Item for a Sw.Persona to start a libsocialweb-specific action).

Of course, you'll need to split your backed into two libraries (as with the Telepathy backend) for this.

================================

I believe I covered the rest of the commits in comments on bug #638279.
Comment 4 Marco Barisione 2011-01-04 17:59:32 UTC
(In reply to comment #3)
> Could you file a bug for this in libsocialweb-client?

Yes, I already wrote the bug in a text file as I didn't find where their bugzilla is :P
I pinged Rob Bradford about that.

> Is there no reliable way to just ask for the jid directly from the service (or
> at least push this tentative relationship into libsocialweb so it can be
> adjusted there as necessary)?

You could also get JIDs that are not guaranteed to be real.

> There doesn't seem to be a way to access the corresponding item publicly. Our
> general scheme with Folks is to provide all common functionality through
> libfolks and have the backends provide a public library for backend-specific
> functionality (eg, getting the Item for a Sw.Persona to start a
> libsocialweb-specific action).
> 
> Of course, you'll need to split your backed into two libraries (as with the
> Telepathy backend) for this.

I know, I just avoided to do that as it would have been more work for something that is far from being ready.
Comment 5 Travis Reitter 2011-03-21 21:25:26 UTC
Alban, I've cherry-picked your latest branch on top of the latest master:

http://git.collabora.co.uk/?p=user/treitter/folks.git;a=shortlog;h=refs/heads/lsw-rebase

I had to do a few minor fixes along the way (including updating to the latest libfolks API), so please rebase your latest work on this branch as well.

Please check carefully that no functionality breaks after you rebase your branch upon this one.

A lot of these commits should be squashed before final merging, since there's a lot of noise in them.

I haven't done any real reviewing yet, but will once you've rebased and pushed your branch to your own git repo.
Comment 6 Alban Crequy 2011-03-29 15:30:55 UTC
New branch "lsw3":
http://git.collabora.co.uk/?p=user/alban/folks.git;a=shortlog;h=refs/heads/lsw3

It depends on my branch "friends-feed2" in libsocialweb:
https://bugs.meego.com/show_bug.cgi?id=12175#c15

It was based on Travis' rebase in Comment #5 and I rebased it on the latest master. It includes fixes from Travis' review (the review unfortunately disappeared when GNOME Bugzilla was sick last week).
Comment 7 Alban Crequy 2011-03-29 16:08:49 UTC
For the reviewers: most of the changes are visible as individual commits there:
http://git.collabora.co.uk/?p=user/alban/folks.git;a=shortlog;h=refs/heads/lsw2
Comment 8 Travis Reitter 2011-03-30 23:16:04 UTC
(In reply to comment #6)
> New branch "lsw3":
> http://git.collabora.co.uk/?p=user/alban/folks.git;a=shortlog;h=refs/heads/lsw3
> 
> It depends on my branch "friends-feed2" in libsocialweb:
> https://bugs.meego.com/show_bug.cgi?id=12175#c15
> 
> It was based on Travis' rebase in Comment #5 and I rebased it on the latest
> master. It includes fixes from Travis' review (the review unfortunately
> disappeared when GNOME Bugzilla was sick last week).

Here's the original review, for posterity:

http://git.collabora.co.uk/?p=user/alban/folks.git;a=shortlog;h=refs/heads/lsw2

This generally looks good. Most commits should be squashed together for
the final merge, since there's a bit of noise in the way they're split
now.

Some comments follow (in chronological order).


backends/libsocialweb/sw-backend.vala
=====================================

+  public override string name { get { return "libsocialweb"; } }

Replace this with BACKEND_NAME. See how the Tracker backend does it.


+                  // FIXME: There seem to be no way to know when a
  service
+                  // is enabled...

Is this still true? Please ask the lsw developers if you don't know of
a way. If it isn't, please file a bug against lsw and point to that bug
in this comment.


backends/libsocialweb/sw-persona-store.vala
===========================================

+  public override string type_id { get { return "libsocialweb"; } }

Use BACKEND_NAME as described above


+   * @since 0.3.1

Please find all the @since lines in the code added by this branch and
replace them with "@since UNRELEASED".

We replace all instances of "UNRELEASED" before each release.


+      // FIXME: There is no better error for this.
+      throw new PersonaStoreError.UNSUPPORTED_ON_USER (
+          "Personas cannot be added to this store.");

Use this:

      throw new PersonaStoreError.READ_ONLY (
          "Personas cannot be added to this store.");


+      // FIXME: There is no better error for this.
+      throw new PersonaStoreError.UNSUPPORTED_ON_USER (
+          "Personas cannot be removed from this store.");

Use this:

      throw new PersonaStoreError.READ_ONLY (
          "Personas cannot be removed from this store.");


+  public override async void prepare ()
.....
+              this._service.query_open_view("people", parameters,
+                  (query, item_view) =>
+                    {
+                      item_view.items_added.connect
  (this.items_added_cb);
+                      item_view.items_changed.connect
  (this.items_changed_cb);
+                      item_view.items_removed.connect
  (this.items_removed_cb); +
+                      this._item_view = item_view;

These signal handlers need a corresponding disconnect()


backends/libsocialweb/sw-persona.vala
=====================================
+      var uid = this.build_uid ("folks", store.id, id);

This first string should evaluate to "libsocialweb" (it should be
BACKEND_NAME)


backends/libsocialweb/sw-persona.vala
=====================================
+      var gender_string = item.get_value ("x-gender");
+      Gender gender;
+      if (gender_string == "male")
+        gender = Gender.MALE;
+      else if (gender_string == "female")

Make gender_string lowercase before comparing with "male" and "female"


backends/libsocialweb/sw-persona.vala
=====================================

+      /* This is a hack so that Facebook contacts from libsocialweb are
+       * automatically merged with Facebook contacts from Telepathy
+       * because they have the same iid. */
+      string facebook_jid = null;
+      string iid;
+      if (store.id == "facebook" && "facebook-" in id)
+        {
+          /* The id is in the form "facebook-XXXX", while the JID is
+           * "-XXXX@chat.facebook.com". */
+          facebook_jid = id.replace("facebook", "") +
  "@chat.facebook.com";
+          iid = "jabber:" + facebook_jid;
+        }

Factor this into its own function with an obvious name -- it should let
us cut this comment down a little too, to make things less noisy.


+      else
+        {
+          iid = store.id + ":" + id;
+        }

This should also be its own "build_iid" function (since it will be used
in a couple other places as well). See what the Tracker backend did
with that.


backends/libsocialweb/lib/Makefile.am
=====================================
@@ -22,7 +22,8 @@ folks_backend_libsocialweb_deps = \
        $(NULL)

 libfolks_libsocialweb_la_SOURCES = \
-       swf-persona.vala
+       swf-persona.vala \
+       swf-persona-store.vala

Add a trailing $(NULL) to these definitions to avoid noise when adding
new files to the library, etc.


backends/libsocialweb/lib/swf-persona-store.vala
================================================
+    }
+
+}

Cut this empty line near the end of the file


tests/lib/libsocialweb/Makefile.am
==================================
+       $(TRACKER_SPARQL_CFLAGS) \
+       $(DBUS_GLIB_CFLAGS) \

These look like left-overs from the original Tracker backend Makefile
-- please cut.


tests/lib/libsocialweb/backend.vala
=====================================

Some parts of this file don't wrap at 80 characters - please fix that.

"/com/meego/libsocialweb" and "com.meego.libsocialweb" appear in a few
locations - please factor these out.


+public interface LibsocialwebTest.ItemView : DBusProxy {
+  public struct added_items_t {
+    public string service;
+    public string id;
+    public int64 time;
+    public HashTable<string,string> attrs;
+  }

Please use the bracing style of the rest of the project (applies to
this whole file)

Also use CamelCase naming for structs, as we do for all types. You
might want to name this, eg, AddedItem or ItemsAddedElement.


+      message ("Start() called.");
+      StartCalled (this.path);

Please use debug() for any output less important than warnings.


tests/libsocialweb/dummy-lsw.vala
=================================

Please wrap this to 80 characters


+      var conn = Bus.get_sync (BusType.SESSION);

Use the async version (Bus.get). You'll probably want to make the parent
function async and call it as:

var conn = yield Bus.get (BusType.SESSION);

then call this core async function from test_dummy_libsocialweb(). See
the Tracker backend tests and/or ask Raul about this.


+      uint timer_id = Timeout.add_seconds (5, () =>
+        {
+          assert_not_reached ();
+          return false;
+        });
+      main_loop.run ();
+      Source.remove (timer_id);

This is repeated 2 more times in this function, making the structure of
this function a little odd. Why not only have the last one and chain up
the body of test_dummy_libsocialweb() like:

+      this._lsw_backend.ready.connect(() =>
+        {
+          var mysocialnetwork = this._lsw_backend.add_service
("mysocialnetwork");
+          var p = new GLib.HashTable<string,string> (null, null);
+          var view_path = mysocialnetwork.open_view("feed", p);
+
+         
conn.get_proxy<LibsocialwebTest.ItemView>.begin<LibsocialwebTest.ItemView
+              "com.meego.libsocialweb", view_path, 0, null, (v) =>
+            {
+              LibsocialwebTest.ItemView view =
  (LibsocialwebTest.ItemView)v;
+              view.Start();
+              mysocialnetwork.item_views[view_path].ItemsAdded(new
LibsocialwebTest
+              mysocialnetwork.item_views[view_path].ContactsAdded(new
LibsocialwebT

+              mysocialnetwork.OpenViewCalled.connect((query, p, path)
  =>
+                {
+                  message ("mysocialnetwork.OpenViewCalled.connect");
+                  mysocialnetwork.item_views[path].StartCalled.connect
  ( (path) =>
+                    {
+                      message ("OpenViewCalled.connect");
+                      Idle.add (() =>
+                        {
+                          string text = "([('mysocialnetwork', 'id01',
  %x, "
+                              + "{'id': ['id01'], 'name':
  ['Gargantua']}), "
+                             + "('mysocialnetwork', 'id02', %x, "
+                              + "{'id': ['id02'], 'name':
['Pantagruel']})],)";
+                          Variant v = new Variant.parsed (text,
  1300792578, 1300792579)
+                          conn.emit_signal (null, path,
+                              "com.meego.libsocialweb.ItemView",
"ContactsAdded", v);
+                          return false;
+                        });
+                    });
+                });
+            });
+        });

Of course, you might want to factor some chunks into functions for
readability.


backends/libsocialweb/lib/swf-persona.vala
==========================================
+/* https://bugzilla.gnome.org/show_bug.cgi?id=645139
+      string[] websites = item.get_value_all ("url");
+      foreach (string website in websites)
+        urls.prepend (new FieldDetails (website));
+*/

Indent the comments to line up with the rest of the block.
Comment 9 Travis Reitter 2011-03-30 23:19:28 UTC
(In reply to comment #7)
> For the reviewers: most of the changes are visible as individual commits there:
> http://git.collabora.co.uk/?p=user/alban/folks.git;a=shortlog;h=refs/heads/lsw2

Reviewing the newer changes here:

This all looks pretty good (aside from the comments below). Once you've fixed those, I think the only thing blocking this from being merged are the bug blocking this and https://bugs.meego.com/show_bug.cgi?id=12175 (which is blocking it, but in that bugzilla instead of this one).


backends/libsocialweb/lib/swf-persona-store.vala
================================================
       // FIXME: There is no better error for this.
-      throw new PersonaStoreError.UNSUPPORTED_ON_USER (
+      throw new PersonaStoreError.READ_ONLY (

Cut out this FIXME comment as well


backends/libsocialweb/lib/swf-persona.vala
==========================================
+  internal static string? build_facebook_jid (string store_id, string lsw_id)

Internal symbols should be named like private symbols (beginning with a _)


tests/lib/libsocialweb/backend.vala
===================================
 const string LibsocialwebPath = "/com/meego/libsocialweb";
+const string LibsocialwebIface = "com.meego.libsocialweb";
+const string LibsocialwebBusName = "com.meego.libsocialweb";

These should be named in UPPER_WITH_UNDERSCORES as with other constants. They should probably also be static members of the class.
Comment 10 Alban Crequy 2011-03-31 13:24:04 UTC
(In reply to comment #9)
> (In reply to comment #7)
> > For the reviewers: most of the changes are visible as individual commits there:
> > http://git.collabora.co.uk/?p=user/alban/folks.git;a=shortlog;h=refs/heads/lsw2
> 
> Reviewing the newer changes here:
> 
> This all looks pretty good (aside from the comments below). Once you've fixed
> those, I think the only thing blocking this from being merged are the bug
> blocking this and https://bugs.meego.com/show_bug.cgi?id=12175 (which is
> blocking it, but in that bugzilla instead of this one).
> 
> 
> backends/libsocialweb/lib/swf-persona-store.vala
> ================================================
>        // FIXME: There is no better error for this.
> -      throw new PersonaStoreError.UNSUPPORTED_ON_USER (
> +      throw new PersonaStoreError.READ_ONLY (
> 
> Cut out this FIXME comment as well

It is fixed in "lsw3":
http://git.collabora.co.uk/?p=user/alban/folks.git;a=shortlog;h=refs/heads/lsw3

I removed the FIXME after rebasing, that's why it didn't appear in the branch lsw2.

> backends/libsocialweb/lib/swf-persona.vala
> ==========================================
> +  internal static string? build_facebook_jid (string store_id, string lsw_id)
> 
> Internal symbols should be named like private symbols (beginning with a _)

Fixed.

> tests/lib/libsocialweb/backend.vala
> ===================================
>  const string LibsocialwebPath = "/com/meego/libsocialweb";
> +const string LibsocialwebIface = "com.meego.libsocialweb";
> +const string LibsocialwebBusName = "com.meego.libsocialweb";
> 
> These should be named in UPPER_WITH_UNDERSCORES as with other constants. They
> should probably also be static members of the class.

Fixed.

Pushed on:
http://git.collabora.co.uk/?p=user/alban/folks.git;a=shortlog;h=refs/heads/lsw3

I didn't rebase the last patches to make reviewing easier.
Comment 11 Alban Crequy 2011-04-01 11:05:48 UTC
libsocialweb 0.25.14 is released with the new contacts interface:
http://mail.gnome.org/archives/ftp-release-list/2011-March/msg00299.html

The folks branch is updated with this dependency:
http://git.collabora.co.uk/?p=user/alban/folks.git;a=shortlog;h=refs/heads/lsw3
Comment 12 Travis Reitter 2011-04-01 22:45:28 UTC
(In reply to comment #11)
> libsocialweb 0.25.14 is released with the new contacts interface:
> http://mail.gnome.org/archives/ftp-release-list/2011-March/msg00299.html
> 
> The folks branch is updated with this dependency:
> http://git.collabora.co.uk/?p=user/alban/folks.git;a=shortlog;h=refs/heads/lsw3

Great - I've rebased this upon master:

http://git.collabora.co.uk/?p=user/treitter/folks.git;a=shortlog;h=refs/heads/lsw3-rebase

A couple minor things:

* Could you change configure.ac so it always checks if a new-enough version of libsocialweb exists, and automatically enables the backend if so? Add it such that configure will still fail if --enable-libsocialweb-backend is specified but the version requirement isn't met.

* Add an entry to the final output of configure which states whether the lsw backend is enabled (see the line for Tracker)

* Add entries to NEWS as appropriate for this bug fix and summary of the features it adds

* Squash commits as appropriate

After that, please merge to master.
Comment 13 Travis Reitter 2011-04-01 22:53:31 UTC
Actually, a few more things to fix before merging:

make[4]: Entering directory `/home/treitter/checkout/gnome/folks/tests/lib/libsocialweb'
  VALAC  libsocialweb_test_la_vala.stamp
  GEN    .gitignore
backend.vala:186.18-186.47: warning: unhandled error `GLib.IOError'
      var conn = Bus.get_sync (BusType.SESSION);
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend.vala:191.7-191.47: warning: unhandled error `GLib.IOError'
      conn.register_object (path, contact_view);
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend.vala:235.18-235.47: warning: unhandled error `GLib.IOError'
      var conn = Bus.get_sync (BusType.SESSION);
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend.vala:238.7-241.38: warning: unhandled error `GLib.IOError'
backend.vala:242.7-245.38: warning: unhandled error `GLib.IOError'
backend.vala:269.18-269.47: warning: unhandled error `GLib.IOError'
      var conn = Bus.get_sync (BusType.SESSION);
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend.vala:271.7-271.58: warning: unhandled error `GLib.IOError'
      conn.register_object (LIBSOCIALWEB_PATH, lsw_server);
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend.vala:126.18-126.47: warning: unhandled error `GLib.IOError'
      var conn = Bus.get_sync (BusType.SESSION);
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend.vala:128.7-130.31: warning: unhandled error `GLib.Error'
backend.vala:135.18-135.47: warning: unhandled error `GLib.IOError'
      var conn = Bus.get_sync (BusType.SESSION);
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend.vala:137.7-139.33: warning: unhandled error `GLib.Error'
backend.vala:144.18-144.47: warning: unhandled error `GLib.IOError'
      var conn = Bus.get_sync (BusType.SESSION);
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend.vala:146.7-148.33: warning: unhandled error `GLib.Error'
Compilation succeeded - 13 warning(s)


We fixed this same problem for the Tracker backend recently, so see the fix for it:

*** Warning: Linking the shared library libsocialweb-test.la against the loadable module
*** libfolks-backend-libsocialweb.so is not portable!
Comment 14 Travis Reitter 2011-04-01 22:54:33 UTC
And more instances of the same issues:

make[3]: Entering directory `/home/treitter/checkout/gnome/folks/tests/libsocialweb'
  VALAC  dummy_lsw_vala.stamp
  GEN    .gitignore
dummy-lsw.vala:109.19-110.79: warning: unhandled error `GLib.Error'
dummy-lsw.vala:51.18-51.47: warning: unhandled error `GLib.IOError'
      var conn = Bus.get_sync (BusType.SESSION);
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
dummy-lsw.vala:68.23-68.57: warning: unhandled error `GLib.IOError'
      var view_path = mysocialnetwork.OpenView("feed", p);
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
dummy-lsw.vala:88.11-88.23: warning: unreachable code detected
          return false;
          ^^^^^^^^^^^^^
dummy-lsw.vala:132.11-132.23: warning: unreachable code detected
          return false;
          ^^^^^^^^^^^^^

and


*** Warning: Linking the executable dummy-lsw against the loadable module
*** libfolks-backend-libsocialweb.so is not portable!
Comment 15 Alban Crequy 2011-04-05 13:32:55 UTC
I fixed the branch, tested "make distcheck" (it works with folks_released=1 as said in Bug #643128) and squashed more commits. I didn't rebase too much because it is painful to do when files are moved in the branch.

I pushed 030bea6..0aa46cd to master:

commit 0aa46cddfb0e696ef79dd37d655aad72e6fd681f
Author: Alban Crequy <alban.crequy@collabora.co.uk>
Date:   Mon Apr 4 13:53:20 2011 +0100

    libsocialweb: update NEWS

commit 9b80b5325ee5026bc74b46027fb29ec2dddaf5ed
Author: Alban Crequy <alban.crequy@collabora.co.uk>
Date:   Fri Apr 1 18:02:33 2011 +0100

    libsocialweb: conditional compilation
    
    Introduces --enable-libsocialweb-backend=[yes/no/auto] (default: auto). Unless
    `no' is used, it checks the dependencies for the libsocialweb backend and
    automatically compiles it when possible. Configure fails if `yes' is used and
    the required dependencies are not available.

commit f1b315d36a7638580137f2d82d0c6fd5760410c8
Author: Alban Crequy <alban.crequy@collabora.co.uk>
Date:   Fri Apr 1 11:47:49 2011 +0100

    libsocialweb: update dependency on libsocialweb-client 0.25.14
    
    libsocialweb 0.25.14 contains the new contacts interface. It is announed here:
    http://mail.gnome.org/archives/ftp-release-list/2011-March/msg00299.html

commit 2b314228f713803cf78c5f679f9e371ca7f47c9b
Author: Alban Crequy <alban.crequy@collabora.co.uk>
Date:   Mon Mar 14 11:49:56 2011 +0000

    tests: libsocialweb: new test infrastructure for libsocialweb

commit ea92ae0ac24d181cb64840df86b7c6c821105f79
Author: Alban Crequy <alban.crequy@collabora.co.uk>
Date:   Mon Mar 28 15:43:57 2011 +0100

    libsocialweb: check contacts capabilities and disconnect signals

commit 30b64d46df840e23e9ecf1b486d64104577d7a66
Author: Alban Crequy <alban.crequy@collabora.co.uk>
Date:   Mon Mar 28 12:00:24 2011 +0100

    libsocialweb: factor build_facebook_jid and build_iid

commit e52ccc3b474ce5a7cf6d9e35ef4a047d14d1c409
Author: Alban Crequy <alban.crequy@collabora.co.uk>
Date:   Mon Mar 28 11:39:56 2011 +0100

    libsocialweb: make gender_string lowercase before comparing with "male" and "female"

commit 2c39dc54ba8060341eb110cf1043cd9a80d8f0f7
Author: Alban Crequy <alban.crequy@collabora.co.uk>
Date:   Fri Mar 25 15:54:08 2011 +0000

    libsocialweb: use BACKEND_NAME in build_uid

commit d64848ea14c025224386c2c9fd58c722947a5963
Author: Alban Crequy <alban.crequy@collabora.co.uk>
Date:   Fri Mar 25 15:28:52 2011 +0000

    libsocialweb: fix error PersonaStoreError.UNSUPPORTED_ON_USER

commit 4eb8947edf3b5e5ddeb8b2d5c775d535722db3ce
Author: Alban Crequy <alban.crequy@collabora.co.uk>
Date:   Fri Mar 25 15:27:07 2011 +0000

    libsocialweb: fix @since

commit a7df7da89163b7704c7f40757a765e6749ff4e5f
Author: Alban Crequy <alban.crequy@collabora.co.uk>
Date:   Wed Mar 16 16:35:20 2011 +0000

    libsocialweb: use the new Contacts interface

commit cc838cd51f3334089b39735ecb6f76acb9426513
Author: Alban Crequy <alban.crequy@collabora.co.uk>
Date:   Mon Mar 21 16:54:03 2011 +0000

    libsocialweb: convert GenericArray to LinkedHashSet

commit 9384dbb75029a3bfbd06dc12e1b8f69b675a1899
Author: Alban Crequy <alban.crequy@collabora.co.uk>
Date:   Fri Mar 18 14:22:27 2011 +0000

    libsocialweb: prepare code to receive several urls. Blocked on bug #645139

commit 66a181500d3199f260a856414a9830b99815dc93
Author: Alban Crequy <alban.crequy@collabora.co.uk>
Date:   Tue Mar 29 14:18:32 2011 +0100

    libsocialweb: create a separate library folks-libsocialweb
    
    Based on initial work from:
     Thomas Thurman <thomas@thurman.org.uk>
    Reworked by:
     Alban Crequy <alban.crequy@collabora.co.uk>

commit 6469bb1e62a720b323fc98a7d75b23197a58734c
Author: Alban Crequy <alban.crequy@collabora.co.uk>
Date:   Mon Mar 7 18:31:40 2011 +0000

    libsocialweb: Don't crash when D-Bus method Query.OpenView() returns an error

commit 8e3a5f833098271e309bdcd05e7e93381f3f0554
Author: Marco Barisione <marco@barisione.org>
Date:   Mon Dec 20 10:57:13 2010 +0000

    libsocialweb: Print debugging info after initializing a Sw.Persona and not before

commit 35fbc43b5415a8cf6ece3264634304465c86b3ff
Author: Marco Barisione <marco@barisione.org>
Date:   Wed Nov 10 15:22:08 2010 +0000

    libsocialweb: Automatically merge Facebook XMPP contacts with the libsocialweb ones

commit 6df6204a1563ebdf04b370e5d21cce0ca7d33327
Author: Marco Barisione <marco@barisione.org>
Date:   Wed Nov 10 11:57:40 2010 +0000

    libsocialweb: Make Sw.Persona retrieve gender and URLs from libsocialweb

commit 2fa1e70a97e08a706ce8b8091761a21cf9a32d81
Author: Marco Barisione <marco@barisione.org>
Date:   Mon Nov 8 14:02:30 2010 +0000

    libsocialweb: Make Sw.Persona implement the NameDetails interface instead of Aliasable

commit bdbb67519d99610b3cc5937c6f7e79227d6cfc18
Author: Marco Barisione <marco@barisione.org>
Date:   Mon Nov 1 13:58:08 2010 +0000

    libsocialweb: add new backend
    
    Based on patches from:
     Marco Barisione <marco@barisione.org>
    Reworked by:
     Alban Crequy <alban.crequy@collabora.co.uk>
Comment 16 Travis Reitter 2011-04-05 14:51:58 UTC
Closing, since these patches have been merged.