Re: Suggestions for API/ABI Process
- From: Brian Cameron <Brian Cameron Sun COM>
- To: Murray Cumming <murrayc murrayc com>
- Cc: Mark McLoughlin <markmc redhat com>, gnome-release-team <release-team gnome org>
- Subject: Re: Suggestions for API/ABI Process
- Date: Mon, 01 Aug 2005 10:42:25 -0500
Murray/Others:
Ah, sorry, I know I can get runaway at the mouth. I'll try to be more
to-the-point.
I argue that the current process is vague and provides ISV's with little
value.
I agree that it would be nice to clearly identify everything. With your
help, we are getting there.
Yay!
The current API/ABI rules could easily be interpreted that all
GNOME interfaces are Stable.
However, I don't think that extreme is likely. There's a fairly clear
separationg between Platform and Desktop.
Ah, I didn't realize that the API/ABI rules were different between
Platform and Desktop interfaces. This should be documented in the
API/ABI rules more clearly.
>>> Also, I think it should be expected that when an interface changes in
>>> an incompatible way, this should be reflected in the library versioning.
>>> Looking at libgnomeprint 2.0 and 2.2, one might think that they should
>>> be ABI compatible since it seems only the minor number changed. In
>>> the libgnomeprint example, they added a "-2" to the end of the library
>>> name. The glib/GTK+ libraries never use such a suffix to indicate ABI
>>> change, instead they always bump the major version number. It seems
>>> like different modules are doing things in ad-hoc ways. What is
>>> the best pratice here that GNOME libraries should be following? I
>>> think the Release Team should define this.
>
> Why does it matter? What is the advantage? Is it worth losing the
> advantage of most GNOME 2 libraries being 2.something?
>
> libgtk-1.2.so is clearly different to libgtk-2.0.so and
> libgnomprint-2.so is clearly different to libgnomeprint-2.2.so
>
> No massaging of those numbers, other than having the same names, will
> make those libraries ABI compatible. They are different libraries.
It matters for the following reasons:
1) There should be clear rules for how libraries should "rename"
themselves when ABI incompatible interfaces are introduced. The
libgtk example is a better naming mechanism because the version
change of 1.2 to 2.0 more clearly highlights an ABI difference.
libgnomeprint change from 2 to 2.2 seems to indicate a minor
release.
It isn't necessarily bad if different libraries are following
different rules. But if they are, the following needs to be
better documented: what the different rules are, how to tell which
libraries are following which rule, and how to tell when an ABI
incompatible difference is added to the library by looking at its
version number.
2) In order for GNOME's API/ABI policy to be meaningful, Stable
libraries should not change ABI in the GNOME 2.x timeframe.
So, either libgnomeprint* isn't Stable ABI that people should
use, or GNOME should have been bumped to 3.0, or this ABI
change was a mess-up that we should learn from and avoid in the
future?
If the answer is libgnomeprint* isn't Stable because it is not a
part of the Platform interfaces, then this might not be a great
answer. It's hard to imagine that ISV's won't want access to
the library that gives programs access to printing. Do libraries
migrate from Desktop to Platform when the GNOME community
recognizes that ISV's might need to use the library?
In other words, I'm not trying to suggest that anything is wrong
or broken. I think the main problem is that the processes are not
documented, so the situation seems confusing. And this makes it
look, in my opinion, like we're not doing a great job when we really
are. Perhaps things like how API/ABI rules change between desktop
and platform interfaces is clear to some people in the GNOME
community, but how can the general public (including ISV's) know
the difference if it isn't documented clearly?
> Brian, may I edit http://live.gnome.org/InterfaceSpecification for
> brevity? You might want to keep a copy of the original in case you don't
> like the result.
Please update it. It is on live.gnome.org so it can be a living
document that best reflects the way the GNOME community views interface
stability on the desktop.
Brian
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]