Re: GNOME Namespace Management - ARC & GNOME



On Wed, 2004-12-15 at 21:50 -0500, Owen Taylor wrote:
> I'm getting annoyed with this example; let me emphasize that there are
> really objects out there that fall apart all over the place if you
> change construct-only arguments after construction. The fact that 
> a check for G_PARAM_CONSTRUCT_ONLY had been missed was serious bug.

OK, sorry, I didn't mean to be annoying with this example. There were
others I could have chosen in other projects, but this was a simple
easily understood example of "bug fix broke things". Really GTK+ and
supporting libraries are very good in this regard relative to other
projects.

Still, this bug could have been fixed in other ways: by printing a
warning instead of actually preventing the change for instance. Most bug
fixes don't involve changing the semantics of an API, but preventing
behaviour that used to be allowed is one way of doing that (even if that
behaviour was wrong/made no sense).

You're right that there are lines, clearly an app that's grabbing stuff
from internal structures or using internal functions is at fault.

I'd disagree that doing a point release that unbreaks an app is
pointless. If that does happen the author can put a warning on their
website or whatever saying that users with version XYZ of the app should
upgrade GTK+ if they experience problem P. Otherwise, you have to do a
new release of the program to make it work again, maybe this means
rolling several releases depending on how many branches of the app are
in wide usage. It may mean backporting the fix across several versions
and so on.

I'm finding Suns stance a bit confusing: it seems they review changes to
ensure shipped interfaces remain stable and if it turns out that some
programs broke, they work with customers in an ad hoc way to either
provide Solaris patches or to help them fix the app (if they own the
source). I'm not sure what level of stability that translates to for
GNOME. Maybe the current level.

thanks -mike




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