RFC v2: adding a temporary, non-BC gauranteed, 'private' library
Aaron J. Seigo
aseigo at kde.org
Fri Apr 24 18:08:48 BST 2009
On Friday 24 April 2009, Modestas Vainius wrote:
> Hello,
>
> On 2009 m. April 23 d., Thursday 23:50:46 Aaron J. Seigo wrote:
> > svn location: extragear/libs/knotificationitem
> > headers: $INCLUDE_PATH/knotificationaitem-1/
> > lib name: $LIB_PATH/libknotificationitem-1.so
> > namespace: Experimental::
> >
> > release of tarball done prior to kde 4.3.
> >
> > will most likely be removed post-4.3 and rolled into kdelibs. if not,
> > changes will results in a s,-1,-2,g to the above and another release.
> >
> > objections?
>
> Why do you insist on creating shared libraries?
because it's simple, easy and i don't have to recompile all N apps just to
test changes properly.
think about the system tray here: we've ported half a dozen or so apps
scattered all over kde's svn. when i make a change in the lib, right now i
just restart those apps.
with the static lib mentality, i now have to go and relink each app first.
just as bad, when introducing changes in the lib, person A may get different
behavior from person B even if they both have the same svn rev just because
one or the other didn't relink that app.
a shared lib is simpler and more respecting of my time as a developer.
> If ABI is unstable, create
> static libraries instead (or at least make it an option). Static libraries
> will ensure that:
>
> 1) use of the library is not widespread. It is experimental after all.
static libs guarantee no such thing.
> 2) developers do not have to deal with sonames, abi and other versioning
> nonsense when there is no intention to keep ABI stable
cmake deals with it for us; it's not a big deal. it's one more word in the
target_link_libraries entry.
> (your goal should be
> to develop a stable API/ABI, not to keep library experimental forever).
correct
> 3)
> it's bad from security support POV, but if 1) is met, it may be more
> acceptable than suffering from constant ABI brekages.
if the API is going through constant ABI breakage, then it isn't ready for
this process. only when an API is ready for trialing for actual inclusion in,
say, kdelibs would you put it in there. that means a fairly confident API, but
not confident enough to commit to 5+ years of support.
--
Aaron J. Seigo
humru othro a kohnu se
GPG Fingerprint: 8B8B 2209 0C6F 7C47 B1EA EE75 D6B7 2EB1 A7F1 DB43
KDE core developer sponsored by Qt Software
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20090424/f1c1c41a/attachment.sig>
More information about the kde-core-devel
mailing list