gnustep-dev
[Top][All Lists]
Advanced

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

Re: Proposal: Mandatory periodic releases


From: Helge Hess
Subject: Re: Proposal: Mandatory periodic releases
Date: Sat, 4 Mar 2006 23:57:03 +0100

Hi,

On 1. Mrz 2006, at 15:15 Uhr, Gregory John Casamento wrote:
One of the ways I've noticed that other projects act is that they, under normal circumstances, try to make regular releases of the code at predictable intervals. This helps to reassure people that the project is active and it also helps to focus developers on impending releases.

I'm wondering if this might not be a good thing to start in this project, since our releases tend to be occasional. Just a thought. :)

personally I would like to see a split between stable releases and development releases. I talked about that with Nicola at FOSDEM and the impression is that GNUstep lacks both, more frequent AND less frequent releases.

More frequent because it will be easier to try out new features (and have a less moving target even for developers) and less frequent because the GNUstep API is too instable for distribution inclusion and to base binary software packages upon. (and ABI change in the core library every 6 months or so is FAR to much, 12 months might be OK, 24 considered stable).


In SOPE/OGo we do this by using the Linux version numbering, that is, we have stable releases which are even numbered and NEVER change the API (no additional methods, no additional classes, only fixes). And we have odd numbers which are alpha releases and are allowed to break the ABI. Eg SOPE 4.4.0 is a stable release and 4.4 will never change the ABI while 4.5.1, 4.5.2, ... 4.5.6 are unstable releases and have no soname ABI guarantee.

How do we do that in Subversion? If we release a stable version, we copy the trunk tree to a branch, eg:
  svn cp /trunk /branches/4.4
The trunk then becames the next unstable. Trunk always has an odd numbers and you never have an odd number in (release) branches. To make a stable release, we copy the branch to a release, eg:
  svn cp /branches/4.4 /releases/4.4.0
To make an unstable release we just copy the trunk, eg
  svn cp /trunk /releases/4.5.7

BTW: beta releases are also supposed to be ABI stable to the final release. So the first branch is actually a beta, not a final release.


I would like to suggest something similiar for GNUstep (at least base ;-). With Subversion this is reasonably easy to do. Keeping ABI stability of course requires A LOT of discipline.

Greets,
  Helge
--
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org





reply via email to

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