Re: GtkRange inversion



On Mon, 6 Aug 2001, James Henstridge wrote:

> On Mon, 6 Aug 2001, Carsten Burstedde wrote:
> 
> > > 2001-02-15  Havoc Pennington  <hp redhat com>
> > >
> > >         * gtk/gtkrange.c (gtk_range_set_inverted): new function to fix
> > >         #50806
> > >
> > > void           gtk_range_set_inverted      (GtkRange      *range,
> > >                                             gboolean       setting);
> > > gboolean       gtk_range_get_inverted      (GtkRange      *range);
> >
> > Thanks (my linux distribution's source version was 1.2.8).
> 
> There is almost no chance that any new APIs will be added to gtk+-1.2.x.
> Its API was frozen long ago, and the development version (which will
> hopefully be released as stable soon (I hope)) already has the feature, as
> Havoc pointed out.
> 
> The problem with adding an API to the stable branch at this point is that
> if you use that API in your program, the users will require the new
> version of gtk+.

correct untill here, however:

>  You don't want to increment the shared library version
> number, as that would break binary compatibility, and without doing so, if
> people run a binary of your program with older copies of gtk+, the app
> will die with a dynamic linking error.

this is not the case with our versioning scheme. basically, we encode
MAJOR.MINOR.MICOR.INTERFACE_AGE in glib/gtk library versions during
stable releases.
from configure.in:

# Making releases:
#   GTK_MICRO_VERSION += 1;
#   GTK_INTERFACE_AGE += 1;
#   GTK_BINARY_AGE += 1;
# if any functions have been added, set GTK_INTERFACE_AGE to 0.
# if backwards compatibility has been broken,
# set GTK_BINARY_AGE and GTK_INTERFACE_AGE to 0.
#
GTK_MAJOR_VERSION=1
GTK_MINOR_VERSION=2
GTK_MICRO_VERSION=8
GTK_INTERFACE_AGE=0
GTK_BINARY_AGE=8

we don't reset GTK_BINARY_AGE during stable branches, that is,
we keep binary compatibility for all of 1.2.x or 2.0.x, but
we can (and did already in 1.2.x) add interfaces and "just"
break upwards compatibility that way.
however, we still try to stay away from adding interfaces, because
say we broke interface compatibility from 1.2.7 to 1.2.8 (i.e. reset
GLIB_INTERFACE_AGE to 0 for 1.2.8), an application A linked against
1.2.7 will still run fine with 1.2.8, but an application B linked against
1.2.8 will require gtk 1.2.8 and accept no older version, forcing all users
of application B to upgrade to gtk+1.2.8 at least.

> 
> James.
> 

---
ciaoTJ





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