[Top][All Lists]
[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