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