directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Emmanuel Lecharny <>
Subject Re: Versioning scheme
Date Sat, 28 Oct 2006 13:18:18 GMT
Hi Trustin,

IMHO, switching to Java 5 deserve a special number, and to follow what 
has been done by tomcat team, it seems to be a good idea to switch to 
1.5, just to be able to tell : "the current version is using Java 5".

Now, I don't think that it is a problem to use an odd number like 1.5, 
because the trunks will become 1.1, i.e an unstable version. So as 1.1 
and 1.5 are both odd, it's ok.

An question could be : "will mina+java5 be stable or not?". If the 
answer is "yes", then you should use 2.0 instead of 1.5. Major versions 
are supposed to bring huge refactoring, with potentially API breakage 
and modification. If you are using java 5, this will likely be the case, 
except if you decide to use Java 5 just to get rid of backported code.

Minor version are used to bring new functionalities, for testing 
purpose, and when those new functions are ok, we switch to an even 
number. I admit that this is a convention, and that an even version 
should be considered as "stable" ;). In my mind, the difference is much 
more a question of avoiding a lot of branching for odd versions, when 
even versions should not evolve a lot...

So, to gather my opinion, here is what I think :
- If you want to switch to Java 5 with no change in the API, in order to 
get rid of backported code, then 1.5 is the number
- If you want to use Java 5 features, like enum, generics, concurrence, 
then it should be a 2.0

Btw, I think that 1.1, 1.2, etc ... should not change the 1.0 API. If I 
check out the trunk, I can see that some classes have been deleted, and 
some methods have been changed. Please use "deprecated" tag, this is 
exactly what it is good for. If you need to change the existing API, 
then do it in a 2.0 trunk, not in a 1.x trunk. It will be more and more 
important as many people will use Mina...

2 cents :)


Trustin Lee a écrit :

> Hi all,
> For now we are using an even/odd versioining scheme with three 
> components (
> major.minor.micro)  An even minor version means stable, and an odd minor
> version means unstable.  I think this even/odd separation is a great 
> idea,
> but it puts us in a big trouble when we bump up tje major version number.
> MINA is a good example.  MINA is going to move to Java 5, and thus its 
> major
> version number should be 2 (i.e. 2.0.0), but we can't go to 2.0 
> because the
> minor version number 0 means 'stable'.  So we are talking about using the
> version number 1.5 or 1.9, but I think it's very weird because we've 
> changed
> our platform.
> Is there any good idea to solve this problem?  My current idea is to 
> switch
> the meaning of even and odd numbers (i.e. Even = unstable, Odd = 
> stable).  I
> think this is more natural because 2.0 can't be stable.  Most people 
> thinks
> 2.1 is much more stablized version.  But there might be different 
> cultural
> background among Asians and Americans/Europeans, so I'm not sure if this
> idea will work fine for everyone.
> Trustin

View raw message