← Back to team overview

gtg-contributors team mailing list archive

Refactoring the plugin API — your input wanted!

 

Hi everyone,

  There is a lot of exciting stuff happening with Getting Things GNOME!,
due to Google sponsoring three students to work on the code this summer
— Luca I., Karlo and myself.

  My work has to do with client-server separation and providing a really
first-class DBus interface to the tasks you store in GTG. However, in
response to some comments on the gtg-contributors list (see the thread
from https://lists.launchpad.net/gtg-contributors/msg00184.html) I am
also spending some time reworking the plugin application programming
interface (API).

  If you use, maintain, or have thought of writing a plugin for GTG,
please either read on, or skip to the to-do list at the bottom of this
message.

LONG VERSION

  Luca's Summer of Code project is implementing MULTIPLE BACKENDS in
GTG. What's a backend? It's one way of storing task and tag data. Simple
examples might be a local file, or a CouchDB or SQLite database. Other
examples would be web services (for Remember The Milk, Google Tasks,
etc.) Each of these is handled by a different backend; GTG keeps them
all in sync.

  As soon as I mention RTM, you might think, "But there is already a RTM
plugin, no?" Indeed there is. The *current* plugins that handle task
storage or syncing will wind up being converted into backends living on
the server-side of GTG. Of course it will be possible to add new
backends of your own.

  The GTG server (and its backends) will be available to not only the
desktop (GTK) user inteface (UI), but also Karlo's web-based UI, the
command-line tool gtcli, and any others.

  What does that leave for plugins? Plugins will be specific to the GTK
UI, and add features that streamline, customize, or better integrate it
into your personal workflow. They will let you, so to speak, "pimp your
GTG".

  With these concepts of plugins vs. backends in mind, I have started
hacking away at the code. But of course the outcome will be much better
if I get input from the people who use the plugin API.

SHORT VERSION

Therefore, please...
     1. Have a look at
        https://code.launchpad.net/~gtg-contributors/gtg/plugin-api-refactor
     2. Send me e-mail if you have any wishlist features for the plugin
        API
     3. Send me e-mail if you have a plugin idea (the API should support
        it)
     4. Keep using GTG!

Cheers,
-- 
Paul Kishimoto
SM candidate (2012), Technology & Policy Program
Massachusetts Institute of Technology

http://paul.kishimoto.name — +19053029315

Attachment: signature.asc
Description: This is a digitally signed message part