Re: GEP-4 : Versioning and branching rules proposal
- From: Thomas Vander Stichele <thomas apestaart org>
- To: Mark McLoughlin <mark skynet ie>
- Cc: Frederic Crozat <fcrozat mandrakesoft com>, <desktop-devel-list gnome org>, <gnome-hackers gnome org>, <hp redhat com>, <n p sun com>, <michael ximian com>, <snickell stanford edu>, <jacob ximian com>
- Subject: Re: GEP-4 : Versioning and branching rules proposal
- Date: Tue, 3 Sep 2002 10:09:59 +0200 (CEST)
Hi,
some questions/remarks from my point of view ...
> Users would continually downloaded
> the new packages, but for nothing. Lots of hassle and for what?
I agree that this would be a problem, I don't see an easy way to solve it
though.
Let's take an other example - metacity is up to version 2.4.0 - do we let
it "downgrade" because of this and cause massive confusion when gnome 2.4
is out ?
> * There are quite a few packages in the platform that aren't
> really specific to GNOME. Should they have to conform to these rules.
> If not, where do we draw the line of modules that should and modules
> that shouldn't. Could we have a compromise set of rules for these
> modules. E.g. that they tag the module after every release.
I'd like to know what these rules would mean for fifth-toe stuff. From
the POV of GStreamer, it will be some time before we go 1.0 at all.
Jumping to 2.0 just because we're going to be used by GNOME is a bit silly
to us.
On an unrelated note, we also do something special with our version
numbers which solves a few problems we used to have, which I'm throwing
out for consideration here.
Here's the scheme :
* all official versions have major.minor.micro versioning
with fairly common rules
- micro changes are for bug fixes, minor
features, (mostly) API-compatible changes
- minor changes are for big API changes, major reworkings, ...
- major changes are for screwing up users in a really bad way ;)
* Beside that, we also use a nano number.
- During the whole of our
development period, this number is set to 1. What this means is
that if you see ANY GStreamer package (tarball, rpm, maybe even deb)
which is marked x.y.z.1, it's a CVS release. Also, if you get user
feedback for bugs, it's nice to know that he's using a CVS release
(for some reason lots of people always end up using GStreamer CVS
and it used to cause us a lot of headache to figure that out).
- When we're about to make a release, we make a release branch.
HEAD gets new major:minor:micro numbers (for the next release),
and keeps nano at 1. The release branch only gets bug fixes and
so on for the release. Then we start doing prereleases of that
branch, and increment the nano, starting with 2.
To recap:
- releases without nano numbers are "officially supported" releases.
- tarballs/packages with nano 1 are "CVS snapshots". (The RPM's
made from this have the build date and time as their release number)
- tarballs/packages with nano > 1 are pre-releases of the next release.
What this solves for us:
- we avoid all the mess with naming packages -rc or -beta and so on.
- we can easily generate CVS snapshots which are clearly marked
(both in packages, AND in use) as CVS
- people don't generate their own "official" version from CVS, or
worse, release them (We've had one rhythmbox guy release his custom
gstreamer RPM because he wanted to make rhythmbox RPMs, which could
have been hell for us to maintain/support/...)
Now, some of you might not like the way we abuse the versioning system;
it's kind of a mixed approach.
I'm just saying that something like this might be worth considering
somehow, but I'm also saying, that this approach has helped us well in the
last year, and GStreamer as a project would probably like to continue
doing this. I'm not sure if this is a problem with the proposed
versioning scheme ?
> * How about versions like '2.2.0-rc5'. I've never used them,
> but it does strike me that they are more readable and readily
> identifiable.
Please don't ;) I'd like it (if you all agree) if a rule to the GEP would
be added that there shall be no -rc, -alpha, -beta, or other alphabetic
versioning. It's really messy for making packages (most packaging systems
use alphanumeric comparison, and are then forced to use Epochs or
something similar, which are even worse).
Also, in most cases, the -rc package ends up using the exact same version
number internally as the final release, so if you get bug reports, how can
you tell the difference ?
Thomas
--
The Dave/Dina Project : future TV today ! - http://davedina.apestaart.org/
<-*- -*->
Is there a voice unkind
in the back of your mind
saying "maybe you didn't know him at all"
<-*- thomas apestaart org -*->
URGent, the best radio on the Internet - 24/7 ! - http://urgent.rug.ac.be/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]