[RFC] How to handle backends properly?

Kevin Ottens ervin at kde.org
Sat Sep 30 16:08:17 BST 2006

Hello list,

As you probably know, Solid finally entered kdelibs yesterday. It's the second 
library using a frontend/backend architecture[T]. And basically it raises the 
question on how do we want to manage the development of those backends.

Basically we have two kinds of backends:
 - Fake backends, stub providing simulated features
 - Backends actually providing real features

Of course the fake backends are already hosted in kdelibs with the libraries 
to support the development and allow to unit test the libraries. So the 
question is more about where to host the other ones?

Currently backends for Phonon are hosted in kdemultimedia[M] which looks like 
the right place to do this. For Solid the situation is less clear, should it 
be in kdebase/runtime[R]?

At first that looks like a sensible choice. The problem I have with hosting 
those backends in kdebase or kdemultimedia is that we loose a property of 
this splitting (at least in the way they'll be perceived by distributors): 
decoupled release cycles.

One of the point of those backends is to be able to make a release when a 
subsystem see its behavior changing (like in the transition from HAL 0.4 to 
0.5 for instance). Hosting them in kdebase or kdemultimedia doesn't really 
support this idea.

So, I'm wondering if it would be a good idea to create a specific module for 
those backends. With specific release rules. I think it should be released 
each time we release kdelibs, but extra development and releases would be 
allowed when one of the backends is broken because of a behavior change in 
one of the subsystems. It would be more convenient to manage this way. Also, 
having the backends in a separate module would give a clear signal to 
distributors that they can choose only the few ones they want to support for 
their distribution without too much headache.

Any opinions? More food for thought in this area?


[T] http://conference2006.kde.org/conference/talks/32.php
[M] http://websvn.kde.org/trunk/KDE/kdemultimedia/
[R] http://websvn.kde.org/trunk/KDE/kdebase/runtime/
Kévin 'ervin' Ottens, http://ervin.ipsquad.net
"Ni le maître sans disciple, Ni le disciple sans maître,
Ne font reculer l'ignorance."

More information about the kde-core-devel mailing list