[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?
Regards.
[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