Plugin/Addon-Modules (was: Re: Squeezing "Show Keyboard Status" indicator into KDE 4.2)

Friedrich W. H. Kossebau kossebau at kde.org
Tue Jan 6 19:54:41 GMT 2009


Am Montag, 5. Januar 2009, um 22:20 Uhr, schrieb Thomas Zander:
> On Monday 5. January 2009 19:28:27 Sebastian Kügler wrote:
> > > personally i don't think there's a lot of reason for another module,
> > > though.
> >
> > Or maybe intermittent releases of kdeplasma-addons? Like once every two
> > months, with two weeks of freeze? Would make for nice testing ground of
> > seasoned releases as well ...
>
> In KOffice that plan was also aired (a bit optimistic, I know) that we
> could have the main suite have a yearly release (historical reasons) and
> all the plugins we expect to get have a much more frequent release
> schedule.
>
> Makes sense to me.

It would also mean a smaller "time to market". Which might be especially 
encouraging for new contributors, who participate with little plugins or 
other things which are quickly developed, and only a few month later can 
say "hey daddy, this was done by me, I'm part of KDE!"
Those little things usually only get a short time span of attention. And as a 
release has some kind of disciplinating effect (oh, only two more weeks, so 
let's polish it now, because it has my name on it), chances are higher it 
does not get dropped by the time, perhaps. And the next release is always not 
too far away, so this motivation comes more often.

Some loud thinking:
[split between base and plugins]
As branching for the more frequent releases of the plugins should not also 
always branch the base, this would mean a split of all modules in 
platform/framework/base-program and the plugins. Such a split, even done for 
other reasons, has already happened for some, see kdebase/workspace vs. 
kdeplasma-addons (yes, ignores the base applets), kdevplatform vs. kdevelop.

[API/ABI]
Some programs support plugins, but without a finished interface. As long as 
the plugins are living in the same module and are adapted to all changes of 
the program, this is no problem. But once the plugins are in another module, 
the interface becomes semi-public. So the API stability policies need to 
allow the break between minor releases for these semi-public APIs. Should be 
no real problem, as usually everybody updates all of the KDE modules 
together.

[Version numbers]
For large releases which include the base programs all modules should share 
the same version numbers. I think this has worked nicely in the past, makes 
dependencies easy to see and also improved the thinking of the KDE software 
as a consistent suite.
So while the plugin modules increase their minor number by 1 for each release, 
the base modules would synch their minor number to that of the plugin modules 
for the next release.

[Rather external/addon plugins]
But then, how large is the demand for this? And isn't the co-development 
between base and plugins something which should not be underestimated in its 
fruitfulness? So perhaps not all plugins should be moved to the plugin 
modules. It could rather serve for those by-now independent developers who 
develop on their own and just publish to e.g. kde-apps.org. See yourself:

Service Menus: http://www.kde-apps.org/index.php?xcontentmode=287
Kate plugins: http://www.kde-apps.org/index.php?xcontentmode=241 (not all)
Amarok 2.0 scripts: http://www.kde-apps.org/?xcontentmode=57
...
While GHNS could be used for the cpu-independent plugins, still they miss the 
excellent infrastructure for development inside the main KDE project, like 
translations, artwork, peer-review, and release management.

End of brain dump. Afterall, someone has to implement it, push this forwards, 
and do all the work for the extra releases. And that won't be me, currently. 
I am already more than grateful enough for all those who run the 
infrastructure and all, thank you :)

Even more, Okteta will only have a plugin infrastructure for at around KDE 
4.4, so why should I care now ;)

Cheers
Friedrich
-- 
Okteta - KDE 4 Hex Editor - http://utils.kde.org/projects/okteta




More information about the kde-core-devel mailing list