KDE ABI stability?

Zack Rusin zack at kde.org
Mon Dec 5 19:11:28 GMT 2005

On Monday 05 December 2005 19:45, Christian Loose wrote:
> I'm little confused why I was never contacted by the debian
> packagers.  I only know about this problem because  Andras Mantia
> wrote me a mail about it. We back then solved it for Quanta by not
> using the library at all.
> I do know about KDEs BC requirements and that libcvsservice is a
> public library, but I didn't check the generated code of dcopidl2cpp.
> That was my big mistake.

No worries. I think you just became a scapegoat. The bottom line is 
this: we do not keep BC in kdelibs and blaming libraries from other 
modules for breaking it is silly. 
And again not to be the fun spoiler in this little discussion but we can 
discuss until no end and everyone will agree how great BC is, but the 
bottom line is that right now in KDE when a maintainer says "i don't 
like this class, i'll throw in a few new virtuals here and there" no 
one does anything.

There was time when I was reviewing every single change to kdelibs to 
make sure none of the bic changes were getting in. Dirk even wrote a 
cool checker for it. But it's just depressing. For example kabc has 
been breaking bc in pretty much every 3.x release. Look for the 
numerous discussions on kde-cvs where those changes have been made 
because either "class was bad and needed redesign" or "was only used by 
kde applications and therefore it could be breaking bc". 

The requirement of not breaking BC is great unless it comes down to your 
own classes. Then the situation changes dramatically and the BIC is, in 
every single case I've seen, as necessary as breathing to us. I don't 
know, we can make it the release dude responsibility or get some 
procedure in place by which when someone says "you broke bc, revert" 
and the other person goes "yeah, but it had to be done so i'm not 
reverting" someone third with authority can come in and say "you're a 
jackass, this is not up for discussion, revert right now or i will".


Time is what keeps everything from happening at once. 

More information about the kde-core-devel mailing list