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 :)

Emmanuel

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.

WDYT?

Trustin


Reply via email to