Sebastian Trüg | 13 Aug 14:13
Favicon

Policy on binary compatibility in kdesupport?

The problem is simple: I want to introduce transactions into Soprano. That 
will break BC since it introduces new virtual methods.
Now normally I would go about this by releasing Soprano 3 and increasing the 
lib version.
However, I don't know what the policy is here. Is this allowed at all? Or does 
kdesupport need to stay binary compatible until KDE 5?

Cheers,
Sebastian

Andreas Pakulat | 13 Aug 15:01
Gravatar

Re: Policy on binary compatibility in kdesupport?

On 13.08.08 14:16:07, Sebastian Trüg wrote:
> The problem is simple: I want to introduce transactions into Soprano. That 
> will break BC since it introduces new virtual methods.
> Now normally I would go about this by releasing Soprano 3 and increasing the 
> lib version.
> However, I don't know what the policy is here. Is this allowed at all? Or does 
> kdesupport need to stay binary compatible until KDE 5?

AFAIK kdesupport is just a convenience place to host libraries we depend
on. Which means you can do whatever you want as long as you play by the
rules (i.e. SOVERSION increase on BC changes). 

Andreas

--

-- 
You may get an opportunity for advancement today.  Watch it!

Thiago Macieira | 13 Aug 15:22

Re: Policy on binary compatibility in kdesupport?

Andreas Pakulat wrote:
>On 13.08.08 14:16:07, Sebastian Trüg wrote:
>> The problem is simple: I want to introduce transactions into Soprano.
>> That will break BC since it introduces new virtual methods.
>> Now normally I would go about this by releasing Soprano 3 and
>> increasing the lib version.
>> However, I don't know what the policy is here. Is this allowed at all?
>> Or does kdesupport need to stay binary compatible until KDE 5?
>
>AFAIK kdesupport is just a convenience place to host libraries we depend
>on. Which means you can do whatever you want as long as you play by the
>rules (i.e. SOVERSION increase on BC changes).

And the users of your code will have to upgrade their minimum requirements 
or detect the newer version and not compile.

Also note that KDE code shouldn't be using the Soprano API directly, then. 
There should be a wrapper library in kdelibs if that's necessary.

--

-- 
  Thiago Macieira  -  thiago (AT) macieira.info - thiago (AT) kde.org
    PGP/GPG: 0x6EF45358; fingerprint:
    E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358
Sune Vuorela | 13 Aug 16:01

Re: Policy on binary compatibility in kdesupport?

On 2008-08-13, Thiago Macieira <thiago <at> kde.org> wrote:
>
> Also note that KDE code shouldn't be using the Soprano API directly, then.=
>=20
> There should be a wrapper library in kdelibs if that's necessary.

It is nepomuk that uses soprano. Unfortuately, it looks like Nepomuk is
exposing the ABI of soprano to the outside of nepomuk

/Sune

$ grep -i soprano /usr/include/nepomuk/*

/usr/include/nepomuk/desktopontologyloader.h:
QList<Soprano::Statement> loadOntology( const QUrl& url );
/usr/include/nepomuk/entity.h:#include <Soprano/Node>
/usr/include/nepomuk/fileontologyloader.h:#include <soprano/parser.h>
/usr/include/nepomuk/fileontologyloader.h:#include
<soprano/sopranotypes.h>
/usr/include/nepomuk/fileontologyloader.h:
Soprano::RdfSerialization serialization = Soprano::SerializationUnknown
);
/usr/include/nepomuk/fileontologyloader.h:       * Defaults to
Soprano::SerializationUnknown
/usr/include/nepomuk/fileontologyloader.h:      void setSerialization(
Soprano::RdfSerialization );
/usr/include/nepomuk/fileontologyloader.h:
QList<Soprano::Statement> loadOntology( const QUrl& url );
/usr/include/nepomuk/nepomukontologyloader.h:
QList<Soprano::Statement> loadOntology( const QUrl& url );
(Continue reading)

Thiago Macieira | 13 Aug 16:14

Re: Policy on binary compatibility in kdesupport?

Sune Vuorela wrote:
>It is nepomuk that uses soprano. Unfortuately, it looks like Nepomuk is
>exposing the ABI of soprano to the outside of nepomuk

Ok, that means there's an easy answer: Soprano and Nepomuk must change 
major versions at the same time.

This also applies to *all* libraries that expose Soprano or Nepomuk in 
their public APIs, and libraries that expose those libraries, etc.

--

-- 
  Thiago Macieira  -  thiago (AT) macieira.info - thiago (AT) kde.org
    PGP/GPG: 0x6EF45358; fingerprint:
    E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358
Sebastian Trüg | 13 Aug 17:30
Favicon

Re: Policy on binary compatibility in kdesupport?

On Wednesday 13 August 2008 16:14:05 Thiago Macieira wrote:
> Sune Vuorela wrote:
> >It is nepomuk that uses soprano. Unfortuately, it looks like Nepomuk is
> >exposing the ABI of soprano to the outside of nepomuk
>
> Ok, that means there's an easy answer: Soprano and Nepomuk must change
> major versions at the same time.
>
> This also applies to *all* libraries that expose Soprano or Nepomuk in
> their public APIs, and libraries that expose those libraries, etc.

right. I did not think about that. Damn.


Gmane