gnustep-dev
[Top][All Lists]
Advanced

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

Re: Making release of gui 1/13/2007


From: Yen-Ju Chen
Subject: Re: Making release of gui 1/13/2007
Date: Fri, 29 Dec 2006 00:49:17 -0800

On 12/29/06, Richard Frith-Macdonald <address@hidden> wrote:

On 29 Dec 2006, at 00:37, Fred Kiefer wrote:

> Gregory John Casamento schrieb:
>>
>> I would like to shoot for making a release of gui on 1/13/2007.
>>
>
> I am currently working on a rework of NSDocument to include all the
> new
> MacOS 10.4 methods. Should I try to get these changes in before the
> release or after it?
>
> These changes need to break backwards compatibility as loads of new
> ivars need to be added. You will have to recompile all applications
> using subclasses for NSDocument.
> As I plan to do similar breaking of backwards compatibility over the
> next few months, it might be worthwhile to group them together into
> one
> release.

I've been fairly convinced by recent arguments about releases (emails
from packagers etc) that we make our new releases too frequently, and
that what we should be doing is making less frequent new releases
(with new features and api/abi changes), but more frequent bugfix
releases (ie where no api/abi changes are made, but bugs are fixed).

So I would surely agree with making bugfix releases of gui and back
early in january (I've been planning to do base anyway), but I think
we should save all the api/abi changes for a later release somewhere
six to twelve months away.

Of course the downside if this is that we need to backport bugfixes
from trunk to the current stable branch of gui/back ... which is
tedious (but a lot less work than doing the original fixes).

The positive advantage is that by lengthening the interval between
new releases we can try to make all the api/abi changes we need
together in one go.  In the base library I would really like to get
it to a state where we have changed all classes etc so that we no
longer need to break backward compatibility in any release (ie have
changed ivar layouts etc so that all classes we are ever likely to
extend can be extended without changing the size of the instances or
the nature of any public/protected ivars).  With the gui library that
may not yet look like a reasonable goal, but we certainly want to be
able to make future releases without breaking backward compatibility
if we can.

As far as giving people access to the latest code in trunk goes ...
we have automated snapshots which provide that.
Or we could adopt a policy of formally having two sets of releases on
the go, stable and unstable, and make it VERY clear that the unstable
releases are only for people who are actually willling to contrinute
bugfixes/patches for any problems they find.
Or we could keep 'preferred'' snapshots on the ftp site ... ie save a
set of snapshots once a month, so that people can build to a
particular month's snapshots rather than the daily ones ... and know
that the set of snapshots they used will remain available on the site
for (say)  a year, and they can tell people to grab that set of
snapshots in order to use their application.

My personal preference is for the dual release strategy ... that way
we can publicise ourselves twice as often ...
once for each stable release, with a nice list of bugs fixed, and a
prominent message to encourage packagers to update the distribution
they work with
once for each unstable release, with a list of cool new features, and
a big message to encourage developers to provide bugfixes/patches

 I think the gnustep-base is stable and mature enough to do so,
 but gnustep-gui may not be.
 Many fix to gnustep-gui still break the backward compatibility.
 So my suggestion is to make it happen for gnustep-base first.
 Once everything goes smoothly after a couple cycles,
 it will be pretty easy to do the same thing on gnustep-gui and gnustep-back.

 Yen-Ju





_______________________________________________
Gnustep-dev mailing list
address@hidden
http://lists.gnu.org/mailman/listinfo/gnustep-dev





reply via email to

[Prev in Thread] Current Thread [Next in Thread]