Using the KomparePart in KDevelop

Kevin Kofler kevin.kofler at chello.at
Thu Jul 23 17:24:13 UTC 2009


On Thursday 23 July 2009, Andreas Pakulat wrote:
> Not the part, but indeed the library needs it - unless the maintainers
> don't enforce BC during the KDE4 lifetime?

So far, the internal Kompare libraries have been in ABI Wild West, I even 
backported ABI changes (which were part of bugfixes) to 4.2.x point releases 
(with no soname bump). But if something outside of Kompare starts actually 
using those libraries, that will have to change. :-(

I'd be pragmatic and say: as long as KDevelop is the only external user of 
those libraries, feel free to do the changes you need on your schedule as long 
as you update the main Kompare application at the same time (so it keeps 
working). You do need to bump the soname if you change the ABI of a public 
library, and there are also policies on not doing such bumps in a point 
release (e.g. you can bump the ABI of a library in an application module like 
kdesdk for KDE 4.n->4.n+1, but you're normally not supposed to do that for KDE 
4.m.n->4.m.n+1 and you may get into trouble with the KDE Release Team if you 
try doing that; that said, distros like Fedora which plan to ship KDevelop 4 
as soon as possible may be backporting those required API/ABI changes, we 
already did that to kdegraphics in KDE 4.1.x for Digikam 0.10 Beta, and in 
this case Fedora would automatically have upstream buyin to do those backports 
because I happen to be Kompare's upstream maintainer ;-) ). Of course, the 
more users the library gets, the more ABI compatibility gets important. (But 
binary compatibility is not required for the entire lifetime of KDE 4 as it is 
for kdelibs and kdepimlibs.)

Note that KParts do also have an ABI, but the encapsulation there is stronger 
than for a regular library: not everything that's public in the class 
implementing the KPart is actually accessible from the outside, see e.g. how 
the KatePart selectively exports APIs.

        Kevin Kofler


More information about the Kompare-devel mailing list