Development Team/Collaboration Refactoring

Introduction

During the 0.90 release cycle, Collabora is sponsoring the refactoring of the presence and collaboration framework in Sugar with the following objectives:

  • reduce the dependency on deprecated or soon to be deprecated parts of the Telepathy spec,
  • improve interoperability with other messaging systems,
  • make it easier to implement further collaboration features, often developed for other systems.

The strategy that will be followed can be summarized as turning Sugar into a normal Telepathy client.

Instead of implementing these changes inside Sugar's Presence Service, we are going to remove this layer because of the unneeded complexity that it brings and because several of the services it provides are either obsoleted or replaced by new components in the Telepathy framework. See Development Team/Presence Service Removal for details.

Tasks

Reimplement presence in the Shell

Work ongoing in http://git.sugarlabs.org/projects/sugar/repos/nops based on Development Team/Presence Service Removal.

  • Auto-create link-local accounts on startup if needed
  • Auto-create jabber accounts on startup if needed
  • Retrieve contacts from ContactList from all enabled connections, and keep the list updated with SimplePresence. Use contact details from Contacts.
  • Remove contacts when a connection goes offline
  • Retrieve buddy colors from AccountInfo?

Implement a non-Sugar-specific interface for announcing activity

Account configuration in the control panel

Sending and accepting subscription requests

Adding an arbitrary contact to our contact list

Avatars support

Merge Salut and Gabble contacts in the UI (?)

Reimplement sugar.presence without the PS

Implement compatibility PS based on sugar.presence (?)