Re: GLib 2.9.0 released

On Mon, 2005-11-21 at 09:34 -0500, Morten Welinder wrote:
> You guys are really avoiding the issue today.
> Has ABI/API stability been abandoned for this release (which might as
> well be called 3.0 and made a free-for-all, then)?

It would be great if ABI/API stability was this black and white thing.
It's stable. It's not stable. 

It's never really worked out that way - there is this big gray area

 - People relying on bugs
 - People relying on undocumented behaviors

In some cases, multiple people are making *different* assumptions 
about a single piece of undocumented behavior. 

So, we have to make judgment calls - not decide whether a change
will break any conceivable piece of software but whether it
breaks software that is out there in the real world that people
are using.

For a while we had the policy of never extending enumerations ...
eventually we found that policy was just too hard to work around
while keeping a sane API.

In this case there is an additional factor: We know that this change
breaks older versions of Pango. We don't really know any other software
that is using this interface, let alone making assumptions about the
number of values in the break type interface. Since the vast majority of
people upgrade their entire GTK+ stack in sync, this is "less important"

You could certainly make a valid argument that in this case
we should have added g_unicode_break_type_ex() that returns a
GUnicodeBreakTypeEx enumeration. So far we've avoided that particular
contrivance in the GTK+ stack...

What I would object to strongly is the idea that all API breakage
is equal ... that there is some magic line that once you step over
there is no going back. The reality is that unless you write down
every single compatibility guarantee to the last detail,
there will always be gray  cases. And even if you *do* write down 
every single compatibility guarantee, people will still have 
expectations beyond what's documented, and their code will still
break. At that point, you just have to make a guess and proceed.


BTW - you can upgrade to Pango-1.10.x without Cairo and without
  upgrading your GTK+.

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]