← Back to team overview

gtg-gsoc team mailing list archive

Re: Invernizzi - GSoC code review

 

On Fri, May 21, 2010 at 01:48:14PM -0400, Paul Natsuo Kishimoto wrote:
>  * For backends offered by plugins, does the PluginManager notify the
> BackendTypeManager that a new backend is available, or does the latter
> query the former?
> 
>         (This also makes me wonder if it is worth distinguishing
>         backends and plugins, i.e. no longer "plugin X provides backend
>         Y". If we later have client (UI) / server separation, plugins
>         will go with the client, backends must stay with the server,
>         roughly.)

Yeah I think you're probably right here.  Maybe the right interface is
to have dbus calls for registering/querying/etc. backend types, to
enable it to be possible to register the new backend from the GUI.

If this were done, then while internally backends would be a separate
concept from gui plugins, to the user they could be considered one and
the same (in fact we could let the plugins themselves register backends
if they desire, so if someone wanted to make a combo plugin that
includes both client gui features and a new backend, they could package
it all up in one piece, and the user would only have to install one
thingee.)

>  * I think there is/was a Bugzilla plugin, I think (never used it). If a
> user wanted to convert bugs from *two* Bugzilla databases into tasks (or
> equally, keep tasks in two sets of local files, etc.), how would that
> parallelization be handled? Multiple backend instances? How would config
> be stored/distinguished?

Aha, so this is a perfect use case for what I just described.  The
"Bugzilla Plugin" would be a GUI dialog for the user to specify bugzilla
bug trackers, their login credentials, and so on.

When first enabled, the plugin would register a "Bugzilla Backend Type"
via dbus to the gtg backend.  Then as the user uses the dialog to hook
up several bug trackers, it makes dbus calls to instantiate a new
'bugzilla backend instance' for each tracker.  Maybe the user has
different credentials for each.

Bryce



References