Gwibber Service improvements

Registered by Ken VanDine

Rationale:
The current gwibber service is very hard to test and can be fragile.

Goal:
Re-factor the gwibber service to make testing easier, write tests and simplify maintenance of the service.

Test Plans:
Ensure distro acceptance tests pass and verify new unit tests for the service pass and provide effective coverage.

Blueprint information

Status:
Not started
Approver:
Sebastien Bacher
Priority:
High
Drafter:
Ken VanDine
Direction:
Approved
Assignee:
Ken VanDine
Definition:
Approved
Series goal:
Accepted for quantal
Implementation:
Deferred
Milestone target:
milestone icon ubuntu-12.10-beta-1

Related branches

Sprints

Whiteboard

Discussion Topics

 * gwibber-service refactoring
  * Testability
  * Stop caching in the DB completely and rely on the DeeResourceManager for cached models?
  * DB schema changes to leverage the advantages of a relational DB instead of just storing json strings?
 * Service Plugin changes
  * Make plugins standalone processes?
  * Provide superclass for all plugins to inherit from, useful for either current model or split processes?
  * use libpeas for plugins?
  * Split the plugins into separate sources and have individual maintainers for each?
 * python3
  * Barry already ported mx.DateTime and looks like there shouldn't be any blockers to porting
  * Streaming API?

Plugins to keep:
 * facebook
 * foursquare
 * twitter
 * identica
 * statusnet
 * flickr

Plugins to remove:
 * digg
 * friendfeed
 * pingfm
 * qaiku

(?)

Work Items

Work items:
[ken-vandine] refactor out the DB for caching and service via Dee.SharedModel: POSTPONED
[ken-vandine] Remove unsupported service plugins: DONE
[bigwhale] StreamingAPI: POSTPONED
[ken-vandine] Refactor plugins: POSTPONED
[ken-vandine] Separate unit tests for dispatcher/plugins from API unit tests: POSTPONED
[ken-vandine] Remove Messages dbus interface: POSTPONED
[ken-vandine] Investigate Streams dbus interface, hopefully drop it: POSTPONED
[bigwhale] Rewrite operation collector code: POSTPONED
Sync friends with contacts in EDS: POSTPONED

Work items for ubuntu-12.10-beta-2:
[ken-vandine] Post about state of plugin support and need for maintainers of split out plugins: TODO
[davidc3] split a scope out of the gwibber lens: TODO